@netlify/agent-runner-cli 1.157.0 → 1.158.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin-local.js +2 -2
- package/dist/bin.js +2 -2
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/bin-local.js
CHANGED
|
@@ -99,7 +99,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
99
99
|
`,LF:`
|
|
100
100
|
`,concatBytes:YL},P$e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},O$e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:P$e};import{Buffer as N$e}from"buffer";var Ere=(t,e)=>t?void 0:k$e.bind(void 0,e),k$e=function*(t,e){if(typeof e!="string"&&!jt(e)&&!N$e.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},vre=(t,e)=>t?M$e.bind(void 0,e):D$e.bind(void 0,e),M$e=function*(t,e){Tre(t,e),yield e},D$e=function*(t,e){if(Tre(t,e),typeof e!="string"&&!jt(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},Tre=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
101
101
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
102
|
-
if (condition) { yield value; }`)};import{Buffer as L$e}from"buffer";import{StringDecoder as $$e}from"string_decoder";var xx=(t,e,r)=>{if(r)return;if(t)return{transform:U$e.bind(void 0,new TextEncoder)};let n=new $$e(e);return{transform:F$e.bind(void 0,n),final:B$e.bind(void 0,n)}},U$e=function*(t,e){L$e.isBuffer(e)?yield ps(e):typeof e=="string"?yield t.encode(e):yield e},F$e=function*(t,e){yield jt(e)?t.write(e):e},B$e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as bre}from"util";var ZL=bre(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),wx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=z$e}=e[r];for await(let i of n(t))yield*wx(i,e,r+1)},Are=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*j$e(r,Number(e),t)},j$e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*wx(n,r,e+1)},xre=bre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),z$e=function*(t){yield t};var JL=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},wre=(t,e)=>[...e.flatMap(r=>[...kl(r,t,0)]),...k_(t)],kl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=q$e}=e[r];for(let i of n(t))yield*kl(i,e,r+1)},k_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*G$e(r,Number(e),t)},G$e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*kl(n,r,e+1)},q$e=function*(t){yield t};var XL=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Ire(t,s,o),l=Nl(e),u=Nl(r),d=l?ZL.bind(void 0,wx,a):JL.bind(void 0,kl),f=l||u?ZL.bind(void 0,Are,a):JL.bind(void 0,k_),p=l||u?xre.bind(void 0,a):void 0;return{stream:new V$e({writableObjectMode:n,writableHighWaterMark:Rre(n),readableObjectMode:i,readableHighWaterMark:Rre(i),transform(m,S,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},Rx=(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=Ire(s,r,a);t=wre(c,t)}return t},Ire=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Ere(n,a)},xx(r,s,n),Ax(r,o,n,c),{transform:t,final:e},{transform:vre(i,a)},Sre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Cre=(t,e)=>{for(let r of H$e(t))W$e(t,r,e)},H$e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),W$e=(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=>Y$e(a,n));r.input=b_(s)},Y$e=(t,e)=>{let r=Rx(t,e,"utf8",!0);return K$e(r),b_(r)},K$e=t=>{let e=t.find(r=>typeof r!="string"&&!jt(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 Q$e,appendFileSync as e1e}from"fs";var Ix=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&hf(r,n)&&!En.has(e)&&Z$e(n)&&(t.some(({type:i,value:o})=>i==="native"&&J$e.has(o))||t.every(({type:i})=>Zn.has(i))),Z$e=t=>t===1||t===2,J$e=new Set(["pipe","overlapped"]),Pre=async(t,e,r,n)=>{for await(let i of t)X$e(e)||Nre(i,r,n)},Ore=(t,e,r)=>{for(let n of t)Nre(n,e,r)},X$e=t=>t._readableState.pipes.length>0,Nre=(t,e,r)=>{let n=zA(t);ho({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var kre=({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)=>t1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},t1e=({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=Mte(t,o,d),p=ps(f),{stdioItems:h,objectMode:m}=e[r],S=r1e([p],h,c,n),{serializedResult:E,finalResult:b=E}=n1e({chunks:S,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});i1e({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&&o1e(E,h,i),A}catch(_){return n.error=_,A}},r1e=(t,e,r,n)=>{try{return Rx(t,e,r,!1)}catch(i){return n.error=i,t}},n1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:b_(t)};let s=YQ(t,r);return n[o]?{serializedResult:s,finalResult:KL(s,!i[o],e)}:{serializedResult:s}},i1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Ix({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=KL(t,!1,s);try{Ore(a,e,n)}catch(c){r.error??=c}},o1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Tx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?e1e(n,t):(r.add(o),Q$e(n,t))}};var Mre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,gs(e,r,"all")]:Array.isArray(e)?[gs(t,r,"all"),...e]:jt(t)&&jt(e)?iL([t,e]):`${t}${e}`};import{once as QL}from"events";var Dre=async(t,e)=>{let[r,n]=await s1e(t);return e.isForcefullyTerminated??=!1,[r,n]},s1e=async t=>{let[e,r]=await Promise.allSettled([QL(t,"spawn"),QL(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Lre(t):r.value},Lre=async t=>{try{return await QL(t,"exit")}catch{return Lre(t)}},$re=async t=>{let[e,r]=await t;if(!a1e(e,r)&&e$(e,r))throw new Ii;return[e,r]},a1e=(t,e)=>t===void 0&&e===void 0,e$=(t,e)=>t!==0||e!==null;var Ure=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=c1e(t,e,r),s=o?.code==="ETIMEDOUT",a=kte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},c1e=(t,e,r)=>t!==void 0?t:e$(e,r)?new Ii:void 0;var Fre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=u1e(t,e,r),d=p1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Af(d,c,l)},u1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=qA(t,e,r),a=d1e(r),{file:c,commandArguments:l,options:u}=ux(t,e,a);f1e(u);let d=mre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},d1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,f1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Cx("ipcInput"),t&&Cx("ipc: true"),r&&Cx("detached: true"),n&&Cx("cancelSignal")},Cx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},p1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=h1e({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}=Ure(c,r),{output:h,error:m=l}=kre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),S=h.map((b,A)=>gs(b,r,A)),E=gs(Mre(h,r),r,"all");return g1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:S,all:E,options:r,command:n,escapedCommand:i,startTime:a})},h1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Cre(o,r);let a=m1e(r);return l1e(...dx(t,e,a))}catch(a){return bf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},m1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:yx(e)}),g1e=({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?Sx({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):N_({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 nFe}from"events";import{spawn as iFe}from"child_process";import qre from"process";import{once as t$,on as _1e}from"events";var Bre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(_f({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:ix(t)}),y1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),y1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ex(e,i);let o=ka(t,e,r),s=new AbortController;try{return await Promise.race([S1e(o,n,s),E1e(o,r,s),v1e(o,r,s)])}catch(a){throw yf(t),a}finally{s.abort(),tx(e,i)}},S1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await t$(t,"message",{signal:r});return n}for await(let[n]of _1e(t,"message",{signal:r}))if(e(n))return n},E1e=async(t,e,{signal:r})=>{await t$(t,"disconnect",{signal:r}),wee(e)},v1e=async(t,e,{signal:r})=>{let[n]=await t$(t,"strict:error",{signal:r});throw JA(n,e)};import{once as zre,on as T1e}from"events";var Gre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>r$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),r$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{_f({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:ix(t)}),ex(e,o);let s=ka(t,e,r),a=new AbortController,c={};return b1e(t,s,a),A1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),x1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},b1e=async(t,e,r)=>{try{await zre(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},A1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await zre(t,"strict:error",{signal:r.signal});n.error=JA(i,e),r.abort()}catch{}},x1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of T1e(r,"message",{signal:o.signal}))jre(s),yield c}catch{jre(s)}finally{o.abort(),tx(e,a),n||yf(t),i&&await t}},jre=({error:t})=>{if(t)throw t};var Vre=(t,{ipc:e})=>{Object.assign(t,Wre(t,!1,e))},Hre=()=>{let t=qre,e=!0,r=qre.channel!==void 0;return{...Wre(t,e,r),getCancelSignal:Qee.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Wre=(t,e,r)=>({sendMessage:cx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Bre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Gre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as w1e}from"child_process";import{PassThrough as R1e,Readable as I1e,Writable as C1e,Duplex as P1e}from"stream";var Yre=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{HL(n);let a=new w1e;O1e(a,n),Object.assign(a,{readable:N1e,writable:k1e,duplex:M1e});let c=bf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=D1e(c,s,i);return{subprocess:a,promise:l}},O1e=(t,e)=>{let r=M_(),n=M_(),i=M_(),o=Array.from({length:e.length-3},M_),s=M_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},M_=()=>{let t=new R1e;return t.end(),t},N1e=()=>new I1e({read(){}}),k1e=()=>new C1e({write(){}}),M1e=()=>new P1e({read(){},write(){}}),D1e=async(t,e,r)=>Af(t,e,r);import{createReadStream as Kre,createWriteStream as Zre}from"fs";import{Buffer as L1e}from"buffer";import{Readable as D_,Writable as $1e,Duplex as U1e}from"stream";var Xre=(t,e)=>bx(F1e,t,e,!1),L_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ma[t]}.`)},Jre={fileNumber:L_,generator:XL,asyncGenerator:XL,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:U1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},F1e={input:{...Jre,fileUrl:({value:t})=>({stream:Kre(t)}),filePath:({value:{file:t}})=>({stream:Kre(t)}),webStream:({value:t})=>({stream:D_.fromWeb(t)}),iterable:({value:t})=>({stream:D_.from(t)}),asyncIterable:({value:t})=>({stream:D_.from(t)}),string:({value:t})=>({stream:D_.from(t)}),uint8Array:({value:t})=>({stream:D_.from(L1e.from(t))})},output:{...Jre,fileUrl:({value:t})=>({stream:Zre(t)}),filePath:({value:{file:t,append:e}})=>({stream:Zre(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:$1e.fromWeb(t)}),iterable:L_,asyncIterable:L_,string:L_,uint8Array:L_}};import{on as B1e,once as Qre}from"events";import{PassThrough as j1e,getDefaultHighWaterMark as z1e}from"stream";import{finished as rne}from"stream/promises";function Ml(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)i$(i);let e=t.some(({readableObjectMode:i})=>i),r=G1e(t,e),n=new n$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var G1e=(t,e)=>{if(t.length===0)return z1e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},n$=class extends j1e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(i$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=q1e(this,this.#e,this.#o);let r=W1e({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(i$(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)}},q1e=async(t,e,r)=>{Px(t,ene);let n=new AbortController;try{await Promise.race([V1e(t,n),H1e(t,e,r,n)])}finally{n.abort(),Px(t,-ene)}},V1e=async(t,{signal:e})=>{try{await rne(t,{signal:e,cleanup:!0})}catch(r){throw nne(t,r),r}},H1e=async(t,e,r,{signal:n})=>{for await(let[i]of B1e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},i$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},W1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Px(t,tne);let a=new AbortController;try{await Promise.race([Y1e(o,e,a),K1e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Z1e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Px(t,-tne)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?o$(t):J1e(t))},Y1e=async(t,e,{signal:r})=>{try{await t,r.aborted||o$(e)}catch(n){r.aborted||nne(e,n)}},K1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await rne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;ine(s)?i.add(e):one(t,s)}},Z1e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await Qre(t,i,{signal:o}),!t.readable)return Qre(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},J1e=t=>{t.writable&&t.end()},nne=(t,e)=>{ine(e)?o$(t):one(t,e)},ine=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",o$=t=>{(t.readable||t.writable)&&t.destroy()},one=(t,e)=>{t.destroyed||(t.once("error",X1e),t.destroy(e))},X1e=()=>{},Px=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},ene=2,tne=1;import{finished as sne}from"stream/promises";var wf=(t,e)=>{t.pipe(e),Q1e(t,e),eUe(t,e)},Q1e=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await sne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}s$(e)}},s$=t=>{t.writable&&t.end()},eUe=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await sne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}a$(t)}},a$=t=>{t.readable&&t.destroy()};var ane=(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)))tUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Zn.has(c)))nUe({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]:Ml(o);wf(s,i)}},tUe=(t,e,r,n)=>{r==="output"?wf(t.stdio[n],e):wf(e,t.stdio[n]);let i=rUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},rUe=["stdin","stdout","stderr"],nUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;iUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},iUe=(t,{signal:e})=>{Ri(t)&&Pl(t,oUe,e)},oUe=2;import{addAbortListener as cUe}from"events";var Dl=[];Dl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Dl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Dl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Ox=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",c$=Symbol.for("signal-exit emitter"),l$=globalThis,sUe=Object.defineProperty.bind(Object),u$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(l$[c$])return l$[c$];sUe(l$,c$,{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}},Nx=class{},aUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),d$=class extends Nx{onExit(){return()=>{}}load(){}unload(){}},f$=class extends Nx{#e=p$.platform==="win32"?"SIGINT":"SIGHUP";#r=new u$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Dl)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(!Ox(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 Dl)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,Dl.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 Ox(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"&&Ox(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)}},p$=globalThis.process,{onExit:cne,load:pvt,unload:hvt}=aUe(Ox(p$)?new f$(p$):new d$);var lne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=cne(()=>{t.kill()});cUe(n,()=>{i()})};var dne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=GA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=lUe(r,n,i),{sourceStream:d,sourceError:f}=dUe(t,l),{options:p,fileDescriptors:h}=go.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},lUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=uUe(t,e,...r),a=QA(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},uUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(une,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||rL(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]=kA(r,...n);return{destination:e(une)(i,o,s),pipeOptions:s}}if(go.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}`)},une=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),dUe=(t,e)=>{try{return{sourceStream:Sf(t,e)}}catch(r){return{sourceError:r}}};var pne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=fUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw h$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},fUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return a$(t),n;if(e!==void 0)return s$(r),e},h$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>bf({error:t,command:fne,escapedCommand:fne,fileDescriptors:e,options:r,startTime:n,isSync:!1}),fne="source.pipe(destination)";var hne=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 pUe}from"stream/promises";var mne=(t,e,r)=>{let n=kx.has(e)?mUe(t,e):hUe(t,e);return Pl(t,_Ue,r.signal),Pl(e,yUe,r.signal),gUe(e),n},hUe=(t,e)=>{let r=Ml([t]);return wf(r,e),kx.set(e,r),r},mUe=(t,e)=>{let r=kx.get(e);return r.add(t),r},gUe=async t=>{try{await pUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}kx.delete(t)},kx=new WeakMap,_Ue=2,yUe=1;import{aborted as SUe}from"util";var gne=(t,e)=>t===void 0?[]:[EUe(t,e)],EUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await SUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw h$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Mx=(t,...e)=>{if(Nt(e[0]))return Mx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=dne(t,...e),i=vUe({...n,destination:r});return i.pipe=Mx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},vUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=TUe(t,i);pne({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([hne(u),...gne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},TUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as CUe}from"timers/promises";import{on as bUe}from"events";import{getDefaultHighWaterMark as AUe}from"stream";var Dx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return xUe(e,s),yne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},xUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},m$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;wUe(e,s,t);let a=t.readableObjectMode&&!o;return yne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},wUe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},yne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=bUe(t,"data",{signal:e.signal,highWaterMark:_ne,highWatermark:_ne});return RUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},g$=AUe(!0),_ne=g$,RUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=IUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*kl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*k_(a)}},IUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[xx(t,r,!e),Ax(t,i,!n,{})].filter(Boolean);var Sne=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=PUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([OUe(t),d]);return}let f=WL(c,r),p=m$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([NUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},PUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Ix({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=m$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Pre(a,t,r,o)},OUe=async t=>{await CUe(),t.readableFlowing===null&&t.resume()},NUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await mx(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await gx(r,{maxBuffer:o})):await Tf(r,{maxBuffer:o})}catch(a){return Ene(Pte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},_$=async t=>{try{return await t}catch(e){return Ene(e)}},Ene=({bufferedData:t})=>HQ(t)?new Uint8Array(t):t;import{finished as kUe}from"stream/promises";var $_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=MUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],kUe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||$Ue(a,e,r,n)}finally{s.abort()}},MUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&DUe(t,r,n),n},DUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{LUe(e,r),n.call(t,...i)}},LUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},$Ue=(t,e,r,n)=>{if(!UUe(t,e,r,n))throw t},UUe=(t,e,r,n=!0)=>r.propagating?vne(t)||Lx(t):(r.propagating=!0,y$(r,e)===n?vne(t):Lx(t)),y$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Lx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",vne=t=>t?.code==="EPIPE";var Tne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>S$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),S$=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=$_(t,e,l);if(y$(l,e)){await u;return}let[d]=await Promise.all([Sne({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 bne=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Ml([t,e].filter(Boolean)):void 0,Ane=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>S$({...FUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:BUe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),FUe=({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}},BUe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as jUe}from"events";var xne=t=>hf(t,"ipc"),wne=(t,e)=>{let r=zA(t);ho({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Rne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=xne(o),a=hs(e,"ipc"),c=hs(r,"ipc");for await(let l of r$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Ote(t,i,c),i.push(l)),s&&wne(l,o);return i},Ine=async(t,e)=>(await Promise.allSettled([t]),e);var Cne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:S,controller:E})=>{let b=Dre(t,f),A={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},_=Tne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),R=Ane({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),w=[],I=Rne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:w,verboseInfo:p}),O=zUe(m,t,A),N=GUe(h,A);try{return await Promise.race([Promise.all([{},$re(b),Promise.all(_),R,I,lte(t,d),...O,...N]),S,qUe(t,E),...ite(t,o,f,E),...xee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...rte({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch(B){return f.terminationReason??="other",Promise.all([{error:B},b,Promise.all(_.map(y=>_$(y))),_$(R),Ine(I,w),Promise.allSettled(O),Promise.allSettled(N)])}},zUe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:$_(n,i,r)),GUe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Pi(o,{checkOpen:!1})&&!Ri(o)).map(({type:i,value:o,stream:s=o})=>$_(s,n,e,{isSameDirection:Zn.has(i),stopOnExit:i==="native"}))),qUe=async(t,{signal:e})=>{let[r]=await jUe(t,"error",{signal:e});throw r};var Pne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),U_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=mo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Rf=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 VUe}from"stream";import{callbackify as HUe}from"util";import{finished as One}from"stream/promises";var E$=async t=>{if(t!==void 0)try{await v$(t)}catch{}},Nne=async t=>{if(t!==void 0)try{await T$(t)}catch{}},v$=async t=>{await One(t,{cleanup:!0,readable:!1,writable:!0})},T$=async t=>{await One(t,{cleanup:!0,readable:!0,writable:!1})},$x=async(t,e)=>{if(await t,e)throw e},Ux=(t,e,r)=>{r&&!Lx(r)?t.destroy(r):e&&t.destroy()};var kne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||En.has(r),{subprocessStdout:a,waitReadableDestroy:c}=b$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=A$(a,s),{read:f,onStdoutDataDone:p}=x$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new VUe({read:f,destroy:HUe(R$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return w$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},b$=(t,e,r)=>{let n=Sf(t,e),i=U_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},A$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:g$},x$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=mo(),s=Dx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){WUe(this,s,o)},onStdoutDataDone:o}},WUe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},w$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await T$(t),await n,await E$(i),await e,r.readable&&r.push(null)}catch(o){await E$(i),Mne(r,o)}},R$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Rf(r,e)&&(Mne(t,n),await $x(e,n))},Mne=(t,e)=>{Ux(t,t.readable,e)};import{Writable as YUe}from"stream";import{callbackify as Dne}from"util";var Lne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=I$(t,r,e),s=new YUe({...C$(n,t,i),destroy:Dne(O$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return P$(n,s),s},I$=(t,e,r)=>{let n=QA(t,e),i=U_(r,n,"writableFinal"),o=U_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},C$=(t,e,r)=>({write:KUe.bind(void 0,t),final:Dne(ZUe.bind(void 0,t,e,r))}),KUe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},ZUe=async(t,e,r)=>{await Rf(r,e)&&(t.writable&&t.end(),await e)},P$=async(t,e,r)=>{try{await v$(t),e.writable&&e.end()}catch(n){await Nne(r),$ne(e,n)}},O$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Rf(r,e),await Rf(n,e)&&($ne(t,i),await $x(e,i))},$ne=(t,e)=>{Ux(t,t.writable,e)};import{Duplex as JUe}from"stream";import{callbackify as XUe}from"util";var Une=({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}=b$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=I$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=A$(c,a),{read:S,onStdoutDataDone:E}=x$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new JUe({read:S,...C$(u,t,d),destroy:XUe(QUe.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 w$({subprocessStdout:c,onStdoutDataDone:E,readable:b,subprocess:t,subprocessStdin:u}),P$(u,b,c),b},QUe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([R$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),O$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var N$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||En.has(e),s=Sf(t,r),a=Dx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return eFe(a,s,t)},eFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Fne=(t,{encoding:e})=>{let r=Pne();t.readable=kne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Lne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Une.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=N$.bind(void 0,t,e),t[Symbol.asyncIterator]=N$.bind(void 0,t,e,{})};var Bne=(t,e)=>{for(let[r,n]of rFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},tFe=(async()=>{})().constructor.prototype,rFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(tFe,t)]);var jne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=oFe(t,e,r),{subprocess:f,promise:p}=aFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Mx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Bne(f,p),go.set(f,{options:u,fileDescriptors:d}),f},oFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=qA(t,e,r),{file:a,commandArguments:c,options:l}=ux(t,e,r),u=sFe(l),d=Xre(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},sFe=({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}},aFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=iFe(...dx(t,e,r))}catch(h){return Yre({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;nFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];ane(c,a,l),lne(c,r,l);let d={},f=mo();c.kill=bee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=bne(c,r),Fne(c,r),Vre(c,r);let p=cFe({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}},cFe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,S]=await Cne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((_,R)=>gs(_,e,R)),b=gs(m,e,"all"),A=lFe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:b,ipcOutput:S,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Af(A,n,e)},lFe=({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?N_({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 _o,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Sx({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Fx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,uFe(n,t[n],i)]));return{...t,...r}},uFe=(t,e,r)=>dFe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,dFe=new Set(["env",...cL]);var Da=(t,e,r,n)=>{let i=(s,a,c)=>Da(s,a,r,c),o=(...s)=>fFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},fFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,Fx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=pFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Fre(a,c,l):jne(a,c,l,i)},pFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=XQ(e)?QQ(e,r):[e,...r],[s,a,c]=kA(...o),l=Fx(Fx(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})=>qne(t,e),Gne=({file:t,commandArguments:e})=>({...qne(t,e),isSync:!0}),qne=(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]=hFe(t);return{file:r,commandArguments:n}},hFe=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(mFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},mFe=/ +/g;var Vne=(t,e,r)=>{t.sync=e(gFe,r),t.s=t.sync},Hne=({options:t})=>Wne(t),gFe=({options:t})=>({...Wne(t),isSync:!0}),Wne=t=>({options:{..._Fe(t),...t}}),_Fe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},Yne={preferLocal:!0};var Kne=Da(()=>({})),nAt=Da(()=>({isSync:!0})),Zne=Da(zne),iAt=Da(Gne),oAt=Da(ste),sAt=Da(Hne,{},Yne,Vne),{sendMessage:aAt,getOneMessage:cAt,getEachMessage:lAt,getCancelSignal:uAt}=Hre();var Jne=!1,Xne=()=>{Jne=!0},So=()=>Jne;var F_=null,Qne=t=>(F_&&F_.destroy(),F_=new _s({totalAllowedTime:t}),F_),eie=()=>F_;var _s=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&&So())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 xA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{le.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 tie={name:"@netlify/agent-runner-cli",type:"module",version:"1.157.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration: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.3","@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 vFe=SFe(import.meta.url),TFe=ys.dirname(vFe),bFe=EFe(import.meta.url),If=fe("shell"),k$=new Set,rie={preferLocal:!0},zt=(t,e,r)=>{let[n,i]=AFe(e,r),o={...rie,...i},s=Kne(t,n,o);iie(s,o),aie(s);let a=r?.idleTimeout;return a&&a>0&&sie(s,a),s},nie=(t,e)=>{let r={...rie,...e},n=Zne(t,r);return iie(n,r),aie(n),e?.idleTimeout&&e.idleTimeout>0&&sie(n,e.idleTimeout),n},AFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},iie=(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 p_).pipe(Ss.stdout),t.stderr?.pipe(new p_).pipe(Ss.stderr);return}t.stdout?.pipe(Ss.stdout),t.stderr?.pipe(Ss.stderr)},M$=(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}},oie=t=>M$(t,"SIGKILL"),sie=(t,e)=>{let r=null,n=()=>{If.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),M$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing idle process ${t.pid}`),oie(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)},aie=t=>{k$.add(t);let e=eie();if(e){let r=e.onTimesUp(()=>{If.log(`Global timer expired, killing process ${t.pid}`),M$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing process ${t.pid} after timeout`),oie(t))},5e3)});t.on("exit",()=>{k$.delete(t),r()}),t.on("error",()=>{k$.delete(t),r()})}};function jx(t,e){return!!Oi(t,e)}function Oi(t,e){if(!Ss.env.NETLIFY_LOCAL_MODE)try{let i=bFe.resolve(tie.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(Bx.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(Bx.existsSync(i))return i}let r=ys.join(t,"node_modules",".bin",e);if(Bx.existsSync(r))return r;let n=ys.join(TFe,"..","node_modules",".bin",e);if(Bx.existsSync(n))return n}var xFe=fe("utils"),wFe=t=>new Promise(e=>{setTimeout(e,t)});var D$=t=>{try{return new URL(t).hostname||null}catch{return null}},zx=(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 wFe(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},cie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):xFe.error("Could not parse JSON",n))}},RFe=t=>t.charAt(0).toUpperCase()+t.slice(1),Eo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():RFe(e)).join(" ");function Es(t,e){e&&t.log(`Skill invoked: ${e}`)}var Gx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),lie=(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 L$=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}},IFe=1e4,$$=(t,e=IFe)=>{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 CFe}from"crypto";import{createReadStream as PFe}from"fs";import qx from"fs/promises";import hie from"os";import Vx from"path";var uie=fe("repo"),mie="runner-diffs-",gie=t=>`${mie}${t}-`,_ie=async t=>{let e=hie.tmpdir(),r;try{r=await qx.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(mie)&&!n.startsWith(gie(t))).map(n=>qx.rm(Vx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},en=(t,e={})=>zt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Hx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{uie.info("Getting runner diffs");let n=await NFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=MFe(o);await DFe(h,r)}uie.info("Changes after processing"),await F$(r);let s=await B$(o,r);if(await U$(s,r),i=await kFe(r),!i)return{hasChanges:!1,ignored:s};await en(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await qx.mkdtemp(Vx.join(hie.tmpdir(),gie(t.sessionId))),c=async({from:h,to:m,fileName:S,binary:E})=>{let b=Vx.join(a,S);await en([...E?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:_}=await qx.stat(b);return{path:b,size:_}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await pie(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 fie(d,h)||(f=h)}await pie(r),le.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await fie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},die=async t=>{let e=CFe("sha256");for await(let r of PFe(t))e.update(r);return e.digest("hex")},fie=async(t,e)=>t.size===e.size&&await die(t.path)===await die(e.path),pie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await en(["reset","--soft","HEAD~1"],{cwd:t})},U$=async(t=[],e=process.cwd())=>{await en(["add",".",...t],{cwd:e})},F$=async(t=process.cwd())=>{let e=await en(["status","-s"],{cwd:t});return String(e.stdout??"")},yie=/.. (.+)?\.log$/,OFe=[yie],NFe=async(t=process.cwd())=>{let e=await F$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
102
|
+
if (condition) { yield value; }`)};import{Buffer as L$e}from"buffer";import{StringDecoder as $$e}from"string_decoder";var xx=(t,e,r)=>{if(r)return;if(t)return{transform:U$e.bind(void 0,new TextEncoder)};let n=new $$e(e);return{transform:F$e.bind(void 0,n),final:B$e.bind(void 0,n)}},U$e=function*(t,e){L$e.isBuffer(e)?yield ps(e):typeof e=="string"?yield t.encode(e):yield e},F$e=function*(t,e){yield jt(e)?t.write(e):e},B$e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as bre}from"util";var ZL=bre(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),wx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=z$e}=e[r];for await(let i of n(t))yield*wx(i,e,r+1)},Are=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*j$e(r,Number(e),t)},j$e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*wx(n,r,e+1)},xre=bre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),z$e=function*(t){yield t};var JL=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},wre=(t,e)=>[...e.flatMap(r=>[...kl(r,t,0)]),...k_(t)],kl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=q$e}=e[r];for(let i of n(t))yield*kl(i,e,r+1)},k_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*G$e(r,Number(e),t)},G$e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*kl(n,r,e+1)},q$e=function*(t){yield t};var XL=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Ire(t,s,o),l=Nl(e),u=Nl(r),d=l?ZL.bind(void 0,wx,a):JL.bind(void 0,kl),f=l||u?ZL.bind(void 0,Are,a):JL.bind(void 0,k_),p=l||u?xre.bind(void 0,a):void 0;return{stream:new V$e({writableObjectMode:n,writableHighWaterMark:Rre(n),readableObjectMode:i,readableHighWaterMark:Rre(i),transform(m,S,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},Rx=(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=Ire(s,r,a);t=wre(c,t)}return t},Ire=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:Ere(n,a)},xx(r,s,n),Ax(r,o,n,c),{transform:t,final:e},{transform:vre(i,a)},Sre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Cre=(t,e)=>{for(let r of H$e(t))W$e(t,r,e)},H$e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),W$e=(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=>Y$e(a,n));r.input=b_(s)},Y$e=(t,e)=>{let r=Rx(t,e,"utf8",!0);return K$e(r),b_(r)},K$e=t=>{let e=t.find(r=>typeof r!="string"&&!jt(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 Q$e,appendFileSync as e1e}from"fs";var Ix=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&hf(r,n)&&!En.has(e)&&Z$e(n)&&(t.some(({type:i,value:o})=>i==="native"&&J$e.has(o))||t.every(({type:i})=>Zn.has(i))),Z$e=t=>t===1||t===2,J$e=new Set(["pipe","overlapped"]),Pre=async(t,e,r,n)=>{for await(let i of t)X$e(e)||Nre(i,r,n)},Ore=(t,e,r)=>{for(let n of t)Nre(n,e,r)},X$e=t=>t._readableState.pipes.length>0,Nre=(t,e,r)=>{let n=zA(t);ho({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var kre=({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)=>t1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},t1e=({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=Mte(t,o,d),p=ps(f),{stdioItems:h,objectMode:m}=e[r],S=r1e([p],h,c,n),{serializedResult:E,finalResult:b=E}=n1e({chunks:S,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});i1e({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&&o1e(E,h,i),A}catch(_){return n.error=_,A}},r1e=(t,e,r,n)=>{try{return Rx(t,e,r,!1)}catch(i){return n.error=i,t}},n1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:b_(t)};let s=YQ(t,r);return n[o]?{serializedResult:s,finalResult:KL(s,!i[o],e)}:{serializedResult:s}},i1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Ix({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=KL(t,!1,s);try{Ore(a,e,n)}catch(c){r.error??=c}},o1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Tx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?e1e(n,t):(r.add(o),Q$e(n,t))}};var Mre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,gs(e,r,"all")]:Array.isArray(e)?[gs(t,r,"all"),...e]:jt(t)&&jt(e)?iL([t,e]):`${t}${e}`};import{once as QL}from"events";var Dre=async(t,e)=>{let[r,n]=await s1e(t);return e.isForcefullyTerminated??=!1,[r,n]},s1e=async t=>{let[e,r]=await Promise.allSettled([QL(t,"spawn"),QL(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Lre(t):r.value},Lre=async t=>{try{return await QL(t,"exit")}catch{return Lre(t)}},$re=async t=>{let[e,r]=await t;if(!a1e(e,r)&&e$(e,r))throw new Ii;return[e,r]},a1e=(t,e)=>t===void 0&&e===void 0,e$=(t,e)=>t!==0||e!==null;var Ure=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=c1e(t,e,r),s=o?.code==="ETIMEDOUT",a=kte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},c1e=(t,e,r)=>t!==void 0?t:e$(e,r)?new Ii:void 0;var Fre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=u1e(t,e,r),d=p1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Af(d,c,l)},u1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=qA(t,e,r),a=d1e(r),{file:c,commandArguments:l,options:u}=ux(t,e,a);f1e(u);let d=mre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},d1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,f1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Cx("ipcInput"),t&&Cx("ipc: true"),r&&Cx("detached: true"),n&&Cx("cancelSignal")},Cx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},p1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=h1e({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}=Ure(c,r),{output:h,error:m=l}=kre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),S=h.map((b,A)=>gs(b,r,A)),E=gs(Mre(h,r),r,"all");return g1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:S,all:E,options:r,command:n,escapedCommand:i,startTime:a})},h1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Cre(o,r);let a=m1e(r);return l1e(...dx(t,e,a))}catch(a){return bf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},m1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:yx(e)}),g1e=({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?Sx({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):N_({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 nFe}from"events";import{spawn as iFe}from"child_process";import qre from"process";import{once as t$,on as _1e}from"events";var Bre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(_f({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:ix(t)}),y1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),y1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ex(e,i);let o=ka(t,e,r),s=new AbortController;try{return await Promise.race([S1e(o,n,s),E1e(o,r,s),v1e(o,r,s)])}catch(a){throw yf(t),a}finally{s.abort(),tx(e,i)}},S1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await t$(t,"message",{signal:r});return n}for await(let[n]of _1e(t,"message",{signal:r}))if(e(n))return n},E1e=async(t,e,{signal:r})=>{await t$(t,"disconnect",{signal:r}),wee(e)},v1e=async(t,e,{signal:r})=>{let[n]=await t$(t,"strict:error",{signal:r});throw JA(n,e)};import{once as zre,on as T1e}from"events";var Gre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>r$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),r$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{_f({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:ix(t)}),ex(e,o);let s=ka(t,e,r),a=new AbortController,c={};return b1e(t,s,a),A1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),x1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},b1e=async(t,e,r)=>{try{await zre(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},A1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await zre(t,"strict:error",{signal:r.signal});n.error=JA(i,e),r.abort()}catch{}},x1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of T1e(r,"message",{signal:o.signal}))jre(s),yield c}catch{jre(s)}finally{o.abort(),tx(e,a),n||yf(t),i&&await t}},jre=({error:t})=>{if(t)throw t};var Vre=(t,{ipc:e})=>{Object.assign(t,Wre(t,!1,e))},Hre=()=>{let t=qre,e=!0,r=qre.channel!==void 0;return{...Wre(t,e,r),getCancelSignal:Qee.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Wre=(t,e,r)=>({sendMessage:cx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Bre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Gre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as w1e}from"child_process";import{PassThrough as R1e,Readable as I1e,Writable as C1e,Duplex as P1e}from"stream";var Yre=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{HL(n);let a=new w1e;O1e(a,n),Object.assign(a,{readable:N1e,writable:k1e,duplex:M1e});let c=bf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=D1e(c,s,i);return{subprocess:a,promise:l}},O1e=(t,e)=>{let r=M_(),n=M_(),i=M_(),o=Array.from({length:e.length-3},M_),s=M_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},M_=()=>{let t=new R1e;return t.end(),t},N1e=()=>new I1e({read(){}}),k1e=()=>new C1e({write(){}}),M1e=()=>new P1e({read(){},write(){}}),D1e=async(t,e,r)=>Af(t,e,r);import{createReadStream as Kre,createWriteStream as Zre}from"fs";import{Buffer as L1e}from"buffer";import{Readable as D_,Writable as $1e,Duplex as U1e}from"stream";var Xre=(t,e)=>bx(F1e,t,e,!1),L_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ma[t]}.`)},Jre={fileNumber:L_,generator:XL,asyncGenerator:XL,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:U1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},F1e={input:{...Jre,fileUrl:({value:t})=>({stream:Kre(t)}),filePath:({value:{file:t}})=>({stream:Kre(t)}),webStream:({value:t})=>({stream:D_.fromWeb(t)}),iterable:({value:t})=>({stream:D_.from(t)}),asyncIterable:({value:t})=>({stream:D_.from(t)}),string:({value:t})=>({stream:D_.from(t)}),uint8Array:({value:t})=>({stream:D_.from(L1e.from(t))})},output:{...Jre,fileUrl:({value:t})=>({stream:Zre(t)}),filePath:({value:{file:t,append:e}})=>({stream:Zre(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:$1e.fromWeb(t)}),iterable:L_,asyncIterable:L_,string:L_,uint8Array:L_}};import{on as B1e,once as Qre}from"events";import{PassThrough as j1e,getDefaultHighWaterMark as z1e}from"stream";import{finished as rne}from"stream/promises";function Ml(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)i$(i);let e=t.some(({readableObjectMode:i})=>i),r=G1e(t,e),n=new n$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var G1e=(t,e)=>{if(t.length===0)return z1e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},n$=class extends j1e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(i$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=q1e(this,this.#e,this.#o);let r=W1e({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(i$(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)}},q1e=async(t,e,r)=>{Px(t,ene);let n=new AbortController;try{await Promise.race([V1e(t,n),H1e(t,e,r,n)])}finally{n.abort(),Px(t,-ene)}},V1e=async(t,{signal:e})=>{try{await rne(t,{signal:e,cleanup:!0})}catch(r){throw nne(t,r),r}},H1e=async(t,e,r,{signal:n})=>{for await(let[i]of B1e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},i$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},W1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Px(t,tne);let a=new AbortController;try{await Promise.race([Y1e(o,e,a),K1e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),Z1e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Px(t,-tne)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?o$(t):J1e(t))},Y1e=async(t,e,{signal:r})=>{try{await t,r.aborted||o$(e)}catch(n){r.aborted||nne(e,n)}},K1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await rne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;ine(s)?i.add(e):one(t,s)}},Z1e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await Qre(t,i,{signal:o}),!t.readable)return Qre(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},J1e=t=>{t.writable&&t.end()},nne=(t,e)=>{ine(e)?o$(t):one(t,e)},ine=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",o$=t=>{(t.readable||t.writable)&&t.destroy()},one=(t,e)=>{t.destroyed||(t.once("error",X1e),t.destroy(e))},X1e=()=>{},Px=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},ene=2,tne=1;import{finished as sne}from"stream/promises";var wf=(t,e)=>{t.pipe(e),Q1e(t,e),eUe(t,e)},Q1e=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await sne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}s$(e)}},s$=t=>{t.writable&&t.end()},eUe=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await sne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}a$(t)}},a$=t=>{t.readable&&t.destroy()};var ane=(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)))tUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Zn.has(c)))nUe({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]:Ml(o);wf(s,i)}},tUe=(t,e,r,n)=>{r==="output"?wf(t.stdio[n],e):wf(e,t.stdio[n]);let i=rUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},rUe=["stdin","stdout","stderr"],nUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;iUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},iUe=(t,{signal:e})=>{Ri(t)&&Pl(t,oUe,e)},oUe=2;import{addAbortListener as cUe}from"events";var Dl=[];Dl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Dl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Dl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Ox=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",c$=Symbol.for("signal-exit emitter"),l$=globalThis,sUe=Object.defineProperty.bind(Object),u$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(l$[c$])return l$[c$];sUe(l$,c$,{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}},Nx=class{},aUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),d$=class extends Nx{onExit(){return()=>{}}load(){}unload(){}},f$=class extends Nx{#e=p$.platform==="win32"?"SIGINT":"SIGHUP";#r=new u$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Dl)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(!Ox(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 Dl)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,Dl.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 Ox(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"&&Ox(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)}},p$=globalThis.process,{onExit:cne,load:pvt,unload:hvt}=aUe(Ox(p$)?new f$(p$):new d$);var lne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=cne(()=>{t.kill()});cUe(n,()=>{i()})};var dne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=GA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=lUe(r,n,i),{sourceStream:d,sourceError:f}=dUe(t,l),{options:p,fileDescriptors:h}=go.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},lUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=uUe(t,e,...r),a=QA(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},uUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(une,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||rL(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]=kA(r,...n);return{destination:e(une)(i,o,s),pipeOptions:s}}if(go.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}`)},une=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),dUe=(t,e)=>{try{return{sourceStream:Sf(t,e)}}catch(r){return{sourceError:r}}};var pne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=fUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw h$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},fUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return a$(t),n;if(e!==void 0)return s$(r),e},h$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>bf({error:t,command:fne,escapedCommand:fne,fileDescriptors:e,options:r,startTime:n,isSync:!1}),fne="source.pipe(destination)";var hne=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 pUe}from"stream/promises";var mne=(t,e,r)=>{let n=kx.has(e)?mUe(t,e):hUe(t,e);return Pl(t,_Ue,r.signal),Pl(e,yUe,r.signal),gUe(e),n},hUe=(t,e)=>{let r=Ml([t]);return wf(r,e),kx.set(e,r),r},mUe=(t,e)=>{let r=kx.get(e);return r.add(t),r},gUe=async t=>{try{await pUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}kx.delete(t)},kx=new WeakMap,_Ue=2,yUe=1;import{aborted as SUe}from"util";var gne=(t,e)=>t===void 0?[]:[EUe(t,e)],EUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await SUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw h$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Mx=(t,...e)=>{if(Nt(e[0]))return Mx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=dne(t,...e),i=vUe({...n,destination:r});return i.pipe=Mx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},vUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=TUe(t,i);pne({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([hne(u),...gne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},TUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as CUe}from"timers/promises";import{on as bUe}from"events";import{getDefaultHighWaterMark as AUe}from"stream";var Dx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return xUe(e,s),yne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},xUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},m$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;wUe(e,s,t);let a=t.readableObjectMode&&!o;return yne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},wUe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},yne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=bUe(t,"data",{signal:e.signal,highWaterMark:_ne,highWatermark:_ne});return RUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},g$=AUe(!0),_ne=g$,RUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=IUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*kl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*k_(a)}},IUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[xx(t,r,!e),Ax(t,i,!n,{})].filter(Boolean);var Sne=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=PUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([OUe(t),d]);return}let f=WL(c,r),p=m$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([NUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},PUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Ix({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=m$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Pre(a,t,r,o)},OUe=async t=>{await CUe(),t.readableFlowing===null&&t.resume()},NUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await mx(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await gx(r,{maxBuffer:o})):await Tf(r,{maxBuffer:o})}catch(a){return Ene(Pte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},_$=async t=>{try{return await t}catch(e){return Ene(e)}},Ene=({bufferedData:t})=>HQ(t)?new Uint8Array(t):t;import{finished as kUe}from"stream/promises";var $_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=MUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],kUe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||$Ue(a,e,r,n)}finally{s.abort()}},MUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&DUe(t,r,n),n},DUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{LUe(e,r),n.call(t,...i)}},LUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},$Ue=(t,e,r,n)=>{if(!UUe(t,e,r,n))throw t},UUe=(t,e,r,n=!0)=>r.propagating?vne(t)||Lx(t):(r.propagating=!0,y$(r,e)===n?vne(t):Lx(t)),y$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Lx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",vne=t=>t?.code==="EPIPE";var Tne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>S$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),S$=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=$_(t,e,l);if(y$(l,e)){await u;return}let[d]=await Promise.all([Sne({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 bne=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Ml([t,e].filter(Boolean)):void 0,Ane=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>S$({...FUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:BUe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),FUe=({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}},BUe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as jUe}from"events";var xne=t=>hf(t,"ipc"),wne=(t,e)=>{let r=zA(t);ho({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Rne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=xne(o),a=hs(e,"ipc"),c=hs(r,"ipc");for await(let l of r$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Ote(t,i,c),i.push(l)),s&&wne(l,o);return i},Ine=async(t,e)=>(await Promise.allSettled([t]),e);var Cne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:S,controller:E})=>{let b=Dre(t,f),A={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},_=Tne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),R=Ane({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),w=[],I=Rne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:w,verboseInfo:p}),O=zUe(m,t,A),N=GUe(h,A);try{return await Promise.race([Promise.all([{},$re(b),Promise.all(_),R,I,lte(t,d),...O,...N]),S,qUe(t,E),...ite(t,o,f,E),...xee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...rte({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch(B){return f.terminationReason??="other",Promise.all([{error:B},b,Promise.all(_.map(y=>_$(y))),_$(R),Ine(I,w),Promise.allSettled(O),Promise.allSettled(N)])}},zUe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:$_(n,i,r)),GUe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Pi(o,{checkOpen:!1})&&!Ri(o)).map(({type:i,value:o,stream:s=o})=>$_(s,n,e,{isSameDirection:Zn.has(i),stopOnExit:i==="native"}))),qUe=async(t,{signal:e})=>{let[r]=await jUe(t,"error",{signal:e});throw r};var Pne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),U_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=mo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Rf=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 VUe}from"stream";import{callbackify as HUe}from"util";import{finished as One}from"stream/promises";var E$=async t=>{if(t!==void 0)try{await v$(t)}catch{}},Nne=async t=>{if(t!==void 0)try{await T$(t)}catch{}},v$=async t=>{await One(t,{cleanup:!0,readable:!1,writable:!0})},T$=async t=>{await One(t,{cleanup:!0,readable:!0,writable:!1})},$x=async(t,e)=>{if(await t,e)throw e},Ux=(t,e,r)=>{r&&!Lx(r)?t.destroy(r):e&&t.destroy()};var kne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||En.has(r),{subprocessStdout:a,waitReadableDestroy:c}=b$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=A$(a,s),{read:f,onStdoutDataDone:p}=x$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new VUe({read:f,destroy:HUe(R$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return w$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},b$=(t,e,r)=>{let n=Sf(t,e),i=U_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},A$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:g$},x$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=mo(),s=Dx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){WUe(this,s,o)},onStdoutDataDone:o}},WUe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},w$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await T$(t),await n,await E$(i),await e,r.readable&&r.push(null)}catch(o){await E$(i),Mne(r,o)}},R$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Rf(r,e)&&(Mne(t,n),await $x(e,n))},Mne=(t,e)=>{Ux(t,t.readable,e)};import{Writable as YUe}from"stream";import{callbackify as Dne}from"util";var Lne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=I$(t,r,e),s=new YUe({...C$(n,t,i),destroy:Dne(O$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return P$(n,s),s},I$=(t,e,r)=>{let n=QA(t,e),i=U_(r,n,"writableFinal"),o=U_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},C$=(t,e,r)=>({write:KUe.bind(void 0,t),final:Dne(ZUe.bind(void 0,t,e,r))}),KUe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},ZUe=async(t,e,r)=>{await Rf(r,e)&&(t.writable&&t.end(),await e)},P$=async(t,e,r)=>{try{await v$(t),e.writable&&e.end()}catch(n){await Nne(r),$ne(e,n)}},O$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Rf(r,e),await Rf(n,e)&&($ne(t,i),await $x(e,i))},$ne=(t,e)=>{Ux(t,t.writable,e)};import{Duplex as JUe}from"stream";import{callbackify as XUe}from"util";var Une=({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}=b$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=I$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=A$(c,a),{read:S,onStdoutDataDone:E}=x$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new JUe({read:S,...C$(u,t,d),destroy:XUe(QUe.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 w$({subprocessStdout:c,onStdoutDataDone:E,readable:b,subprocess:t,subprocessStdin:u}),P$(u,b,c),b},QUe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([R$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),O$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var N$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||En.has(e),s=Sf(t,r),a=Dx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return eFe(a,s,t)},eFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Fne=(t,{encoding:e})=>{let r=Pne();t.readable=kne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Lne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Une.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=N$.bind(void 0,t,e),t[Symbol.asyncIterator]=N$.bind(void 0,t,e,{})};var Bne=(t,e)=>{for(let[r,n]of rFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},tFe=(async()=>{})().constructor.prototype,rFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(tFe,t)]);var jne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=oFe(t,e,r),{subprocess:f,promise:p}=aFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Mx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Bne(f,p),go.set(f,{options:u,fileDescriptors:d}),f},oFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=qA(t,e,r),{file:a,commandArguments:c,options:l}=ux(t,e,r),u=sFe(l),d=Xre(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},sFe=({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}},aFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=iFe(...dx(t,e,r))}catch(h){return Yre({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;nFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];ane(c,a,l),lne(c,r,l);let d={},f=mo();c.kill=bee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=bne(c,r),Fne(c,r),Vre(c,r);let p=cFe({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}},cFe=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:o,command:s,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,S]=await Cne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((_,R)=>gs(_,e,R)),b=gs(m,e,"all"),A=lFe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:b,ipcOutput:S,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Af(A,n,e)},lFe=({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?N_({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 _o,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Sx({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Fx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,uFe(n,t[n],i)]));return{...t,...r}},uFe=(t,e,r)=>dFe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,dFe=new Set(["env",...cL]);var Da=(t,e,r,n)=>{let i=(s,a,c)=>Da(s,a,r,c),o=(...s)=>fFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},fFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,Fx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=pFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Fre(a,c,l):jne(a,c,l,i)},pFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=XQ(e)?QQ(e,r):[e,...r],[s,a,c]=kA(...o),l=Fx(Fx(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})=>qne(t,e),Gne=({file:t,commandArguments:e})=>({...qne(t,e),isSync:!0}),qne=(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]=hFe(t);return{file:r,commandArguments:n}},hFe=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(mFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},mFe=/ +/g;var Vne=(t,e,r)=>{t.sync=e(gFe,r),t.s=t.sync},Hne=({options:t})=>Wne(t),gFe=({options:t})=>({...Wne(t),isSync:!0}),Wne=t=>({options:{..._Fe(t),...t}}),_Fe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},Yne={preferLocal:!0};var Kne=Da(()=>({})),nAt=Da(()=>({isSync:!0})),Zne=Da(zne),iAt=Da(Gne),oAt=Da(ste),sAt=Da(Hne,{},Yne,Vne),{sendMessage:aAt,getOneMessage:cAt,getEachMessage:lAt,getCancelSignal:uAt}=Hre();var Jne=!1,Xne=()=>{Jne=!0},So=()=>Jne;var F_=null,Qne=t=>(F_&&F_.destroy(),F_=new _s({totalAllowedTime:t}),F_),eie=()=>F_;var _s=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&&So())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 xA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{le.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 tie={name:"@netlify/agent-runner-cli",type:"module",version:"1.158.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration: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.3","@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 vFe=SFe(import.meta.url),TFe=ys.dirname(vFe),bFe=EFe(import.meta.url),If=fe("shell"),k$=new Set,rie={preferLocal:!0},zt=(t,e,r)=>{let[n,i]=AFe(e,r),o={...rie,...i},s=Kne(t,n,o);iie(s,o),aie(s);let a=r?.idleTimeout;return a&&a>0&&sie(s,a),s},nie=(t,e)=>{let r={...rie,...e},n=Zne(t,r);return iie(n,r),aie(n),e?.idleTimeout&&e.idleTimeout>0&&sie(n,e.idleTimeout),n},AFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},iie=(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 p_).pipe(Ss.stdout),t.stderr?.pipe(new p_).pipe(Ss.stderr);return}t.stdout?.pipe(Ss.stdout),t.stderr?.pipe(Ss.stderr)},M$=(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}},oie=t=>M$(t,"SIGKILL"),sie=(t,e)=>{let r=null,n=()=>{If.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),M$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing idle process ${t.pid}`),oie(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)},aie=t=>{k$.add(t);let e=eie();if(e){let r=e.onTimesUp(()=>{If.log(`Global timer expired, killing process ${t.pid}`),M$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(If.log(`Force killing process ${t.pid} after timeout`),oie(t))},5e3)});t.on("exit",()=>{k$.delete(t),r()}),t.on("error",()=>{k$.delete(t),r()})}};function jx(t,e){return!!Oi(t,e)}function Oi(t,e){if(!Ss.env.NETLIFY_LOCAL_MODE)try{let i=bFe.resolve(tie.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(Bx.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(Bx.existsSync(i))return i}let r=ys.join(t,"node_modules",".bin",e);if(Bx.existsSync(r))return r;let n=ys.join(TFe,"..","node_modules",".bin",e);if(Bx.existsSync(n))return n}var xFe=fe("utils"),wFe=t=>new Promise(e=>{setTimeout(e,t)});var D$=t=>{try{return new URL(t).hostname||null}catch{return null}},zx=(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 wFe(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},cie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):xFe.error("Could not parse JSON",n))}},RFe=t=>t.charAt(0).toUpperCase()+t.slice(1),Eo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():RFe(e)).join(" ");function Es(t,e){e&&t.log(`Skill invoked: ${e}`)}var Gx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),lie=(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 L$=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}},IFe=1e4,$$=(t,e=IFe)=>{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 CFe}from"crypto";import{createReadStream as PFe}from"fs";import qx from"fs/promises";import hie from"os";import Vx from"path";var uie=fe("repo"),mie="runner-diffs-",gie=t=>`${mie}${t}-`,_ie=async t=>{let e=hie.tmpdir(),r;try{r=await qx.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(mie)&&!n.startsWith(gie(t))).map(n=>qx.rm(Vx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},en=(t,e={})=>zt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Hx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{uie.info("Getting runner diffs");let n=await NFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=MFe(o);await DFe(h,r)}uie.info("Changes after processing"),await F$(r);let s=await B$(o,r);if(await U$(s,r),i=await kFe(r),!i)return{hasChanges:!1,ignored:s};await en(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await qx.mkdtemp(Vx.join(hie.tmpdir(),gie(t.sessionId))),c=async({from:h,to:m,fileName:S,binary:E})=>{let b=Vx.join(a,S);await en([...E?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:_}=await qx.stat(b);return{path:b,size:_}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await pie(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 fie(d,h)||(f=h)}await pie(r),le.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await fie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},die=async t=>{let e=CFe("sha256");for await(let r of PFe(t))e.update(r);return e.digest("hex")},fie=async(t,e)=>t.size===e.size&&await die(t.path)===await die(e.path),pie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await en(["reset","--soft","HEAD~1"],{cwd:t})},U$=async(t=[],e=process.cwd())=>{await en(["add",".",...t],{cwd:e})},F$=async(t=process.cwd())=>{let e=await en(["status","-s"],{cwd:t});return String(e.stdout??"")},yie=/.. (.+)?\.log$/,OFe=[yie],NFe=async(t=process.cwd())=>{let e=await F$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
103
103
|
`).filter(i=>OFe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},kFe=async(t=process.cwd())=>{try{return await en(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},B_=async(t=process.cwd())=>{let{stdout:e}=await en(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},Sie=async(t=process.cwd())=>{let{stdout:e}=await en(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},B$=async(t,e=process.cwd())=>{t||=await F$(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
|
|
104
104
|
`).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${Vx.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(yie)?.[1];o&&n.push(`:!${o}.log`)}),n},Eie=async(t=process.cwd())=>{await en(["reset","--hard","HEAD"],{cwd:t})},vie=async(t=process.cwd())=>{let e=await en(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
|
|
105
105
|
`).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},MFe=t=>{let e=t.split(`
|
|
@@ -330,7 +330,7 @@ ${s.trim()}
|
|
|
330
330
|
\`\`\``),{title:n,message:s,category:i}};import Iu from"fs/promises";import ES from"os";import xc from"path";import Lh from"process";import V4e from"readline";import yS from"fs/promises";import j4e from"os";import GI from"path";var jle=fe("gemini_session"),z4e=t=>t instanceof Error?t.message:String(t),G4e=t=>{let e=!1;if(Array.isArray(t?.toolCalls))for(let n of t.toolCalls)n&&typeof n=="object"&&"id"in n&&(delete n.id,e=!0);let r=typeof t?.content=="object"?t.content?.parts:void 0;if(Array.isArray(r))for(let n of r)n?.functionCall&&typeof n.functionCall=="object"&&"id"in n.functionCall&&(delete n.functionCall.id,e=!0);return e},q4e=async t=>{let r=(await yS.readFile(t,"utf8")).split(`
|
|
331
331
|
`),n=!1,i=r.map(o=>{if(!o.trim())return o;let s;try{s=JSON.parse(o)}catch{return o}return G4e(s)?(n=!0,JSON.stringify(s)):o});return n&&await yS.writeFile(t,i.join(`
|
|
332
332
|
`),"utf8"),n},Sz=async(t,e=GI.join(j4e.homedir(),".gemini"))=>{let r=GI.join(e,"tmp"),n=t.slice(0,8),i;try{i=await yS.readdir(r)}catch{return}for(let o of i){let s=GI.join(r,o,"chats"),a;try{a=await yS.readdir(s)}catch{continue}for(let c of a){if(!c.endsWith(".jsonl")||!c.includes(n))continue;let l=GI.join(s,c);try{let u=(await yS.readFile(l,"utf8")).split(`
|
|
333
|
-
`,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},SS=async t=>{try{let e=await Sz(t);return e?(await q4e(e),!0):(jle.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return jle.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:z4e(e)}),!1}};var Ez={list_directory:{name:"List directory",category:W.Explore},read_file:{name:"Read file",category:W.FileRead},write_file:{name:"Edit file",category:W.FileWrite},glob:{name:"Find files",category:W.Explore},search_file_content:{name:"Search files",category:W.Explore},replace:{name:"Edit file",category:W.FileWrite},run_shell_command:{name:"Run command",category:W.RunCommand},web_fetch:{name:"Fetch web",category:W.Web},web_search:{name:"Search web",category:W.Web},google_web_search:{name:"Search web",category:W.Web},update_topic:{name:"Update topic",category:W.Plan},read_many_files:{name:"Read files",category:W.FileRead},save_memory:{name:"Memorize",category:W.Memorize},activate_skill:{name:"Use Skill",category:W.Skill},grep_search:{name:"Search files",category:W.Explore}};var gr=fe("runner_gemini"),qI="Gemini CLI",Dh="gemini-3.
|
|
333
|
+
`,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},SS=async t=>{try{let e=await Sz(t);return e?(await q4e(e),!0):(jle.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return jle.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:z4e(e)}),!1}};var Ez={list_directory:{name:"List directory",category:W.Explore},read_file:{name:"Read file",category:W.FileRead},write_file:{name:"Edit file",category:W.FileWrite},glob:{name:"Find files",category:W.Explore},search_file_content:{name:"Search files",category:W.Explore},replace:{name:"Edit file",category:W.FileWrite},run_shell_command:{name:"Run command",category:W.RunCommand},web_fetch:{name:"Fetch web",category:W.Web},web_search:{name:"Search web",category:W.Web},google_web_search:{name:"Search web",category:W.Web},update_topic:{name:"Update topic",category:W.Plan},read_many_files:{name:"Read files",category:W.FileRead},save_memory:{name:"Memorize",category:W.Memorize},activate_skill:{name:"Use Skill",category:W.Skill},grep_search:{name:"Search files",category:W.Explore}};var gr=fe("runner_gemini"),qI="Gemini CLI",Dh="gemini-3.7-flash",H4e=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(gr.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(gr.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(gr.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),W4e={low:"LOW",medium:"MEDIUM",high:"HIGH"},zle=t=>!!t&&t.startsWith("gemini-3"),Y4e=(t,{model:e,effort:r})=>{let n=t.modelConfigs?.customAliases??{};!r||!zle(e)?(r&&gr.log(`Model '${e}' does not support thinkingLevel; running at the model default effort`),delete n[e]):n[e]={extends:"chat-base-3",modelConfig:{model:e,generateContentConfig:{thinkingConfig:{thinkingLevel:W4e[r]}}}},Object.keys(n).length!==0&&(t.modelConfigs={...t.modelConfigs,customAliases:n})},K4e=async({model:t,effort:e}={})=>{let r=xc.join(ES.homedir(),".gemini"),n=xc.join(r,"settings.json");try{await Iu.mkdir(r,{recursive:!0});let i={};try{let o=await Iu.readFile(n,"utf-8");i=JSON.parse(o)}catch{gr.log("Creating new Gemini CLI settings file")}i.general||(i.general={}),i.general.previewFeatures||(i.general.previewFeatures=!0),i.model||(i.model={}),i.model.compressionThreshold!==.3&&(i.model.compressionThreshold=.3),i.skills||(i.skills={}),i.skills.enabled=!0,i.context||(i.context={}),i.context.fileName=["GEMINI.md","AGENTS.md"],Y4e(i,{model:t,effort:e}),je().questionsEnabled&&(i.mcpServers={...i.mcpServers,...b1({trust:!0})}),await Iu.writeFile(n,JSON.stringify(i,null,2),"utf-8"),gr.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(i){gr.error("Failed to ensure Gemini CLI settings",{error:i.message}),le.inc("context.degraded",1,{component:"agent_config"})}},Z4e=t=>{t?.category===W.Skill&&t.type&&Es(gr,Eo(t.type))},J4e=({aiGateway:t})=>{if(t){let{token:e,url:r}=t;if(!e||!r)throw new Error("No token or url provided from AI Gateway");Lh.env.GEMINI_API_KEY=e,Lh.env.GOOGLE_GEMINI_BASE_URL=r}else if(!Lh.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided")},X4e=async({aiGateway:t,config:e,model:r})=>{let n=r;if(t){let i=e.modelVersionOverrides?.gemini?.[e.accountType];if(i){if(!await t.isModelAvailableForProvider("gemini",i))throw new Error(`Model override '${i}' is not available for gemini provider`);n=i}if(!n)!!Dh&&await t.isModelAvailableForProvider("gemini",Dh)?(n=Dh,gr.log(`Using default model: ${Dh}`)):Dh&&gr.log(`Default model ${Dh} is not available, proceeding without model specification`);else if(!i&&!await t.isModelAvailableForProvider("gemini",n))throw new Error(`Model '${n}' is not available for gemini provider`)}return n},Q4e=async({config:t,cliPath:e})=>{let r=[`[[rule]]
|
|
334
334
|
toolName = "web_fetch"
|
|
335
335
|
decision = "allow"
|
|
336
336
|
priority = 10
|
package/dist/bin.js
CHANGED
|
@@ -587,7 +587,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
587
587
|
`,LF:`
|
|
588
588
|
`,concatBytes:R3},wSt=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},ASt={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:wSt};import{Buffer as RSt}from"buffer";var RTe=(t,e)=>t?void 0:xSt.bind(void 0,e),xSt=function*(t,e){if(typeof e!="string"&&!Cr(e)&&!RSt.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},xTe=(t,e)=>t?ISt.bind(void 0,e):OSt.bind(void 0,e),ISt=function*(t,e){ITe(t,e),yield e},OSt=function*(t,e){if(ITe(t,e),typeof e!="string"&&!Cr(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},ITe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
589
589
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
590
|
-
if (condition) { yield value; }`)};import{Buffer as PSt}from"buffer";import{StringDecoder as CSt}from"string_decoder";var RC=(t,e,r)=>{if(r)return;if(t)return{transform:NSt.bind(void 0,new TextEncoder)};let n=new CSt(e);return{transform:kSt.bind(void 0,n),final:$St.bind(void 0,n)}},NSt=function*(t,e){PSt.isBuffer(e)?yield wc(e):typeof e=="string"?yield t.encode(e):yield e},kSt=function*(t,e){yield Cr(e)?t.write(e):e},$St=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as OTe}from"util";var I3=OTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),xC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=DSt}=e[r];for await(let i of n(t))yield*xC(i,e,r+1)},PTe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*LSt(r,Number(e),t)},LSt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*xC(n,r,e+1)},CTe=OTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),DSt=function*(t){yield t};var O3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},NTe=(t,e)=>[...e.flatMap(r=>[...zf(r,t,0)]),...Jb(t)],zf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=USt}=e[r];for(let i of n(t))yield*zf(i,e,r+1)},Jb=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*MSt(r,Number(e),t)},MSt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*zf(n,r,e+1)},USt=function*(t){yield t};var P3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=$Te(t,o,s),l=Bf(e),u=Bf(r),d=l?I3.bind(void 0,xC,a):O3.bind(void 0,zf),f=l||u?I3.bind(void 0,PTe,a):O3.bind(void 0,Jb),p=l||u?CTe.bind(void 0,a):void 0;return{stream:new FSt({writableObjectMode:n,writableHighWaterMark:kTe(n),readableObjectMode:i,readableHighWaterMark:kTe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},IC=(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=$Te(o,r,a);t=NTe(c,t)}return t},$Te=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:RTe(n,a)},RC(r,o,n),AC(r,s,n,c),{transform:t,final:e},{transform:xTe(i,a)},ATe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var LTe=(t,e)=>{for(let r of jSt(t))qSt(t,r,e)},jSt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),qSt=(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 ${Ru[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>BSt(a,n));r.input=jb(o)},BSt=(t,e)=>{let r=IC(t,e,"utf8",!0);return zSt(r),jb(r)},zSt=t=>{let e=t.find(r=>typeof r!="string"&&!Cr(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 WSt,appendFileSync as YSt}from"fs";var OC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Dg(r,n)&&!ji.has(e)&&VSt(n)&&(t.some(({type:i,value:s})=>i==="native"&&HSt.has(s))||t.every(({type:i})=>Ts.has(i))),VSt=t=>t===1||t===2,HSt=new Set(["pipe","overlapped"]),DTe=async(t,e,r,n)=>{for await(let i of t)GSt(e)||UTe(i,r,n)},MTe=(t,e,r)=>{for(let n of t)UTe(n,e,r)},GSt=t=>t._readableState.pipes.length>0,UTe=(t,e,r)=>{let n=zP(t);ra({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var FTe=({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)=>KSt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},KSt=({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=jbe(t,s,d),p=wc(f),{stdioItems:h,objectMode:m}=e[r],_=JSt([p],h,c,n),{serializedResult:y,finalResult:v=y}=ZSt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});XSt({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&&QSt(y,h,i),S}catch(g){return n.error=g,S}},JSt=(t,e,r,n)=>{try{return IC(t,e,r,!1)}catch(i){return n.error=i,t}},ZSt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:jb(t)};let o=eEe(t,r);return n[s]?{serializedResult:o,finalResult:x3(o,!i[s],e)}:{serializedResult:o}},XSt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!OC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=x3(t,!1,o);try{MTe(a,e,n)}catch(c){r.error??=c}},QSt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>TC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?YSt(n,t):(r.add(s),WSt(n,t))}};var jTe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,xc(e,r,"all")]:Array.isArray(e)?[xc(t,r,"all"),...e]:Cr(t)&&Cr(e)?D6([t,e]):`${t}${e}`};import{once as C3}from"events";var qTe=async(t,e)=>{let[r,n]=await eEt(t);return e.isForcefullyTerminated??=!1,[r,n]},eEt=async t=>{let[e,r]=await Promise.allSettled([C3(t,"spawn"),C3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?BTe(t):r.value},BTe=async t=>{try{return await C3(t,"exit")}catch{return BTe(t)}},zTe=async t=>{let[e,r]=await t;if(!tEt(e,r)&&N3(e,r))throw new ro;return[e,r]},tEt=(t,e)=>t===void 0&&e===void 0,N3=(t,e)=>t!==0||e!==null;var VTe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=rEt(t,e,r),o=s?.code==="ETIMEDOUT",a=Fbe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},rEt=(t,e,r)=>t!==void 0?t:N3(e,r)?new ro:void 0;var HTe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=iEt(t,e,r),d=aEt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Gg(d,c,l)},iEt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=HP(t,e,r),a=sEt(r),{file:c,commandArguments:l,options:u}=dC(t,e,a);oEt(u);let d=vTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},sEt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,oEt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&PC("ipcInput"),t&&PC("ipc: true"),r&&PC("detached: true"),n&&PC("cancelSignal")},PC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},aEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=cEt({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}=VTe(c,r),{output:h,error:m=l}=FTe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>xc(v,r,S)),y=xc(jTe(h,r),r,"all");return uEt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},cEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{LTe(s,r);let a=lEt(r);return nEt(...fC(t,e,a))}catch(a){return Hg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},lEt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:SC(e)}),uEt=({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?EC({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Kb({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 Zvt}from"events";import{spawn as Xvt}from"child_process";import JTe from"process";import{once as k3,on as dEt}from"events";var GTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Fg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),fEt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),fEt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{tC(e,i);let s=Au(t,e,r),o=new AbortController;try{return await Promise.race([pEt(s,n,o),hEt(s,r,o),mEt(s,r,o)])}catch(a){throw jg(t),a}finally{o.abort(),rC(e,i)}},pEt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await k3(t,"message",{signal:r});return n}for await(let[n]of dEt(t,"message",{signal:r}))if(e(n))return n},hEt=async(t,e,{signal:r})=>{await k3(t,"disconnect",{signal:r}),Nve(e)},mEt=async(t,e,{signal:r})=>{let[n]=await k3(t,"strict:error",{signal:r});throw XP(n,e)};import{once as YTe,on as gEt}from"events";var KTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>$3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),$3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Fg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),tC(e,s);let o=Au(t,e,r),a=new AbortController,c={};return _Et(t,o,a),yEt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),SEt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},_Et=async(t,e,r)=>{try{await YTe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},yEt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await YTe(t,"strict:error",{signal:r.signal});n.error=XP(i,e),r.abort()}catch{}},SEt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of gEt(r,"message",{signal:s.signal}))WTe(o),yield c}catch{WTe(o)}finally{s.abort(),rC(e,a),n||jg(t),i&&await t}},WTe=({error:t})=>{if(t)throw t};var ZTe=(t,{ipc:e})=>{Object.assign(t,QTe(t,!1,e))},XTe=()=>{let t=JTe,e=!0,r=JTe.channel!==void 0;return{...QTe(t,e,r),getCancelSignal:sbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},QTe=(t,e,r)=>({sendMessage:lC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:GTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:KTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as EEt}from"child_process";import{PassThrough as vEt,Readable as bEt,Writable as TEt,Duplex as wEt}from"stream";var ewe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{w3(n);let a=new EEt;AEt(a,n),Object.assign(a,{readable:REt,writable:xEt,duplex:IEt});let c=Hg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=OEt(c,o,i);return{subprocess:a,promise:l}},AEt=(t,e)=>{let r=Zb(),n=Zb(),i=Zb(),s=Array.from({length:e.length-3},Zb),o=Zb(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},Zb=()=>{let t=new vEt;return t.end(),t},REt=()=>new bEt({read(){}}),xEt=()=>new TEt({write(){}}),IEt=()=>new wEt({read(){},write(){}}),OEt=async(t,e,r)=>Gg(t,e,r);import{createReadStream as twe,createWriteStream as rwe}from"fs";import{Buffer as PEt}from"buffer";import{Readable as Xb,Writable as CEt,Duplex as NEt}from"stream";var iwe=(t,e)=>wC(kEt,t,e,!1),Qb=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ru[t]}.`)},nwe={fileNumber:Qb,generator:P3,asyncGenerator:P3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:NEt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},kEt={input:{...nwe,fileUrl:({value:t})=>({stream:twe(t)}),filePath:({value:{file:t}})=>({stream:twe(t)}),webStream:({value:t})=>({stream:Xb.fromWeb(t)}),iterable:({value:t})=>({stream:Xb.from(t)}),asyncIterable:({value:t})=>({stream:Xb.from(t)}),string:({value:t})=>({stream:Xb.from(t)}),uint8Array:({value:t})=>({stream:Xb.from(PEt.from(t))})},output:{...nwe,fileUrl:({value:t})=>({stream:rwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:rwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:CEt.fromWeb(t)}),iterable:Qb,asyncIterable:Qb,string:Qb,uint8Array:Qb}};import{on as $Et,once as swe}from"events";import{PassThrough as LEt,getDefaultHighWaterMark as DEt}from"stream";import{finished as cwe}from"stream/promises";function Vf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)D3(i);let e=t.some(({readableObjectMode:i})=>i),r=MEt(t,e),n=new L3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var MEt=(t,e)=>{if(t.length===0)return DEt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},L3=class extends LEt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(D3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=UEt(this,this.#e,this.#s);let r=qEt({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(D3(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)}},UEt=async(t,e,r)=>{CC(t,owe);let n=new AbortController;try{await Promise.race([FEt(t,n),jEt(t,e,r,n)])}finally{n.abort(),CC(t,-owe)}},FEt=async(t,{signal:e})=>{try{await cwe(t,{signal:e,cleanup:!0})}catch(r){throw lwe(t,r),r}},jEt=async(t,e,r,{signal:n})=>{for await(let[i]of $Et(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},D3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},qEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{CC(t,awe);let a=new AbortController;try{await Promise.race([BEt(s,e,a),zEt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),VEt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),CC(t,-awe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?M3(t):HEt(t))},BEt=async(t,e,{signal:r})=>{try{await t,r.aborted||M3(e)}catch(n){r.aborted||lwe(e,n)}},zEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await cwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;uwe(o)?i.add(e):dwe(t,o)}},VEt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await swe(t,i,{signal:s}),!t.readable)return swe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},HEt=t=>{t.writable&&t.end()},lwe=(t,e)=>{uwe(e)?M3(t):dwe(t,e)},uwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",M3=t=>{(t.readable||t.writable)&&t.destroy()},dwe=(t,e)=>{t.destroyed||(t.once("error",GEt),t.destroy(e))},GEt=()=>{},CC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},owe=2,awe=1;import{finished as fwe}from"stream/promises";var Yg=(t,e)=>{t.pipe(e),WEt(t,e),YEt(t,e)},WEt=async(t,e)=>{if(!(to(t)||to(e))){try{await fwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}U3(e)}},U3=t=>{t.writable&&t.end()},YEt=async(t,e)=>{if(!(to(t)||to(e))){try{await fwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}F3(t)}},F3=t=>{t.readable&&t.destroy()};var pwe=(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})=>Ts.has(c)))KEt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Ts.has(c)))ZEt({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]:Vf(s);Yg(o,i)}},KEt=(t,e,r,n)=>{r==="output"?Yg(t.stdio[n],e):Yg(e,t.stdio[n]);let i=JEt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},JEt=["stdin","stdout","stderr"],ZEt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;XEt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},XEt=(t,{signal:e})=>{to(t)&&jf(t,QEt,e)},QEt=2;import{addAbortListener as rvt}from"events";var Hf=[];Hf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Hf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Hf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var NC=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"),q3=globalThis,evt=Object.defineProperty.bind(Object),B3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(q3[j3])return q3[j3];evt(q3,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}},kC=class{},tvt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),z3=class extends kC{onExit(){return()=>{}}load(){}unload(){}},V3=class extends kC{#e=H3.platform==="win32"?"SIGINT":"SIGHUP";#r=new B3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Hf)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(!NC(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 Hf)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,Hf.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 NC(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"&&NC(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)}},H3=globalThis.process,{onExit:hwe,load:cur,unload:lur}=tvt(NC(H3)?new V3(H3):new z3);var mwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=hwe(()=>{t.kill()});rvt(n,()=>{i()})};var _we=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=VP(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=nvt(r,n,i),{sourceStream:d,sourceError:f}=svt(t,l),{options:p,fileDescriptors:h}=ia.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},nvt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=ivt(t,e,...r),a=eC(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},ivt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(gwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||$6(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]=$P(r,...n);return{destination:e(gwe)(i,s,o),pipeOptions:o}}if(ia.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}`)},gwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),svt=(t,e)=>{try{return{sourceStream:qg(t,e)}}catch(r){return{sourceError:r}}};var Swe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=ovt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw G3({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},ovt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return F3(t),n;if(e!==void 0)return U3(r),e},G3=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Hg({error:t,command:ywe,escapedCommand:ywe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),ywe="source.pipe(destination)";var Ewe=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 avt}from"stream/promises";var vwe=(t,e,r)=>{let n=$C.has(e)?lvt(t,e):cvt(t,e);return jf(t,dvt,r.signal),jf(e,fvt,r.signal),uvt(e),n},cvt=(t,e)=>{let r=Vf([t]);return Yg(r,e),$C.set(e,r),r},lvt=(t,e)=>{let r=$C.get(e);return r.add(t),r},uvt=async t=>{try{await avt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}$C.delete(t)},$C=new WeakMap,dvt=2,fvt=1;import{aborted as pvt}from"util";var bwe=(t,e)=>t===void 0?[]:[hvt(t,e)],hvt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await pvt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw G3({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var LC=(t,...e)=>{if(_r(e[0]))return LC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=_we(t,...e),i=mvt({...n,destination:r});return i.pipe=LC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},mvt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=gvt(t,i);Swe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=vwe(e,s,d);return await Promise.race([Ewe(u),...bwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},gvt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Tvt}from"timers/promises";import{on as _vt}from"events";import{getDefaultHighWaterMark as yvt}from"stream";var DC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return Svt(e,o),wwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Svt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},W3=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;Evt(e,o,t);let a=t.readableObjectMode&&!s;return wwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},Evt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},wwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=_vt(t,"data",{signal:e.signal,highWaterMark:Twe,highWatermark:Twe});return vvt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},Y3=yvt(!0),Twe=Y3,vvt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=bvt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*zf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Jb(a)}},bvt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[RC(t,r,!e),AC(t,i,!n,{})].filter(Boolean);var Awe=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=wvt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([Avt(t),d]);return}let f=A3(c,r),p=W3({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([Rvt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},wvt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!OC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=W3({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await DTe(a,t,r,s)},Avt=async t=>{await Tvt(),t.readableFlowing===null&&t.resume()},Rvt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await gC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await _C(r,{maxBuffer:s})):await Vg(r,{maxBuffer:s})}catch(a){return Rwe(Dbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},K3=async t=>{try{return await t}catch(e){return Rwe(e)}},Rwe=({bufferedData:t})=>XSe(t)?new Uint8Array(t):t;import{finished as xvt}from"stream/promises";var eT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=Ivt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],xvt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||Cvt(a,e,r,n)}finally{o.abort()}},Ivt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&Ovt(t,r,n),n},Ovt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{Pvt(e,r),n.call(t,...i)}},Pvt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},Cvt=(t,e,r,n)=>{if(!Nvt(t,e,r,n))throw t},Nvt=(t,e,r,n=!0)=>r.propagating?xwe(t)||MC(t):(r.propagating=!0,J3(r,e)===n?xwe(t):MC(t)),J3=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",MC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",xwe=t=>t?.code==="EPIPE";var Iwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>Z3({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),Z3=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=eT(t,e,l);if(J3(l,e)){await u;return}let[d]=await Promise.all([Awe({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 Owe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Vf([t,e].filter(Boolean)):void 0,Pwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>Z3({...kvt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:$vt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),kvt=({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}},$vt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Lvt}from"events";var Cwe=t=>Dg(t,"ipc"),Nwe=(t,e)=>{let r=zP(t);ra({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var kwe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Cwe(s),a=Ac(e,"ipc"),c=Ac(r,"ipc");for await(let l of $3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Mbe(t,i,c),i.push(l)),o&&Nwe(l,s);return i},$we=async(t,e)=>(await Promise.allSettled([t]),e);var Lwe=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=qTe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=Iwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),T=Pwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),I=[],R=kwe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:I,verboseInfo:p}),A=Dvt(m,t,S),O=Mvt(h,S);try{return await Promise.race([Promise.all([{},zTe(v),Promise.all(g),T,R,mbe(t,d),...A,...O]),_,Uvt(t,y),...ube(t,s,f,y),...Cve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...cbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(x){return f.terminationReason??="other",Promise.all([{error:x},v,Promise.all(g.map(b=>K3(b))),K3(T),$we(R,I),Promise.allSettled(A),Promise.allSettled(O)])}},Dvt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:eT(n,i,r)),Mvt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>io(s,{checkOpen:!1})&&!to(s)).map(({type:i,value:s,stream:o=s})=>eT(o,n,e,{isSameDirection:Ts.has(i),stopOnExit:i==="native"}))),Uvt=async(t,{signal:e})=>{let[r]=await Lvt(t,"error",{signal:e});throw r};var Dwe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),tT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=na();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Kg=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 Fvt}from"stream";import{callbackify as jvt}from"util";import{finished as Mwe}from"stream/promises";var X3=async t=>{if(t!==void 0)try{await Q3(t)}catch{}},Uwe=async t=>{if(t!==void 0)try{await eW(t)}catch{}},Q3=async t=>{await Mwe(t,{cleanup:!0,readable:!1,writable:!0})},eW=async t=>{await Mwe(t,{cleanup:!0,readable:!0,writable:!1})},UC=async(t,e)=>{if(await t,e)throw e},FC=(t,e,r)=>{r&&!MC(r)?t.destroy(r):e&&t.destroy()};var Fwe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||ji.has(r),{subprocessStdout:a,waitReadableDestroy:c}=tW(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=rW(a,o),{read:f,onStdoutDataDone:p}=nW({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Fvt({read:f,destroy:jvt(sW.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return iW({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},tW=(t,e,r)=>{let n=qg(t,e),i=tT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},rW=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:Y3},nW=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=na(),o=DC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){qvt(this,o,s)},onStdoutDataDone:s}},qvt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},iW=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await eW(t),await n,await X3(i),await e,r.readable&&r.push(null)}catch(s){await X3(i),jwe(r,s)}},sW=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Kg(r,e)&&(jwe(t,n),await UC(e,n))},jwe=(t,e)=>{FC(t,t.readable,e)};import{Writable as Bvt}from"stream";import{callbackify as qwe}from"util";var Bwe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=oW(t,r,e),o=new Bvt({...aW(n,t,i),destroy:qwe(lW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return cW(n,o),o},oW=(t,e,r)=>{let n=eC(t,e),i=tT(r,n,"writableFinal"),s=tT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},aW=(t,e,r)=>({write:zvt.bind(void 0,t),final:qwe(Vvt.bind(void 0,t,e,r))}),zvt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Vvt=async(t,e,r)=>{await Kg(r,e)&&(t.writable&&t.end(),await e)},cW=async(t,e,r)=>{try{await Q3(t),e.writable&&e.end()}catch(n){await Uwe(r),zwe(e,n)}},lW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Kg(r,e),await Kg(n,e)&&(zwe(t,i),await UC(e,i))},zwe=(t,e)=>{FC(t,t.writable,e)};import{Duplex as Hvt}from"stream";import{callbackify as Gvt}from"util";var Vwe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ji.has(r),{subprocessStdout:c,waitReadableDestroy:l}=tW(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=oW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=rW(c,a),{read:_,onStdoutDataDone:y}=nW({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Hvt({read:_,...aW(u,t,d),destroy:Gvt(Wvt.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 iW({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),cW(u,v,c),v},Wvt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([sW({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),lW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var uW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||ji.has(e),o=qg(t,r),a=DC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return Yvt(a,o,t)},Yvt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Hwe=(t,{encoding:e})=>{let r=Dwe();t.readable=Fwe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Bwe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Vwe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=uW.bind(void 0,t,e),t[Symbol.asyncIterator]=uW.bind(void 0,t,e,{})};var Gwe=(t,e)=>{for(let[r,n]of Jvt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Kvt=(async()=>{})().constructor.prototype,Jvt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Kvt,t)]);var Wwe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=Qvt(t,e,r),{subprocess:f,promise:p}=tbt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=LC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Gwe(f,p),ia.set(f,{options:u,fileDescriptors:d}),f},Qvt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=HP(t,e,r),{file:a,commandArguments:c,options:l}=dC(t,e,r),u=ebt(l),d=iwe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},ebt=({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}},tbt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=Xvt(...fC(t,e,r))}catch(h){return ewe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;Zvt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];pwe(c,a,l),mwe(c,r,l);let d={},f=na();c.kill=Ove.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Owe(c,r),Hwe(c,r),ZTe(c,r);let p=rbt({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}},rbt=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 Lwe({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)=>xc(g,e,T)),v=xc(m,e,"all"),S=nbt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Gg(S,n,e)},nbt=({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?Kb({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 sa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):EC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var jC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,ibt(n,t[n],i)]));return{...t,...r}},ibt=(t,e,r)=>sbt.has(t)&&_r(e)&&_r(r)?{...e,...r}:r,sbt=new Set(["env",...j6]);var xu=(t,e,r,n)=>{let i=(o,a,c)=>xu(o,a,r,c),s=(...o)=>obt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},obt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(_r(s))return i(t,jC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=abt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?HTe(a,c,l):Wwe(a,c,l,i)},abt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=iEe(e)?sEe(e,r):[e,...r],[o,a,c]=$P(...s),l=jC(jC(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 Ywe=({file:t,commandArguments:e})=>Jwe(t,e),Kwe=({file:t,commandArguments:e})=>({...Jwe(t,e),isSync:!0}),Jwe=(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]=cbt(t);return{file:r,commandArguments:n}},cbt=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(lbt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},lbt=/ +/g;var Zwe=(t,e,r)=>{t.sync=e(ubt,r),t.s=t.sync},Xwe=({options:t})=>Qwe(t),ubt=({options:t})=>({...Qwe(t),isSync:!0}),Qwe=t=>({options:{...dbt(t),...t}}),dbt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},e0e={preferLocal:!0};var t0e=xu(()=>({})),Xfr=xu(()=>({isSync:!0})),r0e=xu(Ywe),Qfr=xu(Kwe),epr=xu(fbe),tpr=xu(Xwe,{},e0e,Zwe),{sendMessage:rpr,getOneMessage:npr,getEachMessage:ipr,getCancelSignal:spr}=XTe();import{Transform as fbt}from"stream";var pbt=["NETLIFY_AI_GATEWAY_KEY"];function hbt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...pbt])]}function mbt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function gbt(){let e=hbt().map(r=>process.env[r]).filter(r=>!(!r||mbt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function ws(t){if(typeof t!="string")return t;let e=gbt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(_bt(n),"g");r=r.replace(i,"******")}),r}function _bt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var rT=class extends fbt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=ws(i);n(null,s)}},qC=Symbol("maskedWrite");function n0e(){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"?ws(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"?ws(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[qC]=!0,process.stderr.write=r}}}var i0e=!1,s0e=()=>{i0e=!0},yi=()=>i0e;var nT=null,o0e=t=>(nT&&nT.destroy(),nT=new Ic({totalAllowedTime:t}),nT),a0e=()=>nT;var Ic=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&&yi())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 NP({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{ye.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 c0e={name:"@netlify/agent-runner-cli",type:"module",version:"1.157.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration: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.3","@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 vbt=Sbt(import.meta.url),bbt=Oc.dirname(vbt),Tbt=Ebt(import.meta.url),Jg=Se("shell"),dW=new Set,l0e={preferLocal:!0},pn=(t,e,r)=>{let[n,i]=wbt(e,r),s={...l0e,...i},o=t0e(t,n,s);d0e(o,s),h0e(o);let a=r?.idleTimeout;return a&&a>0&&p0e(o,a),o},u0e=(t,e)=>{let r={...l0e,...e},n=r0e(t,r);return d0e(n,r),h0e(n),e?.idleTimeout&&e.idleTimeout>0&&p0e(n,e.idleTimeout),n},wbt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},d0e=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Pc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new rT).pipe(Pc.stdout),t.stderr?.pipe(new rT).pipe(Pc.stderr);return}t.stdout?.pipe(Pc.stdout),t.stderr?.pipe(Pc.stderr)},fW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Pc.kill(-t.pid,e),Jg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Jg.error("Error killing process:",r),!1}},f0e=t=>fW(t,"SIGKILL"),p0e=(t,e)=>{let r=null,n=()=>{Jg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),fW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Jg.log(`Force killing idle process ${t.pid}`),f0e(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)},h0e=t=>{dW.add(t);let e=a0e();if(e){let r=e.onTimesUp(()=>{Jg.log(`Global timer expired, killing process ${t.pid}`),fW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Jg.log(`Force killing process ${t.pid} after timeout`),f0e(t))},5e3)});t.on("exit",()=>{dW.delete(t),r()}),t.on("error",()=>{dW.delete(t),r()})}};function aa(t,e){if(!Pc.env.NETLIFY_LOCAL_MODE)try{let i=Tbt.resolve(c0e.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(BC.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Pc.env.NODE_PATH){let i=Oc.join(Pc.env.NODE_PATH,".bin",e);if(BC.existsSync(i))return i}let r=Oc.join(t,"node_modules",".bin",e);if(BC.existsSync(r))return r;let n=Oc.join(bbt,"..","node_modules",".bin",e);if(BC.existsSync(n))return n}import dD from"process";import{fileURLToPath as QLt}from"url";import{createRequire as eDt}from"module";import fD from"path";var Abt="__netlify__getTracer",Rbt="__netlify__shutdownTracers",gt=(t,e)=>globalThis[Abt]?.(t,e),m0e=async()=>globalThis[Rbt]?.();function Gf(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 GLt}from"timers/promises";Ne();import xwt from"process";Ne();var Jbt=(t,e)=>{e.recordException(t),e.setStatus({code:Pn.ERROR})};var kc=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}=cAe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>lAe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=cAe(r,n,i),c=this._tracer.startSpan(e,s,o);return lAe(c,s,a)}};function cAe(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??jt.active(),{opts:n,ctx:i,fn:s}}function lAe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:Jbt,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)}}Ne();var n_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var GW=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=SAe(e),n._asyncAttributesPending=e.filter(([i,s])=>n_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(n_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=SAe(this._rawAttributes),this._schemaUrl=Zbt(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,n_(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&ae.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(n_(n)){ae.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=Xbt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function WW(t,e){return GW.FromAttributeList(Object.entries(t),e)}function SAe(t){return t.map(([e,r])=>n_(r)?[e,r.catch(n=>{ae.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function Zbt(t){if(typeof t=="string"||t===void 0)return t;ae.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function Xbt(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;ae.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Ne();var mT=class{emit(e){}enabled(){return!1}},EAe=new mT;var gT=Symbol.for("io.opentelemetry.js.api.logs"),i_=globalThis;function vAe(t,e,r){return n=>n===t?e:r}var YW=1;var KW=class{getLogger(e,r,n){return new mT}},dN=new KW;var fN=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):EAe}};var _T=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new fN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:dN}_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 pN=class t{constructor(){this._proxyLoggerProvider=new _T}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return i_[gT]?this.getLoggerProvider():(i_[gT]=vAe(YW,e,dN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=i_[gT])===null||e===void 0?void 0:e.call(i_,YW))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete i_[gT],this._proxyLoggerProvider=new _T}};var bAe=pN.getInstance();function TAe(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 wAe(t){t.forEach(e=>e.disable())}function JW(t){let e=t.tracerProvider||xt.getTracerProvider(),r=t.meterProvider||hT.getMeterProvider(),n=t.loggerProvider||bAe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return TAe(i,e,r,n),()=>{wAe(i)}}Ne();var Qbt=qr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function AAe(t){return t.getValue(Qbt)===!0}var s_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(s_||(s_={}));Ne();var ZW="[_0-9a-z-*/]",eTt=`[a-z]${ZW}{0,255}`,tTt=`[a-z0-9]${ZW}{0,240}@[a-z]${ZW}{0,13}`,rTt=new RegExp(`^(?:${eTt}|${tTt})$`),nTt=/^[ -~]{0,255}[!-~]$/,iTt=/,|=/;function XW(t){return rTt.test(t)}function QW(t){return nTt.test(t)&&!iTt.test(t)}var sTt=32,RAe=512,xAe=",",IAe="=",hN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!XW(e)||!QW(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>RAe)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=xAe+e),e=`${n[0]}${IAe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(xAe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(IAe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!XW(a)||!QW(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>RAe)&&(r.set(a,c),n=l,r.size>=sTt))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 mN="traceparent",gN="tracestate",oTt="00",aTt="(?!ff)[\\da-f]{2}",cTt="(?![0]{32})[\\da-f]{32}",lTt="(?![0]{16})[\\da-f]{16}",uTt="[\\da-f]{2}",dTt=new RegExp(`^\\s?(${aTt})-(${cTt})-(${lTt})-(${uTt})(-.*)?\\s?$`);function OAe(t){let e=dTt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Pu=class{inject(e,r,n){let i=xt.getSpanContext(e);if(!i||AAe(e)||!Si(i))return;let s=`${oTt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||dr.NONE).toString(16)}`;n.set(r,mN,s),i.traceState&&n.set(r,gN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,mN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=OAe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,gN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new hN(typeof c=="string"?c:void 0)}return xt.setSpanContext(e,o)}fields(){return[mN,gN]}};var _N=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 yT=class{_isCalled=!1;_deferred=new _N;_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 ck=Fn(UY(),1);Ne();var dIe=t=>{throw TypeError(t)},BY=(t,e,r)=>e.has(t)||dIe("Cannot "+r),ak=(t,e,r)=>(BY(t,e,"read from private field"),r?r.call(t):e.get(t)),FY=(t,e,r)=>e.has(t)?dIe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),cIe=(t,e,r,n)=>(BY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Rwt=(t,e,r)=>(BY(t,e,"access private method"),r),lIe="__netlify__getTracer",Iwt="__netlify__shutdownTracers",Owt="__nfOTLPTrace",kT,$T,qY,fIe,Pwt=class{constructor(){FY(this,qY),FY(this,kT),FY(this,$T),cIe(this,kT,new yT(Rwt(this,qY,fIe),this)),cIe(this,$T,ae.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(ak(this,$T).debug(`export ${t.length.toString()} spans`),ak(this,kT).isCalled){e({code:s_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(Owt,JSON.stringify(Cwt(t))),e({code:s_.SUCCESS})}shutdown(){return ak(this,kT).call()}};kT=new WeakMap;$T=new WeakMap;qY=new WeakSet;fIe=function(){return ak(this,$T).debug("Shutting down"),Promise.resolve()};function Cwt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:ok(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||so.SERVER,startTimeUnixNano:jY(e.startTime),endTimeUnixNano:jY(e.endTime),attributes:ok(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:jY(n.time),attributes:ok(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:ok(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function ok(t){return Object.keys(t).map(e=>pIe(e,t[e]))}function pIe(t,e){return{key:t,value:hIe(e)}}function hIe(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(hIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>pIe(r,n))}}:{}}function jY(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var uIe={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"}},mIe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,lIe))return;let e=xwt.version.slice(1),r=WW({"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??[Nwt()],i=new ck.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Pu});let s=t.instrumentations??[];JW({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,lIe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new kc(xt.getTracer(a,c)):new kc(xt.getTracer(uIe.name,uIe.version))}}),Object.defineProperty(globalThis,Iwt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},Nwt=()=>new ck.SimpleSpanProcessor(new Pwt);Ne();var LT=Fn(UY(),1);Ne();import*as lk from"diagnostics_channel";var gIe=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?Pn.ERROR:Pn.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 kc?t:new kc(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){lk.subscribe(t,e);let r=()=>lk.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:so.CLIENT},jt.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:Pn.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 jDe=Fn(UDe(),1);var lD=Se("tracing"),FDe=8e3,WLt=5e3,Qw=async(t=WLt)=>{try{await Promise.race([m0e(),GLt(t)])}catch(e){lD.warn("Failed to flush tracers on shutdown",e)}},qDe=async(t,e,r)=>{if(!gt()){let n=[new LT.SimpleSpanProcessor(new zJ),new LT.SimpleSpanProcessor(new jDe.OTLPTraceExporter({url:r.exporterUrl}))];await mIe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new gIe({skipHeaders:!0})]})}return r.traceparent?(Jn.setGlobalPropagator(new Pu),Jn.extract(jt.active(),{traceparent:r.traceparent,isRemote:!0})):jt.active()};function Ht(t,e,r){return lD.log(`\u23F3 TRACE: ${e} starting...`),Gf(t,e,r)}var zJ=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(", ")}]`:"";lD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&lD.log(` \u274C Error: ${e.status.message}`)}};function VJ(){return We().captureLlmContentEnabled}function BDe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function uD(t,e,r){let n={role:t,parts:[{type:"text",content:ws(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var YLt=new Set([ee.Task,ee.RunCommand,ee.Explore,ee.FileRead,ee.FileWrite,ee.Notebook,ee.Web,ee.Todo,ee.Skill,ee.Tool,ee.Memorize,ee.Deployment,ee.SiteGeneration]);function zDe(t,e,r,n){if(!t.length)return;let i=gt();if(!i)return;let s=VJ(),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&&YLt.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>FDe?`${a.message.slice(0,FDe)}\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":ws(_)}:{"gen_ai.output.messages":uD("assistant",_)}:{}}}).end(u)})}import{readdir as KLt,rm as JLt}from"fs/promises";import{join as ZLt}from"path";async function VDe(t,e=[]){let n=(await KLt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>JLt(ZLt(t,i),{recursive:!0,force:!0})))}var XLt=700,HDe=t=>{if(t.mode!=="create")return!1;if(t.accountType===Al)return!0;let{enforcedAICreditsRemaining:e}=t;return e!=null&&e<=XLt};var tDt=fD.dirname(QLt(import.meta.url)),GDe=eDt(import.meta.url),rDt=fD.resolve(tDt,"scripts/scaffold.js"),nDt="scripts/scaffold.js",iDt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,HJ=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},sDt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),oDt=t=>{let e=HJ(t);return e==="node"||e.endsWith("/node")},nl=t=>{if(typeof t!="string")return!1;let e=t.match(iDt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&sDt(HJ(e[r]));)r+=1;if(r>=e.length||!oDt(e[r]))return!1;let n=e[r+1];return n?HJ(n).includes(nDt):!1},gy=Se("create_stage"),WDe="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.",aDt=`${WDe}
|
|
590
|
+
if (condition) { yield value; }`)};import{Buffer as PSt}from"buffer";import{StringDecoder as CSt}from"string_decoder";var RC=(t,e,r)=>{if(r)return;if(t)return{transform:NSt.bind(void 0,new TextEncoder)};let n=new CSt(e);return{transform:kSt.bind(void 0,n),final:$St.bind(void 0,n)}},NSt=function*(t,e){PSt.isBuffer(e)?yield wc(e):typeof e=="string"?yield t.encode(e):yield e},kSt=function*(t,e){yield Cr(e)?t.write(e):e},$St=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as OTe}from"util";var I3=OTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),xC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=DSt}=e[r];for await(let i of n(t))yield*xC(i,e,r+1)},PTe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*LSt(r,Number(e),t)},LSt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*xC(n,r,e+1)},CTe=OTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),DSt=function*(t){yield t};var O3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},NTe=(t,e)=>[...e.flatMap(r=>[...zf(r,t,0)]),...Jb(t)],zf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=USt}=e[r];for(let i of n(t))yield*zf(i,e,r+1)},Jb=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*MSt(r,Number(e),t)},MSt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*zf(n,r,e+1)},USt=function*(t){yield t};var P3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=$Te(t,o,s),l=Bf(e),u=Bf(r),d=l?I3.bind(void 0,xC,a):O3.bind(void 0,zf),f=l||u?I3.bind(void 0,PTe,a):O3.bind(void 0,Jb),p=l||u?CTe.bind(void 0,a):void 0;return{stream:new FSt({writableObjectMode:n,writableHighWaterMark:kTe(n),readableObjectMode:i,readableHighWaterMark:kTe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},IC=(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=$Te(o,r,a);t=NTe(c,t)}return t},$Te=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:RTe(n,a)},RC(r,o,n),AC(r,s,n,c),{transform:t,final:e},{transform:xTe(i,a)},ATe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var LTe=(t,e)=>{for(let r of jSt(t))qSt(t,r,e)},jSt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),qSt=(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 ${Ru[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>BSt(a,n));r.input=jb(o)},BSt=(t,e)=>{let r=IC(t,e,"utf8",!0);return zSt(r),jb(r)},zSt=t=>{let e=t.find(r=>typeof r!="string"&&!Cr(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 WSt,appendFileSync as YSt}from"fs";var OC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Dg(r,n)&&!ji.has(e)&&VSt(n)&&(t.some(({type:i,value:s})=>i==="native"&&HSt.has(s))||t.every(({type:i})=>Ts.has(i))),VSt=t=>t===1||t===2,HSt=new Set(["pipe","overlapped"]),DTe=async(t,e,r,n)=>{for await(let i of t)GSt(e)||UTe(i,r,n)},MTe=(t,e,r)=>{for(let n of t)UTe(n,e,r)},GSt=t=>t._readableState.pipes.length>0,UTe=(t,e,r)=>{let n=zP(t);ra({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var FTe=({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)=>KSt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},KSt=({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=jbe(t,s,d),p=wc(f),{stdioItems:h,objectMode:m}=e[r],_=JSt([p],h,c,n),{serializedResult:y,finalResult:v=y}=ZSt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});XSt({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&&QSt(y,h,i),S}catch(g){return n.error=g,S}},JSt=(t,e,r,n)=>{try{return IC(t,e,r,!1)}catch(i){return n.error=i,t}},ZSt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:jb(t)};let o=eEe(t,r);return n[s]?{serializedResult:o,finalResult:x3(o,!i[s],e)}:{serializedResult:o}},XSt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!OC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=x3(t,!1,o);try{MTe(a,e,n)}catch(c){r.error??=c}},QSt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>TC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?YSt(n,t):(r.add(s),WSt(n,t))}};var jTe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,xc(e,r,"all")]:Array.isArray(e)?[xc(t,r,"all"),...e]:Cr(t)&&Cr(e)?D6([t,e]):`${t}${e}`};import{once as C3}from"events";var qTe=async(t,e)=>{let[r,n]=await eEt(t);return e.isForcefullyTerminated??=!1,[r,n]},eEt=async t=>{let[e,r]=await Promise.allSettled([C3(t,"spawn"),C3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?BTe(t):r.value},BTe=async t=>{try{return await C3(t,"exit")}catch{return BTe(t)}},zTe=async t=>{let[e,r]=await t;if(!tEt(e,r)&&N3(e,r))throw new ro;return[e,r]},tEt=(t,e)=>t===void 0&&e===void 0,N3=(t,e)=>t!==0||e!==null;var VTe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=rEt(t,e,r),o=s?.code==="ETIMEDOUT",a=Fbe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},rEt=(t,e,r)=>t!==void 0?t:N3(e,r)?new ro:void 0;var HTe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=iEt(t,e,r),d=aEt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Gg(d,c,l)},iEt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=HP(t,e,r),a=sEt(r),{file:c,commandArguments:l,options:u}=dC(t,e,a);oEt(u);let d=vTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},sEt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,oEt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&PC("ipcInput"),t&&PC("ipc: true"),r&&PC("detached: true"),n&&PC("cancelSignal")},PC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},aEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=cEt({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}=VTe(c,r),{output:h,error:m=l}=FTe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>xc(v,r,S)),y=xc(jTe(h,r),r,"all");return uEt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},cEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{LTe(s,r);let a=lEt(r);return nEt(...fC(t,e,a))}catch(a){return Hg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},lEt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:SC(e)}),uEt=({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?EC({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Kb({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 Zvt}from"events";import{spawn as Xvt}from"child_process";import JTe from"process";import{once as k3,on as dEt}from"events";var GTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Fg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),fEt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),fEt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{tC(e,i);let s=Au(t,e,r),o=new AbortController;try{return await Promise.race([pEt(s,n,o),hEt(s,r,o),mEt(s,r,o)])}catch(a){throw jg(t),a}finally{o.abort(),rC(e,i)}},pEt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await k3(t,"message",{signal:r});return n}for await(let[n]of dEt(t,"message",{signal:r}))if(e(n))return n},hEt=async(t,e,{signal:r})=>{await k3(t,"disconnect",{signal:r}),Nve(e)},mEt=async(t,e,{signal:r})=>{let[n]=await k3(t,"strict:error",{signal:r});throw XP(n,e)};import{once as YTe,on as gEt}from"events";var KTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>$3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),$3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Fg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:sC(t)}),tC(e,s);let o=Au(t,e,r),a=new AbortController,c={};return _Et(t,o,a),yEt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),SEt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},_Et=async(t,e,r)=>{try{await YTe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},yEt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await YTe(t,"strict:error",{signal:r.signal});n.error=XP(i,e),r.abort()}catch{}},SEt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of gEt(r,"message",{signal:s.signal}))WTe(o),yield c}catch{WTe(o)}finally{s.abort(),rC(e,a),n||jg(t),i&&await t}},WTe=({error:t})=>{if(t)throw t};var ZTe=(t,{ipc:e})=>{Object.assign(t,QTe(t,!1,e))},XTe=()=>{let t=JTe,e=!0,r=JTe.channel!==void 0;return{...QTe(t,e,r),getCancelSignal:sbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},QTe=(t,e,r)=>({sendMessage:lC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:GTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:KTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as EEt}from"child_process";import{PassThrough as vEt,Readable as bEt,Writable as TEt,Duplex as wEt}from"stream";var ewe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{w3(n);let a=new EEt;AEt(a,n),Object.assign(a,{readable:REt,writable:xEt,duplex:IEt});let c=Hg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=OEt(c,o,i);return{subprocess:a,promise:l}},AEt=(t,e)=>{let r=Zb(),n=Zb(),i=Zb(),s=Array.from({length:e.length-3},Zb),o=Zb(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},Zb=()=>{let t=new vEt;return t.end(),t},REt=()=>new bEt({read(){}}),xEt=()=>new TEt({write(){}}),IEt=()=>new wEt({read(){},write(){}}),OEt=async(t,e,r)=>Gg(t,e,r);import{createReadStream as twe,createWriteStream as rwe}from"fs";import{Buffer as PEt}from"buffer";import{Readable as Xb,Writable as CEt,Duplex as NEt}from"stream";var iwe=(t,e)=>wC(kEt,t,e,!1),Qb=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ru[t]}.`)},nwe={fileNumber:Qb,generator:P3,asyncGenerator:P3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:NEt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},kEt={input:{...nwe,fileUrl:({value:t})=>({stream:twe(t)}),filePath:({value:{file:t}})=>({stream:twe(t)}),webStream:({value:t})=>({stream:Xb.fromWeb(t)}),iterable:({value:t})=>({stream:Xb.from(t)}),asyncIterable:({value:t})=>({stream:Xb.from(t)}),string:({value:t})=>({stream:Xb.from(t)}),uint8Array:({value:t})=>({stream:Xb.from(PEt.from(t))})},output:{...nwe,fileUrl:({value:t})=>({stream:rwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:rwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:CEt.fromWeb(t)}),iterable:Qb,asyncIterable:Qb,string:Qb,uint8Array:Qb}};import{on as $Et,once as swe}from"events";import{PassThrough as LEt,getDefaultHighWaterMark as DEt}from"stream";import{finished as cwe}from"stream/promises";function Vf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)D3(i);let e=t.some(({readableObjectMode:i})=>i),r=MEt(t,e),n=new L3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var MEt=(t,e)=>{if(t.length===0)return DEt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},L3=class extends LEt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(D3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=UEt(this,this.#e,this.#s);let r=qEt({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(D3(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)}},UEt=async(t,e,r)=>{CC(t,owe);let n=new AbortController;try{await Promise.race([FEt(t,n),jEt(t,e,r,n)])}finally{n.abort(),CC(t,-owe)}},FEt=async(t,{signal:e})=>{try{await cwe(t,{signal:e,cleanup:!0})}catch(r){throw lwe(t,r),r}},jEt=async(t,e,r,{signal:n})=>{for await(let[i]of $Et(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},D3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},qEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{CC(t,awe);let a=new AbortController;try{await Promise.race([BEt(s,e,a),zEt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),VEt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),CC(t,-awe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?M3(t):HEt(t))},BEt=async(t,e,{signal:r})=>{try{await t,r.aborted||M3(e)}catch(n){r.aborted||lwe(e,n)}},zEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await cwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;uwe(o)?i.add(e):dwe(t,o)}},VEt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await swe(t,i,{signal:s}),!t.readable)return swe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},HEt=t=>{t.writable&&t.end()},lwe=(t,e)=>{uwe(e)?M3(t):dwe(t,e)},uwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",M3=t=>{(t.readable||t.writable)&&t.destroy()},dwe=(t,e)=>{t.destroyed||(t.once("error",GEt),t.destroy(e))},GEt=()=>{},CC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},owe=2,awe=1;import{finished as fwe}from"stream/promises";var Yg=(t,e)=>{t.pipe(e),WEt(t,e),YEt(t,e)},WEt=async(t,e)=>{if(!(to(t)||to(e))){try{await fwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}U3(e)}},U3=t=>{t.writable&&t.end()},YEt=async(t,e)=>{if(!(to(t)||to(e))){try{await fwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}F3(t)}},F3=t=>{t.readable&&t.destroy()};var pwe=(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})=>Ts.has(c)))KEt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Ts.has(c)))ZEt({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]:Vf(s);Yg(o,i)}},KEt=(t,e,r,n)=>{r==="output"?Yg(t.stdio[n],e):Yg(e,t.stdio[n]);let i=JEt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},JEt=["stdin","stdout","stderr"],ZEt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;XEt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},XEt=(t,{signal:e})=>{to(t)&&jf(t,QEt,e)},QEt=2;import{addAbortListener as rvt}from"events";var Hf=[];Hf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Hf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Hf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var NC=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"),q3=globalThis,evt=Object.defineProperty.bind(Object),B3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(q3[j3])return q3[j3];evt(q3,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}},kC=class{},tvt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),z3=class extends kC{onExit(){return()=>{}}load(){}unload(){}},V3=class extends kC{#e=H3.platform==="win32"?"SIGINT":"SIGHUP";#r=new B3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Hf)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(!NC(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 Hf)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,Hf.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 NC(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"&&NC(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)}},H3=globalThis.process,{onExit:hwe,load:cur,unload:lur}=tvt(NC(H3)?new V3(H3):new z3);var mwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=hwe(()=>{t.kill()});rvt(n,()=>{i()})};var _we=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=VP(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=nvt(r,n,i),{sourceStream:d,sourceError:f}=svt(t,l),{options:p,fileDescriptors:h}=ia.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},nvt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=ivt(t,e,...r),a=eC(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},ivt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(gwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||$6(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]=$P(r,...n);return{destination:e(gwe)(i,s,o),pipeOptions:o}}if(ia.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}`)},gwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),svt=(t,e)=>{try{return{sourceStream:qg(t,e)}}catch(r){return{sourceError:r}}};var Swe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=ovt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw G3({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},ovt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return F3(t),n;if(e!==void 0)return U3(r),e},G3=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Hg({error:t,command:ywe,escapedCommand:ywe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),ywe="source.pipe(destination)";var Ewe=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 avt}from"stream/promises";var vwe=(t,e,r)=>{let n=$C.has(e)?lvt(t,e):cvt(t,e);return jf(t,dvt,r.signal),jf(e,fvt,r.signal),uvt(e),n},cvt=(t,e)=>{let r=Vf([t]);return Yg(r,e),$C.set(e,r),r},lvt=(t,e)=>{let r=$C.get(e);return r.add(t),r},uvt=async t=>{try{await avt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}$C.delete(t)},$C=new WeakMap,dvt=2,fvt=1;import{aborted as pvt}from"util";var bwe=(t,e)=>t===void 0?[]:[hvt(t,e)],hvt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await pvt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw G3({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var LC=(t,...e)=>{if(_r(e[0]))return LC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=_we(t,...e),i=mvt({...n,destination:r});return i.pipe=LC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},mvt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=gvt(t,i);Swe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=vwe(e,s,d);return await Promise.race([Ewe(u),...bwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},gvt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Tvt}from"timers/promises";import{on as _vt}from"events";import{getDefaultHighWaterMark as yvt}from"stream";var DC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return Svt(e,o),wwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Svt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},W3=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;Evt(e,o,t);let a=t.readableObjectMode&&!s;return wwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},Evt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},wwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=_vt(t,"data",{signal:e.signal,highWaterMark:Twe,highWatermark:Twe});return vvt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},Y3=yvt(!0),Twe=Y3,vvt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=bvt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*zf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Jb(a)}},bvt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[RC(t,r,!e),AC(t,i,!n,{})].filter(Boolean);var Awe=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=wvt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([Avt(t),d]);return}let f=A3(c,r),p=W3({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([Rvt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},wvt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!OC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=W3({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await DTe(a,t,r,s)},Avt=async t=>{await Tvt(),t.readableFlowing===null&&t.resume()},Rvt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await gC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await _C(r,{maxBuffer:s})):await Vg(r,{maxBuffer:s})}catch(a){return Rwe(Dbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},K3=async t=>{try{return await t}catch(e){return Rwe(e)}},Rwe=({bufferedData:t})=>XSe(t)?new Uint8Array(t):t;import{finished as xvt}from"stream/promises";var eT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=Ivt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],xvt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||Cvt(a,e,r,n)}finally{o.abort()}},Ivt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&Ovt(t,r,n),n},Ovt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{Pvt(e,r),n.call(t,...i)}},Pvt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},Cvt=(t,e,r,n)=>{if(!Nvt(t,e,r,n))throw t},Nvt=(t,e,r,n=!0)=>r.propagating?xwe(t)||MC(t):(r.propagating=!0,J3(r,e)===n?xwe(t):MC(t)),J3=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",MC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",xwe=t=>t?.code==="EPIPE";var Iwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>Z3({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),Z3=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=eT(t,e,l);if(J3(l,e)){await u;return}let[d]=await Promise.all([Awe({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 Owe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Vf([t,e].filter(Boolean)):void 0,Pwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>Z3({...kvt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:$vt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),kvt=({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}},$vt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Lvt}from"events";var Cwe=t=>Dg(t,"ipc"),Nwe=(t,e)=>{let r=zP(t);ra({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var kwe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Cwe(s),a=Ac(e,"ipc"),c=Ac(r,"ipc");for await(let l of $3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Mbe(t,i,c),i.push(l)),o&&Nwe(l,s);return i},$we=async(t,e)=>(await Promise.allSettled([t]),e);var Lwe=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=qTe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=Iwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),T=Pwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),I=[],R=kwe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:I,verboseInfo:p}),A=Dvt(m,t,S),O=Mvt(h,S);try{return await Promise.race([Promise.all([{},zTe(v),Promise.all(g),T,R,mbe(t,d),...A,...O]),_,Uvt(t,y),...ube(t,s,f,y),...Cve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...cbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(x){return f.terminationReason??="other",Promise.all([{error:x},v,Promise.all(g.map(b=>K3(b))),K3(T),$we(R,I),Promise.allSettled(A),Promise.allSettled(O)])}},Dvt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:eT(n,i,r)),Mvt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>io(s,{checkOpen:!1})&&!to(s)).map(({type:i,value:s,stream:o=s})=>eT(o,n,e,{isSameDirection:Ts.has(i),stopOnExit:i==="native"}))),Uvt=async(t,{signal:e})=>{let[r]=await Lvt(t,"error",{signal:e});throw r};var Dwe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),tT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=na();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Kg=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 Fvt}from"stream";import{callbackify as jvt}from"util";import{finished as Mwe}from"stream/promises";var X3=async t=>{if(t!==void 0)try{await Q3(t)}catch{}},Uwe=async t=>{if(t!==void 0)try{await eW(t)}catch{}},Q3=async t=>{await Mwe(t,{cleanup:!0,readable:!1,writable:!0})},eW=async t=>{await Mwe(t,{cleanup:!0,readable:!0,writable:!1})},UC=async(t,e)=>{if(await t,e)throw e},FC=(t,e,r)=>{r&&!MC(r)?t.destroy(r):e&&t.destroy()};var Fwe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||ji.has(r),{subprocessStdout:a,waitReadableDestroy:c}=tW(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=rW(a,o),{read:f,onStdoutDataDone:p}=nW({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Fvt({read:f,destroy:jvt(sW.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return iW({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},tW=(t,e,r)=>{let n=qg(t,e),i=tT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},rW=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:Y3},nW=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=na(),o=DC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){qvt(this,o,s)},onStdoutDataDone:s}},qvt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},iW=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await eW(t),await n,await X3(i),await e,r.readable&&r.push(null)}catch(s){await X3(i),jwe(r,s)}},sW=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Kg(r,e)&&(jwe(t,n),await UC(e,n))},jwe=(t,e)=>{FC(t,t.readable,e)};import{Writable as Bvt}from"stream";import{callbackify as qwe}from"util";var Bwe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=oW(t,r,e),o=new Bvt({...aW(n,t,i),destroy:qwe(lW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return cW(n,o),o},oW=(t,e,r)=>{let n=eC(t,e),i=tT(r,n,"writableFinal"),s=tT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},aW=(t,e,r)=>({write:zvt.bind(void 0,t),final:qwe(Vvt.bind(void 0,t,e,r))}),zvt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Vvt=async(t,e,r)=>{await Kg(r,e)&&(t.writable&&t.end(),await e)},cW=async(t,e,r)=>{try{await Q3(t),e.writable&&e.end()}catch(n){await Uwe(r),zwe(e,n)}},lW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Kg(r,e),await Kg(n,e)&&(zwe(t,i),await UC(e,i))},zwe=(t,e)=>{FC(t,t.writable,e)};import{Duplex as Hvt}from"stream";import{callbackify as Gvt}from"util";var Vwe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ji.has(r),{subprocessStdout:c,waitReadableDestroy:l}=tW(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=oW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=rW(c,a),{read:_,onStdoutDataDone:y}=nW({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Hvt({read:_,...aW(u,t,d),destroy:Gvt(Wvt.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 iW({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),cW(u,v,c),v},Wvt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([sW({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),lW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var uW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||ji.has(e),o=qg(t,r),a=DC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return Yvt(a,o,t)},Yvt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Hwe=(t,{encoding:e})=>{let r=Dwe();t.readable=Fwe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Bwe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Vwe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=uW.bind(void 0,t,e),t[Symbol.asyncIterator]=uW.bind(void 0,t,e,{})};var Gwe=(t,e)=>{for(let[r,n]of Jvt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Kvt=(async()=>{})().constructor.prototype,Jvt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Kvt,t)]);var Wwe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=Qvt(t,e,r),{subprocess:f,promise:p}=tbt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=LC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Gwe(f,p),ia.set(f,{options:u,fileDescriptors:d}),f},Qvt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=HP(t,e,r),{file:a,commandArguments:c,options:l}=dC(t,e,r),u=ebt(l),d=iwe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},ebt=({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}},tbt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=Xvt(...fC(t,e,r))}catch(h){return ewe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;Zvt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];pwe(c,a,l),mwe(c,r,l);let d={},f=na();c.kill=Ove.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Owe(c,r),Hwe(c,r),ZTe(c,r);let p=rbt({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}},rbt=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 Lwe({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)=>xc(g,e,T)),v=xc(m,e,"all"),S=nbt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Gg(S,n,e)},nbt=({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?Kb({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 sa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):EC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var jC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,ibt(n,t[n],i)]));return{...t,...r}},ibt=(t,e,r)=>sbt.has(t)&&_r(e)&&_r(r)?{...e,...r}:r,sbt=new Set(["env",...j6]);var xu=(t,e,r,n)=>{let i=(o,a,c)=>xu(o,a,r,c),s=(...o)=>obt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},obt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(_r(s))return i(t,jC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=abt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?HTe(a,c,l):Wwe(a,c,l,i)},abt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=iEe(e)?sEe(e,r):[e,...r],[o,a,c]=$P(...s),l=jC(jC(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 Ywe=({file:t,commandArguments:e})=>Jwe(t,e),Kwe=({file:t,commandArguments:e})=>({...Jwe(t,e),isSync:!0}),Jwe=(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]=cbt(t);return{file:r,commandArguments:n}},cbt=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(lbt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},lbt=/ +/g;var Zwe=(t,e,r)=>{t.sync=e(ubt,r),t.s=t.sync},Xwe=({options:t})=>Qwe(t),ubt=({options:t})=>({...Qwe(t),isSync:!0}),Qwe=t=>({options:{...dbt(t),...t}}),dbt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},e0e={preferLocal:!0};var t0e=xu(()=>({})),Xfr=xu(()=>({isSync:!0})),r0e=xu(Ywe),Qfr=xu(Kwe),epr=xu(fbe),tpr=xu(Xwe,{},e0e,Zwe),{sendMessage:rpr,getOneMessage:npr,getEachMessage:ipr,getCancelSignal:spr}=XTe();import{Transform as fbt}from"stream";var pbt=["NETLIFY_AI_GATEWAY_KEY"];function hbt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...pbt])]}function mbt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function gbt(){let e=hbt().map(r=>process.env[r]).filter(r=>!(!r||mbt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function ws(t){if(typeof t!="string")return t;let e=gbt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(_bt(n),"g");r=r.replace(i,"******")}),r}function _bt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var rT=class extends fbt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=ws(i);n(null,s)}},qC=Symbol("maskedWrite");function n0e(){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"?ws(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"?ws(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[qC]=!0,process.stderr.write=r}}}var i0e=!1,s0e=()=>{i0e=!0},yi=()=>i0e;var nT=null,o0e=t=>(nT&&nT.destroy(),nT=new Ic({totalAllowedTime:t}),nT),a0e=()=>nT;var Ic=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&&yi())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 NP({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{ye.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 c0e={name:"@netlify/agent-runner-cli",type:"module",version:"1.158.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration: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.3","@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 vbt=Sbt(import.meta.url),bbt=Oc.dirname(vbt),Tbt=Ebt(import.meta.url),Jg=Se("shell"),dW=new Set,l0e={preferLocal:!0},pn=(t,e,r)=>{let[n,i]=wbt(e,r),s={...l0e,...i},o=t0e(t,n,s);d0e(o,s),h0e(o);let a=r?.idleTimeout;return a&&a>0&&p0e(o,a),o},u0e=(t,e)=>{let r={...l0e,...e},n=r0e(t,r);return d0e(n,r),h0e(n),e?.idleTimeout&&e.idleTimeout>0&&p0e(n,e.idleTimeout),n},wbt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},d0e=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Pc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new rT).pipe(Pc.stdout),t.stderr?.pipe(new rT).pipe(Pc.stderr);return}t.stdout?.pipe(Pc.stdout),t.stderr?.pipe(Pc.stderr)},fW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Pc.kill(-t.pid,e),Jg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Jg.error("Error killing process:",r),!1}},f0e=t=>fW(t,"SIGKILL"),p0e=(t,e)=>{let r=null,n=()=>{Jg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),fW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Jg.log(`Force killing idle process ${t.pid}`),f0e(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)},h0e=t=>{dW.add(t);let e=a0e();if(e){let r=e.onTimesUp(()=>{Jg.log(`Global timer expired, killing process ${t.pid}`),fW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Jg.log(`Force killing process ${t.pid} after timeout`),f0e(t))},5e3)});t.on("exit",()=>{dW.delete(t),r()}),t.on("error",()=>{dW.delete(t),r()})}};function aa(t,e){if(!Pc.env.NETLIFY_LOCAL_MODE)try{let i=Tbt.resolve(c0e.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(BC.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Pc.env.NODE_PATH){let i=Oc.join(Pc.env.NODE_PATH,".bin",e);if(BC.existsSync(i))return i}let r=Oc.join(t,"node_modules",".bin",e);if(BC.existsSync(r))return r;let n=Oc.join(bbt,"..","node_modules",".bin",e);if(BC.existsSync(n))return n}import dD from"process";import{fileURLToPath as QLt}from"url";import{createRequire as eDt}from"module";import fD from"path";var Abt="__netlify__getTracer",Rbt="__netlify__shutdownTracers",gt=(t,e)=>globalThis[Abt]?.(t,e),m0e=async()=>globalThis[Rbt]?.();function Gf(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 GLt}from"timers/promises";Ne();import xwt from"process";Ne();var Jbt=(t,e)=>{e.recordException(t),e.setStatus({code:Pn.ERROR})};var kc=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}=cAe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>lAe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=cAe(r,n,i),c=this._tracer.startSpan(e,s,o);return lAe(c,s,a)}};function cAe(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??jt.active(),{opts:n,ctx:i,fn:s}}function lAe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:Jbt,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)}}Ne();var n_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var GW=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=SAe(e),n._asyncAttributesPending=e.filter(([i,s])=>n_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(n_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=SAe(this._rawAttributes),this._schemaUrl=Zbt(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,n_(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&ae.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(n_(n)){ae.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=Xbt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function WW(t,e){return GW.FromAttributeList(Object.entries(t),e)}function SAe(t){return t.map(([e,r])=>n_(r)?[e,r.catch(n=>{ae.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function Zbt(t){if(typeof t=="string"||t===void 0)return t;ae.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function Xbt(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;ae.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Ne();var mT=class{emit(e){}enabled(){return!1}},EAe=new mT;var gT=Symbol.for("io.opentelemetry.js.api.logs"),i_=globalThis;function vAe(t,e,r){return n=>n===t?e:r}var YW=1;var KW=class{getLogger(e,r,n){return new mT}},dN=new KW;var fN=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):EAe}};var _T=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new fN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:dN}_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 pN=class t{constructor(){this._proxyLoggerProvider=new _T}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return i_[gT]?this.getLoggerProvider():(i_[gT]=vAe(YW,e,dN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=i_[gT])===null||e===void 0?void 0:e.call(i_,YW))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete i_[gT],this._proxyLoggerProvider=new _T}};var bAe=pN.getInstance();function TAe(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 wAe(t){t.forEach(e=>e.disable())}function JW(t){let e=t.tracerProvider||xt.getTracerProvider(),r=t.meterProvider||hT.getMeterProvider(),n=t.loggerProvider||bAe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return TAe(i,e,r,n),()=>{wAe(i)}}Ne();var Qbt=qr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function AAe(t){return t.getValue(Qbt)===!0}var s_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(s_||(s_={}));Ne();var ZW="[_0-9a-z-*/]",eTt=`[a-z]${ZW}{0,255}`,tTt=`[a-z0-9]${ZW}{0,240}@[a-z]${ZW}{0,13}`,rTt=new RegExp(`^(?:${eTt}|${tTt})$`),nTt=/^[ -~]{0,255}[!-~]$/,iTt=/,|=/;function XW(t){return rTt.test(t)}function QW(t){return nTt.test(t)&&!iTt.test(t)}var sTt=32,RAe=512,xAe=",",IAe="=",hN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!XW(e)||!QW(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>RAe)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=xAe+e),e=`${n[0]}${IAe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(xAe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(IAe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!XW(a)||!QW(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>RAe)&&(r.set(a,c),n=l,r.size>=sTt))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 mN="traceparent",gN="tracestate",oTt="00",aTt="(?!ff)[\\da-f]{2}",cTt="(?![0]{32})[\\da-f]{32}",lTt="(?![0]{16})[\\da-f]{16}",uTt="[\\da-f]{2}",dTt=new RegExp(`^\\s?(${aTt})-(${cTt})-(${lTt})-(${uTt})(-.*)?\\s?$`);function OAe(t){let e=dTt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Pu=class{inject(e,r,n){let i=xt.getSpanContext(e);if(!i||AAe(e)||!Si(i))return;let s=`${oTt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||dr.NONE).toString(16)}`;n.set(r,mN,s),i.traceState&&n.set(r,gN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,mN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=OAe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,gN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new hN(typeof c=="string"?c:void 0)}return xt.setSpanContext(e,o)}fields(){return[mN,gN]}};var _N=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 yT=class{_isCalled=!1;_deferred=new _N;_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 ck=Fn(UY(),1);Ne();var dIe=t=>{throw TypeError(t)},BY=(t,e,r)=>e.has(t)||dIe("Cannot "+r),ak=(t,e,r)=>(BY(t,e,"read from private field"),r?r.call(t):e.get(t)),FY=(t,e,r)=>e.has(t)?dIe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),cIe=(t,e,r,n)=>(BY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),Rwt=(t,e,r)=>(BY(t,e,"access private method"),r),lIe="__netlify__getTracer",Iwt="__netlify__shutdownTracers",Owt="__nfOTLPTrace",kT,$T,qY,fIe,Pwt=class{constructor(){FY(this,qY),FY(this,kT),FY(this,$T),cIe(this,kT,new yT(Rwt(this,qY,fIe),this)),cIe(this,$T,ae.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(ak(this,$T).debug(`export ${t.length.toString()} spans`),ak(this,kT).isCalled){e({code:s_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(Owt,JSON.stringify(Cwt(t))),e({code:s_.SUCCESS})}shutdown(){return ak(this,kT).call()}};kT=new WeakMap;$T=new WeakMap;qY=new WeakSet;fIe=function(){return ak(this,$T).debug("Shutting down"),Promise.resolve()};function Cwt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:ok(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||so.SERVER,startTimeUnixNano:jY(e.startTime),endTimeUnixNano:jY(e.endTime),attributes:ok(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:jY(n.time),attributes:ok(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:ok(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function ok(t){return Object.keys(t).map(e=>pIe(e,t[e]))}function pIe(t,e){return{key:t,value:hIe(e)}}function hIe(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(hIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>pIe(r,n))}}:{}}function jY(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var uIe={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"}},mIe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,lIe))return;let e=xwt.version.slice(1),r=WW({"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??[Nwt()],i=new ck.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Pu});let s=t.instrumentations??[];JW({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,lIe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new kc(xt.getTracer(a,c)):new kc(xt.getTracer(uIe.name,uIe.version))}}),Object.defineProperty(globalThis,Iwt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},Nwt=()=>new ck.SimpleSpanProcessor(new Pwt);Ne();var LT=Fn(UY(),1);Ne();import*as lk from"diagnostics_channel";var gIe=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?Pn.ERROR:Pn.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 kc?t:new kc(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){lk.subscribe(t,e);let r=()=>lk.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:so.CLIENT},jt.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:Pn.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 jDe=Fn(UDe(),1);var lD=Se("tracing"),FDe=8e3,WLt=5e3,Qw=async(t=WLt)=>{try{await Promise.race([m0e(),GLt(t)])}catch(e){lD.warn("Failed to flush tracers on shutdown",e)}},qDe=async(t,e,r)=>{if(!gt()){let n=[new LT.SimpleSpanProcessor(new zJ),new LT.SimpleSpanProcessor(new jDe.OTLPTraceExporter({url:r.exporterUrl}))];await mIe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new gIe({skipHeaders:!0})]})}return r.traceparent?(Jn.setGlobalPropagator(new Pu),Jn.extract(jt.active(),{traceparent:r.traceparent,isRemote:!0})):jt.active()};function Ht(t,e,r){return lD.log(`\u23F3 TRACE: ${e} starting...`),Gf(t,e,r)}var zJ=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(", ")}]`:"";lD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&lD.log(` \u274C Error: ${e.status.message}`)}};function VJ(){return We().captureLlmContentEnabled}function BDe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function uD(t,e,r){let n={role:t,parts:[{type:"text",content:ws(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var YLt=new Set([ee.Task,ee.RunCommand,ee.Explore,ee.FileRead,ee.FileWrite,ee.Notebook,ee.Web,ee.Todo,ee.Skill,ee.Tool,ee.Memorize,ee.Deployment,ee.SiteGeneration]);function zDe(t,e,r,n){if(!t.length)return;let i=gt();if(!i)return;let s=VJ(),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&&YLt.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>FDe?`${a.message.slice(0,FDe)}\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":ws(_)}:{"gen_ai.output.messages":uD("assistant",_)}:{}}}).end(u)})}import{readdir as KLt,rm as JLt}from"fs/promises";import{join as ZLt}from"path";async function VDe(t,e=[]){let n=(await KLt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>JLt(ZLt(t,i),{recursive:!0,force:!0})))}var XLt=700,HDe=t=>{if(t.mode!=="create")return!1;if(t.accountType===Al)return!0;let{enforcedAICreditsRemaining:e}=t;return e!=null&&e<=XLt};var tDt=fD.dirname(QLt(import.meta.url)),GDe=eDt(import.meta.url),rDt=fD.resolve(tDt,"scripts/scaffold.js"),nDt="scripts/scaffold.js",iDt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,HJ=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},sDt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),oDt=t=>{let e=HJ(t);return e==="node"||e.endsWith("/node")},nl=t=>{if(typeof t!="string")return!1;let e=t.match(iDt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&sDt(HJ(e[r]));)r+=1;if(r>=e.length||!oDt(e[r]))return!1;let n=e[r+1];return n?HJ(n).includes(nDt):!1},gy=Se("create_stage"),WDe="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.",aDt=`${WDe}
|
|
591
591
|
|
|
592
592
|
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.`,cDt=`${WDe}
|
|
593
593
|
|
|
@@ -701,7 +701,7 @@ ${o.trim()}
|
|
|
701
701
|
\`\`\``),{title:n,message:o,category:i}};import nh from"fs/promises";import O0 from"os";import Td from"path";import pS from"process";import i1t from"readline";import x0 from"fs/promises";import e1t from"os";import VD from"path";var a1e=Se("gemini_session"),t1t=t=>t instanceof Error?t.message:String(t),r1t=t=>{let e=!1;if(Array.isArray(t?.toolCalls))for(let n of t.toolCalls)n&&typeof n=="object"&&"id"in n&&(delete n.id,e=!0);let r=typeof t?.content=="object"?t.content?.parts:void 0;if(Array.isArray(r))for(let n of r)n?.functionCall&&typeof n.functionCall=="object"&&"id"in n.functionCall&&(delete n.functionCall.id,e=!0);return e},n1t=async t=>{let r=(await x0.readFile(t,"utf8")).split(`
|
|
702
702
|
`),n=!1,i=r.map(s=>{if(!s.trim())return s;let o;try{o=JSON.parse(s)}catch{return s}return r1t(o)?(n=!0,JSON.stringify(o)):s});return n&&await x0.writeFile(t,i.join(`
|
|
703
703
|
`),"utf8"),n},DZ=async(t,e=VD.join(e1t.homedir(),".gemini"))=>{let r=VD.join(e,"tmp"),n=t.slice(0,8),i;try{i=await x0.readdir(r)}catch{return}for(let s of i){let o=VD.join(r,s,"chats"),a;try{a=await x0.readdir(o)}catch{continue}for(let c of a){if(!c.endsWith(".jsonl")||!c.includes(n))continue;let l=VD.join(o,c);try{let u=(await x0.readFile(l,"utf8")).split(`
|
|
704
|
-
`,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},I0=async t=>{try{let e=await DZ(t);return e?(await n1t(e),!0):(a1e.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return a1e.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:t1t(e)}),!1}};var MZ={list_directory:{name:"List directory",category:ee.Explore},read_file:{name:"Read file",category:ee.FileRead},write_file:{name:"Edit file",category:ee.FileWrite},glob:{name:"Find files",category:ee.Explore},search_file_content:{name:"Search files",category:ee.Explore},replace:{name:"Edit file",category:ee.FileWrite},run_shell_command:{name:"Run command",category:ee.RunCommand},web_fetch:{name:"Fetch web",category:ee.Web},web_search:{name:"Search web",category:ee.Web},google_web_search:{name:"Search web",category:ee.Web},update_topic:{name:"Update topic",category:ee.Plan},read_many_files:{name:"Read files",category:ee.FileRead},save_memory:{name:"Memorize",category:ee.Memorize},activate_skill:{name:"Use Skill",category:ee.Skill},grep_search:{name:"Search files",category:ee.Explore}};var Sn=Se("runner_gemini"),HD="Gemini CLI",fS="gemini-3.
|
|
704
|
+
`,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},I0=async t=>{try{let e=await DZ(t);return e?(await n1t(e),!0):(a1e.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return a1e.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:t1t(e)}),!1}};var MZ={list_directory:{name:"List directory",category:ee.Explore},read_file:{name:"Read file",category:ee.FileRead},write_file:{name:"Edit file",category:ee.FileWrite},glob:{name:"Find files",category:ee.Explore},search_file_content:{name:"Search files",category:ee.Explore},replace:{name:"Edit file",category:ee.FileWrite},run_shell_command:{name:"Run command",category:ee.RunCommand},web_fetch:{name:"Fetch web",category:ee.Web},web_search:{name:"Search web",category:ee.Web},google_web_search:{name:"Search web",category:ee.Web},update_topic:{name:"Update topic",category:ee.Plan},read_many_files:{name:"Read files",category:ee.FileRead},save_memory:{name:"Memorize",category:ee.Memorize},activate_skill:{name:"Use Skill",category:ee.Skill},grep_search:{name:"Search files",category:ee.Explore}};var Sn=Se("runner_gemini"),HD="Gemini CLI",fS="gemini-3.7-flash",s1t=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(Sn.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(Sn.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(Sn.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),o1t={low:"LOW",medium:"MEDIUM",high:"HIGH"},c1e=t=>!!t&&t.startsWith("gemini-3"),a1t=(t,{model:e,effort:r})=>{let n=t.modelConfigs?.customAliases??{};!r||!c1e(e)?(r&&Sn.log(`Model '${e}' does not support thinkingLevel; running at the model default effort`),delete n[e]):n[e]={extends:"chat-base-3",modelConfig:{model:e,generateContentConfig:{thinkingConfig:{thinkingLevel:o1t[r]}}}},Object.keys(n).length!==0&&(t.modelConfigs={...t.modelConfigs,customAliases:n})},c1t=async({model:t,effort:e}={})=>{let r=Td.join(O0.homedir(),".gemini"),n=Td.join(r,"settings.json");try{await nh.mkdir(r,{recursive:!0});let i={};try{let s=await nh.readFile(n,"utf-8");i=JSON.parse(s)}catch{Sn.log("Creating new Gemini CLI settings file")}i.general||(i.general={}),i.general.previewFeatures||(i.general.previewFeatures=!0),i.model||(i.model={}),i.model.compressionThreshold!==.3&&(i.model.compressionThreshold=.3),i.skills||(i.skills={}),i.skills.enabled=!0,i.context||(i.context={}),i.context.fileName=["GEMINI.md","AGENTS.md"],a1t(i,{model:t,effort:e}),We().questionsEnabled&&(i.mcpServers={...i.mcpServers,...Rz({trust:!0})}),await nh.writeFile(n,JSON.stringify(i,null,2),"utf-8"),Sn.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(i){Sn.error("Failed to ensure Gemini CLI settings",{error:i.message}),ye.inc("context.degraded",1,{component:"agent_config"})}},l1t=t=>{t?.category===ee.Skill&&t.type&&Ka(Sn,Do(t.type))},u1t=({aiGateway:t})=>{if(t){let{token:e,url:r}=t;if(!e||!r)throw new Error("No token or url provided from AI Gateway");pS.env.GEMINI_API_KEY=e,pS.env.GOOGLE_GEMINI_BASE_URL=r}else if(!pS.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided")},d1t=async({aiGateway:t,config:e,model:r})=>{let n=r;if(t){let i=e.modelVersionOverrides?.gemini?.[e.accountType];if(i){if(!await t.isModelAvailableForProvider("gemini",i))throw new Error(`Model override '${i}' is not available for gemini provider`);n=i}if(!n)!!fS&&await t.isModelAvailableForProvider("gemini",fS)?(n=fS,Sn.log(`Using default model: ${fS}`)):fS&&Sn.log(`Default model ${fS} is not available, proceeding without model specification`);else if(!i&&!await t.isModelAvailableForProvider("gemini",n))throw new Error(`Model '${n}' is not available for gemini provider`)}return n},f1t=async({config:t,cliPath:e})=>{let r=[`[[rule]]
|
|
705
705
|
toolName = "web_fetch"
|
|
706
706
|
decision = "allow"
|
|
707
707
|
priority = 10
|
package/dist/index.js
CHANGED
|
@@ -98,7 +98,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
98
98
|
`,LF:`
|
|
99
99
|
`,concatBytes:zL},h$e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},m$e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:h$e};import{Buffer as g$e}from"buffer";var lre=(t,e)=>t?void 0:_$e.bind(void 0,e),_$e=function*(t,e){if(typeof e!="string"&&!jt(e)&&!g$e.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},ure=(t,e)=>t?y$e.bind(void 0,e):S$e.bind(void 0,e),y$e=function*(t,e){dre(t,e),yield e},S$e=function*(t,e){if(dre(t,e),typeof e!="string"&&!jt(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},dre=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
100
100
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
101
|
-
if (condition) { yield value; }`)};import{Buffer as E$e}from"buffer";import{StringDecoder as v$e}from"string_decoder";var Ex=(t,e,r)=>{if(r)return;if(t)return{transform:T$e.bind(void 0,new TextEncoder)};let n=new v$e(e);return{transform:b$e.bind(void 0,n),final:A$e.bind(void 0,n)}},T$e=function*(t,e){E$e.isBuffer(e)?yield us(e):typeof e=="string"?yield t.encode(e):yield e},b$e=function*(t,e){yield jt(e)?t.write(e):e},A$e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as fre}from"util";var qL=fre(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),vx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=w$e}=e[r];for await(let i of n(t))yield*vx(i,e,r+1)},pre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*x$e(r,Number(e),t)},x$e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*vx(n,r,e+1)},hre=fre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),w$e=function*(t){yield t};var VL=(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=>[...Pl(r,t,0)]),...P_(t)],Pl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=C$e}=e[r];for(let i of n(t))yield*Pl(i,e,r+1)},P_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*R$e(r,Number(e),t)},R$e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Pl(n,r,e+1)},C$e=function*(t){yield t};var HL=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=_re(t,s,o),l=Il(e),u=Il(r),d=l?qL.bind(void 0,vx,a):VL.bind(void 0,Pl),f=l||u?qL.bind(void 0,pre,a):VL.bind(void 0,P_),p=l||u?hre.bind(void 0,a):void 0;return{stream:new I$e({writableObjectMode:n,writableHighWaterMark:gre(n),readableObjectMode:i,readableHighWaterMark:gre(i),transform(m,y,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},Tx=(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=_re(s,r,a);t=mre(c,t)}return t},_re=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:lre(n,a)},Ex(r,s,n),Sx(r,o,n,c),{transform:t,final:e},{transform:ure(i,a)},cre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var yre=(t,e)=>{for(let r of P$e(t))O$e(t,r,e)},P$e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),O$e=(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 ${Oa[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>N$e(a,n));r.input=E_(s)},N$e=(t,e)=>{let r=Tx(t,e,"utf8",!0);return k$e(r),E_(r)},k$e=t=>{let e=t.find(r=>typeof r!="string"&&!jt(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 $$e,appendFileSync as U$e}from"fs";var bx=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&df(r,n)&&!yn.has(e)&&M$e(n)&&(t.some(({type:i,value:o})=>i==="native"&&D$e.has(o))||t.every(({type:i})=>Wn.has(i))),M$e=t=>t===1||t===2,D$e=new Set(["pipe","overlapped"]),Sre=async(t,e,r,n)=>{for await(let i of t)L$e(e)||vre(i,r,n)},Ere=(t,e,r)=>{for(let n of t)vre(n,e,r)},L$e=t=>t._readableState.pipes.length>0,vre=(t,e,r)=>{let n=$A(t);lo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Tre=({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)=>F$e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},F$e=({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=bte(t,o,d),p=us(f),{stdioItems:h,objectMode:m}=e[r],y=B$e([p],h,c,n),{serializedResult:S,finalResult:b=S}=j$e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});z$e({serializedResult:S,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?b:void 0;try{return n.error===void 0&&G$e(S,h,i),x}catch(E){return n.error=E,x}},B$e=(t,e,r,n)=>{try{return Tx(t,e,r,!1)}catch(i){return n.error=i,t}},j$e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:E_(t)};let s=$Q(t,r);return n[o]?{serializedResult:s,finalResult:GL(s,!i[o],e)}:{serializedResult:s}},z$e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!bx({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=GL(t,!1,s);try{Ere(a,e,n)}catch(c){r.error??=c}},G$e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>_x.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?U$e(n,t):(r.add(o),$$e(n,t))}};var bre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,ps(e,r,"all")]:Array.isArray(e)?[ps(t,r,"all"),...e]:jt(t)&&jt(e)?XD([t,e]):`${t}${e}`};import{once as WL}from"events";var Are=async(t,e)=>{let[r,n]=await q$e(t);return e.isForcefullyTerminated??=!1,[r,n]},q$e=async t=>{let[e,r]=await Promise.allSettled([WL(t,"spawn"),WL(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?xre(t):r.value},xre=async t=>{try{return await WL(t,"exit")}catch{return xre(t)}},wre=async t=>{let[e,r]=await t;if(!V$e(e,r)&&YL(e,r))throw new xi;return[e,r]},V$e=(t,e)=>t===void 0&&e===void 0,YL=(t,e)=>t!==0||e!==null;var Rre=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=H$e(t,e,r),s=o?.code==="ETIMEDOUT",a=Tte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},H$e=(t,e,r)=>t!==void 0?t:YL(e,r)?new xi:void 0;var Cre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=Y$e(t,e,r),d=J$e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return vf(d,c,l)},Y$e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=FA(t,e,r),a=K$e(r),{file:c,commandArguments:l,options:u}=ox(t,e,a);Z$e(u);let d=ire(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},K$e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Z$e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Ax("ipcInput"),t&&Ax("ipc: true"),r&&Ax("detached: true"),n&&Ax("cancelSignal")},Ax=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},J$e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=X$e({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}=Rre(c,r),{output:h,error:m=l}=Tre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,x)=>ps(b,r,x)),S=ps(bre(h,r),r,"all");return e1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:S,options:r,command:n,escapedCommand:i,startTime:a})},X$e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{yre(o,r);let a=Q$e(r);return W$e(...sx(t,e,a))}catch(a){return Ef({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},Q$e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:px(e)}),e1e=({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?hx({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):I_({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 jUe}from"events";import{spawn as zUe}from"child_process";import kre from"process";import{once as KL,on as t1e}from"events";var Ire=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(hf({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:QA(t)}),r1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),r1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{KA(e,i);let o=Pa(t,e,r),s=new AbortController;try{return await Promise.race([n1e(o,n,s),i1e(o,r,s),o1e(o,r,s)])}catch(a){throw mf(t),a}finally{s.abort(),ZA(e,i)}},n1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await KL(t,"message",{signal:r});return n}for await(let[n]of t1e(t,"message",{signal:r}))if(e(n))return n},i1e=async(t,e,{signal:r})=>{await KL(t,"disconnect",{signal:r}),mee(e)},o1e=async(t,e,{signal:r})=>{let[n]=await KL(t,"strict:error",{signal:r});throw HA(n,e)};import{once as Ore,on as s1e}from"events";var Nre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>ZL({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),ZL=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{hf({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:QA(t)}),KA(e,o);let s=Pa(t,e,r),a=new AbortController,c={};return a1e(t,s,a),c1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),l1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},a1e=async(t,e,r)=>{try{await Ore(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},c1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Ore(t,"strict:error",{signal:r.signal});n.error=HA(i,e),r.abort()}catch{}},l1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of s1e(r,"message",{signal:o.signal}))Pre(s),yield c}catch{Pre(s)}finally{o.abort(),ZA(e,a),n||mf(t),i&&await t}},Pre=({error:t})=>{if(t)throw t};var Mre=(t,{ipc:e})=>{Object.assign(t,Lre(t,!1,e))},Dre=()=>{let t=kre,e=!0,r=kre.channel!==void 0;return{...Lre(t,e,r),getCancelSignal:zee.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Lre=(t,e,r)=>({sendMessage:nx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Ire.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Nre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as u1e}from"child_process";import{PassThrough as d1e,Readable as f1e,Writable as p1e,Duplex as h1e}from"stream";var $re=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{BL(n);let a=new u1e;m1e(a,n),Object.assign(a,{readable:g1e,writable:_1e,duplex:y1e});let c=Ef({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=S1e(c,s,i);return{subprocess:a,promise:l}},m1e=(t,e)=>{let r=O_(),n=O_(),i=O_(),o=Array.from({length:e.length-3},O_),s=O_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},O_=()=>{let t=new d1e;return t.end(),t},g1e=()=>new f1e({read(){}}),_1e=()=>new p1e({write(){}}),y1e=()=>new h1e({read(){},write(){}}),S1e=async(t,e,r)=>vf(t,e,r);import{createReadStream as Ure,createWriteStream as Fre}from"fs";import{Buffer as E1e}from"buffer";import{Readable as N_,Writable as v1e,Duplex as T1e}from"stream";var jre=(t,e)=>yx(b1e,t,e,!1),k_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Oa[t]}.`)},Bre={fileNumber:k_,generator:HL,asyncGenerator:HL,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:T1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},b1e={input:{...Bre,fileUrl:({value:t})=>({stream:Ure(t)}),filePath:({value:{file:t}})=>({stream:Ure(t)}),webStream:({value:t})=>({stream:N_.fromWeb(t)}),iterable:({value:t})=>({stream:N_.from(t)}),asyncIterable:({value:t})=>({stream:N_.from(t)}),string:({value:t})=>({stream:N_.from(t)}),uint8Array:({value:t})=>({stream:N_.from(E1e.from(t))})},output:{...Bre,fileUrl:({value:t})=>({stream:Fre(t)}),filePath:({value:{file:t,append:e}})=>({stream:Fre(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:v1e.fromWeb(t)}),iterable:k_,asyncIterable:k_,string:k_,uint8Array:k_}};import{on as A1e,once as zre}from"events";import{PassThrough as x1e,getDefaultHighWaterMark as w1e}from"stream";import{finished as Vre}from"stream/promises";function Ol(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)XL(i);let e=t.some(({readableObjectMode:i})=>i),r=R1e(t,e),n=new JL({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var R1e=(t,e)=>{if(t.length===0)return w1e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},JL=class extends x1e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(XL(e),this.#e.has(e))return;this.#e.add(e),this.#n??=C1e(this,this.#e,this.#o);let r=O1e({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(XL(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)}},C1e=async(t,e,r)=>{xx(t,Gre);let n=new AbortController;try{await Promise.race([I1e(t,n),P1e(t,e,r,n)])}finally{n.abort(),xx(t,-Gre)}},I1e=async(t,{signal:e})=>{try{await Vre(t,{signal:e,cleanup:!0})}catch(r){throw Hre(t,r),r}},P1e=async(t,e,r,{signal:n})=>{for await(let[i]of A1e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},XL=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},O1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{xx(t,qre);let a=new AbortController;try{await Promise.race([N1e(o,e,a),k1e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),M1e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),xx(t,-qre)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?QL(t):D1e(t))},N1e=async(t,e,{signal:r})=>{try{await t,r.aborted||QL(e)}catch(n){r.aborted||Hre(e,n)}},k1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await Vre(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;Wre(s)?i.add(e):Yre(t,s)}},M1e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await zre(t,i,{signal:o}),!t.readable)return zre(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},D1e=t=>{t.writable&&t.end()},Hre=(t,e)=>{Wre(e)?QL(t):Yre(t,e)},Wre=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",QL=t=>{(t.readable||t.writable)&&t.destroy()},Yre=(t,e)=>{t.destroyed||(t.once("error",L1e),t.destroy(e))},L1e=()=>{},xx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Gre=2,qre=1;import{finished as Kre}from"stream/promises";var bf=(t,e)=>{t.pipe(e),$1e(t,e),U1e(t,e)},$1e=async(t,e)=>{if(!(Ai(t)||Ai(e))){try{await Kre(t,{cleanup:!0,readable:!0,writable:!1})}catch{}e$(e)}},e$=t=>{t.writable&&t.end()},U1e=async(t,e)=>{if(!(Ai(t)||Ai(e))){try{await Kre(e,{cleanup:!0,readable:!1,writable:!0})}catch{}t$(t)}},t$=t=>{t.readable&&t.destroy()};var Zre=(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})=>Wn.has(c)))F1e(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Wn.has(c)))j1e({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]:Ol(o);bf(s,i)}},F1e=(t,e,r,n)=>{r==="output"?bf(t.stdio[n],e):bf(e,t.stdio[n]);let i=B1e[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},B1e=["stdin","stdout","stderr"],j1e=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;z1e(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},z1e=(t,{signal:e})=>{Ai(t)&&Rl(t,G1e,e)},G1e=2;import{addAbortListener as H1e}from"events";var Nl=[];Nl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Nl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Nl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var wx=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",r$=Symbol.for("signal-exit emitter"),n$=globalThis,q1e=Object.defineProperty.bind(Object),i$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(n$[r$])return n$[r$];q1e(n$,r$,{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}},Rx=class{},V1e=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),o$=class extends Rx{onExit(){return()=>{}}load(){}unload(){}},s$=class extends Rx{#e=a$.platform==="win32"?"SIGINT":"SIGHUP";#r=new i$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Nl)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(!wx(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 Nl)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,Nl.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 wx(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"&&wx(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:Jre,load:ZEt,unload:JEt}=V1e(wx(a$)?new s$(a$):new o$);var Xre=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Jre(()=>{t.kill()});H1e(n,()=>{i()})};var ene=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=UA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=W1e(r,n,i),{sourceStream:d,sourceError:f}=K1e(t,l),{options:p,fileDescriptors:h}=fo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},W1e=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=Y1e(t,e,...r),a=YA(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},Y1e=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Qre,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||ZD(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]=CA(r,...n);return{destination:e(Qre)(i,o,s),pipeOptions:s}}if(fo.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},Qre=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),K1e=(t,e)=>{try{return{sourceStream:gf(t,e)}}catch(r){return{sourceError:r}}};var rne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=Z1e({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw c$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},Z1e=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return t$(t),n;if(e!==void 0)return e$(r),e},c$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Ef({error:t,command:tne,escapedCommand:tne,fileDescriptors:e,options:r,startTime:n,isSync:!1}),tne="source.pipe(destination)";var nne=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 J1e}from"stream/promises";var ine=(t,e,r)=>{let n=Cx.has(e)?Q1e(t,e):X1e(t,e);return Rl(t,tUe,r.signal),Rl(e,rUe,r.signal),eUe(e),n},X1e=(t,e)=>{let r=Ol([t]);return bf(r,e),Cx.set(e,r),r},Q1e=(t,e)=>{let r=Cx.get(e);return r.add(t),r},eUe=async t=>{try{await J1e(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Cx.delete(t)},Cx=new WeakMap,tUe=2,rUe=1;import{aborted as nUe}from"util";var one=(t,e)=>t===void 0?[]:[iUe(t,e)],iUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await nUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw c$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Ix=(t,...e)=>{if(Nt(e[0]))return Ix.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=ene(t,...e),i=oUe({...n,destination:r});return i.pipe=Ix.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},oUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=sUe(t,i);rne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=ine(e,o,d);return await Promise.race([nne(u),...one(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},sUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as pUe}from"timers/promises";import{on as aUe}from"events";import{getDefaultHighWaterMark as cUe}from"stream";var Px=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return lUe(e,s),ane({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},lUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},l$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;uUe(e,s,t);let a=t.readableObjectMode&&!o;return ane({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},uUe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},ane=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=aUe(t,"data",{signal:e.signal,highWaterMark:sne,highWatermark:sne});return dUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},u$=cUe(!0),sne=u$,dUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=fUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Pl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*P_(a)}},fUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Ex(t,r,!e),Sx(t,i,!n,{})].filter(Boolean);var cne=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=hUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([mUe(t),d]);return}let f=jL(c,r),p=l$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([gUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},hUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!bx({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=l$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Sre(a,t,r,o)},mUe=async t=>{await pUe(),t.readableFlowing===null&&t.resume()},gUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await ux(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await dx(r,{maxBuffer:o})):await Sf(r,{maxBuffer:o})}catch(a){return lne(Ste({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},d$=async t=>{try{return await t}catch(e){return lne(e)}},lne=({bufferedData:t})=>DQ(t)?new Uint8Array(t):t;import{finished as _Ue}from"stream/promises";var M_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=yUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],_Ue(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||vUe(a,e,r,n)}finally{s.abort()}},yUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&SUe(t,r,n),n},SUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{EUe(e,r),n.call(t,...i)}},EUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},vUe=(t,e,r,n)=>{if(!TUe(t,e,r,n))throw t},TUe=(t,e,r,n=!0)=>r.propagating?une(t)||Ox(t):(r.propagating=!0,f$(r,e)===n?une(t):Ox(t)),f$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Ox=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",une=t=>t?.code==="EPIPE";var dne=({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=M_(t,e,l);if(f$(l,e)){await u;return}let[d]=await Promise.all([cne({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 fne=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Ol([t,e].filter(Boolean)):void 0,pne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>p$({...bUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:AUe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),bUe=({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}},AUe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as xUe}from"events";var hne=t=>df(t,"ipc"),mne=(t,e)=>{let r=$A(t);lo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var gne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=hne(o),a=ds(e,"ipc"),c=ds(r,"ipc");for await(let l of ZL({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Ete(t,i,c),i.push(l)),s&&mne(l,o);return i},_ne=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:S})=>{let b=Are(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},E=dne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),I=pne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),w=[],M=gne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:w,verboseInfo:p}),O=wUe(m,t,x),N=RUe(h,x);try{return await Promise.race([Promise.all([{},wre(b),Promise.all(E),I,M,Xee(t,d),...O,...N]),y,CUe(t,S),...Wee(t,o,f,S),...hee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:S}),...Vee({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(G){return f.terminationReason??="other",Promise.all([{error:G},b,Promise.all(E.map(_=>d$(_))),d$(I),_ne(M,w),Promise.allSettled(O),Promise.allSettled(N)])}},wUe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:M_(n,i,r)),RUe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ri(o,{checkOpen:!1})&&!Ai(o)).map(({type:i,value:o,stream:s=o})=>M_(s,n,e,{isSameDirection:Wn.has(i),stopOnExit:i==="native"}))),CUe=async(t,{signal:e})=>{let[r]=await xUe(t,"error",{signal:e});throw r};var Sne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),D_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=uo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Af=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 IUe}from"stream";import{callbackify as PUe}from"util";import{finished as Ene}from"stream/promises";var h$=async t=>{if(t!==void 0)try{await m$(t)}catch{}},vne=async t=>{if(t!==void 0)try{await g$(t)}catch{}},m$=async t=>{await Ene(t,{cleanup:!0,readable:!1,writable:!0})},g$=async t=>{await Ene(t,{cleanup:!0,readable:!0,writable:!1})},Nx=async(t,e)=>{if(await t,e)throw e},kx=(t,e,r)=>{r&&!Ox(r)?t.destroy(r):e&&t.destroy()};var Tne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||yn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=_$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=y$(a,s),{read:f,onStdoutDataDone:p}=S$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new IUe({read:f,destroy:PUe(v$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return E$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},_$=(t,e,r)=>{let n=gf(t,e),i=D_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},y$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:u$},S$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=uo(),s=Px({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){OUe(this,s,o)},onStdoutDataDone:o}},OUe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},E$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await g$(t),await n,await h$(i),await e,r.readable&&r.push(null)}catch(o){await h$(i),bne(r,o)}},v$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Af(r,e)&&(bne(t,n),await Nx(e,n))},bne=(t,e)=>{kx(t,t.readable,e)};import{Writable as NUe}from"stream";import{callbackify as Ane}from"util";var xne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=T$(t,r,e),s=new NUe({...b$(n,t,i),destroy:Ane(x$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return A$(n,s),s},T$=(t,e,r)=>{let n=YA(t,e),i=D_(r,n,"writableFinal"),o=D_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},b$=(t,e,r)=>({write:kUe.bind(void 0,t),final:Ane(MUe.bind(void 0,t,e,r))}),kUe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},MUe=async(t,e,r)=>{await Af(r,e)&&(t.writable&&t.end(),await e)},A$=async(t,e,r)=>{try{await m$(t),e.writable&&e.end()}catch(n){await vne(r),wne(e,n)}},x$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Af(r,e),await Af(n,e)&&(wne(t,i),await Nx(e,i))},wne=(t,e)=>{kx(t,t.writable,e)};import{Duplex as DUe}from"stream";import{callbackify as LUe}from"util";var Rne=({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}=_$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=T$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=y$(c,a),{read:y,onStdoutDataDone:S}=S$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new DUe({read:y,...b$(u,t,d),destroy:LUe($Ue.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 E$({subprocessStdout:c,onStdoutDataDone:S,readable:b,subprocess:t,subprocessStdin:u}),A$(u,b,c),b},$Ue=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([v$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),x$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var w$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||yn.has(e),s=gf(t,r),a=Px({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return UUe(a,s,t)},UUe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Cne=(t,{encoding:e})=>{let r=Sne();t.readable=Tne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=xne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Rne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=w$.bind(void 0,t,e),t[Symbol.asyncIterator]=w$.bind(void 0,t,e,{})};var Ine=(t,e)=>{for(let[r,n]of BUe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},FUe=(async()=>{})().constructor.prototype,BUe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(FUe,t)]);var Pne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=GUe(t,e,r),{subprocess:f,promise:p}=VUe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Ix.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Ine(f,p),fo.set(f,{options:u,fileDescriptors:d}),f},GUe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=FA(t,e,r),{file:a,commandArguments:c,options:l}=ox(t,e,r),u=qUe(l),d=jre(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},qUe=({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}},VUe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=zUe(...sx(t,e,r))}catch(h){return $re({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;jUe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Zre(c,a,l),Xre(c,r,l);let d={},f=uo();c.kill=fee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=fne(c,r),Cne(c,r),Mre(c,r);let p=HUe({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}},HUe=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 S=h.map((E,I)=>ps(E,e,I)),b=ps(m,e,"all"),x=WUe({errorInfo:d,exitCode:f,signal:p,stdio:S,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return vf(x,n,e)},WUe=({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?I_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof po,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):hx({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Mx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,YUe(n,t[n],i)]));return{...t,...r}},YUe=(t,e,r)=>KUe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,KUe=new Set(["env",...rL]);var Na=(t,e,r,n)=>{let i=(s,a,c)=>Na(s,a,r,c),o=(...s)=>ZUe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},ZUe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,Mx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=JUe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Cre(a,c,l):Pne(a,c,l,i)},JUe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=jQ(e)?zQ(e,r):[e,...r],[s,a,c]=CA(...o),l=Mx(Mx(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 One=({file:t,commandArguments:e})=>kne(t,e),Nne=({file:t,commandArguments:e})=>({...kne(t,e),isSync:!0}),kne=(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]=XUe(t);return{file:r,commandArguments:n}},XUe=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(QUe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},QUe=/ +/g;var Mne=(t,e,r)=>{t.sync=e(eFe,r),t.s=t.sync},Dne=({options:t})=>Lne(t),eFe=({options:t})=>({...Lne(t),isSync:!0}),Lne=t=>({options:{...tFe(t),...t}}),tFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},$ne={preferLocal:!0};var Une=Na(()=>({})),Bbt=Na(()=>({isSync:!0})),Fne=Na(One),jbt=Na(Nne),zbt=Na(Kee),Gbt=Na(Dne,{},$ne,Mne),{sendMessage:qbt,getOneMessage:Vbt,getEachMessage:Hbt,getCancelSignal:Wbt}=Dre();var Bne=!1,jne=()=>{Bne=!0},mo=()=>Bne;var L_=null,zne=t=>(L_&&L_.destroy(),L_=new hs({totalAllowedTime:t}),L_),Gne=()=>L_;var hs=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&mo())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await EA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{le.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 qne={name:"@netlify/agent-runner-cli",type:"module",version:"1.157.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration: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.3","@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 oFe=nFe(import.meta.url),sFe=ms.dirname(oFe),aFe=iFe(import.meta.url),xf=pe("shell"),R$=new Set,Vne={preferLocal:!0},dr=(t,e,r)=>{let[n,i]=cFe(e,r),o={...Vne,...i},s=Une(t,n,o);Wne(s,o),Zne(s);let a=r?.idleTimeout;return a&&a>0&&Kne(s,a),s},Hne=(t,e)=>{let r={...Vne,...e},n=Fne(t,r);return Wne(n,r),Zne(n),e?.idleTimeout&&e.idleTimeout>0&&Kne(n,e.idleTimeout),n},cFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Wne=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(gs.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new u_).pipe(gs.stdout),t.stderr?.pipe(new u_).pipe(gs.stderr);return}t.stdout?.pipe(gs.stdout),t.stderr?.pipe(gs.stderr)},C$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(gs.kill(-t.pid,e),xf.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return xf.error("Error killing process:",r),!1}},Yne=t=>C$(t,"SIGKILL"),Kne=(t,e)=>{let r=null,n=()=>{xf.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),C$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(xf.log(`Force killing idle process ${t.pid}`),Yne(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)},Zne=t=>{R$.add(t);let e=Gne();if(e){let r=e.onTimesUp(()=>{xf.log(`Global timer expired, killing process ${t.pid}`),C$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(xf.log(`Force killing process ${t.pid} after timeout`),Yne(t))},5e3)});t.on("exit",()=>{R$.delete(t),r()}),t.on("error",()=>{R$.delete(t),r()})}};function go(t,e){if(!gs.env.NETLIFY_LOCAL_MODE)try{let i=aFe.resolve(qne.name),o=ms.dirname(i);for(;o!==ms.dirname(o);){let s=ms.dirname(o);if(ms.basename(s)==="node_modules"){let a=ms.join(s,".bin",e);if(Dx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(gs.env.NODE_PATH){let i=ms.join(gs.env.NODE_PATH,".bin",e);if(Dx.existsSync(i))return i}let r=ms.join(t,"node_modules",".bin",e);if(Dx.existsSync(r))return r;let n=ms.join(sFe,"..","node_modules",".bin",e);if(Dx.existsSync(n))return n}var lFe=pe("utils"),uFe=t=>new Promise(e=>{setTimeout(e,t)});var I$=t=>{try{return new URL(t).hostname||null}catch{return null}},Lx=(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 uFe(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},ka=(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},Jne=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):lFe.error("Could not parse JSON",n))}},dFe=t=>t.charAt(0).toUpperCase()+t.slice(1),_o=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():dFe(e)).join(" ");function _s(t,e){e&&t.log(`Skill invoked: ${e}`)}var $x=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Xne=(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 P$=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}},fFe=1e4,O$=(t,e=fFe)=>{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 pFe}from"crypto";import{createReadStream as hFe}from"fs";import Ux from"fs/promises";import nie from"os";import Fx from"path";var Qne=pe("repo"),iie="runner-diffs-",oie=t=>`${iie}${t}-`,sie=async t=>{let e=nie.tmpdir(),r;try{r=await Ux.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(iie)&&!n.startsWith(oie(t))).map(n=>Ux.rm(Fx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Jr=(t,e={})=>dr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Bx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Qne.info("Getting runner diffs");let n=await gFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=yFe(o);await SFe(h,r)}Qne.info("Changes after processing"),await k$(r);let s=await D$(o,r);if(await N$(s,r),i=await _Fe(r),!i)return{hasChanges:!1,ignored:s};await Jr(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await Ux.mkdtemp(Fx.join(nie.tmpdir(),oie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:S})=>{let b=Fx.join(a,y);await Jr([...S?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:E}=await Ux.stat(b);return{path:b,size:E}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await rie(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 tie(d,h)||(f=h)}await rie(r),le.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await tie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},eie=async t=>{let e=pFe("sha256");for await(let r of hFe(t))e.update(r);return e.digest("hex")},tie=async(t,e)=>t.size===e.size&&await eie(t.path)===await eie(e.path),rie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Jr(["reset","--soft","HEAD~1"],{cwd:t})},N$=async(t=[],e=process.cwd())=>{await Jr(["add",".",...t],{cwd:e})},k$=async(t=process.cwd())=>{let e=await Jr(["status","-s"],{cwd:t});return String(e.stdout??"")},aie=/.. (.+)?\.log$/,mFe=[aie],gFe=async(t=process.cwd())=>{let e=await k$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
101
|
+
if (condition) { yield value; }`)};import{Buffer as E$e}from"buffer";import{StringDecoder as v$e}from"string_decoder";var Ex=(t,e,r)=>{if(r)return;if(t)return{transform:T$e.bind(void 0,new TextEncoder)};let n=new v$e(e);return{transform:b$e.bind(void 0,n),final:A$e.bind(void 0,n)}},T$e=function*(t,e){E$e.isBuffer(e)?yield us(e):typeof e=="string"?yield t.encode(e):yield e},b$e=function*(t,e){yield jt(e)?t.write(e):e},A$e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as fre}from"util";var qL=fre(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),vx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=w$e}=e[r];for await(let i of n(t))yield*vx(i,e,r+1)},pre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*x$e(r,Number(e),t)},x$e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*vx(n,r,e+1)},hre=fre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),w$e=function*(t){yield t};var VL=(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=>[...Pl(r,t,0)]),...P_(t)],Pl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=C$e}=e[r];for(let i of n(t))yield*Pl(i,e,r+1)},P_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*R$e(r,Number(e),t)},R$e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Pl(n,r,e+1)},C$e=function*(t){yield t};var HL=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=_re(t,s,o),l=Il(e),u=Il(r),d=l?qL.bind(void 0,vx,a):VL.bind(void 0,Pl),f=l||u?qL.bind(void 0,pre,a):VL.bind(void 0,P_),p=l||u?hre.bind(void 0,a):void 0;return{stream:new I$e({writableObjectMode:n,writableHighWaterMark:gre(n),readableObjectMode:i,readableHighWaterMark:gre(i),transform(m,y,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},Tx=(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=_re(s,r,a);t=mre(c,t)}return t},_re=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:lre(n,a)},Ex(r,s,n),Sx(r,o,n,c),{transform:t,final:e},{transform:ure(i,a)},cre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var yre=(t,e)=>{for(let r of P$e(t))O$e(t,r,e)},P$e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),O$e=(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 ${Oa[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>N$e(a,n));r.input=E_(s)},N$e=(t,e)=>{let r=Tx(t,e,"utf8",!0);return k$e(r),E_(r)},k$e=t=>{let e=t.find(r=>typeof r!="string"&&!jt(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 $$e,appendFileSync as U$e}from"fs";var bx=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&df(r,n)&&!yn.has(e)&&M$e(n)&&(t.some(({type:i,value:o})=>i==="native"&&D$e.has(o))||t.every(({type:i})=>Wn.has(i))),M$e=t=>t===1||t===2,D$e=new Set(["pipe","overlapped"]),Sre=async(t,e,r,n)=>{for await(let i of t)L$e(e)||vre(i,r,n)},Ere=(t,e,r)=>{for(let n of t)vre(n,e,r)},L$e=t=>t._readableState.pipes.length>0,vre=(t,e,r)=>{let n=$A(t);lo({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Tre=({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)=>F$e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},F$e=({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=bte(t,o,d),p=us(f),{stdioItems:h,objectMode:m}=e[r],y=B$e([p],h,c,n),{serializedResult:S,finalResult:b=S}=j$e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});z$e({serializedResult:S,fdNumber:r,state:n,verboseInfo:s,encoding:c,stdioItems:h,objectMode:m});let x=a[r]?b:void 0;try{return n.error===void 0&&G$e(S,h,i),x}catch(E){return n.error=E,x}},B$e=(t,e,r,n)=>{try{return Tx(t,e,r,!1)}catch(i){return n.error=i,t}},j$e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:E_(t)};let s=$Q(t,r);return n[o]?{serializedResult:s,finalResult:GL(s,!i[o],e)}:{serializedResult:s}},z$e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!bx({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=GL(t,!1,s);try{Ere(a,e,n)}catch(c){r.error??=c}},G$e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>_x.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?U$e(n,t):(r.add(o),$$e(n,t))}};var bre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,ps(e,r,"all")]:Array.isArray(e)?[ps(t,r,"all"),...e]:jt(t)&&jt(e)?XD([t,e]):`${t}${e}`};import{once as WL}from"events";var Are=async(t,e)=>{let[r,n]=await q$e(t);return e.isForcefullyTerminated??=!1,[r,n]},q$e=async t=>{let[e,r]=await Promise.allSettled([WL(t,"spawn"),WL(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?xre(t):r.value},xre=async t=>{try{return await WL(t,"exit")}catch{return xre(t)}},wre=async t=>{let[e,r]=await t;if(!V$e(e,r)&&YL(e,r))throw new xi;return[e,r]},V$e=(t,e)=>t===void 0&&e===void 0,YL=(t,e)=>t!==0||e!==null;var Rre=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=H$e(t,e,r),s=o?.code==="ETIMEDOUT",a=Tte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},H$e=(t,e,r)=>t!==void 0?t:YL(e,r)?new xi:void 0;var Cre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=Y$e(t,e,r),d=J$e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return vf(d,c,l)},Y$e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=FA(t,e,r),a=K$e(r),{file:c,commandArguments:l,options:u}=ox(t,e,a);Z$e(u);let d=ire(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},K$e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Z$e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Ax("ipcInput"),t&&Ax("ipc: true"),r&&Ax("detached: true"),n&&Ax("cancelSignal")},Ax=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},J$e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=X$e({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}=Rre(c,r),{output:h,error:m=l}=Tre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,x)=>ps(b,r,x)),S=ps(bre(h,r),r,"all");return e1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:S,options:r,command:n,escapedCommand:i,startTime:a})},X$e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{yre(o,r);let a=Q$e(r);return W$e(...sx(t,e,a))}catch(a){return Ef({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},Q$e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:px(e)}),e1e=({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?hx({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):I_({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 jUe}from"events";import{spawn as zUe}from"child_process";import kre from"process";import{once as KL,on as t1e}from"events";var Ire=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(hf({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:QA(t)}),r1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),r1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{KA(e,i);let o=Pa(t,e,r),s=new AbortController;try{return await Promise.race([n1e(o,n,s),i1e(o,r,s),o1e(o,r,s)])}catch(a){throw mf(t),a}finally{s.abort(),ZA(e,i)}},n1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await KL(t,"message",{signal:r});return n}for await(let[n]of t1e(t,"message",{signal:r}))if(e(n))return n},i1e=async(t,e,{signal:r})=>{await KL(t,"disconnect",{signal:r}),mee(e)},o1e=async(t,e,{signal:r})=>{let[n]=await KL(t,"strict:error",{signal:r});throw HA(n,e)};import{once as Ore,on as s1e}from"events";var Nre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>ZL({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),ZL=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{hf({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:QA(t)}),KA(e,o);let s=Pa(t,e,r),a=new AbortController,c={};return a1e(t,s,a),c1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),l1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},a1e=async(t,e,r)=>{try{await Ore(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},c1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Ore(t,"strict:error",{signal:r.signal});n.error=HA(i,e),r.abort()}catch{}},l1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of s1e(r,"message",{signal:o.signal}))Pre(s),yield c}catch{Pre(s)}finally{o.abort(),ZA(e,a),n||mf(t),i&&await t}},Pre=({error:t})=>{if(t)throw t};var Mre=(t,{ipc:e})=>{Object.assign(t,Lre(t,!1,e))},Dre=()=>{let t=kre,e=!0,r=kre.channel!==void 0;return{...Lre(t,e,r),getCancelSignal:zee.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Lre=(t,e,r)=>({sendMessage:nx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Ire.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Nre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as u1e}from"child_process";import{PassThrough as d1e,Readable as f1e,Writable as p1e,Duplex as h1e}from"stream";var $re=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{BL(n);let a=new u1e;m1e(a,n),Object.assign(a,{readable:g1e,writable:_1e,duplex:y1e});let c=Ef({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=S1e(c,s,i);return{subprocess:a,promise:l}},m1e=(t,e)=>{let r=O_(),n=O_(),i=O_(),o=Array.from({length:e.length-3},O_),s=O_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},O_=()=>{let t=new d1e;return t.end(),t},g1e=()=>new f1e({read(){}}),_1e=()=>new p1e({write(){}}),y1e=()=>new h1e({read(){},write(){}}),S1e=async(t,e,r)=>vf(t,e,r);import{createReadStream as Ure,createWriteStream as Fre}from"fs";import{Buffer as E1e}from"buffer";import{Readable as N_,Writable as v1e,Duplex as T1e}from"stream";var jre=(t,e)=>yx(b1e,t,e,!1),k_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Oa[t]}.`)},Bre={fileNumber:k_,generator:HL,asyncGenerator:HL,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:T1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},b1e={input:{...Bre,fileUrl:({value:t})=>({stream:Ure(t)}),filePath:({value:{file:t}})=>({stream:Ure(t)}),webStream:({value:t})=>({stream:N_.fromWeb(t)}),iterable:({value:t})=>({stream:N_.from(t)}),asyncIterable:({value:t})=>({stream:N_.from(t)}),string:({value:t})=>({stream:N_.from(t)}),uint8Array:({value:t})=>({stream:N_.from(E1e.from(t))})},output:{...Bre,fileUrl:({value:t})=>({stream:Fre(t)}),filePath:({value:{file:t,append:e}})=>({stream:Fre(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:v1e.fromWeb(t)}),iterable:k_,asyncIterable:k_,string:k_,uint8Array:k_}};import{on as A1e,once as zre}from"events";import{PassThrough as x1e,getDefaultHighWaterMark as w1e}from"stream";import{finished as Vre}from"stream/promises";function Ol(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)XL(i);let e=t.some(({readableObjectMode:i})=>i),r=R1e(t,e),n=new JL({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var R1e=(t,e)=>{if(t.length===0)return w1e(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},JL=class extends x1e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(XL(e),this.#e.has(e))return;this.#e.add(e),this.#n??=C1e(this,this.#e,this.#o);let r=O1e({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(XL(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)}},C1e=async(t,e,r)=>{xx(t,Gre);let n=new AbortController;try{await Promise.race([I1e(t,n),P1e(t,e,r,n)])}finally{n.abort(),xx(t,-Gre)}},I1e=async(t,{signal:e})=>{try{await Vre(t,{signal:e,cleanup:!0})}catch(r){throw Hre(t,r),r}},P1e=async(t,e,r,{signal:n})=>{for await(let[i]of A1e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},XL=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},O1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{xx(t,qre);let a=new AbortController;try{await Promise.race([N1e(o,e,a),k1e({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),M1e({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),xx(t,-qre)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?QL(t):D1e(t))},N1e=async(t,e,{signal:r})=>{try{await t,r.aborted||QL(e)}catch(n){r.aborted||Hre(e,n)}},k1e=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await Vre(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;Wre(s)?i.add(e):Yre(t,s)}},M1e=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await zre(t,i,{signal:o}),!t.readable)return zre(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},D1e=t=>{t.writable&&t.end()},Hre=(t,e)=>{Wre(e)?QL(t):Yre(t,e)},Wre=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",QL=t=>{(t.readable||t.writable)&&t.destroy()},Yre=(t,e)=>{t.destroyed||(t.once("error",L1e),t.destroy(e))},L1e=()=>{},xx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Gre=2,qre=1;import{finished as Kre}from"stream/promises";var bf=(t,e)=>{t.pipe(e),$1e(t,e),U1e(t,e)},$1e=async(t,e)=>{if(!(Ai(t)||Ai(e))){try{await Kre(t,{cleanup:!0,readable:!0,writable:!1})}catch{}e$(e)}},e$=t=>{t.writable&&t.end()},U1e=async(t,e)=>{if(!(Ai(t)||Ai(e))){try{await Kre(e,{cleanup:!0,readable:!1,writable:!0})}catch{}t$(t)}},t$=t=>{t.readable&&t.destroy()};var Zre=(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})=>Wn.has(c)))F1e(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Wn.has(c)))j1e({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]:Ol(o);bf(s,i)}},F1e=(t,e,r,n)=>{r==="output"?bf(t.stdio[n],e):bf(e,t.stdio[n]);let i=B1e[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},B1e=["stdin","stdout","stderr"],j1e=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;z1e(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},z1e=(t,{signal:e})=>{Ai(t)&&Rl(t,G1e,e)},G1e=2;import{addAbortListener as H1e}from"events";var Nl=[];Nl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Nl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Nl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var wx=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",r$=Symbol.for("signal-exit emitter"),n$=globalThis,q1e=Object.defineProperty.bind(Object),i$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(n$[r$])return n$[r$];q1e(n$,r$,{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}},Rx=class{},V1e=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),o$=class extends Rx{onExit(){return()=>{}}load(){}unload(){}},s$=class extends Rx{#e=a$.platform==="win32"?"SIGINT":"SIGHUP";#r=new i$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Nl)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(!wx(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 Nl)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,Nl.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 wx(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"&&wx(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:Jre,load:ZEt,unload:JEt}=V1e(wx(a$)?new s$(a$):new o$);var Xre=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Jre(()=>{t.kill()});H1e(n,()=>{i()})};var ene=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=UA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=W1e(r,n,i),{sourceStream:d,sourceError:f}=K1e(t,l),{options:p,fileDescriptors:h}=fo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},W1e=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=Y1e(t,e,...r),a=YA(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},Y1e=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(Qre,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||ZD(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]=CA(r,...n);return{destination:e(Qre)(i,o,s),pipeOptions:s}}if(fo.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},Qre=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),K1e=(t,e)=>{try{return{sourceStream:gf(t,e)}}catch(r){return{sourceError:r}}};var rne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=Z1e({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw c$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},Z1e=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return t$(t),n;if(e!==void 0)return e$(r),e},c$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Ef({error:t,command:tne,escapedCommand:tne,fileDescriptors:e,options:r,startTime:n,isSync:!1}),tne="source.pipe(destination)";var nne=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 J1e}from"stream/promises";var ine=(t,e,r)=>{let n=Cx.has(e)?Q1e(t,e):X1e(t,e);return Rl(t,tUe,r.signal),Rl(e,rUe,r.signal),eUe(e),n},X1e=(t,e)=>{let r=Ol([t]);return bf(r,e),Cx.set(e,r),r},Q1e=(t,e)=>{let r=Cx.get(e);return r.add(t),r},eUe=async t=>{try{await J1e(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Cx.delete(t)},Cx=new WeakMap,tUe=2,rUe=1;import{aborted as nUe}from"util";var one=(t,e)=>t===void 0?[]:[iUe(t,e)],iUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await nUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw c$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Ix=(t,...e)=>{if(Nt(e[0]))return Ix.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=ene(t,...e),i=oUe({...n,destination:r});return i.pipe=Ix.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},oUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=sUe(t,i);rne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=ine(e,o,d);return await Promise.race([nne(u),...one(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},sUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as pUe}from"timers/promises";import{on as aUe}from"events";import{getDefaultHighWaterMark as cUe}from"stream";var Px=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return lUe(e,s),ane({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},lUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},l$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;uUe(e,s,t);let a=t.readableObjectMode&&!o;return ane({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},uUe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},ane=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=aUe(t,"data",{signal:e.signal,highWaterMark:sne,highWatermark:sne});return dUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},u$=cUe(!0),sne=u$,dUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=fUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Pl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*P_(a)}},fUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Ex(t,r,!e),Sx(t,i,!n,{})].filter(Boolean);var cne=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=hUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([mUe(t),d]);return}let f=jL(c,r),p=l$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([gUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},hUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!bx({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=l$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Sre(a,t,r,o)},mUe=async t=>{await pUe(),t.readableFlowing===null&&t.resume()},gUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await ux(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await dx(r,{maxBuffer:o})):await Sf(r,{maxBuffer:o})}catch(a){return lne(Ste({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},d$=async t=>{try{return await t}catch(e){return lne(e)}},lne=({bufferedData:t})=>DQ(t)?new Uint8Array(t):t;import{finished as _Ue}from"stream/promises";var M_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=yUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],_Ue(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||vUe(a,e,r,n)}finally{s.abort()}},yUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&SUe(t,r,n),n},SUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{EUe(e,r),n.call(t,...i)}},EUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},vUe=(t,e,r,n)=>{if(!TUe(t,e,r,n))throw t},TUe=(t,e,r,n=!0)=>r.propagating?une(t)||Ox(t):(r.propagating=!0,f$(r,e)===n?une(t):Ox(t)),f$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Ox=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",une=t=>t?.code==="EPIPE";var dne=({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=M_(t,e,l);if(f$(l,e)){await u;return}let[d]=await Promise.all([cne({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 fne=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Ol([t,e].filter(Boolean)):void 0,pne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>p$({...bUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:AUe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),bUe=({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}},AUe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as xUe}from"events";var hne=t=>df(t,"ipc"),mne=(t,e)=>{let r=$A(t);lo({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var gne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=hne(o),a=ds(e,"ipc"),c=ds(r,"ipc");for await(let l of ZL({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Ete(t,i,c),i.push(l)),s&&mne(l,o);return i},_ne=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:S})=>{let b=Are(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},E=dne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),I=pne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:x}),w=[],M=gne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:w,verboseInfo:p}),O=wUe(m,t,x),N=RUe(h,x);try{return await Promise.race([Promise.all([{},wre(b),Promise.all(E),I,M,Xee(t,d),...O,...N]),y,CUe(t,S),...Wee(t,o,f,S),...hee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:S}),...Vee({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(G){return f.terminationReason??="other",Promise.all([{error:G},b,Promise.all(E.map(_=>d$(_))),d$(I),_ne(M,w),Promise.allSettled(O),Promise.allSettled(N)])}},wUe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:M_(n,i,r)),RUe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>Ri(o,{checkOpen:!1})&&!Ai(o)).map(({type:i,value:o,stream:s=o})=>M_(s,n,e,{isSameDirection:Wn.has(i),stopOnExit:i==="native"}))),CUe=async(t,{signal:e})=>{let[r]=await xUe(t,"error",{signal:e});throw r};var Sne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),D_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=uo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Af=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 IUe}from"stream";import{callbackify as PUe}from"util";import{finished as Ene}from"stream/promises";var h$=async t=>{if(t!==void 0)try{await m$(t)}catch{}},vne=async t=>{if(t!==void 0)try{await g$(t)}catch{}},m$=async t=>{await Ene(t,{cleanup:!0,readable:!1,writable:!0})},g$=async t=>{await Ene(t,{cleanup:!0,readable:!0,writable:!1})},Nx=async(t,e)=>{if(await t,e)throw e},kx=(t,e,r)=>{r&&!Ox(r)?t.destroy(r):e&&t.destroy()};var Tne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||yn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=_$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=y$(a,s),{read:f,onStdoutDataDone:p}=S$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new IUe({read:f,destroy:PUe(v$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return E$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},_$=(t,e,r)=>{let n=gf(t,e),i=D_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},y$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:u$},S$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=uo(),s=Px({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){OUe(this,s,o)},onStdoutDataDone:o}},OUe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},E$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await g$(t),await n,await h$(i),await e,r.readable&&r.push(null)}catch(o){await h$(i),bne(r,o)}},v$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Af(r,e)&&(bne(t,n),await Nx(e,n))},bne=(t,e)=>{kx(t,t.readable,e)};import{Writable as NUe}from"stream";import{callbackify as Ane}from"util";var xne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=T$(t,r,e),s=new NUe({...b$(n,t,i),destroy:Ane(x$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return A$(n,s),s},T$=(t,e,r)=>{let n=YA(t,e),i=D_(r,n,"writableFinal"),o=D_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},b$=(t,e,r)=>({write:kUe.bind(void 0,t),final:Ane(MUe.bind(void 0,t,e,r))}),kUe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},MUe=async(t,e,r)=>{await Af(r,e)&&(t.writable&&t.end(),await e)},A$=async(t,e,r)=>{try{await m$(t),e.writable&&e.end()}catch(n){await vne(r),wne(e,n)}},x$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Af(r,e),await Af(n,e)&&(wne(t,i),await Nx(e,i))},wne=(t,e)=>{kx(t,t.writable,e)};import{Duplex as DUe}from"stream";import{callbackify as LUe}from"util";var Rne=({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}=_$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=T$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=y$(c,a),{read:y,onStdoutDataDone:S}=S$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new DUe({read:y,...b$(u,t,d),destroy:LUe($Ue.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 E$({subprocessStdout:c,onStdoutDataDone:S,readable:b,subprocess:t,subprocessStdin:u}),A$(u,b,c),b},$Ue=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([v$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),x$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var w$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||yn.has(e),s=gf(t,r),a=Px({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return UUe(a,s,t)},UUe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Cne=(t,{encoding:e})=>{let r=Sne();t.readable=Tne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=xne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Rne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=w$.bind(void 0,t,e),t[Symbol.asyncIterator]=w$.bind(void 0,t,e,{})};var Ine=(t,e)=>{for(let[r,n]of BUe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},FUe=(async()=>{})().constructor.prototype,BUe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(FUe,t)]);var Pne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=GUe(t,e,r),{subprocess:f,promise:p}=VUe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Ix.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Ine(f,p),fo.set(f,{options:u,fileDescriptors:d}),f},GUe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=FA(t,e,r),{file:a,commandArguments:c,options:l}=ox(t,e,r),u=qUe(l),d=jre(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},qUe=({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}},VUe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=zUe(...sx(t,e,r))}catch(h){return $re({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;jUe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Zre(c,a,l),Xre(c,r,l);let d={},f=uo();c.kill=fee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=fne(c,r),Cne(c,r),Mre(c,r);let p=HUe({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}},HUe=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 S=h.map((E,I)=>ps(E,e,I)),b=ps(m,e,"all"),x=WUe({errorInfo:d,exitCode:f,signal:p,stdio:S,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return vf(x,n,e)},WUe=({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?I_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof po,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):hx({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Mx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,YUe(n,t[n],i)]));return{...t,...r}},YUe=(t,e,r)=>KUe.has(t)&&Nt(e)&&Nt(r)?{...e,...r}:r,KUe=new Set(["env",...rL]);var Na=(t,e,r,n)=>{let i=(s,a,c)=>Na(s,a,r,c),o=(...s)=>ZUe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},ZUe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(Nt(o))return i(t,Mx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=JUe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?Cre(a,c,l):Pne(a,c,l,i)},JUe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=jQ(e)?zQ(e,r):[e,...r],[s,a,c]=CA(...o),l=Mx(Mx(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 One=({file:t,commandArguments:e})=>kne(t,e),Nne=({file:t,commandArguments:e})=>({...kne(t,e),isSync:!0}),kne=(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]=XUe(t);return{file:r,commandArguments:n}},XUe=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(QUe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},QUe=/ +/g;var Mne=(t,e,r)=>{t.sync=e(eFe,r),t.s=t.sync},Dne=({options:t})=>Lne(t),eFe=({options:t})=>({...Lne(t),isSync:!0}),Lne=t=>({options:{...tFe(t),...t}}),tFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},$ne={preferLocal:!0};var Une=Na(()=>({})),Bbt=Na(()=>({isSync:!0})),Fne=Na(One),jbt=Na(Nne),zbt=Na(Kee),Gbt=Na(Dne,{},$ne,Mne),{sendMessage:qbt,getOneMessage:Vbt,getEachMessage:Hbt,getCancelSignal:Wbt}=Dre();var Bne=!1,jne=()=>{Bne=!0},mo=()=>Bne;var L_=null,zne=t=>(L_&&L_.destroy(),L_=new hs({totalAllowedTime:t}),L_),Gne=()=>L_;var hs=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&mo())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await EA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{le.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 qne={name:"@netlify/agent-runner-cli",type:"module",version:"1.158.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration: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.3","@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 oFe=nFe(import.meta.url),sFe=ms.dirname(oFe),aFe=iFe(import.meta.url),xf=pe("shell"),R$=new Set,Vne={preferLocal:!0},dr=(t,e,r)=>{let[n,i]=cFe(e,r),o={...Vne,...i},s=Une(t,n,o);Wne(s,o),Zne(s);let a=r?.idleTimeout;return a&&a>0&&Kne(s,a),s},Hne=(t,e)=>{let r={...Vne,...e},n=Fne(t,r);return Wne(n,r),Zne(n),e?.idleTimeout&&e.idleTimeout>0&&Kne(n,e.idleTimeout),n},cFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Wne=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(gs.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new u_).pipe(gs.stdout),t.stderr?.pipe(new u_).pipe(gs.stderr);return}t.stdout?.pipe(gs.stdout),t.stderr?.pipe(gs.stderr)},C$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(gs.kill(-t.pid,e),xf.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return xf.error("Error killing process:",r),!1}},Yne=t=>C$(t,"SIGKILL"),Kne=(t,e)=>{let r=null,n=()=>{xf.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),C$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(xf.log(`Force killing idle process ${t.pid}`),Yne(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)},Zne=t=>{R$.add(t);let e=Gne();if(e){let r=e.onTimesUp(()=>{xf.log(`Global timer expired, killing process ${t.pid}`),C$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(xf.log(`Force killing process ${t.pid} after timeout`),Yne(t))},5e3)});t.on("exit",()=>{R$.delete(t),r()}),t.on("error",()=>{R$.delete(t),r()})}};function go(t,e){if(!gs.env.NETLIFY_LOCAL_MODE)try{let i=aFe.resolve(qne.name),o=ms.dirname(i);for(;o!==ms.dirname(o);){let s=ms.dirname(o);if(ms.basename(s)==="node_modules"){let a=ms.join(s,".bin",e);if(Dx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(gs.env.NODE_PATH){let i=ms.join(gs.env.NODE_PATH,".bin",e);if(Dx.existsSync(i))return i}let r=ms.join(t,"node_modules",".bin",e);if(Dx.existsSync(r))return r;let n=ms.join(sFe,"..","node_modules",".bin",e);if(Dx.existsSync(n))return n}var lFe=pe("utils"),uFe=t=>new Promise(e=>{setTimeout(e,t)});var I$=t=>{try{return new URL(t).hostname||null}catch{return null}},Lx=(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 uFe(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},ka=(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},Jne=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):lFe.error("Could not parse JSON",n))}},dFe=t=>t.charAt(0).toUpperCase()+t.slice(1),_o=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():dFe(e)).join(" ");function _s(t,e){e&&t.log(`Skill invoked: ${e}`)}var $x=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),Xne=(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 P$=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}},fFe=1e4,O$=(t,e=fFe)=>{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 pFe}from"crypto";import{createReadStream as hFe}from"fs";import Ux from"fs/promises";import nie from"os";import Fx from"path";var Qne=pe("repo"),iie="runner-diffs-",oie=t=>`${iie}${t}-`,sie=async t=>{let e=nie.tmpdir(),r;try{r=await Ux.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(iie)&&!n.startsWith(oie(t))).map(n=>Ux.rm(Fx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Jr=(t,e={})=>dr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Bx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Qne.info("Getting runner diffs");let n=await gFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=yFe(o);await SFe(h,r)}Qne.info("Changes after processing"),await k$(r);let s=await D$(o,r);if(await N$(s,r),i=await _Fe(r),!i)return{hasChanges:!1,ignored:s};await Jr(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await Ux.mkdtemp(Fx.join(nie.tmpdir(),oie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:S})=>{let b=Fx.join(a,y);await Jr([...S?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:E}=await Ux.stat(b);return{path:b,size:E}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await rie(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 tie(d,h)||(f=h)}await rie(r),le.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await tie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},eie=async t=>{let e=pFe("sha256");for await(let r of hFe(t))e.update(r);return e.digest("hex")},tie=async(t,e)=>t.size===e.size&&await eie(t.path)===await eie(e.path),rie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Jr(["reset","--soft","HEAD~1"],{cwd:t})},N$=async(t=[],e=process.cwd())=>{await Jr(["add",".",...t],{cwd:e})},k$=async(t=process.cwd())=>{let e=await Jr(["status","-s"],{cwd:t});return String(e.stdout??"")},aie=/.. (.+)?\.log$/,mFe=[aie],gFe=async(t=process.cwd())=>{let e=await k$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
102
102
|
`).filter(i=>mFe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},_Fe=async(t=process.cwd())=>{try{return await Jr(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},M$=async(t=process.cwd())=>{let{stdout:e}=await Jr(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},cie=async(t=process.cwd())=>{let{stdout:e}=await Jr(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},D$=async(t,e=process.cwd())=>{t||=await k$(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
|
|
103
103
|
`).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${Fx.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(aie)?.[1];o&&n.push(`:!${o}.log`)}),n},lie=async(t=process.cwd())=>{await Jr(["reset","--hard","HEAD"],{cwd:t})},uie=async(t=process.cwd())=>{let e=await Jr(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
|
|
104
104
|
`).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},yFe=t=>{let e=t.split(`
|
|
@@ -329,7 +329,7 @@ ${s.trim()}
|
|
|
329
329
|
\`\`\``),{title:n,message:s,category:i}};import xu from"fs/promises";import gS from"os";import Tc from"path";import kh from"process";import I4e from"readline";import hS from"fs/promises";import x4e from"os";import $C from"path";var Ple=pe("gemini_session"),w4e=t=>t instanceof Error?t.message:String(t),R4e=t=>{let e=!1;if(Array.isArray(t?.toolCalls))for(let n of t.toolCalls)n&&typeof n=="object"&&"id"in n&&(delete n.id,e=!0);let r=typeof t?.content=="object"?t.content?.parts:void 0;if(Array.isArray(r))for(let n of r)n?.functionCall&&typeof n.functionCall=="object"&&"id"in n.functionCall&&(delete n.functionCall.id,e=!0);return e},C4e=async t=>{let r=(await hS.readFile(t,"utf8")).split(`
|
|
330
330
|
`),n=!1,i=r.map(o=>{if(!o.trim())return o;let s;try{s=JSON.parse(o)}catch{return o}return R4e(s)?(n=!0,JSON.stringify(s)):o});return n&&await hS.writeFile(t,i.join(`
|
|
331
331
|
`),"utf8"),n},hz=async(t,e=$C.join(x4e.homedir(),".gemini"))=>{let r=$C.join(e,"tmp"),n=t.slice(0,8),i;try{i=await hS.readdir(r)}catch{return}for(let o of i){let s=$C.join(r,o,"chats"),a;try{a=await hS.readdir(s)}catch{continue}for(let c of a){if(!c.endsWith(".jsonl")||!c.includes(n))continue;let l=$C.join(s,c);try{let u=(await hS.readFile(l,"utf8")).split(`
|
|
332
|
-
`,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},mS=async t=>{try{let e=await hz(t);return e?(await C4e(e),!0):(Ple.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return Ple.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:w4e(e)}),!1}};var mz={list_directory:{name:"List directory",category:W.Explore},read_file:{name:"Read file",category:W.FileRead},write_file:{name:"Edit file",category:W.FileWrite},glob:{name:"Find files",category:W.Explore},search_file_content:{name:"Search files",category:W.Explore},replace:{name:"Edit file",category:W.FileWrite},run_shell_command:{name:"Run command",category:W.RunCommand},web_fetch:{name:"Fetch web",category:W.Web},web_search:{name:"Search web",category:W.Web},google_web_search:{name:"Search web",category:W.Web},update_topic:{name:"Update topic",category:W.Plan},read_many_files:{name:"Read files",category:W.FileRead},save_memory:{name:"Memorize",category:W.Memorize},activate_skill:{name:"Use Skill",category:W.Skill},grep_search:{name:"Search files",category:W.Explore}};var gr=pe("runner_gemini"),UC="Gemini CLI",Nh="gemini-3.
|
|
332
|
+
`,1)[0];if(JSON.parse(u).sessionId===t)return l}catch{continue}}}},mS=async t=>{try{let e=await hz(t);return e?(await C4e(e),!0):(Ple.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return Ple.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:w4e(e)}),!1}};var mz={list_directory:{name:"List directory",category:W.Explore},read_file:{name:"Read file",category:W.FileRead},write_file:{name:"Edit file",category:W.FileWrite},glob:{name:"Find files",category:W.Explore},search_file_content:{name:"Search files",category:W.Explore},replace:{name:"Edit file",category:W.FileWrite},run_shell_command:{name:"Run command",category:W.RunCommand},web_fetch:{name:"Fetch web",category:W.Web},web_search:{name:"Search web",category:W.Web},google_web_search:{name:"Search web",category:W.Web},update_topic:{name:"Update topic",category:W.Plan},read_many_files:{name:"Read files",category:W.FileRead},save_memory:{name:"Memorize",category:W.Memorize},activate_skill:{name:"Use Skill",category:W.Skill},grep_search:{name:"Search files",category:W.Explore}};var gr=pe("runner_gemini"),UC="Gemini CLI",Nh="gemini-3.7-flash",P4e=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(gr.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(gr.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(gr.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),O4e={low:"LOW",medium:"MEDIUM",high:"HIGH"},Ole=t=>!!t&&t.startsWith("gemini-3"),N4e=(t,{model:e,effort:r})=>{let n=t.modelConfigs?.customAliases??{};!r||!Ole(e)?(r&&gr.log(`Model '${e}' does not support thinkingLevel; running at the model default effort`),delete n[e]):n[e]={extends:"chat-base-3",modelConfig:{model:e,generateContentConfig:{thinkingConfig:{thinkingLevel:O4e[r]}}}},Object.keys(n).length!==0&&(t.modelConfigs={...t.modelConfigs,customAliases:n})},k4e=async({model:t,effort:e}={})=>{let r=Tc.join(gS.homedir(),".gemini"),n=Tc.join(r,"settings.json");try{await xu.mkdir(r,{recursive:!0});let i={};try{let o=await xu.readFile(n,"utf-8");i=JSON.parse(o)}catch{gr.log("Creating new Gemini CLI settings file")}i.general||(i.general={}),i.general.previewFeatures||(i.general.previewFeatures=!0),i.model||(i.model={}),i.model.compressionThreshold!==.3&&(i.model.compressionThreshold=.3),i.skills||(i.skills={}),i.skills.enabled=!0,i.context||(i.context={}),i.context.fileName=["GEMINI.md","AGENTS.md"],N4e(i,{model:t,effort:e}),je().questionsEnabled&&(i.mcpServers={...i.mcpServers,...y1({trust:!0})}),await xu.writeFile(n,JSON.stringify(i,null,2),"utf-8"),gr.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(i){gr.error("Failed to ensure Gemini CLI settings",{error:i.message}),le.inc("context.degraded",1,{component:"agent_config"})}},M4e=t=>{t?.category===W.Skill&&t.type&&_s(gr,_o(t.type))},D4e=({aiGateway:t})=>{if(t){let{token:e,url:r}=t;if(!e||!r)throw new Error("No token or url provided from AI Gateway");kh.env.GEMINI_API_KEY=e,kh.env.GOOGLE_GEMINI_BASE_URL=r}else if(!kh.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided")},L4e=async({aiGateway:t,config:e,model:r})=>{let n=r;if(t){let i=e.modelVersionOverrides?.gemini?.[e.accountType];if(i){if(!await t.isModelAvailableForProvider("gemini",i))throw new Error(`Model override '${i}' is not available for gemini provider`);n=i}if(!n)!!Nh&&await t.isModelAvailableForProvider("gemini",Nh)?(n=Nh,gr.log(`Using default model: ${Nh}`)):Nh&&gr.log(`Default model ${Nh} is not available, proceeding without model specification`);else if(!i&&!await t.isModelAvailableForProvider("gemini",n))throw new Error(`Model '${n}' is not available for gemini provider`)}return n},$4e=async({config:t,cliPath:e})=>{let r=[`[[rule]]
|
|
333
333
|
toolName = "web_fetch"
|
|
334
334
|
decision = "allow"
|
|
335
335
|
priority = 10
|