@netlify/agent-runner-cli 1.164.0 → 1.164.1
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
|
@@ -111,7 +111,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
111
111
|
`,LF:`
|
|
112
112
|
`,concatBytes:o$},i1e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},o1e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:i1e};import{Buffer as s1e}from"buffer";var $re=(t,e)=>t?void 0:a1e.bind(void 0,e),a1e=function*(t,e){if(typeof e!="string"&&!Gt(e)&&!s1e.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?c1e.bind(void 0,e):l1e.bind(void 0,e),c1e=function*(t,e){Fre(t,e),yield e},l1e=function*(t,e){if(Fre(t,e),typeof e!="string"&&!Gt(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},Fre=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
113
113
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
114
|
-
if (condition) { yield value; }`)};import{Buffer as u1e}from"buffer";import{StringDecoder as d1e}from"string_decoder";var Dx=(t,e,r)=>{if(r)return;if(t)return{transform:f1e.bind(void 0,new TextEncoder)};let n=new d1e(e);return{transform:p1e.bind(void 0,n),final:h1e.bind(void 0,n)}},f1e=function*(t,e){u1e.isBuffer(e)?yield ys(e):typeof e=="string"?yield t.encode(e):yield e},p1e=function*(t,e){yield Gt(e)?t.write(e):e},h1e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Bre}from"util";var a$=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}}),Lx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=g1e}=e[r];for await(let i of n(t))yield*Lx(i,e,r+1)},jre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*m1e(r,Number(e),t)},m1e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Lx(n,r,e+1)},zre=Bre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),g1e=function*(t){yield t};var c$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Gre=(t,e)=>[...e.flatMap(r=>[...Fl(r,t,0)]),...$_(t)],Fl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=y1e}=e[r];for(let i of n(t))yield*Fl(i,e,r+1)},$_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*_1e(r,Number(e),t)},_1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Fl(n,r,e+1)},y1e=function*(t){yield t};var l$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Vre(t,s,o),l=Ul(e),u=Ul(r),d=l?a$.bind(void 0,Lx,a):c$.bind(void 0,Fl),f=l||u?a$.bind(void 0,jre,a):c$.bind(void 0,$_),p=l||u?zre.bind(void 0,a):void 0;return{stream:new S1e({writableObjectMode:n,writableHighWaterMark:qre(n),readableObjectMode:i,readableHighWaterMark:qre(i),transform(m,y,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},$x=(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=Vre(s,r,a);t=Gre(c,t)}return t},Vre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:$re(n,a)},Dx(r,s,n),Mx(r,o,n,c),{transform:t,final:e},{transform:Ure(i,a)},Lre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Hre=(t,e)=>{for(let r of E1e(t))v1e(t,r,e)},E1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),v1e=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${$a[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>T1e(a,n));r.input=R_(s)},T1e=(t,e)=>{let r=$x(t,e,"utf8",!0);return b1e(r),R_(r)},b1e=t=>{let e=t.find(r=>typeof r!="string"&&!Gt(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 R1e,appendFileSync as C1e}from"fs";var Ux=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&_f(r,n)&&!vn.has(e)&&A1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&x1e.has(o))||t.every(({type:i})=>ei.has(i))),A1e=t=>t===1||t===2,x1e=new Set(["pipe","overlapped"]),Wre=async(t,e,r,n)=>{for await(let i of t)w1e(e)||Kre(i,r,n)},Yre=(t,e,r)=>{for(let n of t)Kre(n,e,r)},w1e=t=>t._readableState.pipes.length>0,Kre=(t,e,r)=>{let n=XA(t);_o({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Zre=({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)=>I1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},I1e=({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=Jte(t,o,d),p=ys(f),{stdioItems:h,objectMode:m}=e[r],y=P1e([p],h,c,n),{serializedResult:E,finalResult:b=E}=O1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});N1e({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&&k1e(E,h,i),A}catch(S){return n.error=S,A}},P1e=(t,e,r,n)=>{try{return $x(t,e,r,!1)}catch(i){return n.error=i,t}},O1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:R_(t)};let s=d7(t,r);return n[o]?{serializedResult:s,finalResult:s$(s,!i[o],e)}:{serializedResult:s}},N1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Ux({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=s$(t,!1,s);try{Yre(a,e,n)}catch(c){r.error??=c}},k1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Nx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?C1e(n,t):(r.add(o),R1e(n,t))}};var Jre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,vs(e,r,"all")]:Array.isArray(e)?[vs(t,r,"all"),...e]:Gt(t)&&Gt(e)?mL([t,e]):`${t}${e}`};import{once as u$}from"events";var Xre=async(t,e)=>{let[r,n]=await M1e(t);return e.isForcefullyTerminated??=!1,[r,n]},M1e=async t=>{let[e,r]=await Promise.allSettled([u$(t,"spawn"),u$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Qre(t):r.value},Qre=async t=>{try{return await u$(t,"exit")}catch{return Qre(t)}},ene=async t=>{let[e,r]=await t;if(!D1e(e,r)&&d$(e,r))throw new Oi;return[e,r]},D1e=(t,e)=>t===void 0&&e===void 0,d$=(t,e)=>t!==0||e!==null;var tne=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=L1e(t,e,r),s=o?.code==="ETIMEDOUT",a=Zte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},L1e=(t,e,r)=>t!==void 0?t:d$(e,r)?new Oi:void 0;var rne=(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=j1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Rf(d,c,l)},U1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ex(t,e,r),a=F1e(r),{file:c,commandArguments:l,options:u}=Ex(t,e,a);B1e(u);let d=Nre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},F1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,B1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Fx("ipcInput"),t&&Fx("ipc: true"),r&&Fx("detached: true"),n&&Fx("cancelSignal")},Fx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},j1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=z1e({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}=tne(c,r),{output:h,error:m=l}=Zre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,A)=>vs(b,r,A)),E=vs(Jre(h,r),r,"all");return q1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:E,options:r,command:n,escapedCommand:i,startTime:a})},z1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Hre(o,r);let a=G1e(r);return $1e(...vx(t,e,a))}catch(a){return wf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},G1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:Cx(e)}),q1e=({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?Ix({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):L_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as OFe}from"events";import{spawn as NFe}from"child_process";import ane from"process";import{once as f$,on as V1e}from"events";var nne=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Ef({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:hx(t)}),H1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),H1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ux(e,i);let o=La(t,e,r),s=new AbortController;try{return await Promise.race([W1e(o,n,s),Y1e(o,r,s),K1e(o,r,s)])}catch(a){throw vf(t),a}finally{s.abort(),dx(e,i)}},W1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await f$(t,"message",{signal:r});return n}for await(let[n]of V1e(t,"message",{signal:r}))if(e(n))return n},Y1e=async(t,e,{signal:r})=>{await f$(t,"disconnect",{signal:r}),Gee(e)},K1e=async(t,e,{signal:r})=>{let[n]=await f$(t,"strict:error",{signal:r});throw ax(n,e)};import{once as one,on as Z1e}from"events";var sne=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>p$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),p$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Ef({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:hx(t)}),ux(e,o);let s=La(t,e,r),a=new AbortController,c={};return J1e(t,s,a),X1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),Q1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},J1e=async(t,e,r)=>{try{await one(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},X1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await one(t,"strict:error",{signal:r.signal});n.error=ax(i,e),r.abort()}catch{}},Q1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of Z1e(r,"message",{signal:o.signal}))ine(s),yield c}catch{ine(s)}finally{o.abort(),dx(e,a),n||vf(t),i&&await t}},ine=({error:t})=>{if(t)throw t};var cne=(t,{ipc:e})=>{Object.assign(t,une(t,!1,e))},lne=()=>{let t=ane,e=!0,r=ane.channel!==void 0;return{...une(t,e,r),getCancelSignal:gte.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},une=(t,e,r)=>({sendMessage:yx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:nne.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:sne.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as eUe}from"child_process";import{PassThrough as tUe,Readable as rUe,Writable as nUe,Duplex as iUe}from"stream";var dne=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{n$(n);let a=new eUe;oUe(a,n),Object.assign(a,{readable:sUe,writable:aUe,duplex:cUe});let c=wf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=lUe(c,s,i);return{subprocess:a,promise:l}},oUe=(t,e)=>{let r=U_(),n=U_(),i=U_(),o=Array.from({length:e.length-3},U_),s=U_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},U_=()=>{let t=new tUe;return t.end(),t},sUe=()=>new rUe({read(){}}),aUe=()=>new nUe({write(){}}),cUe=()=>new iUe({read(){},write(){}}),lUe=async(t,e,r)=>Rf(t,e,r);import{createReadStream as fne,createWriteStream as pne}from"fs";import{Buffer as uUe}from"buffer";import{Readable as F_,Writable as dUe,Duplex as fUe}from"stream";var mne=(t,e)=>kx(pUe,t,e,!1),B_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${$a[t]}.`)},hne={fileNumber:B_,generator:l$,asyncGenerator:l$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:fUe.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},pUe={input:{...hne,fileUrl:({value:t})=>({stream:fne(t)}),filePath:({value:{file:t}})=>({stream:fne(t)}),webStream:({value:t})=>({stream:F_.fromWeb(t)}),iterable:({value:t})=>({stream:F_.from(t)}),asyncIterable:({value:t})=>({stream:F_.from(t)}),string:({value:t})=>({stream:F_.from(t)}),uint8Array:({value:t})=>({stream:F_.from(uUe.from(t))})},output:{...hne,fileUrl:({value:t})=>({stream:pne(t)}),filePath:({value:{file:t,append:e}})=>({stream:pne(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:dUe.fromWeb(t)}),iterable:B_,asyncIterable:B_,string:B_,uint8Array:B_}};import{on as hUe,once as gne}from"events";import{PassThrough as mUe,getDefaultHighWaterMark as gUe}from"stream";import{finished as Sne}from"stream/promises";function Bl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)m$(i);let e=t.some(({readableObjectMode:i})=>i),r=_Ue(t,e),n=new h$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var _Ue=(t,e)=>{if(t.length===0)return gUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},h$=class extends mUe{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(m$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=yUe(this,this.#e,this.#o);let r=vUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(m$(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},yUe=async(t,e,r)=>{Bx(t,_ne);let n=new AbortController;try{await Promise.race([SUe(t,n),EUe(t,e,r,n)])}finally{n.abort(),Bx(t,-_ne)}},SUe=async(t,{signal:e})=>{try{await Sne(t,{signal:e,cleanup:!0})}catch(r){throw Ene(t,r),r}},EUe=async(t,e,r,{signal:n})=>{for await(let[i]of hUe(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},m$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},vUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Bx(t,yne);let a=new AbortController;try{await Promise.race([TUe(o,e,a),bUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),AUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Bx(t,-yne)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?g$(t):xUe(t))},TUe=async(t,e,{signal:r})=>{try{await t,r.aborted||g$(e)}catch(n){r.aborted||Ene(e,n)}},bUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await Sne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;vne(s)?i.add(e):Tne(t,s)}},AUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await gne(t,i,{signal:o}),!t.readable)return gne(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},xUe=t=>{t.writable&&t.end()},Ene=(t,e)=>{vne(e)?g$(t):Tne(t,e)},vne=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",g$=t=>{(t.readable||t.writable)&&t.destroy()},Tne=(t,e)=>{t.destroyed||(t.once("error",wUe),t.destroy(e))},wUe=()=>{},Bx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},_ne=2,yne=1;import{finished as bne}from"stream/promises";var If=(t,e)=>{t.pipe(e),RUe(t,e),CUe(t,e)},RUe=async(t,e)=>{if(!(Pi(t)||Pi(e))){try{await bne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}_$(e)}},_$=t=>{t.writable&&t.end()},CUe=async(t,e)=>{if(!(Pi(t)||Pi(e))){try{await bne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}y$(t)}},y$=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})=>ei.has(c)))IUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!ei.has(c)))OUe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:Bl(o);If(s,i)}},IUe=(t,e,r,n)=>{r==="output"?If(t.stdio[n],e):If(e,t.stdio[n]);let i=PUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},PUe=["stdin","stdout","stderr"],OUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;NUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},NUe=(t,{signal:e})=>{Pi(t)&&Ll(t,kUe,e)},kUe=2;import{addAbortListener as LUe}from"events";var jl=[];jl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&jl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&jl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var jx=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",S$=Symbol.for("signal-exit emitter"),E$=globalThis,MUe=Object.defineProperty.bind(Object),v$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(E$[S$])return E$[S$];MUe(E$,S$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},zx=class{},DUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),T$=class extends zx{onExit(){return()=>{}}load(){}unload(){}},b$=class extends zx{#e=A$.platform==="win32"?"SIGINT":"SIGHUP";#r=new v$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of jl)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!jx(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of jl)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,jl.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return jx(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"&&jx(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:xne,load:iTt,unload:oTt}=DUe(jx(A$)?new b$(A$):new T$);var wne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=xne(()=>{t.kill()});LUe(n,()=>{i()})};var Cne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=QA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=$Ue(r,n,i),{sourceStream:d,sourceError:f}=FUe(t,l),{options:p,fileDescriptors:h}=So.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},$Ue=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=UUe(t,e,...r),a=lx(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(Rne,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||pL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=GA(r,...n);return{destination:e(Rne)(i,o,s),pipeOptions:s}}if(So.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}`)},Rne=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),FUe=(t,e)=>{try{return{sourceStream:Tf(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=BUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw x$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},BUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return y$(t),n;if(e!==void 0)return _$(r),e},x$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>wf({error:t,command:Ine,escapedCommand:Ine,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Ine="source.pipe(destination)";var One=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 jUe}from"stream/promises";var Nne=(t,e,r)=>{let n=Gx.has(e)?GUe(t,e):zUe(t,e);return Ll(t,VUe,r.signal),Ll(e,HUe,r.signal),qUe(e),n},zUe=(t,e)=>{let r=Bl([t]);return If(r,e),Gx.set(e,r),r},GUe=(t,e)=>{let r=Gx.get(e);return r.add(t),r},qUe=async t=>{try{await jUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Gx.delete(t)},Gx=new WeakMap,VUe=2,HUe=1;import{aborted as WUe}from"util";var kne=(t,e)=>t===void 0?[]:[YUe(t,e)],YUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await WUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw x$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var qx=(t,...e)=>{if(kt(e[0]))return qx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Cne(t,...e),i=KUe({...n,destination:r});return i.pipe=qx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},KUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=ZUe(t,i);Pne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Nne(e,o,d);return await Promise.race([One(u),...kne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},ZUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as nFe}from"timers/promises";import{on as JUe}from"events";import{getDefaultHighWaterMark as XUe}from"stream";var Vx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return QUe(e,s),Dne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},QUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},w$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;eFe(e,s,t);let a=t.readableObjectMode&&!o;return Dne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},eFe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},Dne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=JUe(t,"data",{signal:e.signal,highWaterMark:Mne,highWatermark:Mne});return tFe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},R$=XUe(!0),Mne=R$,tFe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=rFe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Fl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*$_(a)}},rFe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Dx(t,r,!e),Mx(t,i,!n,{})].filter(Boolean);var Lne=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=iFe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([oFe(t),d]);return}let f=i$(c,r),p=w$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([sFe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},iFe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Ux({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=w$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Wre(a,t,r,o)},oFe=async t=>{await nFe(),t.readableFlowing===null&&t.resume()},sFe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await xx(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await wx(r,{maxBuffer:o})):await xf(r,{maxBuffer:o})}catch(a){return $ne(Wte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},C$=async t=>{try{return await t}catch(e){return $ne(e)}},$ne=({bufferedData:t})=>l7(t)?new Uint8Array(t):t;import{finished as aFe}from"stream/promises";var j_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=cFe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],aFe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||dFe(a,e,r,n)}finally{s.abort()}},cFe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&lFe(t,r,n),n},lFe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{uFe(e,r),n.call(t,...i)}},uFe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},dFe=(t,e,r,n)=>{if(!fFe(t,e,r,n))throw t},fFe=(t,e,r,n=!0)=>r.propagating?Une(t)||Hx(t):(r.propagating=!0,I$(r,e)===n?Une(t):Hx(t)),I$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Hx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Une=t=>t?.code==="EPIPE";var Fne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>P$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),P$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=j_(t,e,l);if(I$(l,e)){await u;return}let[d]=await Promise.all([Lne({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)?Bl([t,e].filter(Boolean)):void 0,jne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>P$({...pFe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:hFe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),pFe=({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}},hFe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as mFe}from"events";var zne=t=>_f(t,"ipc"),Gne=(t,e)=>{let r=XA(t);_o({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var qne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=zne(o),a=Ss(e,"ipc"),c=Ss(r,"ipc");for await(let l of p$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Yte(t,i,c),i.push(l)),s&&Gne(l,o);return i},Vne=async(t,e)=>(await Promise.allSettled([t]),e);var Hne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:E})=>{let b=Xre(t,f),A={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=Fne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),w=jne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),C=[],P=qne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:C,verboseInfo:p}),k=gFe(m,t,A),R=_Fe(h,A);try{return await Promise.race([Promise.all([{},ene(b),Promise.all(S),w,P,wte(t,d),...k,...R]),y,yFe(t,E),...vte(t,o,f,E),...zee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...Ste({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch($){return f.terminationReason??="other",Promise.all([{error:$},b,Promise.all(S.map(_=>C$(_))),C$(w),Vne(P,C),Promise.allSettled(k),Promise.allSettled(R)])}},gFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:j_(n,i,r)),_Fe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>ki(o,{checkOpen:!1})&&!Pi(o)).map(({type:i,value:o,stream:s=o})=>j_(s,n,e,{isSameDirection:ei.has(i),stopOnExit:i==="native"}))),yFe=async(t,{signal:e})=>{let[r]=await mFe(t,"error",{signal:e});throw r};var Wne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),z_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=yo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Pf=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 SFe}from"stream";import{callbackify as EFe}from"util";import{finished as Yne}from"stream/promises";var O$=async t=>{if(t!==void 0)try{await N$(t)}catch{}},Kne=async t=>{if(t!==void 0)try{await k$(t)}catch{}},N$=async t=>{await Yne(t,{cleanup:!0,readable:!1,writable:!0})},k$=async t=>{await Yne(t,{cleanup:!0,readable:!0,writable:!1})},Wx=async(t,e)=>{if(await t,e)throw e},Yx=(t,e,r)=>{r&&!Hx(r)?t.destroy(r):e&&t.destroy()};var Zne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||vn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=M$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=D$(a,s),{read:f,onStdoutDataDone:p}=L$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new SFe({read:f,destroy:EFe(U$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return $$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},M$=(t,e,r)=>{let n=Tf(t,e),i=z_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},D$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:R$},L$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=yo(),s=Vx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){vFe(this,s,o)},onStdoutDataDone:o}},vFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},$$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await k$(t),await n,await O$(i),await e,r.readable&&r.push(null)}catch(o){await O$(i),Jne(r,o)}},U$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Pf(r,e)&&(Jne(t,n),await Wx(e,n))},Jne=(t,e)=>{Yx(t,t.readable,e)};import{Writable as TFe}from"stream";import{callbackify as Xne}from"util";var Qne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=F$(t,r,e),s=new TFe({...B$(n,t,i),destroy:Xne(z$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return j$(n,s),s},F$=(t,e,r)=>{let n=lx(t,e),i=z_(r,n,"writableFinal"),o=z_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},B$=(t,e,r)=>({write:bFe.bind(void 0,t),final:Xne(AFe.bind(void 0,t,e,r))}),bFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},AFe=async(t,e,r)=>{await Pf(r,e)&&(t.writable&&t.end(),await e)},j$=async(t,e,r)=>{try{await N$(t),e.writable&&e.end()}catch(n){await Kne(r),eie(e,n)}},z$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Pf(r,e),await Pf(n,e)&&(eie(t,i),await Wx(e,i))},eie=(t,e)=>{Yx(t,t.writable,e)};import{Duplex as xFe}from"stream";import{callbackify as wFe}from"util";var tie=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||vn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=M$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=F$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=D$(c,a),{read:y,onStdoutDataDone:E}=L$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new xFe({read:y,...B$(u,t,d),destroy:wFe(RFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return $$({subprocessStdout:c,onStdoutDataDone:E,readable:b,subprocess:t,subprocessStdin:u}),j$(u,b,c),b},RFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([U$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),z$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var G$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||vn.has(e),s=Tf(t,r),a=Vx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return CFe(a,s,t)},CFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var rie=(t,{encoding:e})=>{let r=Wne();t.readable=Zne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Qne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=tie.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=G$.bind(void 0,t,e),t[Symbol.asyncIterator]=G$.bind(void 0,t,e,{})};var nie=(t,e)=>{for(let[r,n]of PFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},IFe=(async()=>{})().constructor.prototype,PFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(IFe,t)]);var iie=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=kFe(t,e,r),{subprocess:f,promise:p}=DFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=qx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),nie(f,p),So.set(f,{options:u,fileDescriptors:d}),f},kFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ex(t,e,r),{file:a,commandArguments:c,options:l}=Ex(t,e,r),u=MFe(l),d=mne(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},MFe=({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}},DFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=NFe(...vx(t,e,r))}catch(h){return dne({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;OFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Ane(c,a,l),wne(c,r,l);let d={},f=yo();c.kill=Bee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Bne(c,r),rie(c,r),cne(c,r);let p=LFe({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}},LFe=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 Hne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((S,w)=>vs(S,e,w)),b=vs(m,e,"all"),A=$Fe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Rf(A,n,e)},$Fe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?L_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Eo,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Ix({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Kx=(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)=>FFe.has(t)&&kt(e)&&kt(r)?{...e,...r}:r,FFe=new Set(["env",...SL]);var Ua=(t,e,r,n)=>{let i=(s,a,c)=>Ua(s,a,r,c),o=(...s)=>BFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},BFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(kt(o))return i(t,Kx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=jFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?rne(a,c,l):iie(a,c,l,i)},jFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=m7(e)?g7(e,r):[e,...r],[s,a,c]=GA(...o),l=Kx(Kx(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 oie=({file:t,commandArguments:e})=>aie(t,e),sie=({file:t,commandArguments:e})=>({...aie(t,e),isSync:!0}),aie=(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]=zFe(t);return{file:r,commandArguments:n}},zFe=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(GFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},GFe=/ +/g;var cie=(t,e,r)=>{t.sync=e(qFe,r),t.s=t.sync},lie=({options:t})=>uie(t),qFe=({options:t})=>({...uie(t),isSync:!0}),uie=t=>({options:{...VFe(t),...t}}),VFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},die={preferLocal:!0};var fie=Ua(()=>({})),YAt=Ua(()=>({isSync:!0})),pie=Ua(oie),KAt=Ua(sie),ZAt=Ua(bte),JAt=Ua(lie,{},die,cie),{sendMessage:XAt,getOneMessage:QAt,getEachMessage:ext,getCancelSignal:txt}=lne();var hie=!1,mie=()=>{hie=!0},To=()=>hie;var G_=null,gie=t=>(G_&&G_.destroy(),G_=new bo({totalAllowedTime:t}),G_),_ie=()=>G_;var bo=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&&To())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await MA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{oe.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 yie={name:"@netlify/agent-runner-cli",type:"module",version:"1.164.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.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var KFe=WFe(import.meta.url),ZFe=Ts.dirname(KFe),JFe=YFe(import.meta.url),Of=ce("shell"),q$=new Set,Sie={preferLocal:!0},qt=(t,e,r)=>{let[n,i]=XFe(e,r),o={...Sie,...i},s=fie(t,n,o);vie(s,o),Aie(s);let a=r?.idleTimeout;return a&&a>0&&bie(s,a),s},Eie=(t,e)=>{let r={...Sie,...e},n=pie(t,r);return vie(n,r),Aie(n),e?.idleTimeout&&e.idleTimeout>0&&bie(n,e.idleTimeout),n},XFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},vie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(bs.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new __).pipe(bs.stdout),t.stderr?.pipe(new __).pipe(bs.stderr);return}t.stdout?.pipe(bs.stdout),t.stderr?.pipe(bs.stderr)},V$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(bs.kill(-t.pid,e),Of.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Of.error("Error killing process:",r),!1}},Tie=t=>V$(t,"SIGKILL"),bie=(t,e)=>{let r=null,n=()=>{Of.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Of.log(`Force killing idle process ${t.pid}`),Tie(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=>{q$.add(t);let e=_ie();if(e){let r=e.onTimesUp(()=>{Of.log(`Global timer expired, killing process ${t.pid}`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Of.log(`Force killing process ${t.pid} after timeout`),Tie(t))},5e3)});t.on("exit",()=>{q$.delete(t),r()}),t.on("error",()=>{q$.delete(t),r()})}};function Jx(t,e){return!!Mi(t,e)}function Mi(t,e){if(!bs.env.NETLIFY_LOCAL_MODE)try{let i=JFe.resolve(yie.name),o=Ts.dirname(i);for(;o!==Ts.dirname(o);){let s=Ts.dirname(o);if(Ts.basename(s)==="node_modules"){let a=Ts.join(s,".bin",e);if(Zx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(bs.env.NODE_PATH){let i=Ts.join(bs.env.NODE_PATH,".bin",e);if(Zx.existsSync(i))return i}let r=Ts.join(t,"node_modules",".bin",e);if(Zx.existsSync(r))return r;let n=Ts.join(ZFe,"..","node_modules",".bin",e);if(Zx.existsSync(n))return n}var QFe=ce("utils"),eBe=t=>new Promise(e=>{setTimeout(e,t)});var H$=t=>{try{return new URL(t).hostname||null}catch{return null}},Xx=(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 eBe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Fa=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},xie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):QFe.error("Could not parse JSON",n))}},tBe=t=>t.charAt(0).toUpperCase()+t.slice(1),Ao=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():tBe(e)).join(" ");function As(t,e){e&&t.log(`Skill invoked: ${e}`)}var Qx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),wie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var W$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},rBe=1e4,Y$=(t,e=rBe)=>{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 nBe}from"crypto";import{createReadStream as iBe}from"fs";import ew from"fs/promises";import Oie from"os";import tw from"path";var Rie=ce("repo"),Nie="runner-diffs-",kie=t=>`${Nie}${t}-`,Mie=async t=>{let e=Oie.tmpdir(),r;try{r=await ew.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(Nie)&&!n.startsWith(kie(t))).map(n=>ew.rm(tw.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},rn=(t,e={})=>qt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),rw=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Rie.info("Getting runner diffs");let n=await sBe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=cBe(o);await lBe(h,r)}Rie.info("Changes after processing"),await Z$(r);let s=await J$(o,r);if(await K$(s,r),i=await aBe(r),!i)return{hasChanges:!1,ignored:s};await rn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await ew.mkdtemp(tw.join(Oie.tmpdir(),kie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:E})=>{let b=tw.join(a,y);await rn([...E?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await ew.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await 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 Iie(d,h)||(f=h)}await Pie(r),oe.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Iie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Cie=async t=>{let e=nBe("sha256");for await(let r of iBe(t))e.update(r);return e.digest("hex")},Iie=async(t,e)=>t.size===e.size&&await Cie(t.path)===await Cie(e.path),Pie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await rn(["reset","--soft","HEAD~1"],{cwd:t})},K$=async(t=[],e=process.cwd())=>{await rn(["add",".",...t],{cwd:e})},Z$=async(t=process.cwd())=>{let e=await rn(["status","-s"],{cwd:t});return String(e.stdout??"")},Die=/.. (.+)?\.log$/,oBe=[Die],sBe=async(t=process.cwd())=>{let e=await Z$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
114
|
+
if (condition) { yield value; }`)};import{Buffer as u1e}from"buffer";import{StringDecoder as d1e}from"string_decoder";var Dx=(t,e,r)=>{if(r)return;if(t)return{transform:f1e.bind(void 0,new TextEncoder)};let n=new d1e(e);return{transform:p1e.bind(void 0,n),final:h1e.bind(void 0,n)}},f1e=function*(t,e){u1e.isBuffer(e)?yield ys(e):typeof e=="string"?yield t.encode(e):yield e},p1e=function*(t,e){yield Gt(e)?t.write(e):e},h1e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Bre}from"util";var a$=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}}),Lx=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=g1e}=e[r];for await(let i of n(t))yield*Lx(i,e,r+1)},jre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*m1e(r,Number(e),t)},m1e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Lx(n,r,e+1)},zre=Bre(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),g1e=function*(t){yield t};var c$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Gre=(t,e)=>[...e.flatMap(r=>[...Fl(r,t,0)]),...$_(t)],Fl=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=y1e}=e[r];for(let i of n(t))yield*Fl(i,e,r+1)},$_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*_1e(r,Number(e),t)},_1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Fl(n,r,e+1)},y1e=function*(t){yield t};var l$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Vre(t,s,o),l=Ul(e),u=Ul(r),d=l?a$.bind(void 0,Lx,a):c$.bind(void 0,Fl),f=l||u?a$.bind(void 0,jre,a):c$.bind(void 0,$_),p=l||u?zre.bind(void 0,a):void 0;return{stream:new S1e({writableObjectMode:n,writableHighWaterMark:qre(n),readableObjectMode:i,readableHighWaterMark:qre(i),transform(m,y,E){d([m,c,0],this,E)},flush(m){f([c],this,m)},destroy:p})}},$x=(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=Vre(s,r,a);t=Gre(c,t)}return t},Vre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:$re(n,a)},Dx(r,s,n),Mx(r,o,n,c),{transform:t,final:e},{transform:Ure(i,a)},Lre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Hre=(t,e)=>{for(let r of E1e(t))v1e(t,r,e)},E1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),v1e=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${$a[a]} with synchronous methods.`)}let s=i.map(({contents:a})=>a).map(a=>T1e(a,n));r.input=R_(s)},T1e=(t,e)=>{let r=$x(t,e,"utf8",!0);return b1e(r),R_(r)},b1e=t=>{let e=t.find(r=>typeof r!="string"&&!Gt(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 R1e,appendFileSync as C1e}from"fs";var Ux=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&_f(r,n)&&!vn.has(e)&&A1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&x1e.has(o))||t.every(({type:i})=>ei.has(i))),A1e=t=>t===1||t===2,x1e=new Set(["pipe","overlapped"]),Wre=async(t,e,r,n)=>{for await(let i of t)w1e(e)||Kre(i,r,n)},Yre=(t,e,r)=>{for(let n of t)Kre(n,e,r)},w1e=t=>t._readableState.pipes.length>0,Kre=(t,e,r)=>{let n=XA(t);_o({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Zre=({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)=>I1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},I1e=({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=Jte(t,o,d),p=ys(f),{stdioItems:h,objectMode:m}=e[r],y=P1e([p],h,c,n),{serializedResult:E,finalResult:b=E}=O1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});N1e({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&&k1e(E,h,i),A}catch(S){return n.error=S,A}},P1e=(t,e,r,n)=>{try{return $x(t,e,r,!1)}catch(i){return n.error=i,t}},O1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:R_(t)};let s=d7(t,r);return n[o]?{serializedResult:s,finalResult:s$(s,!i[o],e)}:{serializedResult:s}},N1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!Ux({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=s$(t,!1,s);try{Yre(a,e,n)}catch(c){r.error??=c}},k1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Nx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?C1e(n,t):(r.add(o),R1e(n,t))}};var Jre=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,vs(e,r,"all")]:Array.isArray(e)?[vs(t,r,"all"),...e]:Gt(t)&&Gt(e)?mL([t,e]):`${t}${e}`};import{once as u$}from"events";var Xre=async(t,e)=>{let[r,n]=await M1e(t);return e.isForcefullyTerminated??=!1,[r,n]},M1e=async t=>{let[e,r]=await Promise.allSettled([u$(t,"spawn"),u$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Qre(t):r.value},Qre=async t=>{try{return await u$(t,"exit")}catch{return Qre(t)}},ene=async t=>{let[e,r]=await t;if(!D1e(e,r)&&d$(e,r))throw new Oi;return[e,r]},D1e=(t,e)=>t===void 0&&e===void 0,d$=(t,e)=>t!==0||e!==null;var tne=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=L1e(t,e,r),s=o?.code==="ETIMEDOUT",a=Zte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},L1e=(t,e,r)=>t!==void 0?t:d$(e,r)?new Oi:void 0;var rne=(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=j1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Rf(d,c,l)},U1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ex(t,e,r),a=F1e(r),{file:c,commandArguments:l,options:u}=Ex(t,e,a);B1e(u);let d=Nre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},F1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,B1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Fx("ipcInput"),t&&Fx("ipc: true"),r&&Fx("detached: true"),n&&Fx("cancelSignal")},Fx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},j1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=z1e({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}=tne(c,r),{output:h,error:m=l}=Zre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,A)=>vs(b,r,A)),E=vs(Jre(h,r),r,"all");return q1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:E,options:r,command:n,escapedCommand:i,startTime:a})},z1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Hre(o,r);let a=G1e(r);return $1e(...vx(t,e,a))}catch(a){return wf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},G1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:Cx(e)}),q1e=({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?Ix({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):L_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as OFe}from"events";import{spawn as NFe}from"child_process";import ane from"process";import{once as f$,on as V1e}from"events";var nne=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(Ef({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:hx(t)}),H1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),H1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ux(e,i);let o=La(t,e,r),s=new AbortController;try{return await Promise.race([W1e(o,n,s),Y1e(o,r,s),K1e(o,r,s)])}catch(a){throw vf(t),a}finally{s.abort(),dx(e,i)}},W1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await f$(t,"message",{signal:r});return n}for await(let[n]of V1e(t,"message",{signal:r}))if(e(n))return n},Y1e=async(t,e,{signal:r})=>{await f$(t,"disconnect",{signal:r}),Gee(e)},K1e=async(t,e,{signal:r})=>{let[n]=await f$(t,"strict:error",{signal:r});throw ax(n,e)};import{once as one,on as Z1e}from"events";var sne=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>p$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),p$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{Ef({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:hx(t)}),ux(e,o);let s=La(t,e,r),a=new AbortController,c={};return J1e(t,s,a),X1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),Q1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},J1e=async(t,e,r)=>{try{await one(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},X1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await one(t,"strict:error",{signal:r.signal});n.error=ax(i,e),r.abort()}catch{}},Q1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of Z1e(r,"message",{signal:o.signal}))ine(s),yield c}catch{ine(s)}finally{o.abort(),dx(e,a),n||vf(t),i&&await t}},ine=({error:t})=>{if(t)throw t};var cne=(t,{ipc:e})=>{Object.assign(t,une(t,!1,e))},lne=()=>{let t=ane,e=!0,r=ane.channel!==void 0;return{...une(t,e,r),getCancelSignal:gte.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},une=(t,e,r)=>({sendMessage:yx.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:nne.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:sne.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as eUe}from"child_process";import{PassThrough as tUe,Readable as rUe,Writable as nUe,Duplex as iUe}from"stream";var dne=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{n$(n);let a=new eUe;oUe(a,n),Object.assign(a,{readable:sUe,writable:aUe,duplex:cUe});let c=wf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=lUe(c,s,i);return{subprocess:a,promise:l}},oUe=(t,e)=>{let r=U_(),n=U_(),i=U_(),o=Array.from({length:e.length-3},U_),s=U_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},U_=()=>{let t=new tUe;return t.end(),t},sUe=()=>new rUe({read(){}}),aUe=()=>new nUe({write(){}}),cUe=()=>new iUe({read(){},write(){}}),lUe=async(t,e,r)=>Rf(t,e,r);import{createReadStream as fne,createWriteStream as pne}from"fs";import{Buffer as uUe}from"buffer";import{Readable as F_,Writable as dUe,Duplex as fUe}from"stream";var mne=(t,e)=>kx(pUe,t,e,!1),B_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${$a[t]}.`)},hne={fileNumber:B_,generator:l$,asyncGenerator:l$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:fUe.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},pUe={input:{...hne,fileUrl:({value:t})=>({stream:fne(t)}),filePath:({value:{file:t}})=>({stream:fne(t)}),webStream:({value:t})=>({stream:F_.fromWeb(t)}),iterable:({value:t})=>({stream:F_.from(t)}),asyncIterable:({value:t})=>({stream:F_.from(t)}),string:({value:t})=>({stream:F_.from(t)}),uint8Array:({value:t})=>({stream:F_.from(uUe.from(t))})},output:{...hne,fileUrl:({value:t})=>({stream:pne(t)}),filePath:({value:{file:t,append:e}})=>({stream:pne(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:dUe.fromWeb(t)}),iterable:B_,asyncIterable:B_,string:B_,uint8Array:B_}};import{on as hUe,once as gne}from"events";import{PassThrough as mUe,getDefaultHighWaterMark as gUe}from"stream";import{finished as Sne}from"stream/promises";function Bl(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)m$(i);let e=t.some(({readableObjectMode:i})=>i),r=_Ue(t,e),n=new h$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var _Ue=(t,e)=>{if(t.length===0)return gUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},h$=class extends mUe{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(m$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=yUe(this,this.#e,this.#o);let r=vUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(m$(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},yUe=async(t,e,r)=>{Bx(t,_ne);let n=new AbortController;try{await Promise.race([SUe(t,n),EUe(t,e,r,n)])}finally{n.abort(),Bx(t,-_ne)}},SUe=async(t,{signal:e})=>{try{await Sne(t,{signal:e,cleanup:!0})}catch(r){throw Ene(t,r),r}},EUe=async(t,e,r,{signal:n})=>{for await(let[i]of hUe(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},m$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},vUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Bx(t,yne);let a=new AbortController;try{await Promise.race([TUe(o,e,a),bUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),AUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Bx(t,-yne)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?g$(t):xUe(t))},TUe=async(t,e,{signal:r})=>{try{await t,r.aborted||g$(e)}catch(n){r.aborted||Ene(e,n)}},bUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await Sne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;vne(s)?i.add(e):Tne(t,s)}},AUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await gne(t,i,{signal:o}),!t.readable)return gne(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},xUe=t=>{t.writable&&t.end()},Ene=(t,e)=>{vne(e)?g$(t):Tne(t,e)},vne=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",g$=t=>{(t.readable||t.writable)&&t.destroy()},Tne=(t,e)=>{t.destroyed||(t.once("error",wUe),t.destroy(e))},wUe=()=>{},Bx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},_ne=2,yne=1;import{finished as bne}from"stream/promises";var If=(t,e)=>{t.pipe(e),RUe(t,e),CUe(t,e)},RUe=async(t,e)=>{if(!(Pi(t)||Pi(e))){try{await bne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}_$(e)}},_$=t=>{t.writable&&t.end()},CUe=async(t,e)=>{if(!(Pi(t)||Pi(e))){try{await bne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}y$(t)}},y$=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})=>ei.has(c)))IUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!ei.has(c)))OUe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:Bl(o);If(s,i)}},IUe=(t,e,r,n)=>{r==="output"?If(t.stdio[n],e):If(e,t.stdio[n]);let i=PUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},PUe=["stdin","stdout","stderr"],OUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;NUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},NUe=(t,{signal:e})=>{Pi(t)&&Ll(t,kUe,e)},kUe=2;import{addAbortListener as LUe}from"events";var jl=[];jl.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&jl.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&jl.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var jx=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",S$=Symbol.for("signal-exit emitter"),E$=globalThis,MUe=Object.defineProperty.bind(Object),v$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(E$[S$])return E$[S$];MUe(E$,S$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},zx=class{},DUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),T$=class extends zx{onExit(){return()=>{}}load(){}unload(){}},b$=class extends zx{#e=A$.platform==="win32"?"SIGINT":"SIGHUP";#r=new v$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of jl)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!jx(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of jl)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,jl.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return jx(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"&&jx(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:xne,load:iTt,unload:oTt}=DUe(jx(A$)?new b$(A$):new T$);var wne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=xne(()=>{t.kill()});LUe(n,()=>{i()})};var Cne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=QA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=$Ue(r,n,i),{sourceStream:d,sourceError:f}=FUe(t,l),{options:p,fileDescriptors:h}=So.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},$Ue=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=UUe(t,e,...r),a=lx(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(Rne,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||pL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=GA(r,...n);return{destination:e(Rne)(i,o,s),pipeOptions:s}}if(So.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}`)},Rne=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),FUe=(t,e)=>{try{return{sourceStream:Tf(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=BUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw x$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},BUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return y$(t),n;if(e!==void 0)return _$(r),e},x$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>wf({error:t,command:Ine,escapedCommand:Ine,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Ine="source.pipe(destination)";var One=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 jUe}from"stream/promises";var Nne=(t,e,r)=>{let n=Gx.has(e)?GUe(t,e):zUe(t,e);return Ll(t,VUe,r.signal),Ll(e,HUe,r.signal),qUe(e),n},zUe=(t,e)=>{let r=Bl([t]);return If(r,e),Gx.set(e,r),r},GUe=(t,e)=>{let r=Gx.get(e);return r.add(t),r},qUe=async t=>{try{await jUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Gx.delete(t)},Gx=new WeakMap,VUe=2,HUe=1;import{aborted as WUe}from"util";var kne=(t,e)=>t===void 0?[]:[YUe(t,e)],YUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await WUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw x$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var qx=(t,...e)=>{if(kt(e[0]))return qx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=Cne(t,...e),i=KUe({...n,destination:r});return i.pipe=qx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},KUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=ZUe(t,i);Pne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Nne(e,o,d);return await Promise.race([One(u),...kne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},ZUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as nFe}from"timers/promises";import{on as JUe}from"events";import{getDefaultHighWaterMark as XUe}from"stream";var Vx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return QUe(e,s),Dne({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},QUe=async(t,e)=>{try{await t}catch{}finally{e.abort()}},w$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;eFe(e,s,t);let a=t.readableObjectMode&&!o;return Dne({stream:t,controller:s,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},eFe=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},Dne=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})=>{let a=JUe(t,"data",{signal:e.signal,highWaterMark:Mne,highWatermark:Mne});return tFe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},R$=XUe(!0),Mne=R$,tFe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=rFe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Fl(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*$_(a)}},rFe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Dx(t,r,!e),Mx(t,i,!n,{})].filter(Boolean);var Lne=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=iFe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([oFe(t),d]);return}let f=i$(c,r),p=w$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([sFe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},iFe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!Ux({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=w$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Wre(a,t,r,o)},oFe=async t=>{await nFe(),t.readableFlowing===null&&t.resume()},sFe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await xx(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await wx(r,{maxBuffer:o})):await xf(r,{maxBuffer:o})}catch(a){return $ne(Wte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},C$=async t=>{try{return await t}catch(e){return $ne(e)}},$ne=({bufferedData:t})=>l7(t)?new Uint8Array(t):t;import{finished as aFe}from"stream/promises";var j_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=cFe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],aFe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||dFe(a,e,r,n)}finally{s.abort()}},cFe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&lFe(t,r,n),n},lFe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{uFe(e,r),n.call(t,...i)}},uFe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},dFe=(t,e,r,n)=>{if(!fFe(t,e,r,n))throw t},fFe=(t,e,r,n=!0)=>r.propagating?Une(t)||Hx(t):(r.propagating=!0,I$(r,e)===n?Une(t):Hx(t)),I$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",Hx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Une=t=>t?.code==="EPIPE";var Fne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>P$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),P$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=j_(t,e,l);if(I$(l,e)){await u;return}let[d]=await Promise.all([Lne({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)?Bl([t,e].filter(Boolean)):void 0,jne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>P$({...pFe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:hFe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),pFe=({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}},hFe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as mFe}from"events";var zne=t=>_f(t,"ipc"),Gne=(t,e)=>{let r=XA(t);_o({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var qne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=zne(o),a=Ss(e,"ipc"),c=Ss(r,"ipc");for await(let l of p$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Yte(t,i,c),i.push(l)),s&&Gne(l,o);return i},Vne=async(t,e)=>(await Promise.allSettled([t]),e);var Hne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:E})=>{let b=Xre(t,f),A={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=Fne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),w=jne({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:A}),C=[],P=qne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:C,verboseInfo:p}),k=gFe(m,t,A),R=_Fe(h,A);try{return await Promise.race([Promise.all([{},ene(b),Promise.all(S),w,P,wte(t,d),...k,...R]),y,yFe(t,E),...vte(t,o,f,E),...zee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:E}),...Ste({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:E})])}catch($){return f.terminationReason??="other",Promise.all([{error:$},b,Promise.all(S.map(_=>C$(_))),C$(w),Vne(P,C),Promise.allSettled(k),Promise.allSettled(R)])}},gFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:j_(n,i,r)),_Fe=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:o=i})=>ki(o,{checkOpen:!1})&&!Pi(o)).map(({type:i,value:o,stream:s=o})=>j_(s,n,e,{isSameDirection:ei.has(i),stopOnExit:i==="native"}))),yFe=async(t,{signal:e})=>{let[r]=await mFe(t,"error",{signal:e});throw r};var Wne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),z_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=yo();return i.push(o),{resolve:o.resolve.bind(o),promises:i}},Pf=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 SFe}from"stream";import{callbackify as EFe}from"util";import{finished as Yne}from"stream/promises";var O$=async t=>{if(t!==void 0)try{await N$(t)}catch{}},Kne=async t=>{if(t!==void 0)try{await k$(t)}catch{}},N$=async t=>{await Yne(t,{cleanup:!0,readable:!1,writable:!0})},k$=async t=>{await Yne(t,{cleanup:!0,readable:!0,writable:!1})},Wx=async(t,e)=>{if(await t,e)throw e},Yx=(t,e,r)=>{r&&!Hx(r)?t.destroy(r):e&&t.destroy()};var Zne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||vn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=M$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=D$(a,s),{read:f,onStdoutDataDone:p}=L$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new SFe({read:f,destroy:EFe(U$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return $$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},M$=(t,e,r)=>{let n=Tf(t,e),i=z_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},D$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:R$},L$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=yo(),s=Vx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){vFe(this,s,o)},onStdoutDataDone:o}},vFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},$$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await k$(t),await n,await O$(i),await e,r.readable&&r.push(null)}catch(o){await O$(i),Jne(r,o)}},U$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Pf(r,e)&&(Jne(t,n),await Wx(e,n))},Jne=(t,e)=>{Yx(t,t.readable,e)};import{Writable as TFe}from"stream";import{callbackify as Xne}from"util";var Qne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=F$(t,r,e),s=new TFe({...B$(n,t,i),destroy:Xne(z$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return j$(n,s),s},F$=(t,e,r)=>{let n=lx(t,e),i=z_(r,n,"writableFinal"),o=z_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},B$=(t,e,r)=>({write:bFe.bind(void 0,t),final:Xne(AFe.bind(void 0,t,e,r))}),bFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},AFe=async(t,e,r)=>{await Pf(r,e)&&(t.writable&&t.end(),await e)},j$=async(t,e,r)=>{try{await N$(t),e.writable&&e.end()}catch(n){await Kne(r),eie(e,n)}},z$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Pf(r,e),await Pf(n,e)&&(eie(t,i),await Wx(e,i))},eie=(t,e)=>{Yx(t,t.writable,e)};import{Duplex as xFe}from"stream";import{callbackify as wFe}from"util";var tie=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||vn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=M$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=F$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=D$(c,a),{read:y,onStdoutDataDone:E}=L$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new xFe({read:y,...B$(u,t,d),destroy:wFe(RFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return $$({subprocessStdout:c,onStdoutDataDone:E,readable:b,subprocess:t,subprocessStdin:u}),j$(u,b,c),b},RFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([U$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),z$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var G$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||vn.has(e),s=Tf(t,r),a=Vx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return CFe(a,s,t)},CFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var rie=(t,{encoding:e})=>{let r=Wne();t.readable=Zne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Qne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=tie.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=G$.bind(void 0,t,e),t[Symbol.asyncIterator]=G$.bind(void 0,t,e,{})};var nie=(t,e)=>{for(let[r,n]of PFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},IFe=(async()=>{})().constructor.prototype,PFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(IFe,t)]);var iie=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=kFe(t,e,r),{subprocess:f,promise:p}=DFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=qx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),nie(f,p),So.set(f,{options:u,fileDescriptors:d}),f},kFe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=ex(t,e,r),{file:a,commandArguments:c,options:l}=Ex(t,e,r),u=MFe(l),d=mne(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},MFe=({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}},DFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=NFe(...vx(t,e,r))}catch(h){return dne({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;OFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Ane(c,a,l),wne(c,r,l);let d={},f=yo();c.kill=Bee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Bne(c,r),rie(c,r),cne(c,r);let p=LFe({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}},LFe=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 Hne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let E=h.map((S,w)=>vs(S,e,w)),b=vs(m,e,"all"),A=$Fe({errorInfo:d,exitCode:f,signal:p,stdio:E,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Rf(A,n,e)},$Fe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?L_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Eo,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Ix({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Kx=(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)=>FFe.has(t)&&kt(e)&&kt(r)?{...e,...r}:r,FFe=new Set(["env",...SL]);var Ua=(t,e,r,n)=>{let i=(s,a,c)=>Ua(s,a,r,c),o=(...s)=>BFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},BFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(kt(o))return i(t,Kx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=jFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?rne(a,c,l):iie(a,c,l,i)},jFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=m7(e)?g7(e,r):[e,...r],[s,a,c]=GA(...o),l=Kx(Kx(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 oie=({file:t,commandArguments:e})=>aie(t,e),sie=({file:t,commandArguments:e})=>({...aie(t,e),isSync:!0}),aie=(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]=zFe(t);return{file:r,commandArguments:n}},zFe=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(GFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},GFe=/ +/g;var cie=(t,e,r)=>{t.sync=e(qFe,r),t.s=t.sync},lie=({options:t})=>uie(t),qFe=({options:t})=>({...uie(t),isSync:!0}),uie=t=>({options:{...VFe(t),...t}}),VFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},die={preferLocal:!0};var fie=Ua(()=>({})),YAt=Ua(()=>({isSync:!0})),pie=Ua(oie),KAt=Ua(sie),ZAt=Ua(bte),JAt=Ua(lie,{},die,cie),{sendMessage:XAt,getOneMessage:QAt,getEachMessage:ext,getCancelSignal:txt}=lne();var hie=!1,mie=()=>{hie=!0},To=()=>hie;var G_=null,gie=t=>(G_&&G_.destroy(),G_=new bo({totalAllowedTime:t}),G_),_ie=()=>G_;var bo=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&&To())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await MA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{oe.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 yie={name:"@netlify/agent-runner-cli",type:"module",version:"1.164.1",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var KFe=WFe(import.meta.url),ZFe=Ts.dirname(KFe),JFe=YFe(import.meta.url),Of=ce("shell"),q$=new Set,Sie={preferLocal:!0},qt=(t,e,r)=>{let[n,i]=XFe(e,r),o={...Sie,...i},s=fie(t,n,o);vie(s,o),Aie(s);let a=r?.idleTimeout;return a&&a>0&&bie(s,a),s},Eie=(t,e)=>{let r={...Sie,...e},n=pie(t,r);return vie(n,r),Aie(n),e?.idleTimeout&&e.idleTimeout>0&&bie(n,e.idleTimeout),n},XFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},vie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(bs.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new __).pipe(bs.stdout),t.stderr?.pipe(new __).pipe(bs.stderr);return}t.stdout?.pipe(bs.stdout),t.stderr?.pipe(bs.stderr)},V$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(bs.kill(-t.pid,e),Of.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Of.error("Error killing process:",r),!1}},Tie=t=>V$(t,"SIGKILL"),bie=(t,e)=>{let r=null,n=()=>{Of.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Of.log(`Force killing idle process ${t.pid}`),Tie(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=>{q$.add(t);let e=_ie();if(e){let r=e.onTimesUp(()=>{Of.log(`Global timer expired, killing process ${t.pid}`),V$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Of.log(`Force killing process ${t.pid} after timeout`),Tie(t))},5e3)});t.on("exit",()=>{q$.delete(t),r()}),t.on("error",()=>{q$.delete(t),r()})}};function Jx(t,e){return!!Mi(t,e)}function Mi(t,e){if(!bs.env.NETLIFY_LOCAL_MODE)try{let i=JFe.resolve(yie.name),o=Ts.dirname(i);for(;o!==Ts.dirname(o);){let s=Ts.dirname(o);if(Ts.basename(s)==="node_modules"){let a=Ts.join(s,".bin",e);if(Zx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(bs.env.NODE_PATH){let i=Ts.join(bs.env.NODE_PATH,".bin",e);if(Zx.existsSync(i))return i}let r=Ts.join(t,"node_modules",".bin",e);if(Zx.existsSync(r))return r;let n=Ts.join(ZFe,"..","node_modules",".bin",e);if(Zx.existsSync(n))return n}var QFe=ce("utils"),eBe=t=>new Promise(e=>{setTimeout(e,t)});var H$=t=>{try{return new URL(t).hostname||null}catch{return null}},Xx=(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 eBe(e),!n)return r=!1,o=null,u;let d=n,f=i;n=null,i=[],u=await t(...d),f.forEach(p=>{p(u)})}})(),l};return s.flush=async()=>{if((r||n)&&o)return await o,s.flush()},s.cancel=()=>{n=null,i.forEach(a=>a(void 0)),i=[]},s},Fa=(t,e,r=!1)=>{let n=null,i=null,o=null,s=function(...a){i=a,o=this;let c=r&&!n;clearTimeout(n),n=setTimeout(()=>{n=null,r||(t.apply(o,i),i=null,o=null)},e),c&&(t.apply(o,i),i=null,o=null)};return s.cancel=()=>{clearTimeout(n),n=null,i=null,o=null},s.flush=()=>{if(n){clearTimeout(n);let a=i,c=o;n=null,i=null,o=null,t.apply(c,a)}},s},xie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):QFe.error("Could not parse JSON",n))}},tBe=t=>t.charAt(0).toUpperCase()+t.slice(1),Ao=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():tBe(e)).join(" ");function As(t,e){e&&t.log(`Skill invoked: ${e}`)}var Qx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),wie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var W$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},rBe=1e4,Y$=(t,e=rBe)=>{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 nBe}from"crypto";import{createReadStream as iBe}from"fs";import ew from"fs/promises";import Oie from"os";import tw from"path";var Rie=ce("repo"),Nie="runner-diffs-",kie=t=>`${Nie}${t}-`,Mie=async t=>{let e=Oie.tmpdir(),r;try{r=await ew.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(Nie)&&!n.startsWith(kie(t))).map(n=>ew.rm(tw.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},rn=(t,e={})=>qt("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),rw=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{Rie.info("Getting runner diffs");let n=await sBe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=cBe(o);await lBe(h,r)}Rie.info("Changes after processing"),await Z$(r);let s=await J$(o,r);if(await K$(s,r),i=await aBe(r),!i)return{hasChanges:!1,ignored:s};await rn(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await ew.mkdtemp(tw.join(Oie.tmpdir(),kie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:E})=>{let b=tw.join(a,y);await rn([...E?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await ew.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await 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 Iie(d,h)||(f=h)}await Pie(r),oe.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await Iie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},Cie=async t=>{let e=nBe("sha256");for await(let r of iBe(t))e.update(r);return e.digest("hex")},Iie=async(t,e)=>t.size===e.size&&await Cie(t.path)===await Cie(e.path),Pie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await rn(["reset","--soft","HEAD~1"],{cwd:t})},K$=async(t=[],e=process.cwd())=>{await rn(["add",".",...t],{cwd:e})},Z$=async(t=process.cwd())=>{let e=await rn(["status","-s"],{cwd:t});return String(e.stdout??"")},Die=/.. (.+)?\.log$/,oBe=[Die],sBe=async(t=process.cwd())=>{let e=await Z$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
115
115
|
`).filter(i=>oBe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},aBe=async(t=process.cwd())=>{try{return await rn(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},q_=async(t=process.cwd())=>{let{stdout:e}=await rn(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},Lie=async(t=process.cwd())=>{let{stdout:e}=await rn(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},J$=async(t,e=process.cwd())=>{t||=await Z$(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
|
|
116
116
|
`).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${tw.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(Die)?.[1];o&&n.push(`:!${o}.log`)}),n},$ie=async(t=process.cwd())=>{await rn(["reset","--hard","HEAD"],{cwd:t})},Uie=async(t=process.cwd())=>{let e=await rn(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
|
|
117
117
|
`).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},cBe=t=>{let e=t.split(`
|
|
@@ -371,7 +371,7 @@ priority = 20
|
|
|
371
371
|
`),_r.log("Ask policy allows the read-only database query command",{allowedPrefixes:i})}let n=Oc.join(xS.homedir(),".gemini","ask-policy.toml");return await Mu.mkdir(Oc.dirname(n),{recursive:!0}),await Mu.writeFile(n,r.join(`
|
|
372
372
|
`),"utf-8"),n};async function Mz({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=Uh.cwd(),cliPath:c="netlify",abortSignal:l=void 0,onSessionId:u=void 0,forceLowEffortForCreditWrapUp:d=void 0}){let{prompt:f}=t,p=ap("gemini",t.effort);t.effort&&!p&&_r.log(`Effort '${t.effort}' is not available on ${tI}; using its default`);let h=d?"low":p;$qe({aiGateway:i});let m=await Uqe({aiGateway:i,config:t,model:t.model});await Dqe({model:m,effort:h});let y=[],E=[],b=[],A={},S=0,w=0,C,P,k,R,$,_=!!(o&&s),J=!1;_&&(J=await AS(s)),_&&!J&&(_r.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),oe.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let M=t.mode==="ask",g=M?await Fqe({config:t,cliPath:c}):void 0,v=[Mi(a,"gemini"),...m?["--model",m]:[],...M?["--approval-mode","default","--policy",g]:["--yolo"],"--skip-trust","--output-format","stream-json",...J?["-r",s]:[],"-p",""],I=`${Uh.env.NVM_BIN}/node`;_r.log(`Running ${I} ${v.join(" ")}`);let Y=e.utils.run(I,v,{all:!0,env:{...Uh.env,GEMINI_CLI_NO_RELAUNCH:"1"},cwd:a,idleTimeout:gs,cancelSignal:l});Y.stdin?.end(f);let G=Fa(()=>{r?.({steps:y,duration:w}),n?.({steps:E,duration:w}),E=[]},250),ue=(fe,_e)=>{fe.id=S,S+=1,b.push(fe),y.push(fe),E.push(fe),_e||G.flush(),G(),_e&&G.flush()},xe=m||"default";t.answeredInteraction||ue({title:`Using ${tI} with ${xe}`,category:H.Environment},!0);let Oe=Oqe.createInterface({input:Y.all});Oe.on("error",fe=>{_r.error("Readline interface error",{error:fe.message,stack:fe.stack})});let Me="",Pe=()=>{Me&&ue({message:Me.trim(),category:H.AgentMessage}),Me=""};Oe.on("line",fe=>{let _e;try{if(fe.startsWith("[API Error")){let He=fe.match(/\[api error: (.+?)]$/i)?.[1];_e={type:"error",value:xie(He,!1)?.error?.message||He||"Gemini encountered error"}}else _e=JSON.parse(fe)}catch{return}if(_e)switch(_e.type==="init"&&typeof _e.session_id=="string"&&(R=_e.session_id,u?.(R)),["message","result"].includes(_e.type)||Pe(),_e.type){case"message":{_e.role!=="user"&&_e.content&&(Me+=_e.content);break}case"tool_use":{if(_e.tool_name===Noe){if(_e.tool_id&&!$){let le=sc.safeParse(_e.parameters);le.success?($={questions:le.data.questions},Y.kill()):(_r.warn("Ignoring malformed ask tool input",{toolUseId:_e.tool_id,issues:ac(le.error.issues)}),oe.inc("inference.malformed_ask",1))}break}let He=kz[_e.tool_name]?.name??_e.tool_name,V=_e.parameters?.file_path,ae=V&&Oc.relative(a,V),N=_e.parameters?.command,O=_e.tool_name==="activate_skill"&&_e.parameters?.name,L=_e.tool_name==="run_shell_command"&&$s(N),B=[He,ae&&`\`${ae}\``,N&&`\`${N}\``].filter(Boolean).join(" ");if(O)B=`Use ${Ao(O)}`;else if(L)B="Generating the site";else if(_e.tool_name==="grep_search"){let{dir_path:le,pattern:se}=_e.parameters||{};le&&se?B=`Search in \`${le}\` for \`${se}\``:le?B=`Search in \`${le}\``:se&&(B=`Search for \`${se}\``)}else if(_e.tool_name==="update_topic"){let le=_e.parameters?.title;le&&(B=`${He} \`${le}\``)}let q={title:B,category:L?H.SiteGeneration:kz[_e.tool_name]?.category,...O&&{type:O}};A[_e.tool_id]=q,G.flush();break}case"tool_result":{let He=A[_e.tool_id];He&&(_e.output&&(He.message=`\`\`\`
|
|
373
373
|
${_e.output.trim()}
|
|
374
|
-
\`\`\``),ue(He,!0),Lqe(He));break}case"result":{w=_e.stats?.duration_ms,_e.stats&&(ka(_e.stats,m?{model:m}:{}),k=_e.stats),_e.status==="error"?P=_e.error?.message:C=Me.trim();break}case"error":{P=_e.error;break}case"finished":break;case"init":break;default:{_r.warn("Unhandled message type:",_e.type);break}}});let Ue=!1;if(await Y.catch(fe=>{Ue=Ya(fe,l),{error:P,result:C}=Nqe({catchError:fe,runCmd:Y,error:P,result:C,runnerName:"Gemini"})}),Oe.close(),$)return G.flush(),{steps:b,duration:w,agentSessionId:R,resolvedModel:m,usage:k,pendingInteraction:$};let Ce=Ue;return Ce&&(!C&&Me.trim()&&(C=Me.trim()),P=void 0),G.flush(),{steps:b,duration:w,result:await cc({initialResult:C,agentName:tI,hasError:!!P}),error:lc({error:P,agentName:tI}),isRetryableError:uc(P),isProviderUnavailableError:dc(P),resolvedModel:m,usage:k,agentSessionId:R,...h&&aue(m)?{effort:h}:{},...Ce?{aborted:!0}:{}}}var cue=async()=>{let t=Oc.join(xS.homedir(),".gemini");await Mu.rm(t,{recursive:!0,force:!0});let e=Oc.join(xS.homedir(),".agents","skills");await Mu.rm(e,{recursive:!0,force:!0})},lue={baseDir:Oc.join(xS.homedir(),".gemini"),include:["tmp"]};import Lz from"fs/promises";import hue from"os";import wS from"path";import Uz from"process";import zqe from"readline";import Bqe from"os";import fue from"path";import Dz from"fs";var uue=ce("opencode_install"),due="1.17.19",jqe=()=>fue.join(Bqe.homedir(),".netlify-agent-runner","opencode"),rI=async t=>{let e=Mi(t,"opencode");if(e)return e;let r=jqe(),n=fue.join(r,"node_modules",".bin","opencode");if(Dz.existsSync(n))return n;Dz.mkdirSync(r,{recursive:!0}),uue.log(`Installing opencode-ai@${due} on demand`);let i=Date.now();await qt("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${due}`],{cwd:r});let o=Date.now()-i;if(oe.timing("opencode.install_duration",o),uue.log(`Installed opencode-ai in ${o}ms`),!Dz.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Ks=ce("runner_opencode"),nI="OpenCode",mue="gateway",Gqe="z-ai/glm-5.
|
|
374
|
+
\`\`\``),ue(He,!0),Lqe(He));break}case"result":{w=_e.stats?.duration_ms,_e.stats&&(ka(_e.stats,m?{model:m}:{}),k=_e.stats),_e.status==="error"?P=_e.error?.message:C=Me.trim();break}case"error":{P=_e.error;break}case"finished":break;case"init":break;default:{_r.warn("Unhandled message type:",_e.type);break}}});let Ue=!1;if(await Y.catch(fe=>{Ue=Ya(fe,l),{error:P,result:C}=Nqe({catchError:fe,runCmd:Y,error:P,result:C,runnerName:"Gemini"})}),Oe.close(),$)return G.flush(),{steps:b,duration:w,agentSessionId:R,resolvedModel:m,usage:k,pendingInteraction:$};let Ce=Ue;return Ce&&(!C&&Me.trim()&&(C=Me.trim()),P=void 0),G.flush(),{steps:b,duration:w,result:await cc({initialResult:C,agentName:tI,hasError:!!P}),error:lc({error:P,agentName:tI}),isRetryableError:uc(P),isProviderUnavailableError:dc(P),resolvedModel:m,usage:k,agentSessionId:R,...h&&aue(m)?{effort:h}:{},...Ce?{aborted:!0}:{}}}var cue=async()=>{let t=Oc.join(xS.homedir(),".gemini");await Mu.rm(t,{recursive:!0,force:!0});let e=Oc.join(xS.homedir(),".agents","skills");await Mu.rm(e,{recursive:!0,force:!0})},lue={baseDir:Oc.join(xS.homedir(),".gemini"),include:["tmp"]};import Lz from"fs/promises";import hue from"os";import wS from"path";import Uz from"process";import zqe from"readline";import Bqe from"os";import fue from"path";import Dz from"fs";var uue=ce("opencode_install"),due="1.17.19",jqe=()=>fue.join(Bqe.homedir(),".netlify-agent-runner","opencode"),rI=async t=>{let e=Mi(t,"opencode");if(e)return e;let r=jqe(),n=fue.join(r,"node_modules",".bin","opencode");if(Dz.existsSync(n))return n;Dz.mkdirSync(r,{recursive:!0}),uue.log(`Installing opencode-ai@${due} on demand`);let i=Date.now();await qt("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${due}`],{cwd:r});let o=Date.now()-i;if(oe.timing("opencode.install_duration",o),uue.log(`Installed opencode-ai in ${o}ms`),!Dz.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Ks=ce("runner_opencode"),nI="OpenCode",mue="gateway",Gqe="z-ai/glm-5.2",qqe=new Set(["z-ai/glm-5.2","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),Vqe=(t,e)=>!t||!PA.includes(t)?t:e&&qqe.has(e)?"xhigh":"max",$z={bash:{name:"Run command",category:H.RunCommand},read:{name:"Read file",category:H.FileRead},write:{name:"Edit file",category:H.FileWrite},edit:{name:"Edit file",category:H.FileWrite},glob:{name:"Find files",category:H.Explore},grep:{name:"Search files",category:H.Explore},list:{name:"List directory",category:H.Explore},task:{name:"Task",category:H.Task},todowrite:{name:"Update task list",category:H.Todo},webfetch:{name:"Fetch web",category:H.Web},websearch:{name:"Search web",category:H.Web},skill:{name:"Use Skill",category:H.Skill}},pue=t=>$z[t]?.name||t,Hqe=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],Wqe=250,Yqe=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=sc.safeParse(e);return r.success?{questions:r.data.questions}:{issues:ac(r.error.issues)}},Kqe=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await Lz.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await Lz.rm(t,{force:!0}).catch(()=>{});let{questions:o,issues:s}=Yqe(i);if(!o){Ks.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:s}),oe.inc("inference.malformed_ask",1);return}r&&e(o)},Wqe);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function Zqe({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let o=e.modelVersionOverrides?.opencode?.[e.accountType];o?n=o:r||(n=Be().opencodeDefaultModel||Gqe),n&&(await i(n)||Ks.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function Jqe({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:o}=t;if(!i||!o)throw new Error("No token or url provided from AI Gateway");let s=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[mue]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:o},...Object.keys(s).length>0?{models:s}:{}}},...n?{mcp:Moe(n)}:{}};return{...Uz.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function Fz({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:o,cwd:s=Uz.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,y,E,b=0,A=0,S,w=await Zqe({config:t,aiGateway:n,model:d}),C=Vqe(f,w);Ks.log(f?`Requesting reasoning effort '${f}' for model '${w}'${C===f?"":` (sent as '${C}')`}; ignored if unsupported`:`No reasoning effort requested for model '${w}'; running at its own default`);let P=Be().questionsEnabled?await Doe():void 0,k=Jqe({aiGateway:n,model:w,effort:C,questionsFilePath:P?.filePath}),R=[],$=[],_=0,J=Date.now(),M=await rI(s),g=["run","--format","json","--dangerously-skip-permissions","--agent","build",...w?["--model",`${mue}/${w}`]:[],...i?o?["--session",o]:["--continue"]:[]];Ks.log(`Running ${M} ${g.join(" ")}`);let v=e.utils.run(M,g,{all:!0,env:k,cwd:s,idleTimeout:gs,cancelSignal:a});v.stdin?.end(u);let I=P?Kqe(P.filePath,He=>{S||(S={questions:He},v.kill())}):void 0,Y=Fa(()=>{r?.({steps:$,duration:Date.now()-J})},250),G=(He,V)=>{let{wrapMessage:ae,...N}=He,O=Qx({...N,id:_});O.message&&ae&&(O.message=`\`\`\`
|
|
375
375
|
${O.message}
|
|
376
376
|
\`\`\``),_+=1,R.push(O),$.push(O),V||Y.flush(),Y(),V&&Y.flush()},ue=w||"default";t.answeredInteraction||G({title:`Using ${nI} with ${ue}`,category:H.Environment},!0);let xe=zqe.createInterface({input:v.all});xe.on("error",He=>{Ks.error("Readline interface error",{error:He.message,stack:He.stack})});let Oe="",Me,Pe=new Set,Ue=()=>{Oe&&(G({message:Oe,category:H.AgentMessage}),Me=Oe,Oe="")};xe.on("line",He=>{let V;try{V=JSON.parse(He)}catch{Ks.log("Could not parse line",He);return}switch(V.sessionID&&V.sessionID!==p&&(p=V.sessionID,c?.(p)),V.type){case"step_start":{Ue();break}case"text":{let ae=V.part?.text;ae&&(Oe+=ae);break}case"reasoning":{Ue();let ae=V.part?.text;ae&&G({title:"Reasoning",message:ae,category:H.Reasoning},!0);break}case"tool_use":{Ue();let ae=V.part?.tool;if(!ae)break;let N=V.part?.state?.input??{},O=V.part?.state?.status,L=V.part?.state?.output,B=V.part?.state?.error;if(ae===koe){O==="error"&&Ks.warn("Ask tool call rejected before it could pause the run",{error:B});break}if(O==="error"&&(b+=1),(O==="completed"||O==="error")&&(A+=1),ae==="skill"){let we=typeof N.name=="string"?N.name:void 0;if(we){let We=Ao(we);As(Ks,We),G({title:`Use ${We}`,category:H.Skill,type:we},!0);break}}if(ae==="todowrite"){let we=Hqe(N.todos);G({title:pue(ae),category:we.length>0?$z.todowrite.category:H.Tool,...we.length>0?{tasks:we}:{}},!0);break}let q=typeof N.command=="string"?N.command:void 0,le=q?$s(q):!1,se=typeof N.path=="string"&&N.path||typeof N.file_path=="string"&&N.file_path||typeof N.pattern=="string"&&N.pattern||void 0,Se,Ie;if(le)Se="Generating the site",Ie=H.SiteGeneration;else if(q&&ae==="bash")Se=`Running \`${q}\``,Ie=H.RunCommand;else{let we=se&&`\`${wS.relative(s,se)}\``;Se=[pue(ae),we].filter(Boolean).join(" "),Ie=$z[ae]?.category||H.AgentMessage}let Ee,re=["bash","read","glob","grep","list","webfetch","websearch"].includes(ae);B?Ee=`\`\`\`
|
|
377
377
|
${B.trim()}
|
package/dist/bin.js
CHANGED
|
@@ -599,7 +599,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
599
599
|
`,LF:`
|
|
600
600
|
`,concatBytes:D3},aEt=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},cEt={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:aEt};import{Buffer as lEt}from"buffer";var zTe=(t,e)=>t?void 0:uEt.bind(void 0,e),uEt=function*(t,e){if(typeof e!="string"&&!Dr(e)&&!lEt.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},VTe=(t,e)=>t?dEt.bind(void 0,e):fEt.bind(void 0,e),dEt=function*(t,e){HTe(t,e),yield e},fEt=function*(t,e){if(HTe(t,e),typeof e!="string"&&!Dr(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},HTe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
601
601
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
602
|
-
if (condition) { yield value; }`)};import{Buffer as pEt}from"buffer";import{StringDecoder as hEt}from"string_decoder";var UC=(t,e,r)=>{if(r)return;if(t)return{transform:mEt.bind(void 0,new TextEncoder)};let n=new hEt(e);return{transform:gEt.bind(void 0,n),final:_Et.bind(void 0,n)}},mEt=function*(t,e){pEt.isBuffer(e)?yield Ac(e):typeof e=="string"?yield t.encode(e):yield e},gEt=function*(t,e){yield Dr(e)?t.write(e):e},_Et=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as GTe}from"util";var U3=GTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),FC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=SEt}=e[r];for await(let i of n(t))yield*FC(i,e,r+1)},WTe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*yEt(r,Number(e),t)},yEt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*FC(n,r,e+1)},YTe=GTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),SEt=function*(t){yield t};var F3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},KTe=(t,e)=>[...e.flatMap(r=>[...Yf(r,t,0)]),...eT(t)],Yf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=vEt}=e[r];for(let i of n(t))yield*Yf(i,e,r+1)},eT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*EEt(r,Number(e),t)},EEt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Yf(n,r,e+1)},vEt=function*(t){yield t};var j3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=ZTe(t,o,s),l=Wf(e),u=Wf(r),d=l?U3.bind(void 0,FC,a):F3.bind(void 0,Yf),f=l||u?U3.bind(void 0,WTe,a):F3.bind(void 0,eT),p=l||u?YTe.bind(void 0,a):void 0;return{stream:new bEt({writableObjectMode:n,writableHighWaterMark:JTe(n),readableObjectMode:i,readableHighWaterMark:JTe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},jC=(t,e,r,n)=>{let i=e.filter(({type:o})=>o==="generator"),s=n?i.reverse():i;for(let{value:o,optionName:a}of s){let c=ZTe(o,r,a);t=KTe(c,t)}return t},ZTe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:zTe(n,a)},UC(r,o,n),MC(r,s,n,c),{transform:t,final:e},{transform:VTe(i,a)},BTe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var XTe=(t,e)=>{for(let r of TEt(t))wEt(t,r,e)},TEt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),wEt=(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 ${xu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>REt(a,n));r.input=Vb(o)},REt=(t,e)=>{let r=jC(t,e,"utf8",!0);return AEt(r),Vb(r)},AEt=t=>{let e=t.find(r=>typeof r!="string"&&!Dr(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as OEt,appendFileSync as CEt}from"fs";var qC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Fg(r,n)&&!qi.has(e)&&xEt(n)&&(t.some(({type:i,value:s})=>i==="native"&&IEt.has(s))||t.every(({type:i})=>ws.has(i))),xEt=t=>t===1||t===2,IEt=new Set(["pipe","overlapped"]),QTe=async(t,e,r,n)=>{for await(let i of t)PEt(e)||twe(i,r,n)},ewe=(t,e,r)=>{for(let n of t)twe(n,e,r)},PEt=t=>t._readableState.pipes.length>0,twe=(t,e,r)=>{let n=tC(t);ia({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var rwe=({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)=>NEt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},NEt=({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=nTe(t,s,d),p=Ac(f),{stdioItems:h,objectMode:m}=e[r],_=kEt([p],h,c,n),{serializedResult:y,finalResult:v=y}=$Et({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});LEt({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&&DEt(y,h,i),S}catch(g){return n.error=g,S}},kEt=(t,e,r,n)=>{try{return jC(t,e,r,!1)}catch(i){return n.error=i,t}},$Et=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Vb(t)};let o=_Ee(t,r);return n[s]?{serializedResult:o,finalResult:M3(o,!i[s],e)}:{serializedResult:o}},LEt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!qC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=M3(t,!1,o);try{ewe(a,e,n)}catch(c){r.error??=c}},DEt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>LC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?CEt(n,t):(r.add(s),OEt(n,t))}};var nwe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Pc(e,r,"all")]:Array.isArray(e)?[Pc(t,r,"all"),...e]:Dr(t)&&Dr(e)?G6([t,e]):`${t}${e}`};import{once as q3}from"events";var iwe=async(t,e)=>{let[r,n]=await MEt(t);return e.isForcefullyTerminated??=!1,[r,n]},MEt=async t=>{let[e,r]=await Promise.allSettled([q3(t,"spawn"),q3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?swe(t):r.value},swe=async t=>{try{return await q3(t,"exit")}catch{return swe(t)}},owe=async t=>{let[e,r]=await t;if(!UEt(e,r)&&B3(e,r))throw new no;return[e,r]},UEt=(t,e)=>t===void 0&&e===void 0,B3=(t,e)=>t!==0||e!==null;var awe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=FEt(t,e,r),o=s?.code==="ETIMEDOUT",a=rTe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},FEt=(t,e,r)=>t!==void 0?t:B3(e,r)?new no:void 0;var cwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=qEt(t,e,r),d=VEt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Kg(d,c,l)},qEt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),a=BEt(r),{file:c,commandArguments:l,options:u}=TC(t,e,a);zEt(u);let d=UTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},BEt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,zEt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&BC("ipcInput"),t&&BC("ipc: true"),r&&BC("detached: true"),n&&BC("cancelSignal")},BC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},VEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=HEt({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}=awe(c,r),{output:h,error:m=l}=rwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>Pc(v,r,S)),y=Pc(nwe(h,r),r,"all");return WEt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},HEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{XTe(s,r);let a=GEt(r);return jEt(...wC(t,e,a))}catch(a){return Yg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},GEt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:CC(e)}),WEt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?NC({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Qb({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as $bt}from"events";import{spawn as Lbt}from"child_process";import pwe from"process";import{once as z3,on as YEt}from"events";var lwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Bg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),KEt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),KEt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{pC(e,i);let s=Au(t,e,r),o=new AbortController;try{return await Promise.race([JEt(s,n,o),ZEt(s,r,o),XEt(s,r,o)])}catch(a){throw zg(t),a}finally{o.abort(),hC(e,i)}},JEt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await z3(t,"message",{signal:r});return n}for await(let[n]of YEt(t,"message",{signal:r}))if(e(n))return n},ZEt=async(t,e,{signal:r})=>{await z3(t,"disconnect",{signal:r}),Kve(e)},XEt=async(t,e,{signal:r})=>{let[n]=await z3(t,"strict:error",{signal:r});throw uC(n,e)};import{once as dwe,on as QEt}from"events";var fwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>V3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),V3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Bg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),pC(e,s);let o=Au(t,e,r),a=new AbortController,c={};return evt(t,o,a),tvt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),rvt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},evt=async(t,e,r)=>{try{await dwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},tvt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await dwe(t,"strict:error",{signal:r.signal});n.error=uC(i,e),r.abort()}catch{}},rvt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of QEt(r,"message",{signal:s.signal}))uwe(o),yield c}catch{uwe(o)}finally{s.abort(),hC(e,a),n||zg(t),i&&await t}},uwe=({error:t})=>{if(t)throw t};var hwe=(t,{ipc:e})=>{Object.assign(t,gwe(t,!1,e))},mwe=()=>{let t=pwe,e=!0,r=pwe.channel!==void 0;return{...gwe(t,e,r),getCancelSignal:bbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},gwe=(t,e,r)=>({sendMessage:vC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:lwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:fwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as nvt}from"child_process";import{PassThrough as ivt,Readable as svt,Writable as ovt,Duplex as avt}from"stream";var _we=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{$3(n);let a=new nvt;cvt(a,n),Object.assign(a,{readable:lvt,writable:uvt,duplex:dvt});let c=Yg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=fvt(c,o,i);return{subprocess:a,promise:l}},cvt=(t,e)=>{let r=tT(),n=tT(),i=tT(),s=Array.from({length:e.length-3},tT),o=tT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},tT=()=>{let t=new ivt;return t.end(),t},lvt=()=>new svt({read(){}}),uvt=()=>new ovt({write(){}}),dvt=()=>new avt({read(){},write(){}}),fvt=async(t,e,r)=>Kg(t,e,r);import{createReadStream as ywe,createWriteStream as Swe}from"fs";import{Buffer as pvt}from"buffer";import{Readable as rT,Writable as hvt,Duplex as mvt}from"stream";var vwe=(t,e)=>DC(gvt,t,e,!1),nT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${xu[t]}.`)},Ewe={fileNumber:nT,generator:j3,asyncGenerator:j3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:mvt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},gvt={input:{...Ewe,fileUrl:({value:t})=>({stream:ywe(t)}),filePath:({value:{file:t}})=>({stream:ywe(t)}),webStream:({value:t})=>({stream:rT.fromWeb(t)}),iterable:({value:t})=>({stream:rT.from(t)}),asyncIterable:({value:t})=>({stream:rT.from(t)}),string:({value:t})=>({stream:rT.from(t)}),uint8Array:({value:t})=>({stream:rT.from(pvt.from(t))})},output:{...Ewe,fileUrl:({value:t})=>({stream:Swe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Swe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:hvt.fromWeb(t)}),iterable:nT,asyncIterable:nT,string:nT,uint8Array:nT}};import{on as _vt,once as bwe}from"events";import{PassThrough as yvt,getDefaultHighWaterMark as Svt}from"stream";import{finished as Rwe}from"stream/promises";function Kf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)G3(i);let e=t.some(({readableObjectMode:i})=>i),r=Evt(t,e),n=new H3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Evt=(t,e)=>{if(t.length===0)return Svt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},H3=class extends yvt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(G3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=vvt(this,this.#e,this.#s);let r=wvt({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#s});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(G3(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},vvt=async(t,e,r)=>{zC(t,Twe);let n=new AbortController;try{await Promise.race([bvt(t,n),Tvt(t,e,r,n)])}finally{n.abort(),zC(t,-Twe)}},bvt=async(t,{signal:e})=>{try{await Rwe(t,{signal:e,cleanup:!0})}catch(r){throw Awe(t,r),r}},Tvt=async(t,e,r,{signal:n})=>{for await(let[i]of _vt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},G3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},wvt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{zC(t,wwe);let a=new AbortController;try{await Promise.race([Rvt(s,e,a),Avt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),xvt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),zC(t,-wwe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?W3(t):Ivt(t))},Rvt=async(t,e,{signal:r})=>{try{await t,r.aborted||W3(e)}catch(n){r.aborted||Awe(e,n)}},Avt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await Rwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;xwe(o)?i.add(e):Iwe(t,o)}},xvt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await bwe(t,i,{signal:s}),!t.readable)return bwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Ivt=t=>{t.writable&&t.end()},Awe=(t,e)=>{xwe(e)?W3(t):Iwe(t,e)},xwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",W3=t=>{(t.readable||t.writable)&&t.destroy()},Iwe=(t,e)=>{t.destroyed||(t.once("error",Pvt),t.destroy(e))},Pvt=()=>{},zC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Twe=2,wwe=1;import{finished as Pwe}from"stream/promises";var Zg=(t,e)=>{t.pipe(e),Ovt(t,e),Cvt(t,e)},Ovt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Pwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}Y3(e)}},Y3=t=>{t.writable&&t.end()},Cvt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Pwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}K3(t)}},K3=t=>{t.readable&&t.destroy()};var Owe=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:s,direction:o}]of Object.entries(e)){for(let{stream:a}of s.filter(({type:c})=>ws.has(c)))Nvt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!ws.has(c)))$vt({subprocess:t,stream:a,direction:o,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,s]of n.entries()){let o=s.length===1?s[0]:Kf(s);Zg(o,i)}},Nvt=(t,e,r,n)=>{r==="output"?Zg(t.stdio[n],e):Zg(e,t.stdio[n]);let i=kvt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},kvt=["stdin","stdout","stderr"],$vt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;Lvt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},Lvt=(t,{signal:e})=>{ro(t)&&Hf(t,Dvt,e)},Dvt=2;import{addAbortListener as Fvt}from"events";var Jf=[];Jf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Jf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Jf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var VC=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",J3=Symbol.for("signal-exit emitter"),Z3=globalThis,Mvt=Object.defineProperty.bind(Object),X3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Z3[J3])return Z3[J3];Mvt(Z3,J3,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let s of this.listeners[e])i=s(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},HC=class{},Uvt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),Q3=class extends HC{onExit(){return()=>{}}load(){}unload(){}},eW=class extends HC{#e=tW.platform==="win32"?"SIGINT":"SIGHUP";#r=new X3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Jf)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,s=e;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(i+=s.__signal_exit_emitter__.count),n.length===i){this.unload();let o=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;o||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!VC(this.#t))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#r.count+=1;for(let e of Jf)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#o&&(this.#o=!1,Jf.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#s,this.#r.count-=1)}#a(e){return VC(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#s.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&VC(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},tW=globalThis.process,{onExit:Cwe,load:edr,unload:tdr}=Uvt(VC(tW)?new eW(tW):new Q3);var Nwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Cwe(()=>{t.kill()});Fvt(n,()=>{i()})};var $we=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=rC(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=jvt(r,n,i),{sourceStream:d,sourceError:f}=Bvt(t,l),{options:p,fileDescriptors:h}=oa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},jvt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=qvt(t,e,...r),a=fC(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},qvt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(kwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||V6(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,s,o]=GO(r,...n);return{destination:e(kwe)(i,s,o),pipeOptions:o}}if(oa.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},kwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Bvt=(t,e)=>{try{return{sourceStream:Vg(t,e)}}catch(r){return{sourceError:r}}};var Dwe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=zvt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw rW({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},zvt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return K3(t),n;if(e!==void 0)return Y3(r),e},rW=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Yg({error:t,command:Lwe,escapedCommand:Lwe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Lwe="source.pipe(destination)";var Mwe=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 Vvt}from"stream/promises";var Uwe=(t,e,r)=>{let n=GC.has(e)?Gvt(t,e):Hvt(t,e);return Hf(t,Yvt,r.signal),Hf(e,Kvt,r.signal),Wvt(e),n},Hvt=(t,e)=>{let r=Kf([t]);return Zg(r,e),GC.set(e,r),r},Gvt=(t,e)=>{let r=GC.get(e);return r.add(t),r},Wvt=async t=>{try{await Vvt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}GC.delete(t)},GC=new WeakMap,Yvt=2,Kvt=1;import{aborted as Jvt}from"util";var Fwe=(t,e)=>t===void 0?[]:[Zvt(t,e)],Zvt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Jvt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw rW({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var WC=(t,...e)=>{if(Er(e[0]))return WC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=$we(t,...e),i=Xvt({...n,destination:r});return i.pipe=WC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Xvt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=Qvt(t,i);Dwe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Uwe(e,s,d);return await Promise.race([Mwe(u),...Fwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},Qvt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as obt}from"timers/promises";import{on as ebt}from"events";import{getDefaultHighWaterMark as tbt}from"stream";var YC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return rbt(e,o),qwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},rbt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},nW=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;nbt(e,o,t);let a=t.readableObjectMode&&!s;return qwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},nbt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},qwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=ebt(t,"data",{signal:e.signal,highWaterMark:jwe,highWatermark:jwe});return ibt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},iW=tbt(!0),jwe=iW,ibt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=sbt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*Yf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*eT(a)}},sbt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[UC(t,r,!e),MC(t,i,!n,{})].filter(Boolean);var Bwe=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=abt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([cbt(t),d]);return}let f=L3(c,r),p=nW({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([lbt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},abt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!qC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=nW({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await QTe(a,t,r,s)},cbt=async t=>{await obt(),t.readableFlowing===null&&t.resume()},lbt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await IC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await PC(r,{maxBuffer:s})):await Wg(r,{maxBuffer:s})}catch(a){return zwe(Qbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},sW=async t=>{try{return await t}catch(e){return zwe(e)}},zwe=({bufferedData:t})=>mEe(t)?new Uint8Array(t):t;import{finished as ubt}from"stream/promises";var iT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=dbt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],ubt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||hbt(a,e,r,n)}finally{o.abort()}},dbt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&fbt(t,r,n),n},fbt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{pbt(e,r),n.call(t,...i)}},pbt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},hbt=(t,e,r,n)=>{if(!mbt(t,e,r,n))throw t},mbt=(t,e,r,n=!0)=>r.propagating?Vwe(t)||KC(t):(r.propagating=!0,oW(r,e)===n?Vwe(t):KC(t)),oW=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",KC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Vwe=t=>t?.code==="EPIPE";var Hwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>aW({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),aW=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=iT(t,e,l);if(oW(l,e)){await u;return}let[d]=await Promise.all([Bwe({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 Gwe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Kf([t,e].filter(Boolean)):void 0,Wwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>aW({...gbt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:_bt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),gbt=({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}},_bt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as ybt}from"events";var Ywe=t=>Fg(t,"ipc"),Kwe=(t,e)=>{let r=tC(t);ia({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Jwe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Ywe(s),a=xc(e,"ipc"),c=xc(r,"ipc");for await(let l of V3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(eTe(t,i,c),i.push(l)),o&&Kwe(l,s);return i},Zwe=async(t,e)=>(await Promise.allSettled([t]),e);var Xwe=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=iwe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=Hwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),T=Wwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),P=[],x=Jwe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),A=Sbt(m,t,S),I=Ebt(h,S);try{return await Promise.race([Promise.all([{},owe(v),Promise.all(g),T,x,Nbe(t,d),...A,...I]),_,vbt(t,y),...xbe(t,s,f,y),...Yve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...Rbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(R){return f.terminationReason??="other",Promise.all([{error:R},v,Promise.all(g.map(b=>sW(b))),sW(T),Zwe(x,P),Promise.allSettled(A),Promise.allSettled(I)])}},Sbt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:iT(n,i,r)),Ebt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>so(s,{checkOpen:!1})&&!ro(s)).map(({type:i,value:s,stream:o=s})=>iT(o,n,e,{isSameDirection:ws.has(i),stopOnExit:i==="native"}))),vbt=async(t,{signal:e})=>{let[r]=await ybt(t,"error",{signal:e});throw r};var Qwe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),sT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=sa();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Xg=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 bbt}from"stream";import{callbackify as Tbt}from"util";import{finished as e0e}from"stream/promises";var cW=async t=>{if(t!==void 0)try{await lW(t)}catch{}},t0e=async t=>{if(t!==void 0)try{await uW(t)}catch{}},lW=async t=>{await e0e(t,{cleanup:!0,readable:!1,writable:!0})},uW=async t=>{await e0e(t,{cleanup:!0,readable:!0,writable:!1})},JC=async(t,e)=>{if(await t,e)throw e},ZC=(t,e,r)=>{r&&!KC(r)?t.destroy(r):e&&t.destroy()};var r0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||qi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=dW(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=fW(a,o),{read:f,onStdoutDataDone:p}=pW({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new bbt({read:f,destroy:Tbt(mW.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return hW({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},dW=(t,e,r)=>{let n=Vg(t,e),i=sT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},fW=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:iW},pW=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=sa(),o=YC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){wbt(this,o,s)},onStdoutDataDone:s}},wbt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},hW=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await uW(t),await n,await cW(i),await e,r.readable&&r.push(null)}catch(s){await cW(i),n0e(r,s)}},mW=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Xg(r,e)&&(n0e(t,n),await JC(e,n))},n0e=(t,e)=>{ZC(t,t.readable,e)};import{Writable as Rbt}from"stream";import{callbackify as i0e}from"util";var s0e=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=gW(t,r,e),o=new Rbt({..._W(n,t,i),destroy:i0e(SW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return yW(n,o),o},gW=(t,e,r)=>{let n=fC(t,e),i=sT(r,n,"writableFinal"),s=sT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},_W=(t,e,r)=>({write:Abt.bind(void 0,t),final:i0e(xbt.bind(void 0,t,e,r))}),Abt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},xbt=async(t,e,r)=>{await Xg(r,e)&&(t.writable&&t.end(),await e)},yW=async(t,e,r)=>{try{await lW(t),e.writable&&e.end()}catch(n){await t0e(r),o0e(e,n)}},SW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Xg(r,e),await Xg(n,e)&&(o0e(t,i),await JC(e,i))},o0e=(t,e)=>{ZC(t,t.writable,e)};import{Duplex as Ibt}from"stream";import{callbackify as Pbt}from"util";var a0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||qi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=dW(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=gW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=fW(c,a),{read:_,onStdoutDataDone:y}=pW({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Ibt({read:_,..._W(u,t,d),destroy:Pbt(Obt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return hW({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),yW(u,v,c),v},Obt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([mW({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),SW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var EW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||qi.has(e),o=Vg(t,r),a=YC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return Cbt(a,o,t)},Cbt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var c0e=(t,{encoding:e})=>{let r=Qwe();t.readable=r0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=s0e.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=a0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=EW.bind(void 0,t,e),t[Symbol.asyncIterator]=EW.bind(void 0,t,e,{})};var l0e=(t,e)=>{for(let[r,n]of kbt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Nbt=(async()=>{})().constructor.prototype,kbt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Nbt,t)]);var u0e=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=Dbt(t,e,r),{subprocess:f,promise:p}=Ubt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=WC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),l0e(f,p),oa.set(f,{options:u,fileDescriptors:d}),f},Dbt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),{file:a,commandArguments:c,options:l}=TC(t,e,r),u=Mbt(l),d=vwe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Mbt=({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}},Ubt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=Lbt(...wC(t,e,r))}catch(h){return _we({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;$bt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Owe(c,a,l),Nwe(c,r,l);let d={},f=sa();c.kill=Gve.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Gwe(c,r),c0e(c,r),hwe(c,r);let p=Fbt({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}},Fbt=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 Xwe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let y=h.map((g,T)=>Pc(g,e,T)),v=Pc(m,e,"all"),S=jbt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Kg(S,n,e)},jbt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?Qb({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof aa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):NC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var XC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,qbt(n,t[n],i)]));return{...t,...r}},qbt=(t,e,r)=>Bbt.has(t)&&Er(e)&&Er(r)?{...e,...r}:r,Bbt=new Set(["env",...J6]);var Iu=(t,e,r,n)=>{let i=(o,a,c)=>Iu(o,a,r,c),s=(...o)=>zbt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},zbt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Er(s))return i(t,XC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Vbt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?cwe(a,c,l):u0e(a,c,l,i)},Vbt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=vEe(e)?bEe(e,r):[e,...r],[o,a,c]=GO(...s),l=XC(XC(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var d0e=({file:t,commandArguments:e})=>p0e(t,e),f0e=({file:t,commandArguments:e})=>({...p0e(t,e),isSync:!0}),p0e=(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]=Hbt(t);return{file:r,commandArguments:n}},Hbt=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(Gbt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Gbt=/ +/g;var h0e=(t,e,r)=>{t.sync=e(Wbt,r),t.s=t.sync},m0e=({options:t})=>g0e(t),Wbt=({options:t})=>({...g0e(t),isSync:!0}),g0e=t=>({options:{...Ybt(t),...t}}),Ybt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},_0e={preferLocal:!0};var y0e=Iu(()=>({})),Vpr=Iu(()=>({isSync:!0})),S0e=Iu(d0e),Hpr=Iu(f0e),Gpr=Iu(Pbe),Wpr=Iu(m0e,{},_0e,h0e),{sendMessage:Ypr,getOneMessage:Kpr,getEachMessage:Jpr,getCancelSignal:Zpr}=mwe();import{Transform as Kbt}from"stream";var Jbt=["NETLIFY_AI_GATEWAY_KEY"];function Zbt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...Jbt])]}function Xbt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function Qbt(){let e=Zbt().map(r=>process.env[r]).filter(r=>!(!r||Xbt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Rs(t){if(typeof t!="string")return t;let e=Qbt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(eTt(n),"g");r=r.replace(i,"******")}),r}function eTt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oT=class extends Kbt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Rs(i);n(null,s)}},QC=Symbol("maskedWrite");function E0e(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[QC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stdout.write=r}if(!process.stderr.write[QC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stderr.write=r}}}var v0e=!1,b0e=()=>{v0e=!0},bi=()=>v0e;var aT=null,T0e=t=>(aT&&aT.destroy(),aT=new la({totalAllowedTime:t}),aT),w0e=()=>aT;var la=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&bi())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await qO({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{me.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 R0e={name:"@netlify/agent-runner-cli",type:"module",version:"1.164.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.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var iTt=rTt(import.meta.url),sTt=Oc.dirname(iTt),oTt=nTt(import.meta.url),Qg=ge("shell"),vW=new Set,A0e={preferLocal:!0},gn=(t,e,r)=>{let[n,i]=aTt(e,r),s={...A0e,...i},o=y0e(t,n,s);I0e(o,s),C0e(o);let a=r?.idleTimeout;return a&&a>0&&O0e(o,a),o},x0e=(t,e)=>{let r={...A0e,...e},n=S0e(t,r);return I0e(n,r),C0e(n),e?.idleTimeout&&e.idleTimeout>0&&O0e(n,e.idleTimeout),n},aTt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},I0e=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Cc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new oT).pipe(Cc.stdout),t.stderr?.pipe(new oT).pipe(Cc.stderr);return}t.stdout?.pipe(Cc.stdout),t.stderr?.pipe(Cc.stderr)},bW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Cc.kill(-t.pid,e),Qg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Qg.error("Error killing process:",r),!1}},P0e=t=>bW(t,"SIGKILL"),O0e=(t,e)=>{let r=null,n=()=>{Qg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qg.log(`Force killing idle process ${t.pid}`),P0e(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)},C0e=t=>{vW.add(t);let e=w0e();if(e){let r=e.onTimesUp(()=>{Qg.log(`Global timer expired, killing process ${t.pid}`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qg.log(`Force killing process ${t.pid} after timeout`),P0e(t))},5e3)});t.on("exit",()=>{vW.delete(t),r()}),t.on("error",()=>{vW.delete(t),r()})}};function ua(t,e){if(!Cc.env.NETLIFY_LOCAL_MODE)try{let i=oTt.resolve(R0e.name),s=Oc.dirname(i);for(;s!==Oc.dirname(s);){let o=Oc.dirname(s);if(Oc.basename(o)==="node_modules"){let a=Oc.join(o,".bin",e);if(eN.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Cc.env.NODE_PATH){let i=Oc.join(Cc.env.NODE_PATH,".bin",e);if(eN.existsSync(i))return i}let r=Oc.join(t,"node_modules",".bin",e);if(eN.existsSync(r))return r;let n=Oc.join(sTt,"..","node_modules",".bin",e);if(eN.existsSync(n))return n}import TD from"process";import{fileURLToPath as LDt}from"url";import{createRequire as DDt}from"module";import s0 from"path";import{readFileSync as MDt}from"fs";var cTt="__netlify__getTracer",lTt="__netlify__shutdownTracers",vt=(t,e)=>globalThis[cTt]?.(t,e),N0e=async()=>globalThis[lTt]?.();function cT(t,e,r,n,i){let s=typeof n=="function"?n:typeof r=="function"?r:i;if(!s)throw new Error("function to execute with active span is missing");return t?t.withActiveSpan(e,r,n,s):s()}import{setTimeout as PDt}from"timers/promises";$e();import u0t from"process";$e();var kTt=(t,e)=>{e.recordException(t),e.setStatus({code:Nn.ERROR})};var $c=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=RRe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>ARe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=RRe(r,n,i),c=this._tracer.startSpan(e,s,o);return ARe(c,s,a)}};function RRe(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??Bt.active(),{opts:n,ctx:i,fn:s}}function ARe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:kTt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}$e();var o_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var rY=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=DRe(e),n._asyncAttributesPending=e.filter(([i,s])=>o_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(o_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=DRe(this._rawAttributes),this._schemaUrl=$Tt(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,o_(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(o_(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=LTt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function nY(t,e){return rY.FromAttributeList(Object.entries(t),e)}function DRe(t){return t.map(([e,r])=>o_(r)?[e,r.catch(n=>{ae.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function $Tt(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 LTt(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)}$e();var ET=class{emit(e){}enabled(){return!1}},MRe=new ET;var vT=Symbol.for("io.opentelemetry.js.api.logs"),a_=globalThis;function URe(t,e,r){return n=>n===t?e:r}var iY=1;var sY=class{getLogger(e,r,n){return new ET}},TN=new sY;var wN=class{constructor(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}emit(e){this._getLogger().emit(e)}enabled(e){return this._getLogger().enabled(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):MRe}};var bT=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new wN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:TN}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(e,r,n)}};var RN=class t{constructor(){this._proxyLoggerProvider=new bT}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return a_[vT]?this.getLoggerProvider():(a_[vT]=URe(iY,e,TN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=a_[vT])===null||e===void 0?void 0:e.call(a_,iY))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete a_[vT],this._proxyLoggerProvider=new bT}};var FRe=RN.getInstance();function jRe(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 qRe(t){t.forEach(e=>e.disable())}function oY(t){let e=t.tracerProvider||It.getTracerProvider(),r=t.meterProvider||ST.getMeterProvider(),n=t.loggerProvider||FRe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return jRe(i,e,r,n),()=>{qRe(i)}}$e();var DTt=Gr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function BRe(t){return t.getValue(DTt)===!0}var c_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(c_||(c_={}));$e();var aY="[_0-9a-z-*/]",MTt=`[a-z]${aY}{0,255}`,UTt=`[a-z0-9]${aY}{0,240}@[a-z]${aY}{0,13}`,FTt=new RegExp(`^(?:${MTt}|${UTt})$`),jTt=/^[ -~]{0,255}[!-~]$/,qTt=/,|=/;function cY(t){return FTt.test(t)}function lY(t){return jTt.test(t)&&!qTt.test(t)}var BTt=32,zRe=512,VRe=",",HRe="=",AN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!cY(e)||!lY(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>zRe)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=VRe+e),e=`${n[0]}${HRe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(VRe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(HRe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!cY(a)||!lY(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>zRe)&&(r.set(a,c),n=l,r.size>=BTt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var xN="traceparent",IN="tracestate",zTt="00",VTt="(?!ff)[\\da-f]{2}",HTt="(?![0]{32})[\\da-f]{32}",GTt="(?![0]{16})[\\da-f]{16}",WTt="[\\da-f]{2}",YTt=new RegExp(`^\\s?(${VTt})-(${HTt})-(${GTt})-(${WTt})(-.*)?\\s?$`);function GRe(t){let e=YTt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Cu=class{inject(e,r,n){let i=It.getSpanContext(e);if(!i||BRe(e)||!Ti(i))return;let s=`${zTt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||pr.NONE).toString(16)}`;n.set(r,xN,s),i.traceState&&n.set(r,IN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,xN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=GRe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,IN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new AN(typeof c=="string"?c:void 0)}return It.setSpanContext(e,o)}fields(){return[xN,IN]}};var PN=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var TT=class{_isCalled=!1;_deferred=new PN;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var Ek=Bn(YY(),1);$e();var IIe=t=>{throw TypeError(t)},XY=(t,e,r)=>e.has(t)||IIe("Cannot "+r),Sk=(t,e,r)=>(XY(t,e,"read from private field"),r?r.call(t):e.get(t)),KY=(t,e,r)=>e.has(t)?IIe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),RIe=(t,e,r,n)=>(XY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),l0t=(t,e,r)=>(XY(t,e,"access private method"),r),AIe="__netlify__getTracer",d0t="__netlify__shutdownTracers",f0t="__nfOTLPTrace",UT,FT,ZY,PIe,p0t=class{constructor(){KY(this,ZY),KY(this,UT),KY(this,FT),RIe(this,UT,new TT(l0t(this,ZY,PIe),this)),RIe(this,FT,ae.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(Sk(this,FT).debug(`export ${t.length.toString()} spans`),Sk(this,UT).isCalled){e({code:c_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(f0t,JSON.stringify(h0t(t))),e({code:c_.SUCCESS})}shutdown(){return Sk(this,UT).call()}};UT=new WeakMap;FT=new WeakMap;ZY=new WeakSet;PIe=function(){return Sk(this,FT).debug("Shutting down"),Promise.resolve()};function h0t(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:yk(e.resource.attributes),droppedAttributesCount:e.droppedAttributesCount},scopeSpans:[{scope:{name:e.instrumentationScope.name,version:e.instrumentationScope.version},spans:[{traceId:r.traceId,spanId:r.spanId,parentSpanId:e.parentSpanContext?.spanId,name:e.name,kind:e.kind||oo.SERVER,startTimeUnixNano:JY(e.startTime),endTimeUnixNano:JY(e.endTime),attributes:yk(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:JY(n.time),attributes:yk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedEventsCount:e.droppedEventsCount,status:{code:e.status.code,message:e.status.message},links:e.links.map(n=>({spanId:n.context.spanId,traceId:n.context.traceId,attributes:yk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function yk(t){return Object.keys(t).map(e=>OIe(e,t[e]))}function OIe(t,e){return{key:t,value:CIe(e)}}function CIe(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(CIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>OIe(r,n))}}:{}}function JY(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var xIe={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"}},NIe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,AIe))return;let e=u0t.version.slice(1),r=nY({"service.name":t.serviceName,"service.version":t.serviceVersion,"process.runtime.name":"nodejs","process.runtime.version":e,"deployment.environment":t.deploymentEnvironment,"http.url":t.siteUrl,"netlify.site.id":t.siteId,"netlify.site.name":t.siteName}),n=t.spanProcessors??[m0t()],i=new Ek.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Cu});let s=t.instrumentations??[];oY({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,AIe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new $c(It.getTracer(a,c)):new $c(It.getTracer(xIe.name,xIe.version))}}),Object.defineProperty(globalThis,d0t,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},m0t=()=>new Ek.SimpleSpanProcessor(new p0t);$e();var jT=Bn(YY(),1);$e();import*as vk from"diagnostics_channel";var kIe=class{constructor(t={}){this.instrumentationName="@netlify/otel/instrumentation-fetch",this.instrumentationVersion="1.0.0",this._recordFromReq=new WeakMap,this.config=t,this._channelSubs=[]}getConfig(){return this.config}setConfig(){}setMeterProvider(){}setTracerProvider(t){this.provider=t}getTracerProvider(){return this.provider}annotateFromRequest(t,e){let r=this.config.getRequestAttributes?.(e)??{},n=new URL(e.path,e.origin);t.setAttributes({...r,"http.request.method":e.method,"url.full":n.href,"url.host":n.host,"url.scheme":n.protocol.slice(0,-1),"server.address":n.hostname,"server.port":n.port,...this.prepareHeaders("request",e.headers)})}annotateFromResponse(t,e){let r=this.config.getResponseAttributes?.(e)??{};t.setAttributes({...r,"http.response.status_code":e.statusCode,...this.prepareHeaders("response",e.headers)}),t.setStatus({code:e.statusCode>=400?Nn.ERROR:Nn.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof $c?t:new $c(t)}enable(){this._channelSubs.length>0||(this.subscribe("undici:request:create",this.onRequestCreate.bind(this)),this.subscribe("undici:request:headers",this.onRequestHeaders.bind(this)),this.subscribe("undici:request:trailers",this.onRequestEnd.bind(this)),this.subscribe("undici:request:error",this.onRequestError.bind(this)))}subscribe(t,e){vk.subscribe(t,e);let r=()=>vk.unsubscribe(t,e);this._channelSubs.push({name:t,unsubscribe:r})}disable(){this._channelSubs.forEach(t=>{t.unsubscribe()}),this._channelSubs.length=0}onRequestCreate({request:t}){try{let e=this.getTracer(),r=new URL(t.path,t.origin);if(!e||t.method==="CONNECT"||this.config.skipURLs?.some(i=>typeof i=="string"?r.href.startsWith(i):i.test(r.href)))return;let n=e.startSpan(this.getRequestMethod(t.method),{kind:oo.CLIENT},Bt.active());this.annotateFromRequest(n,t),this._recordFromReq.set(t,n)}catch{}}onRequestHeaders({request:t,response:e}){try{let r=this._recordFromReq.get(t);if(!r)return;this.annotateFromResponse(r,e)}catch{}}onRequestError({request:t,error:e}){try{let r=this._recordFromReq.get(t);if(!r)return;r.recordException(e),r.setStatus({code:Nn.ERROR,message:e.message}),r.end(),this._recordFromReq.delete(t)}catch{}}onRequestEnd({request:t}){try{let e=this._recordFromReq.get(t);if(!e)return;e.end(),this._recordFromReq.delete(t)}catch{}}};var nMe=Bn(tMe(),1);var vD=ge("tracing"),rMe=8e3,ODt=5e3,i0=async(t=ODt)=>{try{await Promise.race([N0e(),PDt(t)])}catch(e){vD.warn("Failed to flush tracers on shutdown",e)}},iMe=async(t,e,r)=>{if(!vt()){let n=[new jT.SimpleSpanProcessor(new QJ),new jT.SimpleSpanProcessor(new nMe.OTLPTraceExporter({url:r.exporterUrl}))];await NIe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new kIe({skipHeaders:!0})]})}return r.traceparent?(Qn.setGlobalPropagator(new Cu),Qn.extract(Bt.active(),{traceparent:r.traceparent,isRemote:!0})):Bt.active()};function Ht(t,e,r){return vD.log(`\u23F3 TRACE: ${e} starting...`),cT(t,e,r)}var QJ=class{export(e,r){for(let n of e)this.logSpan(n);r({code:1})}async shutdown(){}forceFlush(){return Promise.resolve()}logSpan(e){let r=(e.endTime[0]-e.startTime[0])*1e3+(e.endTime[1]-e.startTime[1])/1e6,n=e.attributes,i=[];for(let[a,c]of Object.entries(n))a.includes("duration")&&typeof c=="number"?i.push(`${a}=${c.toFixed(2)}ms`):i.push(`${a}=${c}`);let s=e.status?.code===2?"\u274C":"\u2705",o=i.length>0?` [${i.join(", ")}]`:"";vD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&vD.log(` \u274C Error: ${e.status.message}`)}};function eZ(){return Ve().captureLlmContentEnabled}function sMe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function bD(t,e,r){let n={role:t,parts:[{type:"text",content:Rs(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var CDt=new Set([Z.Task,Z.RunCommand,Z.Explore,Z.FileRead,Z.FileWrite,Z.Notebook,Z.Web,Z.Todo,Z.Skill,Z.Tool,Z.Memorize,Z.Deployment,Z.SiteGeneration]);function oMe(t,e,r,n){if(!t.length)return;let i=vt();if(!i)return;let s=eZ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&CDt.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>rMe?`${a.message.slice(0,rMe)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Rs(_)}:{"gen_ai.output.messages":bD("assistant",_)}:{}}}).end(u)})}import{readdir as NDt,rm as kDt}from"fs/promises";import{join as $Dt}from"path";async function aMe(t,e=[]){let n=(await NDt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>kDt($Dt(t,i),{recursive:!0,force:!0})))}var od=({mode:t,sessionCreditLimit:e})=>t==="create"&&e!=null&&e<=300;var UDt=s0.dirname(LDt(import.meta.url)),cMe=DDt(import.meta.url),FDt=s0.resolve(UDt,"scripts/scaffold.js"),jDt="scripts/scaffold.js",qDt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,tZ=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},BDt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),zDt=t=>{let e=tZ(t);return e==="node"||e.endsWith("/node")},il=t=>{if(typeof t!="string")return!1;let e=t.match(qDt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&BDt(tZ(e[r]));)r+=1;if(r>=e.length||!zDt(e[r]))return!1;let n=e[r+1];return n?tZ(n).includes(jDt):!1},Sy=ge("create_stage"),lMe="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.",VDt=`${lMe}
|
|
602
|
+
if (condition) { yield value; }`)};import{Buffer as pEt}from"buffer";import{StringDecoder as hEt}from"string_decoder";var UC=(t,e,r)=>{if(r)return;if(t)return{transform:mEt.bind(void 0,new TextEncoder)};let n=new hEt(e);return{transform:gEt.bind(void 0,n),final:_Et.bind(void 0,n)}},mEt=function*(t,e){pEt.isBuffer(e)?yield Ac(e):typeof e=="string"?yield t.encode(e):yield e},gEt=function*(t,e){yield Dr(e)?t.write(e):e},_Et=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as GTe}from"util";var U3=GTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),FC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=SEt}=e[r];for await(let i of n(t))yield*FC(i,e,r+1)},WTe=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*yEt(r,Number(e),t)},yEt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*FC(n,r,e+1)},YTe=GTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),SEt=function*(t){yield t};var F3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},KTe=(t,e)=>[...e.flatMap(r=>[...Yf(r,t,0)]),...eT(t)],Yf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=vEt}=e[r];for(let i of n(t))yield*Yf(i,e,r+1)},eT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*EEt(r,Number(e),t)},EEt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Yf(n,r,e+1)},vEt=function*(t){yield t};var j3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=ZTe(t,o,s),l=Wf(e),u=Wf(r),d=l?U3.bind(void 0,FC,a):F3.bind(void 0,Yf),f=l||u?U3.bind(void 0,WTe,a):F3.bind(void 0,eT),p=l||u?YTe.bind(void 0,a):void 0;return{stream:new bEt({writableObjectMode:n,writableHighWaterMark:JTe(n),readableObjectMode:i,readableHighWaterMark:JTe(i),transform(m,_,y){d([m,c,0],this,y)},flush(m){f([c],this,m)},destroy:p})}},jC=(t,e,r,n)=>{let i=e.filter(({type:o})=>o==="generator"),s=n?i.reverse():i;for(let{value:o,optionName:a}of s){let c=ZTe(o,r,a);t=KTe(c,t)}return t},ZTe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:zTe(n,a)},UC(r,o,n),MC(r,s,n,c),{transform:t,final:e},{transform:VTe(i,a)},BTe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var XTe=(t,e)=>{for(let r of TEt(t))wEt(t,r,e)},TEt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),wEt=(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 ${xu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>REt(a,n));r.input=Vb(o)},REt=(t,e)=>{let r=jC(t,e,"utf8",!0);return AEt(r),Vb(r)},AEt=t=>{let e=t.find(r=>typeof r!="string"&&!Dr(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as OEt,appendFileSync as CEt}from"fs";var qC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&Fg(r,n)&&!qi.has(e)&&xEt(n)&&(t.some(({type:i,value:s})=>i==="native"&&IEt.has(s))||t.every(({type:i})=>ws.has(i))),xEt=t=>t===1||t===2,IEt=new Set(["pipe","overlapped"]),QTe=async(t,e,r,n)=>{for await(let i of t)PEt(e)||twe(i,r,n)},ewe=(t,e,r)=>{for(let n of t)twe(n,e,r)},PEt=t=>t._readableState.pipes.length>0,twe=(t,e,r)=>{let n=tC(t);ia({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var rwe=({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)=>NEt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},NEt=({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=nTe(t,s,d),p=Ac(f),{stdioItems:h,objectMode:m}=e[r],_=kEt([p],h,c,n),{serializedResult:y,finalResult:v=y}=$Et({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});LEt({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&&DEt(y,h,i),S}catch(g){return n.error=g,S}},kEt=(t,e,r,n)=>{try{return jC(t,e,r,!1)}catch(i){return n.error=i,t}},$Et=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:Vb(t)};let o=_Ee(t,r);return n[s]?{serializedResult:o,finalResult:M3(o,!i[s],e)}:{serializedResult:o}},LEt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!qC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=M3(t,!1,o);try{ewe(a,e,n)}catch(c){r.error??=c}},DEt=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>LC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?CEt(n,t):(r.add(s),OEt(n,t))}};var nwe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Pc(e,r,"all")]:Array.isArray(e)?[Pc(t,r,"all"),...e]:Dr(t)&&Dr(e)?G6([t,e]):`${t}${e}`};import{once as q3}from"events";var iwe=async(t,e)=>{let[r,n]=await MEt(t);return e.isForcefullyTerminated??=!1,[r,n]},MEt=async t=>{let[e,r]=await Promise.allSettled([q3(t,"spawn"),q3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?swe(t):r.value},swe=async t=>{try{return await q3(t,"exit")}catch{return swe(t)}},owe=async t=>{let[e,r]=await t;if(!UEt(e,r)&&B3(e,r))throw new no;return[e,r]},UEt=(t,e)=>t===void 0&&e===void 0,B3=(t,e)=>t!==0||e!==null;var awe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=FEt(t,e,r),o=s?.code==="ETIMEDOUT",a=rTe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},FEt=(t,e,r)=>t!==void 0?t:B3(e,r)?new no:void 0;var cwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=qEt(t,e,r),d=VEt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Kg(d,c,l)},qEt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),a=BEt(r),{file:c,commandArguments:l,options:u}=TC(t,e,a);zEt(u);let d=UTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},BEt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,zEt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&BC("ipcInput"),t&&BC("ipc: true"),r&&BC("detached: true"),n&&BC("cancelSignal")},BC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},VEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=HEt({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}=awe(c,r),{output:h,error:m=l}=rwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,S)=>Pc(v,r,S)),y=Pc(nwe(h,r),r,"all");return WEt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:y,options:r,command:n,escapedCommand:i,startTime:a})},HEt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{XTe(s,r);let a=GEt(r);return jEt(...wC(t,e,a))}catch(a){return Yg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},GEt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:CC(e)}),WEt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?NC({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Qb({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as $bt}from"events";import{spawn as Lbt}from"child_process";import pwe from"process";import{once as z3,on as YEt}from"events";var lwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Bg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),KEt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),KEt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{pC(e,i);let s=Au(t,e,r),o=new AbortController;try{return await Promise.race([JEt(s,n,o),ZEt(s,r,o),XEt(s,r,o)])}catch(a){throw zg(t),a}finally{o.abort(),hC(e,i)}},JEt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await z3(t,"message",{signal:r});return n}for await(let[n]of YEt(t,"message",{signal:r}))if(e(n))return n},ZEt=async(t,e,{signal:r})=>{await z3(t,"disconnect",{signal:r}),Kve(e)},XEt=async(t,e,{signal:r})=>{let[n]=await z3(t,"strict:error",{signal:r});throw uC(n,e)};import{once as dwe,on as QEt}from"events";var fwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>V3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),V3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Bg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:_C(t)}),pC(e,s);let o=Au(t,e,r),a=new AbortController,c={};return evt(t,o,a),tvt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),rvt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},evt=async(t,e,r)=>{try{await dwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},tvt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await dwe(t,"strict:error",{signal:r.signal});n.error=uC(i,e),r.abort()}catch{}},rvt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of QEt(r,"message",{signal:s.signal}))uwe(o),yield c}catch{uwe(o)}finally{s.abort(),hC(e,a),n||zg(t),i&&await t}},uwe=({error:t})=>{if(t)throw t};var hwe=(t,{ipc:e})=>{Object.assign(t,gwe(t,!1,e))},mwe=()=>{let t=pwe,e=!0,r=pwe.channel!==void 0;return{...gwe(t,e,r),getCancelSignal:bbe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},gwe=(t,e,r)=>({sendMessage:vC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:lwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:fwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as nvt}from"child_process";import{PassThrough as ivt,Readable as svt,Writable as ovt,Duplex as avt}from"stream";var _we=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{$3(n);let a=new nvt;cvt(a,n),Object.assign(a,{readable:lvt,writable:uvt,duplex:dvt});let c=Yg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=fvt(c,o,i);return{subprocess:a,promise:l}},cvt=(t,e)=>{let r=tT(),n=tT(),i=tT(),s=Array.from({length:e.length-3},tT),o=tT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},tT=()=>{let t=new ivt;return t.end(),t},lvt=()=>new svt({read(){}}),uvt=()=>new ovt({write(){}}),dvt=()=>new avt({read(){},write(){}}),fvt=async(t,e,r)=>Kg(t,e,r);import{createReadStream as ywe,createWriteStream as Swe}from"fs";import{Buffer as pvt}from"buffer";import{Readable as rT,Writable as hvt,Duplex as mvt}from"stream";var vwe=(t,e)=>DC(gvt,t,e,!1),nT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${xu[t]}.`)},Ewe={fileNumber:nT,generator:j3,asyncGenerator:j3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:mvt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},gvt={input:{...Ewe,fileUrl:({value:t})=>({stream:ywe(t)}),filePath:({value:{file:t}})=>({stream:ywe(t)}),webStream:({value:t})=>({stream:rT.fromWeb(t)}),iterable:({value:t})=>({stream:rT.from(t)}),asyncIterable:({value:t})=>({stream:rT.from(t)}),string:({value:t})=>({stream:rT.from(t)}),uint8Array:({value:t})=>({stream:rT.from(pvt.from(t))})},output:{...Ewe,fileUrl:({value:t})=>({stream:Swe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Swe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:hvt.fromWeb(t)}),iterable:nT,asyncIterable:nT,string:nT,uint8Array:nT}};import{on as _vt,once as bwe}from"events";import{PassThrough as yvt,getDefaultHighWaterMark as Svt}from"stream";import{finished as Rwe}from"stream/promises";function Kf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)G3(i);let e=t.some(({readableObjectMode:i})=>i),r=Evt(t,e),n=new H3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Evt=(t,e)=>{if(t.length===0)return Svt(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},H3=class extends yvt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(G3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=vvt(this,this.#e,this.#s);let r=wvt({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#s});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(G3(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},vvt=async(t,e,r)=>{zC(t,Twe);let n=new AbortController;try{await Promise.race([bvt(t,n),Tvt(t,e,r,n)])}finally{n.abort(),zC(t,-Twe)}},bvt=async(t,{signal:e})=>{try{await Rwe(t,{signal:e,cleanup:!0})}catch(r){throw Awe(t,r),r}},Tvt=async(t,e,r,{signal:n})=>{for await(let[i]of _vt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},G3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},wvt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{zC(t,wwe);let a=new AbortController;try{await Promise.race([Rvt(s,e,a),Avt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),xvt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),zC(t,-wwe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?W3(t):Ivt(t))},Rvt=async(t,e,{signal:r})=>{try{await t,r.aborted||W3(e)}catch(n){r.aborted||Awe(e,n)}},Avt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await Rwe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;xwe(o)?i.add(e):Iwe(t,o)}},xvt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await bwe(t,i,{signal:s}),!t.readable)return bwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},Ivt=t=>{t.writable&&t.end()},Awe=(t,e)=>{xwe(e)?W3(t):Iwe(t,e)},xwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",W3=t=>{(t.readable||t.writable)&&t.destroy()},Iwe=(t,e)=>{t.destroyed||(t.once("error",Pvt),t.destroy(e))},Pvt=()=>{},zC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Twe=2,wwe=1;import{finished as Pwe}from"stream/promises";var Zg=(t,e)=>{t.pipe(e),Ovt(t,e),Cvt(t,e)},Ovt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Pwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}Y3(e)}},Y3=t=>{t.writable&&t.end()},Cvt=async(t,e)=>{if(!(ro(t)||ro(e))){try{await Pwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}K3(t)}},K3=t=>{t.readable&&t.destroy()};var Owe=(t,e,r)=>{let n=new Map;for(let[i,{stdioItems:s,direction:o}]of Object.entries(e)){for(let{stream:a}of s.filter(({type:c})=>ws.has(c)))Nvt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!ws.has(c)))$vt({subprocess:t,stream:a,direction:o,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,s]of n.entries()){let o=s.length===1?s[0]:Kf(s);Zg(o,i)}},Nvt=(t,e,r,n)=>{r==="output"?Zg(t.stdio[n],e):Zg(e,t.stdio[n]);let i=kvt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},kvt=["stdin","stdout","stderr"],$vt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;Lvt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},Lvt=(t,{signal:e})=>{ro(t)&&Hf(t,Dvt,e)},Dvt=2;import{addAbortListener as Fvt}from"events";var Jf=[];Jf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Jf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Jf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var VC=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",J3=Symbol.for("signal-exit emitter"),Z3=globalThis,Mvt=Object.defineProperty.bind(Object),X3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(Z3[J3])return Z3[J3];Mvt(Z3,J3,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let s of this.listeners[e])i=s(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},HC=class{},Uvt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),Q3=class extends HC{onExit(){return()=>{}}load(){}unload(){}},eW=class extends HC{#e=tW.platform==="win32"?"SIGINT":"SIGHUP";#r=new X3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Jf)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,s=e;if(typeof s.__signal_exit_emitter__=="object"&&typeof s.__signal_exit_emitter__.count=="number"&&(i+=s.__signal_exit_emitter__.count),n.length===i){this.unload();let o=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;o||e.kill(e.pid,a)}};this.#s=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!VC(this.#t))return()=>{};this.#o===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#o){this.#o=!0,this.#r.count+=1;for(let e of Jf)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#o&&(this.#o=!1,Jf.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#s,this.#r.count-=1)}#a(e){return VC(this.#t)?(this.#t.exitCode=e||0,this.#r.emit("exit",this.#t.exitCode,null),this.#s.call(this.#t,this.#t.exitCode)):0}#c(e,...r){let n=this.#n;if(e==="exit"&&VC(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},tW=globalThis.process,{onExit:Cwe,load:edr,unload:tdr}=Uvt(VC(tW)?new eW(tW):new Q3);var Nwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=Cwe(()=>{t.kill()});Fvt(n,()=>{i()})};var $we=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=rC(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=jvt(r,n,i),{sourceStream:d,sourceError:f}=Bvt(t,l),{options:p,fileDescriptors:h}=oa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},jvt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=qvt(t,e,...r),a=fC(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},qvt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(kwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||V6(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,s,o]=GO(r,...n);return{destination:e(kwe)(i,s,o),pipeOptions:o}}if(oa.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},kwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),Bvt=(t,e)=>{try{return{sourceStream:Vg(t,e)}}catch(r){return{sourceError:r}}};var Dwe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=zvt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw rW({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},zvt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return K3(t),n;if(e!==void 0)return Y3(r),e},rW=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>Yg({error:t,command:Lwe,escapedCommand:Lwe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),Lwe="source.pipe(destination)";var Mwe=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 Vvt}from"stream/promises";var Uwe=(t,e,r)=>{let n=GC.has(e)?Gvt(t,e):Hvt(t,e);return Hf(t,Yvt,r.signal),Hf(e,Kvt,r.signal),Wvt(e),n},Hvt=(t,e)=>{let r=Kf([t]);return Zg(r,e),GC.set(e,r),r},Gvt=(t,e)=>{let r=GC.get(e);return r.add(t),r},Wvt=async t=>{try{await Vvt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}GC.delete(t)},GC=new WeakMap,Yvt=2,Kvt=1;import{aborted as Jvt}from"util";var Fwe=(t,e)=>t===void 0?[]:[Zvt(t,e)],Zvt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Jvt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw rW({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var WC=(t,...e)=>{if(Er(e[0]))return WC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=$we(t,...e),i=Xvt({...n,destination:r});return i.pipe=WC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Xvt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=Qvt(t,i);Dwe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=Uwe(e,s,d);return await Promise.race([Mwe(u),...Fwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},Qvt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as obt}from"timers/promises";import{on as ebt}from"events";import{getDefaultHighWaterMark as tbt}from"stream";var YC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return rbt(e,o),qwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},rbt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},nW=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;nbt(e,o,t);let a=t.readableObjectMode&&!s;return qwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},nbt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},qwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=ebt(t,"data",{signal:e.signal,highWaterMark:jwe,highWatermark:jwe});return ibt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},iW=tbt(!0),jwe=iW,ibt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=sbt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*Yf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*eT(a)}},sbt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[UC(t,r,!e),MC(t,i,!n,{})].filter(Boolean);var Bwe=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=abt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([cbt(t),d]);return}let f=L3(c,r),p=nW({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([lbt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},abt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!qC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=nW({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await QTe(a,t,r,s)},cbt=async t=>{await obt(),t.readableFlowing===null&&t.resume()},lbt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await IC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await PC(r,{maxBuffer:s})):await Wg(r,{maxBuffer:s})}catch(a){return zwe(Qbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},sW=async t=>{try{return await t}catch(e){return zwe(e)}},zwe=({bufferedData:t})=>mEe(t)?new Uint8Array(t):t;import{finished as ubt}from"stream/promises";var iT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=dbt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],ubt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||hbt(a,e,r,n)}finally{o.abort()}},dbt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&fbt(t,r,n),n},fbt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{pbt(e,r),n.call(t,...i)}},pbt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},hbt=(t,e,r,n)=>{if(!mbt(t,e,r,n))throw t},mbt=(t,e,r,n=!0)=>r.propagating?Vwe(t)||KC(t):(r.propagating=!0,oW(r,e)===n?Vwe(t):KC(t)),oW=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",KC=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Vwe=t=>t?.code==="EPIPE";var Hwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>aW({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),aW=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=iT(t,e,l);if(oW(l,e)){await u;return}let[d]=await Promise.all([Bwe({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 Gwe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Kf([t,e].filter(Boolean)):void 0,Wwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>aW({...gbt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:_bt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),gbt=({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}},_bt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as ybt}from"events";var Ywe=t=>Fg(t,"ipc"),Kwe=(t,e)=>{let r=tC(t);ia({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Jwe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=Ywe(s),a=xc(e,"ipc"),c=xc(r,"ipc");for await(let l of V3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(eTe(t,i,c),i.push(l)),o&&Kwe(l,s);return i},Zwe=async(t,e)=>(await Promise.allSettled([t]),e);var Xwe=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=iwe(t,f),S={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=Hwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),T=Wwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:S}),P=[],x=Jwe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),A=Sbt(m,t,S),I=Ebt(h,S);try{return await Promise.race([Promise.all([{},owe(v),Promise.all(g),T,x,Nbe(t,d),...A,...I]),_,vbt(t,y),...xbe(t,s,f,y),...Yve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:y}),...Rbe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:y})])}catch(R){return f.terminationReason??="other",Promise.all([{error:R},v,Promise.all(g.map(b=>sW(b))),sW(T),Zwe(x,P),Promise.allSettled(A),Promise.allSettled(I)])}},Sbt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:iT(n,i,r)),Ebt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>so(s,{checkOpen:!1})&&!ro(s)).map(({type:i,value:s,stream:o=s})=>iT(o,n,e,{isSameDirection:ws.has(i),stopOnExit:i==="native"}))),vbt=async(t,{signal:e})=>{let[r]=await ybt(t,"error",{signal:e});throw r};var Qwe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),sT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=sa();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Xg=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 bbt}from"stream";import{callbackify as Tbt}from"util";import{finished as e0e}from"stream/promises";var cW=async t=>{if(t!==void 0)try{await lW(t)}catch{}},t0e=async t=>{if(t!==void 0)try{await uW(t)}catch{}},lW=async t=>{await e0e(t,{cleanup:!0,readable:!1,writable:!0})},uW=async t=>{await e0e(t,{cleanup:!0,readable:!0,writable:!1})},JC=async(t,e)=>{if(await t,e)throw e},ZC=(t,e,r)=>{r&&!KC(r)?t.destroy(r):e&&t.destroy()};var r0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||qi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=dW(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=fW(a,o),{read:f,onStdoutDataDone:p}=pW({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new bbt({read:f,destroy:Tbt(mW.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return hW({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},dW=(t,e,r)=>{let n=Vg(t,e),i=sT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},fW=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:iW},pW=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=sa(),o=YC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){wbt(this,o,s)},onStdoutDataDone:s}},wbt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},hW=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await uW(t),await n,await cW(i),await e,r.readable&&r.push(null)}catch(s){await cW(i),n0e(r,s)}},mW=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Xg(r,e)&&(n0e(t,n),await JC(e,n))},n0e=(t,e)=>{ZC(t,t.readable,e)};import{Writable as Rbt}from"stream";import{callbackify as i0e}from"util";var s0e=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=gW(t,r,e),o=new Rbt({..._W(n,t,i),destroy:i0e(SW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return yW(n,o),o},gW=(t,e,r)=>{let n=fC(t,e),i=sT(r,n,"writableFinal"),s=sT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},_W=(t,e,r)=>({write:Abt.bind(void 0,t),final:i0e(xbt.bind(void 0,t,e,r))}),Abt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},xbt=async(t,e,r)=>{await Xg(r,e)&&(t.writable&&t.end(),await e)},yW=async(t,e,r)=>{try{await lW(t),e.writable&&e.end()}catch(n){await t0e(r),o0e(e,n)}},SW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Xg(r,e),await Xg(n,e)&&(o0e(t,i),await JC(e,i))},o0e=(t,e)=>{ZC(t,t.writable,e)};import{Duplex as Ibt}from"stream";import{callbackify as Pbt}from"util";var a0e=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||qi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=dW(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=gW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=fW(c,a),{read:_,onStdoutDataDone:y}=pW({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Ibt({read:_,..._W(u,t,d),destroy:Pbt(Obt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return hW({subprocessStdout:c,onStdoutDataDone:y,readable:v,subprocess:t,subprocessStdin:u}),yW(u,v,c),v},Obt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([mW({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),SW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var EW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||qi.has(e),o=Vg(t,r),a=YC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return Cbt(a,o,t)},Cbt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var c0e=(t,{encoding:e})=>{let r=Qwe();t.readable=r0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=s0e.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=a0e.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=EW.bind(void 0,t,e),t[Symbol.asyncIterator]=EW.bind(void 0,t,e,{})};var l0e=(t,e)=>{for(let[r,n]of kbt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Nbt=(async()=>{})().constructor.prototype,kbt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Nbt,t)]);var u0e=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=Dbt(t,e,r),{subprocess:f,promise:p}=Ubt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=WC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),l0e(f,p),oa.set(f,{options:u,fileDescriptors:d}),f},Dbt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=nC(t,e,r),{file:a,commandArguments:c,options:l}=TC(t,e,r),u=Mbt(l),d=vwe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Mbt=({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}},Ubt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=Lbt(...wC(t,e,r))}catch(h){return _we({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;$bt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];Owe(c,a,l),Nwe(c,r,l);let d={},f=sa();c.kill=Gve.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Gwe(c,r),c0e(c,r),hwe(c,r);let p=Fbt({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}},Fbt=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 Xwe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let y=h.map((g,T)=>Pc(g,e,T)),v=Pc(m,e,"all"),S=jbt({errorInfo:d,exitCode:f,signal:p,stdio:y,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Kg(S,n,e)},jbt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?Qb({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof aa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):NC({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var XC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,qbt(n,t[n],i)]));return{...t,...r}},qbt=(t,e,r)=>Bbt.has(t)&&Er(e)&&Er(r)?{...e,...r}:r,Bbt=new Set(["env",...J6]);var Iu=(t,e,r,n)=>{let i=(o,a,c)=>Iu(o,a,r,c),s=(...o)=>zbt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},zbt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Er(s))return i(t,XC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Vbt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?cwe(a,c,l):u0e(a,c,l,i)},Vbt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=vEe(e)?bEe(e,r):[e,...r],[o,a,c]=GO(...s),l=XC(XC(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var d0e=({file:t,commandArguments:e})=>p0e(t,e),f0e=({file:t,commandArguments:e})=>({...p0e(t,e),isSync:!0}),p0e=(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]=Hbt(t);return{file:r,commandArguments:n}},Hbt=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(Gbt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Gbt=/ +/g;var h0e=(t,e,r)=>{t.sync=e(Wbt,r),t.s=t.sync},m0e=({options:t})=>g0e(t),Wbt=({options:t})=>({...g0e(t),isSync:!0}),g0e=t=>({options:{...Ybt(t),...t}}),Ybt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},_0e={preferLocal:!0};var y0e=Iu(()=>({})),Vpr=Iu(()=>({isSync:!0})),S0e=Iu(d0e),Hpr=Iu(f0e),Gpr=Iu(Pbe),Wpr=Iu(m0e,{},_0e,h0e),{sendMessage:Ypr,getOneMessage:Kpr,getEachMessage:Jpr,getCancelSignal:Zpr}=mwe();import{Transform as Kbt}from"stream";var Jbt=["NETLIFY_AI_GATEWAY_KEY"];function Zbt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...Jbt])]}function Xbt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function Qbt(){let e=Zbt().map(r=>process.env[r]).filter(r=>!(!r||Xbt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Rs(t){if(typeof t!="string")return t;let e=Qbt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(eTt(n),"g");r=r.replace(i,"******")}),r}function eTt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var oT=class extends Kbt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Rs(i);n(null,s)}},QC=Symbol("maskedWrite");function E0e(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[QC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stdout.write=r}if(!process.stderr.write[QC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Rs(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[QC]=!0,process.stderr.write=r}}}var v0e=!1,b0e=()=>{v0e=!0},bi=()=>v0e;var aT=null,T0e=t=>(aT&&aT.destroy(),aT=new la({totalAllowedTime:t}),aT),w0e=()=>aT;var la=class{constructor({totalAllowedTime:e}){this.withStageTimer=async(e,r,n,{interruptible:i=!0}={})=>{if(this.isTimeExpired())throw new Error(`${e} stage did not complete in the allowed time. Time has already expired.`);if(i&&bi())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await qO({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{me.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 R0e={name:"@netlify/agent-runner-cli",type:"module",version:"1.164.1",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var iTt=rTt(import.meta.url),sTt=Oc.dirname(iTt),oTt=nTt(import.meta.url),Qg=ge("shell"),vW=new Set,A0e={preferLocal:!0},gn=(t,e,r)=>{let[n,i]=aTt(e,r),s={...A0e,...i},o=y0e(t,n,s);I0e(o,s),C0e(o);let a=r?.idleTimeout;return a&&a>0&&O0e(o,a),o},x0e=(t,e)=>{let r={...A0e,...e},n=S0e(t,r);return I0e(n,r),C0e(n),e?.idleTimeout&&e.idleTimeout>0&&O0e(n,e.idleTimeout),n},aTt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},I0e=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Cc.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new oT).pipe(Cc.stdout),t.stderr?.pipe(new oT).pipe(Cc.stderr);return}t.stdout?.pipe(Cc.stdout),t.stderr?.pipe(Cc.stderr)},bW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Cc.kill(-t.pid,e),Qg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Qg.error("Error killing process:",r),!1}},P0e=t=>bW(t,"SIGKILL"),O0e=(t,e)=>{let r=null,n=()=>{Qg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qg.log(`Force killing idle process ${t.pid}`),P0e(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)},C0e=t=>{vW.add(t);let e=w0e();if(e){let r=e.onTimesUp(()=>{Qg.log(`Global timer expired, killing process ${t.pid}`),bW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Qg.log(`Force killing process ${t.pid} after timeout`),P0e(t))},5e3)});t.on("exit",()=>{vW.delete(t),r()}),t.on("error",()=>{vW.delete(t),r()})}};function ua(t,e){if(!Cc.env.NETLIFY_LOCAL_MODE)try{let i=oTt.resolve(R0e.name),s=Oc.dirname(i);for(;s!==Oc.dirname(s);){let o=Oc.dirname(s);if(Oc.basename(o)==="node_modules"){let a=Oc.join(o,".bin",e);if(eN.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Cc.env.NODE_PATH){let i=Oc.join(Cc.env.NODE_PATH,".bin",e);if(eN.existsSync(i))return i}let r=Oc.join(t,"node_modules",".bin",e);if(eN.existsSync(r))return r;let n=Oc.join(sTt,"..","node_modules",".bin",e);if(eN.existsSync(n))return n}import TD from"process";import{fileURLToPath as LDt}from"url";import{createRequire as DDt}from"module";import s0 from"path";import{readFileSync as MDt}from"fs";var cTt="__netlify__getTracer",lTt="__netlify__shutdownTracers",vt=(t,e)=>globalThis[cTt]?.(t,e),N0e=async()=>globalThis[lTt]?.();function cT(t,e,r,n,i){let s=typeof n=="function"?n:typeof r=="function"?r:i;if(!s)throw new Error("function to execute with active span is missing");return t?t.withActiveSpan(e,r,n,s):s()}import{setTimeout as PDt}from"timers/promises";$e();import u0t from"process";$e();var kTt=(t,e)=>{e.recordException(t),e.setStatus({code:Nn.ERROR})};var $c=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=RRe(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>ARe(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=RRe(r,n,i),c=this._tracer.startSpan(e,s,o);return ARe(c,s,a)}};function RRe(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??Bt.active(),{opts:n,ctx:i,fn:s}}function ARe(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:kTt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}$e();var o_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var rY=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=DRe(e),n._asyncAttributesPending=e.filter(([i,s])=>o_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(o_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=DRe(this._rawAttributes),this._schemaUrl=$Tt(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,o_(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(o_(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=LTt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function nY(t,e){return rY.FromAttributeList(Object.entries(t),e)}function DRe(t){return t.map(([e,r])=>o_(r)?[e,r.catch(n=>{ae.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function $Tt(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 LTt(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)}$e();var ET=class{emit(e){}enabled(){return!1}},MRe=new ET;var vT=Symbol.for("io.opentelemetry.js.api.logs"),a_=globalThis;function URe(t,e,r){return n=>n===t?e:r}var iY=1;var sY=class{getLogger(e,r,n){return new ET}},TN=new sY;var wN=class{constructor(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}emit(e){this._getLogger().emit(e)}enabled(e){return this._getLogger().enabled(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):MRe}};var bT=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new wN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:TN}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(e,r,n)}};var RN=class t{constructor(){this._proxyLoggerProvider=new bT}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return a_[vT]?this.getLoggerProvider():(a_[vT]=URe(iY,e,TN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=a_[vT])===null||e===void 0?void 0:e.call(a_,iY))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete a_[vT],this._proxyLoggerProvider=new bT}};var FRe=RN.getInstance();function jRe(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 qRe(t){t.forEach(e=>e.disable())}function oY(t){let e=t.tracerProvider||It.getTracerProvider(),r=t.meterProvider||ST.getMeterProvider(),n=t.loggerProvider||FRe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return jRe(i,e,r,n),()=>{qRe(i)}}$e();var DTt=Gr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function BRe(t){return t.getValue(DTt)===!0}var c_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(c_||(c_={}));$e();var aY="[_0-9a-z-*/]",MTt=`[a-z]${aY}{0,255}`,UTt=`[a-z0-9]${aY}{0,240}@[a-z]${aY}{0,13}`,FTt=new RegExp(`^(?:${MTt}|${UTt})$`),jTt=/^[ -~]{0,255}[!-~]$/,qTt=/,|=/;function cY(t){return FTt.test(t)}function lY(t){return jTt.test(t)&&!qTt.test(t)}var BTt=32,zRe=512,VRe=",",HRe="=",AN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!cY(e)||!lY(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>zRe)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=VRe+e),e=`${n[0]}${HRe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(VRe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(HRe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!cY(a)||!lY(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>zRe)&&(r.set(a,c),n=l,r.size>=BTt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var xN="traceparent",IN="tracestate",zTt="00",VTt="(?!ff)[\\da-f]{2}",HTt="(?![0]{32})[\\da-f]{32}",GTt="(?![0]{16})[\\da-f]{16}",WTt="[\\da-f]{2}",YTt=new RegExp(`^\\s?(${VTt})-(${HTt})-(${GTt})-(${WTt})(-.*)?\\s?$`);function GRe(t){let e=YTt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Cu=class{inject(e,r,n){let i=It.getSpanContext(e);if(!i||BRe(e)||!Ti(i))return;let s=`${zTt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||pr.NONE).toString(16)}`;n.set(r,xN,s),i.traceState&&n.set(r,IN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,xN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=GRe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,IN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new AN(typeof c=="string"?c:void 0)}return It.setSpanContext(e,o)}fields(){return[xN,IN]}};var PN=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var TT=class{_isCalled=!1;_deferred=new PN;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var Ek=Bn(YY(),1);$e();var IIe=t=>{throw TypeError(t)},XY=(t,e,r)=>e.has(t)||IIe("Cannot "+r),Sk=(t,e,r)=>(XY(t,e,"read from private field"),r?r.call(t):e.get(t)),KY=(t,e,r)=>e.has(t)?IIe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),RIe=(t,e,r,n)=>(XY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),l0t=(t,e,r)=>(XY(t,e,"access private method"),r),AIe="__netlify__getTracer",d0t="__netlify__shutdownTracers",f0t="__nfOTLPTrace",UT,FT,ZY,PIe,p0t=class{constructor(){KY(this,ZY),KY(this,UT),KY(this,FT),RIe(this,UT,new TT(l0t(this,ZY,PIe),this)),RIe(this,FT,ae.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(Sk(this,FT).debug(`export ${t.length.toString()} spans`),Sk(this,UT).isCalled){e({code:c_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(f0t,JSON.stringify(h0t(t))),e({code:c_.SUCCESS})}shutdown(){return Sk(this,UT).call()}};UT=new WeakMap;FT=new WeakMap;ZY=new WeakSet;PIe=function(){return Sk(this,FT).debug("Shutting down"),Promise.resolve()};function h0t(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:yk(e.resource.attributes),droppedAttributesCount:e.droppedAttributesCount},scopeSpans:[{scope:{name:e.instrumentationScope.name,version:e.instrumentationScope.version},spans:[{traceId:r.traceId,spanId:r.spanId,parentSpanId:e.parentSpanContext?.spanId,name:e.name,kind:e.kind||oo.SERVER,startTimeUnixNano:JY(e.startTime),endTimeUnixNano:JY(e.endTime),attributes:yk(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:JY(n.time),attributes:yk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedEventsCount:e.droppedEventsCount,status:{code:e.status.code,message:e.status.message},links:e.links.map(n=>({spanId:n.context.spanId,traceId:n.context.traceId,attributes:yk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function yk(t){return Object.keys(t).map(e=>OIe(e,t[e]))}function OIe(t,e){return{key:t,value:CIe(e)}}function CIe(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(CIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>OIe(r,n))}}:{}}function JY(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var xIe={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"}},NIe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,AIe))return;let e=u0t.version.slice(1),r=nY({"service.name":t.serviceName,"service.version":t.serviceVersion,"process.runtime.name":"nodejs","process.runtime.version":e,"deployment.environment":t.deploymentEnvironment,"http.url":t.siteUrl,"netlify.site.id":t.siteId,"netlify.site.name":t.siteName}),n=t.spanProcessors??[m0t()],i=new Ek.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Cu});let s=t.instrumentations??[];oY({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,AIe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new $c(It.getTracer(a,c)):new $c(It.getTracer(xIe.name,xIe.version))}}),Object.defineProperty(globalThis,d0t,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},m0t=()=>new Ek.SimpleSpanProcessor(new p0t);$e();var jT=Bn(YY(),1);$e();import*as vk from"diagnostics_channel";var kIe=class{constructor(t={}){this.instrumentationName="@netlify/otel/instrumentation-fetch",this.instrumentationVersion="1.0.0",this._recordFromReq=new WeakMap,this.config=t,this._channelSubs=[]}getConfig(){return this.config}setConfig(){}setMeterProvider(){}setTracerProvider(t){this.provider=t}getTracerProvider(){return this.provider}annotateFromRequest(t,e){let r=this.config.getRequestAttributes?.(e)??{},n=new URL(e.path,e.origin);t.setAttributes({...r,"http.request.method":e.method,"url.full":n.href,"url.host":n.host,"url.scheme":n.protocol.slice(0,-1),"server.address":n.hostname,"server.port":n.port,...this.prepareHeaders("request",e.headers)})}annotateFromResponse(t,e){let r=this.config.getResponseAttributes?.(e)??{};t.setAttributes({...r,"http.response.status_code":e.statusCode,...this.prepareHeaders("response",e.headers)}),t.setStatus({code:e.statusCode>=400?Nn.ERROR:Nn.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof $c?t:new $c(t)}enable(){this._channelSubs.length>0||(this.subscribe("undici:request:create",this.onRequestCreate.bind(this)),this.subscribe("undici:request:headers",this.onRequestHeaders.bind(this)),this.subscribe("undici:request:trailers",this.onRequestEnd.bind(this)),this.subscribe("undici:request:error",this.onRequestError.bind(this)))}subscribe(t,e){vk.subscribe(t,e);let r=()=>vk.unsubscribe(t,e);this._channelSubs.push({name:t,unsubscribe:r})}disable(){this._channelSubs.forEach(t=>{t.unsubscribe()}),this._channelSubs.length=0}onRequestCreate({request:t}){try{let e=this.getTracer(),r=new URL(t.path,t.origin);if(!e||t.method==="CONNECT"||this.config.skipURLs?.some(i=>typeof i=="string"?r.href.startsWith(i):i.test(r.href)))return;let n=e.startSpan(this.getRequestMethod(t.method),{kind:oo.CLIENT},Bt.active());this.annotateFromRequest(n,t),this._recordFromReq.set(t,n)}catch{}}onRequestHeaders({request:t,response:e}){try{let r=this._recordFromReq.get(t);if(!r)return;this.annotateFromResponse(r,e)}catch{}}onRequestError({request:t,error:e}){try{let r=this._recordFromReq.get(t);if(!r)return;r.recordException(e),r.setStatus({code:Nn.ERROR,message:e.message}),r.end(),this._recordFromReq.delete(t)}catch{}}onRequestEnd({request:t}){try{let e=this._recordFromReq.get(t);if(!e)return;e.end(),this._recordFromReq.delete(t)}catch{}}};var nMe=Bn(tMe(),1);var vD=ge("tracing"),rMe=8e3,ODt=5e3,i0=async(t=ODt)=>{try{await Promise.race([N0e(),PDt(t)])}catch(e){vD.warn("Failed to flush tracers on shutdown",e)}},iMe=async(t,e,r)=>{if(!vt()){let n=[new jT.SimpleSpanProcessor(new QJ),new jT.SimpleSpanProcessor(new nMe.OTLPTraceExporter({url:r.exporterUrl}))];await NIe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new kIe({skipHeaders:!0})]})}return r.traceparent?(Qn.setGlobalPropagator(new Cu),Qn.extract(Bt.active(),{traceparent:r.traceparent,isRemote:!0})):Bt.active()};function Ht(t,e,r){return vD.log(`\u23F3 TRACE: ${e} starting...`),cT(t,e,r)}var QJ=class{export(e,r){for(let n of e)this.logSpan(n);r({code:1})}async shutdown(){}forceFlush(){return Promise.resolve()}logSpan(e){let r=(e.endTime[0]-e.startTime[0])*1e3+(e.endTime[1]-e.startTime[1])/1e6,n=e.attributes,i=[];for(let[a,c]of Object.entries(n))a.includes("duration")&&typeof c=="number"?i.push(`${a}=${c.toFixed(2)}ms`):i.push(`${a}=${c}`);let s=e.status?.code===2?"\u274C":"\u2705",o=i.length>0?` [${i.join(", ")}]`:"";vD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&vD.log(` \u274C Error: ${e.status.message}`)}};function eZ(){return Ve().captureLlmContentEnabled}function sMe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function bD(t,e,r){let n={role:t,parts:[{type:"text",content:Rs(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var CDt=new Set([Z.Task,Z.RunCommand,Z.Explore,Z.FileRead,Z.FileWrite,Z.Notebook,Z.Web,Z.Todo,Z.Skill,Z.Tool,Z.Memorize,Z.Deployment,Z.SiteGeneration]);function oMe(t,e,r,n){if(!t.length)return;let i=vt();if(!i)return;let s=eZ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&CDt.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>rMe?`${a.message.slice(0,rMe)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Rs(_)}:{"gen_ai.output.messages":bD("assistant",_)}:{}}}).end(u)})}import{readdir as NDt,rm as kDt}from"fs/promises";import{join as $Dt}from"path";async function aMe(t,e=[]){let n=(await NDt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>kDt($Dt(t,i),{recursive:!0,force:!0})))}var od=({mode:t,sessionCreditLimit:e})=>t==="create"&&e!=null&&e<=300;var UDt=s0.dirname(LDt(import.meta.url)),cMe=DDt(import.meta.url),FDt=s0.resolve(UDt,"scripts/scaffold.js"),jDt="scripts/scaffold.js",qDt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,tZ=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},BDt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),zDt=t=>{let e=tZ(t);return e==="node"||e.endsWith("/node")},il=t=>{if(typeof t!="string")return!1;let e=t.match(qDt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&BDt(tZ(e[r]));)r+=1;if(r>=e.length||!zDt(e[r]))return!1;let n=e[r+1];return n?tZ(n).includes(jDt):!1},Sy=ge("create_stage"),lMe="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.",VDt=`${lMe}
|
|
603
603
|
|
|
604
604
|
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.`,HDt=`${lMe}
|
|
605
605
|
|
|
@@ -742,7 +742,7 @@ priority = 20
|
|
|
742
742
|
`),bn.log("Ask policy allows the read-only database query command",{allowedPrefixes:i})}let n=Rd.join(L0.homedir(),".gemini","ask-policy.toml");return await ah.mkdir(Rd.dirname(n),{recursive:!0}),await ah.writeFile(n,r.join(`
|
|
743
743
|
`),"utf-8"),n};async function KZ({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:s=!1,priorAgentSessionId:o=void 0,cwd:a=gS.cwd(),cliPath:c="netlify",abortSignal:l=void 0,onSessionId:u=void 0,forceLowEffortForCreditWrapUp:d=void 0}){let{prompt:f}=t,p=ng("gemini",t.effort);t.effort&&!p&&bn.log(`Effort '${t.effort}' is not available on ${rM}; using its default`);let h=d?"low":p;K1t({aiGateway:i});let m=await J1t({aiGateway:i,config:t,model:t.model});await W1t({model:m,effort:h});let _=[],y=[],v=[],S={},g=0,T=0,P,x,A,I,R,b=!!(s&&o),D=!1;b&&(D=await $0(o)),b&&!D&&(bn.log(`Gemini resume requested for session ${o} but it was not resumable; starting a fresh session`),me.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let C=t.mode==="ask",w=C?await Z1t({config:t,cliPath:c}):void 0,O=[ua(a,"gemini"),...m?["--model",m]:[],...C?["--approval-mode","default","--policy",w]:["--yolo"],"--skip-trust","--output-format","stream-json",...D?["-r",o]:[],"-p",""],N=`${gS.env.NVM_BIN}/node`;bn.log(`Running ${N} ${O.join(" ")}`);let j=e.utils.run(N,O,{all:!0,env:{...gS.env,GEMINI_CLI_NO_RELAUNCH:"1"},cwd:a,idleTimeout:Ka,cancelSignal:l});j.stdin?.end(f);let z=Al(()=>{r?.({steps:_,duration:T}),n?.({steps:y,duration:T}),y=[]},250),le=(M,B)=>{M.id=g,g+=1,v.push(M),_.push(M),y.push(M),B||z.flush(),z(),B&&z.flush()},Se=m||"default";t.answeredInteraction||le({title:`Using ${rM} with ${Se}`,category:Z.Environment},!0);let Oe=z1t.createInterface({input:j.all});Oe.on("error",M=>{bn.error("Readline interface error",{error:M.message,stack:M.stack})});let qe="",se=()=>{qe&&le({message:qe.trim(),category:Z.AgentMessage}),qe=""};Oe.on("line",M=>{let B;try{if(M.startsWith("[API Error")){let ie=M.match(/\[api error: (.+?)]$/i)?.[1];B={type:"error",value:rE(ie,!1)?.error?.message||ie||"Gemini encountered error"}}else B=JSON.parse(M)}catch{return}if(B)switch(B.type==="init"&&typeof B.session_id=="string"&&(I=B.session_id,u?.(I)),["message","result"].includes(B.type)||se(),B.type){case"message":{B.role!=="user"&&B.content&&(qe+=B.content);break}case"tool_use":{if(B.tool_name===e_e){if(B.tool_id&&!R){let ee=yu.safeParse(B.parameters);ee.success?(R={questions:ee.data.questions},j.kill()):(bn.warn("Ignoring malformed ask tool input",{toolUseId:B.tool_id,issues:Su(ee.error.issues)}),me.inc("inference.malformed_ask",1))}break}let ie=YZ[B.tool_name]?.name??B.tool_name,U=B.parameters?.file_path,ne=U&&Rd.relative(a,U),$=B.parameters?.command,L=B.tool_name==="activate_skill"&&B.parameters?.name,F=B.tool_name==="run_shell_command"&&il($),W=[ie,ne&&`\`${ne}\``,$&&`\`${$}\``].filter(Boolean).join(" ");if(L)W=`Use ${Uo(L)}`;else if(F)W="Generating the site";else if(B.tool_name==="grep_search"){let{dir_path:ee,pattern:de}=B.parameters||{};ee&&de?W=`Search in \`${ee}\` for \`${de}\``:ee?W=`Search in \`${ee}\``:de&&(W=`Search for \`${de}\``)}else if(B.tool_name==="update_topic"){let ee=B.parameters?.title;ee&&(W=`${ie} \`${ee}\``)}let J={title:W,category:F?Z.SiteGeneration:YZ[B.tool_name]?.category,...L&&{type:L}};S[B.tool_id]=J,z.flush();break}case"tool_result":{let ie=S[B.tool_id];ie&&(B.output&&(ie.message=`\`\`\`
|
|
744
744
|
${B.output.trim()}
|
|
745
|
-
\`\`\``),le(ie,!0),Y1t(ie));break}case"result":{T=B.stats?.duration_ms,B.stats&&(Eu(B.stats,m?{model:m}:{}),A=B.stats),B.status==="error"?x=B.error?.message:P=qe.trim();break}case"error":{x=B.error;break}case"finished":break;case"init":break;default:{bn.warn("Unhandled message type:",B.type);break}}});let be=!1;if(await j.catch(M=>{be=ou(M,l),{error:x,result:P}=V1t({catchError:M,runCmd:j,error:x,result:P,runnerName:"Gemini"})}),Oe.close(),R)return z.flush(),{steps:v,duration:T,agentSessionId:I,resolvedModel:m,usage:A,pendingInteraction:R};let Le=be;return Le&&(!P&&qe.trim()&&(P=qe.trim()),x=void 0),z.flush(),{steps:v,duration:T,result:await vu({initialResult:P,agentName:rM,hasError:!!x}),error:bu({error:x,agentName:rM}),isRetryableError:Tu(x),isProviderUnavailableError:wu(x),resolvedModel:m,usage:A,agentSessionId:I,...h&&R1e(m)?{effort:h}:{},...Le?{aborted:!0}:{}}}var A1e=async()=>{let t=Rd.join(L0.homedir(),".gemini");await ah.rm(t,{recursive:!0,force:!0});let e=Rd.join(L0.homedir(),".agents","skills");await ah.rm(e,{recursive:!0,force:!0})},x1e={baseDir:Rd.join(L0.homedir(),".gemini"),include:["tmp"]};import ZZ from"fs/promises";import N1e from"os";import D0 from"path";import QZ from"process";import eUt from"readline";import X1t from"os";import O1e from"path";import JZ from"fs";var I1e=ge("opencode_install"),P1e="1.17.19",Q1t=()=>O1e.join(X1t.homedir(),".netlify-agent-runner","opencode"),nM=async t=>{let e=ua(t,"opencode");if(e)return e;let r=Q1t(),n=O1e.join(r,"node_modules",".bin","opencode");if(JZ.existsSync(n))return n;JZ.mkdirSync(r,{recursive:!0}),I1e.log(`Installing opencode-ai@${P1e} on demand`);let i=Date.now();await gn("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${P1e}`],{cwd:r});let s=Date.now()-i;if(me.timing("opencode.install_duration",s),I1e.log(`Installed opencode-ai in ${s}ms`),!JZ.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var gl=ge("runner_opencode"),iM="OpenCode",k1e="gateway",tUt="z-ai/glm-5.
|
|
745
|
+
\`\`\``),le(ie,!0),Y1t(ie));break}case"result":{T=B.stats?.duration_ms,B.stats&&(Eu(B.stats,m?{model:m}:{}),A=B.stats),B.status==="error"?x=B.error?.message:P=qe.trim();break}case"error":{x=B.error;break}case"finished":break;case"init":break;default:{bn.warn("Unhandled message type:",B.type);break}}});let be=!1;if(await j.catch(M=>{be=ou(M,l),{error:x,result:P}=V1t({catchError:M,runCmd:j,error:x,result:P,runnerName:"Gemini"})}),Oe.close(),R)return z.flush(),{steps:v,duration:T,agentSessionId:I,resolvedModel:m,usage:A,pendingInteraction:R};let Le=be;return Le&&(!P&&qe.trim()&&(P=qe.trim()),x=void 0),z.flush(),{steps:v,duration:T,result:await vu({initialResult:P,agentName:rM,hasError:!!x}),error:bu({error:x,agentName:rM}),isRetryableError:Tu(x),isProviderUnavailableError:wu(x),resolvedModel:m,usage:A,agentSessionId:I,...h&&R1e(m)?{effort:h}:{},...Le?{aborted:!0}:{}}}var A1e=async()=>{let t=Rd.join(L0.homedir(),".gemini");await ah.rm(t,{recursive:!0,force:!0});let e=Rd.join(L0.homedir(),".agents","skills");await ah.rm(e,{recursive:!0,force:!0})},x1e={baseDir:Rd.join(L0.homedir(),".gemini"),include:["tmp"]};import ZZ from"fs/promises";import N1e from"os";import D0 from"path";import QZ from"process";import eUt from"readline";import X1t from"os";import O1e from"path";import JZ from"fs";var I1e=ge("opencode_install"),P1e="1.17.19",Q1t=()=>O1e.join(X1t.homedir(),".netlify-agent-runner","opencode"),nM=async t=>{let e=ua(t,"opencode");if(e)return e;let r=Q1t(),n=O1e.join(r,"node_modules",".bin","opencode");if(JZ.existsSync(n))return n;JZ.mkdirSync(r,{recursive:!0}),I1e.log(`Installing opencode-ai@${P1e} on demand`);let i=Date.now();await gn("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${P1e}`],{cwd:r});let s=Date.now()-i;if(me.timing("opencode.install_duration",s),I1e.log(`Installed opencode-ai in ${s}ms`),!JZ.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var gl=ge("runner_opencode"),iM="OpenCode",k1e="gateway",tUt="z-ai/glm-5.2",rUt=new Set(["z-ai/glm-5.2","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),nUt=(t,e)=>!t||!IR.includes(t)?t:e&&rUt.has(e)?"xhigh":"max",XZ={bash:{name:"Run command",category:Z.RunCommand},read:{name:"Read file",category:Z.FileRead},write:{name:"Edit file",category:Z.FileWrite},edit:{name:"Edit file",category:Z.FileWrite},glob:{name:"Find files",category:Z.Explore},grep:{name:"Search files",category:Z.Explore},list:{name:"List directory",category:Z.Explore},task:{name:"Task",category:Z.Task},todowrite:{name:"Update task list",category:Z.Todo},webfetch:{name:"Fetch web",category:Z.Web},websearch:{name:"Search web",category:Z.Web},skill:{name:"Use Skill",category:Z.Skill}},C1e=t=>XZ[t]?.name||t,iUt=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],sUt=250,oUt=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=yu.safeParse(e);return r.success?{questions:r.data.questions}:{issues:Su(r.error.issues)}},aUt=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await ZZ.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await ZZ.rm(t,{force:!0}).catch(()=>{});let{questions:s,issues:o}=oUt(i);if(!s){gl.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:o}),me.inc("inference.malformed_ask",1);return}r&&e(s)},sUt);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function cUt({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let s=e.modelVersionOverrides?.opencode?.[e.accountType];s?n=s:r||(n=Ve().opencodeDefaultModel||tUt),n&&(await i(n)||gl.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function lUt({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:s}=t;if(!i||!s)throw new Error("No token or url provided from AI Gateway");let o=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[k1e]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:s},...Object.keys(o).length>0?{models:o}:{}}},...n?{mcp:r_e(n)}:{}};return{...QZ.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function eX({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:s,cwd:o=QZ.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,_,y,v=0,S=0,g,T=await cUt({config:t,aiGateway:n,model:d}),P=nUt(f,T);gl.log(f?`Requesting reasoning effort '${f}' for model '${T}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${T}'; running at its own default`);let x=Ve().questionsEnabled?await n_e():void 0,A=lUt({aiGateway:n,model:T,effort:P,questionsFilePath:x?.filePath}),I=[],R=[],b=0,D=Date.now(),C=await nM(o),w=["run","--format","json","--dangerously-skip-permissions","--agent","build",...T?["--model",`${k1e}/${T}`]:[],...i?s?["--session",s]:["--continue"]:[]];gl.log(`Running ${C} ${w.join(" ")}`);let O=e.utils.run(C,w,{all:!0,env:A,cwd:o,idleTimeout:Ka,cancelSignal:a});O.stdin?.end(u);let N=x?aUt(x.filePath,ie=>{g||(g={questions:ie},O.kill())}):void 0,j=Al(()=>{r?.({steps:R,duration:Date.now()-D})},250),z=(ie,U)=>{let{wrapMessage:ne,...$}=ie,L=CR({...$,id:b});L.message&&ne&&(L.message=`\`\`\`
|
|
746
746
|
${L.message}
|
|
747
747
|
\`\`\``),b+=1,I.push(L),R.push(L),U||j.flush(),j(),U&&j.flush()},le=T||"default";t.answeredInteraction||z({title:`Using ${iM} with ${le}`,category:Z.Environment},!0);let Se=eUt.createInterface({input:O.all});Se.on("error",ie=>{gl.error("Readline interface error",{error:ie.message,stack:ie.stack})});let Oe="",qe,se=new Set,be=()=>{Oe&&(z({message:Oe,category:Z.AgentMessage}),qe=Oe,Oe="")};Se.on("line",ie=>{let U;try{U=JSON.parse(ie)}catch{gl.log("Could not parse line",ie);return}switch(U.sessionID&&U.sessionID!==p&&(p=U.sessionID,c?.(p)),U.type){case"step_start":{be();break}case"text":{let ne=U.part?.text;ne&&(Oe+=ne);break}case"reasoning":{be();let ne=U.part?.text;ne&&z({title:"Reasoning",message:ne,category:Z.Reasoning},!0);break}case"tool_use":{be();let ne=U.part?.tool;if(!ne)break;let $=U.part?.state?.input??{},L=U.part?.state?.status,F=U.part?.state?.output,W=U.part?.state?.error;if(ne===t_e){L==="error"&&gl.warn("Ask tool call rejected before it could pause the run",{error:W});break}if(L==="error"&&(v+=1),(L==="completed"||L==="error")&&(S+=1),ne==="skill"){let Ce=typeof $.name=="string"?$.name:void 0;if(Ce){let Xe=Uo(Ce);Za(gl,Xe),z({title:`Use ${Xe}`,category:Z.Skill,type:Ce},!0);break}}if(ne==="todowrite"){let Ce=iUt($.todos);z({title:C1e(ne),category:Ce.length>0?XZ.todowrite.category:Z.Tool,...Ce.length>0?{tasks:Ce}:{}},!0);break}let J=typeof $.command=="string"?$.command:void 0,ee=J?il(J):!1,de=typeof $.path=="string"&&$.path||typeof $.file_path=="string"&&$.file_path||typeof $.pattern=="string"&&$.pattern||void 0,he,Pe;if(ee)he="Generating the site",Pe=Z.SiteGeneration;else if(J&&ne==="bash")he=`Running \`${J}\``,Pe=Z.RunCommand;else{let Ce=de&&`\`${D0.relative(o,de)}\``;he=[C1e(ne),Ce].filter(Boolean).join(" "),Pe=XZ[ne]?.category||Z.AgentMessage}let Te,te=["bash","read","glob","grep","list","webfetch","websearch"].includes(ne);W?Te=`\`\`\`
|
|
748
748
|
${W.trim()}
|
package/dist/index.js
CHANGED
|
@@ -110,7 +110,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
110
110
|
`,LF:`
|
|
111
111
|
`,concatBytes:QL},z$e=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},G$e={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:z$e};import{Buffer as V$e}from"buffer";var wre=(t,e)=>t?void 0:q$e.bind(void 0,e),q$e=function*(t,e){if(typeof e!="string"&&!Gt(e)&&!V$e.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},Rre=(t,e)=>t?H$e.bind(void 0,e):W$e.bind(void 0,e),H$e=function*(t,e){Cre(t,e),yield e},W$e=function*(t,e){if(Cre(t,e),typeof e!="string"&&!Gt(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},Cre=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
112
112
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
113
|
-
if (condition) { yield value; }`)};import{Buffer as Y$e}from"buffer";import{StringDecoder as K$e}from"string_decoder";var Px=(t,e,r)=>{if(r)return;if(t)return{transform:Z$e.bind(void 0,new TextEncoder)};let n=new K$e(e);return{transform:J$e.bind(void 0,n),final:X$e.bind(void 0,n)}},Z$e=function*(t,e){Y$e.isBuffer(e)?yield ms(e):typeof e=="string"?yield t.encode(e):yield e},J$e=function*(t,e){yield Gt(e)?t.write(e):e},X$e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Ire}from"util";var t$=Ire(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Ox=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=e1e}=e[r];for await(let i of n(t))yield*Ox(i,e,r+1)},Pre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Q$e(r,Number(e),t)},Q$e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Ox(n,r,e+1)},Ore=Ire(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),e1e=function*(t){yield t};var r$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Nre=(t,e)=>[...e.flatMap(r=>[...Ll(r,t,0)]),...M_(t)],Ll=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=r1e}=e[r];for(let i of n(t))yield*Ll(i,e,r+1)},M_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*t1e(r,Number(e),t)},t1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ll(n,r,e+1)},r1e=function*(t){yield t};var n$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Mre(t,s,o),l=Dl(e),u=Dl(r),d=l?t$.bind(void 0,Ox,a):r$.bind(void 0,Ll),f=l||u?t$.bind(void 0,Pre,a):r$.bind(void 0,M_),p=l||u?Ore.bind(void 0,a):void 0;return{stream:new n1e({writableObjectMode:n,writableHighWaterMark:kre(n),readableObjectMode:i,readableHighWaterMark:kre(i),transform(m,y,v){d([m,c,0],this,v)},flush(m){f([c],this,m)},destroy:p})}},Nx=(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=Mre(s,r,a);t=Nre(c,t)}return t},Mre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:wre(n,a)},Px(r,s,n),Ix(r,o,n,c),{transform:t,final:e},{transform:Rre(i,a)},xre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Dre=(t,e)=>{for(let r of i1e(t))o1e(t,r,e)},i1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),o1e=(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=>s1e(a,n));r.input=A_(s)},s1e=(t,e)=>{let r=Nx(t,e,"utf8",!0);return a1e(r),A_(r)},a1e=t=>{let e=t.find(r=>typeof r!="string"&&!Gt(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 d1e,appendFileSync as f1e}from"fs";var kx=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&hf(r,n)&&!Sn.has(e)&&c1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&l1e.has(o))||t.every(({type:i})=>Jn.has(i))),c1e=t=>t===1||t===2,l1e=new Set(["pipe","overlapped"]),Lre=async(t,e,r,n)=>{for await(let i of t)u1e(e)||Ure(i,r,n)},$re=(t,e,r)=>{for(let n of t)Ure(n,e,r)},u1e=t=>t._readableState.pipes.length>0,Ure=(t,e,r)=>{let n=WA(t);po({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Fre=({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)=>p1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},p1e=({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=ms(f),{stdioItems:h,objectMode:m}=e[r],y=h1e([p],h,c,n),{serializedResult:v,finalResult:b=v}=m1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});g1e({serializedResult:v,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&&_1e(v,h,i),x}catch(S){return n.error=S,x}},h1e=(t,e,r,n)=>{try{return Nx(t,e,r,!1)}catch(i){return n.error=i,t}},m1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:A_(t)};let s=e7(t,r);return n[o]?{serializedResult:s,finalResult:e$(s,!i[o],e)}:{serializedResult:s}},g1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!kx({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=e$(t,!1,s);try{$re(a,e,n)}catch(c){r.error??=c}},_1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Rx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?f1e(n,t):(r.add(o),d1e(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,ys(e,r,"all")]:Array.isArray(e)?[ys(t,r,"all"),...e]:Gt(t)&&Gt(e)?lL([t,e]):`${t}${e}`};import{once as i$}from"events";var jre=async(t,e)=>{let[r,n]=await y1e(t);return e.isForcefullyTerminated??=!1,[r,n]},y1e=async t=>{let[e,r]=await Promise.allSettled([i$(t,"spawn"),i$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?zre(t):r.value},zre=async t=>{try{return await i$(t,"exit")}catch{return zre(t)}},Gre=async t=>{let[e,r]=await t;if(!S1e(e,r)&&o$(e,r))throw new Ci;return[e,r]},S1e=(t,e)=>t===void 0&&e===void 0,o$=(t,e)=>t!==0||e!==null;var Vre=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=E1e(t,e,r),s=o?.code==="ETIMEDOUT",a=Fte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},E1e=(t,e,r)=>t!==void 0?t:o$(e,r)?new Ci:void 0;var qre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=T1e(t,e,r),d=x1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Af(d,c,l)},T1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),a=b1e(r),{file:c,commandArguments:l,options:u}=mx(t,e,a);A1e(u);let d=vre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},b1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,A1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Mx("ipcInput"),t&&Mx("ipc: true"),r&&Mx("detached: true"),n&&Mx("cancelSignal")},Mx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},x1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=w1e({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}=Vre(c,r),{output:h,error:m=l}=Fre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,x)=>ys(b,r,x)),v=ys(Bre(h,r),r,"all");return C1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:v,options:r,command:n,escapedCommand:i,startTime:a})},w1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Dre(o,r);let a=R1e(r);return v1e(...gx(t,e,a))}catch(a){return bf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},R1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:bx(e)}),C1e=({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?Ax({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):k_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as mFe}from"events";import{spawn as gFe}from"child_process";import Zre from"process";import{once as s$,on as I1e}from"events";var Hre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(_f({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:lx(t)}),P1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),P1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ox(e,i);let o=ka(t,e,r),s=new AbortController;try{return await Promise.race([O1e(o,n,s),N1e(o,r,s),k1e(o,r,s)])}catch(a){throw yf(t),a}finally{s.abort(),sx(e,i)}},O1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await s$(t,"message",{signal:r});return n}for await(let[n]of I1e(t,"message",{signal:r}))if(e(n))return n},N1e=async(t,e,{signal:r})=>{await s$(t,"disconnect",{signal:r}),Nee(e)},k1e=async(t,e,{signal:r})=>{let[n]=await s$(t,"strict:error",{signal:r});throw rx(n,e)};import{once as Yre,on as M1e}from"events";var Kre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>a$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),a$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{_f({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:lx(t)}),ox(e,o);let s=ka(t,e,r),a=new AbortController,c={};return D1e(t,s,a),L1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),$1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},D1e=async(t,e,r)=>{try{await Yre(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},L1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Yre(t,"strict:error",{signal:r.signal});n.error=rx(i,e),r.abort()}catch{}},$1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of M1e(r,"message",{signal:o.signal}))Wre(s),yield c}catch{Wre(s)}finally{o.abort(),sx(e,a),n||yf(t),i&&await t}},Wre=({error:t})=>{if(t)throw t};var Jre=(t,{ipc:e})=>{Object.assign(t,Qre(t,!1,e))},Xre=()=>{let t=Zre,e=!0,r=Zre.channel!==void 0;return{...Qre(t,e,r),getCancelSignal:ote.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Qre=(t,e,r)=>({sendMessage:px.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Hre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Kre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as U1e}from"child_process";import{PassThrough as F1e,Readable as B1e,Writable as j1e,Duplex as z1e}from"stream";var ene=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{JL(n);let a=new U1e;G1e(a,n),Object.assign(a,{readable:V1e,writable:q1e,duplex:H1e});let c=bf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=W1e(c,s,i);return{subprocess:a,promise:l}},G1e=(t,e)=>{let r=D_(),n=D_(),i=D_(),o=Array.from({length:e.length-3},D_),s=D_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},D_=()=>{let t=new F1e;return t.end(),t},V1e=()=>new B1e({read(){}}),q1e=()=>new j1e({write(){}}),H1e=()=>new z1e({read(){},write(){}}),W1e=async(t,e,r)=>Af(t,e,r);import{createReadStream as tne,createWriteStream as rne}from"fs";import{Buffer as Y1e}from"buffer";import{Readable as L_,Writable as K1e,Duplex as Z1e}from"stream";var ine=(t,e)=>Cx(J1e,t,e,!1),$_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ma[t]}.`)},nne={fileNumber:$_,generator:n$,asyncGenerator:n$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:Z1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},J1e={input:{...nne,fileUrl:({value:t})=>({stream:tne(t)}),filePath:({value:{file:t}})=>({stream:tne(t)}),webStream:({value:t})=>({stream:L_.fromWeb(t)}),iterable:({value:t})=>({stream:L_.from(t)}),asyncIterable:({value:t})=>({stream:L_.from(t)}),string:({value:t})=>({stream:L_.from(t)}),uint8Array:({value:t})=>({stream:L_.from(Y1e.from(t))})},output:{...nne,fileUrl:({value:t})=>({stream:rne(t)}),filePath:({value:{file:t,append:e}})=>({stream:rne(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:K1e.fromWeb(t)}),iterable:$_,asyncIterable:$_,string:$_,uint8Array:$_}};import{on as X1e,once as one}from"events";import{PassThrough as Q1e,getDefaultHighWaterMark as eUe}from"stream";import{finished as cne}from"stream/promises";function $l(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)l$(i);let e=t.some(({readableObjectMode:i})=>i),r=tUe(t,e),n=new c$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var tUe=(t,e)=>{if(t.length===0)return eUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},c$=class extends Q1e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(l$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=rUe(this,this.#e,this.#o);let r=oUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(l$(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},rUe=async(t,e,r)=>{Dx(t,sne);let n=new AbortController;try{await Promise.race([nUe(t,n),iUe(t,e,r,n)])}finally{n.abort(),Dx(t,-sne)}},nUe=async(t,{signal:e})=>{try{await cne(t,{signal:e,cleanup:!0})}catch(r){throw lne(t,r),r}},iUe=async(t,e,r,{signal:n})=>{for await(let[i]of X1e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},l$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},oUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Dx(t,ane);let a=new AbortController;try{await Promise.race([sUe(o,e,a),aUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),cUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Dx(t,-ane)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?u$(t):lUe(t))},sUe=async(t,e,{signal:r})=>{try{await t,r.aborted||u$(e)}catch(n){r.aborted||lne(e,n)}},aUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await cne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;une(s)?i.add(e):dne(t,s)}},cUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await one(t,i,{signal:o}),!t.readable)return one(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},lUe=t=>{t.writable&&t.end()},lne=(t,e)=>{une(e)?u$(t):dne(t,e)},une=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",u$=t=>{(t.readable||t.writable)&&t.destroy()},dne=(t,e)=>{t.destroyed||(t.once("error",uUe),t.destroy(e))},uUe=()=>{},Dx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},sne=2,ane=1;import{finished as fne}from"stream/promises";var wf=(t,e)=>{t.pipe(e),dUe(t,e),fUe(t,e)},dUe=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await fne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}d$(e)}},d$=t=>{t.writable&&t.end()},fUe=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await fne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}f$(t)}},f$=t=>{t.readable&&t.destroy()};var pne=(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})=>Jn.has(c)))pUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Jn.has(c)))mUe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:$l(o);wf(s,i)}},pUe=(t,e,r,n)=>{r==="output"?wf(t.stdio[n],e):wf(e,t.stdio[n]);let i=hUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},hUe=["stdin","stdout","stderr"],mUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;gUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},gUe=(t,{signal:e})=>{Ri(t)&&kl(t,_Ue,e)},_Ue=2;import{addAbortListener as EUe}from"events";var Ul=[];Ul.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ul.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ul.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Lx=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",p$=Symbol.for("signal-exit emitter"),h$=globalThis,yUe=Object.defineProperty.bind(Object),m$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(h$[p$])return h$[p$];yUe(h$,p$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},$x=class{},SUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),g$=class extends $x{onExit(){return()=>{}}load(){}unload(){}},_$=class extends $x{#e=y$.platform==="win32"?"SIGINT":"SIGHUP";#r=new m$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ul)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!Lx(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of Ul)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,Ul.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return Lx(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"&&Lx(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},y$=globalThis.process,{onExit:hne,load:jvt,unload:zvt}=SUe(Lx(y$)?new _$(y$):new g$);var mne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=hne(()=>{t.kill()});EUe(n,()=>{i()})};var _ne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=YA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=vUe(r,n,i),{sourceStream:d,sourceError:f}=bUe(t,l),{options:p,fileDescriptors:h}=mo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},vUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=TUe(t,e,...r),a=ix(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},TUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(gne,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||aL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=UA(r,...n);return{destination:e(gne)(i,o,s),pipeOptions:s}}if(mo.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}`)},gne=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),bUe=(t,e)=>{try{return{sourceStream:Sf(t,e)}}catch(r){return{sourceError:r}}};var Sne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=AUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw S$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},AUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return f$(t),n;if(e!==void 0)return d$(r),e},S$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>bf({error:t,command:yne,escapedCommand:yne,fileDescriptors:e,options:r,startTime:n,isSync:!1}),yne="source.pipe(destination)";var Ene=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 xUe}from"stream/promises";var vne=(t,e,r)=>{let n=Ux.has(e)?RUe(t,e):wUe(t,e);return kl(t,IUe,r.signal),kl(e,PUe,r.signal),CUe(e),n},wUe=(t,e)=>{let r=$l([t]);return wf(r,e),Ux.set(e,r),r},RUe=(t,e)=>{let r=Ux.get(e);return r.add(t),r},CUe=async t=>{try{await xUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ux.delete(t)},Ux=new WeakMap,IUe=2,PUe=1;import{aborted as OUe}from"util";var Tne=(t,e)=>t===void 0?[]:[NUe(t,e)],NUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await OUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw S$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Fx=(t,...e)=>{if(kt(e[0]))return Fx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=_ne(t,...e),i=kUe({...n,destination:r});return i.pipe=Fx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},kUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=MUe(t,i);Sne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=vne(e,o,d);return await Promise.race([Ene(u),...Tne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},MUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as jUe}from"timers/promises";import{on as DUe}from"events";import{getDefaultHighWaterMark as LUe}from"stream";var Bx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return $Ue(e,s),Ane({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},$Ue=async(t,e)=>{try{await t}catch{}finally{e.abort()}},E$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;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=DUe(t,"data",{signal:e.signal,highWaterMark:bne,highWatermark:bne});return FUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},v$=LUe(!0),bne=v$,FUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=BUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ll(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*M_(a)}},BUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Px(t,r,!e),Ix(t,i,!n,{})].filter(Boolean);var xne=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=zUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([GUe(t),d]);return}let f=XL(c,r),p=E$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([VUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},zUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!kx({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=E$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Lre(a,t,r,o)},GUe=async t=>{await jUe(),t.readableFlowing===null&&t.resume()},VUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await Ex(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await vx(r,{maxBuffer:o})):await Tf(r,{maxBuffer:o})}catch(a){return wne(Lte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},T$=async t=>{try{return await t}catch(e){return wne(e)}},wne=({bufferedData:t})=>XQ(t)?new Uint8Array(t):t;import{finished as qUe}from"stream/promises";var U_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=HUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],qUe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||KUe(a,e,r,n)}finally{s.abort()}},HUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&WUe(t,r,n),n},WUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{YUe(e,r),n.call(t,...i)}},YUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},KUe=(t,e,r,n)=>{if(!ZUe(t,e,r,n))throw t},ZUe=(t,e,r,n=!0)=>r.propagating?Rne(t)||jx(t):(r.propagating=!0,b$(r,e)===n?Rne(t):jx(t)),b$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",jx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Rne=t=>t?.code==="EPIPE";var Cne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>A$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),A$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=U_(t,e,l);if(b$(l,e)){await u;return}let[d]=await Promise.all([xne({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 Ine=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?$l([t,e].filter(Boolean)):void 0,Pne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>A$({...JUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:XUe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),JUe=({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}},XUe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as QUe}from"events";var One=t=>hf(t,"ipc"),Nne=(t,e)=>{let r=WA(t);po({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var kne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=One(o),a=gs(e,"ipc"),c=gs(r,"ipc");for await(let l of a$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&($te(t,i,c),i.push(l)),s&&Nne(l,o);return i},Mne=async(t,e)=>(await Promise.allSettled([t]),e);var Dne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:v})=>{let b=jre(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=Cne({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}),P=[],L=kne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),k=eFe(m,t,x),R=tFe(h,x);try{return await Promise.race([Promise.all([{},Gre(b),Promise.all(S),I,L,mte(t,d),...k,...R]),y,rFe(t,v),...ute(t,o,f,v),...Oee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:v}),...cte({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:v})])}catch(F){return f.terminationReason??="other",Promise.all([{error:F},b,Promise.all(S.map(_=>T$(_))),T$(I),Mne(L,P),Promise.allSettled(k),Promise.allSettled(R)])}},eFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:U_(n,i,r)),tFe=(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})=>U_(s,n,e,{isSameDirection:Jn.has(i),stopOnExit:i==="native"}))),rFe=async(t,{signal:e})=>{let[r]=await QUe(t,"error",{signal:e});throw r};var Lne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),F_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=ho();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 nFe}from"stream";import{callbackify as iFe}from"util";import{finished as $ne}from"stream/promises";var x$=async t=>{if(t!==void 0)try{await w$(t)}catch{}},Une=async t=>{if(t!==void 0)try{await R$(t)}catch{}},w$=async t=>{await $ne(t,{cleanup:!0,readable:!1,writable:!0})},R$=async t=>{await $ne(t,{cleanup:!0,readable:!0,writable:!1})},zx=async(t,e)=>{if(await t,e)throw e},Gx=(t,e,r)=>{r&&!jx(r)?t.destroy(r):e&&t.destroy()};var Fne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||Sn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=C$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=I$(a,s),{read:f,onStdoutDataDone:p}=P$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new nFe({read:f,destroy:iFe(N$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return O$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},C$=(t,e,r)=>{let n=Sf(t,e),i=F_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},I$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:v$},P$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=ho(),s=Bx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){oFe(this,s,o)},onStdoutDataDone:o}},oFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},O$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await R$(t),await n,await x$(i),await e,r.readable&&r.push(null)}catch(o){await x$(i),Bne(r,o)}},N$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Rf(r,e)&&(Bne(t,n),await zx(e,n))},Bne=(t,e)=>{Gx(t,t.readable,e)};import{Writable as sFe}from"stream";import{callbackify as jne}from"util";var zne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=k$(t,r,e),s=new sFe({...M$(n,t,i),destroy:jne(L$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return D$(n,s),s},k$=(t,e,r)=>{let n=ix(t,e),i=F_(r,n,"writableFinal"),o=F_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},M$=(t,e,r)=>({write:aFe.bind(void 0,t),final:jne(cFe.bind(void 0,t,e,r))}),aFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},cFe=async(t,e,r)=>{await Rf(r,e)&&(t.writable&&t.end(),await e)},D$=async(t,e,r)=>{try{await w$(t),e.writable&&e.end()}catch(n){await Une(r),Gne(e,n)}},L$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Rf(r,e),await Rf(n,e)&&(Gne(t,i),await zx(e,i))},Gne=(t,e)=>{Gx(t,t.writable,e)};import{Duplex as lFe}from"stream";import{callbackify as uFe}from"util";var Vne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||Sn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=C$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=k$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=I$(c,a),{read:y,onStdoutDataDone:v}=P$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new lFe({read:y,...M$(u,t,d),destroy:uFe(dFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return O$({subprocessStdout:c,onStdoutDataDone:v,readable:b,subprocess:t,subprocessStdin:u}),D$(u,b,c),b},dFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([N$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),L$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var $$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||Sn.has(e),s=Sf(t,r),a=Bx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return fFe(a,s,t)},fFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var qne=(t,{encoding:e})=>{let r=Lne();t.readable=Fne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=zne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Vne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=$$.bind(void 0,t,e),t[Symbol.asyncIterator]=$$.bind(void 0,t,e,{})};var Hne=(t,e)=>{for(let[r,n]of hFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},pFe=(async()=>{})().constructor.prototype,hFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(pFe,t)]);var Wne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=_Fe(t,e,r),{subprocess:f,promise:p}=SFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Fx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Hne(f,p),mo.set(f,{options:u,fileDescriptors:d}),f},_Fe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),{file:a,commandArguments:c,options:l}=mx(t,e,r),u=yFe(l),d=ine(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},yFe=({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}},SFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=gFe(...gx(t,e,r))}catch(h){return ene({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;mFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];pne(c,a,l),mne(c,r,l);let d={},f=ho();c.kill=Iee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Ine(c,r),qne(c,r),Jre(c,r);let p=EFe({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}},EFe=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 Dne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let v=h.map((S,I)=>ys(S,e,I)),b=ys(m,e,"all"),x=vFe({errorInfo:d,exitCode:f,signal:p,stdio:v,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Af(x,n,e)},vFe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?k_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof go,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Ax({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Vx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,TFe(n,t[n],i)]));return{...t,...r}},TFe=(t,e,r)=>bFe.has(t)&&kt(e)&&kt(r)?{...e,...r}:r,bFe=new Set(["env",...pL]);var Da=(t,e,r,n)=>{let i=(s,a,c)=>Da(s,a,r,c),o=(...s)=>AFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},AFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(kt(o))return i(t,Vx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=xFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?qre(a,c,l):Wne(a,c,l,i)},xFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=i7(e)?o7(e,r):[e,...r],[s,a,c]=UA(...o),l=Vx(Vx(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 Yne=({file:t,commandArguments:e})=>Zne(t,e),Kne=({file:t,commandArguments:e})=>({...Zne(t,e),isSync:!0}),Zne=(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]=wFe(t);return{file:r,commandArguments:n}},wFe=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(RFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},RFe=/ +/g;var Jne=(t,e,r)=>{t.sync=e(CFe,r),t.s=t.sync},Xne=({options:t})=>Qne(t),CFe=({options:t})=>({...Qne(t),isSync:!0}),Qne=t=>({options:{...IFe(t),...t}}),IFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},eie={preferLocal:!0};var tie=Da(()=>({})),OAt=Da(()=>({isSync:!0})),rie=Da(Yne),NAt=Da(Kne),kAt=Da(fte),MAt=Da(Xne,{},eie,Jne),{sendMessage:DAt,getOneMessage:LAt,getEachMessage:$At,getCancelSignal:UAt}=Xre();var nie=!1,iie=()=>{nie=!0},yo=()=>nie;var B_=null,oie=t=>(B_&&B_.destroy(),B_=new So({totalAllowedTime:t}),B_),sie=()=>B_;var So=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&&yo())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await IA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{oe.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 aie={name:"@netlify/agent-runner-cli",type:"module",version:"1.164.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.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var kFe=OFe(import.meta.url),MFe=Ss.dirname(kFe),DFe=NFe(import.meta.url),Cf=le("shell"),U$=new Set,cie={preferLocal:!0},fr=(t,e,r)=>{let[n,i]=LFe(e,r),o={...cie,...i},s=tie(t,n,o);uie(s,o),pie(s);let a=r?.idleTimeout;return a&&a>0&&fie(s,a),s},lie=(t,e)=>{let r={...cie,...e},n=rie(t,r);return uie(n,r),pie(n),e?.idleTimeout&&e.idleTimeout>0&&fie(n,e.idleTimeout),n},LFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},uie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Es.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new h_).pipe(Es.stdout),t.stderr?.pipe(new h_).pipe(Es.stderr);return}t.stdout?.pipe(Es.stdout),t.stderr?.pipe(Es.stderr)},F$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Es.kill(-t.pid,e),Cf.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Cf.error("Error killing process:",r),!1}},die=t=>F$(t,"SIGKILL"),fie=(t,e)=>{let r=null,n=()=>{Cf.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Cf.log(`Force killing idle process ${t.pid}`),die(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)},pie=t=>{U$.add(t);let e=sie();if(e){let r=e.onTimesUp(()=>{Cf.log(`Global timer expired, killing process ${t.pid}`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Cf.log(`Force killing process ${t.pid} after timeout`),die(t))},5e3)});t.on("exit",()=>{U$.delete(t),r()}),t.on("error",()=>{U$.delete(t),r()})}};function Eo(t,e){if(!Es.env.NETLIFY_LOCAL_MODE)try{let i=DFe.resolve(aie.name),o=Ss.dirname(i);for(;o!==Ss.dirname(o);){let s=Ss.dirname(o);if(Ss.basename(s)==="node_modules"){let a=Ss.join(s,".bin",e);if(qx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Es.env.NODE_PATH){let i=Ss.join(Es.env.NODE_PATH,".bin",e);if(qx.existsSync(i))return i}let r=Ss.join(t,"node_modules",".bin",e);if(qx.existsSync(r))return r;let n=Ss.join(MFe,"..","node_modules",".bin",e);if(qx.existsSync(n))return n}var $Fe=le("utils"),UFe=t=>new Promise(e=>{setTimeout(e,t)});var B$=t=>{try{return new URL(t).hostname||null}catch{return null}},Hx=(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},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},hie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):$Fe.error("Could not parse JSON",n))}},FFe=t=>t.charAt(0).toUpperCase()+t.slice(1),vo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():FFe(e)).join(" ");function vs(t,e){e&&t.log(`Skill invoked: ${e}`)}var Wx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),mie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var j$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},BFe=1e4,z$=(t,e=BFe)=>{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 jFe}from"crypto";import{createReadStream as zFe}from"fs";import Yx from"fs/promises";import Eie from"os";import Kx from"path";var gie=le("repo"),vie="runner-diffs-",Tie=t=>`${vie}${t}-`,bie=async t=>{let e=Eie.tmpdir(),r;try{r=await Yx.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(vie)&&!n.startsWith(Tie(t))).map(n=>Yx.rm(Kx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Qr=(t,e={})=>fr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Zx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{gie.info("Getting runner diffs");let n=await VFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=HFe(o);await WFe(h,r)}gie.info("Changes after processing"),await V$(r);let s=await H$(o,r);if(await G$(s,r),i=await qFe(r),!i)return{hasChanges:!1,ignored:s};await Qr(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await Yx.mkdtemp(Kx.join(Eie.tmpdir(),Tie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:v})=>{let b=Kx.join(a,y);await Qr([...v?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await Yx.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await Sie(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 yie(d,h)||(f=h)}await Sie(r),oe.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await yie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},_ie=async t=>{let e=jFe("sha256");for await(let r of zFe(t))e.update(r);return e.digest("hex")},yie=async(t,e)=>t.size===e.size&&await _ie(t.path)===await _ie(e.path),Sie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Qr(["reset","--soft","HEAD~1"],{cwd:t})},G$=async(t=[],e=process.cwd())=>{await Qr(["add",".",...t],{cwd:e})},V$=async(t=process.cwd())=>{let e=await Qr(["status","-s"],{cwd:t});return String(e.stdout??"")},Aie=/.. (.+)?\.log$/,GFe=[Aie],VFe=async(t=process.cwd())=>{let e=await V$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
113
|
+
if (condition) { yield value; }`)};import{Buffer as Y$e}from"buffer";import{StringDecoder as K$e}from"string_decoder";var Px=(t,e,r)=>{if(r)return;if(t)return{transform:Z$e.bind(void 0,new TextEncoder)};let n=new K$e(e);return{transform:J$e.bind(void 0,n),final:X$e.bind(void 0,n)}},Z$e=function*(t,e){Y$e.isBuffer(e)?yield ms(e):typeof e=="string"?yield t.encode(e):yield e},J$e=function*(t,e){yield Gt(e)?t.write(e):e},X$e=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as Ire}from"util";var t$=Ire(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),Ox=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=e1e}=e[r];for await(let i of n(t))yield*Ox(i,e,r+1)},Pre=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Q$e(r,Number(e),t)},Q$e=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*Ox(n,r,e+1)},Ore=Ire(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),e1e=function*(t){yield t};var r$=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Nre=(t,e)=>[...e.flatMap(r=>[...Ll(r,t,0)]),...M_(t)],Ll=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=r1e}=e[r];for(let i of n(t))yield*Ll(i,e,r+1)},M_=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*t1e(r,Number(e),t)},t1e=function*(t,e,r){if(t!==void 0)for(let n of t())yield*Ll(n,r,e+1)},r1e=function*(t){yield t};var n$=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:o},{encoding:s})=>{let a={},c=Mre(t,s,o),l=Dl(e),u=Dl(r),d=l?t$.bind(void 0,Ox,a):r$.bind(void 0,Ll),f=l||u?t$.bind(void 0,Pre,a):r$.bind(void 0,M_),p=l||u?Ore.bind(void 0,a):void 0;return{stream:new n1e({writableObjectMode:n,writableHighWaterMark:kre(n),readableObjectMode:i,readableHighWaterMark:kre(i),transform(m,y,v){d([m,c,0],this,v)},flush(m){f([c],this,m)},destroy:p})}},Nx=(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=Mre(s,r,a);t=Nre(c,t)}return t},Mre=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:o},s,a)=>{let c={};return[{transform:wre(n,a)},Px(r,s,n),Ix(r,o,n,c),{transform:t,final:e},{transform:Rre(i,a)},xre({binary:r,preserveNewlines:o,readableObjectMode:i,state:c})].filter(Boolean)};var Dre=(t,e)=>{for(let r of i1e(t))o1e(t,r,e)},i1e=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),o1e=(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=>s1e(a,n));r.input=A_(s)},s1e=(t,e)=>{let r=Nx(t,e,"utf8",!0);return a1e(r),A_(r)},a1e=t=>{let e=t.find(r=>typeof r!="string"&&!Gt(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 d1e,appendFileSync as f1e}from"fs";var kx=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&hf(r,n)&&!Sn.has(e)&&c1e(n)&&(t.some(({type:i,value:o})=>i==="native"&&l1e.has(o))||t.every(({type:i})=>Jn.has(i))),c1e=t=>t===1||t===2,l1e=new Set(["pipe","overlapped"]),Lre=async(t,e,r,n)=>{for await(let i of t)u1e(e)||Ure(i,r,n)},$re=(t,e,r)=>{for(let n of t)Ure(n,e,r)},u1e=t=>t._readableState.pipes.length>0,Ure=(t,e,r)=>{let n=WA(t);po({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var Fre=({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)=>p1e({result:c,fileDescriptors:t,fdNumber:l,state:o,outputFiles:s,isMaxBuffer:n,verboseInfo:i},r)),...o}},p1e=({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=ms(f),{stdioItems:h,objectMode:m}=e[r],y=h1e([p],h,c,n),{serializedResult:v,finalResult:b=v}=m1e({chunks:y,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});g1e({serializedResult:v,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&&_1e(v,h,i),x}catch(S){return n.error=S,x}},h1e=(t,e,r,n)=>{try{return Nx(t,e,r,!1)}catch(i){return n.error=i,t}},m1e=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:o})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:A_(t)};let s=e7(t,r);return n[o]?{serializedResult:s,finalResult:e$(s,!i[o],e)}:{serializedResult:s}},g1e=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:o,objectMode:s})=>{if(!kx({stdioItems:o,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=e$(t,!1,s);try{$re(a,e,n)}catch(c){r.error??=c}},_1e=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:o})=>Rx.has(o))){let o=typeof n=="string"?n:n.toString();i||r.has(o)?f1e(n,t):(r.add(o),d1e(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,ys(e,r,"all")]:Array.isArray(e)?[ys(t,r,"all"),...e]:Gt(t)&&Gt(e)?lL([t,e]):`${t}${e}`};import{once as i$}from"events";var jre=async(t,e)=>{let[r,n]=await y1e(t);return e.isForcefullyTerminated??=!1,[r,n]},y1e=async t=>{let[e,r]=await Promise.allSettled([i$(t,"spawn"),i$(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?zre(t):r.value},zre=async t=>{try{return await i$(t,"exit")}catch{return zre(t)}},Gre=async t=>{let[e,r]=await t;if(!S1e(e,r)&&o$(e,r))throw new Ci;return[e,r]},S1e=(t,e)=>t===void 0&&e===void 0,o$=(t,e)=>t!==0||e!==null;var Vre=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let o=E1e(t,e,r),s=o?.code==="ETIMEDOUT",a=Fte(o,n,i);return{resultError:o,exitCode:e,signal:r,timedOut:s,isMaxBuffer:a}},E1e=(t,e,r)=>t!==void 0?t:o$(e,r)?new Ci:void 0;var qre=(t,e,r)=>{let{file:n,commandArguments:i,command:o,escapedCommand:s,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=T1e(t,e,r),d=x1e({file:n,commandArguments:i,options:l,command:o,escapedCommand:s,verboseInfo:c,fileDescriptors:u,startTime:a});return Af(d,c,l)},T1e=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),a=b1e(r),{file:c,commandArguments:l,options:u}=mx(t,e,a);A1e(u);let d=vre(u,s);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},b1e=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,A1e=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&Mx("ipcInput"),t&&Mx("ipc: true"),r&&Mx("detached: true"),n&&Mx("cancelSignal")},Mx=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},x1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:o,fileDescriptors:s,startTime:a})=>{let c=w1e({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}=Vre(c,r),{output:h,error:m=l}=Fre({fileDescriptors:s,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:o}),y=h.map((b,x)=>ys(b,r,x)),v=ys(Bre(h,r),r,"all");return C1e({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:y,all:v,options:r,command:n,escapedCommand:i,startTime:a})},w1e=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:s})=>{try{Dre(o,r);let a=R1e(r);return v1e(...gx(t,e,a))}catch(a){return bf({error:a,command:n,escapedCommand:i,fileDescriptors:o,options:r,startTime:s,isSync:!0})}},R1e=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:bx(e)}),C1e=({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?Ax({command:c,escapedCommand:l,stdio:o,all:s,ipcOutput:[],options:a,startTime:u}):k_({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:o,all:s,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as mFe}from"events";import{spawn as gFe}from"child_process";import Zre from"process";import{once as s$,on as I1e}from"events";var Hre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:o}={})=>(_f({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:lx(t)}),P1e({anyProcess:t,channel:e,isSubprocess:r,filter:o,reference:i})),P1e=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{ox(e,i);let o=ka(t,e,r),s=new AbortController;try{return await Promise.race([O1e(o,n,s),N1e(o,r,s),k1e(o,r,s)])}catch(a){throw yf(t),a}finally{s.abort(),sx(e,i)}},O1e=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await s$(t,"message",{signal:r});return n}for await(let[n]of I1e(t,"message",{signal:r}))if(e(n))return n},N1e=async(t,e,{signal:r})=>{await s$(t,"disconnect",{signal:r}),Nee(e)},k1e=async(t,e,{signal:r})=>{let[n]=await s$(t,"strict:error",{signal:r});throw rx(n,e)};import{once as Yre,on as M1e}from"events";var Kre=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>a$({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),a$=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:o})=>{_f({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:lx(t)}),ox(e,o);let s=ka(t,e,r),a=new AbortController,c={};return D1e(t,s,a),L1e({ipcEmitter:s,isSubprocess:r,controller:a,state:c}),$1e({anyProcess:t,channel:e,ipcEmitter:s,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:o})},D1e=async(t,e,r)=>{try{await Yre(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},L1e=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Yre(t,"strict:error",{signal:r.signal});n.error=rx(i,e),r.abort()}catch{}},$1e=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:o,state:s,reference:a}){try{for await(let[c]of M1e(r,"message",{signal:o.signal}))Wre(s),yield c}catch{Wre(s)}finally{o.abort(),sx(e,a),n||yf(t),i&&await t}},Wre=({error:t})=>{if(t)throw t};var Jre=(t,{ipc:e})=>{Object.assign(t,Qre(t,!1,e))},Xre=()=>{let t=Zre,e=!0,r=Zre.channel!==void 0;return{...Qre(t,e,r),getCancelSignal:ote.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},Qre=(t,e,r)=>({sendMessage:px.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Hre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:Kre.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as U1e}from"child_process";import{PassThrough as F1e,Readable as B1e,Writable as j1e,Duplex as z1e}from"stream";var ene=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,verboseInfo:s})=>{JL(n);let a=new U1e;G1e(a,n),Object.assign(a,{readable:V1e,writable:q1e,duplex:H1e});let c=bf({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:o,isSync:!1}),l=W1e(c,s,i);return{subprocess:a,promise:l}},G1e=(t,e)=>{let r=D_(),n=D_(),i=D_(),o=Array.from({length:e.length-3},D_),s=D_(),a=[r,n,i,...o];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:s,stdio:a})},D_=()=>{let t=new F1e;return t.end(),t},V1e=()=>new B1e({read(){}}),q1e=()=>new j1e({write(){}}),H1e=()=>new z1e({read(){},write(){}}),W1e=async(t,e,r)=>Af(t,e,r);import{createReadStream as tne,createWriteStream as rne}from"fs";import{Buffer as Y1e}from"buffer";import{Readable as L_,Writable as K1e,Duplex as Z1e}from"stream";var ine=(t,e)=>Cx(J1e,t,e,!1),$_=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Ma[t]}.`)},nne={fileNumber:$_,generator:n$,asyncGenerator:n$,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:Z1e.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},J1e={input:{...nne,fileUrl:({value:t})=>({stream:tne(t)}),filePath:({value:{file:t}})=>({stream:tne(t)}),webStream:({value:t})=>({stream:L_.fromWeb(t)}),iterable:({value:t})=>({stream:L_.from(t)}),asyncIterable:({value:t})=>({stream:L_.from(t)}),string:({value:t})=>({stream:L_.from(t)}),uint8Array:({value:t})=>({stream:L_.from(Y1e.from(t))})},output:{...nne,fileUrl:({value:t})=>({stream:rne(t)}),filePath:({value:{file:t,append:e}})=>({stream:rne(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:K1e.fromWeb(t)}),iterable:$_,asyncIterable:$_,string:$_,uint8Array:$_}};import{on as X1e,once as one}from"events";import{PassThrough as Q1e,getDefaultHighWaterMark as eUe}from"stream";import{finished as cne}from"stream/promises";function $l(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)l$(i);let e=t.some(({readableObjectMode:i})=>i),r=tUe(t,e),n=new c$({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var tUe=(t,e)=>{if(t.length===0)return eUe(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},c$=class extends Q1e{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#o=Symbol("unpipe");#i=new WeakMap;add(e){if(l$(e),this.#e.has(e))return;this.#e.add(e),this.#n??=rUe(this,this.#e,this.#o);let r=oUe({passThroughStream:this,stream:e,streams:this.#e,ended:this.#r,aborted:this.#t,onFinished:this.#n,unpipeEvent:this.#o});this.#i.set(e,r),e.pipe(this,{end:!1})}async remove(e){if(l$(e),!this.#e.has(e))return!1;let r=this.#i.get(e);return r===void 0?!1:(this.#i.delete(e),e.unpipe(this),await r,!0)}},rUe=async(t,e,r)=>{Dx(t,sne);let n=new AbortController;try{await Promise.race([nUe(t,n),iUe(t,e,r,n)])}finally{n.abort(),Dx(t,-sne)}},nUe=async(t,{signal:e})=>{try{await cne(t,{signal:e,cleanup:!0})}catch(r){throw lne(t,r),r}},iUe=async(t,e,r,{signal:n})=>{for await(let[i]of X1e(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},l$=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},oUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:o,unpipeEvent:s})=>{Dx(t,ane);let a=new AbortController;try{await Promise.race([sUe(o,e,a),aUe({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),cUe({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:s,controller:a})])}finally{a.abort(),Dx(t,-ane)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?u$(t):lUe(t))},sUe=async(t,e,{signal:r})=>{try{await t,r.aborted||u$(e)}catch(n){r.aborted||lne(e,n)}},aUe=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:o}})=>{try{await cne(e,{signal:o,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(s){if(o.aborted||!r.has(e))return;une(s)?i.add(e):dne(t,s)}},cUe=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:o}})=>{if(await one(t,i,{signal:o}),!t.readable)return one(o,"abort",{signal:o});e.delete(t),r.delete(t),n.delete(t)},lUe=t=>{t.writable&&t.end()},lne=(t,e)=>{une(e)?u$(t):dne(t,e)},une=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",u$=t=>{(t.readable||t.writable)&&t.destroy()},dne=(t,e)=>{t.destroyed||(t.once("error",uUe),t.destroy(e))},uUe=()=>{},Dx=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},sne=2,ane=1;import{finished as fne}from"stream/promises";var wf=(t,e)=>{t.pipe(e),dUe(t,e),fUe(t,e)},dUe=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await fne(t,{cleanup:!0,readable:!0,writable:!1})}catch{}d$(e)}},d$=t=>{t.writable&&t.end()},fUe=async(t,e)=>{if(!(Ri(t)||Ri(e))){try{await fne(e,{cleanup:!0,readable:!1,writable:!0})}catch{}f$(t)}},f$=t=>{t.readable&&t.destroy()};var pne=(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})=>Jn.has(c)))pUe(t,a,s,i);for(let{stream:a}of o.filter(({type:c})=>!Jn.has(c)))mUe({subprocess:t,stream:a,direction:s,fdNumber:i,pipeGroups:n,controller:r})}for(let[i,o]of n.entries()){let s=o.length===1?o[0]:$l(o);wf(s,i)}},pUe=(t,e,r,n)=>{r==="output"?wf(t.stdio[n],e):wf(e,t.stdio[n]);let i=hUe[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},hUe=["stdin","stdout","stderr"],mUe=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:o})=>{if(e===void 0)return;gUe(e,o);let[s,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(s)??[];i.set(s,[...c,a])},gUe=(t,{signal:e})=>{Ri(t)&&kl(t,_Ue,e)},_Ue=2;import{addAbortListener as EUe}from"events";var Ul=[];Ul.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ul.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ul.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var Lx=t=>!!t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function",p$=Symbol.for("signal-exit emitter"),h$=globalThis,yUe=Object.defineProperty.bind(Object),m$=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(h$[p$])return h$[p$];yUe(h$,p$,{value:this,writable:!1,enumerable:!1,configurable:!1})}on(e,r){this.listeners[e].push(r)}removeListener(e,r){let n=this.listeners[e],i=n.indexOf(r);i!==-1&&(i===0&&n.length===1?n.length=0:n.splice(i,1))}emit(e,r,n){if(this.emitted[e])return!1;this.emitted[e]=!0;let i=!1;for(let o of this.listeners[e])i=o(r,n)===!0||i;return e==="exit"&&(i=this.emit("afterExit",r,n)||i),i}},$x=class{},SUe=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),g$=class extends $x{onExit(){return()=>{}}load(){}unload(){}},_$=class extends $x{#e=y$.platform==="win32"?"SIGINT":"SIGHUP";#r=new m$;#t;#n;#o;#i={};#s=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ul)this.#i[r]=()=>{let n=this.#t.listeners(r),{count:i}=this.#r,o=e;if(typeof o.__signal_exit_emitter__=="object"&&typeof o.__signal_exit_emitter__.count=="number"&&(i+=o.__signal_exit_emitter__.count),n.length===i){this.unload();let s=this.#r.emit("exit",null,r),a=r==="SIGHUP"?this.#e:r;s||e.kill(e.pid,a)}};this.#o=e.reallyExit,this.#n=e.emit}onExit(e,r){if(!Lx(this.#t))return()=>{};this.#s===!1&&this.load();let n=r?.alwaysLast?"afterExit":"exit";return this.#r.on(n,e),()=>{this.#r.removeListener(n,e),this.#r.listeners.exit.length===0&&this.#r.listeners.afterExit.length===0&&this.unload()}}load(){if(!this.#s){this.#s=!0,this.#r.count+=1;for(let e of Ul)try{let r=this.#i[e];r&&this.#t.on(e,r)}catch{}this.#t.emit=(e,...r)=>this.#c(e,...r),this.#t.reallyExit=e=>this.#a(e)}}unload(){this.#s&&(this.#s=!1,Ul.forEach(e=>{let r=this.#i[e];if(!r)throw new Error("Listener not defined for signal: "+e);try{this.#t.removeListener(e,r)}catch{}}),this.#t.emit=this.#n,this.#t.reallyExit=this.#o,this.#r.count-=1)}#a(e){return Lx(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"&&Lx(this.#t)){typeof r[0]=="number"&&(this.#t.exitCode=r[0]);let i=n.call(this.#t,e,...r);return this.#r.emit("exit",this.#t.exitCode,null),i}else return n.call(this.#t,e,...r)}},y$=globalThis.process,{onExit:hne,load:jvt,unload:zvt}=SUe(Lx(y$)?new _$(y$):new g$);var mne=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=hne(()=>{t.kill()});EUe(n,()=>{i()})};var _ne=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let o=YA(),{destination:s,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=vUe(r,n,i),{sourceStream:d,sourceError:f}=bUe(t,l),{options:p,fileDescriptors:h}=mo.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:s,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:o}},vUe=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:o,unpipeSignal:s}={}}=TUe(t,e,...r),a=ix(n,o);return{destination:n,destinationStream:a,from:i,unpipeSignal:s}}catch(n){return{destinationError:n}}},TUe=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(gne,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||aL(r)){if(Object.keys(t).length>0)throw new TypeError('Please use .pipe("file", ..., options) or .pipe(execa("file", ..., options)) instead of .pipe(options)("file", ...).');let[i,o,s]=UA(r,...n);return{destination:e(gne)(i,o,s),pipeOptions:s}}if(mo.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}`)},gne=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),bUe=(t,e)=>{try{return{sourceStream:Sf(t,e)}}catch(r){return{sourceError:r}}};var Sne=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:o,startTime:s})=>{let a=AUe({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw S$({error:a,fileDescriptors:i,sourceOptions:o,startTime:s})},AUe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return f$(t),n;if(e!==void 0)return d$(r),e},S$=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>bf({error:t,command:yne,escapedCommand:yne,fileDescriptors:e,options:r,startTime:n,isSync:!1}),yne="source.pipe(destination)";var Ene=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 xUe}from"stream/promises";var vne=(t,e,r)=>{let n=Ux.has(e)?RUe(t,e):wUe(t,e);return kl(t,IUe,r.signal),kl(e,PUe,r.signal),CUe(e),n},wUe=(t,e)=>{let r=$l([t]);return wf(r,e),Ux.set(e,r),r},RUe=(t,e)=>{let r=Ux.get(e);return r.add(t),r},CUe=async t=>{try{await xUe(t,{cleanup:!0,readable:!1,writable:!0})}catch{}Ux.delete(t)},Ux=new WeakMap,IUe=2,PUe=1;import{aborted as OUe}from"util";var Tne=(t,e)=>t===void 0?[]:[NUe(t,e)],NUe=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:o})=>{await OUe(t,e),await r.remove(e);let s=new Error("Pipe canceled by `unpipeSignal` option.");throw S$({error:s,fileDescriptors:n,sourceOptions:i,startTime:o})};var Fx=(t,...e)=>{if(kt(e[0]))return Fx.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=_ne(t,...e),i=kUe({...n,destination:r});return i.pipe=Fx.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},kUe=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:o,destinationError:s,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=MUe(t,i);Sne({sourceStream:e,sourceError:n,destinationStream:o,destinationError:s,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=vne(e,o,d);return await Promise.race([Ene(u),...Tne(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},MUe=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as jUe}from"timers/promises";import{on as DUe}from"events";import{getDefaultHighWaterMark as LUe}from"stream";var Bx=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:o})=>{let s=new AbortController;return $Ue(e,s),Ane({stream:t,controller:s,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:o})},$Ue=async(t,e)=>{try{await t}catch{}finally{e.abort()}},E$=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:o})=>{let s=new AbortController;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=DUe(t,"data",{signal:e.signal,highWaterMark:bne,highWatermark:bne});return FUe({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s})},v$=LUe(!0),bne=v$,FUe=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s}){let a=BUe({binary:r,shouldEncode:n,encoding:i,shouldSplit:o,preserveNewlines:s});try{for await(let[c]of t)yield*Ll(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*M_(a)}},BUe=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[Px(t,r,!e),Ix(t,i,!n,{})].filter(Boolean);var xne=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=zUe({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([GUe(t),d]);return}let f=XL(c,r),p=E$({stream:t,onStreamEnd:e,lines:s,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([VUe({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:o,lines:s}),d]);return h},zUe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:o,streamInfo:{fileDescriptors:s}})=>{if(!kx({stdioItems:s[r]?.stdioItems,encoding:n,verboseInfo:o,fdNumber:r}))return;let a=E$({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await Lre(a,t,r,o)},GUe=async t=>{await jUe(),t.readableFlowing===null&&t.resume()},VUe=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:o,lines:s})=>{try{return e||s?await Ex(r,{maxBuffer:o}):i==="buffer"?new Uint8Array(await vx(r,{maxBuffer:o})):await Tf(r,{maxBuffer:o})}catch(a){return wne(Lte({error:a,stream:t,readableObjectMode:e,lines:s,encoding:i,fdNumber:n}))}},T$=async t=>{try{return await t}catch(e){return wne(e)}},wne=({bufferedData:t})=>XQ(t)?new Uint8Array(t):t;import{finished as qUe}from"stream/promises";var U_=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let o=HUe(t,r),s=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],qUe(t,{cleanup:!0,signal:s.signal})])}catch(a){o.stdinCleanedUp||KUe(a,e,r,n)}finally{s.abort()}},HUe=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&WUe(t,r,n),n},WUe=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{YUe(e,r),n.call(t,...i)}},YUe=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},KUe=(t,e,r,n)=>{if(!ZUe(t,e,r,n))throw t},ZUe=(t,e,r,n=!0)=>r.propagating?Rne(t)||jx(t):(r.propagating=!0,b$(r,e)===n?Rne(t):jx(t)),b$=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",jx=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",Rne=t=>t?.code==="EPIPE";var Cne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>t.stdio.map((c,l)=>A$({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:o,verboseInfo:s,streamInfo:a})),A$=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:o,allMixed:s,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=U_(t,e,l);if(b$(l,e)){await u;return}let[d]=await Promise.all([xne({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 Ine=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?$l([t,e].filter(Boolean)):void 0,Pne=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:o,verboseInfo:s,streamInfo:a})=>A$({...JUe(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:XUe(t),stripFinalNewline:o,verboseInfo:s,streamInfo:a}),JUe=({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}},XUe=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as QUe}from"events";var One=t=>hf(t,"ipc"),Nne=(t,e)=>{let r=WA(t);po({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var kne=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:o})=>{if(!n)return i;let s=One(o),a=gs(e,"ipc"),c=gs(r,"ipc");for await(let l of a$({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&($te(t,i,c),i.push(l)),s&&Nne(l,o);return i},Mne=async(t,e)=>(await Promise.allSettled([t]),e);var Dne=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:o,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:y,controller:v})=>{let b=jre(t,f),x={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},S=Cne({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}),P=[],L=kne({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:P,verboseInfo:p}),k=eFe(m,t,x),R=tFe(h,x);try{return await Promise.race([Promise.all([{},Gre(b),Promise.all(S),I,L,mte(t,d),...k,...R]),y,rFe(t,v),...ute(t,o,f,v),...Oee({subprocess:t,cancelSignal:s,gracefulCancel:a,context:f,controller:v}),...cte({subprocess:t,cancelSignal:s,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:v})])}catch(F){return f.terminationReason??="other",Promise.all([{error:F},b,Promise.all(S.map(_=>T$(_))),T$(I),Mne(L,P),Promise.allSettled(k),Promise.allSettled(R)])}},eFe=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:U_(n,i,r)),tFe=(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})=>U_(s,n,e,{isSameDirection:Jn.has(i),stopOnExit:i==="native"}))),rFe=async(t,{signal:e})=>{let[r]=await QUe(t,"error",{signal:e});throw r};var Lne=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),F_=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),o=ho();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 nFe}from"stream";import{callbackify as iFe}from"util";import{finished as $ne}from"stream/promises";var x$=async t=>{if(t!==void 0)try{await w$(t)}catch{}},Une=async t=>{if(t!==void 0)try{await R$(t)}catch{}},w$=async t=>{await $ne(t,{cleanup:!0,readable:!1,writable:!0})},R$=async t=>{await $ne(t,{cleanup:!0,readable:!0,writable:!1})},zx=async(t,e)=>{if(await t,e)throw e},Gx=(t,e,r)=>{r&&!jx(r)?t.destroy(r):e&&t.destroy()};var Fne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:o=!0}={})=>{let s=i||Sn.has(r),{subprocessStdout:a,waitReadableDestroy:c}=C$(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=I$(a,s),{read:f,onStdoutDataDone:p}=P$({subprocessStdout:a,subprocess:t,binary:s,encoding:r,preserveNewlines:o}),h=new nFe({read:f,destroy:iFe(N$.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return O$({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},C$=(t,e,r)=>{let n=Sf(t,e),i=F_(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},I$=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:v$},P$=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let o=ho(),s=Bx({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){oFe(this,s,o)},onStdoutDataDone:o}},oFe=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},O$=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await R$(t),await n,await x$(i),await e,r.readable&&r.push(null)}catch(o){await x$(i),Bne(r,o)}},N$=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Rf(r,e)&&(Bne(t,n),await zx(e,n))},Bne=(t,e)=>{Gx(t,t.readable,e)};import{Writable as sFe}from"stream";import{callbackify as jne}from"util";var zne=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}=k$(t,r,e),s=new sFe({...M$(n,t,i),destroy:jne(L$.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:o})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return D$(n,s),s},k$=(t,e,r)=>{let n=ix(t,e),i=F_(r,n,"writableFinal"),o=F_(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:o}},M$=(t,e,r)=>({write:aFe.bind(void 0,t),final:jne(cFe.bind(void 0,t,e,r))}),aFe=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},cFe=async(t,e,r)=>{await Rf(r,e)&&(t.writable&&t.end(),await e)},D$=async(t,e,r)=>{try{await w$(t),e.writable&&e.end()}catch(n){await Une(r),Gne(e,n)}},L$=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Rf(r,e),await Rf(n,e)&&(Gne(t,i),await zx(e,i))},Gne=(t,e)=>{Gx(t,t.writable,e)};import{Duplex as lFe}from"stream";import{callbackify as uFe}from"util";var Vne=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:o=!0,preserveNewlines:s=!0}={})=>{let a=o||Sn.has(r),{subprocessStdout:c,waitReadableDestroy:l}=C$(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=k$(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=I$(c,a),{read:y,onStdoutDataDone:v}=P$({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:s}),b=new lFe({read:y,...M$(u,t,d),destroy:uFe(dFe.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return O$({subprocessStdout:c,onStdoutDataDone:v,readable:b,subprocess:t,subprocessStdin:u}),D$(u,b,c),b},dFe=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:o},s)=>{await Promise.all([N$({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},s),L$({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:o},s)])};var $$=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let o=n||Sn.has(e),s=Sf(t,r),a=Bx({subprocessStdout:s,subprocess:t,binary:o,shouldEncode:!0,encoding:e,preserveNewlines:i});return fFe(a,s,t)},fFe=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var qne=(t,{encoding:e})=>{let r=Lne();t.readable=Fne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=zne.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Vne.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=$$.bind(void 0,t,e),t[Symbol.asyncIterator]=$$.bind(void 0,t,e,{})};var Hne=(t,e)=>{for(let[r,n]of hFe){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},pFe=(async()=>{})().constructor.prototype,hFe=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(pFe,t)]);var Wne=(t,e,r,n)=>{let{file:i,commandArguments:o,command:s,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=_Fe(t,e,r),{subprocess:f,promise:p}=SFe({file:i,commandArguments:o,options:u,startTime:c,verboseInfo:l,command:s,escapedCommand:a,fileDescriptors:d});return f.pipe=Fx.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),Hne(f,p),mo.set(f,{options:u,fileDescriptors:d}),f},_Fe=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:o,verboseInfo:s}=KA(t,e,r),{file:a,commandArguments:c,options:l}=mx(t,e,r),u=yFe(l),d=ine(u,s);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:o,verboseInfo:s,options:u,fileDescriptors:d}},yFe=({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}},SFe=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:o,escapedCommand:s,fileDescriptors:a})=>{let c;try{c=gFe(...gx(t,e,r))}catch(h){return ene({error:h,command:o,escapedCommand:s,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;mFe(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];pne(c,a,l),mne(c,r,l);let d={},f=ho();c.kill=Iee.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=Ine(c,r),qne(c,r),Jre(c,r);let p=EFe({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}},EFe=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 Dne({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:o,onInternalError:l,controller:u});u.abort(),l.resolve();let v=h.map((S,I)=>ys(S,e,I)),b=ys(m,e,"all"),x=vFe({errorInfo:d,exitCode:f,signal:p,stdio:v,all:b,ipcOutput:y,context:c,options:e,command:s,escapedCommand:a,startTime:r});return Af(x,n,e)},vFe=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,context:s,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?k_({error:t.error,command:c,escapedCommand:l,timedOut:s.terminationReason==="timeout",isCanceled:s.terminationReason==="cancel"||s.terminationReason==="gracefulCancel",isGracefullyCanceled:s.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof go,isForcefullyTerminated:s.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:o,options:a,startTime:u,isSync:!1}):Ax({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:o,options:a,startTime:u});var Vx=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,TFe(n,t[n],i)]));return{...t,...r}},TFe=(t,e,r)=>bFe.has(t)&&kt(e)&&kt(r)?{...e,...r}:r,bFe=new Set(["env",...pL]);var Da=(t,e,r,n)=>{let i=(s,a,c)=>Da(s,a,r,c),o=(...s)=>AFe({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...s);return n!==void 0&&n(o,i,e),o},AFe=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},o,...s)=>{if(kt(o))return i(t,Vx(r,o),n);let{file:a,commandArguments:c,options:l,isSync:u}=xFe({mapArguments:t,firstArgument:o,nextArguments:s,deepOptions:e,boundOptions:r});return u?qre(a,c,l):Wne(a,c,l,i)},xFe=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let o=i7(e)?o7(e,r):[e,...r],[s,a,c]=UA(...o),l=Vx(Vx(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 Yne=({file:t,commandArguments:e})=>Zne(t,e),Kne=({file:t,commandArguments:e})=>({...Zne(t,e),isSync:!0}),Zne=(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]=wFe(t);return{file:r,commandArguments:n}},wFe=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(RFe)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},RFe=/ +/g;var Jne=(t,e,r)=>{t.sync=e(CFe,r),t.s=t.sync},Xne=({options:t})=>Qne(t),CFe=({options:t})=>({...Qne(t),isSync:!0}),Qne=t=>({options:{...IFe(t),...t}}),IFe=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},eie={preferLocal:!0};var tie=Da(()=>({})),OAt=Da(()=>({isSync:!0})),rie=Da(Yne),NAt=Da(Kne),kAt=Da(fte),MAt=Da(Xne,{},eie,Jne),{sendMessage:DAt,getOneMessage:LAt,getEachMessage:$At,getCancelSignal:UAt}=Xre();var nie=!1,iie=()=>{nie=!0},yo=()=>nie;var B_=null,oie=t=>(B_&&B_.destroy(),B_=new So({totalAllowedTime:t}),B_),sie=()=>B_;var So=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&&yo())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let o=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),s=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{s=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await IA({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{oe.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 aie={name:"@netlify/agent-runner-cli",type:"module",version:"1.164.1",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.5","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var kFe=OFe(import.meta.url),MFe=Ss.dirname(kFe),DFe=NFe(import.meta.url),Cf=le("shell"),U$=new Set,cie={preferLocal:!0},fr=(t,e,r)=>{let[n,i]=LFe(e,r),o={...cie,...i},s=tie(t,n,o);uie(s,o),pie(s);let a=r?.idleTimeout;return a&&a>0&&fie(s,a),s},lie=(t,e)=>{let r={...cie,...e},n=rie(t,r);return uie(n,r),pie(n),e?.idleTimeout&&e.idleTimeout>0&&fie(n,e.idleTimeout),n},LFe=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},uie=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Es.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new h_).pipe(Es.stdout),t.stderr?.pipe(new h_).pipe(Es.stderr);return}t.stdout?.pipe(Es.stdout),t.stderr?.pipe(Es.stderr)},F$=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Es.kill(-t.pid,e),Cf.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Cf.error("Error killing process:",r),!1}},die=t=>F$(t,"SIGKILL"),fie=(t,e)=>{let r=null,n=()=>{Cf.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Cf.log(`Force killing idle process ${t.pid}`),die(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)},pie=t=>{U$.add(t);let e=sie();if(e){let r=e.onTimesUp(()=>{Cf.log(`Global timer expired, killing process ${t.pid}`),F$(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Cf.log(`Force killing process ${t.pid} after timeout`),die(t))},5e3)});t.on("exit",()=>{U$.delete(t),r()}),t.on("error",()=>{U$.delete(t),r()})}};function Eo(t,e){if(!Es.env.NETLIFY_LOCAL_MODE)try{let i=DFe.resolve(aie.name),o=Ss.dirname(i);for(;o!==Ss.dirname(o);){let s=Ss.dirname(o);if(Ss.basename(s)==="node_modules"){let a=Ss.join(s,".bin",e);if(qx.existsSync(a))return a;break}o=s}}catch(i){console.error("Could not resolve package.json",i)}if(Es.env.NODE_PATH){let i=Ss.join(Es.env.NODE_PATH,".bin",e);if(qx.existsSync(i))return i}let r=Ss.join(t,"node_modules",".bin",e);if(qx.existsSync(r))return r;let n=Ss.join(MFe,"..","node_modules",".bin",e);if(qx.existsSync(n))return n}var $Fe=le("utils"),UFe=t=>new Promise(e=>{setTimeout(e,t)});var B$=t=>{try{return new URL(t).hostname||null}catch{return null}},Hx=(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},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},hie=(t,e=!0,r)=>{if(t)try{return JSON.parse(t)}catch(n){e&&(r?.error?r.error("Could not parse JSON",n):$Fe.error("Could not parse JSON",n))}},FFe=t=>t.charAt(0).toUpperCase()+t.slice(1),vo=t=>t.split("-").map(e=>e.length===2?e.toUpperCase():FFe(e)).join(" ");function vs(t,e){e&&t.log(`Skill invoked: ${e}`)}var Wx=t=>Object.fromEntries(Object.entries(t).filter(([,e])=>e!==void 0)),mie=(t,e,r=!1)=>{if(r)return;let n=60,i=55,o=".netlify.app",s="agent-",a=6;if(!e)return`${s}${t.slice(0,a)}`;let c=`--${e}${o}`;if(c.length>i)return"";let l=n-c.length;if(l<=0)return"";if(l>=s.length+a){let u=Math.min(l-s.length,t.length);return`${s}${t.slice(0,u)}`}return t.slice(0,l)};var j$=t=>{let e=t.match(/<<-?\s*['"]?(\w+)['"]?/);if(!e)return{command:t};let r=t.indexOf(e[0]),n=t.slice(r+e[0].length).trim();return{command:t.slice(0,r).trim(),heredocContent:n||void 0}},BFe=1e4,z$=(t,e=BFe)=>{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 jFe}from"crypto";import{createReadStream as zFe}from"fs";import Yx from"fs/promises";import Eie from"os";import Kx from"path";var gie=le("repo"),vie="runner-diffs-",Tie=t=>`${vie}${t}-`,bie=async t=>{let e=Eie.tmpdir(),r;try{r=await Yx.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(vie)&&!n.startsWith(Tie(t))).map(n=>Yx.rm(Kx.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Qr=(t,e={})=>fr("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),Zx=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{gie.info("Getting runner diffs");let n=await VFe(r),{hasChanges:i}=n,{status:o}=n;if(!i)return{hasChanges:!1};if(!e){let h=HFe(o);await WFe(h,r)}gie.info("Changes after processing"),await V$(r);let s=await H$(o,r);if(await G$(s,r),i=await qFe(r),!i)return{hasChanges:!1,ignored:s};await Qr(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await Yx.mkdtemp(Kx.join(Eie.tmpdir(),Tie(t.sessionId))),c=async({from:h,to:m,fileName:y,binary:v})=>{let b=Kx.join(a,y);await Qr([...v?["diff",h,m,"--binary"]:["diff",h,m],`--output=${b}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:S}=await Yx.stat(b);return{path:b,size:S}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await Sie(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 yie(d,h)||(f=h)}await Sie(r),oe.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:s};return await yie(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},_ie=async t=>{let e=jFe("sha256");for await(let r of zFe(t))e.update(r);return e.digest("hex")},yie=async(t,e)=>t.size===e.size&&await _ie(t.path)===await _ie(e.path),Sie=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Qr(["reset","--soft","HEAD~1"],{cwd:t})},G$=async(t=[],e=process.cwd())=>{await Qr(["add",".",...t],{cwd:e})},V$=async(t=process.cwd())=>{let e=await Qr(["status","-s"],{cwd:t});return String(e.stdout??"")},Aie=/.. (.+)?\.log$/,GFe=[Aie],VFe=async(t=process.cwd())=>{let e=await V$(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
114
114
|
`).filter(i=>GFe.some(s=>s instanceof RegExp?s.test(i):i===s)?!1:i[1]?.trim()!=="")).length!==0,status:e}},qFe=async(t=process.cwd())=>{try{return await Qr(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},q$=async(t=process.cwd())=>{let{stdout:e}=await Qr(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},xie=async(t=process.cwd())=>{let{stdout:e}=await Qr(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},H$=async(t,e=process.cwd())=>{t||=await V$(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(`
|
|
115
115
|
`).forEach(i=>{r.forEach(s=>{let a=i===`?? ${s}`,c=i.startsWith(`?? ${s}/`)||i.startsWith(`?? ${s}${Kx.sep}`);(a||c)&&n.push(`:!${s}`)});let o=i.match(Aie)?.[1];o&&n.push(`:!${o}.log`)}),n},wie=async(t=process.cwd())=>{await Qr(["reset","--hard","HEAD"],{cwd:t})},Rie=async(t=process.cwd())=>{let e=await Qr(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
|
|
116
116
|
`).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},HFe=t=>{let e=t.split(`
|
|
@@ -370,7 +370,7 @@ priority = 20
|
|
|
370
370
|
`),_r.log("Ask policy allows the read-only database query command",{allowedPrefixes:i})}let n=Cc.join(vS.homedir(),".gemini","ask-policy.toml");return await Ou.mkdir(Cc.dirname(n),{recursive:!0}),await Ou.writeFile(n,r.join(`
|
|
371
371
|
`),"utf-8"),n};async function Iz({config:t,netlify:e,persistSteps:r=void 0,sendSteps:n=void 0,aiGateway:i,continueSession:o=!1,priorAgentSessionId:s=void 0,cwd:a=Dh.cwd(),cliPath:c="netlify",abortSignal:l=void 0,onSessionId:u=void 0,forceLowEffortForCreditWrapUp:d=void 0}){let{prompt:f}=t,p=ip("gemini",t.effort);t.effort&&!p&&_r.log(`Effort '${t.effort}' is not available on ${KC}; using its default`);let h=d?"low":p;vVe({aiGateway:i});let m=await TVe({aiGateway:i,config:t,model:t.model});await SVe({model:m,effort:h});let y=[],v=[],b=[],x={},S=0,I=0,P,L,k,R,F,_=!!(o&&s),J=!1;_&&(J=await ES(s)),_&&!J&&(_r.log(`Gemini resume requested for session ${s} but it was not resumable; starting a fresh session`),oe.inc("inference.native_resume",1,{outcome:"sanitize_failed"}));let N=t.mode==="ask",g=N?await bVe({config:t,cliPath:c}):void 0,E=[Eo(a,"gemini"),...m?["--model",m]:[],...N?["--approval-mode","default","--policy",g]:["--yolo"],"--skip-trust","--output-format","stream-json",...J?["-r",s]:[],"-p",""],w=`${Dh.env.NVM_BIN}/node`;_r.log(`Running ${w} ${E.join(" ")}`);let Y=e.utils.run(w,E,{all:!0,env:{...Dh.env,GEMINI_CLI_NO_RELAUNCH:"1"},cwd:a,idleTimeout:ps,cancelSignal:l});Y.stdin?.end(f);let G=La(()=>{r?.({steps:y,duration:I}),n?.({steps:v,duration:I}),v=[]},250),ue=(fe,_e)=>{fe.id=S,S+=1,b.push(fe),y.push(fe),v.push(fe),_e||G.flush(),G(),_e&&G.flush()},xe=m||"default";t.answeredInteraction||ue({title:`Using ${KC} with ${xe}`,category:H.Environment},!0);let Oe=mVe.createInterface({input:Y.all});Oe.on("error",fe=>{_r.error("Readline interface error",{error:fe.message,stack:fe.stack})});let Me="",Pe=()=>{Me&&ue({message:Me.trim(),category:H.AgentMessage}),Me=""};Oe.on("line",fe=>{let _e;try{if(fe.startsWith("[API Error")){let He=fe.match(/\[api error: (.+?)]$/i)?.[1];_e={type:"error",value:hie(He,!1)?.error?.message||He||"Gemini encountered error"}}else _e=JSON.parse(fe)}catch{return}if(_e)switch(_e.type==="init"&&typeof _e.session_id=="string"&&(R=_e.session_id,u?.(R)),["message","result"].includes(_e.type)||Pe(),_e.type){case"message":{_e.role!=="user"&&_e.content&&(Me+=_e.content);break}case"tool_use":{if(_e.tool_name===voe){if(_e.tool_id&&!F){let ce=nc.safeParse(_e.parameters);ce.success?(F={questions:ce.data.questions},Y.kill()):(_r.warn("Ignoring malformed ask tool input",{toolUseId:_e.tool_id,issues:ic(ce.error.issues)}),oe.inc("inference.malformed_ask",1))}break}let He=Cz[_e.tool_name]?.name??_e.tool_name,q=_e.parameters?.file_path,ae=q&&Cc.relative(a,q),O=_e.parameters?.command,C=_e.tool_name==="activate_skill"&&_e.parameters?.name,D=_e.tool_name==="run_shell_command"&&Ms(O),B=[He,ae&&`\`${ae}\``,O&&`\`${O}\``].filter(Boolean).join(" ");if(C)B=`Use ${vo(C)}`;else if(D)B="Generating the site";else if(_e.tool_name==="grep_search"){let{dir_path:ce,pattern:se}=_e.parameters||{};ce&&se?B=`Search in \`${ce}\` for \`${se}\``:ce?B=`Search in \`${ce}\``:se&&(B=`Search for \`${se}\``)}else if(_e.tool_name==="update_topic"){let ce=_e.parameters?.title;ce&&(B=`${He} \`${ce}\``)}let V={title:B,category:D?H.SiteGeneration:Cz[_e.tool_name]?.category,...C&&{type:C}};x[_e.tool_id]=V,G.flush();break}case"tool_result":{let He=x[_e.tool_id];He&&(_e.output&&(He.message=`\`\`\`
|
|
372
372
|
${_e.output.trim()}
|
|
373
|
-
\`\`\``),ue(He,!0),EVe(He));break}case"result":{I=_e.stats?.duration_ms,_e.stats&&(Pa(_e.stats,m?{model:m}:{}),k=_e.stats),_e.status==="error"?L=_e.error?.message:P=Me.trim();break}case"error":{L=_e.error;break}case"finished":break;case"init":break;default:{_r.warn("Unhandled message type:",_e.type);break}}});let Ue=!1;if(await Y.catch(fe=>{Ue=qa(fe,l),{error:L,result:P}=gVe({catchError:fe,runCmd:Y,error:L,result:P,runnerName:"Gemini"})}),Oe.close(),F)return G.flush(),{steps:b,duration:I,agentSessionId:R,resolvedModel:m,usage:k,pendingInteraction:F};let Ce=Ue;return Ce&&(!P&&Me.trim()&&(P=Me.trim()),L=void 0),G.flush(),{steps:b,duration:I,result:await oc({initialResult:P,agentName:KC,hasError:!!L}),error:sc({error:L,agentName:KC}),isRetryableError:ac(L),isProviderUnavailableError:cc(L),resolvedModel:m,usage:k,agentSessionId:R,...h&&Zle(m)?{effort:h}:{},...Ce?{aborted:!0}:{}}}var Jle=async()=>{let t=Cc.join(vS.homedir(),".gemini");await Ou.rm(t,{recursive:!0,force:!0});let e=Cc.join(vS.homedir(),".agents","skills");await Ou.rm(e,{recursive:!0,force:!0})},Xle={baseDir:Cc.join(vS.homedir(),".gemini"),include:["tmp"]};import Oz from"fs/promises";import nue from"os";import TS from"path";import kz from"process";import wVe from"readline";import AVe from"os";import tue from"path";import Pz from"fs";var Qle=le("opencode_install"),eue="1.17.19",xVe=()=>tue.join(AVe.homedir(),".netlify-agent-runner","opencode"),ZC=async t=>{let e=Eo(t,"opencode");if(e)return e;let r=xVe(),n=tue.join(r,"node_modules",".bin","opencode");if(Pz.existsSync(n))return n;Pz.mkdirSync(r,{recursive:!0}),Qle.log(`Installing opencode-ai@${eue} on demand`);let i=Date.now();await fr("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${eue}`],{cwd:r});let o=Date.now()-i;if(oe.timing("opencode.install_duration",o),Qle.log(`Installed opencode-ai in ${o}ms`),!Pz.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Hs=le("runner_opencode"),JC="OpenCode",iue="gateway",RVe="z-ai/glm-5.
|
|
373
|
+
\`\`\``),ue(He,!0),EVe(He));break}case"result":{I=_e.stats?.duration_ms,_e.stats&&(Pa(_e.stats,m?{model:m}:{}),k=_e.stats),_e.status==="error"?L=_e.error?.message:P=Me.trim();break}case"error":{L=_e.error;break}case"finished":break;case"init":break;default:{_r.warn("Unhandled message type:",_e.type);break}}});let Ue=!1;if(await Y.catch(fe=>{Ue=qa(fe,l),{error:L,result:P}=gVe({catchError:fe,runCmd:Y,error:L,result:P,runnerName:"Gemini"})}),Oe.close(),F)return G.flush(),{steps:b,duration:I,agentSessionId:R,resolvedModel:m,usage:k,pendingInteraction:F};let Ce=Ue;return Ce&&(!P&&Me.trim()&&(P=Me.trim()),L=void 0),G.flush(),{steps:b,duration:I,result:await oc({initialResult:P,agentName:KC,hasError:!!L}),error:sc({error:L,agentName:KC}),isRetryableError:ac(L),isProviderUnavailableError:cc(L),resolvedModel:m,usage:k,agentSessionId:R,...h&&Zle(m)?{effort:h}:{},...Ce?{aborted:!0}:{}}}var Jle=async()=>{let t=Cc.join(vS.homedir(),".gemini");await Ou.rm(t,{recursive:!0,force:!0});let e=Cc.join(vS.homedir(),".agents","skills");await Ou.rm(e,{recursive:!0,force:!0})},Xle={baseDir:Cc.join(vS.homedir(),".gemini"),include:["tmp"]};import Oz from"fs/promises";import nue from"os";import TS from"path";import kz from"process";import wVe from"readline";import AVe from"os";import tue from"path";import Pz from"fs";var Qle=le("opencode_install"),eue="1.17.19",xVe=()=>tue.join(AVe.homedir(),".netlify-agent-runner","opencode"),ZC=async t=>{let e=Eo(t,"opencode");if(e)return e;let r=xVe(),n=tue.join(r,"node_modules",".bin","opencode");if(Pz.existsSync(n))return n;Pz.mkdirSync(r,{recursive:!0}),Qle.log(`Installing opencode-ai@${eue} on demand`);let i=Date.now();await fr("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${eue}`],{cwd:r});let o=Date.now()-i;if(oe.timing("opencode.install_duration",o),Qle.log(`Installed opencode-ai in ${o}ms`),!Pz.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Hs=le("runner_opencode"),JC="OpenCode",iue="gateway",RVe="z-ai/glm-5.2",CVe=new Set(["z-ai/glm-5.2","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),IVe=(t,e)=>!t||!wA.includes(t)?t:e&&CVe.has(e)?"xhigh":"max",Nz={bash:{name:"Run command",category:H.RunCommand},read:{name:"Read file",category:H.FileRead},write:{name:"Edit file",category:H.FileWrite},edit:{name:"Edit file",category:H.FileWrite},glob:{name:"Find files",category:H.Explore},grep:{name:"Search files",category:H.Explore},list:{name:"List directory",category:H.Explore},task:{name:"Task",category:H.Task},todowrite:{name:"Update task list",category:H.Todo},webfetch:{name:"Fetch web",category:H.Web},websearch:{name:"Search web",category:H.Web},skill:{name:"Use Skill",category:H.Skill}},rue=t=>Nz[t]?.name||t,PVe=t=>Array.isArray(t)?t.flatMap(e=>{let{content:r,status:n}=e??{};return typeof r!="string"||!r?[]:[{name:r,value:typeof n=="string"&&n?n:"pending"}]}):[],OVe=250,NVe=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=nc.safeParse(e);return r.success?{questions:r.data.questions}:{issues:ic(r.error.issues)}},kVe=(t,e)=>{let r=!0,n=setInterval(async()=>{let i=await Oz.readFile(t,"utf-8").catch(()=>{});if(i===void 0)return;clearInterval(n),await Oz.rm(t,{force:!0}).catch(()=>{});let{questions:o,issues:s}=NVe(i);if(!o){Hs.warn("Ignoring malformed ask tool questions file",{filePath:t,issues:s}),oe.inc("inference.malformed_ask",1);return}r&&e(o)},OVe);return n.unref(),{stop:()=>{r=!1,clearInterval(n)}}};async function MVe({aiGateway:t,config:e,model:r}){let n=r;if(t){let i=t.isModelAvailable;if(!i)throw new Error("OpenCode runner requires a gateway with isModelAvailable support");let o=e.modelVersionOverrides?.opencode?.[e.accountType];o?n=o:r||(n=Be().opencodeDefaultModel||RVe),n&&(await i(n)||Hs.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function DVe({aiGateway:t,model:e,effort:r,questionsFilePath:n}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:i,url:o}=t;if(!i||!o)throw new Error("No token or url provided from AI Gateway");let s=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:"reasoning_details"},...r?{options:{reasoningEffort:r}}:{}}}:{},a={$schema:"https://opencode.ai/config.json",provider:{[iue]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:i,baseURL:o},...Object.keys(s).length>0?{models:s}:{}}},...n?{mcp:boe(n)}:{}};return{...kz.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(a),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function Mz({config:t,netlify:e,persistSteps:r,aiGateway:n,continueSession:i,priorAgentSessionId:o,cwd:s=kz.cwd(),abortSignal:a,onSessionId:c,forceLowEffortForCreditWrapUp:l}){let{prompt:u}=t,{model:d}=t,f=l?"low":t.effort,p="",h,m,y,v,b=0,x=0,S,I=await MVe({config:t,aiGateway:n,model:d}),P=IVe(f,I);Hs.log(f?`Requesting reasoning effort '${f}' for model '${I}'${P===f?"":` (sent as '${P}')`}; ignored if unsupported`:`No reasoning effort requested for model '${I}'; running at its own default`);let L=Be().questionsEnabled?await Aoe():void 0,k=DVe({aiGateway:n,model:I,effort:P,questionsFilePath:L?.filePath}),R=[],F=[],_=0,J=Date.now(),N=await ZC(s),g=["run","--format","json","--dangerously-skip-permissions","--agent","build",...I?["--model",`${iue}/${I}`]:[],...i?o?["--session",o]:["--continue"]:[]];Hs.log(`Running ${N} ${g.join(" ")}`);let E=e.utils.run(N,g,{all:!0,env:k,cwd:s,idleTimeout:ps,cancelSignal:a});E.stdin?.end(u);let w=L?kVe(L.filePath,He=>{S||(S={questions:He},E.kill())}):void 0,Y=La(()=>{r?.({steps:F,duration:Date.now()-J})},250),G=(He,q)=>{let{wrapMessage:ae,...O}=He,C=Wx({...O,id:_});C.message&&ae&&(C.message=`\`\`\`
|
|
374
374
|
${C.message}
|
|
375
375
|
\`\`\``),_+=1,R.push(C),F.push(C),q||Y.flush(),Y(),q&&Y.flush()},ue=I||"default";t.answeredInteraction||G({title:`Using ${JC} with ${ue}`,category:H.Environment},!0);let xe=wVe.createInterface({input:E.all});xe.on("error",He=>{Hs.error("Readline interface error",{error:He.message,stack:He.stack})});let Oe="",Me,Pe=new Set,Ue=()=>{Oe&&(G({message:Oe,category:H.AgentMessage}),Me=Oe,Oe="")};xe.on("line",He=>{let q;try{q=JSON.parse(He)}catch{Hs.log("Could not parse line",He);return}switch(q.sessionID&&q.sessionID!==p&&(p=q.sessionID,c?.(p)),q.type){case"step_start":{Ue();break}case"text":{let ae=q.part?.text;ae&&(Oe+=ae);break}case"reasoning":{Ue();let ae=q.part?.text;ae&&G({title:"Reasoning",message:ae,category:H.Reasoning},!0);break}case"tool_use":{Ue();let ae=q.part?.tool;if(!ae)break;let O=q.part?.state?.input??{},C=q.part?.state?.status,D=q.part?.state?.output,B=q.part?.state?.error;if(ae===Toe){C==="error"&&Hs.warn("Ask tool call rejected before it could pause the run",{error:B});break}if(C==="error"&&(b+=1),(C==="completed"||C==="error")&&(x+=1),ae==="skill"){let we=typeof O.name=="string"?O.name:void 0;if(we){let We=vo(we);vs(Hs,We),G({title:`Use ${We}`,category:H.Skill,type:we},!0);break}}if(ae==="todowrite"){let we=PVe(O.todos);G({title:rue(ae),category:we.length>0?Nz.todowrite.category:H.Tool,...we.length>0?{tasks:we}:{}},!0);break}let V=typeof O.command=="string"?O.command:void 0,ce=V?Ms(V):!1,se=typeof O.path=="string"&&O.path||typeof O.file_path=="string"&&O.file_path||typeof O.pattern=="string"&&O.pattern||void 0,Se,Ie;if(ce)Se="Generating the site",Ie=H.SiteGeneration;else if(V&&ae==="bash")Se=`Running \`${V}\``,Ie=H.RunCommand;else{let we=se&&`\`${TS.relative(s,se)}\``;Se=[rue(ae),we].filter(Boolean).join(" "),Ie=Nz[ae]?.category||H.AgentMessage}let Ee,re=["bash","read","glob","grep","list","webfetch","websearch"].includes(ae);B?Ee=`\`\`\`
|
|
376
376
|
${B.trim()}
|