@netlify/agent-runner-cli 1.163.0-PAW-328.9 → 1.163.0-PAW-328.10
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 +2 -2
- package/dist/bin.js +2 -2
- package/dist/index.js +2 -2
- package/package.json +2 -1
package/dist/bin-local.js
CHANGED
|
@@ -112,7 +112,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
112
112
|
`,LF:`
|
|
113
113
|
`,concatBytes:o$},s1e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},a1e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:s1e};import{Buffer as c1e}from"buffer";var Fre=(t,e)=>t?void 0:l1e.bind(void 0,e),l1e=function*(t,e){if(typeof e!="string"&&!zt(e)&&!c1e.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Bre=(t,e)=>t?u1e.bind(void 0,e):d1e.bind(void 0,e),u1e=function*(t,e){jre(t,e),yield e},d1e=function*(t,e){if(jre(t,e),typeof e!="string"&&!zt(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},jre=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
114
114
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
115
|
-
if (condition) { yield value; }`)};import{Buffer as f1e}from"buffer";import{StringDecoder as p1e}from"string_decoder";var Dw=(t,e,r)=>{if(r)return;if(t)return{transform:h1e.bind(void 0,new TextEncoder)};let n=new p1e(e);return{transform:m1e.bind(void 0,n),final:g1e.bind(void 0,n)}},h1e=function*(t,e){f1e.isBuffer(e)?yield _s(e):typeof e=="string"?yield t.encode(e):yield e},m1e=function*(t,e){yield zt(e)?t.write(e):e},g1e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as zre}from"util";var a$=zre(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Lw=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=y1e}=e[r];for await(let i of n(t))yield*Lw(i,e,r+1)},Gre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*_1e(r,Number(e),t)},_1e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Lw(n,r,e+1)},qre=zre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),y1e=function*(t){yield t};var c$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Vre=(t,e)=>[...e.flatMap(r=>[...Fl(r,t,0)]),...$_(t)],Fl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=E1e}=e[r];for(let i of n(t))yield*Fl(i,e,r+1)},$_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*S1e(r,Number(e),t)},S1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Fl(n,r,e+1)},E1e=function*(t){yield t};var l$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Wre(t,s,o),l=Ul(e),u=Ul(r),d=l?a$.bind(void 0,Lw,a):c$.bind(void 0,Fl),f=l||u?a$.bind(void 0,Gre,a):c$.bind(void 0,$_),p=l||u?qre.bind(void 0,a):void 0;return{stream:new v1e({writableObjectMode:n,writableHighWaterMark:Hre(n),readableObjectMode:i,readableHighWaterMark:Hre(i),transform(m,y,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},$w=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=Wre(s,r,a);t=Vre(c,t)}return t},Wre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Fre(n,a)},Dw(r,s,n),Mw(r,o,n,c),{transform:t,final:e},{transform:Bre(i,a)},Ure({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Yre=(t,e)=>{for(let r of T1e(t))b1e(t,r,e)},T1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),b1e=(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 ${$a[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>A1e(a,n));r.input=R_(s)},A1e=(t,e)=>{let r=$w(t,e,"utf8",!0);return w1e(r),R_(r)},w1e=t=>{let e=t.find(r=>typeof r!="string"&&!zt(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 I1e,appendFileSync as P1e}from"fs";var Uw=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&yf(r,n)&&!En.has(e)&&x1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&R1e.has(o))||t.every(({type:i})=>Qn.has(i))),x1e=t=>t===1||t===2,R1e=new Set(["pipe","overlapped"]),Kre=async(t,e,r,n)=>{for await(let i of t)C1e(e)||Jre(i,r,n)},Zre=(t,e,r)=>{for(let n of t)Jre(n,e,r)},C1e=t=>t._readableState.pipes.length>0,Jre=(t,e,r)=>{let n=XA(t);go({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Xre=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>O1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},O1e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=Qte(t,o,d),p=_s(f),{stdioItems:h,objectMode:m}=e[r],y=N1e([p],h,c,n),{serializedResult:E,finalResult:b=E}=k1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});M1e({serializedResult:E,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let A=a[r]?b:void 0;try{return n.error===void 0&&D1e(E,h,i),A}catch(S){return n.error=S,A}},N1e=(t,e,r,n)=>{try{return $w(t,e,r,!1)}catch(i){return n.error=i,t}},k1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:R_(t)};let s=p7(t,r);return n[o]?{serializedResult:s,finalResult:s$(s,!i[o],e)}:{serializedResult:s}},M1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Uw({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=s$(t,!1,s);try{Zre(a,e,n)}catch(c){r.error??=c}},D1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Nw.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?P1e(n,t):(r.add(o),I1e(n,t))}};var Qre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Es(e,r,"all")]:Array.isArray(e)?[Es(t,r,"all"),...e]:zt(t)&&zt(e)?mL([t,e]):`${t}${e}`};import{once as u$}from"events";var ene=async(t,e)=>{let[r,n]=await L1e(t);return e.isForcefullyTerminated??=!1,[r,n]},L1e=async t=>{let[e,r]=await Promise.allSettled([u$(t,"spawn"),u$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?tne(t):r.value},tne=async t=>{try{return await u$(t,"exit")}catch{return tne(t)}},rne=async t=>{let[e,r]=await t;if(!$1e(e,r)&&d$(e,r))throw new Pi;return[e,r]},$1e=(t,e)=>t===void 0&&e===void 0,d$=(t,e)=>t!==0||e!==null;var nne=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=U1e(t,e,r),s=o?.code==="ETIMEDOUT",a=Xte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},U1e=(t,e,r)=>t!==void 0?t:d$(e,r)?new Pi:void 0;var ine=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=B1e(t,e,r),d=G1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Cf(d,c,l)},B1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ew(t,e,r),a=j1e(r),{file:c,commandArguments:l,options:u}=Ew(t,e,a);z1e(u);let d=Mre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},j1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,z1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Fw("ipcInput"),t&&Fw("ipc: true"),r&&Fw("detached: true"),n&&Fw("cancelSignal")},Fw=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},G1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=q1e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=nne(c,r),{output:h,error:m=l}=Xre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,A)=>Es(b,r,A)),E=Es(Qre(h,r),r,"all");return H1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:E,options:r,command:n,escapedCommand:i,startTime:a})},q1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Yre(o,r);let a=V1e(r);return F1e(...vw(t,e,a))}catch(a){return Rf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},V1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:Cw(e)}),H1e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?Iw({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):L_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as kFe}from"events";import{spawn as MFe}from"child_process";import lne from"process";import{once as f$,on as W1e}from"events";var one=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(vf({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:hw(t)}),Y1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),Y1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{uw(e,i);let o=La(t,e,r),s=new AbortController;try{return await Promise.race([K1e(o,n,s),Z1e(o,r,s),J1e(o,r,s)])}catch(a){throw Tf(t),a}finally{s.abort(),dw(e,i)}},K1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await f$(t,"message",{signal:r});return n}for await(let[n]of W1e(t,"message",{signal:r}))if(e(n))return n},Z1e=async(t,e,{signal:r})=>{await f$(t,"disconnect",{signal:r}),Vee(e)},J1e=async(t,e,{signal:r})=>{let[n]=await f$(t,"strict:error",{signal:r});throw aw(n,e)};import{once as ane,on as X1e}from"events";var cne=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>p$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),p$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{vf({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:hw(t)}),uw(e,o);let s=La(t,e,r),a=new AbortController,c={};return Q1e(t,s,a),eUe({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),tUe({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},Q1e=async(t,e,r)=>{try{await ane(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},eUe=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await ane(t,"strict:error",{signal:r.signal});n.error=aw(i,e),r.abort()}catch{}},tUe=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of X1e(r,"message",{signal:o.signal}))sne(s),yield c}catch{sne(s)}finally{o.abort(),dw(e,a),n||Tf(t),i&&await t}},sne=({error:t})=>{if(t)throw t};var une=(t,{ipc:e})=>{Object.assign(t,fne(t,!1,e))},dne=()=>{let t=lne,e=!0,r=lne.channel!==void 0;return{...fne(t,e,r),getCancelSignal:yte.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},fne=(t,e,r)=>({sendMessage:yw.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:one.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:cne.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as rUe}from"child_process";import{PassThrough as nUe,Readable as iUe,Writable as oUe,Duplex as sUe}from"stream";var pne=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{n$(n);let a=new rUe;aUe(a,n),Object.assign(a,{readable:cUe,writable:lUe,duplex:uUe});let c=Rf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=dUe(c,s,i);return{subprocess:a,promise:l}},aUe=(t,e)=>{let r=U_(),n=U_(),i=U_(),o=Array.from({length:e.length-3},U_),s=U_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},U_=()=>{let t=new nUe;return t.end(),t},cUe=()=>new iUe({read(){}}),lUe=()=>new oUe({write(){}}),uUe=()=>new sUe({read(){},write(){}}),dUe=async(t,e,r)=>Cf(t,e,r);import{createReadStream as hne,createWriteStream as mne}from"fs";import{Buffer as fUe}from"buffer";import{Readable as F_,Writable as pUe,Duplex as hUe}from"stream";var _ne=(t,e)=>kw(mUe,t,e,!1),B_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${$a[t]}.`)},gne={fileNumber:B_,generator:l$,asyncGenerator:l$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:hUe.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},mUe={input:{...gne,fileUrl:({value:t})=>({stream:hne(t)}),filePath:({value:{file:t}})=>({stream:hne(t)}),webStream:({value:t})=>({stream:F_.fromWeb(t)}),iterable:({value:t})=>({stream:F_.from(t)}),asyncIterable:({value:t})=>({stream:F_.from(t)}),string:({value:t})=>({stream:F_.from(t)}),uint8Array:({value:t})=>({stream:F_.from(fUe.from(t))})},output:{...gne,fileUrl:({value:t})=>({stream:mne(t)}),filePath:({value:{file:t,append:e}})=>({stream:mne(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:pUe.fromWeb(t)}),iterable:B_,asyncIterable:B_,string:B_,uint8Array:B_}};import{on as gUe,once as yne}from"events";import{PassThrough as _Ue,getDefaultHighWaterMark as yUe}from"stream";import{finished as vne}from"stream/promises";function Bl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)m$(i);let e=t.some(({readableObjectMode:i})=>i),r=SUe(t,e),n=new h$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var SUe=(t,e)=>{if(t.length===0)return yUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},h$=class extends _Ue{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(m$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=EUe(this,this.#e,this.#o);let r=bUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(m$(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)}},EUe=async(t,e,r)=>{Bw(t,Sne);let n=new AbortController;try{await Promise.race([vUe(t,n),TUe(t,e,r,n)])}finally{n.abort(),Bw(t,-Sne)}},vUe=async(t,{signal:e})=>{try{await vne(t,{signal:e,cleanup:!0})}catch(r){throw Tne(t,r),r}},TUe=async(t,e,r,{signal:n})=>{for await(let[i]of gUe(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},m$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},bUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Bw(t,Ene);let a=new AbortController;try{await Promise.race([AUe(o,e,a),wUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),xUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Bw(t,-Ene)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?g$(t):RUe(t))},AUe=async(t,e,{signal:r})=>{try{await t,r.aborted||g$(e)}catch(n){r.aborted||Tne(e,n)}},wUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await vne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;bne(s)?i.add(e):Ane(t,s)}},xUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await yne(t,i,{signal:o}),!t.readable)return yne(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},RUe=t=>{t.writable&&t.end()},Tne=(t,e)=>{bne(e)?g$(t):Ane(t,e)},bne=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",g$=t=>{(t.readable||t.writable)&&t.destroy()},Ane=(t,e)=>{t.destroyed||(t.once("error",CUe),t.destroy(e))},CUe=()=>{},Bw=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Sne=2,Ene=1;import{finished as wne}from"stream/promises";var Pf=(t,e)=>{t.pipe(e),IUe(t,e),PUe(t,e)},IUe=async(t,e)=>{if(!(Ii(t)||Ii(e))){try{await wne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}_$(e)}},_$=t=>{t.writable&&t.end()},PUe=async(t,e)=>{if(!(Ii(t)||Ii(e))){try{await wne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}y$(t)}},y$=t=>{t.readable&&t.destroy()};var xne=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Qn.has(c)))OUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Qn.has(c)))kUe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:Bl(o);Pf(s,i)}},OUe=(t,e,r,n)=>{r==="output"?Pf(t.stdio[n],e):Pf(e,t.stdio[n]);let i=NUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},NUe=["stdin","stdout","stderr"],kUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;MUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},MUe=(t,{signal:e})=>{Ii(t)&&Ll(t,DUe,e)},DUe=2;import{addAbortListener as UUe}from"events";var jl=[];jl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&jl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&jl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var jw=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",S$=Symbol.for("signal-exit emitter"),E$=globalThis,LUe=Object.defineProperty.bind(Object),v$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(E$[S$])return E$[S$];LUe(E$,S$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},zw=class{},$Ue=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),T$=class extends zw{onExit(){return()=>{}}load(){}unload(){}},b$=class extends zw{#e=A$.platform==="win32"?"SIGINT":"SIGHUP";#r=new v$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of jl)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!jw(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of jl)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,jl.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return jw(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&jw(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)}},A$=globalThis.process,{onExit:Rne,load:aTt,unload:cTt}=$Ue(jw(A$)?new b$(A$):new T$);var Cne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Rne(()=>{t.kill()});UUe(n,()=>{i()})};var Pne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=QA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=FUe(r,n,i),{sourceStream:d,sourceError:f}=jUe(t,l),{options:p,fileDescriptors:h}=yo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},FUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=BUe(t,e,...r),a=lw(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},BUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Ine,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||pL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=GA(r,...n);return{destination:e(Ine)(i,o,s),pipeOptions:s}}if(yo.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}`)},Ine=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),jUe=(t,e)=>{try{return{sourceStream:bf(t,e)}}catch(r){return{sourceError:r}}};var Nne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=zUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw w$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},zUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return y$(t),n;if(e!==void 0)return _$(r),e},w$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Rf({error:t,command:One,escapedCommand:One,fileDescriptors:e,options:r,startTime:n,isSync:!1}),One="source.pipe(destination)";var kne=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as GUe}from"stream/promises";var Mne=(t,e,r)=>{let n=Gw.has(e)?VUe(t,e):qUe(t,e);return Ll(t,WUe,r.signal),Ll(e,YUe,r.signal),HUe(e),n},qUe=(t,e)=>{let r=Bl([t]);return Pf(r,e),Gw.set(e,r),r},VUe=(t,e)=>{let r=Gw.get(e);return r.add(t),r},HUe=async t=>{try{await GUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Gw.delete(t)},Gw=new WeakMap,WUe=2,YUe=1;import{aborted as KUe}from"util";var Dne=(t,e)=>t===void 0?[]:[ZUe(t,e)],ZUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await KUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw w$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var qw=(t,...e)=>{if(Nt(e[0]))return qw.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Pne(t,...e),i=JUe({...n,destination:r});return i.pipe=qw.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},JUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=XUe(t,i);Nne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Mne(e,o,d);return await Promise.race([kne(u),...Dne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},XUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as oFe}from"timers/promises";import{on as QUe}from"events";import{getDefaultHighWaterMark as eFe}from"stream";var Vw=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return tFe(e,s),$ne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},tFe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},x$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;rFe(e,s,t);let a=t.readableObjectMode&&!o;return $ne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},rFe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},$ne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=QUe(t,"data",{signal:e.signal,highWaterMark:Lne,highWatermark:Lne});return nFe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},R$=eFe(!0),Lne=R$,nFe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=iFe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Fl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*$_(a)}},iFe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Dw(t,r,!e),Mw(t,i,!n,{})].filter(Boolean);var Une=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=sFe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([aFe(t),d]);return}let f=i$(c,r),p=x$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([cFe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},sFe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Uw({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=x$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Kre(a,t,r,o)},aFe=async t=>{await oFe(),t.readableFlowing===null&&t.resume()},cFe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await ww(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await xw(r,{maxBuffer:o})):await xf(r,{maxBuffer:o})}catch(a){return Fne(Kte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},C$=async t=>{try{return await t}catch(e){return Fne(e)}},Fne=({bufferedData:t})=>d7(t)?new Uint8Array(t):t;import{finished as lFe}from"stream/promises";var j_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=uFe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],lFe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||pFe(a,e,r,n)}finally{s.abort()}},uFe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&dFe(t,r,n),n},dFe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{fFe(e,r),n.call(t,...i)}},fFe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},pFe=(t,e,r,n)=>{if(!hFe(t,e,r,n))throw t},hFe=(t,e,r,n=!0)=>r.propagating?Bne(t)||Hw(t):(r.propagating=!0,I$(r,e)===n?Bne(t):Hw(t)),I$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Hw=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Bne=t=>t?.code==="EPIPE";var jne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>P$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),P$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=j_(t,e,l);if(I$(l,e)){await u;return}let[d]=await Promise.all([Une({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var zne=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Bl([t,e].filter(Boolean)):void 0,Gne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>P$({...mFe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:gFe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),mFe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},gFe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as _Fe}from"events";var qne=t=>yf(t,"ipc"),Vne=(t,e)=>{let r=XA(t);go({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Hne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=qne(o),a=ys(e,"ipc"),c=ys(r,"ipc");for await(let l of p$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Zte(t,i,c),i.push(l)),s&&Vne(l,o);return i},Wne=async(t,e)=>(await Promise.allSettled([t]),e);var Yne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:E})=>{let b=ene(t,f),A={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=jne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),R=Gne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),P=[],O=Hne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),N=yFe(m,t,A),C=SFe(h,A);try{return await Promise.race([Promise.all([{},rne(b),Promise.all(S),R,O,Cte(t,d),...N,...C]),y,EFe(t,E),...bte(t,o,f,E),...qee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...vte({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch(L){return f.terminationReason??="other",Promise.all([{error:L},b,Promise.all(S.map(_=>C$(_))),C$(R),Wne(O,P),Promise.allSettled(N),Promise.allSettled(C)])}},yFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:j_(n,i,r)),SFe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ni(o,{checkOpen:!1})&&!Ii(o)).map(({type:i,value:o,stream:s=o})=>j_(s,n,e,{isSameDirection:Qn.has(i),stopOnExit:i==="native"}))),EFe=async(t,{signal:e})=>{let[r]=await _Fe(t,"error",{signal:e});throw r};var Kne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),z_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=_o();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Of=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 vFe}from"stream";import{callbackify as TFe}from"util";import{finished as Zne}from"stream/promises";var O$=async t=>{if(t!==void 0)try{await N$(t)}catch{}},Jne=async t=>{if(t!==void 0)try{await k$(t)}catch{}},N$=async t=>{await Zne(t,{cleanup:!0,readable:!1,writable:!0})},k$=async t=>{await Zne(t,{cleanup:!0,readable:!0,writable:!1})},Ww=async(t,e)=>{if(await t,e)throw e},Yw=(t,e,r)=>{r&&!Hw(r)?t.destroy(r):e&&t.destroy()};var Xne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||En.has(r),{subprocessStdout:a,waitReadableDestroy:c}=M$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=D$(a,s),{read:f,onStdoutDataDone:p}=L$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new vFe({read:f,destroy:TFe(U$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return $$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},M$=(t,e,r)=>{let n=bf(t,e),i=z_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},D$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:R$},L$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=_o(),s=Vw({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){bFe(this,s,o)},onStdoutDataDone:o}},bFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},$$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await k$(t),await n,await O$(i),await e,r.readable&&r.push(null)}catch(o){await O$(i),Qne(r,o)}},U$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Of(r,e)&&(Qne(t,n),await Ww(e,n))},Qne=(t,e)=>{Yw(t,t.readable,e)};import{Writable as AFe}from"stream";import{callbackify as eie}from"util";var tie=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=F$(t,r,e),s=new AFe({...B$(n,t,i),destroy:eie(z$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return j$(n,s),s},F$=(t,e,r)=>{let n=lw(t,e),i=z_(r,n,"writableFinal"),o=z_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},B$=(t,e,r)=>({write:wFe.bind(void 0,t),final:eie(xFe.bind(void 0,t,e,r))}),wFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},xFe=async(t,e,r)=>{await Of(r,e)&&(t.writable&&t.end(),await e)},j$=async(t,e,r)=>{try{await N$(t),e.writable&&e.end()}catch(n){await Jne(r),rie(e,n)}},z$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Of(r,e),await Of(n,e)&&(rie(t,i),await Ww(e,i))},rie=(t,e)=>{Yw(t,t.writable,e)};import{Duplex as RFe}from"stream";import{callbackify as CFe}from"util";var nie=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||En.has(r),{subprocessStdout:c,waitReadableDestroy:l}=M$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=F$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=D$(c,a),{read:y,onStdoutDataDone:E}=L$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new RFe({read:y,...B$(u,t,d),destroy:CFe(IFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return $$({subprocessStdout:c,onStdoutDataDone:E,readable:b,subprocess:t,subprocessStdin:u}),j$(u,b,c),b},IFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([U$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),z$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var G$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||En.has(e),s=bf(t,r),a=Vw({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return PFe(a,s,t)},PFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var iie=(t,{encoding:e})=>{let r=Kne();t.readable=Xne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=tie.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=nie.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=G$.bind(void 0,t,e),t[Symbol.asyncIterator]=G$.bind(void 0,t,e,{})};var oie=(t,e)=>{for(let[r,n]of NFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},OFe=(async()=>{})().constructor.prototype,NFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(OFe,t)]);var sie=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=DFe(t,e,r),{subprocess:f,promise:p}=$Fe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=qw.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),oie(f,p),yo.set(f,{options:u,fileDescriptors:d}),f},DFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ew(t,e,r),{file:a,commandArguments:c,options:l}=Ew(t,e,r),u=LFe(l),d=_ne(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},LFe=({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}},$Fe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=MFe(...vw(t,e,r))}catch(h){return pne({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;kFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];xne(c,a,l),Cne(c,r,l);let d={},f=_o();c.kill=zee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=zne(c,r),iie(c,r),une(c,r);let p=UFe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},UFe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,y]=await Yne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((S,R)=>Es(S,e,R)),b=Es(m,e,"all"),A=FFe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Cf(A,n,e)},FFe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?L_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof So,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Iw({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Kw=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,BFe(n,t[n],i)]));return{...t,...r}},BFe=(t,e,r)=>jFe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,jFe=new Set(["env",...SL]);var Ua=(t,e,r,n)=>{let i=(s,a,c)=>Ua(s,a,r,c),o=(...s)=>zFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},zFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,Kw(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=GFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?ine(a,c,l):sie(a,c,l,i)},GFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=_7(e)?y7(e,r):[e,...r],[s,a,c]=GA(...o),l=Kw(Kw(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var aie=({file:t,commandArguments:e})=>lie(t,e),cie=({file:t,commandArguments:e})=>({...lie(t,e),isSync:!0}),lie=(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]=qFe(t);return{file:r,commandArguments:n}},qFe=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(VFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},VFe=/ +/g;var uie=(t,e,r)=>{t.sync=e(HFe,r),t.s=t.sync},die=({options:t})=>fie(t),HFe=({options:t})=>({...fie(t),isSync:!0}),fie=t=>({options:{...WFe(t),...t}}),WFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},pie={preferLocal:!0};var hie=Ua(()=>({})),JAt=Ua(()=>({isSync:!0})),mie=Ua(aie),XAt=Ua(cie),QAt=Ua(wte),ewt=Ua(die,{},pie,uie),{sendMessage:twt,getOneMessage:rwt,getEachMessage:nwt,getCancelSignal:iwt}=dne();var gie=!1,_ie=()=>{gie=!0},vo=()=>gie;var G_=null,yie=t=>(G_&&G_.destroy(),G_=new To({totalAllowedTime:t}),G_),Sie=()=>G_;var To=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&&vo())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await MA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{se.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var Eie={name:"@netlify/agent-runner-cli",type:"module",version:"1.163.0-PAW-328.9",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var JFe=KFe(import.meta.url),XFe=vs.dirname(JFe),QFe=ZFe(import.meta.url),Nf=ue("shell"),q$=new Set,vie={preferLocal:!0},Gt=(t,e,r)=>{let[n,i]=eBe(e,r),o={...vie,...i},s=hie(t,n,o);bie(s,o),xie(s);let a=r?.idleTimeout;return a&&a>0&&wie(s,a),s},Tie=(t,e)=>{let r={...vie,...e},n=mie(t,r);return bie(n,r),xie(n),e?.idleTimeout&&e.idleTimeout>0&&wie(n,e.idleTimeout),n},eBe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},bie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Ts.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new __).pipe(Ts.stdout),t.stderr?.pipe(new __).pipe(Ts.stderr);return}t.stdout?.pipe(Ts.stdout),t.stderr?.pipe(Ts.stderr)},V$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ts.kill(-t.pid,e),Nf.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Nf.error("Error killing process:",r),!1}},Aie=t=>V$(t,"SIGKILL"),wie=(t,e)=>{let r=null,n=()=>{Nf.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Nf.log(`Force killing idle process ${t.pid}`),Aie(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},xie=t=>{q$.add(t);let e=Sie();if(e){let r=e.onTimesUp(()=>{Nf.log(`Global timer expired, killing process ${t.pid}`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Nf.log(`Force killing process ${t.pid} after timeout`),Aie(t))},5e3)});t.on("exit",()=>{q$.delete(t),r()}),t.on("error",()=>{q$.delete(t),r()})}};function Jw(t,e){return!!ki(t,e)}function ki(t,e){if(!Ts.env.NETLIFY_LOCAL_MODE)try{let i=QFe.resolve(Eie.name),o=vs.dirname(i);for(;o!==vs.dirname(o);){let s=vs.dirname(o);if(vs.basename(s)==="node_modules"){let a=vs.join(s,".bin",e);if(Zw.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ts.env.NODE_PATH){let i=vs.join(Ts.env.NODE_PATH,".bin",e);if(Zw.existsSync(i))return i}let r=vs.join(t,"node_modules",".bin",e);if(Zw.existsSync(r))return r;let n=vs.join(XFe,"..","node_modules",".bin",e);if(Zw.existsSync(n))return n}var tBe=ue("utils"),rBe=t=>new Promise(e=>{setTimeout(e,t)});var H$=t=>{try{return new URL(t).hostname||null}catch{return null}},Xw=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await rBe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Fa=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},Rie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):tBe.error("Could not parse JSON",n))}},nBe=t=>t.charAt(0).toUpperCase()+t.slice(1),bo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():nBe(e)).join(" ");function bs(t,e){e&&t.log(`Skill invoked: ${e}`)}var Qw=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Cie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var W$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},iBe=1e4,Y$=(t,e=iBe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{createHash as oBe}from"crypto";import{createReadStream as sBe}from"fs";import ex from"fs/promises";import kie from"os";import tx from"path";var Iie=ue("repo"),Mie="runner-diffs-",Die=t=>`${Mie}${t}-`,Lie=async t=>{let e=kie.tmpdir(),r;try{r=await ex.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(Mie)&&!n.startsWith(Die(t))).map(n=>ex.rm(tx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},tn=(t,e={})=>Gt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),rx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Iie.info("Getting runner diffs");let n=await cBe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=uBe(o);await dBe(h,r)}Iie.info("Changes after processing"),await Z$(r);let s=await J$(o,r);if(await K$(s,r),i=await lBe(r),!i)return{hasChanges:!1,ignored:s};await tn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await ex.mkdtemp(tx.join(kie.tmpdir(),Die(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:E})=>{let b=tx.join(a,y);await tn([...E?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await ex.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await Nie(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await Oie(d,h)||(f=h)}await Nie(r),se.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Oie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Pie=async t=>{let e=oBe("sha256");for await(let r of sBe(t))e.update(r);return e.digest("hex")},Oie=async(t,e)=>t.size===e.size&&await Pie(t.path)===await Pie(e.path),Nie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await tn(["reset","--soft","HEAD~1"],{cwd:t})},K$=async(t=[],e=process.cwd())=>{await tn(["add",".",...t],{cwd:e})},Z$=async(t=process.cwd())=>{let e=await tn(["status","-s"],{cwd:t});return String(e.stdout??"")},$ie=/.. (.+)?\.log$/,aBe=[$ie],cBe=async(t=process.cwd())=>{let e=await Z$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
115
|
+
if (condition) { yield value; }`)};import{Buffer as f1e}from"buffer";import{StringDecoder as p1e}from"string_decoder";var Dw=(t,e,r)=>{if(r)return;if(t)return{transform:h1e.bind(void 0,new TextEncoder)};let n=new p1e(e);return{transform:m1e.bind(void 0,n),final:g1e.bind(void 0,n)}},h1e=function*(t,e){f1e.isBuffer(e)?yield _s(e):typeof e=="string"?yield t.encode(e):yield e},m1e=function*(t,e){yield zt(e)?t.write(e):e},g1e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as zre}from"util";var a$=zre(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Lw=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=y1e}=e[r];for await(let i of n(t))yield*Lw(i,e,r+1)},Gre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*_1e(r,Number(e),t)},_1e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Lw(n,r,e+1)},qre=zre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),y1e=function*(t){yield t};var c$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Vre=(t,e)=>[...e.flatMap(r=>[...Fl(r,t,0)]),...$_(t)],Fl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=E1e}=e[r];for(let i of n(t))yield*Fl(i,e,r+1)},$_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*S1e(r,Number(e),t)},S1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Fl(n,r,e+1)},E1e=function*(t){yield t};var l$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Wre(t,s,o),l=Ul(e),u=Ul(r),d=l?a$.bind(void 0,Lw,a):c$.bind(void 0,Fl),f=l||u?a$.bind(void 0,Gre,a):c$.bind(void 0,$_),p=l||u?qre.bind(void 0,a):void 0;return{stream:new v1e({writableObjectMode:n,writableHighWaterMark:Hre(n),readableObjectMode:i,readableHighWaterMark:Hre(i),transform(m,y,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},$w=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=Wre(s,r,a);t=Vre(c,t)}return t},Wre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Fre(n,a)},Dw(r,s,n),Mw(r,o,n,c),{transform:t,final:e},{transform:Bre(i,a)},Ure({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Yre=(t,e)=>{for(let r of T1e(t))b1e(t,r,e)},T1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),b1e=(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 ${$a[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>A1e(a,n));r.input=R_(s)},A1e=(t,e)=>{let r=$w(t,e,"utf8",!0);return w1e(r),R_(r)},w1e=t=>{let e=t.find(r=>typeof r!="string"&&!zt(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 I1e,appendFileSync as P1e}from"fs";var Uw=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&yf(r,n)&&!En.has(e)&&x1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&R1e.has(o))||t.every(({type:i})=>Qn.has(i))),x1e=t=>t===1||t===2,R1e=new Set(["pipe","overlapped"]),Kre=async(t,e,r,n)=>{for await(let i of t)C1e(e)||Jre(i,r,n)},Zre=(t,e,r)=>{for(let n of t)Jre(n,e,r)},C1e=t=>t._readableState.pipes.length>0,Jre=(t,e,r)=>{let n=XA(t);go({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Xre=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>O1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},O1e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=Qte(t,o,d),p=_s(f),{stdioItems:h,objectMode:m}=e[r],y=N1e([p],h,c,n),{serializedResult:E,finalResult:b=E}=k1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});M1e({serializedResult:E,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let A=a[r]?b:void 0;try{return n.error===void 0&&D1e(E,h,i),A}catch(S){return n.error=S,A}},N1e=(t,e,r,n)=>{try{return $w(t,e,r,!1)}catch(i){return n.error=i,t}},k1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:R_(t)};let s=p7(t,r);return n[o]?{serializedResult:s,finalResult:s$(s,!i[o],e)}:{serializedResult:s}},M1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Uw({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=s$(t,!1,s);try{Zre(a,e,n)}catch(c){r.error??=c}},D1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Nw.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?P1e(n,t):(r.add(o),I1e(n,t))}};var Qre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Es(e,r,"all")]:Array.isArray(e)?[Es(t,r,"all"),...e]:zt(t)&&zt(e)?mL([t,e]):`${t}${e}`};import{once as u$}from"events";var ene=async(t,e)=>{let[r,n]=await L1e(t);return e.isForcefullyTerminated??=!1,[r,n]},L1e=async t=>{let[e,r]=await Promise.allSettled([u$(t,"spawn"),u$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?tne(t):r.value},tne=async t=>{try{return await u$(t,"exit")}catch{return tne(t)}},rne=async t=>{let[e,r]=await t;if(!$1e(e,r)&&d$(e,r))throw new Pi;return[e,r]},$1e=(t,e)=>t===void 0&&e===void 0,d$=(t,e)=>t!==0||e!==null;var nne=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=U1e(t,e,r),s=o?.code==="ETIMEDOUT",a=Xte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},U1e=(t,e,r)=>t!==void 0?t:d$(e,r)?new Pi:void 0;var ine=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=B1e(t,e,r),d=G1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Cf(d,c,l)},B1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ew(t,e,r),a=j1e(r),{file:c,commandArguments:l,options:u}=Ew(t,e,a);z1e(u);let d=Mre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},j1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,z1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Fw("ipcInput"),t&&Fw("ipc: true"),r&&Fw("detached: true"),n&&Fw("cancelSignal")},Fw=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},G1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=q1e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=nne(c,r),{output:h,error:m=l}=Xre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,A)=>Es(b,r,A)),E=Es(Qre(h,r),r,"all");return H1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:E,options:r,command:n,escapedCommand:i,startTime:a})},q1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Yre(o,r);let a=V1e(r);return F1e(...vw(t,e,a))}catch(a){return Rf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},V1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:Cw(e)}),H1e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?Iw({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):L_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as kFe}from"events";import{spawn as MFe}from"child_process";import lne from"process";import{once as f$,on as W1e}from"events";var one=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(vf({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:hw(t)}),Y1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),Y1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{uw(e,i);let o=La(t,e,r),s=new AbortController;try{return await Promise.race([K1e(o,n,s),Z1e(o,r,s),J1e(o,r,s)])}catch(a){throw Tf(t),a}finally{s.abort(),dw(e,i)}},K1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await f$(t,"message",{signal:r});return n}for await(let[n]of W1e(t,"message",{signal:r}))if(e(n))return n},Z1e=async(t,e,{signal:r})=>{await f$(t,"disconnect",{signal:r}),Vee(e)},J1e=async(t,e,{signal:r})=>{let[n]=await f$(t,"strict:error",{signal:r});throw aw(n,e)};import{once as ane,on as X1e}from"events";var cne=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>p$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),p$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{vf({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:hw(t)}),uw(e,o);let s=La(t,e,r),a=new AbortController,c={};return Q1e(t,s,a),eUe({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),tUe({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},Q1e=async(t,e,r)=>{try{await ane(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},eUe=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await ane(t,"strict:error",{signal:r.signal});n.error=aw(i,e),r.abort()}catch{}},tUe=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of X1e(r,"message",{signal:o.signal}))sne(s),yield c}catch{sne(s)}finally{o.abort(),dw(e,a),n||Tf(t),i&&await t}},sne=({error:t})=>{if(t)throw t};var une=(t,{ipc:e})=>{Object.assign(t,fne(t,!1,e))},dne=()=>{let t=lne,e=!0,r=lne.channel!==void 0;return{...fne(t,e,r),getCancelSignal:yte.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},fne=(t,e,r)=>({sendMessage:yw.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:one.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:cne.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as rUe}from"child_process";import{PassThrough as nUe,Readable as iUe,Writable as oUe,Duplex as sUe}from"stream";var pne=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{n$(n);let a=new rUe;aUe(a,n),Object.assign(a,{readable:cUe,writable:lUe,duplex:uUe});let c=Rf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=dUe(c,s,i);return{subprocess:a,promise:l}},aUe=(t,e)=>{let r=U_(),n=U_(),i=U_(),o=Array.from({length:e.length-3},U_),s=U_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},U_=()=>{let t=new nUe;return t.end(),t},cUe=()=>new iUe({read(){}}),lUe=()=>new oUe({write(){}}),uUe=()=>new sUe({read(){},write(){}}),dUe=async(t,e,r)=>Cf(t,e,r);import{createReadStream as hne,createWriteStream as mne}from"fs";import{Buffer as fUe}from"buffer";import{Readable as F_,Writable as pUe,Duplex as hUe}from"stream";var _ne=(t,e)=>kw(mUe,t,e,!1),B_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${$a[t]}.`)},gne={fileNumber:B_,generator:l$,asyncGenerator:l$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:hUe.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},mUe={input:{...gne,fileUrl:({value:t})=>({stream:hne(t)}),filePath:({value:{file:t}})=>({stream:hne(t)}),webStream:({value:t})=>({stream:F_.fromWeb(t)}),iterable:({value:t})=>({stream:F_.from(t)}),asyncIterable:({value:t})=>({stream:F_.from(t)}),string:({value:t})=>({stream:F_.from(t)}),uint8Array:({value:t})=>({stream:F_.from(fUe.from(t))})},output:{...gne,fileUrl:({value:t})=>({stream:mne(t)}),filePath:({value:{file:t,append:e}})=>({stream:mne(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:pUe.fromWeb(t)}),iterable:B_,asyncIterable:B_,string:B_,uint8Array:B_}};import{on as gUe,once as yne}from"events";import{PassThrough as _Ue,getDefaultHighWaterMark as yUe}from"stream";import{finished as vne}from"stream/promises";function Bl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)m$(i);let e=t.some(({readableObjectMode:i})=>i),r=SUe(t,e),n=new h$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var SUe=(t,e)=>{if(t.length===0)return yUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},h$=class extends _Ue{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(m$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=EUe(this,this.#e,this.#o);let r=bUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(m$(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)}},EUe=async(t,e,r)=>{Bw(t,Sne);let n=new AbortController;try{await Promise.race([vUe(t,n),TUe(t,e,r,n)])}finally{n.abort(),Bw(t,-Sne)}},vUe=async(t,{signal:e})=>{try{await vne(t,{signal:e,cleanup:!0})}catch(r){throw Tne(t,r),r}},TUe=async(t,e,r,{signal:n})=>{for await(let[i]of gUe(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},m$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},bUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Bw(t,Ene);let a=new AbortController;try{await Promise.race([AUe(o,e,a),wUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),xUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Bw(t,-Ene)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?g$(t):RUe(t))},AUe=async(t,e,{signal:r})=>{try{await t,r.aborted||g$(e)}catch(n){r.aborted||Tne(e,n)}},wUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await vne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;bne(s)?i.add(e):Ane(t,s)}},xUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await yne(t,i,{signal:o}),!t.readable)return yne(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},RUe=t=>{t.writable&&t.end()},Tne=(t,e)=>{bne(e)?g$(t):Ane(t,e)},bne=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",g$=t=>{(t.readable||t.writable)&&t.destroy()},Ane=(t,e)=>{t.destroyed||(t.once("error",CUe),t.destroy(e))},CUe=()=>{},Bw=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Sne=2,Ene=1;import{finished as wne}from"stream/promises";var Pf=(t,e)=>{t.pipe(e),IUe(t,e),PUe(t,e)},IUe=async(t,e)=>{if(!(Ii(t)||Ii(e))){try{await wne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}_$(e)}},_$=t=>{t.writable&&t.end()},PUe=async(t,e)=>{if(!(Ii(t)||Ii(e))){try{await wne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}y$(t)}},y$=t=>{t.readable&&t.destroy()};var xne=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Qn.has(c)))OUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Qn.has(c)))kUe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:Bl(o);Pf(s,i)}},OUe=(t,e,r,n)=>{r==="output"?Pf(t.stdio[n],e):Pf(e,t.stdio[n]);let i=NUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},NUe=["stdin","stdout","stderr"],kUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;MUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},MUe=(t,{signal:e})=>{Ii(t)&&Ll(t,DUe,e)},DUe=2;import{addAbortListener as UUe}from"events";var jl=[];jl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&jl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&jl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var jw=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",S$=Symbol.for("signal-exit emitter"),E$=globalThis,LUe=Object.defineProperty.bind(Object),v$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(E$[S$])return E$[S$];LUe(E$,S$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},zw=class{},$Ue=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),T$=class extends zw{onExit(){return()=>{}}load(){}unload(){}},b$=class extends zw{#e=A$.platform==="win32"?"SIGINT":"SIGHUP";#r=new v$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of jl)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!jw(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of jl)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,jl.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return jw(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&jw(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)}},A$=globalThis.process,{onExit:Rne,load:aTt,unload:cTt}=$Ue(jw(A$)?new b$(A$):new T$);var Cne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Rne(()=>{t.kill()});UUe(n,()=>{i()})};var Pne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=QA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=FUe(r,n,i),{sourceStream:d,sourceError:f}=jUe(t,l),{options:p,fileDescriptors:h}=yo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},FUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=BUe(t,e,...r),a=lw(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},BUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Ine,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||pL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=GA(r,...n);return{destination:e(Ine)(i,o,s),pipeOptions:s}}if(yo.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}`)},Ine=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),jUe=(t,e)=>{try{return{sourceStream:bf(t,e)}}catch(r){return{sourceError:r}}};var Nne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=zUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw w$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},zUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return y$(t),n;if(e!==void 0)return _$(r),e},w$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Rf({error:t,command:One,escapedCommand:One,fileDescriptors:e,options:r,startTime:n,isSync:!1}),One="source.pipe(destination)";var kne=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as GUe}from"stream/promises";var Mne=(t,e,r)=>{let n=Gw.has(e)?VUe(t,e):qUe(t,e);return Ll(t,WUe,r.signal),Ll(e,YUe,r.signal),HUe(e),n},qUe=(t,e)=>{let r=Bl([t]);return Pf(r,e),Gw.set(e,r),r},VUe=(t,e)=>{let r=Gw.get(e);return r.add(t),r},HUe=async t=>{try{await GUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Gw.delete(t)},Gw=new WeakMap,WUe=2,YUe=1;import{aborted as KUe}from"util";var Dne=(t,e)=>t===void 0?[]:[ZUe(t,e)],ZUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await KUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw w$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var qw=(t,...e)=>{if(Nt(e[0]))return qw.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Pne(t,...e),i=JUe({...n,destination:r});return i.pipe=qw.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},JUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=XUe(t,i);Nne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Mne(e,o,d);return await Promise.race([kne(u),...Dne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},XUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as oFe}from"timers/promises";import{on as QUe}from"events";import{getDefaultHighWaterMark as eFe}from"stream";var Vw=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return tFe(e,s),$ne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},tFe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},x$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;rFe(e,s,t);let a=t.readableObjectMode&&!o;return $ne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},rFe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},$ne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=QUe(t,"data",{signal:e.signal,highWaterMark:Lne,highWatermark:Lne});return nFe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},R$=eFe(!0),Lne=R$,nFe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=iFe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Fl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*$_(a)}},iFe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Dw(t,r,!e),Mw(t,i,!n,{})].filter(Boolean);var Une=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=sFe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([aFe(t),d]);return}let f=i$(c,r),p=x$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([cFe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},sFe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Uw({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=x$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Kre(a,t,r,o)},aFe=async t=>{await oFe(),t.readableFlowing===null&&t.resume()},cFe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await ww(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await xw(r,{maxBuffer:o})):await xf(r,{maxBuffer:o})}catch(a){return Fne(Kte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},C$=async t=>{try{return await t}catch(e){return Fne(e)}},Fne=({bufferedData:t})=>d7(t)?new Uint8Array(t):t;import{finished as lFe}from"stream/promises";var j_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=uFe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],lFe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||pFe(a,e,r,n)}finally{s.abort()}},uFe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&dFe(t,r,n),n},dFe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{fFe(e,r),n.call(t,...i)}},fFe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},pFe=(t,e,r,n)=>{if(!hFe(t,e,r,n))throw t},hFe=(t,e,r,n=!0)=>r.propagating?Bne(t)||Hw(t):(r.propagating=!0,I$(r,e)===n?Bne(t):Hw(t)),I$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Hw=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Bne=t=>t?.code==="EPIPE";var jne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>P$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),P$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=j_(t,e,l);if(I$(l,e)){await u;return}let[d]=await Promise.all([Une({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var zne=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Bl([t,e].filter(Boolean)):void 0,Gne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>P$({...mFe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:gFe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),mFe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},gFe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as _Fe}from"events";var qne=t=>yf(t,"ipc"),Vne=(t,e)=>{let r=XA(t);go({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Hne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=qne(o),a=ys(e,"ipc"),c=ys(r,"ipc");for await(let l of p$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Zte(t,i,c),i.push(l)),s&&Vne(l,o);return i},Wne=async(t,e)=>(await Promise.allSettled([t]),e);var Yne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:E})=>{let b=ene(t,f),A={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=jne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),R=Gne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),P=[],O=Hne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),N=yFe(m,t,A),C=SFe(h,A);try{return await Promise.race([Promise.all([{},rne(b),Promise.all(S),R,O,Cte(t,d),...N,...C]),y,EFe(t,E),...bte(t,o,f,E),...qee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...vte({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch(L){return f.terminationReason??="other",Promise.all([{error:L},b,Promise.all(S.map(_=>C$(_))),C$(R),Wne(O,P),Promise.allSettled(N),Promise.allSettled(C)])}},yFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:j_(n,i,r)),SFe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ni(o,{checkOpen:!1})&&!Ii(o)).map(({type:i,value:o,stream:s=o})=>j_(s,n,e,{isSameDirection:Qn.has(i),stopOnExit:i==="native"}))),EFe=async(t,{signal:e})=>{let[r]=await _Fe(t,"error",{signal:e});throw r};var Kne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),z_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=_o();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Of=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 vFe}from"stream";import{callbackify as TFe}from"util";import{finished as Zne}from"stream/promises";var O$=async t=>{if(t!==void 0)try{await N$(t)}catch{}},Jne=async t=>{if(t!==void 0)try{await k$(t)}catch{}},N$=async t=>{await Zne(t,{cleanup:!0,readable:!1,writable:!0})},k$=async t=>{await Zne(t,{cleanup:!0,readable:!0,writable:!1})},Ww=async(t,e)=>{if(await t,e)throw e},Yw=(t,e,r)=>{r&&!Hw(r)?t.destroy(r):e&&t.destroy()};var Xne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||En.has(r),{subprocessStdout:a,waitReadableDestroy:c}=M$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=D$(a,s),{read:f,onStdoutDataDone:p}=L$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new vFe({read:f,destroy:TFe(U$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return $$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},M$=(t,e,r)=>{let n=bf(t,e),i=z_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},D$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:R$},L$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=_o(),s=Vw({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){bFe(this,s,o)},onStdoutDataDone:o}},bFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},$$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await k$(t),await n,await O$(i),await e,r.readable&&r.push(null)}catch(o){await O$(i),Qne(r,o)}},U$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Of(r,e)&&(Qne(t,n),await Ww(e,n))},Qne=(t,e)=>{Yw(t,t.readable,e)};import{Writable as AFe}from"stream";import{callbackify as eie}from"util";var tie=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=F$(t,r,e),s=new AFe({...B$(n,t,i),destroy:eie(z$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return j$(n,s),s},F$=(t,e,r)=>{let n=lw(t,e),i=z_(r,n,"writableFinal"),o=z_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},B$=(t,e,r)=>({write:wFe.bind(void 0,t),final:eie(xFe.bind(void 0,t,e,r))}),wFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},xFe=async(t,e,r)=>{await Of(r,e)&&(t.writable&&t.end(),await e)},j$=async(t,e,r)=>{try{await N$(t),e.writable&&e.end()}catch(n){await Jne(r),rie(e,n)}},z$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Of(r,e),await Of(n,e)&&(rie(t,i),await Ww(e,i))},rie=(t,e)=>{Yw(t,t.writable,e)};import{Duplex as RFe}from"stream";import{callbackify as CFe}from"util";var nie=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||En.has(r),{subprocessStdout:c,waitReadableDestroy:l}=M$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=F$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=D$(c,a),{read:y,onStdoutDataDone:E}=L$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new RFe({read:y,...B$(u,t,d),destroy:CFe(IFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return $$({subprocessStdout:c,onStdoutDataDone:E,readable:b,subprocess:t,subprocessStdin:u}),j$(u,b,c),b},IFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([U$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),z$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var G$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||En.has(e),s=bf(t,r),a=Vw({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return PFe(a,s,t)},PFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var iie=(t,{encoding:e})=>{let r=Kne();t.readable=Xne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=tie.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=nie.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=G$.bind(void 0,t,e),t[Symbol.asyncIterator]=G$.bind(void 0,t,e,{})};var oie=(t,e)=>{for(let[r,n]of NFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},OFe=(async()=>{})().constructor.prototype,NFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(OFe,t)]);var sie=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=DFe(t,e,r),{subprocess:f,promise:p}=$Fe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=qw.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),oie(f,p),yo.set(f,{options:u,fileDescriptors:d}),f},DFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ew(t,e,r),{file:a,commandArguments:c,options:l}=Ew(t,e,r),u=LFe(l),d=_ne(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},LFe=({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}},$Fe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=MFe(...vw(t,e,r))}catch(h){return pne({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;kFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];xne(c,a,l),Cne(c,r,l);let d={},f=_o();c.kill=zee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=zne(c,r),iie(c,r),une(c,r);let p=UFe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},UFe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,y]=await Yne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((S,R)=>Es(S,e,R)),b=Es(m,e,"all"),A=FFe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Cf(A,n,e)},FFe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?L_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof So,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Iw({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Kw=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,BFe(n,t[n],i)]));return{...t,...r}},BFe=(t,e,r)=>jFe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,jFe=new Set(["env",...SL]);var Ua=(t,e,r,n)=>{let i=(s,a,c)=>Ua(s,a,r,c),o=(...s)=>zFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},zFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,Kw(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=GFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?ine(a,c,l):sie(a,c,l,i)},GFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=_7(e)?y7(e,r):[e,...r],[s,a,c]=GA(...o),l=Kw(Kw(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var aie=({file:t,commandArguments:e})=>lie(t,e),cie=({file:t,commandArguments:e})=>({...lie(t,e),isSync:!0}),lie=(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]=qFe(t);return{file:r,commandArguments:n}},qFe=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(VFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},VFe=/ +/g;var uie=(t,e,r)=>{t.sync=e(HFe,r),t.s=t.sync},die=({options:t})=>fie(t),HFe=({options:t})=>({...fie(t),isSync:!0}),fie=t=>({options:{...WFe(t),...t}}),WFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},pie={preferLocal:!0};var hie=Ua(()=>({})),JAt=Ua(()=>({isSync:!0})),mie=Ua(aie),XAt=Ua(cie),QAt=Ua(wte),ewt=Ua(die,{},pie,uie),{sendMessage:twt,getOneMessage:rwt,getEachMessage:nwt,getCancelSignal:iwt}=dne();var gie=!1,_ie=()=>{gie=!0},vo=()=>gie;var G_=null,yie=t=>(G_&&G_.destroy(),G_=new To({totalAllowedTime:t}),G_),Sie=()=>G_;var To=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&&vo())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await MA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{se.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var Eie={name:"@netlify/agent-runner-cli",type:"module",version:"1.163.0-PAW-328.10",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var JFe=KFe(import.meta.url),XFe=vs.dirname(JFe),QFe=ZFe(import.meta.url),Nf=ue("shell"),q$=new Set,vie={preferLocal:!0},Gt=(t,e,r)=>{let[n,i]=eBe(e,r),o={...vie,...i},s=hie(t,n,o);bie(s,o),xie(s);let a=r?.idleTimeout;return a&&a>0&&wie(s,a),s},Tie=(t,e)=>{let r={...vie,...e},n=mie(t,r);return bie(n,r),xie(n),e?.idleTimeout&&e.idleTimeout>0&&wie(n,e.idleTimeout),n},eBe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},bie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Ts.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new __).pipe(Ts.stdout),t.stderr?.pipe(new __).pipe(Ts.stderr);return}t.stdout?.pipe(Ts.stdout),t.stderr?.pipe(Ts.stderr)},V$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ts.kill(-t.pid,e),Nf.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Nf.error("Error killing process:",r),!1}},Aie=t=>V$(t,"SIGKILL"),wie=(t,e)=>{let r=null,n=()=>{Nf.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Nf.log(`Force killing idle process ${t.pid}`),Aie(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},xie=t=>{q$.add(t);let e=Sie();if(e){let r=e.onTimesUp(()=>{Nf.log(`Global timer expired, killing process ${t.pid}`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Nf.log(`Force killing process ${t.pid} after timeout`),Aie(t))},5e3)});t.on("exit",()=>{q$.delete(t),r()}),t.on("error",()=>{q$.delete(t),r()})}};function Jw(t,e){return!!ki(t,e)}function ki(t,e){if(!Ts.env.NETLIFY_LOCAL_MODE)try{let i=QFe.resolve(Eie.name),o=vs.dirname(i);for(;o!==vs.dirname(o);){let s=vs.dirname(o);if(vs.basename(s)==="node_modules"){let a=vs.join(s,".bin",e);if(Zw.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ts.env.NODE_PATH){let i=vs.join(Ts.env.NODE_PATH,".bin",e);if(Zw.existsSync(i))return i}let r=vs.join(t,"node_modules",".bin",e);if(Zw.existsSync(r))return r;let n=vs.join(XFe,"..","node_modules",".bin",e);if(Zw.existsSync(n))return n}var tBe=ue("utils"),rBe=t=>new Promise(e=>{setTimeout(e,t)});var H$=t=>{try{return new URL(t).hostname||null}catch{return null}},Xw=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await rBe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Fa=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},Rie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):tBe.error("Could not parse JSON",n))}},nBe=t=>t.charAt(0).toUpperCase()+t.slice(1),bo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():nBe(e)).join(" ");function bs(t,e){e&&t.log(`Skill invoked: ${e}`)}var Qw=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Cie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var W$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},iBe=1e4,Y$=(t,e=iBe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{createHash as oBe}from"crypto";import{createReadStream as sBe}from"fs";import ex from"fs/promises";import kie from"os";import tx from"path";var Iie=ue("repo"),Mie="runner-diffs-",Die=t=>`${Mie}${t}-`,Lie=async t=>{let e=kie.tmpdir(),r;try{r=await ex.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(Mie)&&!n.startsWith(Die(t))).map(n=>ex.rm(tx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},tn=(t,e={})=>Gt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),rx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Iie.info("Getting runner diffs");let n=await cBe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=uBe(o);await dBe(h,r)}Iie.info("Changes after processing"),await Z$(r);let s=await J$(o,r);if(await K$(s,r),i=await lBe(r),!i)return{hasChanges:!1,ignored:s};await tn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await ex.mkdtemp(tx.join(kie.tmpdir(),Die(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:E})=>{let b=tx.join(a,y);await tn([...E?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await ex.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await Nie(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await Oie(d,h)||(f=h)}await Nie(r),se.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Oie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Pie=async t=>{let e=oBe("sha256");for await(let r of sBe(t))e.update(r);return e.digest("hex")},Oie=async(t,e)=>t.size===e.size&&await Pie(t.path)===await Pie(e.path),Nie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await tn(["reset","--soft","HEAD~1"],{cwd:t})},K$=async(t=[],e=process.cwd())=>{await tn(["add",".",...t],{cwd:e})},Z$=async(t=process.cwd())=>{let e=await tn(["status","-s"],{cwd:t});return String(e.stdout??"")},$ie=/.. (.+)?\.log$/,aBe=[$ie],cBe=async(t=process.cwd())=>{let e=await Z$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
116
116
|
`).filter(i=>aBe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},lBe=async(t=process.cwd())=>{try{return await tn(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},q_=async(t=process.cwd())=>{let{stdout:e}=await tn(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},Uie=async(t=process.cwd())=>{let{stdout:e}=await tn(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},J$=async(t,e=process.cwd())=>{t||=await Z$(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
|
|
117
117
|
`).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${tx.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match($ie)?.[1];o&&n.push(`:!${o}.log`)}),n},Fie=async(t=process.cwd())=>{await tn(["reset","--hard","HEAD"],{cwd:t})},Bie=async(t=process.cwd())=>{let e=await tn(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
|
|
118
118
|
`).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},uBe=t=>{let e=t.split(`
|
|
@@ -404,7 +404,7 @@ priority = 20
|
|
|
404
404
|
`),gr.log("Ask policy allows the read-only database query command",{allowedPrefixes:i})}let n=Oc.join(wS.homedir(),".gemini","ask-policy.toml");return await Lu.mkdir(Oc.dirname(n),{recursive:!0}),await Lu.writeFile(n,r.join(`
|
|
405
405
|
`),"utf-8"),n};async function Lz({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=Uh.cwd(),cliPath:c="netlify",abortSignal:l=void 0,onSessionId:u=void 0,forceLowEffortForCreditWrapUp:d=void 0}){let{prompt:f}=t,p=cp("gemini",t.effort);t.effort&&!p&&gr.log(`Effort '${t.effort}' is not available on ${tI}; using its default`);let h=d?"low":p;Bqe({aiGateway:i});let m=await jqe({aiGateway:i,config:t,model:t.model});await Uqe({model:m,effort:h,creditWrapUpTurn:d});let y=[],E=[],b=[],A={},S=0,R=0,P,O,N,C,L,_=!!(o&&s),J=!1;_&&(J=await AS(s)),_&&!J&&(gr.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),se.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let k=t.mode==="ask",g=k?await zqe({config:t,cliPath:c}):void 0,v=[ki(a,"gemini"),...m?["--model",m]:[],...k?["--approval-mode","default","--policy",g]:["--yolo"],"--skip-trust","--output-format","stream-json",...J?["-r",s]:[],"-p",""],I=`${Uh.env.NVM_BIN}/node`;gr.log(`Running ${I} ${v.join(" ")}`);let K=e.utils.run(I,v,{all:!0,env:{...Uh.env,GEMINI_CLI_NO_RELAUNCH:"1"},cwd:a,idleTimeout:ms,cancelSignal:l});K.stdin?.end(f);let G=Fa(()=>{r?.({steps:y,duration:R}),n?.({steps:E,duration:R}),E=[]},250),ce=(fe,ge)=>{fe.id=S,S+=1,b.push(fe),y.push(fe),E.push(fe),ge||G.flush(),G(),ge&&G.flush()},ke=m||"default";t.answeredInteraction||ce({title:`Using ${tI} with ${ke}`,category:H.Environment},!0);let Pe=Mqe.createInterface({input:K.all});Pe.on("error",fe=>{gr.error("Readline interface error",{error:fe.message,stack:fe.stack})});let De="",Re=()=>{De&&ce({message:De.trim(),category:H.AgentMessage}),De=""};Pe.on("line",fe=>{let ge;try{if(fe.startsWith("[API Error")){let Ge=fe.match(/\[api error: (.+?)]$/i)?.[1];ge={type:"error",value:Rie(Ge,!1)?.error?.message||Ge||"Gemini encountered error"}}else ge=JSON.parse(fe)}catch{return}if(ge)switch(ge.type==="init"&&typeof ge.session_id=="string"&&(C=ge.session_id,u?.(C)),["message","result"].includes(ge.type)||Re(),ge.type){case"message":{ge.role!=="user"&&ge.content&&(De+=ge.content);break}case"tool_use":{if(ge.tool_name===Moe){if(ge.tool_id&&!L){let le=ac.safeParse(ge.parameters);le.success?(L={questions:le.data.questions},K.kill()):(gr.warn("Ignoring malformed ask tool input",{toolUseId:ge.tool_id,issues:cc(le.error.issues)}),se.inc("inference.malformed_ask",1))}break}let Ge=Dz[ge.tool_name]?.name??ge.tool_name,q=ge.parameters?.file_path,ae=q&&Oc.relative(a,q),M=ge.parameters?.command,x=ge.tool_name==="activate_skill"&&ge.parameters?.name,F=ge.tool_name==="run_shell_command"&&Ls(M),B=[Ge,ae&&`\`${ae}\``,M&&`\`${M}\``].filter(Boolean).join(" ");if(x)B=`Use ${bo(x)}`;else if(F)B="Generating the site";else if(ge.tool_name==="grep_search"){let{dir_path:le,pattern:ee}=ge.parameters||{};le&&ee?B=`Search in \`${le}\` for \`${ee}\``:le?B=`Search in \`${le}\``:ee&&(B=`Search for \`${ee}\``)}else if(ge.tool_name==="update_topic"){let le=ge.parameters?.title;le&&(B=`${Ge} \`${le}\``)}let V={title:B,category:F?H.SiteGeneration:Dz[ge.tool_name]?.category,...x&&{type:x}};A[ge.tool_id]=V,G.flush();break}case"tool_result":{let Ge=A[ge.tool_id];Ge&&(ge.output&&(Ge.message=`\`\`\`
|
|
406
406
|
${ge.output.trim()}
|
|
407
|
-
\`\`\``),ce(Ge,!0),Fqe(Ge));break}case"result":{R=ge.stats?.duration_ms,ge.stats&&(ka(ge.stats,m?{model:m}:{}),N=ge.stats),ge.status==="error"?O=ge.error?.message:P=De.trim();break}case"error":{O=ge.error;break}case"finished":break;case"init":break;default:{gr.warn("Unhandled message type:",ge.type);break}}});let Me=!1;if(await K.catch(fe=>{Me=Ya(fe,l),{error:O,result:P}=Dqe({catchError:fe,runCmd:K,error:O,result:P,runnerName:"Gemini"})}),Pe.close(),L)return G.flush(),{steps:b,duration:R,agentSessionId:C,resolvedModel:m,usage:N,pendingInteraction:L};let Ie=Me;return Ie&&(!P&&De.trim()&&(P=De.trim()),O=void 0),G.flush(),{steps:b,duration:R,result:await lc({initialResult:P,agentName:tI,hasError:!!O}),error:uc({error:O,agentName:tI}),isRetryableError:dc(O),isProviderUnavailableError:fc(O),resolvedModel:m,usage:N,agentSessionId:C,...h&&lue(m)?{effort:h}:{},...Ie?{aborted:!0}:{}}}var uue=async()=>{let t=Oc.join(wS.homedir(),".gemini");await Lu.rm(t,{recursive:!0,force:!0});let e=Oc.join(wS.homedir(),".agents","skills");await Lu.rm(e,{recursive:!0,force:!0})},due={baseDir:Oc.join(wS.homedir(),".gemini"),include:["tmp"]};import Uz from"fs/promises";import gue from"os";import xS from"path";import Bz from"process";import Vqe from"readline";import Gqe from"os";import hue from"path";import $z from"fs";var fue=ue("opencode_install"),pue="1.17.19",qqe=()=>hue.join(Gqe.homedir(),".netlify-agent-runner","opencode"),rI=async t=>{let e=ki(t,"opencode");if(e)return e;let r=qqe(),n=hue.join(r,"node_modules",".bin","opencode");if($z.existsSync(n))return n;$z.mkdirSync(r,{recursive:!0}),fue.log(`Installing opencode-ai@${pue} on demand`);let i=Date.now();await Gt("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${pue}`],{cwd:r});let o=Date.now()-i;if(se.timing("opencode.install_duration",o),fue.log(`Installed opencode-ai in ${o}ms`),!$z.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Ys=ue("runner_opencode"),nI="OpenCode",_ue="gateway",Hqe="z-ai/glm-5.3",Wqe=new Set(["z-ai/glm-5.3","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),Yqe=(t,e)=>!t||!PA.includes(t)?t:e&&Wqe.has(e)?"xhigh":"max",Fz={bash:{name:"Run command",category:H.RunCommand},read:{name:"Read file",category:H.FileRead},write:{name:"Edit file",category:H.FileWrite},edit:{name:"Edit file",category:H.FileWrite},glob:{name:"Find files",category:H.Explore},grep:{name:"Search files",category:H.Explore},list:{name:"List directory",category:H.Explore},task:{name:"Task",category:H.Task},todowrite:{name:"Update task list",category:H.Todo},webfetch:{name:"Fetch web",category:H.Web},websearch:{name:"Search web",category:H.Web},skill:{name:"Use Skill",category:H.Skill}},mue=t=>Fz[t]?.name||t,Kqe=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],Zqe=250,Jqe=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=ac.safeParse(e);return r.success?{questions:r.data.questions}:{issues:cc(r.error.issues)}},Xqe=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await Uz.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await Uz.rm(t,{force:!0}).catch(()=>{});let{questions:o,issues:s}=Jqe(i);if(!o){Ys.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:s}),se.inc("inference.malformed_ask",1);return}r&&e(o)},Zqe);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function Qqe({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let o=e.modelVersionOverrides?.opencode?.[e.accountType];o?n=o:r||(n=Ve().opencodeDefaultModel||Hqe),n&&(await i(n)||Ys.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function eVe({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:o}=t;if(!i||!o)throw new Error("No token or url provided from AI Gateway");let s=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[_ue]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:o},...Object.keys(s).length>0?{models:s}:{}}},...n?{mcp:Loe(n)}:{}};return{...Bz.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function jz({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:o,cwd:s=Bz.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,y,E,b=0,A=0,S,R=await Qqe({config:t,aiGateway:n,model:d}),P=Yqe(f,R);Ys.log(f?`Requesting reasoning effort '${f}' for model '${R}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${R}'; running at its own default`);let O=Za({creditWrapUpTurn:l})?await $oe():void 0,N=eVe({aiGateway:n,model:R,effort:P,questionsFilePath:O?.filePath}),C=[],L=[],_=0,J=Date.now(),k=await rI(s),g=["run","--format","json","--dangerously-skip-permissions","--agent","build",...R?["--model",`${_ue}/${R}`]:[],...i?o?["--session",o]:["--continue"]:[]];Ys.log(`Running ${k} ${g.join(" ")}`);let v=e.utils.run(k,g,{all:!0,env:N,cwd:s,idleTimeout:ms,cancelSignal:a});v.stdin?.end(u);let I=O?Xqe(O.filePath,Ge=>{S||(S={questions:Ge},v.kill())}):void 0,K=Fa(()=>{r?.({steps:L,duration:Date.now()-J})},250),G=(Ge,q)=>{let{wrapMessage:ae,...M}=Ge,x=Qw({...M,id:_});x.message&&ae&&(x.message=`\`\`\`
|
|
407
|
+
\`\`\``),ce(Ge,!0),Fqe(Ge));break}case"result":{R=ge.stats?.duration_ms,ge.stats&&(ka(ge.stats,m?{model:m}:{}),N=ge.stats),ge.status==="error"?O=ge.error?.message:P=De.trim();break}case"error":{O=ge.error;break}case"finished":break;case"init":break;default:{gr.warn("Unhandled message type:",ge.type);break}}});let Me=!1;if(await K.catch(fe=>{Me=Ya(fe,l),{error:O,result:P}=Dqe({catchError:fe,runCmd:K,error:O,result:P,runnerName:"Gemini"})}),Pe.close(),L)return G.flush(),{steps:b,duration:R,agentSessionId:C,resolvedModel:m,usage:N,pendingInteraction:L};let Ie=Me;return Ie&&(!P&&De.trim()&&(P=De.trim()),O=void 0),G.flush(),{steps:b,duration:R,result:await lc({initialResult:P,agentName:tI,hasError:!!O}),error:uc({error:O,agentName:tI}),isRetryableError:dc(O),isProviderUnavailableError:fc(O),resolvedModel:m,usage:N,agentSessionId:C,...h&&lue(m)?{effort:h}:{},...Ie?{aborted:!0}:{}}}var uue=async()=>{let t=Oc.join(wS.homedir(),".gemini");await Lu.rm(t,{recursive:!0,force:!0});let e=Oc.join(wS.homedir(),".agents","skills");await Lu.rm(e,{recursive:!0,force:!0})},due={baseDir:Oc.join(wS.homedir(),".gemini"),include:["tmp"]};import Uz from"fs/promises";import gue from"os";import xS from"path";import Bz from"process";import Vqe from"readline";import Gqe from"os";import hue from"path";import $z from"fs";var fue=ue("opencode_install"),pue="1.17.19",qqe=()=>hue.join(Gqe.homedir(),".netlify-agent-runner","opencode"),rI=async t=>{let e=ki(t,"opencode");if(e)return e;let r=qqe(),n=hue.join(r,"node_modules",".bin","opencode");if($z.existsSync(n))return n;$z.mkdirSync(r,{recursive:!0}),fue.log(`Installing opencode-ai@${pue} on demand`);let i=Date.now();await Gt("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${pue}`],{cwd:r});let o=Date.now()-i;if(se.timing("opencode.install_duration",o),fue.log(`Installed opencode-ai in ${o}ms`),!$z.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Ys=ue("runner_opencode"),nI="OpenCode",_ue="gateway",Hqe="z-ai/glm-5.3-flash",Wqe=new Set(["z-ai/glm-5.3-flash","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),Yqe=(t,e)=>!t||!PA.includes(t)?t:e&&Wqe.has(e)?"xhigh":"max",Fz={bash:{name:"Run command",category:H.RunCommand},read:{name:"Read file",category:H.FileRead},write:{name:"Edit file",category:H.FileWrite},edit:{name:"Edit file",category:H.FileWrite},glob:{name:"Find files",category:H.Explore},grep:{name:"Search files",category:H.Explore},list:{name:"List directory",category:H.Explore},task:{name:"Task",category:H.Task},todowrite:{name:"Update task list",category:H.Todo},webfetch:{name:"Fetch web",category:H.Web},websearch:{name:"Search web",category:H.Web},skill:{name:"Use Skill",category:H.Skill}},mue=t=>Fz[t]?.name||t,Kqe=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],Zqe=250,Jqe=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=ac.safeParse(e);return r.success?{questions:r.data.questions}:{issues:cc(r.error.issues)}},Xqe=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await Uz.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await Uz.rm(t,{force:!0}).catch(()=>{});let{questions:o,issues:s}=Jqe(i);if(!o){Ys.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:s}),se.inc("inference.malformed_ask",1);return}r&&e(o)},Zqe);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function Qqe({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let o=e.modelVersionOverrides?.opencode?.[e.accountType];o?n=o:r||(n=Ve().opencodeDefaultModel||Hqe),n&&(await i(n)||Ys.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function eVe({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:o}=t;if(!i||!o)throw new Error("No token or url provided from AI Gateway");let s=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[_ue]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:o},...Object.keys(s).length>0?{models:s}:{}}},...n?{mcp:Loe(n)}:{}};return{...Bz.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function jz({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:o,cwd:s=Bz.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,y,E,b=0,A=0,S,R=await Qqe({config:t,aiGateway:n,model:d}),P=Yqe(f,R);Ys.log(f?`Requesting reasoning effort '${f}' for model '${R}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${R}'; running at its own default`);let O=Za({creditWrapUpTurn:l})?await $oe():void 0,N=eVe({aiGateway:n,model:R,effort:P,questionsFilePath:O?.filePath}),C=[],L=[],_=0,J=Date.now(),k=await rI(s),g=["run","--format","json","--dangerously-skip-permissions","--agent","build",...R?["--model",`${_ue}/${R}`]:[],...i?o?["--session",o]:["--continue"]:[]];Ys.log(`Running ${k} ${g.join(" ")}`);let v=e.utils.run(k,g,{all:!0,env:N,cwd:s,idleTimeout:ms,cancelSignal:a});v.stdin?.end(u);let I=O?Xqe(O.filePath,Ge=>{S||(S={questions:Ge},v.kill())}):void 0,K=Fa(()=>{r?.({steps:L,duration:Date.now()-J})},250),G=(Ge,q)=>{let{wrapMessage:ae,...M}=Ge,x=Qw({...M,id:_});x.message&&ae&&(x.message=`\`\`\`
|
|
408
408
|
${x.message}
|
|
409
409
|
\`\`\``),_+=1,C.push(x),L.push(x),q||K.flush(),K(),q&&K.flush()},ce=R||"default";t.answeredInteraction||G({title:`Using ${nI} with ${ce}`,category:H.Environment},!0);let ke=Vqe.createInterface({input:v.all});ke.on("error",Ge=>{Ys.error("Readline interface error",{error:Ge.message,stack:Ge.stack})});let Pe="",De,Re=new Set,Me=()=>{Pe&&(G({message:Pe,category:H.AgentMessage}),De=Pe,Pe="")};ke.on("line",Ge=>{let q;try{q=JSON.parse(Ge)}catch{Ys.log("Could not parse line",Ge);return}switch(q.sessionID&&q.sessionID!==p&&(p=q.sessionID,c?.(p)),q.type){case"step_start":{Me();break}case"text":{let ae=q.part?.text;ae&&(Pe+=ae);break}case"reasoning":{Me();let ae=q.part?.text;ae&&G({title:"Reasoning",message:ae,category:H.Reasoning},!0);break}case"tool_use":{Me();let ae=q.part?.tool;if(!ae)break;let M=q.part?.state?.input??{},x=q.part?.state?.status,F=q.part?.state?.output,B=q.part?.state?.error;if(ae===Doe){x==="error"&&Ys.warn("Ask tool call rejected before it could pause the run",{error:B});break}if(x==="error"&&(b+=1),(x==="completed"||x==="error")&&(A+=1),ae==="skill"){let we=typeof M.name=="string"?M.name:void 0;if(we){let We=bo(we);bs(Ys,We),G({title:`Use ${We}`,category:H.Skill,type:we},!0);break}}if(ae==="todowrite"){let we=Kqe(M.todos);G({title:mue(ae),category:we.length>0?Fz.todowrite.category:H.Tool,...we.length>0?{tasks:we}:{}},!0);break}let V=typeof M.command=="string"?M.command:void 0,le=V?Ls(V):!1,ee=typeof M.path=="string"&&M.path||typeof M.file_path=="string"&&M.file_path||typeof M.pattern=="string"&&M.pattern||void 0,Ce,ve;if(le)Ce="Generating the site",ve=H.SiteGeneration;else if(V&&ae==="bash")Ce=`Running \`${V}\``,ve=H.RunCommand;else{let we=ee&&`\`${xS.relative(s,ee)}\``;Ce=[mue(ae),we].filter(Boolean).join(" "),ve=Fz[ae]?.category||H.AgentMessage}let Ae,ne=["bash","read","glob","grep","list","webfetch","websearch"].includes(ae);B?Ae=`\`\`\`
|
|
410
410
|
${B.trim()}
|
package/dist/bin.js
CHANGED
|
@@ -600,7 +600,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
600
600
|
`,LF:`
|
|
601
601
|
`,concatBytes:D3},uEt=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},dEt={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:uEt};import{Buffer as fEt}from"buffer";var HTe=(t,e)=>t?void 0:pEt.bind(void 0,e),pEt=function*(t,e){if(typeof e!="string"&&!Dr(e)&&!fEt.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},GTe=(t,e)=>t?hEt.bind(void 0,e):mEt.bind(void 0,e),hEt=function*(t,e){WTe(t,e),yield e},mEt=function*(t,e){if(WTe(t,e),typeof e!="string"&&!Dr(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},WTe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
602
602
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
603
|
-
if (condition) { yield value; }`)};import{Buffer as gEt}from"buffer";import{StringDecoder as _Et}from"string_decoder";var UC=(t,e,r)=>{if(r)return;if(t)return{transform:yEt.bind(void 0,new TextEncoder)};let n=new _Et(e);return{transform:SEt.bind(void 0,n),final:EEt.bind(void 0,n)}},yEt=function*(t,e){gEt.isBuffer(e)?yield Ac(e):typeof e=="string"?yield t.encode(e):yield e},SEt=function*(t,e){yield Dr(e)?t.write(e):e},EEt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as YTe}from"util";var U3=YTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),FC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=bEt}=e[r];for await(let i of n(t))yield*FC(i,e,r+1)},KTe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*vEt(r,Number(e),t)},vEt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*FC(n,r,e+1)},JTe=YTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),bEt=function*(t){yield t};var F3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},ZTe=(t,e)=>[...e.flatMap(r=>[...Yf(r,t,0)]),...eT(t)],Yf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=wEt}=e[r];for(let i of n(t))yield*Yf(i,e,r+1)},eT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*TEt(r,Number(e),t)},TEt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Yf(n,r,e+1)},wEt=function*(t){yield t};var j3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=QTe(t,o,s),l=Wf(e),u=Wf(r),d=l?U3.bind(void 0,FC,a):F3.bind(void 0,Yf),f=l||u?U3.bind(void 0,KTe,a):F3.bind(void 0,eT),p=l||u?JTe.bind(void 0,a):void 0;return{stream:new REt({writableObjectMode:n,writableHighWaterMark:XTe(n),readableObjectMode:i,readableHighWaterMark:XTe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},jC=(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=QTe(o,r,a);t=ZTe(c,t)}return t},QTe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:HTe(n,a)},UC(r,o,n),MC(r,s,n,c),{transform:t,final:e},{transform:GTe(i,a)},VTe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var ewe=(t,e)=>{for(let r of AEt(t))xEt(t,r,e)},AEt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),xEt=(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 ${Iu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>IEt(a,n));r.input=Vb(o)},IEt=(t,e)=>{let r=jC(t,e,"utf8",!0);return PEt(r),Vb(r)},PEt=t=>{let e=t.find(r=>typeof r!="string"&&!Dr(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 kEt,appendFileSync as $Et}from"fs";var qC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&jg(r,n)&&!qi.has(e)&&OEt(n)&&(t.some(({type:i,value:s})=>i==="native"&&CEt.has(s))||t.every(({type:i})=>ws.has(i))),OEt=t=>t===1||t===2,CEt=new Set(["pipe","overlapped"]),twe=async(t,e,r,n)=>{for await(let i of t)NEt(e)||nwe(i,r,n)},rwe=(t,e,r)=>{for(let n of t)nwe(n,e,r)},NEt=t=>t._readableState.pipes.length>0,nwe=(t,e,r)=>{let n=tC(t);ia({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var iwe=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:e.map((c,l)=>LEt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},LEt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=sTe(t,s,d),p=Ac(f),{stdioItems:h,objectMode:m}=e[r],_=DEt([p],h,c,n),{serializedResult:y,finalResult:v=y}=MEt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});UEt({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&&FEt(y,h,i),S}catch(g){return n.error=g,S}},DEt=(t,e,r,n)=>{try{return jC(t,e,r,!1)}catch(i){return n.error=i,t}},MEt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Vb(t)};let o=SEe(t,r);return n[s]?{serializedResult:o,finalResult:M3(o,!i[s],e)}:{serializedResult:o}},UEt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!qC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=M3(t,!1,o);try{rwe(a,e,n)}catch(c){r.error??=c}},FEt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>LC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?$Et(n,t):(r.add(s),kEt(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,Pc(e,r,"all")]:Array.isArray(e)?[Pc(t,r,"all"),...e]:Dr(t)&&Dr(e)?G6([t,e]):`${t}${e}`};import{once as q3}from"events";var owe=async(t,e)=>{let[r,n]=await jEt(t);return e.isForcefullyTerminated??=!1,[r,n]},jEt=async t=>{let[e,r]=await Promise.allSettled([q3(t,"spawn"),q3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?awe(t):r.value},awe=async t=>{try{return await q3(t,"exit")}catch{return awe(t)}},cwe=async t=>{let[e,r]=await t;if(!qEt(e,r)&&B3(e,r))throw new no;return[e,r]},qEt=(t,e)=>t===void 0&&e===void 0,B3=(t,e)=>t!==0||e!==null;var lwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=BEt(t,e,r),o=s?.code==="ETIMEDOUT",a=iTe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},BEt=(t,e,r)=>t!==void 0?t:B3(e,r)?new no:void 0;var uwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=VEt(t,e,r),d=WEt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Jg(d,c,l)},VEt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),a=HEt(r),{file:c,commandArguments:l,options:u}=TC(t,e,a);GEt(u);let d=jTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},HEt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,GEt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&BC("ipcInput"),t&&BC("ipc: true"),r&&BC("detached: true"),n&&BC("cancelSignal")},BC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},WEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=YEt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=lwe(c,r),{output:h,error:m=l}=iwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>Pc(v,r,S)),y=Pc(swe(h,r),r,"all");return JEt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},YEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{ewe(s,r);let a=KEt(r);return zEt(...wC(t,e,a))}catch(a){return Kg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},KEt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:CC(e)}),JEt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?NC({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Qb({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as Mbt}from"events";import{spawn as Ubt}from"child_process";import mwe from"process";import{once as z3,on as ZEt}from"events";var dwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(zg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),XEt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),XEt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{pC(e,i);let s=xu(t,e,r),o=new AbortController;try{return await Promise.race([QEt(s,n,o),evt(s,r,o),tvt(s,r,o)])}catch(a){throw Vg(t),a}finally{o.abort(),hC(e,i)}},QEt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await z3(t,"message",{signal:r});return n}for await(let[n]of ZEt(t,"message",{signal:r}))if(e(n))return n},evt=async(t,e,{signal:r})=>{await z3(t,"disconnect",{signal:r}),Zve(e)},tvt=async(t,e,{signal:r})=>{let[n]=await z3(t,"strict:error",{signal:r});throw uC(n,e)};import{once as pwe,on as rvt}from"events";var hwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>V3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),V3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{zg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),pC(e,s);let o=xu(t,e,r),a=new AbortController,c={};return nvt(t,o,a),ivt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),svt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},nvt=async(t,e,r)=>{try{await pwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},ivt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await pwe(t,"strict:error",{signal:r.signal});n.error=uC(i,e),r.abort()}catch{}},svt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of rvt(r,"message",{signal:s.signal}))fwe(o),yield c}catch{fwe(o)}finally{s.abort(),hC(e,a),n||Vg(t),i&&await t}},fwe=({error:t})=>{if(t)throw t};var gwe=(t,{ipc:e})=>{Object.assign(t,ywe(t,!1,e))},_we=()=>{let t=mwe,e=!0,r=mwe.channel!==void 0;return{...ywe(t,e,r),getCancelSignal:wbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},ywe=(t,e,r)=>({sendMessage:vC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:dwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:hwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as ovt}from"child_process";import{PassThrough as avt,Readable as cvt,Writable as lvt,Duplex as uvt}from"stream";var Swe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{$3(n);let a=new ovt;dvt(a,n),Object.assign(a,{readable:fvt,writable:pvt,duplex:hvt});let c=Kg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=mvt(c,o,i);return{subprocess:a,promise:l}},dvt=(t,e)=>{let r=tT(),n=tT(),i=tT(),s=Array.from({length:e.length-3},tT),o=tT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},tT=()=>{let t=new avt;return t.end(),t},fvt=()=>new cvt({read(){}}),pvt=()=>new lvt({write(){}}),hvt=()=>new uvt({read(){},write(){}}),mvt=async(t,e,r)=>Jg(t,e,r);import{createReadStream as Ewe,createWriteStream as vwe}from"fs";import{Buffer as gvt}from"buffer";import{Readable as rT,Writable as _vt,Duplex as yvt}from"stream";var Twe=(t,e)=>DC(Svt,t,e,!1),nT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Iu[t]}.`)},bwe={fileNumber:nT,generator:j3,asyncGenerator:j3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:yvt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Svt={input:{...bwe,fileUrl:({value:t})=>({stream:Ewe(t)}),filePath:({value:{file:t}})=>({stream:Ewe(t)}),webStream:({value:t})=>({stream:rT.fromWeb(t)}),iterable:({value:t})=>({stream:rT.from(t)}),asyncIterable:({value:t})=>({stream:rT.from(t)}),string:({value:t})=>({stream:rT.from(t)}),uint8Array:({value:t})=>({stream:rT.from(gvt.from(t))})},output:{...bwe,fileUrl:({value:t})=>({stream:vwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:vwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:_vt.fromWeb(t)}),iterable:nT,asyncIterable:nT,string:nT,uint8Array:nT}};import{on as Evt,once as wwe}from"events";import{PassThrough as vvt,getDefaultHighWaterMark as bvt}from"stream";import{finished as xwe}from"stream/promises";function Kf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)G3(i);let e=t.some(({readableObjectMode:i})=>i),r=Tvt(t,e),n=new H3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Tvt=(t,e)=>{if(t.length===0)return bvt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},H3=class extends vvt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(G3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=wvt(this,this.#e,this.#s);let r=xvt({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(G3(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)}},wvt=async(t,e,r)=>{zC(t,Rwe);let n=new AbortController;try{await Promise.race([Rvt(t,n),Avt(t,e,r,n)])}finally{n.abort(),zC(t,-Rwe)}},Rvt=async(t,{signal:e})=>{try{await xwe(t,{signal:e,cleanup:!0})}catch(r){throw Iwe(t,r),r}},Avt=async(t,e,r,{signal:n})=>{for await(let[i]of Evt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},G3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},xvt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{zC(t,Awe);let a=new AbortController;try{await Promise.race([Ivt(s,e,a),Pvt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Ovt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),zC(t,-Awe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?W3(t):Cvt(t))},Ivt=async(t,e,{signal:r})=>{try{await t,r.aborted||W3(e)}catch(n){r.aborted||Iwe(e,n)}},Pvt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await xwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Pwe(o)?i.add(e):Owe(t,o)}},Ovt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await wwe(t,i,{signal:s}),!t.readable)return wwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Cvt=t=>{t.writable&&t.end()},Iwe=(t,e)=>{Pwe(e)?W3(t):Owe(t,e)},Pwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",W3=t=>{(t.readable||t.writable)&&t.destroy()},Owe=(t,e)=>{t.destroyed||(t.once("error",Nvt),t.destroy(e))},Nvt=()=>{},zC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Rwe=2,Awe=1;import{finished as Cwe}from"stream/promises";var Xg=(t,e)=>{t.pipe(e),kvt(t,e),$vt(t,e)},kvt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Cwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}Y3(e)}},Y3=t=>{t.writable&&t.end()},$vt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Cwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}K3(t)}},K3=t=>{t.readable&&t.destroy()};var Nwe=(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})=>ws.has(c)))Lvt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!ws.has(c)))Mvt({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]:Kf(s);Xg(o,i)}},Lvt=(t,e,r,n)=>{r==="output"?Xg(t.stdio[n],e):Xg(e,t.stdio[n]);let i=Dvt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Dvt=["stdin","stdout","stderr"],Mvt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;Uvt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},Uvt=(t,{signal:e})=>{ro(t)&&Hf(t,Fvt,e)},Fvt=2;import{addAbortListener as Bvt}from"events";var Jf=[];Jf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Jf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Jf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var VC=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",J3=Symbol.for("signal-exit emitter"),Z3=globalThis,jvt=Object.defineProperty.bind(Object),X3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Z3[J3])return Z3[J3];jvt(Z3,J3,{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}},HC=class{},qvt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),Q3=class extends HC{onExit(){return()=>{}}load(){}unload(){}},eW=class extends HC{#e=tW.platform==="win32"?"SIGINT":"SIGHUP";#r=new X3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Jf)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(!VC(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 Jf)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,Jf.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 VC(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"&&VC(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)}},tW=globalThis.process,{onExit:kwe,load:sdr,unload:odr}=qvt(VC(tW)?new eW(tW):new Q3);var $we=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=kwe(()=>{t.kill()});Bvt(n,()=>{i()})};var Dwe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=rC(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=zvt(r,n,i),{sourceStream:d,sourceError:f}=Hvt(t,l),{options:p,fileDescriptors:h}=oa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},zvt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=Vvt(t,e,...r),a=fC(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},Vvt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Lwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||V6(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]=GO(r,...n);return{destination:e(Lwe)(i,s,o),pipeOptions:o}}if(oa.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}`)},Lwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Hvt=(t,e)=>{try{return{sourceStream:Hg(t,e)}}catch(r){return{sourceError:r}}};var Uwe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Gvt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw rW({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Gvt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return K3(t),n;if(e!==void 0)return Y3(r),e},rW=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Kg({error:t,command:Mwe,escapedCommand:Mwe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Mwe="source.pipe(destination)";var Fwe=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 Wvt}from"stream/promises";var jwe=(t,e,r)=>{let n=GC.has(e)?Kvt(t,e):Yvt(t,e);return Hf(t,Zvt,r.signal),Hf(e,Xvt,r.signal),Jvt(e),n},Yvt=(t,e)=>{let r=Kf([t]);return Xg(r,e),GC.set(e,r),r},Kvt=(t,e)=>{let r=GC.get(e);return r.add(t),r},Jvt=async t=>{try{await Wvt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}GC.delete(t)},GC=new WeakMap,Zvt=2,Xvt=1;import{aborted as Qvt}from"util";var qwe=(t,e)=>t===void 0?[]:[ebt(t,e)],ebt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Qvt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw rW({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var WC=(t,...e)=>{if(yr(e[0]))return WC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Dwe(t,...e),i=tbt({...n,destination:r});return i.pipe=WC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},tbt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=rbt(t,i);Uwe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=jwe(e,s,d);return await Promise.race([Fwe(u),...qwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},rbt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as lbt}from"timers/promises";import{on as nbt}from"events";import{getDefaultHighWaterMark as ibt}from"stream";var YC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return sbt(e,o),zwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},sbt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},nW=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;obt(e,o,t);let a=t.readableObjectMode&&!s;return zwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},obt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},zwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=nbt(t,"data",{signal:e.signal,highWaterMark:Bwe,highWatermark:Bwe});return abt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},iW=ibt(!0),Bwe=iW,abt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=cbt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*Yf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*eT(a)}},cbt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[UC(t,r,!e),MC(t,i,!n,{})].filter(Boolean);var Vwe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=ubt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([dbt(t),d]);return}let f=L3(c,r),p=nW({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([fbt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},ubt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!qC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=nW({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await twe(a,t,r,s)},dbt=async t=>{await lbt(),t.readableFlowing===null&&t.resume()},fbt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await IC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await PC(r,{maxBuffer:s})):await Yg(r,{maxBuffer:s})}catch(a){return Hwe(tTe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},sW=async t=>{try{return await t}catch(e){return Hwe(e)}},Hwe=({bufferedData:t})=>_Ee(t)?new Uint8Array(t):t;import{finished as pbt}from"stream/promises";var iT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=hbt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],pbt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||_bt(a,e,r,n)}finally{o.abort()}},hbt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&mbt(t,r,n),n},mbt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{gbt(e,r),n.call(t,...i)}},gbt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},_bt=(t,e,r,n)=>{if(!ybt(t,e,r,n))throw t},ybt=(t,e,r,n=!0)=>r.propagating?Gwe(t)||KC(t):(r.propagating=!0,oW(r,e)===n?Gwe(t):KC(t)),oW=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",KC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Gwe=t=>t?.code==="EPIPE";var Wwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>aW({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),aW=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=iT(t,e,l);if(oW(l,e)){await u;return}let[d]=await Promise.all([Vwe({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var Ywe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Kf([t,e].filter(Boolean)):void 0,Kwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>aW({...Sbt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:Ebt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),Sbt=({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}},Ebt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as vbt}from"events";var Jwe=t=>jg(t,"ipc"),Zwe=(t,e)=>{let r=tC(t);ia({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Xwe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Jwe(s),a=xc(e,"ipc"),c=xc(r,"ipc");for await(let l of V3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(rTe(t,i,c),i.push(l)),o&&Zwe(l,s);return i},Qwe=async(t,e)=>(await Promise.allSettled([t]),e);var e0e=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:y})=>{let v=owe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=Wwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),T=Kwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),P=[],x=Xwe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),A=bbt(m,t,S),I=Tbt(h,S);try{return await Promise.race([Promise.all([{},cwe(v),Promise.all(g),T,x,$be(t,d),...A,...I]),_,wbt(t,y),...Pbe(t,s,f,y),...Jve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...xbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(R){return f.terminationReason??="other",Promise.all([{error:R},v,Promise.all(g.map(b=>sW(b))),sW(T),Qwe(x,P),Promise.allSettled(A),Promise.allSettled(I)])}},bbt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:iT(n,i,r)),Tbt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>so(s,{checkOpen:!1})&&!ro(s)).map(({type:i,value:s,stream:o=s})=>iT(o,n,e,{isSameDirection:ws.has(i),stopOnExit:i==="native"}))),wbt=async(t,{signal:e})=>{let[r]=await vbt(t,"error",{signal:e});throw r};var t0e=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),sT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=sa();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Qg=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 Rbt}from"stream";import{callbackify as Abt}from"util";import{finished as r0e}from"stream/promises";var cW=async t=>{if(t!==void 0)try{await lW(t)}catch{}},n0e=async t=>{if(t!==void 0)try{await uW(t)}catch{}},lW=async t=>{await r0e(t,{cleanup:!0,readable:!1,writable:!0})},uW=async t=>{await r0e(t,{cleanup:!0,readable:!0,writable:!1})},JC=async(t,e)=>{if(await t,e)throw e},ZC=(t,e,r)=>{r&&!KC(r)?t.destroy(r):e&&t.destroy()};var i0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||qi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=dW(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=fW(a,o),{read:f,onStdoutDataDone:p}=pW({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Rbt({read:f,destroy:Abt(mW.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return hW({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},dW=(t,e,r)=>{let n=Hg(t,e),i=sT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},fW=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:iW},pW=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=sa(),o=YC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){xbt(this,o,s)},onStdoutDataDone:s}},xbt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},hW=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await uW(t),await n,await cW(i),await e,r.readable&&r.push(null)}catch(s){await cW(i),s0e(r,s)}},mW=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Qg(r,e)&&(s0e(t,n),await JC(e,n))},s0e=(t,e)=>{ZC(t,t.readable,e)};import{Writable as Ibt}from"stream";import{callbackify as o0e}from"util";var a0e=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=gW(t,r,e),o=new Ibt({..._W(n,t,i),destroy:o0e(SW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return yW(n,o),o},gW=(t,e,r)=>{let n=fC(t,e),i=sT(r,n,"writableFinal"),s=sT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},_W=(t,e,r)=>({write:Pbt.bind(void 0,t),final:o0e(Obt.bind(void 0,t,e,r))}),Pbt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Obt=async(t,e,r)=>{await Qg(r,e)&&(t.writable&&t.end(),await e)},yW=async(t,e,r)=>{try{await lW(t),e.writable&&e.end()}catch(n){await n0e(r),c0e(e,n)}},SW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Qg(r,e),await Qg(n,e)&&(c0e(t,i),await JC(e,i))},c0e=(t,e)=>{ZC(t,t.writable,e)};import{Duplex as Cbt}from"stream";import{callbackify as Nbt}from"util";var l0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||qi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=dW(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=gW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=fW(c,a),{read:_,onStdoutDataDone:y}=pW({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Cbt({read:_,..._W(u,t,d),destroy:Nbt(kbt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return hW({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),yW(u,v,c),v},kbt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([mW({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),SW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var EW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||qi.has(e),o=Hg(t,r),a=YC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return $bt(a,o,t)},$bt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var u0e=(t,{encoding:e})=>{let r=t0e();t.readable=i0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=a0e.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=l0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=EW.bind(void 0,t,e),t[Symbol.asyncIterator]=EW.bind(void 0,t,e,{})};var d0e=(t,e)=>{for(let[r,n]of Dbt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Lbt=(async()=>{})().constructor.prototype,Dbt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Lbt,t)]);var f0e=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=Fbt(t,e,r),{subprocess:f,promise:p}=qbt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=WC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),d0e(f,p),oa.set(f,{options:u,fileDescriptors:d}),f},Fbt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),{file:a,commandArguments:c,options:l}=TC(t,e,r),u=jbt(l),d=Twe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},jbt=({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}},qbt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=Ubt(...wC(t,e,r))}catch(h){return Swe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;Mbt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Nwe(c,a,l),$we(c,r,l);let d={},f=sa();c.kill=Yve.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Ywe(c,r),u0e(c,r),gwe(c,r);let p=Bbt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:s,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},Bbt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,_]=await e0e({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let y=h.map((g,T)=>Pc(g,e,T)),v=Pc(m,e,"all"),S=zbt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Jg(S,n,e)},zbt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?Qb({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof aa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):NC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var XC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,Vbt(n,t[n],i)]));return{...t,...r}},Vbt=(t,e,r)=>Hbt.has(t)&&yr(e)&&yr(r)?{...e,...r}:r,Hbt=new Set(["env",...J6]);var Pu=(t,e,r,n)=>{let i=(o,a,c)=>Pu(o,a,r,c),s=(...o)=>Gbt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},Gbt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(yr(s))return i(t,XC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Wbt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?uwe(a,c,l):f0e(a,c,l,i)},Wbt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=TEe(e)?wEe(e,r):[e,...r],[o,a,c]=GO(...s),l=XC(XC(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var p0e=({file:t,commandArguments:e})=>m0e(t,e),h0e=({file:t,commandArguments:e})=>({...m0e(t,e),isSync:!0}),m0e=(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]=Ybt(t);return{file:r,commandArguments:n}},Ybt=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(Kbt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Kbt=/ +/g;var g0e=(t,e,r)=>{t.sync=e(Jbt,r),t.s=t.sync},_0e=({options:t})=>y0e(t),Jbt=({options:t})=>({...y0e(t),isSync:!0}),y0e=t=>({options:{...Zbt(t),...t}}),Zbt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},S0e={preferLocal:!0};var E0e=Pu(()=>({})),Kpr=Pu(()=>({isSync:!0})),v0e=Pu(p0e),Jpr=Pu(h0e),Zpr=Pu(Cbe),Xpr=Pu(_0e,{},S0e,g0e),{sendMessage:Qpr,getOneMessage:ehr,getEachMessage:thr,getCancelSignal:rhr}=_we();import{Transform as Xbt}from"stream";var Qbt=["NETLIFY_AI_GATEWAY_KEY"];function eTt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...Qbt])]}function tTt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function rTt(){let e=eTt().map(r=>process.env[r]).filter(r=>!(!r||tTt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Rs(t){if(typeof t!="string")return t;let e=rTt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(nTt(n),"g");r=r.replace(i,"******")}),r}function nTt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oT=class extends Xbt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Rs(i);n(null,s)}},QC=Symbol("maskedWrite");function b0e(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[QC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stdout.write=r}if(!process.stderr.write[QC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stderr.write=r}}}var T0e=!1,w0e=()=>{T0e=!0},bi=()=>T0e;var aT=null,R0e=t=>(aT&&aT.destroy(),aT=new la({totalAllowedTime:t}),aT),A0e=()=>aT;var la=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&&bi())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await qO({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{he.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var x0e={name:"@netlify/agent-runner-cli",type:"module",version:"1.163.0-PAW-328.9",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var aTt=sTt(import.meta.url),cTt=Oc.dirname(aTt),lTt=oTt(import.meta.url),e_=me("shell"),vW=new Set,I0e={preferLocal:!0},gn=(t,e,r)=>{let[n,i]=uTt(e,r),s={...I0e,...i},o=E0e(t,n,s);O0e(o,s),k0e(o);let a=r?.idleTimeout;return a&&a>0&&N0e(o,a),o},P0e=(t,e)=>{let r={...I0e,...e},n=v0e(t,r);return O0e(n,r),k0e(n),e?.idleTimeout&&e.idleTimeout>0&&N0e(n,e.idleTimeout),n},uTt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},O0e=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Cc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new oT).pipe(Cc.stdout),t.stderr?.pipe(new oT).pipe(Cc.stderr);return}t.stdout?.pipe(Cc.stdout),t.stderr?.pipe(Cc.stderr)},bW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Cc.kill(-t.pid,e),e_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return e_.error("Error killing process:",r),!1}},C0e=t=>bW(t,"SIGKILL"),N0e=(t,e)=>{let r=null,n=()=>{e_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(e_.log(`Force killing idle process ${t.pid}`),C0e(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)},k0e=t=>{vW.add(t);let e=A0e();if(e){let r=e.onTimesUp(()=>{e_.log(`Global timer expired, killing process ${t.pid}`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(e_.log(`Force killing process ${t.pid} after timeout`),C0e(t))},5e3)});t.on("exit",()=>{vW.delete(t),r()}),t.on("error",()=>{vW.delete(t),r()})}};function ua(t,e){if(!Cc.env.NETLIFY_LOCAL_MODE)try{let i=lTt.resolve(x0e.name),s=Oc.dirname(i);for(;s!==Oc.dirname(s);){let o=Oc.dirname(s);if(Oc.basename(o)==="node_modules"){let a=Oc.join(o,".bin",e);if(eN.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Cc.env.NODE_PATH){let i=Oc.join(Cc.env.NODE_PATH,".bin",e);if(eN.existsSync(i))return i}let r=Oc.join(t,"node_modules",".bin",e);if(eN.existsSync(r))return r;let n=Oc.join(cTt,"..","node_modules",".bin",e);if(eN.existsSync(n))return n}import TD from"process";import{fileURLToPath as UDt}from"url";import{createRequire as FDt}from"module";import s0 from"path";import{readFileSync as jDt}from"fs";var dTt="__netlify__getTracer",fTt="__netlify__shutdownTracers",vt=(t,e)=>globalThis[dTt]?.(t,e),$0e=async()=>globalThis[fTt]?.();function cT(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 NDt}from"timers/promises";$e();import p0t from"process";$e();var DTt=(t,e)=>{e.recordException(t),e.setStatus({code:Nn.ERROR})};var $c=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}=xRe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>IRe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=xRe(r,n,i),c=this._tracer.startSpan(e,s,o);return IRe(c,s,a)}};function xRe(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??qt.active(),{opts:n,ctx:i,fn:s}}function IRe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:DTt,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)}}$e();var a_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var rY=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=URe(e),n._asyncAttributesPending=e.filter(([i,s])=>a_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(a_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=URe(this._rawAttributes),this._schemaUrl=MTt(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,a_(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&le.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(a_(n)){le.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=UTt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function nY(t,e){return rY.FromAttributeList(Object.entries(t),e)}function URe(t){return t.map(([e,r])=>a_(r)?[e,r.catch(n=>{le.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function MTt(t){if(typeof t=="string"||t===void 0)return t;le.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function UTt(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;le.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}$e();var ET=class{emit(e){}enabled(){return!1}},FRe=new ET;var vT=Symbol.for("io.opentelemetry.js.api.logs"),c_=globalThis;function jRe(t,e,r){return n=>n===t?e:r}var iY=1;var sY=class{getLogger(e,r,n){return new ET}},TN=new sY;var wN=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):FRe}};var bT=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new wN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:TN}_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 RN=class t{constructor(){this._proxyLoggerProvider=new bT}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return c_[vT]?this.getLoggerProvider():(c_[vT]=jRe(iY,e,TN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=c_[vT])===null||e===void 0?void 0:e.call(c_,iY))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete c_[vT],this._proxyLoggerProvider=new bT}};var qRe=RN.getInstance();function BRe(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 zRe(t){t.forEach(e=>e.disable())}function oY(t){let e=t.tracerProvider||It.getTracerProvider(),r=t.meterProvider||ST.getMeterProvider(),n=t.loggerProvider||qRe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return BRe(i,e,r,n),()=>{zRe(i)}}$e();var FTt=Gr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function VRe(t){return t.getValue(FTt)===!0}var l_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(l_||(l_={}));$e();var aY="[_0-9a-z-*/]",jTt=`[a-z]${aY}{0,255}`,qTt=`[a-z0-9]${aY}{0,240}@[a-z]${aY}{0,13}`,BTt=new RegExp(`^(?:${jTt}|${qTt})$`),zTt=/^[ -~]{0,255}[!-~]$/,VTt=/,|=/;function cY(t){return BTt.test(t)}function lY(t){return zTt.test(t)&&!VTt.test(t)}var HTt=32,HRe=512,GRe=",",WRe="=",AN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!cY(e)||!lY(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>HRe)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=GRe+e),e=`${n[0]}${WRe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(GRe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(WRe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!cY(a)||!lY(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>HRe)&&(r.set(a,c),n=l,r.size>=HTt))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 xN="traceparent",IN="tracestate",GTt="00",WTt="(?!ff)[\\da-f]{2}",YTt="(?![0]{32})[\\da-f]{32}",KTt="(?![0]{16})[\\da-f]{16}",JTt="[\\da-f]{2}",ZTt=new RegExp(`^\\s?(${WTt})-(${YTt})-(${KTt})-(${JTt})(-.*)?\\s?$`);function YRe(t){let e=ZTt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Nu=class{inject(e,r,n){let i=It.getSpanContext(e);if(!i||VRe(e)||!Ti(i))return;let s=`${GTt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||dr.NONE).toString(16)}`;n.set(r,xN,s),i.traceState&&n.set(r,IN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,xN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=YRe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,IN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new AN(typeof c=="string"?c:void 0)}return It.setSpanContext(e,o)}fields(){return[xN,IN]}};var PN=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 TT=class{_isCalled=!1;_deferred=new PN;_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 Ek=Bn(YY(),1);$e();var OIe=t=>{throw TypeError(t)},XY=(t,e,r)=>e.has(t)||OIe("Cannot "+r),Sk=(t,e,r)=>(XY(t,e,"read from private field"),r?r.call(t):e.get(t)),KY=(t,e,r)=>e.has(t)?OIe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),xIe=(t,e,r,n)=>(XY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),f0t=(t,e,r)=>(XY(t,e,"access private method"),r),IIe="__netlify__getTracer",h0t="__netlify__shutdownTracers",m0t="__nfOTLPTrace",UT,FT,ZY,CIe,g0t=class{constructor(){KY(this,ZY),KY(this,UT),KY(this,FT),xIe(this,UT,new TT(f0t(this,ZY,CIe),this)),xIe(this,FT,le.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(Sk(this,FT).debug(`export ${t.length.toString()} spans`),Sk(this,UT).isCalled){e({code:l_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(m0t,JSON.stringify(_0t(t))),e({code:l_.SUCCESS})}shutdown(){return Sk(this,UT).call()}};UT=new WeakMap;FT=new WeakMap;ZY=new WeakSet;CIe=function(){return Sk(this,FT).debug("Shutting down"),Promise.resolve()};function _0t(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:yk(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||oo.SERVER,startTimeUnixNano:JY(e.startTime),endTimeUnixNano:JY(e.endTime),attributes:yk(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:JY(n.time),attributes:yk(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:yk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function yk(t){return Object.keys(t).map(e=>NIe(e,t[e]))}function NIe(t,e){return{key:t,value:kIe(e)}}function kIe(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(kIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>NIe(r,n))}}:{}}function JY(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var PIe={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"}},$Ie=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,IIe))return;let e=p0t.version.slice(1),r=nY({"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??[y0t()],i=new Ek.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Nu});let s=t.instrumentations??[];oY({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,IIe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new $c(It.getTracer(a,c)):new $c(It.getTracer(PIe.name,PIe.version))}}),Object.defineProperty(globalThis,h0t,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},y0t=()=>new Ek.SimpleSpanProcessor(new g0t);$e();var jT=Bn(YY(),1);$e();import*as vk from"diagnostics_channel";var LIe=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?Nn.ERROR:Nn.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof $c?t:new $c(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){vk.subscribe(t,e);let r=()=>vk.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:oo.CLIENT},qt.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:Nn.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 sMe=Bn(nMe(),1);var vD=me("tracing"),iMe=8e3,kDt=5e3,i0=async(t=kDt)=>{try{await Promise.race([$0e(),NDt(t)])}catch(e){vD.warn("Failed to flush tracers on shutdown",e)}},oMe=async(t,e,r)=>{if(!vt()){let n=[new jT.SimpleSpanProcessor(new QJ),new jT.SimpleSpanProcessor(new sMe.OTLPTraceExporter({url:r.exporterUrl}))];await $Ie({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new LIe({skipHeaders:!0})]})}return r.traceparent?(ei.setGlobalPropagator(new Nu),ei.extract(qt.active(),{traceparent:r.traceparent,isRemote:!0})):qt.active()};function Vt(t,e,r){return vD.log(`\u23F3 TRACE: ${e} starting...`),cT(t,e,r)}var QJ=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(", ")}]`:"";vD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&vD.log(` \u274C Error: ${e.status.message}`)}};function eZ(){return Je().captureLlmContentEnabled}function aMe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function bD(t,e,r){let n={role:t,parts:[{type:"text",content:Rs(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var $Dt=new Set([Z.Task,Z.RunCommand,Z.Explore,Z.FileRead,Z.FileWrite,Z.Notebook,Z.Web,Z.Todo,Z.Skill,Z.Tool,Z.Memorize,Z.Deployment,Z.SiteGeneration]);function cMe(t,e,r,n){if(!t.length)return;let i=vt();if(!i)return;let s=eZ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&$Dt.has(a.category),f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,_=a.message?a.message.length>iMe?`${a.message.slice(0,iMe)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Rs(_)}:{"gen_ai.output.messages":bD("assistant",_)}:{}}}).end(u)})}import{readdir as LDt,rm as DDt}from"fs/promises";import{join as MDt}from"path";async function lMe(t,e=[]){let n=(await LDt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>DDt(MDt(t,i),{recursive:!0,force:!0})))}var Dp=({mode:t,sessionCreditLimit:e})=>t==="create"&&e!=null&&e<=300;var tZ=t=>{if(!Dp(t))return"default";let e=Je();return e.createAskFirstEnabled&&e.questionsEnabled?"ask_first":e.creditWrapUpEnabled?"budget_constrained":"default"},uMe=t=>{let e=tZ(t);return{budget_eligible:Dp(t),budget_constrained:e==="budget_constrained",ask_first:e==="ask_first"}};var qDt=s0.dirname(UDt(import.meta.url)),dMe=FDt(import.meta.url),BDt=s0.resolve(qDt,"scripts/scaffold.js"),zDt="scripts/scaffold.js",VDt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,rZ=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},HDt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),GDt=t=>{let e=rZ(t);return e==="node"||e.endsWith("/node")},il=t=>{if(typeof t!="string")return!1;let e=t.match(VDt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&HDt(rZ(e[r]));)r+=1;if(r>=e.length||!GDt(e[r]))return!1;let n=e[r+1];return n?rZ(n).includes(zDt):!1},Mp=me("create_stage"),nZ="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.",WDt=`${nZ}
|
|
603
|
+
if (condition) { yield value; }`)};import{Buffer as gEt}from"buffer";import{StringDecoder as _Et}from"string_decoder";var UC=(t,e,r)=>{if(r)return;if(t)return{transform:yEt.bind(void 0,new TextEncoder)};let n=new _Et(e);return{transform:SEt.bind(void 0,n),final:EEt.bind(void 0,n)}},yEt=function*(t,e){gEt.isBuffer(e)?yield Ac(e):typeof e=="string"?yield t.encode(e):yield e},SEt=function*(t,e){yield Dr(e)?t.write(e):e},EEt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as YTe}from"util";var U3=YTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),FC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=bEt}=e[r];for await(let i of n(t))yield*FC(i,e,r+1)},KTe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*vEt(r,Number(e),t)},vEt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*FC(n,r,e+1)},JTe=YTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),bEt=function*(t){yield t};var F3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},ZTe=(t,e)=>[...e.flatMap(r=>[...Yf(r,t,0)]),...eT(t)],Yf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=wEt}=e[r];for(let i of n(t))yield*Yf(i,e,r+1)},eT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*TEt(r,Number(e),t)},TEt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Yf(n,r,e+1)},wEt=function*(t){yield t};var j3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=QTe(t,o,s),l=Wf(e),u=Wf(r),d=l?U3.bind(void 0,FC,a):F3.bind(void 0,Yf),f=l||u?U3.bind(void 0,KTe,a):F3.bind(void 0,eT),p=l||u?JTe.bind(void 0,a):void 0;return{stream:new REt({writableObjectMode:n,writableHighWaterMark:XTe(n),readableObjectMode:i,readableHighWaterMark:XTe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},jC=(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=QTe(o,r,a);t=ZTe(c,t)}return t},QTe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:HTe(n,a)},UC(r,o,n),MC(r,s,n,c),{transform:t,final:e},{transform:GTe(i,a)},VTe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var ewe=(t,e)=>{for(let r of AEt(t))xEt(t,r,e)},AEt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),xEt=(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 ${Iu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>IEt(a,n));r.input=Vb(o)},IEt=(t,e)=>{let r=jC(t,e,"utf8",!0);return PEt(r),Vb(r)},PEt=t=>{let e=t.find(r=>typeof r!="string"&&!Dr(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 kEt,appendFileSync as $Et}from"fs";var qC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&jg(r,n)&&!qi.has(e)&&OEt(n)&&(t.some(({type:i,value:s})=>i==="native"&&CEt.has(s))||t.every(({type:i})=>ws.has(i))),OEt=t=>t===1||t===2,CEt=new Set(["pipe","overlapped"]),twe=async(t,e,r,n)=>{for await(let i of t)NEt(e)||nwe(i,r,n)},rwe=(t,e,r)=>{for(let n of t)nwe(n,e,r)},NEt=t=>t._readableState.pipes.length>0,nwe=(t,e,r)=>{let n=tC(t);ia({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var iwe=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:e.map((c,l)=>LEt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},LEt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=sTe(t,s,d),p=Ac(f),{stdioItems:h,objectMode:m}=e[r],_=DEt([p],h,c,n),{serializedResult:y,finalResult:v=y}=MEt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});UEt({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&&FEt(y,h,i),S}catch(g){return n.error=g,S}},DEt=(t,e,r,n)=>{try{return jC(t,e,r,!1)}catch(i){return n.error=i,t}},MEt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Vb(t)};let o=SEe(t,r);return n[s]?{serializedResult:o,finalResult:M3(o,!i[s],e)}:{serializedResult:o}},UEt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!qC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=M3(t,!1,o);try{rwe(a,e,n)}catch(c){r.error??=c}},FEt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>LC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?$Et(n,t):(r.add(s),kEt(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,Pc(e,r,"all")]:Array.isArray(e)?[Pc(t,r,"all"),...e]:Dr(t)&&Dr(e)?G6([t,e]):`${t}${e}`};import{once as q3}from"events";var owe=async(t,e)=>{let[r,n]=await jEt(t);return e.isForcefullyTerminated??=!1,[r,n]},jEt=async t=>{let[e,r]=await Promise.allSettled([q3(t,"spawn"),q3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?awe(t):r.value},awe=async t=>{try{return await q3(t,"exit")}catch{return awe(t)}},cwe=async t=>{let[e,r]=await t;if(!qEt(e,r)&&B3(e,r))throw new no;return[e,r]},qEt=(t,e)=>t===void 0&&e===void 0,B3=(t,e)=>t!==0||e!==null;var lwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=BEt(t,e,r),o=s?.code==="ETIMEDOUT",a=iTe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},BEt=(t,e,r)=>t!==void 0?t:B3(e,r)?new no:void 0;var uwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=VEt(t,e,r),d=WEt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Jg(d,c,l)},VEt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),a=HEt(r),{file:c,commandArguments:l,options:u}=TC(t,e,a);GEt(u);let d=jTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},HEt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,GEt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&BC("ipcInput"),t&&BC("ipc: true"),r&&BC("detached: true"),n&&BC("cancelSignal")},BC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},WEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=YEt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=lwe(c,r),{output:h,error:m=l}=iwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>Pc(v,r,S)),y=Pc(swe(h,r),r,"all");return JEt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},YEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{ewe(s,r);let a=KEt(r);return zEt(...wC(t,e,a))}catch(a){return Kg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},KEt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:CC(e)}),JEt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?NC({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Qb({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as Mbt}from"events";import{spawn as Ubt}from"child_process";import mwe from"process";import{once as z3,on as ZEt}from"events";var dwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(zg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),XEt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),XEt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{pC(e,i);let s=xu(t,e,r),o=new AbortController;try{return await Promise.race([QEt(s,n,o),evt(s,r,o),tvt(s,r,o)])}catch(a){throw Vg(t),a}finally{o.abort(),hC(e,i)}},QEt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await z3(t,"message",{signal:r});return n}for await(let[n]of ZEt(t,"message",{signal:r}))if(e(n))return n},evt=async(t,e,{signal:r})=>{await z3(t,"disconnect",{signal:r}),Zve(e)},tvt=async(t,e,{signal:r})=>{let[n]=await z3(t,"strict:error",{signal:r});throw uC(n,e)};import{once as pwe,on as rvt}from"events";var hwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>V3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),V3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{zg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),pC(e,s);let o=xu(t,e,r),a=new AbortController,c={};return nvt(t,o,a),ivt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),svt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},nvt=async(t,e,r)=>{try{await pwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},ivt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await pwe(t,"strict:error",{signal:r.signal});n.error=uC(i,e),r.abort()}catch{}},svt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of rvt(r,"message",{signal:s.signal}))fwe(o),yield c}catch{fwe(o)}finally{s.abort(),hC(e,a),n||Vg(t),i&&await t}},fwe=({error:t})=>{if(t)throw t};var gwe=(t,{ipc:e})=>{Object.assign(t,ywe(t,!1,e))},_we=()=>{let t=mwe,e=!0,r=mwe.channel!==void 0;return{...ywe(t,e,r),getCancelSignal:wbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},ywe=(t,e,r)=>({sendMessage:vC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:dwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:hwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as ovt}from"child_process";import{PassThrough as avt,Readable as cvt,Writable as lvt,Duplex as uvt}from"stream";var Swe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{$3(n);let a=new ovt;dvt(a,n),Object.assign(a,{readable:fvt,writable:pvt,duplex:hvt});let c=Kg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=mvt(c,o,i);return{subprocess:a,promise:l}},dvt=(t,e)=>{let r=tT(),n=tT(),i=tT(),s=Array.from({length:e.length-3},tT),o=tT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},tT=()=>{let t=new avt;return t.end(),t},fvt=()=>new cvt({read(){}}),pvt=()=>new lvt({write(){}}),hvt=()=>new uvt({read(){},write(){}}),mvt=async(t,e,r)=>Jg(t,e,r);import{createReadStream as Ewe,createWriteStream as vwe}from"fs";import{Buffer as gvt}from"buffer";import{Readable as rT,Writable as _vt,Duplex as yvt}from"stream";var Twe=(t,e)=>DC(Svt,t,e,!1),nT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Iu[t]}.`)},bwe={fileNumber:nT,generator:j3,asyncGenerator:j3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:yvt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Svt={input:{...bwe,fileUrl:({value:t})=>({stream:Ewe(t)}),filePath:({value:{file:t}})=>({stream:Ewe(t)}),webStream:({value:t})=>({stream:rT.fromWeb(t)}),iterable:({value:t})=>({stream:rT.from(t)}),asyncIterable:({value:t})=>({stream:rT.from(t)}),string:({value:t})=>({stream:rT.from(t)}),uint8Array:({value:t})=>({stream:rT.from(gvt.from(t))})},output:{...bwe,fileUrl:({value:t})=>({stream:vwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:vwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:_vt.fromWeb(t)}),iterable:nT,asyncIterable:nT,string:nT,uint8Array:nT}};import{on as Evt,once as wwe}from"events";import{PassThrough as vvt,getDefaultHighWaterMark as bvt}from"stream";import{finished as xwe}from"stream/promises";function Kf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)G3(i);let e=t.some(({readableObjectMode:i})=>i),r=Tvt(t,e),n=new H3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Tvt=(t,e)=>{if(t.length===0)return bvt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},H3=class extends vvt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(G3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=wvt(this,this.#e,this.#s);let r=xvt({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(G3(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)}},wvt=async(t,e,r)=>{zC(t,Rwe);let n=new AbortController;try{await Promise.race([Rvt(t,n),Avt(t,e,r,n)])}finally{n.abort(),zC(t,-Rwe)}},Rvt=async(t,{signal:e})=>{try{await xwe(t,{signal:e,cleanup:!0})}catch(r){throw Iwe(t,r),r}},Avt=async(t,e,r,{signal:n})=>{for await(let[i]of Evt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},G3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},xvt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{zC(t,Awe);let a=new AbortController;try{await Promise.race([Ivt(s,e,a),Pvt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Ovt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),zC(t,-Awe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?W3(t):Cvt(t))},Ivt=async(t,e,{signal:r})=>{try{await t,r.aborted||W3(e)}catch(n){r.aborted||Iwe(e,n)}},Pvt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await xwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Pwe(o)?i.add(e):Owe(t,o)}},Ovt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await wwe(t,i,{signal:s}),!t.readable)return wwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Cvt=t=>{t.writable&&t.end()},Iwe=(t,e)=>{Pwe(e)?W3(t):Owe(t,e)},Pwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",W3=t=>{(t.readable||t.writable)&&t.destroy()},Owe=(t,e)=>{t.destroyed||(t.once("error",Nvt),t.destroy(e))},Nvt=()=>{},zC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Rwe=2,Awe=1;import{finished as Cwe}from"stream/promises";var Xg=(t,e)=>{t.pipe(e),kvt(t,e),$vt(t,e)},kvt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Cwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}Y3(e)}},Y3=t=>{t.writable&&t.end()},$vt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Cwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}K3(t)}},K3=t=>{t.readable&&t.destroy()};var Nwe=(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})=>ws.has(c)))Lvt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!ws.has(c)))Mvt({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]:Kf(s);Xg(o,i)}},Lvt=(t,e,r,n)=>{r==="output"?Xg(t.stdio[n],e):Xg(e,t.stdio[n]);let i=Dvt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},Dvt=["stdin","stdout","stderr"],Mvt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;Uvt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},Uvt=(t,{signal:e})=>{ro(t)&&Hf(t,Fvt,e)},Fvt=2;import{addAbortListener as Bvt}from"events";var Jf=[];Jf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Jf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Jf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var VC=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",J3=Symbol.for("signal-exit emitter"),Z3=globalThis,jvt=Object.defineProperty.bind(Object),X3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Z3[J3])return Z3[J3];jvt(Z3,J3,{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}},HC=class{},qvt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),Q3=class extends HC{onExit(){return()=>{}}load(){}unload(){}},eW=class extends HC{#e=tW.platform==="win32"?"SIGINT":"SIGHUP";#r=new X3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Jf)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(!VC(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 Jf)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,Jf.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 VC(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"&&VC(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)}},tW=globalThis.process,{onExit:kwe,load:sdr,unload:odr}=qvt(VC(tW)?new eW(tW):new Q3);var $we=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=kwe(()=>{t.kill()});Bvt(n,()=>{i()})};var Dwe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=rC(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=zvt(r,n,i),{sourceStream:d,sourceError:f}=Hvt(t,l),{options:p,fileDescriptors:h}=oa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},zvt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=Vvt(t,e,...r),a=fC(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},Vvt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Lwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||V6(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]=GO(r,...n);return{destination:e(Lwe)(i,s,o),pipeOptions:o}}if(oa.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}`)},Lwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Hvt=(t,e)=>{try{return{sourceStream:Hg(t,e)}}catch(r){return{sourceError:r}}};var Uwe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Gvt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw rW({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Gvt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return K3(t),n;if(e!==void 0)return Y3(r),e},rW=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Kg({error:t,command:Mwe,escapedCommand:Mwe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Mwe="source.pipe(destination)";var Fwe=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 Wvt}from"stream/promises";var jwe=(t,e,r)=>{let n=GC.has(e)?Kvt(t,e):Yvt(t,e);return Hf(t,Zvt,r.signal),Hf(e,Xvt,r.signal),Jvt(e),n},Yvt=(t,e)=>{let r=Kf([t]);return Xg(r,e),GC.set(e,r),r},Kvt=(t,e)=>{let r=GC.get(e);return r.add(t),r},Jvt=async t=>{try{await Wvt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}GC.delete(t)},GC=new WeakMap,Zvt=2,Xvt=1;import{aborted as Qvt}from"util";var qwe=(t,e)=>t===void 0?[]:[ebt(t,e)],ebt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Qvt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw rW({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var WC=(t,...e)=>{if(yr(e[0]))return WC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Dwe(t,...e),i=tbt({...n,destination:r});return i.pipe=WC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},tbt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=rbt(t,i);Uwe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=jwe(e,s,d);return await Promise.race([Fwe(u),...qwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},rbt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as lbt}from"timers/promises";import{on as nbt}from"events";import{getDefaultHighWaterMark as ibt}from"stream";var YC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return sbt(e,o),zwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},sbt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},nW=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;obt(e,o,t);let a=t.readableObjectMode&&!s;return zwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},obt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},zwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=nbt(t,"data",{signal:e.signal,highWaterMark:Bwe,highWatermark:Bwe});return abt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},iW=ibt(!0),Bwe=iW,abt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=cbt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*Yf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*eT(a)}},cbt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[UC(t,r,!e),MC(t,i,!n,{})].filter(Boolean);var Vwe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=ubt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([dbt(t),d]);return}let f=L3(c,r),p=nW({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([fbt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},ubt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!qC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=nW({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await twe(a,t,r,s)},dbt=async t=>{await lbt(),t.readableFlowing===null&&t.resume()},fbt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await IC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await PC(r,{maxBuffer:s})):await Yg(r,{maxBuffer:s})}catch(a){return Hwe(tTe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},sW=async t=>{try{return await t}catch(e){return Hwe(e)}},Hwe=({bufferedData:t})=>_Ee(t)?new Uint8Array(t):t;import{finished as pbt}from"stream/promises";var iT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=hbt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],pbt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||_bt(a,e,r,n)}finally{o.abort()}},hbt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&mbt(t,r,n),n},mbt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{gbt(e,r),n.call(t,...i)}},gbt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},_bt=(t,e,r,n)=>{if(!ybt(t,e,r,n))throw t},ybt=(t,e,r,n=!0)=>r.propagating?Gwe(t)||KC(t):(r.propagating=!0,oW(r,e)===n?Gwe(t):KC(t)),oW=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",KC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Gwe=t=>t?.code==="EPIPE";var Wwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>aW({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),aW=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=iT(t,e,l);if(oW(l,e)){await u;return}let[d]=await Promise.all([Vwe({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var Ywe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Kf([t,e].filter(Boolean)):void 0,Kwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>aW({...Sbt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:Ebt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),Sbt=({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}},Ebt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as vbt}from"events";var Jwe=t=>jg(t,"ipc"),Zwe=(t,e)=>{let r=tC(t);ia({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Xwe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Jwe(s),a=xc(e,"ipc"),c=xc(r,"ipc");for await(let l of V3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(rTe(t,i,c),i.push(l)),o&&Zwe(l,s);return i},Qwe=async(t,e)=>(await Promise.allSettled([t]),e);var e0e=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:y})=>{let v=owe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=Wwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),T=Kwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),P=[],x=Xwe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),A=bbt(m,t,S),I=Tbt(h,S);try{return await Promise.race([Promise.all([{},cwe(v),Promise.all(g),T,x,$be(t,d),...A,...I]),_,wbt(t,y),...Pbe(t,s,f,y),...Jve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...xbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(R){return f.terminationReason??="other",Promise.all([{error:R},v,Promise.all(g.map(b=>sW(b))),sW(T),Qwe(x,P),Promise.allSettled(A),Promise.allSettled(I)])}},bbt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:iT(n,i,r)),Tbt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>so(s,{checkOpen:!1})&&!ro(s)).map(({type:i,value:s,stream:o=s})=>iT(o,n,e,{isSameDirection:ws.has(i),stopOnExit:i==="native"}))),wbt=async(t,{signal:e})=>{let[r]=await vbt(t,"error",{signal:e});throw r};var t0e=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),sT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=sa();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Qg=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 Rbt}from"stream";import{callbackify as Abt}from"util";import{finished as r0e}from"stream/promises";var cW=async t=>{if(t!==void 0)try{await lW(t)}catch{}},n0e=async t=>{if(t!==void 0)try{await uW(t)}catch{}},lW=async t=>{await r0e(t,{cleanup:!0,readable:!1,writable:!0})},uW=async t=>{await r0e(t,{cleanup:!0,readable:!0,writable:!1})},JC=async(t,e)=>{if(await t,e)throw e},ZC=(t,e,r)=>{r&&!KC(r)?t.destroy(r):e&&t.destroy()};var i0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||qi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=dW(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=fW(a,o),{read:f,onStdoutDataDone:p}=pW({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Rbt({read:f,destroy:Abt(mW.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return hW({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},dW=(t,e,r)=>{let n=Hg(t,e),i=sT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},fW=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:iW},pW=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=sa(),o=YC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){xbt(this,o,s)},onStdoutDataDone:s}},xbt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},hW=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await uW(t),await n,await cW(i),await e,r.readable&&r.push(null)}catch(s){await cW(i),s0e(r,s)}},mW=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Qg(r,e)&&(s0e(t,n),await JC(e,n))},s0e=(t,e)=>{ZC(t,t.readable,e)};import{Writable as Ibt}from"stream";import{callbackify as o0e}from"util";var a0e=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=gW(t,r,e),o=new Ibt({..._W(n,t,i),destroy:o0e(SW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return yW(n,o),o},gW=(t,e,r)=>{let n=fC(t,e),i=sT(r,n,"writableFinal"),s=sT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},_W=(t,e,r)=>({write:Pbt.bind(void 0,t),final:o0e(Obt.bind(void 0,t,e,r))}),Pbt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Obt=async(t,e,r)=>{await Qg(r,e)&&(t.writable&&t.end(),await e)},yW=async(t,e,r)=>{try{await lW(t),e.writable&&e.end()}catch(n){await n0e(r),c0e(e,n)}},SW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Qg(r,e),await Qg(n,e)&&(c0e(t,i),await JC(e,i))},c0e=(t,e)=>{ZC(t,t.writable,e)};import{Duplex as Cbt}from"stream";import{callbackify as Nbt}from"util";var l0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||qi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=dW(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=gW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=fW(c,a),{read:_,onStdoutDataDone:y}=pW({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Cbt({read:_,..._W(u,t,d),destroy:Nbt(kbt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return hW({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),yW(u,v,c),v},kbt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([mW({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),SW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var EW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||qi.has(e),o=Hg(t,r),a=YC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return $bt(a,o,t)},$bt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var u0e=(t,{encoding:e})=>{let r=t0e();t.readable=i0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=a0e.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=l0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=EW.bind(void 0,t,e),t[Symbol.asyncIterator]=EW.bind(void 0,t,e,{})};var d0e=(t,e)=>{for(let[r,n]of Dbt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Lbt=(async()=>{})().constructor.prototype,Dbt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Lbt,t)]);var f0e=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=Fbt(t,e,r),{subprocess:f,promise:p}=qbt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=WC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),d0e(f,p),oa.set(f,{options:u,fileDescriptors:d}),f},Fbt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),{file:a,commandArguments:c,options:l}=TC(t,e,r),u=jbt(l),d=Twe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},jbt=({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}},qbt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=Ubt(...wC(t,e,r))}catch(h){return Swe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;Mbt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Nwe(c,a,l),$we(c,r,l);let d={},f=sa();c.kill=Yve.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Ywe(c,r),u0e(c,r),gwe(c,r);let p=Bbt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:s,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},Bbt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,_]=await e0e({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let y=h.map((g,T)=>Pc(g,e,T)),v=Pc(m,e,"all"),S=zbt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Jg(S,n,e)},zbt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?Qb({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof aa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):NC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var XC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,Vbt(n,t[n],i)]));return{...t,...r}},Vbt=(t,e,r)=>Hbt.has(t)&&yr(e)&&yr(r)?{...e,...r}:r,Hbt=new Set(["env",...J6]);var Pu=(t,e,r,n)=>{let i=(o,a,c)=>Pu(o,a,r,c),s=(...o)=>Gbt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},Gbt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(yr(s))return i(t,XC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Wbt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?uwe(a,c,l):f0e(a,c,l,i)},Wbt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=TEe(e)?wEe(e,r):[e,...r],[o,a,c]=GO(...s),l=XC(XC(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var p0e=({file:t,commandArguments:e})=>m0e(t,e),h0e=({file:t,commandArguments:e})=>({...m0e(t,e),isSync:!0}),m0e=(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]=Ybt(t);return{file:r,commandArguments:n}},Ybt=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(Kbt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Kbt=/ +/g;var g0e=(t,e,r)=>{t.sync=e(Jbt,r),t.s=t.sync},_0e=({options:t})=>y0e(t),Jbt=({options:t})=>({...y0e(t),isSync:!0}),y0e=t=>({options:{...Zbt(t),...t}}),Zbt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},S0e={preferLocal:!0};var E0e=Pu(()=>({})),Kpr=Pu(()=>({isSync:!0})),v0e=Pu(p0e),Jpr=Pu(h0e),Zpr=Pu(Cbe),Xpr=Pu(_0e,{},S0e,g0e),{sendMessage:Qpr,getOneMessage:ehr,getEachMessage:thr,getCancelSignal:rhr}=_we();import{Transform as Xbt}from"stream";var Qbt=["NETLIFY_AI_GATEWAY_KEY"];function eTt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...Qbt])]}function tTt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function rTt(){let e=eTt().map(r=>process.env[r]).filter(r=>!(!r||tTt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Rs(t){if(typeof t!="string")return t;let e=rTt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(nTt(n),"g");r=r.replace(i,"******")}),r}function nTt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oT=class extends Xbt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Rs(i);n(null,s)}},QC=Symbol("maskedWrite");function b0e(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[QC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stdout.write=r}if(!process.stderr.write[QC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stderr.write=r}}}var T0e=!1,w0e=()=>{T0e=!0},bi=()=>T0e;var aT=null,R0e=t=>(aT&&aT.destroy(),aT=new la({totalAllowedTime:t}),aT),A0e=()=>aT;var la=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&&bi())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await qO({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{he.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var x0e={name:"@netlify/agent-runner-cli",type:"module",version:"1.163.0-PAW-328.10",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var aTt=sTt(import.meta.url),cTt=Oc.dirname(aTt),lTt=oTt(import.meta.url),e_=me("shell"),vW=new Set,I0e={preferLocal:!0},gn=(t,e,r)=>{let[n,i]=uTt(e,r),s={...I0e,...i},o=E0e(t,n,s);O0e(o,s),k0e(o);let a=r?.idleTimeout;return a&&a>0&&N0e(o,a),o},P0e=(t,e)=>{let r={...I0e,...e},n=v0e(t,r);return O0e(n,r),k0e(n),e?.idleTimeout&&e.idleTimeout>0&&N0e(n,e.idleTimeout),n},uTt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},O0e=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Cc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new oT).pipe(Cc.stdout),t.stderr?.pipe(new oT).pipe(Cc.stderr);return}t.stdout?.pipe(Cc.stdout),t.stderr?.pipe(Cc.stderr)},bW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Cc.kill(-t.pid,e),e_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return e_.error("Error killing process:",r),!1}},C0e=t=>bW(t,"SIGKILL"),N0e=(t,e)=>{let r=null,n=()=>{e_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(e_.log(`Force killing idle process ${t.pid}`),C0e(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)},k0e=t=>{vW.add(t);let e=A0e();if(e){let r=e.onTimesUp(()=>{e_.log(`Global timer expired, killing process ${t.pid}`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(e_.log(`Force killing process ${t.pid} after timeout`),C0e(t))},5e3)});t.on("exit",()=>{vW.delete(t),r()}),t.on("error",()=>{vW.delete(t),r()})}};function ua(t,e){if(!Cc.env.NETLIFY_LOCAL_MODE)try{let i=lTt.resolve(x0e.name),s=Oc.dirname(i);for(;s!==Oc.dirname(s);){let o=Oc.dirname(s);if(Oc.basename(o)==="node_modules"){let a=Oc.join(o,".bin",e);if(eN.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Cc.env.NODE_PATH){let i=Oc.join(Cc.env.NODE_PATH,".bin",e);if(eN.existsSync(i))return i}let r=Oc.join(t,"node_modules",".bin",e);if(eN.existsSync(r))return r;let n=Oc.join(cTt,"..","node_modules",".bin",e);if(eN.existsSync(n))return n}import TD from"process";import{fileURLToPath as UDt}from"url";import{createRequire as FDt}from"module";import s0 from"path";import{readFileSync as jDt}from"fs";var dTt="__netlify__getTracer",fTt="__netlify__shutdownTracers",vt=(t,e)=>globalThis[dTt]?.(t,e),$0e=async()=>globalThis[fTt]?.();function cT(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 NDt}from"timers/promises";$e();import p0t from"process";$e();var DTt=(t,e)=>{e.recordException(t),e.setStatus({code:Nn.ERROR})};var $c=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}=xRe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>IRe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=xRe(r,n,i),c=this._tracer.startSpan(e,s,o);return IRe(c,s,a)}};function xRe(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??qt.active(),{opts:n,ctx:i,fn:s}}function IRe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:DTt,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)}}$e();var a_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var rY=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=URe(e),n._asyncAttributesPending=e.filter(([i,s])=>a_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(a_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=URe(this._rawAttributes),this._schemaUrl=MTt(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,a_(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&le.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(a_(n)){le.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=UTt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function nY(t,e){return rY.FromAttributeList(Object.entries(t),e)}function URe(t){return t.map(([e,r])=>a_(r)?[e,r.catch(n=>{le.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function MTt(t){if(typeof t=="string"||t===void 0)return t;le.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function UTt(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;le.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}$e();var ET=class{emit(e){}enabled(){return!1}},FRe=new ET;var vT=Symbol.for("io.opentelemetry.js.api.logs"),c_=globalThis;function jRe(t,e,r){return n=>n===t?e:r}var iY=1;var sY=class{getLogger(e,r,n){return new ET}},TN=new sY;var wN=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):FRe}};var bT=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new wN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:TN}_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 RN=class t{constructor(){this._proxyLoggerProvider=new bT}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return c_[vT]?this.getLoggerProvider():(c_[vT]=jRe(iY,e,TN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=c_[vT])===null||e===void 0?void 0:e.call(c_,iY))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete c_[vT],this._proxyLoggerProvider=new bT}};var qRe=RN.getInstance();function BRe(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 zRe(t){t.forEach(e=>e.disable())}function oY(t){let e=t.tracerProvider||It.getTracerProvider(),r=t.meterProvider||ST.getMeterProvider(),n=t.loggerProvider||qRe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return BRe(i,e,r,n),()=>{zRe(i)}}$e();var FTt=Gr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function VRe(t){return t.getValue(FTt)===!0}var l_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(l_||(l_={}));$e();var aY="[_0-9a-z-*/]",jTt=`[a-z]${aY}{0,255}`,qTt=`[a-z0-9]${aY}{0,240}@[a-z]${aY}{0,13}`,BTt=new RegExp(`^(?:${jTt}|${qTt})$`),zTt=/^[ -~]{0,255}[!-~]$/,VTt=/,|=/;function cY(t){return BTt.test(t)}function lY(t){return zTt.test(t)&&!VTt.test(t)}var HTt=32,HRe=512,GRe=",",WRe="=",AN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!cY(e)||!lY(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>HRe)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=GRe+e),e=`${n[0]}${WRe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(GRe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(WRe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!cY(a)||!lY(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>HRe)&&(r.set(a,c),n=l,r.size>=HTt))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 xN="traceparent",IN="tracestate",GTt="00",WTt="(?!ff)[\\da-f]{2}",YTt="(?![0]{32})[\\da-f]{32}",KTt="(?![0]{16})[\\da-f]{16}",JTt="[\\da-f]{2}",ZTt=new RegExp(`^\\s?(${WTt})-(${YTt})-(${KTt})-(${JTt})(-.*)?\\s?$`);function YRe(t){let e=ZTt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Nu=class{inject(e,r,n){let i=It.getSpanContext(e);if(!i||VRe(e)||!Ti(i))return;let s=`${GTt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||dr.NONE).toString(16)}`;n.set(r,xN,s),i.traceState&&n.set(r,IN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,xN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=YRe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,IN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new AN(typeof c=="string"?c:void 0)}return It.setSpanContext(e,o)}fields(){return[xN,IN]}};var PN=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 TT=class{_isCalled=!1;_deferred=new PN;_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 Ek=Bn(YY(),1);$e();var OIe=t=>{throw TypeError(t)},XY=(t,e,r)=>e.has(t)||OIe("Cannot "+r),Sk=(t,e,r)=>(XY(t,e,"read from private field"),r?r.call(t):e.get(t)),KY=(t,e,r)=>e.has(t)?OIe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),xIe=(t,e,r,n)=>(XY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),f0t=(t,e,r)=>(XY(t,e,"access private method"),r),IIe="__netlify__getTracer",h0t="__netlify__shutdownTracers",m0t="__nfOTLPTrace",UT,FT,ZY,CIe,g0t=class{constructor(){KY(this,ZY),KY(this,UT),KY(this,FT),xIe(this,UT,new TT(f0t(this,ZY,CIe),this)),xIe(this,FT,le.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(Sk(this,FT).debug(`export ${t.length.toString()} spans`),Sk(this,UT).isCalled){e({code:l_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(m0t,JSON.stringify(_0t(t))),e({code:l_.SUCCESS})}shutdown(){return Sk(this,UT).call()}};UT=new WeakMap;FT=new WeakMap;ZY=new WeakSet;CIe=function(){return Sk(this,FT).debug("Shutting down"),Promise.resolve()};function _0t(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:yk(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||oo.SERVER,startTimeUnixNano:JY(e.startTime),endTimeUnixNano:JY(e.endTime),attributes:yk(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:JY(n.time),attributes:yk(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:yk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function yk(t){return Object.keys(t).map(e=>NIe(e,t[e]))}function NIe(t,e){return{key:t,value:kIe(e)}}function kIe(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(kIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>NIe(r,n))}}:{}}function JY(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var PIe={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"}},$Ie=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,IIe))return;let e=p0t.version.slice(1),r=nY({"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??[y0t()],i=new Ek.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Nu});let s=t.instrumentations??[];oY({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,IIe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new $c(It.getTracer(a,c)):new $c(It.getTracer(PIe.name,PIe.version))}}),Object.defineProperty(globalThis,h0t,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},y0t=()=>new Ek.SimpleSpanProcessor(new g0t);$e();var jT=Bn(YY(),1);$e();import*as vk from"diagnostics_channel";var LIe=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?Nn.ERROR:Nn.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof $c?t:new $c(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){vk.subscribe(t,e);let r=()=>vk.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:oo.CLIENT},qt.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:Nn.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 sMe=Bn(nMe(),1);var vD=me("tracing"),iMe=8e3,kDt=5e3,i0=async(t=kDt)=>{try{await Promise.race([$0e(),NDt(t)])}catch(e){vD.warn("Failed to flush tracers on shutdown",e)}},oMe=async(t,e,r)=>{if(!vt()){let n=[new jT.SimpleSpanProcessor(new QJ),new jT.SimpleSpanProcessor(new sMe.OTLPTraceExporter({url:r.exporterUrl}))];await $Ie({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new LIe({skipHeaders:!0})]})}return r.traceparent?(ei.setGlobalPropagator(new Nu),ei.extract(qt.active(),{traceparent:r.traceparent,isRemote:!0})):qt.active()};function Vt(t,e,r){return vD.log(`\u23F3 TRACE: ${e} starting...`),cT(t,e,r)}var QJ=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(", ")}]`:"";vD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&vD.log(` \u274C Error: ${e.status.message}`)}};function eZ(){return Je().captureLlmContentEnabled}function aMe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function bD(t,e,r){let n={role:t,parts:[{type:"text",content:Rs(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var $Dt=new Set([Z.Task,Z.RunCommand,Z.Explore,Z.FileRead,Z.FileWrite,Z.Notebook,Z.Web,Z.Todo,Z.Skill,Z.Tool,Z.Memorize,Z.Deployment,Z.SiteGeneration]);function cMe(t,e,r,n){if(!t.length)return;let i=vt();if(!i)return;let s=eZ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&$Dt.has(a.category),f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,_=a.message?a.message.length>iMe?`${a.message.slice(0,iMe)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Rs(_)}:{"gen_ai.output.messages":bD("assistant",_)}:{}}}).end(u)})}import{readdir as LDt,rm as DDt}from"fs/promises";import{join as MDt}from"path";async function lMe(t,e=[]){let n=(await LDt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>DDt(MDt(t,i),{recursive:!0,force:!0})))}var Dp=({mode:t,sessionCreditLimit:e})=>t==="create"&&e!=null&&e<=300;var tZ=t=>{if(!Dp(t))return"default";let e=Je();return e.createAskFirstEnabled&&e.questionsEnabled?"ask_first":e.creditWrapUpEnabled?"budget_constrained":"default"},uMe=t=>{let e=tZ(t);return{budget_eligible:Dp(t),budget_constrained:e==="budget_constrained",ask_first:e==="ask_first"}};var qDt=s0.dirname(UDt(import.meta.url)),dMe=FDt(import.meta.url),BDt=s0.resolve(qDt,"scripts/scaffold.js"),zDt="scripts/scaffold.js",VDt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,rZ=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},HDt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),GDt=t=>{let e=rZ(t);return e==="node"||e.endsWith("/node")},il=t=>{if(typeof t!="string")return!1;let e=t.match(VDt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&HDt(rZ(e[r]));)r+=1;if(r>=e.length||!GDt(e[r]))return!1;let n=e[r+1];return n?rZ(n).includes(zDt):!1},Mp=me("create_stage"),nZ="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.",WDt=`${nZ}
|
|
604
604
|
|
|
605
605
|
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.`,YDt=`${nZ}
|
|
606
606
|
|
|
@@ -775,7 +775,7 @@ priority = 20
|
|
|
775
775
|
`),bn.log("Ask policy allows the read-only database query command",{allowedPrefixes:i})}let n=Rd.join(L0.homedir(),".gemini","ask-policy.toml");return await lh.mkdir(Rd.dirname(n),{recursive:!0}),await lh.writeFile(n,r.join(`
|
|
776
776
|
`),"utf-8"),n};async function ZZ({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:s=!1,priorAgentSessionId:o=void 0,cwd:a=gS.cwd(),cliPath:c="netlify",abortSignal:l=void 0,onSessionId:u=void 0,forceLowEffortForCreditWrapUp:d=void 0}){let{prompt:f}=t,p=ig("gemini",t.effort);t.effort&&!p&&bn.log(`Effort '${t.effort}' is not available on ${rM}; using its default`);let h=d?"low":p;Q1t({aiGateway:i});let m=await eUt({aiGateway:i,config:t,model:t.model});await Z1t({model:m,effort:h,creditWrapUpTurn:d});let _=[],y=[],v=[],S={},g=0,T=0,P,x,A,I,R,b=!!(s&&o),D=!1;b&&(D=await $0(o)),b&&!D&&(bn.log(`Gemini resume requested for session ${o} but it was not resumable; starting a fresh session`),he.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let C=t.mode==="ask",w=C?await tUt({config:t,cliPath:c}):void 0,O=[ua(a,"gemini"),...m?["--model",m]:[],...C?["--approval-mode","default","--policy",w]:["--yolo"],"--skip-trust","--output-format","stream-json",...D?["-r",o]:[],"-p",""],N=`${gS.env.NVM_BIN}/node`;bn.log(`Running ${N} ${O.join(" ")}`);let F=e.utils.run(N,O,{all:!0,env:{...gS.env,GEMINI_CLI_NO_RELAUNCH:"1"},cwd:a,idleTimeout:Ka,cancelSignal:l});F.stdin?.end(f);let z=Al(()=>{r?.({steps:_,duration:T}),n?.({steps:y,duration:T}),y=[]},250),ae=(M,j)=>{M.id=g,g+=1,v.push(M),_.push(M),y.push(M),j||z.flush(),z(),j&&z.flush()},Te=m||"default";t.answeredInteraction||ae({title:`Using ${rM} with ${Te}`,category:Z.Environment},!0);let ke=W1t.createInterface({input:F.all});ke.on("error",M=>{bn.error("Readline interface error",{error:M.message,stack:M.stack})});let qe="",se=()=>{qe&&ae({message:qe.trim(),category:Z.AgentMessage}),qe=""};ke.on("line",M=>{let j;try{if(M.startsWith("[API Error")){let ie=M.match(/\[api error: (.+?)]$/i)?.[1];j={type:"error",value:rE(ie,!1)?.error?.message||ie||"Gemini encountered error"}}else j=JSON.parse(M)}catch{return}if(j)switch(j.type==="init"&&typeof j.session_id=="string"&&(I=j.session_id,u?.(I)),["message","result"].includes(j.type)||se(),j.type){case"message":{j.role!=="user"&&j.content&&(qe+=j.content);break}case"tool_use":{if(j.tool_name===r_e){if(j.tool_id&&!R){let ee=Su.safeParse(j.parameters);ee.success?(R={questions:ee.data.questions},F.kill()):(bn.warn("Ignoring malformed ask tool input",{toolUseId:j.tool_id,issues:Eu(ee.error.issues)}),he.inc("inference.malformed_ask",1))}break}let ie=JZ[j.tool_name]?.name??j.tool_name,U=j.parameters?.file_path,re=U&&Rd.relative(a,U),L=j.parameters?.command,k=j.tool_name==="activate_skill"&&j.parameters?.name,q=j.tool_name==="run_shell_command"&&il(L),W=[ie,re&&`\`${re}\``,L&&`\`${L}\``].filter(Boolean).join(" ");if(k)W=`Use ${Uo(k)}`;else if(q)W="Generating the site";else if(j.tool_name==="grep_search"){let{dir_path:ee,pattern:oe}=j.parameters||{};ee&&oe?W=`Search in \`${ee}\` for \`${oe}\``:ee?W=`Search in \`${ee}\``:oe&&(W=`Search for \`${oe}\``)}else if(j.tool_name==="update_topic"){let ee=j.parameters?.title;ee&&(W=`${ie} \`${ee}\``)}let J={title:W,category:q?Z.SiteGeneration:JZ[j.tool_name]?.category,...k&&{type:k}};S[j.tool_id]=J,z.flush();break}case"tool_result":{let ie=S[j.tool_id];ie&&(j.output&&(ie.message=`\`\`\`
|
|
777
777
|
${j.output.trim()}
|
|
778
|
-
\`\`\``),ae(ie,!0),X1t(ie));break}case"result":{T=j.stats?.duration_ms,j.stats&&(vu(j.stats,m?{model:m}:{}),A=j.stats),j.status==="error"?x=j.error?.message:P=qe.trim();break}case"error":{x=j.error;break}case"finished":break;case"init":break;default:{bn.warn("Unhandled message type:",j.type);break}}});let Se=!1;if(await F.catch(M=>{Se=ou(M,l),{error:x,result:P}=Y1t({catchError:M,runCmd:F,error:x,result:P,runnerName:"Gemini"})}),ke.close(),R)return z.flush(),{steps:v,duration:T,agentSessionId:I,resolvedModel:m,usage:A,pendingInteraction:R};let Me=Se;return Me&&(!P&&qe.trim()&&(P=qe.trim()),x=void 0),z.flush(),{steps:v,duration:T,result:await bu({initialResult:P,agentName:rM,hasError:!!x}),error:Tu({error:x,agentName:rM}),isRetryableError:wu(x),isProviderUnavailableError:Ru(x),resolvedModel:m,usage:A,agentSessionId:I,...h&&x1e(m)?{effort:h}:{},...Me?{aborted:!0}:{}}}var I1e=async()=>{let t=Rd.join(L0.homedir(),".gemini");await lh.rm(t,{recursive:!0,force:!0});let e=Rd.join(L0.homedir(),".agents","skills");await lh.rm(e,{recursive:!0,force:!0})},P1e={baseDir:Rd.join(L0.homedir(),".gemini"),include:["tmp"]};import QZ from"fs/promises";import $1e from"os";import D0 from"path";import tX from"process";import iUt from"readline";import rUt from"os";import N1e from"path";import XZ from"fs";var O1e=me("opencode_install"),C1e="1.17.19",nUt=()=>N1e.join(rUt.homedir(),".netlify-agent-runner","opencode"),nM=async t=>{let e=ua(t,"opencode");if(e)return e;let r=nUt(),n=N1e.join(r,"node_modules",".bin","opencode");if(XZ.existsSync(n))return n;XZ.mkdirSync(r,{recursive:!0}),O1e.log(`Installing opencode-ai@${C1e} on demand`);let i=Date.now();await gn("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${C1e}`],{cwd:r});let s=Date.now()-i;if(he.timing("opencode.install_duration",s),O1e.log(`Installed opencode-ai in ${s}ms`),!XZ.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var gl=me("runner_opencode"),iM="OpenCode",L1e="gateway",sUt="z-ai/glm-5.3",oUt=new Set(["z-ai/glm-5.3","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),aUt=(t,e)=>!t||!IR.includes(t)?t:e&&oUt.has(e)?"xhigh":"max",eX={bash:{name:"Run command",category:Z.RunCommand},read:{name:"Read file",category:Z.FileRead},write:{name:"Edit file",category:Z.FileWrite},edit:{name:"Edit file",category:Z.FileWrite},glob:{name:"Find files",category:Z.Explore},grep:{name:"Search files",category:Z.Explore},list:{name:"List directory",category:Z.Explore},task:{name:"Task",category:Z.Task},todowrite:{name:"Update task list",category:Z.Todo},webfetch:{name:"Fetch web",category:Z.Web},websearch:{name:"Search web",category:Z.Web},skill:{name:"Use Skill",category:Z.Skill}},k1e=t=>eX[t]?.name||t,cUt=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],lUt=250,uUt=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=Su.safeParse(e);return r.success?{questions:r.data.questions}:{issues:Eu(r.error.issues)}},dUt=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await QZ.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await QZ.rm(t,{force:!0}).catch(()=>{});let{questions:s,issues:o}=uUt(i);if(!s){gl.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:o}),he.inc("inference.malformed_ask",1);return}r&&e(s)},lUt);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function fUt({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let s=e.modelVersionOverrides?.opencode?.[e.accountType];s?n=s:r||(n=Je().opencodeDefaultModel||sUt),n&&(await i(n)||gl.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function pUt({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:s}=t;if(!i||!s)throw new Error("No token or url provided from AI Gateway");let o=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[L1e]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:s},...Object.keys(o).length>0?{models:o}:{}}},...n?{mcp:i_e(n)}:{}};return{...tX.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function rX({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:s,cwd:o=tX.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,_,y,v=0,S=0,g,T=await fUt({config:t,aiGateway:n,model:d}),P=aUt(f,T);gl.log(f?`Requesting reasoning effort '${f}' for model '${T}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${T}'; running at its own default`);let x=cu({creditWrapUpTurn:l})?await s_e():void 0,A=pUt({aiGateway:n,model:T,effort:P,questionsFilePath:x?.filePath}),I=[],R=[],b=0,D=Date.now(),C=await nM(o),w=["run","--format","json","--dangerously-skip-permissions","--agent","build",...T?["--model",`${L1e}/${T}`]:[],...i?s?["--session",s]:["--continue"]:[]];gl.log(`Running ${C} ${w.join(" ")}`);let O=e.utils.run(C,w,{all:!0,env:A,cwd:o,idleTimeout:Ka,cancelSignal:a});O.stdin?.end(u);let N=x?dUt(x.filePath,ie=>{g||(g={questions:ie},O.kill())}):void 0,F=Al(()=>{r?.({steps:R,duration:Date.now()-D})},250),z=(ie,U)=>{let{wrapMessage:re,...L}=ie,k=CR({...L,id:b});k.message&&re&&(k.message=`\`\`\`
|
|
778
|
+
\`\`\``),ae(ie,!0),X1t(ie));break}case"result":{T=j.stats?.duration_ms,j.stats&&(vu(j.stats,m?{model:m}:{}),A=j.stats),j.status==="error"?x=j.error?.message:P=qe.trim();break}case"error":{x=j.error;break}case"finished":break;case"init":break;default:{bn.warn("Unhandled message type:",j.type);break}}});let Se=!1;if(await F.catch(M=>{Se=ou(M,l),{error:x,result:P}=Y1t({catchError:M,runCmd:F,error:x,result:P,runnerName:"Gemini"})}),ke.close(),R)return z.flush(),{steps:v,duration:T,agentSessionId:I,resolvedModel:m,usage:A,pendingInteraction:R};let Me=Se;return Me&&(!P&&qe.trim()&&(P=qe.trim()),x=void 0),z.flush(),{steps:v,duration:T,result:await bu({initialResult:P,agentName:rM,hasError:!!x}),error:Tu({error:x,agentName:rM}),isRetryableError:wu(x),isProviderUnavailableError:Ru(x),resolvedModel:m,usage:A,agentSessionId:I,...h&&x1e(m)?{effort:h}:{},...Me?{aborted:!0}:{}}}var I1e=async()=>{let t=Rd.join(L0.homedir(),".gemini");await lh.rm(t,{recursive:!0,force:!0});let e=Rd.join(L0.homedir(),".agents","skills");await lh.rm(e,{recursive:!0,force:!0})},P1e={baseDir:Rd.join(L0.homedir(),".gemini"),include:["tmp"]};import QZ from"fs/promises";import $1e from"os";import D0 from"path";import tX from"process";import iUt from"readline";import rUt from"os";import N1e from"path";import XZ from"fs";var O1e=me("opencode_install"),C1e="1.17.19",nUt=()=>N1e.join(rUt.homedir(),".netlify-agent-runner","opencode"),nM=async t=>{let e=ua(t,"opencode");if(e)return e;let r=nUt(),n=N1e.join(r,"node_modules",".bin","opencode");if(XZ.existsSync(n))return n;XZ.mkdirSync(r,{recursive:!0}),O1e.log(`Installing opencode-ai@${C1e} on demand`);let i=Date.now();await gn("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${C1e}`],{cwd:r});let s=Date.now()-i;if(he.timing("opencode.install_duration",s),O1e.log(`Installed opencode-ai in ${s}ms`),!XZ.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var gl=me("runner_opencode"),iM="OpenCode",L1e="gateway",sUt="z-ai/glm-5.3-flash",oUt=new Set(["z-ai/glm-5.3-flash","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),aUt=(t,e)=>!t||!IR.includes(t)?t:e&&oUt.has(e)?"xhigh":"max",eX={bash:{name:"Run command",category:Z.RunCommand},read:{name:"Read file",category:Z.FileRead},write:{name:"Edit file",category:Z.FileWrite},edit:{name:"Edit file",category:Z.FileWrite},glob:{name:"Find files",category:Z.Explore},grep:{name:"Search files",category:Z.Explore},list:{name:"List directory",category:Z.Explore},task:{name:"Task",category:Z.Task},todowrite:{name:"Update task list",category:Z.Todo},webfetch:{name:"Fetch web",category:Z.Web},websearch:{name:"Search web",category:Z.Web},skill:{name:"Use Skill",category:Z.Skill}},k1e=t=>eX[t]?.name||t,cUt=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],lUt=250,uUt=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=Su.safeParse(e);return r.success?{questions:r.data.questions}:{issues:Eu(r.error.issues)}},dUt=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await QZ.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await QZ.rm(t,{force:!0}).catch(()=>{});let{questions:s,issues:o}=uUt(i);if(!s){gl.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:o}),he.inc("inference.malformed_ask",1);return}r&&e(s)},lUt);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function fUt({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let s=e.modelVersionOverrides?.opencode?.[e.accountType];s?n=s:r||(n=Je().opencodeDefaultModel||sUt),n&&(await i(n)||gl.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function pUt({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:s}=t;if(!i||!s)throw new Error("No token or url provided from AI Gateway");let o=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[L1e]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:s},...Object.keys(o).length>0?{models:o}:{}}},...n?{mcp:i_e(n)}:{}};return{...tX.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function rX({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:s,cwd:o=tX.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,_,y,v=0,S=0,g,T=await fUt({config:t,aiGateway:n,model:d}),P=aUt(f,T);gl.log(f?`Requesting reasoning effort '${f}' for model '${T}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${T}'; running at its own default`);let x=cu({creditWrapUpTurn:l})?await s_e():void 0,A=pUt({aiGateway:n,model:T,effort:P,questionsFilePath:x?.filePath}),I=[],R=[],b=0,D=Date.now(),C=await nM(o),w=["run","--format","json","--dangerously-skip-permissions","--agent","build",...T?["--model",`${L1e}/${T}`]:[],...i?s?["--session",s]:["--continue"]:[]];gl.log(`Running ${C} ${w.join(" ")}`);let O=e.utils.run(C,w,{all:!0,env:A,cwd:o,idleTimeout:Ka,cancelSignal:a});O.stdin?.end(u);let N=x?dUt(x.filePath,ie=>{g||(g={questions:ie},O.kill())}):void 0,F=Al(()=>{r?.({steps:R,duration:Date.now()-D})},250),z=(ie,U)=>{let{wrapMessage:re,...L}=ie,k=CR({...L,id:b});k.message&&re&&(k.message=`\`\`\`
|
|
779
779
|
${k.message}
|
|
780
780
|
\`\`\``),b+=1,I.push(k),R.push(k),U||F.flush(),F(),U&&F.flush()},ae=T||"default";t.answeredInteraction||z({title:`Using ${iM} with ${ae}`,category:Z.Environment},!0);let Te=iUt.createInterface({input:O.all});Te.on("error",ie=>{gl.error("Readline interface error",{error:ie.message,stack:ie.stack})});let ke="",qe,se=new Set,Se=()=>{ke&&(z({message:ke,category:Z.AgentMessage}),qe=ke,ke="")};Te.on("line",ie=>{let U;try{U=JSON.parse(ie)}catch{gl.log("Could not parse line",ie);return}switch(U.sessionID&&U.sessionID!==p&&(p=U.sessionID,c?.(p)),U.type){case"step_start":{Se();break}case"text":{let re=U.part?.text;re&&(ke+=re);break}case"reasoning":{Se();let re=U.part?.text;re&&z({title:"Reasoning",message:re,category:Z.Reasoning},!0);break}case"tool_use":{Se();let re=U.part?.tool;if(!re)break;let L=U.part?.state?.input??{},k=U.part?.state?.status,q=U.part?.state?.output,W=U.part?.state?.error;if(re===n_e){k==="error"&&gl.warn("Ask tool call rejected before it could pause the run",{error:W});break}if(k==="error"&&(v+=1),(k==="completed"||k==="error")&&(S+=1),re==="skill"){let Oe=typeof L.name=="string"?L.name:void 0;if(Oe){let it=Uo(Oe);Za(gl,it),z({title:`Use ${it}`,category:Z.Skill,type:Oe},!0);break}}if(re==="todowrite"){let Oe=cUt(L.todos);z({title:k1e(re),category:Oe.length>0?eX.todowrite.category:Z.Tool,...Oe.length>0?{tasks:Oe}:{}},!0);break}let J=typeof L.command=="string"?L.command:void 0,ee=J?il(J):!1,oe=typeof L.path=="string"&&L.path||typeof L.file_path=="string"&&L.file_path||typeof L.pattern=="string"&&L.pattern||void 0,we,be;if(ee)we="Generating the site",be=Z.SiteGeneration;else if(J&&re==="bash")we=`Running \`${J}\``,be=Z.RunCommand;else{let Oe=oe&&`\`${D0.relative(o,oe)}\``;we=[k1e(re),Oe].filter(Boolean).join(" "),be=eX[re]?.category||Z.AgentMessage}let Pe,te=["bash","read","glob","grep","list","webfetch","websearch"].includes(re);W?Pe=`\`\`\`
|
|
781
781
|
${W.trim()}
|
package/dist/index.js
CHANGED
|
@@ -111,7 +111,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
111
111
|
`,LF:`
|
|
112
112
|
`,concatBytes:QL},q$e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},V$e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:q$e};import{Buffer as H$e}from"buffer";var Cre=(t,e)=>t?void 0:W$e.bind(void 0,e),W$e=function*(t,e){if(typeof e!="string"&&!zt(e)&&!H$e.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Ire=(t,e)=>t?Y$e.bind(void 0,e):K$e.bind(void 0,e),Y$e=function*(t,e){Pre(t,e),yield e},K$e=function*(t,e){if(Pre(t,e),typeof e!="string"&&!zt(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},Pre=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
113
113
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
114
|
-
if (condition) { yield value; }`)};import{Buffer as Z$e}from"buffer";import{StringDecoder as J$e}from"string_decoder";var Pw=(t,e,r)=>{if(r)return;if(t)return{transform:X$e.bind(void 0,new TextEncoder)};let n=new J$e(e);return{transform:Q$e.bind(void 0,n),final:e1e.bind(void 0,n)}},X$e=function*(t,e){Z$e.isBuffer(e)?yield hs(e):typeof e=="string"?yield t.encode(e):yield e},Q$e=function*(t,e){yield zt(e)?t.write(e):e},e1e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Ore}from"util";var t$=Ore(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Ow=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=r1e}=e[r];for await(let i of n(t))yield*Ow(i,e,r+1)},Nre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*t1e(r,Number(e),t)},t1e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Ow(n,r,e+1)},kre=Ore(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),r1e=function*(t){yield t};var r$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Mre=(t,e)=>[...e.flatMap(r=>[...Ll(r,t,0)]),...M_(t)],Ll=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=i1e}=e[r];for(let i of n(t))yield*Ll(i,e,r+1)},M_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*n1e(r,Number(e),t)},n1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ll(n,r,e+1)},i1e=function*(t){yield t};var n$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Lre(t,s,o),l=Dl(e),u=Dl(r),d=l?t$.bind(void 0,Ow,a):r$.bind(void 0,Ll),f=l||u?t$.bind(void 0,Nre,a):r$.bind(void 0,M_),p=l||u?kre.bind(void 0,a):void 0;return{stream:new o1e({writableObjectMode:n,writableHighWaterMark:Dre(n),readableObjectMode:i,readableHighWaterMark:Dre(i),transform(m,y,v){d([m,c,0],this,v)},flush(m){f([c],this,m)},destroy:p})}},Nw=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=Lre(s,r,a);t=Mre(c,t)}return t},Lre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Cre(n,a)},Pw(r,s,n),Iw(r,o,n,c),{transform:t,final:e},{transform:Ire(i,a)},Rre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var $re=(t,e)=>{for(let r of s1e(t))a1e(t,r,e)},s1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),a1e=(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 ${Ma[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>c1e(a,n));r.input=A_(s)},c1e=(t,e)=>{let r=Nw(t,e,"utf8",!0);return l1e(r),A_(r)},l1e=t=>{let e=t.find(r=>typeof r!="string"&&!zt(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 p1e,appendFileSync as h1e}from"fs";var kw=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&mf(r,n)&&!yn.has(e)&&u1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&d1e.has(o))||t.every(({type:i})=>Zn.has(i))),u1e=t=>t===1||t===2,d1e=new Set(["pipe","overlapped"]),Ure=async(t,e,r,n)=>{for await(let i of t)f1e(e)||Bre(i,r,n)},Fre=(t,e,r)=>{for(let n of t)Bre(n,e,r)},f1e=t=>t._readableState.pipes.length>0,Bre=(t,e,r)=>{let n=WA(t);fo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var jre=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>m1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},m1e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=zte(t,o,d),p=hs(f),{stdioItems:h,objectMode:m}=e[r],y=g1e([p],h,c,n),{serializedResult:v,finalResult:b=v}=_1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});y1e({serializedResult:v,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let w=a[r]?b:void 0;try{return n.error===void 0&&S1e(v,h,i),w}catch(S){return n.error=S,w}},g1e=(t,e,r,n)=>{try{return Nw(t,e,r,!1)}catch(i){return n.error=i,t}},_1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:A_(t)};let s=r7(t,r);return n[o]?{serializedResult:s,finalResult:e$(s,!i[o],e)}:{serializedResult:s}},y1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!kw({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=e$(t,!1,s);try{Fre(a,e,n)}catch(c){r.error??=c}},S1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Rw.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?h1e(n,t):(r.add(o),p1e(n,t))}};var zre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,_s(e,r,"all")]:Array.isArray(e)?[_s(t,r,"all"),...e]:zt(t)&&zt(e)?lL([t,e]):`${t}${e}`};import{once as i$}from"events";var Gre=async(t,e)=>{let[r,n]=await E1e(t);return e.isForcefullyTerminated??=!1,[r,n]},E1e=async t=>{let[e,r]=await Promise.allSettled([i$(t,"spawn"),i$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?qre(t):r.value},qre=async t=>{try{return await i$(t,"exit")}catch{return qre(t)}},Vre=async t=>{let[e,r]=await t;if(!v1e(e,r)&&o$(e,r))throw new Ri;return[e,r]},v1e=(t,e)=>t===void 0&&e===void 0,o$=(t,e)=>t!==0||e!==null;var Hre=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=T1e(t,e,r),s=o?.code==="ETIMEDOUT",a=jte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},T1e=(t,e,r)=>t!==void 0?t:o$(e,r)?new Ri:void 0;var Wre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=A1e(t,e,r),d=R1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return wf(d,c,l)},A1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),a=w1e(r),{file:c,commandArguments:l,options:u}=mw(t,e,a);x1e(u);let d=bre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},w1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,x1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Mw("ipcInput"),t&&Mw("ipc: true"),r&&Mw("detached: true"),n&&Mw("cancelSignal")},Mw=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},R1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=C1e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Hre(c,r),{output:h,error:m=l}=jre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,w)=>_s(b,r,w)),v=_s(zre(h,r),r,"all");return P1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:v,options:r,command:n,escapedCommand:i,startTime:a})},C1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{$re(o,r);let a=I1e(r);return b1e(...gw(t,e,a))}catch(a){return Af({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},I1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:bw(e)}),P1e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?Aw({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):k_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as _Fe}from"events";import{spawn as yFe}from"child_process";import Xre from"process";import{once as s$,on as O1e}from"events";var Yre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(yf({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:lw(t)}),N1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),N1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ow(e,i);let o=ka(t,e,r),s=new AbortController;try{return await Promise.race([k1e(o,n,s),M1e(o,r,s),D1e(o,r,s)])}catch(a){throw Sf(t),a}finally{s.abort(),sw(e,i)}},k1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await s$(t,"message",{signal:r});return n}for await(let[n]of O1e(t,"message",{signal:r}))if(e(n))return n},M1e=async(t,e,{signal:r})=>{await s$(t,"disconnect",{signal:r}),Mee(e)},D1e=async(t,e,{signal:r})=>{let[n]=await s$(t,"strict:error",{signal:r});throw rw(n,e)};import{once as Zre,on as L1e}from"events";var Jre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>a$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),a$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{yf({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:lw(t)}),ow(e,o);let s=ka(t,e,r),a=new AbortController,c={};return $1e(t,s,a),U1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),F1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},$1e=async(t,e,r)=>{try{await Zre(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},U1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Zre(t,"strict:error",{signal:r.signal});n.error=rw(i,e),r.abort()}catch{}},F1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of L1e(r,"message",{signal:o.signal}))Kre(s),yield c}catch{Kre(s)}finally{o.abort(),sw(e,a),n||Sf(t),i&&await t}},Kre=({error:t})=>{if(t)throw t};var Qre=(t,{ipc:e})=>{Object.assign(t,tne(t,!1,e))},ene=()=>{let t=Xre,e=!0,r=Xre.channel!==void 0;return{...tne(t,e,r),getCancelSignal:ate.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},tne=(t,e,r)=>({sendMessage:pw.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Yre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Jre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as B1e}from"child_process";import{PassThrough as j1e,Readable as z1e,Writable as G1e,Duplex as q1e}from"stream";var rne=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{JL(n);let a=new B1e;V1e(a,n),Object.assign(a,{readable:H1e,writable:W1e,duplex:Y1e});let c=Af({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=K1e(c,s,i);return{subprocess:a,promise:l}},V1e=(t,e)=>{let r=D_(),n=D_(),i=D_(),o=Array.from({length:e.length-3},D_),s=D_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},D_=()=>{let t=new j1e;return t.end(),t},H1e=()=>new z1e({read(){}}),W1e=()=>new G1e({write(){}}),Y1e=()=>new q1e({read(){},write(){}}),K1e=async(t,e,r)=>wf(t,e,r);import{createReadStream as nne,createWriteStream as ine}from"fs";import{Buffer as Z1e}from"buffer";import{Readable as L_,Writable as J1e,Duplex as X1e}from"stream";var sne=(t,e)=>Cw(Q1e,t,e,!1),$_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ma[t]}.`)},one={fileNumber:$_,generator:n$,asyncGenerator:n$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:X1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Q1e={input:{...one,fileUrl:({value:t})=>({stream:nne(t)}),filePath:({value:{file:t}})=>({stream:nne(t)}),webStream:({value:t})=>({stream:L_.fromWeb(t)}),iterable:({value:t})=>({stream:L_.from(t)}),asyncIterable:({value:t})=>({stream:L_.from(t)}),string:({value:t})=>({stream:L_.from(t)}),uint8Array:({value:t})=>({stream:L_.from(Z1e.from(t))})},output:{...one,fileUrl:({value:t})=>({stream:ine(t)}),filePath:({value:{file:t,append:e}})=>({stream:ine(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:J1e.fromWeb(t)}),iterable:$_,asyncIterable:$_,string:$_,uint8Array:$_}};import{on as eUe,once as ane}from"events";import{PassThrough as tUe,getDefaultHighWaterMark as rUe}from"stream";import{finished as une}from"stream/promises";function $l(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)l$(i);let e=t.some(({readableObjectMode:i})=>i),r=nUe(t,e),n=new c$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var nUe=(t,e)=>{if(t.length===0)return rUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},c$=class extends tUe{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(l$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=iUe(this,this.#e,this.#o);let r=aUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(l$(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)}},iUe=async(t,e,r)=>{Dw(t,cne);let n=new AbortController;try{await Promise.race([oUe(t,n),sUe(t,e,r,n)])}finally{n.abort(),Dw(t,-cne)}},oUe=async(t,{signal:e})=>{try{await une(t,{signal:e,cleanup:!0})}catch(r){throw dne(t,r),r}},sUe=async(t,e,r,{signal:n})=>{for await(let[i]of eUe(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},l$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},aUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Dw(t,lne);let a=new AbortController;try{await Promise.race([cUe(o,e,a),lUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),uUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Dw(t,-lne)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?u$(t):dUe(t))},cUe=async(t,e,{signal:r})=>{try{await t,r.aborted||u$(e)}catch(n){r.aborted||dne(e,n)}},lUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await une(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;fne(s)?i.add(e):pne(t,s)}},uUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await ane(t,i,{signal:o}),!t.readable)return ane(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},dUe=t=>{t.writable&&t.end()},dne=(t,e)=>{fne(e)?u$(t):pne(t,e)},fne=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",u$=t=>{(t.readable||t.writable)&&t.destroy()},pne=(t,e)=>{t.destroyed||(t.once("error",fUe),t.destroy(e))},fUe=()=>{},Dw=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},cne=2,lne=1;import{finished as hne}from"stream/promises";var Rf=(t,e)=>{t.pipe(e),pUe(t,e),hUe(t,e)},pUe=async(t,e)=>{if(!(xi(t)||xi(e))){try{await hne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}d$(e)}},d$=t=>{t.writable&&t.end()},hUe=async(t,e)=>{if(!(xi(t)||xi(e))){try{await hne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}f$(t)}},f$=t=>{t.readable&&t.destroy()};var mne=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Zn.has(c)))mUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Zn.has(c)))_Ue({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:$l(o);Rf(s,i)}},mUe=(t,e,r,n)=>{r==="output"?Rf(t.stdio[n],e):Rf(e,t.stdio[n]);let i=gUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},gUe=["stdin","stdout","stderr"],_Ue=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;yUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},yUe=(t,{signal:e})=>{xi(t)&&kl(t,SUe,e)},SUe=2;import{addAbortListener as TUe}from"events";var Ul=[];Ul.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ul.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ul.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Lw=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",p$=Symbol.for("signal-exit emitter"),h$=globalThis,EUe=Object.defineProperty.bind(Object),m$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(h$[p$])return h$[p$];EUe(h$,p$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},$w=class{},vUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),g$=class extends $w{onExit(){return()=>{}}load(){}unload(){}},_$=class extends $w{#e=y$.platform==="win32"?"SIGINT":"SIGHUP";#r=new m$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ul)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!Lw(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of Ul)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,Ul.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return Lw(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&Lw(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:gne,load:qvt,unload:Vvt}=vUe(Lw(y$)?new _$(y$):new g$);var _ne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=gne(()=>{t.kill()});TUe(n,()=>{i()})};var Sne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=YA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=bUe(r,n,i),{sourceStream:d,sourceError:f}=wUe(t,l),{options:p,fileDescriptors:h}=ho.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},bUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=AUe(t,e,...r),a=iw(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},AUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(yne,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||aL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=UA(r,...n);return{destination:e(yne)(i,o,s),pipeOptions:s}}if(ho.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}`)},yne=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),wUe=(t,e)=>{try{return{sourceStream:Ef(t,e)}}catch(r){return{sourceError:r}}};var vne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=xUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw S$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},xUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return f$(t),n;if(e!==void 0)return d$(r),e},S$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Af({error:t,command:Ene,escapedCommand:Ene,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Ene="source.pipe(destination)";var Tne=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as RUe}from"stream/promises";var bne=(t,e,r)=>{let n=Uw.has(e)?IUe(t,e):CUe(t,e);return kl(t,OUe,r.signal),kl(e,NUe,r.signal),PUe(e),n},CUe=(t,e)=>{let r=$l([t]);return Rf(r,e),Uw.set(e,r),r},IUe=(t,e)=>{let r=Uw.get(e);return r.add(t),r},PUe=async t=>{try{await RUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Uw.delete(t)},Uw=new WeakMap,OUe=2,NUe=1;import{aborted as kUe}from"util";var Ane=(t,e)=>t===void 0?[]:[MUe(t,e)],MUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await kUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw S$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Fw=(t,...e)=>{if(Nt(e[0]))return Fw.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Sne(t,...e),i=DUe({...n,destination:r});return i.pipe=Fw.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},DUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=LUe(t,i);vne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=bne(e,o,d);return await Promise.race([Tne(u),...Ane(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},LUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as GUe}from"timers/promises";import{on as $Ue}from"events";import{getDefaultHighWaterMark as UUe}from"stream";var Bw=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return FUe(e,s),xne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},FUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},E$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;BUe(e,s,t);let a=t.readableObjectMode&&!o;return xne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},BUe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},xne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=$Ue(t,"data",{signal:e.signal,highWaterMark:wne,highWatermark:wne});return jUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},v$=UUe(!0),wne=v$,jUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=zUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ll(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*M_(a)}},zUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Pw(t,r,!e),Iw(t,i,!n,{})].filter(Boolean);var Rne=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=qUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([VUe(t),d]);return}let f=XL(c,r),p=E$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([HUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},qUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!kw({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=E$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Ure(a,t,r,o)},VUe=async t=>{await GUe(),t.readableFlowing===null&&t.resume()},HUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await Ew(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await vw(r,{maxBuffer:o})):await bf(r,{maxBuffer:o})}catch(a){return Cne(Ute({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},T$=async t=>{try{return await t}catch(e){return Cne(e)}},Cne=({bufferedData:t})=>e7(t)?new Uint8Array(t):t;import{finished as WUe}from"stream/promises";var U_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=YUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],WUe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||JUe(a,e,r,n)}finally{s.abort()}},YUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&KUe(t,r,n),n},KUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{ZUe(e,r),n.call(t,...i)}},ZUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},JUe=(t,e,r,n)=>{if(!XUe(t,e,r,n))throw t},XUe=(t,e,r,n=!0)=>r.propagating?Ine(t)||jw(t):(r.propagating=!0,b$(r,e)===n?Ine(t):jw(t)),b$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",jw=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Ine=t=>t?.code==="EPIPE";var Pne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>A$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),A$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=U_(t,e,l);if(b$(l,e)){await u;return}let[d]=await Promise.all([Rne({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var One=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?$l([t,e].filter(Boolean)):void 0,Nne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>A$({...QUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:eFe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),QUe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},eFe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as tFe}from"events";var kne=t=>mf(t,"ipc"),Mne=(t,e)=>{let r=WA(t);fo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Dne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=kne(o),a=ms(e,"ipc"),c=ms(r,"ipc");for await(let l of a$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Fte(t,i,c),i.push(l)),s&&Mne(l,o);return i},Lne=async(t,e)=>(await Promise.allSettled([t]),e);var $ne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:v})=>{let b=Gre(t,f),w={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=Pne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),I=Nne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),P=[],D=Dne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),k=rFe(m,t,w),C=nFe(h,w);try{return await Promise.race([Promise.all([{},Vre(b),Promise.all(S),I,D,_te(t,d),...k,...C]),y,iFe(t,v),...fte(t,o,f,v),...kee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:v}),...ute({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:v})])}catch(F){return f.terminationReason??="other",Promise.all([{error:F},b,Promise.all(S.map(_=>T$(_))),T$(I),Lne(D,P),Promise.allSettled(k),Promise.allSettled(C)])}},rFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:U_(n,i,r)),nFe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ii(o,{checkOpen:!1})&&!xi(o)).map(({type:i,value:o,stream:s=o})=>U_(s,n,e,{isSameDirection:Zn.has(i),stopOnExit:i==="native"}))),iFe=async(t,{signal:e})=>{let[r]=await tFe(t,"error",{signal:e});throw r};var Une=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),F_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=po();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Cf=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 oFe}from"stream";import{callbackify as sFe}from"util";import{finished as Fne}from"stream/promises";var w$=async t=>{if(t!==void 0)try{await x$(t)}catch{}},Bne=async t=>{if(t!==void 0)try{await R$(t)}catch{}},x$=async t=>{await Fne(t,{cleanup:!0,readable:!1,writable:!0})},R$=async t=>{await Fne(t,{cleanup:!0,readable:!0,writable:!1})},zw=async(t,e)=>{if(await t,e)throw e},Gw=(t,e,r)=>{r&&!jw(r)?t.destroy(r):e&&t.destroy()};var jne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||yn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=C$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=I$(a,s),{read:f,onStdoutDataDone:p}=P$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new oFe({read:f,destroy:sFe(N$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return O$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},C$=(t,e,r)=>{let n=Ef(t,e),i=F_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},I$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:v$},P$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=po(),s=Bw({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){aFe(this,s,o)},onStdoutDataDone:o}},aFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},O$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await R$(t),await n,await w$(i),await e,r.readable&&r.push(null)}catch(o){await w$(i),zne(r,o)}},N$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Cf(r,e)&&(zne(t,n),await zw(e,n))},zne=(t,e)=>{Gw(t,t.readable,e)};import{Writable as cFe}from"stream";import{callbackify as Gne}from"util";var qne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=k$(t,r,e),s=new cFe({...M$(n,t,i),destroy:Gne(L$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return D$(n,s),s},k$=(t,e,r)=>{let n=iw(t,e),i=F_(r,n,"writableFinal"),o=F_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},M$=(t,e,r)=>({write:lFe.bind(void 0,t),final:Gne(uFe.bind(void 0,t,e,r))}),lFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},uFe=async(t,e,r)=>{await Cf(r,e)&&(t.writable&&t.end(),await e)},D$=async(t,e,r)=>{try{await x$(t),e.writable&&e.end()}catch(n){await Bne(r),Vne(e,n)}},L$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Cf(r,e),await Cf(n,e)&&(Vne(t,i),await zw(e,i))},Vne=(t,e)=>{Gw(t,t.writable,e)};import{Duplex as dFe}from"stream";import{callbackify as fFe}from"util";var Hne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||yn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=C$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=k$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=I$(c,a),{read:y,onStdoutDataDone:v}=P$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new dFe({read:y,...M$(u,t,d),destroy:fFe(pFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return O$({subprocessStdout:c,onStdoutDataDone:v,readable:b,subprocess:t,subprocessStdin:u}),D$(u,b,c),b},pFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([N$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),L$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var $$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||yn.has(e),s=Ef(t,r),a=Bw({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return hFe(a,s,t)},hFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Wne=(t,{encoding:e})=>{let r=Une();t.readable=jne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=qne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Hne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=$$.bind(void 0,t,e),t[Symbol.asyncIterator]=$$.bind(void 0,t,e,{})};var Yne=(t,e)=>{for(let[r,n]of gFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},mFe=(async()=>{})().constructor.prototype,gFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(mFe,t)]);var Kne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=SFe(t,e,r),{subprocess:f,promise:p}=vFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Fw.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Yne(f,p),ho.set(f,{options:u,fileDescriptors:d}),f},SFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),{file:a,commandArguments:c,options:l}=mw(t,e,r),u=EFe(l),d=sne(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},EFe=({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}},vFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=yFe(...gw(t,e,r))}catch(h){return rne({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;_Fe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];mne(c,a,l),_ne(c,r,l);let d={},f=po();c.kill=Oee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=One(c,r),Wne(c,r),Qre(c,r);let p=TFe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},TFe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,y]=await $ne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let v=h.map((S,I)=>_s(S,e,I)),b=_s(m,e,"all"),w=bFe({errorInfo:d,exitCode:f,signal:p,stdio:v,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return wf(w,n,e)},bFe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?k_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof mo,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Aw({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var qw=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,AFe(n,t[n],i)]));return{...t,...r}},AFe=(t,e,r)=>wFe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,wFe=new Set(["env",...pL]);var Da=(t,e,r,n)=>{let i=(s,a,c)=>Da(s,a,r,c),o=(...s)=>xFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},xFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,qw(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=RFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Wre(a,c,l):Kne(a,c,l,i)},RFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=s7(e)?a7(e,r):[e,...r],[s,a,c]=UA(...o),l=qw(qw(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Zne=({file:t,commandArguments:e})=>Xne(t,e),Jne=({file:t,commandArguments:e})=>({...Xne(t,e),isSync:!0}),Xne=(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]=CFe(t);return{file:r,commandArguments:n}},CFe=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(IFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},IFe=/ +/g;var Qne=(t,e,r)=>{t.sync=e(PFe,r),t.s=t.sync},eie=({options:t})=>tie(t),PFe=({options:t})=>({...tie(t),isSync:!0}),tie=t=>({options:{...OFe(t),...t}}),OFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},rie={preferLocal:!0};var nie=Da(()=>({})),MAt=Da(()=>({isSync:!0})),iie=Da(Zne),DAt=Da(Jne),LAt=Da(hte),$At=Da(eie,{},rie,Qne),{sendMessage:UAt,getOneMessage:FAt,getEachMessage:BAt,getCancelSignal:jAt}=ene();var oie=!1,sie=()=>{oie=!0},_o=()=>oie;var B_=null,aie=t=>(B_&&B_.destroy(),B_=new yo({totalAllowedTime:t}),B_),cie=()=>B_;var yo=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&&_o())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await IA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{se.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var lie={name:"@netlify/agent-runner-cli",type:"module",version:"1.163.0-PAW-328.9",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var DFe=kFe(import.meta.url),LFe=ys.dirname(DFe),$Fe=MFe(import.meta.url),If=ue("shell"),U$=new Set,uie={preferLocal:!0},dr=(t,e,r)=>{let[n,i]=UFe(e,r),o={...uie,...i},s=nie(t,n,o);fie(s,o),mie(s);let a=r?.idleTimeout;return a&&a>0&&hie(s,a),s},die=(t,e)=>{let r={...uie,...e},n=iie(t,r);return fie(n,r),mie(n),e?.idleTimeout&&e.idleTimeout>0&&hie(n,e.idleTimeout),n},UFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},fie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Ss.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new h_).pipe(Ss.stdout),t.stderr?.pipe(new h_).pipe(Ss.stderr);return}t.stdout?.pipe(Ss.stdout),t.stderr?.pipe(Ss.stderr)},F$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ss.kill(-t.pid,e),If.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return If.error("Error killing process:",r),!1}},pie=t=>F$(t,"SIGKILL"),hie=(t,e)=>{let r=null,n=()=>{If.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing idle process ${t.pid}`),pie(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},mie=t=>{U$.add(t);let e=cie();if(e){let r=e.onTimesUp(()=>{If.log(`Global timer expired, killing process ${t.pid}`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing process ${t.pid} after timeout`),pie(t))},5e3)});t.on("exit",()=>{U$.delete(t),r()}),t.on("error",()=>{U$.delete(t),r()})}};function So(t,e){if(!Ss.env.NETLIFY_LOCAL_MODE)try{let i=$Fe.resolve(lie.name),o=ys.dirname(i);for(;o!==ys.dirname(o);){let s=ys.dirname(o);if(ys.basename(s)==="node_modules"){let a=ys.join(s,".bin",e);if(Vw.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ss.env.NODE_PATH){let i=ys.join(Ss.env.NODE_PATH,".bin",e);if(Vw.existsSync(i))return i}let r=ys.join(t,"node_modules",".bin",e);if(Vw.existsSync(r))return r;let n=ys.join(LFe,"..","node_modules",".bin",e);if(Vw.existsSync(n))return n}var FFe=ue("utils"),BFe=t=>new Promise(e=>{setTimeout(e,t)});var B$=t=>{try{return new URL(t).hostname||null}catch{return null}},Hw=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await BFe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},La=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},gie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):FFe.error("Could not parse JSON",n))}},jFe=t=>t.charAt(0).toUpperCase()+t.slice(1),Eo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():jFe(e)).join(" ");function Es(t,e){e&&t.log(`Skill invoked: ${e}`)}var Ww=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),_ie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var j$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},zFe=1e4,z$=(t,e=zFe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{createHash as GFe}from"crypto";import{createReadStream as qFe}from"fs";import Yw from"fs/promises";import Tie from"os";import Kw from"path";var yie=ue("repo"),bie="runner-diffs-",Aie=t=>`${bie}${t}-`,wie=async t=>{let e=Tie.tmpdir(),r;try{r=await Yw.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(bie)&&!n.startsWith(Aie(t))).map(n=>Yw.rm(Kw.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Xr=(t,e={})=>dr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Zw=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{yie.info("Getting runner diffs");let n=await HFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=YFe(o);await KFe(h,r)}yie.info("Changes after processing"),await q$(r);let s=await H$(o,r);if(await G$(s,r),i=await WFe(r),!i)return{hasChanges:!1,ignored:s};await Xr(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await Yw.mkdtemp(Kw.join(Tie.tmpdir(),Aie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:v})=>{let b=Kw.join(a,y);await Xr([...v?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await Yw.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await vie(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await Eie(d,h)||(f=h)}await vie(r),se.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Eie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Sie=async t=>{let e=GFe("sha256");for await(let r of qFe(t))e.update(r);return e.digest("hex")},Eie=async(t,e)=>t.size===e.size&&await Sie(t.path)===await Sie(e.path),vie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Xr(["reset","--soft","HEAD~1"],{cwd:t})},G$=async(t=[],e=process.cwd())=>{await Xr(["add",".",...t],{cwd:e})},q$=async(t=process.cwd())=>{let e=await Xr(["status","-s"],{cwd:t});return String(e.stdout??"")},xie=/.. (.+)?\.log$/,VFe=[xie],HFe=async(t=process.cwd())=>{let e=await q$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
114
|
+
if (condition) { yield value; }`)};import{Buffer as Z$e}from"buffer";import{StringDecoder as J$e}from"string_decoder";var Pw=(t,e,r)=>{if(r)return;if(t)return{transform:X$e.bind(void 0,new TextEncoder)};let n=new J$e(e);return{transform:Q$e.bind(void 0,n),final:e1e.bind(void 0,n)}},X$e=function*(t,e){Z$e.isBuffer(e)?yield hs(e):typeof e=="string"?yield t.encode(e):yield e},Q$e=function*(t,e){yield zt(e)?t.write(e):e},e1e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Ore}from"util";var t$=Ore(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Ow=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=r1e}=e[r];for await(let i of n(t))yield*Ow(i,e,r+1)},Nre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*t1e(r,Number(e),t)},t1e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Ow(n,r,e+1)},kre=Ore(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),r1e=function*(t){yield t};var r$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Mre=(t,e)=>[...e.flatMap(r=>[...Ll(r,t,0)]),...M_(t)],Ll=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=i1e}=e[r];for(let i of n(t))yield*Ll(i,e,r+1)},M_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*n1e(r,Number(e),t)},n1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ll(n,r,e+1)},i1e=function*(t){yield t};var n$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Lre(t,s,o),l=Dl(e),u=Dl(r),d=l?t$.bind(void 0,Ow,a):r$.bind(void 0,Ll),f=l||u?t$.bind(void 0,Nre,a):r$.bind(void 0,M_),p=l||u?kre.bind(void 0,a):void 0;return{stream:new o1e({writableObjectMode:n,writableHighWaterMark:Dre(n),readableObjectMode:i,readableHighWaterMark:Dre(i),transform(m,y,v){d([m,c,0],this,v)},flush(m){f([c],this,m)},destroy:p})}},Nw=(t,e,r,n)=>{let i=e.filter(({type:s})=>s==="generator"),o=n?i.reverse():i;for(let{value:s,optionName:a}of o){let c=Lre(s,r,a);t=Mre(c,t)}return t},Lre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Cre(n,a)},Pw(r,s,n),Iw(r,o,n,c),{transform:t,final:e},{transform:Ire(i,a)},Rre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var $re=(t,e)=>{for(let r of s1e(t))a1e(t,r,e)},s1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),a1e=(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 ${Ma[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>c1e(a,n));r.input=A_(s)},c1e=(t,e)=>{let r=Nw(t,e,"utf8",!0);return l1e(r),A_(r)},l1e=t=>{let e=t.find(r=>typeof r!="string"&&!zt(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 p1e,appendFileSync as h1e}from"fs";var kw=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&mf(r,n)&&!yn.has(e)&&u1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&d1e.has(o))||t.every(({type:i})=>Zn.has(i))),u1e=t=>t===1||t===2,d1e=new Set(["pipe","overlapped"]),Ure=async(t,e,r,n)=>{for await(let i of t)f1e(e)||Bre(i,r,n)},Fre=(t,e,r)=>{for(let n of t)Bre(n,e,r)},f1e=t=>t._readableState.pipes.length>0,Bre=(t,e,r)=>{let n=WA(t);fo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var jre=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let o={},s=new Set([]);return{output:e.map((c,l)=>m1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},m1e=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:o,verboseInfo:s},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=zte(t,o,d),p=hs(f),{stdioItems:h,objectMode:m}=e[r],y=g1e([p],h,c,n),{serializedResult:v,finalResult:b=v}=_1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});y1e({serializedResult:v,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let w=a[r]?b:void 0;try{return n.error===void 0&&S1e(v,h,i),w}catch(S){return n.error=S,w}},g1e=(t,e,r,n)=>{try{return Nw(t,e,r,!1)}catch(i){return n.error=i,t}},_1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:A_(t)};let s=r7(t,r);return n[o]?{serializedResult:s,finalResult:e$(s,!i[o],e)}:{serializedResult:s}},y1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!kw({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=e$(t,!1,s);try{Fre(a,e,n)}catch(c){r.error??=c}},S1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Rw.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?h1e(n,t):(r.add(o),p1e(n,t))}};var zre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,_s(e,r,"all")]:Array.isArray(e)?[_s(t,r,"all"),...e]:zt(t)&&zt(e)?lL([t,e]):`${t}${e}`};import{once as i$}from"events";var Gre=async(t,e)=>{let[r,n]=await E1e(t);return e.isForcefullyTerminated??=!1,[r,n]},E1e=async t=>{let[e,r]=await Promise.allSettled([i$(t,"spawn"),i$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?qre(t):r.value},qre=async t=>{try{return await i$(t,"exit")}catch{return qre(t)}},Vre=async t=>{let[e,r]=await t;if(!v1e(e,r)&&o$(e,r))throw new Ri;return[e,r]},v1e=(t,e)=>t===void 0&&e===void 0,o$=(t,e)=>t!==0||e!==null;var Hre=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=T1e(t,e,r),s=o?.code==="ETIMEDOUT",a=jte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},T1e=(t,e,r)=>t!==void 0?t:o$(e,r)?new Ri:void 0;var Wre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=A1e(t,e,r),d=R1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return wf(d,c,l)},A1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),a=w1e(r),{file:c,commandArguments:l,options:u}=mw(t,e,a);x1e(u);let d=bre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},w1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,x1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Mw("ipcInput"),t&&Mw("ipc: true"),r&&Mw("detached: true"),n&&Mw("cancelSignal")},Mw=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},R1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=C1e({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=Hre(c,r),{output:h,error:m=l}=jre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,w)=>_s(b,r,w)),v=_s(zre(h,r),r,"all");return P1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:v,options:r,command:n,escapedCommand:i,startTime:a})},C1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{$re(o,r);let a=I1e(r);return b1e(...gw(t,e,a))}catch(a){return Af({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},I1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:bw(e)}),P1e=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:o,all:s,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?Aw({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):k_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as _Fe}from"events";import{spawn as yFe}from"child_process";import Xre from"process";import{once as s$,on as O1e}from"events";var Yre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(yf({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:lw(t)}),N1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),N1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ow(e,i);let o=ka(t,e,r),s=new AbortController;try{return await Promise.race([k1e(o,n,s),M1e(o,r,s),D1e(o,r,s)])}catch(a){throw Sf(t),a}finally{s.abort(),sw(e,i)}},k1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await s$(t,"message",{signal:r});return n}for await(let[n]of O1e(t,"message",{signal:r}))if(e(n))return n},M1e=async(t,e,{signal:r})=>{await s$(t,"disconnect",{signal:r}),Mee(e)},D1e=async(t,e,{signal:r})=>{let[n]=await s$(t,"strict:error",{signal:r});throw rw(n,e)};import{once as Zre,on as L1e}from"events";var Jre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>a$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),a$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{yf({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:lw(t)}),ow(e,o);let s=ka(t,e,r),a=new AbortController,c={};return $1e(t,s,a),U1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),F1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},$1e=async(t,e,r)=>{try{await Zre(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},U1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Zre(t,"strict:error",{signal:r.signal});n.error=rw(i,e),r.abort()}catch{}},F1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of L1e(r,"message",{signal:o.signal}))Kre(s),yield c}catch{Kre(s)}finally{o.abort(),sw(e,a),n||Sf(t),i&&await t}},Kre=({error:t})=>{if(t)throw t};var Qre=(t,{ipc:e})=>{Object.assign(t,tne(t,!1,e))},ene=()=>{let t=Xre,e=!0,r=Xre.channel!==void 0;return{...tne(t,e,r),getCancelSignal:ate.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},tne=(t,e,r)=>({sendMessage:pw.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Yre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Jre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as B1e}from"child_process";import{PassThrough as j1e,Readable as z1e,Writable as G1e,Duplex as q1e}from"stream";var rne=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{JL(n);let a=new B1e;V1e(a,n),Object.assign(a,{readable:H1e,writable:W1e,duplex:Y1e});let c=Af({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=K1e(c,s,i);return{subprocess:a,promise:l}},V1e=(t,e)=>{let r=D_(),n=D_(),i=D_(),o=Array.from({length:e.length-3},D_),s=D_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},D_=()=>{let t=new j1e;return t.end(),t},H1e=()=>new z1e({read(){}}),W1e=()=>new G1e({write(){}}),Y1e=()=>new q1e({read(){},write(){}}),K1e=async(t,e,r)=>wf(t,e,r);import{createReadStream as nne,createWriteStream as ine}from"fs";import{Buffer as Z1e}from"buffer";import{Readable as L_,Writable as J1e,Duplex as X1e}from"stream";var sne=(t,e)=>Cw(Q1e,t,e,!1),$_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ma[t]}.`)},one={fileNumber:$_,generator:n$,asyncGenerator:n$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:X1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Q1e={input:{...one,fileUrl:({value:t})=>({stream:nne(t)}),filePath:({value:{file:t}})=>({stream:nne(t)}),webStream:({value:t})=>({stream:L_.fromWeb(t)}),iterable:({value:t})=>({stream:L_.from(t)}),asyncIterable:({value:t})=>({stream:L_.from(t)}),string:({value:t})=>({stream:L_.from(t)}),uint8Array:({value:t})=>({stream:L_.from(Z1e.from(t))})},output:{...one,fileUrl:({value:t})=>({stream:ine(t)}),filePath:({value:{file:t,append:e}})=>({stream:ine(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:J1e.fromWeb(t)}),iterable:$_,asyncIterable:$_,string:$_,uint8Array:$_}};import{on as eUe,once as ane}from"events";import{PassThrough as tUe,getDefaultHighWaterMark as rUe}from"stream";import{finished as une}from"stream/promises";function $l(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)l$(i);let e=t.some(({readableObjectMode:i})=>i),r=nUe(t,e),n=new c$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var nUe=(t,e)=>{if(t.length===0)return rUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},c$=class extends tUe{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(l$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=iUe(this,this.#e,this.#o);let r=aUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(l$(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)}},iUe=async(t,e,r)=>{Dw(t,cne);let n=new AbortController;try{await Promise.race([oUe(t,n),sUe(t,e,r,n)])}finally{n.abort(),Dw(t,-cne)}},oUe=async(t,{signal:e})=>{try{await une(t,{signal:e,cleanup:!0})}catch(r){throw dne(t,r),r}},sUe=async(t,e,r,{signal:n})=>{for await(let[i]of eUe(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},l$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},aUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Dw(t,lne);let a=new AbortController;try{await Promise.race([cUe(o,e,a),lUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),uUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Dw(t,-lne)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?u$(t):dUe(t))},cUe=async(t,e,{signal:r})=>{try{await t,r.aborted||u$(e)}catch(n){r.aborted||dne(e,n)}},lUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await une(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;fne(s)?i.add(e):pne(t,s)}},uUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await ane(t,i,{signal:o}),!t.readable)return ane(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},dUe=t=>{t.writable&&t.end()},dne=(t,e)=>{fne(e)?u$(t):pne(t,e)},fne=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",u$=t=>{(t.readable||t.writable)&&t.destroy()},pne=(t,e)=>{t.destroyed||(t.once("error",fUe),t.destroy(e))},fUe=()=>{},Dw=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},cne=2,lne=1;import{finished as hne}from"stream/promises";var Rf=(t,e)=>{t.pipe(e),pUe(t,e),hUe(t,e)},pUe=async(t,e)=>{if(!(xi(t)||xi(e))){try{await hne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}d$(e)}},d$=t=>{t.writable&&t.end()},hUe=async(t,e)=>{if(!(xi(t)||xi(e))){try{await hne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}f$(t)}},f$=t=>{t.readable&&t.destroy()};var mne=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:o,direction:s}]of Object.entries(e)){for(let{stream:a}of o.filter(({type:c})=>Zn.has(c)))mUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Zn.has(c)))_Ue({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:$l(o);Rf(s,i)}},mUe=(t,e,r,n)=>{r==="output"?Rf(t.stdio[n],e):Rf(e,t.stdio[n]);let i=gUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},gUe=["stdin","stdout","stderr"],_Ue=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;yUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},yUe=(t,{signal:e})=>{xi(t)&&kl(t,SUe,e)},SUe=2;import{addAbortListener as TUe}from"events";var Ul=[];Ul.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ul.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ul.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Lw=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",p$=Symbol.for("signal-exit emitter"),h$=globalThis,EUe=Object.defineProperty.bind(Object),m$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(h$[p$])return h$[p$];EUe(h$,p$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},$w=class{},vUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),g$=class extends $w{onExit(){return()=>{}}load(){}unload(){}},_$=class extends $w{#e=y$.platform==="win32"?"SIGINT":"SIGHUP";#r=new m$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ul)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!Lw(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of Ul)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,Ul.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return Lw(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#o.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&Lw(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:gne,load:qvt,unload:Vvt}=vUe(Lw(y$)?new _$(y$):new g$);var _ne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=gne(()=>{t.kill()});TUe(n,()=>{i()})};var Sne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=YA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=bUe(r,n,i),{sourceStream:d,sourceError:f}=wUe(t,l),{options:p,fileDescriptors:h}=ho.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},bUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=AUe(t,e,...r),a=iw(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},AUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(yne,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||aL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=UA(r,...n);return{destination:e(yne)(i,o,s),pipeOptions:s}}if(ho.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}`)},yne=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),wUe=(t,e)=>{try{return{sourceStream:Ef(t,e)}}catch(r){return{sourceError:r}}};var vne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=xUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw S$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},xUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return f$(t),n;if(e!==void 0)return d$(r),e},S$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Af({error:t,command:Ene,escapedCommand:Ene,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Ene="source.pipe(destination)";var Tne=async t=>{let[{status:e,reason:r,value:n=r},{status:i,reason:o,value:s=o}]=await t;if(s.pipedFrom.includes(n)||s.pipedFrom.push(n),i==="rejected")throw s;if(e==="rejected")throw n;return s};import{finished as RUe}from"stream/promises";var bne=(t,e,r)=>{let n=Uw.has(e)?IUe(t,e):CUe(t,e);return kl(t,OUe,r.signal),kl(e,NUe,r.signal),PUe(e),n},CUe=(t,e)=>{let r=$l([t]);return Rf(r,e),Uw.set(e,r),r},IUe=(t,e)=>{let r=Uw.get(e);return r.add(t),r},PUe=async t=>{try{await RUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Uw.delete(t)},Uw=new WeakMap,OUe=2,NUe=1;import{aborted as kUe}from"util";var Ane=(t,e)=>t===void 0?[]:[MUe(t,e)],MUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await kUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw S$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Fw=(t,...e)=>{if(Nt(e[0]))return Fw.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Sne(t,...e),i=DUe({...n,destination:r});return i.pipe=Fw.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},DUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=LUe(t,i);vne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=bne(e,o,d);return await Promise.race([Tne(u),...Ane(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},LUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as GUe}from"timers/promises";import{on as $Ue}from"events";import{getDefaultHighWaterMark as UUe}from"stream";var Bw=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return FUe(e,s),xne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},FUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},E$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;BUe(e,s,t);let a=t.readableObjectMode&&!o;return xne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},BUe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},xne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=$Ue(t,"data",{signal:e.signal,highWaterMark:wne,highWatermark:wne});return jUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},v$=UUe(!0),wne=v$,jUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=zUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ll(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*M_(a)}},zUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Pw(t,r,!e),Iw(t,i,!n,{})].filter(Boolean);var Rne=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:o,lines:s,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=qUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([VUe(t),d]);return}let f=XL(c,r),p=E$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([HUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},qUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!kw({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=E$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Ure(a,t,r,o)},VUe=async t=>{await GUe(),t.readableFlowing===null&&t.resume()},HUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await Ew(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await vw(r,{maxBuffer:o})):await bf(r,{maxBuffer:o})}catch(a){return Cne(Ute({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},T$=async t=>{try{return await t}catch(e){return Cne(e)}},Cne=({bufferedData:t})=>e7(t)?new Uint8Array(t):t;import{finished as WUe}from"stream/promises";var U_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=YUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],WUe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||JUe(a,e,r,n)}finally{s.abort()}},YUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&KUe(t,r,n),n},KUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{ZUe(e,r),n.call(t,...i)}},ZUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},JUe=(t,e,r,n)=>{if(!XUe(t,e,r,n))throw t},XUe=(t,e,r,n=!0)=>r.propagating?Ine(t)||jw(t):(r.propagating=!0,b$(r,e)===n?Ine(t):jw(t)),b$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",jw=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Ine=t=>t?.code==="EPIPE";var Pne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>A$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),A$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=U_(t,e,l);if(b$(l,e)){await u;return}let[d]=await Promise.all([Rne({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var One=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?$l([t,e].filter(Boolean)):void 0,Nne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>A$({...QUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:eFe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),QUe=({stdout:t,stderr:e,all:r},[,n,i])=>{let o=n||i;return o?n?i?{stream:r,buffer:o}:{stream:t,buffer:o}:{stream:e,buffer:o}:{stream:r,buffer:o}},eFe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as tFe}from"events";var kne=t=>mf(t,"ipc"),Mne=(t,e)=>{let r=WA(t);fo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Dne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=kne(o),a=ms(e,"ipc"),c=ms(r,"ipc");for await(let l of a$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Fte(t,i,c),i.push(l)),s&&Mne(l,o);return i},Lne=async(t,e)=>(await Promise.allSettled([t]),e);var $ne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:v})=>{let b=Gre(t,f),w={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=Pne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),I=Nne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:w}),P=[],D=Dne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),k=rFe(m,t,w),C=nFe(h,w);try{return await Promise.race([Promise.all([{},Vre(b),Promise.all(S),I,D,_te(t,d),...k,...C]),y,iFe(t,v),...fte(t,o,f,v),...kee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:v}),...ute({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:v})])}catch(F){return f.terminationReason??="other",Promise.all([{error:F},b,Promise.all(S.map(_=>T$(_))),T$(I),Lne(D,P),Promise.allSettled(k),Promise.allSettled(C)])}},rFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:U_(n,i,r)),nFe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ii(o,{checkOpen:!1})&&!xi(o)).map(({type:i,value:o,stream:s=o})=>U_(s,n,e,{isSameDirection:Zn.has(i),stopOnExit:i==="native"}))),iFe=async(t,{signal:e})=>{let[r]=await tFe(t,"error",{signal:e});throw r};var Une=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),F_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=po();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Cf=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 oFe}from"stream";import{callbackify as sFe}from"util";import{finished as Fne}from"stream/promises";var w$=async t=>{if(t!==void 0)try{await x$(t)}catch{}},Bne=async t=>{if(t!==void 0)try{await R$(t)}catch{}},x$=async t=>{await Fne(t,{cleanup:!0,readable:!1,writable:!0})},R$=async t=>{await Fne(t,{cleanup:!0,readable:!0,writable:!1})},zw=async(t,e)=>{if(await t,e)throw e},Gw=(t,e,r)=>{r&&!jw(r)?t.destroy(r):e&&t.destroy()};var jne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||yn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=C$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=I$(a,s),{read:f,onStdoutDataDone:p}=P$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new oFe({read:f,destroy:sFe(N$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return O$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},C$=(t,e,r)=>{let n=Ef(t,e),i=F_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},I$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:v$},P$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=po(),s=Bw({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){aFe(this,s,o)},onStdoutDataDone:o}},aFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},O$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await R$(t),await n,await w$(i),await e,r.readable&&r.push(null)}catch(o){await w$(i),zne(r,o)}},N$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Cf(r,e)&&(zne(t,n),await zw(e,n))},zne=(t,e)=>{Gw(t,t.readable,e)};import{Writable as cFe}from"stream";import{callbackify as Gne}from"util";var qne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=k$(t,r,e),s=new cFe({...M$(n,t,i),destroy:Gne(L$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return D$(n,s),s},k$=(t,e,r)=>{let n=iw(t,e),i=F_(r,n,"writableFinal"),o=F_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},M$=(t,e,r)=>({write:lFe.bind(void 0,t),final:Gne(uFe.bind(void 0,t,e,r))}),lFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},uFe=async(t,e,r)=>{await Cf(r,e)&&(t.writable&&t.end(),await e)},D$=async(t,e,r)=>{try{await x$(t),e.writable&&e.end()}catch(n){await Bne(r),Vne(e,n)}},L$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Cf(r,e),await Cf(n,e)&&(Vne(t,i),await zw(e,i))},Vne=(t,e)=>{Gw(t,t.writable,e)};import{Duplex as dFe}from"stream";import{callbackify as fFe}from"util";var Hne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||yn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=C$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=k$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=I$(c,a),{read:y,onStdoutDataDone:v}=P$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new dFe({read:y,...M$(u,t,d),destroy:fFe(pFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return O$({subprocessStdout:c,onStdoutDataDone:v,readable:b,subprocess:t,subprocessStdin:u}),D$(u,b,c),b},pFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([N$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),L$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var $$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||yn.has(e),s=Ef(t,r),a=Bw({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return hFe(a,s,t)},hFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Wne=(t,{encoding:e})=>{let r=Une();t.readable=jne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=qne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Hne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=$$.bind(void 0,t,e),t[Symbol.asyncIterator]=$$.bind(void 0,t,e,{})};var Yne=(t,e)=>{for(let[r,n]of gFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},mFe=(async()=>{})().constructor.prototype,gFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(mFe,t)]);var Kne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=SFe(t,e,r),{subprocess:f,promise:p}=vFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Fw.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Yne(f,p),ho.set(f,{options:u,fileDescriptors:d}),f},SFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),{file:a,commandArguments:c,options:l}=mw(t,e,r),u=EFe(l),d=sne(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},EFe=({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}},vFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=yFe(...gw(t,e,r))}catch(h){return rne({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;_Fe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];mne(c,a,l),_ne(c,r,l);let d={},f=po();c.kill=Oee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=One(c,r),Wne(c,r),Qre(c,r);let p=TFe({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:o,escapedCommand:s,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},TFe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,y]=await $ne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let v=h.map((S,I)=>_s(S,e,I)),b=_s(m,e,"all"),w=bFe({errorInfo:d,exitCode:f,signal:p,stdio:v,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return wf(w,n,e)},bFe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?k_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof mo,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Aw({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var qw=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,AFe(n,t[n],i)]));return{...t,...r}},AFe=(t,e,r)=>wFe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,wFe=new Set(["env",...pL]);var Da=(t,e,r,n)=>{let i=(s,a,c)=>Da(s,a,r,c),o=(...s)=>xFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},xFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,qw(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=RFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Wre(a,c,l):Kne(a,c,l,i)},RFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=s7(e)?a7(e,r):[e,...r],[s,a,c]=UA(...o),l=qw(qw(n,i),c),{file:u=s,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:s,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Zne=({file:t,commandArguments:e})=>Xne(t,e),Jne=({file:t,commandArguments:e})=>({...Xne(t,e),isSync:!0}),Xne=(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]=CFe(t);return{file:r,commandArguments:n}},CFe=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(IFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},IFe=/ +/g;var Qne=(t,e,r)=>{t.sync=e(PFe,r),t.s=t.sync},eie=({options:t})=>tie(t),PFe=({options:t})=>({...tie(t),isSync:!0}),tie=t=>({options:{...OFe(t),...t}}),OFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},rie={preferLocal:!0};var nie=Da(()=>({})),MAt=Da(()=>({isSync:!0})),iie=Da(Zne),DAt=Da(Jne),LAt=Da(hte),$At=Da(eie,{},rie,Qne),{sendMessage:UAt,getOneMessage:FAt,getEachMessage:BAt,getCancelSignal:jAt}=ene();var oie=!1,sie=()=>{oie=!0},_o=()=>oie;var B_=null,aie=t=>(B_&&B_.destroy(),B_=new yo({totalAllowedTime:t}),B_),cie=()=>B_;var yo=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&&_o())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await IA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{se.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),o(),s&&clearTimeout(s)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var lie={name:"@netlify/agent-runner-cli",type:"module",version:"1.163.0-PAW-328.10",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var DFe=kFe(import.meta.url),LFe=ys.dirname(DFe),$Fe=MFe(import.meta.url),If=ue("shell"),U$=new Set,uie={preferLocal:!0},dr=(t,e,r)=>{let[n,i]=UFe(e,r),o={...uie,...i},s=nie(t,n,o);fie(s,o),mie(s);let a=r?.idleTimeout;return a&&a>0&&hie(s,a),s},die=(t,e)=>{let r={...uie,...e},n=iie(t,r);return fie(n,r),mie(n),e?.idleTimeout&&e.idleTimeout>0&&hie(n,e.idleTimeout),n},UFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},fie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Ss.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new h_).pipe(Ss.stdout),t.stderr?.pipe(new h_).pipe(Ss.stderr);return}t.stdout?.pipe(Ss.stdout),t.stderr?.pipe(Ss.stderr)},F$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ss.kill(-t.pid,e),If.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return If.error("Error killing process:",r),!1}},pie=t=>F$(t,"SIGKILL"),hie=(t,e)=>{let r=null,n=()=>{If.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing idle process ${t.pid}`),pie(t))},5e3)},i=()=>{r&&clearTimeout(r),r=setTimeout(n,e)};i(),t.stdout?.on("data",i),t.stderr?.on("data",i);let o=()=>{r&&(clearTimeout(r),r=null)};t.on("exit",o),t.on("error",o)},mie=t=>{U$.add(t);let e=cie();if(e){let r=e.onTimesUp(()=>{If.log(`Global timer expired, killing process ${t.pid}`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing process ${t.pid} after timeout`),pie(t))},5e3)});t.on("exit",()=>{U$.delete(t),r()}),t.on("error",()=>{U$.delete(t),r()})}};function So(t,e){if(!Ss.env.NETLIFY_LOCAL_MODE)try{let i=$Fe.resolve(lie.name),o=ys.dirname(i);for(;o!==ys.dirname(o);){let s=ys.dirname(o);if(ys.basename(s)==="node_modules"){let a=ys.join(s,".bin",e);if(Vw.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Ss.env.NODE_PATH){let i=ys.join(Ss.env.NODE_PATH,".bin",e);if(Vw.existsSync(i))return i}let r=ys.join(t,"node_modules",".bin",e);if(Vw.existsSync(r))return r;let n=ys.join(LFe,"..","node_modules",".bin",e);if(Vw.existsSync(n))return n}var FFe=ue("utils"),BFe=t=>new Promise(e=>{setTimeout(e,t)});var B$=t=>{try{return new URL(t).hostname||null}catch{return null}},Hw=(t,e=3e3)=>{let r=!1,n=null,i=[],o=null,s=(...a)=>{if(r)return n=a,new Promise(u=>{i.push(u)});r=!0;let c,l=new Promise(u=>{c=u});return o=(async()=>{await Promise.resolve();let u=await t(...a);for(c(u);;){if(await BFe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},La=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},gie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):FFe.error("Could not parse JSON",n))}},jFe=t=>t.charAt(0).toUpperCase()+t.slice(1),Eo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():jFe(e)).join(" ");function Es(t,e){e&&t.log(`Skill invoked: ${e}`)}var Ww=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),_ie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var j$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},zFe=1e4,z$=(t,e=zFe)=>{if(!t||typeof t!="string"||t.length<=e)return t;let n=t.startsWith("```")?"\n... [truncated]\n```":"... [truncated]";return t.slice(0,e)+n};import{createHash as GFe}from"crypto";import{createReadStream as qFe}from"fs";import Yw from"fs/promises";import Tie from"os";import Kw from"path";var yie=ue("repo"),bie="runner-diffs-",Aie=t=>`${bie}${t}-`,wie=async t=>{let e=Tie.tmpdir(),r;try{r=await Yw.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(bie)&&!n.startsWith(Aie(t))).map(n=>Yw.rm(Kw.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Xr=(t,e={})=>dr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Zw=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{yie.info("Getting runner diffs");let n=await HFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=YFe(o);await KFe(h,r)}yie.info("Changes after processing"),await q$(r);let s=await H$(o,r);if(await G$(s,r),i=await WFe(r),!i)return{hasChanges:!1,ignored:s};await Xr(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await Yw.mkdtemp(Kw.join(Tie.tmpdir(),Aie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:v})=>{let b=Kw.join(a,y);await Xr([...v?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await Yw.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await vie(r),{hasChanges:!1,ignored:s};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await Eie(d,h)||(f=h)}await vie(r),se.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Eie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Sie=async t=>{let e=GFe("sha256");for await(let r of qFe(t))e.update(r);return e.digest("hex")},Eie=async(t,e)=>t.size===e.size&&await Sie(t.path)===await Sie(e.path),vie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Xr(["reset","--soft","HEAD~1"],{cwd:t})},G$=async(t=[],e=process.cwd())=>{await Xr(["add",".",...t],{cwd:e})},q$=async(t=process.cwd())=>{let e=await Xr(["status","-s"],{cwd:t});return String(e.stdout??"")},xie=/.. (.+)?\.log$/,VFe=[xie],HFe=async(t=process.cwd())=>{let e=await q$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
115
115
|
`).filter(i=>VFe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},WFe=async(t=process.cwd())=>{try{return await Xr(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},V$=async(t=process.cwd())=>{let{stdout:e}=await Xr(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},Rie=async(t=process.cwd())=>{let{stdout:e}=await Xr(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},H$=async(t,e=process.cwd())=>{t||=await q$(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
|
|
116
116
|
`).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${Kw.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(xie)?.[1];o&&n.push(`:!${o}.log`)}),n},Cie=async(t=process.cwd())=>{await Xr(["reset","--hard","HEAD"],{cwd:t})},Iie=async(t=process.cwd())=>{let e=await Xr(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
|
|
117
117
|
`).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},YFe=t=>{let e=t.split(`
|
|
@@ -403,7 +403,7 @@ priority = 20
|
|
|
403
403
|
`),gr.log("Ask policy allows the read-only database query command",{allowedPrefixes:i})}let n=Cc.join(vS.homedir(),".gemini","ask-policy.toml");return await ku.mkdir(Cc.dirname(n),{recursive:!0}),await ku.writeFile(n,r.join(`
|
|
404
404
|
`),"utf-8"),n};async function Oz({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=Dh.cwd(),cliPath:c="netlify",abortSignal:l=void 0,onSessionId:u=void 0,forceLowEffortForCreditWrapUp:d=void 0}){let{prompt:f}=t,p=op("gemini",t.effort);t.effort&&!p&&gr.log(`Effort '${t.effort}' is not available on ${KC}; using its default`);let h=d?"low":p;Aqe({aiGateway:i});let m=await wqe({aiGateway:i,config:t,model:t.model});await Tqe({model:m,effort:h,creditWrapUpTurn:d});let y=[],v=[],b=[],w={},S=0,I=0,P,D,k,C,F,_=!!(o&&s),J=!1;_&&(J=await ES(s)),_&&!J&&(gr.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),se.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let O=t.mode==="ask",g=O?await xqe({config:t,cliPath:c}):void 0,E=[So(a,"gemini"),...m?["--model",m]:[],...O?["--approval-mode","default","--policy",g]:["--yolo"],"--skip-trust","--output-format","stream-json",...J?["-r",s]:[],"-p",""],R=`${Dh.env.NVM_BIN}/node`;gr.log(`Running ${R} ${E.join(" ")}`);let K=e.utils.run(R,E,{all:!0,env:{...Dh.env,GEMINI_CLI_NO_RELAUNCH:"1"},cwd:a,idleTimeout:fs,cancelSignal:l});K.stdin?.end(f);let G=La(()=>{r?.({steps:y,duration:I}),n?.({steps:v,duration:I}),v=[]},250),ce=(fe,ge)=>{fe.id=S,S+=1,b.push(fe),y.push(fe),v.push(fe),ge||G.flush(),G(),ge&&G.flush()},ke=m||"default";t.answeredInteraction||ce({title:`Using ${KC} with ${ke}`,category:H.Environment},!0);let Pe=yqe.createInterface({input:K.all});Pe.on("error",fe=>{gr.error("Readline interface error",{error:fe.message,stack:fe.stack})});let De="",Re=()=>{De&&ce({message:De.trim(),category:H.AgentMessage}),De=""};Pe.on("line",fe=>{let ge;try{if(fe.startsWith("[API Error")){let Ge=fe.match(/\[api error: (.+?)]$/i)?.[1];ge={type:"error",value:gie(Ge,!1)?.error?.message||Ge||"Gemini encountered error"}}else ge=JSON.parse(fe)}catch{return}if(ge)switch(ge.type==="init"&&typeof ge.session_id=="string"&&(C=ge.session_id,u?.(C)),["message","result"].includes(ge.type)||Re(),ge.type){case"message":{ge.role!=="user"&&ge.content&&(De+=ge.content);break}case"tool_use":{if(ge.tool_name===boe){if(ge.tool_id&&!F){let le=ic.safeParse(ge.parameters);le.success?(F={questions:le.data.questions},K.kill()):(gr.warn("Ignoring malformed ask tool input",{toolUseId:ge.tool_id,issues:oc(le.error.issues)}),se.inc("inference.malformed_ask",1))}break}let Ge=Pz[ge.tool_name]?.name??ge.tool_name,q=ge.parameters?.file_path,ae=q&&Cc.relative(a,q),N=ge.parameters?.command,x=ge.tool_name==="activate_skill"&&ge.parameters?.name,U=ge.tool_name==="run_shell_command"&&ks(N),B=[Ge,ae&&`\`${ae}\``,N&&`\`${N}\``].filter(Boolean).join(" ");if(x)B=`Use ${Eo(x)}`;else if(U)B="Generating the site";else if(ge.tool_name==="grep_search"){let{dir_path:le,pattern:ee}=ge.parameters||{};le&&ee?B=`Search in \`${le}\` for \`${ee}\``:le?B=`Search in \`${le}\``:ee&&(B=`Search for \`${ee}\``)}else if(ge.tool_name==="update_topic"){let le=ge.parameters?.title;le&&(B=`${Ge} \`${le}\``)}let V={title:B,category:U?H.SiteGeneration:Pz[ge.tool_name]?.category,...x&&{type:x}};w[ge.tool_id]=V,G.flush();break}case"tool_result":{let Ge=w[ge.tool_id];Ge&&(ge.output&&(Ge.message=`\`\`\`
|
|
405
405
|
${ge.output.trim()}
|
|
406
|
-
\`\`\``),ce(Ge,!0),bqe(Ge));break}case"result":{I=ge.stats?.duration_ms,ge.stats&&(Pa(ge.stats,m?{model:m}:{}),k=ge.stats),ge.status==="error"?D=ge.error?.message:P=De.trim();break}case"error":{D=ge.error;break}case"finished":break;case"init":break;default:{gr.warn("Unhandled message type:",ge.type);break}}});let Me=!1;if(await K.catch(fe=>{Me=Va(fe,l),{error:D,result:P}=Sqe({catchError:fe,runCmd:K,error:D,result:P,runnerName:"Gemini"})}),Pe.close(),F)return G.flush(),{steps:b,duration:I,agentSessionId:C,resolvedModel:m,usage:k,pendingInteraction:F};let Ie=Me;return Ie&&(!P&&De.trim()&&(P=De.trim()),D=void 0),G.flush(),{steps:b,duration:I,result:await sc({initialResult:P,agentName:KC,hasError:!!D}),error:ac({error:D,agentName:KC}),isRetryableError:cc(D),isProviderUnavailableError:lc(D),resolvedModel:m,usage:k,agentSessionId:C,...h&&Xle(m)?{effort:h}:{},...Ie?{aborted:!0}:{}}}var Qle=async()=>{let t=Cc.join(vS.homedir(),".gemini");await ku.rm(t,{recursive:!0,force:!0});let e=Cc.join(vS.homedir(),".agents","skills");await ku.rm(e,{recursive:!0,force:!0})},eue={baseDir:Cc.join(vS.homedir(),".gemini"),include:["tmp"]};import kz from"fs/promises";import oue from"os";import TS from"path";import Dz from"process";import Iqe from"readline";import Rqe from"os";import nue from"path";import Nz from"fs";var tue=ue("opencode_install"),rue="1.17.19",Cqe=()=>nue.join(Rqe.homedir(),".netlify-agent-runner","opencode"),ZC=async t=>{let e=So(t,"opencode");if(e)return e;let r=Cqe(),n=nue.join(r,"node_modules",".bin","opencode");if(Nz.existsSync(n))return n;Nz.mkdirSync(r,{recursive:!0}),tue.log(`Installing opencode-ai@${rue} on demand`);let i=Date.now();await dr("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${rue}`],{cwd:r});let o=Date.now()-i;if(se.timing("opencode.install_duration",o),tue.log(`Installed opencode-ai in ${o}ms`),!Nz.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Vs=ue("runner_opencode"),JC="OpenCode",sue="gateway",Pqe="z-ai/glm-5.3",Oqe=new Set(["z-ai/glm-5.3","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),Nqe=(t,e)=>!t||!xA.includes(t)?t:e&&Oqe.has(e)?"xhigh":"max",Mz={bash:{name:"Run command",category:H.RunCommand},read:{name:"Read file",category:H.FileRead},write:{name:"Edit file",category:H.FileWrite},edit:{name:"Edit file",category:H.FileWrite},glob:{name:"Find files",category:H.Explore},grep:{name:"Search files",category:H.Explore},list:{name:"List directory",category:H.Explore},task:{name:"Task",category:H.Task},todowrite:{name:"Update task list",category:H.Todo},webfetch:{name:"Fetch web",category:H.Web},websearch:{name:"Search web",category:H.Web},skill:{name:"Use Skill",category:H.Skill}},iue=t=>Mz[t]?.name||t,kqe=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],Mqe=250,Dqe=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=ic.safeParse(e);return r.success?{questions:r.data.questions}:{issues:oc(r.error.issues)}},Lqe=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await kz.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await kz.rm(t,{force:!0}).catch(()=>{});let{questions:o,issues:s}=Dqe(i);if(!o){Vs.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:s}),se.inc("inference.malformed_ask",1);return}r&&e(o)},Mqe);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function $qe({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let o=e.modelVersionOverrides?.opencode?.[e.accountType];o?n=o:r||(n=Ve().opencodeDefaultModel||Pqe),n&&(await i(n)||Vs.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function Uqe({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:o}=t;if(!i||!o)throw new Error("No token or url provided from AI Gateway");let s=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[sue]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:o},...Object.keys(s).length>0?{models:s}:{}}},...n?{mcp:woe(n)}:{}};return{...Dz.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function Lz({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:o,cwd:s=Dz.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,y,v,b=0,w=0,S,I=await $qe({config:t,aiGateway:n,model:d}),P=Nqe(f,I);Vs.log(f?`Requesting reasoning effort '${f}' for model '${I}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${I}'; running at its own default`);let D=Wa({creditWrapUpTurn:l})?await xoe():void 0,k=Uqe({aiGateway:n,model:I,effort:P,questionsFilePath:D?.filePath}),C=[],F=[],_=0,J=Date.now(),O=await ZC(s),g=["run","--format","json","--dangerously-skip-permissions","--agent","build",...I?["--model",`${sue}/${I}`]:[],...i?o?["--session",o]:["--continue"]:[]];Vs.log(`Running ${O} ${g.join(" ")}`);let E=e.utils.run(O,g,{all:!0,env:k,cwd:s,idleTimeout:fs,cancelSignal:a});E.stdin?.end(u);let R=D?Lqe(D.filePath,Ge=>{S||(S={questions:Ge},E.kill())}):void 0,K=La(()=>{r?.({steps:F,duration:Date.now()-J})},250),G=(Ge,q)=>{let{wrapMessage:ae,...N}=Ge,x=Ww({...N,id:_});x.message&&ae&&(x.message=`\`\`\`
|
|
406
|
+
\`\`\``),ce(Ge,!0),bqe(Ge));break}case"result":{I=ge.stats?.duration_ms,ge.stats&&(Pa(ge.stats,m?{model:m}:{}),k=ge.stats),ge.status==="error"?D=ge.error?.message:P=De.trim();break}case"error":{D=ge.error;break}case"finished":break;case"init":break;default:{gr.warn("Unhandled message type:",ge.type);break}}});let Me=!1;if(await K.catch(fe=>{Me=Va(fe,l),{error:D,result:P}=Sqe({catchError:fe,runCmd:K,error:D,result:P,runnerName:"Gemini"})}),Pe.close(),F)return G.flush(),{steps:b,duration:I,agentSessionId:C,resolvedModel:m,usage:k,pendingInteraction:F};let Ie=Me;return Ie&&(!P&&De.trim()&&(P=De.trim()),D=void 0),G.flush(),{steps:b,duration:I,result:await sc({initialResult:P,agentName:KC,hasError:!!D}),error:ac({error:D,agentName:KC}),isRetryableError:cc(D),isProviderUnavailableError:lc(D),resolvedModel:m,usage:k,agentSessionId:C,...h&&Xle(m)?{effort:h}:{},...Ie?{aborted:!0}:{}}}var Qle=async()=>{let t=Cc.join(vS.homedir(),".gemini");await ku.rm(t,{recursive:!0,force:!0});let e=Cc.join(vS.homedir(),".agents","skills");await ku.rm(e,{recursive:!0,force:!0})},eue={baseDir:Cc.join(vS.homedir(),".gemini"),include:["tmp"]};import kz from"fs/promises";import oue from"os";import TS from"path";import Dz from"process";import Iqe from"readline";import Rqe from"os";import nue from"path";import Nz from"fs";var tue=ue("opencode_install"),rue="1.17.19",Cqe=()=>nue.join(Rqe.homedir(),".netlify-agent-runner","opencode"),ZC=async t=>{let e=So(t,"opencode");if(e)return e;let r=Cqe(),n=nue.join(r,"node_modules",".bin","opencode");if(Nz.existsSync(n))return n;Nz.mkdirSync(r,{recursive:!0}),tue.log(`Installing opencode-ai@${rue} on demand`);let i=Date.now();await dr("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${rue}`],{cwd:r});let o=Date.now()-i;if(se.timing("opencode.install_duration",o),tue.log(`Installed opencode-ai in ${o}ms`),!Nz.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Vs=ue("runner_opencode"),JC="OpenCode",sue="gateway",Pqe="z-ai/glm-5.3-flash",Oqe=new Set(["z-ai/glm-5.3-flash","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),Nqe=(t,e)=>!t||!xA.includes(t)?t:e&&Oqe.has(e)?"xhigh":"max",Mz={bash:{name:"Run command",category:H.RunCommand},read:{name:"Read file",category:H.FileRead},write:{name:"Edit file",category:H.FileWrite},edit:{name:"Edit file",category:H.FileWrite},glob:{name:"Find files",category:H.Explore},grep:{name:"Search files",category:H.Explore},list:{name:"List directory",category:H.Explore},task:{name:"Task",category:H.Task},todowrite:{name:"Update task list",category:H.Todo},webfetch:{name:"Fetch web",category:H.Web},websearch:{name:"Search web",category:H.Web},skill:{name:"Use Skill",category:H.Skill}},iue=t=>Mz[t]?.name||t,kqe=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],Mqe=250,Dqe=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=ic.safeParse(e);return r.success?{questions:r.data.questions}:{issues:oc(r.error.issues)}},Lqe=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await kz.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await kz.rm(t,{force:!0}).catch(()=>{});let{questions:o,issues:s}=Dqe(i);if(!o){Vs.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:s}),se.inc("inference.malformed_ask",1);return}r&&e(o)},Mqe);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function $qe({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let o=e.modelVersionOverrides?.opencode?.[e.accountType];o?n=o:r||(n=Ve().opencodeDefaultModel||Pqe),n&&(await i(n)||Vs.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function Uqe({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:o}=t;if(!i||!o)throw new Error("No token or url provided from AI Gateway");let s=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[sue]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:o},...Object.keys(s).length>0?{models:s}:{}}},...n?{mcp:woe(n)}:{}};return{...Dz.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function Lz({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:o,cwd:s=Dz.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,y,v,b=0,w=0,S,I=await $qe({config:t,aiGateway:n,model:d}),P=Nqe(f,I);Vs.log(f?`Requesting reasoning effort '${f}' for model '${I}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${I}'; running at its own default`);let D=Wa({creditWrapUpTurn:l})?await xoe():void 0,k=Uqe({aiGateway:n,model:I,effort:P,questionsFilePath:D?.filePath}),C=[],F=[],_=0,J=Date.now(),O=await ZC(s),g=["run","--format","json","--dangerously-skip-permissions","--agent","build",...I?["--model",`${sue}/${I}`]:[],...i?o?["--session",o]:["--continue"]:[]];Vs.log(`Running ${O} ${g.join(" ")}`);let E=e.utils.run(O,g,{all:!0,env:k,cwd:s,idleTimeout:fs,cancelSignal:a});E.stdin?.end(u);let R=D?Lqe(D.filePath,Ge=>{S||(S={questions:Ge},E.kill())}):void 0,K=La(()=>{r?.({steps:F,duration:Date.now()-J})},250),G=(Ge,q)=>{let{wrapMessage:ae,...N}=Ge,x=Ww({...N,id:_});x.message&&ae&&(x.message=`\`\`\`
|
|
407
407
|
${x.message}
|
|
408
408
|
\`\`\``),_+=1,C.push(x),F.push(x),q||K.flush(),K(),q&&K.flush()},ce=I||"default";t.answeredInteraction||G({title:`Using ${JC} with ${ce}`,category:H.Environment},!0);let ke=Iqe.createInterface({input:E.all});ke.on("error",Ge=>{Vs.error("Readline interface error",{error:Ge.message,stack:Ge.stack})});let Pe="",De,Re=new Set,Me=()=>{Pe&&(G({message:Pe,category:H.AgentMessage}),De=Pe,Pe="")};ke.on("line",Ge=>{let q;try{q=JSON.parse(Ge)}catch{Vs.log("Could not parse line",Ge);return}switch(q.sessionID&&q.sessionID!==p&&(p=q.sessionID,c?.(p)),q.type){case"step_start":{Me();break}case"text":{let ae=q.part?.text;ae&&(Pe+=ae);break}case"reasoning":{Me();let ae=q.part?.text;ae&&G({title:"Reasoning",message:ae,category:H.Reasoning},!0);break}case"tool_use":{Me();let ae=q.part?.tool;if(!ae)break;let N=q.part?.state?.input??{},x=q.part?.state?.status,U=q.part?.state?.output,B=q.part?.state?.error;if(ae===Aoe){x==="error"&&Vs.warn("Ask tool call rejected before it could pause the run",{error:B});break}if(x==="error"&&(b+=1),(x==="completed"||x==="error")&&(w+=1),ae==="skill"){let we=typeof N.name=="string"?N.name:void 0;if(we){let We=Eo(we);Es(Vs,We),G({title:`Use ${We}`,category:H.Skill,type:we},!0);break}}if(ae==="todowrite"){let we=kqe(N.todos);G({title:iue(ae),category:we.length>0?Mz.todowrite.category:H.Tool,...we.length>0?{tasks:we}:{}},!0);break}let V=typeof N.command=="string"?N.command:void 0,le=V?ks(V):!1,ee=typeof N.path=="string"&&N.path||typeof N.file_path=="string"&&N.file_path||typeof N.pattern=="string"&&N.pattern||void 0,Ce,ve;if(le)Ce="Generating the site",ve=H.SiteGeneration;else if(V&&ae==="bash")Ce=`Running \`${V}\``,ve=H.RunCommand;else{let we=ee&&`\`${TS.relative(s,ee)}\``;Ce=[iue(ae),we].filter(Boolean).join(" "),ve=Mz[ae]?.category||H.AgentMessage}let Ae,ne=["bash","read","glob","grep","list","webfetch","websearch"].includes(ae);B?Ae=`\`\`\`
|
|
409
409
|
${B.trim()}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netlify/agent-runner-cli",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.163.0-PAW-328.
|
|
4
|
+
"version": "1.163.0-PAW-328.10",
|
|
5
5
|
"description": "CLI tool for running Netlify agents",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"test:integration:codex": "vitest run test/integration/codex.test.ts",
|
|
43
43
|
"test:integration:claude": "vitest run test/integration/claude.test.ts",
|
|
44
44
|
"test:integration:gemini": "vitest run test/integration/gemini.test.ts",
|
|
45
|
+
"test:integration:opencode": "vitest run test/integration/opencode.test.ts",
|
|
45
46
|
"test:integration:skill-invocation": "vitest run test/integration/skill-invocation.test.ts",
|
|
46
47
|
"check:types": "tsc --noEmit",
|
|
47
48
|
"postinstall": "node scripts/postinstall.js"
|