@netlify/agent-runner-cli 1.200.2-bug.6 → 1.200.2-bug.8
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 +3 -3
- package/dist/bin.js +87 -87
- package/dist/index.js +3 -3
- package/package.json +3 -3
package/dist/bin-local.js
CHANGED
|
@@ -385,7 +385,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
385
385
|
`,LF:`
|
|
386
386
|
`,concatBytes:wY},Fct=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},zct={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:Fct};import{Buffer as jct}from"buffer";var pwe=(t,e)=>t?void 0:qct.bind(void 0,e),qct=function*(t,e){if(typeof e!="string"&&!zr(e)&&!jct.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},hwe=(t,e)=>t?Bct.bind(void 0,e):Vct.bind(void 0,e),Bct=function*(t,e){mwe(t,e),yield e},Vct=function*(t,e){if(mwe(t,e),typeof e!="string"&&!zr(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},mwe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
387
387
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
388
|
-
if (condition) { yield value; }`)};import{Buffer as Gct}from"buffer";import{StringDecoder as Hct}from"string_decoder";var qD=(t,e,r)=>{if(r)return;if(t)return{transform:Wct.bind(void 0,new TextEncoder)};let n=new Hct(e);return{transform:Kct.bind(void 0,n),final:Yct.bind(void 0,n)}},Wct=function*(t,e){Gct.isBuffer(e)?yield ou(e):typeof e=="string"?yield t.encode(e):yield e},Kct=function*(t,e){yield zr(e)?t.write(e):e},Yct=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as gwe}from"util";var AY=gwe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),BD=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Jct}=e[r];for await(let i of n(t))yield*BD(i,e,r+1)},_we=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Zct(r,Number(e),t)},Zct=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*BD(n,r,e+1)},ywe=gwe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Jct=function*(t){yield t};var RY=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Swe=(t,e)=>[...e.flatMap(r=>[...wp(r,t,0)]),...UT(t)],wp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Xct}=e[r];for(let i of n(t))yield*wp(i,e,r+1)},UT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Qct(r,Number(e),t)},Qct=function*(t,e,r){if(t!==void 0)for(let n of t())yield*wp(n,r,e+1)},Xct=function*(t){yield t};var xY=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Ewe(t,o,s),u=bp(e),l=bp(r),d=u?AY.bind(void 0,BD,a):RY.bind(void 0,wp),f=u||l?AY.bind(void 0,_we,a):RY.bind(void 0,UT),p=u||l?ywe.bind(void 0,a):void 0;return{stream:new eut({writableObjectMode:n,writableHighWaterMark:vwe(n),readableObjectMode:i,readableHighWaterMark:vwe(i),transform(m,_,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},VD=(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=Ewe(o,r,a);t=Swe(c,t)}return t},Ewe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:pwe(n,a)},qD(r,o,n),jD(r,s,n,c),{transform:t,final:e},{transform:hwe(i,a)},fwe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var bwe=(t,e)=>{for(let r of tut(t))rut(t,r,e)},tut=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),rut=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${Bl[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>nut(a,n));r.input=OT(o)},nut=(t,e)=>{let r=VD(t,e,"utf8",!0);return iut(r),OT(r)},iut=t=>{let e=t.find(r=>typeof r!="string"&&!zr(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as cut,appendFileSync as uut}from"fs";var GD=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&R_(r,n)&&!ts.has(e)&&sut(n)&&(t.some(({type:i,value:s})=>i==="native"&&out.has(s))||t.every(({type:i})=>Ls.has(i))),sut=t=>t===1||t===2,out=new Set(["pipe","overlapped"]),wwe=async(t,e,r,n)=>{for await(let i of t)aut(e)||Awe(i,r,n)},Twe=(t,e,r)=>{for(let n of t)Awe(n,e,r)},aut=t=>t._readableState.pipes.length>0,Awe=(t,e,r)=>{let n=sD(t);Ga({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,u)=>lut({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},lut=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=xbe(t,s,d),p=ou(f),{stdioItems:h,objectMode:m}=e[r],_=dut([p],h,c,n),{serializedResult:S,finalResult:b=S}=fut({chunks:_,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});put({serializedResult:S,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let R=a[r]?b:void 0;try{return n.error===void 0&&hut(S,h,i),R}catch(y){return n.error=y,R}},dut=(t,e,r,n)=>{try{return VD(t,e,r,!1)}catch(i){return n.error=i,t}},fut=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:OT(t)};let o=jSe(t,r);return n[s]?{serializedResult:o,finalResult:TY(o,!i[s],e)}:{serializedResult:o}},put=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!GD({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=TY(t,!1,o);try{Twe(a,e,n)}catch(c){r.error??=c}},hut=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>FD.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?uut(n,t):(r.add(s),cut(n,t))}};var xwe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,uu(e,r,"all")]:Array.isArray(e)?[uu(t,r,"all"),...e]:zr(t)&&zr(e)?NK([t,e]):`${t}${e}`};import{once as OY}from"events";var Owe=async(t,e)=>{let[r,n]=await mut(t);return e.isForcefullyTerminated??=!1,[r,n]},mut=async t=>{let[e,r]=await Promise.allSettled([OY(t,"spawn"),OY(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Iwe(t):r.value},Iwe=async t=>{try{return await OY(t,"exit")}catch{return Iwe(t)}},Pwe=async t=>{let[e,r]=await t;if(!gut(e,r)&&IY(e,r))throw new Ko;return[e,r]},gut=(t,e)=>t===void 0&&e===void 0,IY=(t,e)=>t!==0||e!==null;var Cwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=_ut(t,e,r),o=s?.code==="ETIMEDOUT",a=Rbe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},_ut=(t,e,r)=>t!==void 0?t:IY(e,r)?new Ko:void 0;var kwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=Sut(t,e,r),d=but({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return $_(d,c,u)},Sut=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=aD(t,e,r),a=vut(r),{file:c,commandArguments:u,options:l}=xD(t,e,a);Eut(l);let d=cwe(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},vut=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Eut=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&HD("ipcInput"),t&&HD("ipc: true"),r&&HD("detached: true"),n&&HD("cancelSignal")},HD=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},but=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=wut({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=Cwe(c,r),{output:h,error:m=u}=Rwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((b,R)=>uu(b,r,R)),S=uu(xwe(h,r),r,"all");return Aut({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:S,options:r,command:n,escapedCommand:i,startTime:a})},wut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{bwe(s,r);let a=Tut(r);return yut(...OD(t,e,a))}catch(a){return M_({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},Tut=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:MD(e)}),Aut=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?$D({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):LT({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as fdt}from"events";import{spawn as pdt}from"child_process";import Lwe from"process";import{once as PY,on as Rut}from"events";var Nwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(I_({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:ED(t)}),xut({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),xut=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{_D(e,i);let s=ql(t,e,r),o=new AbortController;try{return await Promise.race([Out(s,n,o),Iut(s,r,o),Put(s,r,o)])}catch(a){throw P_(t),a}finally{o.abort(),yD(e,i)}},Out=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await PY(t,"message",{signal:r});return n}for await(let[n]of Rut(t,"message",{signal:r}))if(e(n))return n},Iut=async(t,e,{signal:r})=>{await PY(t,"disconnect",{signal:r}),SEe(e)},Put=async(t,e,{signal:r})=>{let[n]=await PY(t,"strict:error",{signal:r});throw hD(n,e)};import{once as Mwe,on as Cut}from"events";var $we=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>CY({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),CY=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{I_({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:ED(t)}),_D(e,s);let o=ql(t,e,r),a=new AbortController,c={};return kut(t,o,a),Nut({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),Dut({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},kut=async(t,e,r)=>{try{await Mwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},Nut=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Mwe(t,"strict:error",{signal:r.signal});n.error=hD(i,e),r.abort()}catch{}},Dut=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of Cut(r,"message",{signal:s.signal}))Dwe(o),yield c}catch{Dwe(o)}finally{s.abort(),yD(e,a),n||P_(t),i&&await t}},Dwe=({error:t})=>{if(t)throw t};var Uwe=(t,{ipc:e})=>{Object.assign(t,zwe(t,!1,e))},Fwe=()=>{let t=Lwe,e=!0,r=Lwe.channel!==void 0;return{...zwe(t,e,r),getCancelSignal:HEe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},zwe=(t,e,r)=>({sendMessage:AD.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Nwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:$we.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as Mut}from"child_process";import{PassThrough as $ut,Readable as Lut,Writable as Uut,Duplex as Fut}from"stream";var jwe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{EY(n);let a=new Mut;zut(a,n),Object.assign(a,{readable:jut,writable:qut,duplex:But});let c=M_({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=Vut(c,o,i);return{subprocess:a,promise:u}},zut=(t,e)=>{let r=FT(),n=FT(),i=FT(),s=Array.from({length:e.length-3},FT),o=FT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},FT=()=>{let t=new $ut;return t.end(),t},jut=()=>new Lut({read(){}}),qut=()=>new Uut({write(){}}),But=()=>new Fut({read(){},write(){}}),Vut=async(t,e,r)=>$_(t,e,r);import{createReadStream as qwe,createWriteStream as Bwe}from"fs";import{Buffer as Gut}from"buffer";import{Readable as zT,Writable as Hut,Duplex as Wut}from"stream";var Gwe=(t,e)=>zD(Kut,t,e,!1),jT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Bl[t]}.`)},Vwe={fileNumber:jT,generator:xY,asyncGenerator:xY,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:Wut.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Kut={input:{...Vwe,fileUrl:({value:t})=>({stream:qwe(t)}),filePath:({value:{file:t}})=>({stream:qwe(t)}),webStream:({value:t})=>({stream:zT.fromWeb(t)}),iterable:({value:t})=>({stream:zT.from(t)}),asyncIterable:({value:t})=>({stream:zT.from(t)}),string:({value:t})=>({stream:zT.from(t)}),uint8Array:({value:t})=>({stream:zT.from(Gut.from(t))})},output:{...Vwe,fileUrl:({value:t})=>({stream:Bwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Bwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:Hut.fromWeb(t)}),iterable:jT,asyncIterable:jT,string:jT,uint8Array:jT}};import{on as Yut,once as Hwe}from"events";import{PassThrough as Zut,getDefaultHighWaterMark as Jut}from"stream";import{finished as Ywe}from"stream/promises";function Tp(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)NY(i);let e=t.some(({readableObjectMode:i})=>i),r=Qut(t,e),n=new kY({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Qut=(t,e)=>{if(t.length===0)return Jut(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},kY=class extends Zut{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(NY(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Xut(this,this.#e,this.#s);let r=rlt({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(NY(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)}},Xut=async(t,e,r)=>{WD(t,Wwe);let n=new AbortController;try{await Promise.race([elt(t,n),tlt(t,e,r,n)])}finally{n.abort(),WD(t,-Wwe)}},elt=async(t,{signal:e})=>{try{await Ywe(t,{signal:e,cleanup:!0})}catch(r){throw Zwe(t,r),r}},tlt=async(t,e,r,{signal:n})=>{for await(let[i]of Yut(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},NY=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},rlt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{WD(t,Kwe);let a=new AbortController;try{await Promise.race([nlt(s,e,a),ilt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),slt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),WD(t,-Kwe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?DY(t):olt(t))},nlt=async(t,e,{signal:r})=>{try{await t,r.aborted||DY(e)}catch(n){r.aborted||Zwe(e,n)}},ilt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await Ywe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Jwe(o)?i.add(e):Qwe(t,o)}},slt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Hwe(t,i,{signal:s}),!t.readable)return Hwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},olt=t=>{t.writable&&t.end()},Zwe=(t,e)=>{Jwe(e)?DY(t):Qwe(t,e)},Jwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",DY=t=>{(t.readable||t.writable)&&t.destroy()},Qwe=(t,e)=>{t.destroyed||(t.once("error",alt),t.destroy(e))},alt=()=>{},WD=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Wwe=2,Kwe=1;import{finished as Xwe}from"stream/promises";var U_=(t,e)=>{t.pipe(e),clt(t,e),ult(t,e)},clt=async(t,e)=>{if(!(Wo(t)||Wo(e))){try{await Xwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}MY(e)}},MY=t=>{t.writable&&t.end()},ult=async(t,e)=>{if(!(Wo(t)||Wo(e))){try{await Xwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}$Y(t)}},$Y=t=>{t.readable&&t.destroy()};var eTe=(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})=>Ls.has(c)))llt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Ls.has(c)))flt({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]:Tp(s);U_(o,i)}},llt=(t,e,r,n)=>{r==="output"?U_(t.stdio[n],e):U_(e,t.stdio[n]);let i=dlt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},dlt=["stdin","stdout","stderr"],flt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;plt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},plt=(t,{signal:e})=>{Wo(t)&&vp(t,hlt,e)},hlt=2;import{addAbortListener as _lt}from"events";var Ap=[];Ap.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ap.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ap.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var KD=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",LY=Symbol.for("signal-exit emitter"),UY=globalThis,mlt=Object.defineProperty.bind(Object),FY=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(UY[LY])return UY[LY];mlt(UY,LY,{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}},YD=class{},glt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),zY=class extends YD{onExit(){return()=>{}}load(){}unload(){}},jY=class extends YD{#e=qY.platform==="win32"?"SIGINT":"SIGHUP";#r=new FY;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ap)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(!KD(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 Ap)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,Ap.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 KD(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"&&KD(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)}},qY=globalThis.process,{onExit:tTe,load:Vir,unload:Gir}=glt(KD(qY)?new jY(qY):new zY);var rTe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=tTe(()=>{t.kill()});_lt(n,()=>{i()})};var iTe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=oD(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=ylt(r,n,i),{sourceStream:d,sourceError:f}=vlt(t,u),{options:p,fileDescriptors:h}=Wa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},ylt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=Slt(t,e,...r),a=gD(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},Slt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(nTe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||CK(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]=ZN(r,...n);return{destination:e(nTe)(i,s,o),pipeOptions:o}}if(Wa.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},nTe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),vlt=(t,e)=>{try{return{sourceStream:C_(t,e)}}catch(r){return{sourceError:r}}};var oTe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Elt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw BY({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Elt=({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 MY(r),e},BY=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>M_({error:t,command:sTe,escapedCommand:sTe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),sTe="source.pipe(destination)";var aTe=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 blt}from"stream/promises";var cTe=(t,e,r)=>{let n=ZD.has(e)?Tlt(t,e):wlt(t,e);return vp(t,Rlt,r.signal),vp(e,xlt,r.signal),Alt(e),n},wlt=(t,e)=>{let r=Tp([t]);return U_(r,e),ZD.set(e,r),r},Tlt=(t,e)=>{let r=ZD.get(e);return r.add(t),r},Alt=async t=>{try{await blt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}ZD.delete(t)},ZD=new WeakMap,Rlt=2,xlt=1;import{aborted as Olt}from"util";var uTe=(t,e)=>t===void 0?[]:[Ilt(t,e)],Ilt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Olt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw BY({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var JD=(t,...e)=>{if(Sr(e[0]))return JD.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=iTe(t,...e),i=Plt({...n,destination:r});return i.pipe=JD.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Plt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=Clt(t,i);oTe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=cTe(e,s,d);return await Promise.race([aTe(l),...uTe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},Clt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Ult}from"timers/promises";import{on as klt}from"events";import{getDefaultHighWaterMark as Nlt}from"stream";var QD=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return Dlt(e,o),dTe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Dlt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},VY=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;Mlt(e,o,t);let a=t.readableObjectMode&&!s;return dTe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},Mlt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},dTe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=klt(t,"data",{signal:e.signal,highWaterMark:lTe,highWatermark:lTe});return $lt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},GY=Nlt(!0),lTe=GY,$lt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=Llt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*wp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*UT(a)}},Llt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[qD(t,r,!e),jD(t,i,!n,{})].filter(Boolean);var fTe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=Flt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([zlt(t),d]);return}let f=bY(c,r),p=VY({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([jlt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},Flt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!GD({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=VY({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await wwe(a,t,r,s)},zlt=async t=>{await Ult(),t.readableFlowing===null&&t.resume()},jlt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await kD(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await ND(r,{maxBuffer:s})):await D_(r,{maxBuffer:s})}catch(a){return pTe(wbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},HY=async t=>{try{return await t}catch(e){return pTe(e)}},pTe=({bufferedData:t})=>FSe(t)?new Uint8Array(t):t;import{finished as qlt}from"stream/promises";var qT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=Blt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],qlt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||Hlt(a,e,r,n)}finally{o.abort()}},Blt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&Vlt(t,r,n),n},Vlt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{Glt(e,r),n.call(t,...i)}},Glt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},Hlt=(t,e,r,n)=>{if(!Wlt(t,e,r,n))throw t},Wlt=(t,e,r,n=!0)=>r.propagating?hTe(t)||XD(t):(r.propagating=!0,WY(r,e)===n?hTe(t):XD(t)),WY=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",XD=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",hTe=t=>t?.code==="EPIPE";var mTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>KY({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),KY=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=qT(t,e,u);if(WY(u,e)){await l;return}let[d]=await Promise.all([fTe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var gTe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Tp([t,e].filter(Boolean)):void 0,_Te=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>KY({...Klt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:Ylt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),Klt=({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}},Ylt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Zlt}from"events";var yTe=t=>R_(t,"ipc"),STe=(t,e)=>{let r=sD(t);Ga({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var vTe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=yTe(s),a=au(e,"ipc"),c=au(r,"ipc");for await(let u of CY({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Tbe(t,i,c),i.push(u)),o&&STe(u,s);return i},ETe=async(t,e)=>(await Promise.allSettled([t]),e);var bTe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:S})=>{let b=Owe(t,f),R={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},y=mTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:R}),v=_Te({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:R}),w=[],O=vTe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:w,verboseInfo:p}),P=Jlt(m,t,R),C=Qlt(h,R);try{return await Promise.race([Promise.all([{},Pwe(b),Promise.all(y),v,O,rbe(t,d),...P,...C]),_,Xlt(t,S),...JEe(t,s,f,S),...yEe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:S}),...YEe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(k){return f.terminationReason??="other",Promise.all([{error:k},b,Promise.all(y.map(T=>HY(T))),HY(v),ETe(O,w),Promise.allSettled(P),Promise.allSettled(C)])}},Jlt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:qT(n,i,r)),Qlt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Zo(s,{checkOpen:!1})&&!Wo(s)).map(({type:i,value:s,stream:o=s})=>qT(o,n,e,{isSameDirection:Ls.has(i),stopOnExit:i==="native"}))),Xlt=async(t,{signal:e})=>{let[r]=await Zlt(t,"error",{signal:e});throw r};var wTe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),BT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Ha();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},F_=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 edt}from"stream";import{callbackify as tdt}from"util";import{finished as TTe}from"stream/promises";var YY=async t=>{if(t!==void 0)try{await ZY(t)}catch{}},ATe=async t=>{if(t!==void 0)try{await JY(t)}catch{}},ZY=async t=>{await TTe(t,{cleanup:!0,readable:!1,writable:!0})},JY=async t=>{await TTe(t,{cleanup:!0,readable:!0,writable:!1})},eM=async(t,e)=>{if(await t,e)throw e},tM=(t,e,r)=>{r&&!XD(r)?t.destroy(r):e&&t.destroy()};var RTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||ts.has(r),{subprocessStdout:a,waitReadableDestroy:c}=QY(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=XY(a,o),{read:f,onStdoutDataDone:p}=e9({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new edt({read:f,destroy:tdt(r9.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return t9({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},QY=(t,e,r)=>{let n=C_(t,e),i=BT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},XY=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:GY},e9=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Ha(),o=QD({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){rdt(this,o,s)},onStdoutDataDone:s}},rdt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},t9=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await JY(t),await n,await YY(i),await e,r.readable&&r.push(null)}catch(s){await YY(i),xTe(r,s)}},r9=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await F_(r,e)&&(xTe(t,n),await eM(e,n))},xTe=(t,e)=>{tM(t,t.readable,e)};import{Writable as ndt}from"stream";import{callbackify as OTe}from"util";var ITe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=n9(t,r,e),o=new ndt({...i9(n,t,i),destroy:OTe(o9.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return s9(n,o),o},n9=(t,e,r)=>{let n=gD(t,e),i=BT(r,n,"writableFinal"),s=BT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},i9=(t,e,r)=>({write:idt.bind(void 0,t),final:OTe(sdt.bind(void 0,t,e,r))}),idt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},sdt=async(t,e,r)=>{await F_(r,e)&&(t.writable&&t.end(),await e)},s9=async(t,e,r)=>{try{await ZY(t),e.writable&&e.end()}catch(n){await ATe(r),PTe(e,n)}},o9=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await F_(r,e),await F_(n,e)&&(PTe(t,i),await eM(e,i))},PTe=(t,e)=>{tM(t,t.writable,e)};import{Duplex as odt}from"stream";import{callbackify as adt}from"util";var CTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ts.has(r),{subprocessStdout:c,waitReadableDestroy:u}=QY(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=n9(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=XY(c,a),{read:_,onStdoutDataDone:S}=e9({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),b=new odt({read:_,...i9(l,t,d),destroy:adt(cdt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return t9({subprocessStdout:c,onStdoutDataDone:S,readable:b,subprocess:t,subprocessStdin:l}),s9(l,b,c),b},cdt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([r9({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),o9({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var a9=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||ts.has(e),o=C_(t,r),a=QD({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return udt(a,o,t)},udt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var kTe=(t,{encoding:e})=>{let r=wTe();t.readable=RTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=ITe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=CTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=a9.bind(void 0,t,e),t[Symbol.asyncIterator]=a9.bind(void 0,t,e,{})};var NTe=(t,e)=>{for(let[r,n]of ddt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},ldt=(async()=>{})().constructor.prototype,ddt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(ldt,t)]);var DTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=hdt(t,e,r),{subprocess:f,promise:p}=gdt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=JD.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),NTe(f,p),Wa.set(f,{options:l,fileDescriptors:d}),f},hdt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=aD(t,e,r),{file:a,commandArguments:c,options:u}=xD(t,e,r),l=mdt(u),d=Gwe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},mdt=({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}},gdt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=pdt(...OD(t,e,r))}catch(h){return jwe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;fdt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];eTe(c,a,u),rTe(c,r,u);let d={},f=Ha();c.kill=gEe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=gTe(c,r),kTe(c,r),Uwe(c,r);let p=_dt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},_dt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,_]=await bTe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let S=h.map((y,v)=>uu(y,e,v)),b=uu(m,e,"all"),R=ydt({errorInfo:d,exitCode:f,signal:p,stdio:S,all:b,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return $_(R,n,e)},ydt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?LT({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ka,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):$D({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var rM=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,Sdt(n,t[n],i)]));return{...t,...r}},Sdt=(t,e,r)=>vdt.has(t)&&Sr(e)&&Sr(r)?{...e,...r}:r,vdt=new Set(["env",...LK]);var Vl=(t,e,r,n)=>{let i=(o,a,c)=>Vl(o,a,r,c),s=(...o)=>Edt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},Edt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Sr(s))return i(t,rM(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=bdt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?kwe(a,c,u):DTe(a,c,u,i)},bdt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=GSe(e)?HSe(e,r):[e,...r],[o,a,c]=ZN(...s),u=rM(rM(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var MTe=({file:t,commandArguments:e})=>LTe(t,e),$Te=({file:t,commandArguments:e})=>({...LTe(t,e),isSync:!0}),LTe=(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]=wdt(t);return{file:r,commandArguments:n}},wdt=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(Tdt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Tdt=/ +/g;var UTe=(t,e,r)=>{t.sync=e(Adt,r),t.s=t.sync},FTe=({options:t})=>zTe(t),Adt=({options:t})=>({...zTe(t),isSync:!0}),zTe=t=>({options:{...Rdt(t),...t}}),Rdt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},jTe={preferLocal:!0};var qTe=Vl(()=>({})),$ar=Vl(()=>({isSync:!0})),BTe=Vl(MTe),Lar=Vl($Te),Uar=Vl(XEe),Far=Vl(FTe,{},jTe,UTe),{sendMessage:zar,getOneMessage:jar,getEachMessage:qar,getCancelSignal:Bar}=Fwe();var VTe=!1,GTe,xdt=t=>{GTe??=t},HTe=t=>{VTe=!0,xdt(t)},Mn=()=>VTe,lu=()=>GTe,WTe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var VT=null,KTe=t=>(VT&&VT.destroy(),VT=new Us({totalAllowedTime:t}),VT),YTe=()=>VT;var Us=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&&Mn())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await UC({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{Y.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var ZTe={name:"@netlify/agent-runner-cli",type:"module",version:"1.200.2-bug.6",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.21.0","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.295","@anthropic-ai/sdk":"^0.128.0","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var Cdt=Idt(import.meta.url),kdt=du.dirname(Cdt),Ndt=Pdt(import.meta.url),z_=re("shell"),c9=new Set,JTe={preferLocal:!0},_t=(t,e,r)=>{let[n,i]=Ddt(e,r),s={...JTe,...i},o=qTe(t,n,s);XTe(o,s),rAe(o);let a=r?.idleTimeout;return a&&a>0&&tAe(o,a),o},QTe=(t,e)=>{let r={...JTe,...e},n=BTe(t,r);return XTe(n,r),rAe(n),e?.idleTimeout&&e.idleTimeout>0&&tAe(n,e.idleTimeout),n},Ddt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},XTe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Za.env.NETLIFY_LOCAL_QUIET==="true")return;if(Za.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Nb).pipe(Za.stdout),t.stderr?.pipe(new Nb).pipe(Za.stderr);return}t.stdout?.pipe(Za.stdout),t.stderr?.pipe(Za.stderr)},u9=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Za.kill(-t.pid,e),z_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return z_.error("Error killing process:",r),!1}},eAe=t=>u9(t,"SIGKILL"),tAe=(t,e)=>{let r=null,n=()=>{z_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),u9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(z_.log(`Force killing idle process ${t.pid}`),eAe(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)},rAe=t=>{c9.add(t);let e=YTe();if(e){let r=e.onTimesUp(()=>{z_.log(`Global timer expired, killing process ${t.pid}`),u9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(z_.log(`Force killing process ${t.pid} after timeout`),eAe(t))},5e3)});t.on("exit",()=>{c9.delete(t),r()}),t.on("error",()=>{c9.delete(t),r()})}};function iM(t,e){return!!Jo(t,e)}function Jo(t,e){if(!Za.env.NETLIFY_LOCAL_MODE)try{let i=Ndt.resolve(ZTe.name),s=du.dirname(i);for(;s!==du.dirname(s);){let o=du.dirname(s);if(du.basename(o)==="node_modules"){let a=du.join(o,".bin",e);if(nM.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Za.env.NODE_PATH){let i=du.join(Za.env.NODE_PATH,".bin",e);if(nM.existsSync(i))return i}let r=du.join(t,"node_modules",".bin",e);if(nM.existsSync(r))return r;let n=du.join(kdt,"..","node_modules",".bin",e);if(nM.existsSync(n))return n}var nAe=re("repo"),cAe="runner-diffs-",l9=t=>`${cAe}${t}-`,uAe=async t=>{let e=oM.tmpdir(),r;try{r=await si.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(cAe)&&!n.startsWith(l9(t))).map(n=>si.rm(Fs.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},iAe=async t=>{let e=Mdt("sha256");for await(let r of $dt(t))e.update(r);return e.digest("hex")},sAe=async(t,e)=>t.size===e.size&&await iAe(t.path)===await iAe(e.path),lAe=/.. (.+)?\.log$/,Ldt=[lAe],Udt=1,oAe=t=>{let e=t.split(`
|
|
388
|
+
if (condition) { yield value; }`)};import{Buffer as Gct}from"buffer";import{StringDecoder as Hct}from"string_decoder";var qD=(t,e,r)=>{if(r)return;if(t)return{transform:Wct.bind(void 0,new TextEncoder)};let n=new Hct(e);return{transform:Kct.bind(void 0,n),final:Yct.bind(void 0,n)}},Wct=function*(t,e){Gct.isBuffer(e)?yield ou(e):typeof e=="string"?yield t.encode(e):yield e},Kct=function*(t,e){yield zr(e)?t.write(e):e},Yct=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as gwe}from"util";var AY=gwe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),BD=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Jct}=e[r];for await(let i of n(t))yield*BD(i,e,r+1)},_we=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Zct(r,Number(e),t)},Zct=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*BD(n,r,e+1)},ywe=gwe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),Jct=function*(t){yield t};var RY=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},Swe=(t,e)=>[...e.flatMap(r=>[...wp(r,t,0)]),...UT(t)],wp=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=Xct}=e[r];for(let i of n(t))yield*wp(i,e,r+1)},UT=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*Qct(r,Number(e),t)},Qct=function*(t,e,r){if(t!==void 0)for(let n of t())yield*wp(n,r,e+1)},Xct=function*(t){yield t};var xY=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=Ewe(t,o,s),u=bp(e),l=bp(r),d=u?AY.bind(void 0,BD,a):RY.bind(void 0,wp),f=u||l?AY.bind(void 0,_we,a):RY.bind(void 0,UT),p=u||l?ywe.bind(void 0,a):void 0;return{stream:new eut({writableObjectMode:n,writableHighWaterMark:vwe(n),readableObjectMode:i,readableHighWaterMark:vwe(i),transform(m,_,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},VD=(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=Ewe(o,r,a);t=Swe(c,t)}return t},Ewe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:pwe(n,a)},qD(r,o,n),jD(r,s,n,c),{transform:t,final:e},{transform:hwe(i,a)},fwe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var bwe=(t,e)=>{for(let r of tut(t))rut(t,r,e)},tut=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),rut=(t,e,r)=>{let{stdioItems:n}=t[e],i=n.filter(({contents:a})=>a!==void 0);if(i.length===0)return;if(e!==0){let[{type:a,optionName:c}]=i;throw new TypeError(`Only the \`stdin\` option, not \`${c}\`, can be ${Bl[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>nut(a,n));r.input=OT(o)},nut=(t,e)=>{let r=VD(t,e,"utf8",!0);return iut(r),OT(r)},iut=t=>{let e=t.find(r=>typeof r!="string"&&!zr(r));if(e!==void 0)throw new TypeError(`The \`stdin\` option is invalid: when passing objects as input, a transform must be used to serialize them to strings or Uint8Arrays: ${e}.`)};import{writeFileSync as cut,appendFileSync as uut}from"fs";var GD=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&R_(r,n)&&!ts.has(e)&&sut(n)&&(t.some(({type:i,value:s})=>i==="native"&&out.has(s))||t.every(({type:i})=>Ls.has(i))),sut=t=>t===1||t===2,out=new Set(["pipe","overlapped"]),wwe=async(t,e,r,n)=>{for await(let i of t)aut(e)||Awe(i,r,n)},Twe=(t,e,r)=>{for(let n of t)Awe(n,e,r)},aut=t=>t._readableState.pipes.length>0,Awe=(t,e,r)=>{let n=sD(t);Ga({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,u)=>lut({result:c,fileDescriptors:t,fdNumber:u,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},lut=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:u,stripFinalNewline:l,maxBuffer:d})=>{if(t===null)return;let f=xbe(t,s,d),p=ou(f),{stdioItems:h,objectMode:m}=e[r],_=dut([p],h,c,n),{serializedResult:S,finalResult:b=S}=fut({chunks:_,objectMode:m,encoding:c,lines:u,stripFinalNewline:l,fdNumber:r});put({serializedResult:S,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let R=a[r]?b:void 0;try{return n.error===void 0&&hut(S,h,i),R}catch(y){return n.error=y,R}},dut=(t,e,r,n)=>{try{return VD(t,e,r,!1)}catch(i){return n.error=i,t}},fut=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:OT(t)};let o=jSe(t,r);return n[s]?{serializedResult:o,finalResult:TY(o,!i[s],e)}:{serializedResult:o}},put=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!GD({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=TY(t,!1,o);try{Twe(a,e,n)}catch(c){r.error??=c}},hut=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>FD.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?uut(n,t):(r.add(s),cut(n,t))}};var xwe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,uu(e,r,"all")]:Array.isArray(e)?[uu(t,r,"all"),...e]:zr(t)&&zr(e)?NK([t,e]):`${t}${e}`};import{once as OY}from"events";var Owe=async(t,e)=>{let[r,n]=await mut(t);return e.isForcefullyTerminated??=!1,[r,n]},mut=async t=>{let[e,r]=await Promise.allSettled([OY(t,"spawn"),OY(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?Iwe(t):r.value},Iwe=async t=>{try{return await OY(t,"exit")}catch{return Iwe(t)}},Pwe=async t=>{let[e,r]=await t;if(!gut(e,r)&&IY(e,r))throw new Ko;return[e,r]},gut=(t,e)=>t===void 0&&e===void 0,IY=(t,e)=>t!==0||e!==null;var Cwe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=_ut(t,e,r),o=s?.code==="ETIMEDOUT",a=Rbe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},_ut=(t,e,r)=>t!==void 0?t:IY(e,r)?new Ko:void 0;var kwe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:u,fileDescriptors:l}=Sut(t,e,r),d=but({file:n,commandArguments:i,options:u,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:l,startTime:a});return $_(d,c,u)},Sut=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=aD(t,e,r),a=vut(r),{file:c,commandArguments:u,options:l}=xD(t,e,a);Eut(l);let d=cwe(l,o);return{file:c,commandArguments:u,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},vut=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,Eut=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&HD("ipcInput"),t&&HD("ipc: true"),r&&HD("detached: true"),n&&HD("cancelSignal")},HD=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},but=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=wut({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:u,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p}=Cwe(c,r),{output:h,error:m=u}=Rwe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((b,R)=>uu(b,r,R)),S=uu(xwe(h,r),r,"all");return Aut({error:m,exitCode:l,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:S,options:r,command:n,escapedCommand:i,startTime:a})},wut=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{bwe(s,r);let a=Tut(r);return yut(...OD(t,e,a))}catch(a){return M_({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},Tut=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:MD(e)}),Aut=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:u,startTime:l})=>t===void 0?$D({command:c,escapedCommand:u,stdio:s,all:o,ipcOutput:[],options:a,startTime:l}):LT({error:t,command:c,escapedCommand:u,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:l,isSync:!0});import{setMaxListeners as fdt}from"events";import{spawn as pdt}from"child_process";import Lwe from"process";import{once as PY,on as Rut}from"events";var Nwe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(I_({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:ED(t)}),xut({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),xut=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{_D(e,i);let s=ql(t,e,r),o=new AbortController;try{return await Promise.race([Out(s,n,o),Iut(s,r,o),Put(s,r,o)])}catch(a){throw P_(t),a}finally{o.abort(),yD(e,i)}},Out=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await PY(t,"message",{signal:r});return n}for await(let[n]of Rut(t,"message",{signal:r}))if(e(n))return n},Iut=async(t,e,{signal:r})=>{await PY(t,"disconnect",{signal:r}),SEe(e)},Put=async(t,e,{signal:r})=>{let[n]=await PY(t,"strict:error",{signal:r});throw hD(n,e)};import{once as Mwe,on as Cut}from"events";var $we=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>CY({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),CY=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{I_({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:ED(t)}),_D(e,s);let o=ql(t,e,r),a=new AbortController,c={};return kut(t,o,a),Nut({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),Dut({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},kut=async(t,e,r)=>{try{await Mwe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},Nut=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await Mwe(t,"strict:error",{signal:r.signal});n.error=hD(i,e),r.abort()}catch{}},Dut=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of Cut(r,"message",{signal:s.signal}))Dwe(o),yield c}catch{Dwe(o)}finally{s.abort(),yD(e,a),n||P_(t),i&&await t}},Dwe=({error:t})=>{if(t)throw t};var Uwe=(t,{ipc:e})=>{Object.assign(t,zwe(t,!1,e))},Fwe=()=>{let t=Lwe,e=!0,r=Lwe.channel!==void 0;return{...zwe(t,e,r),getCancelSignal:HEe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},zwe=(t,e,r)=>({sendMessage:AD.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:Nwe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:$we.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as Mut}from"child_process";import{PassThrough as $ut,Readable as Lut,Writable as Uut,Duplex as Fut}from"stream";var jwe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{EY(n);let a=new Mut;zut(a,n),Object.assign(a,{readable:jut,writable:qut,duplex:But});let c=M_({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),u=Vut(c,o,i);return{subprocess:a,promise:u}},zut=(t,e)=>{let r=FT(),n=FT(),i=FT(),s=Array.from({length:e.length-3},FT),o=FT(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},FT=()=>{let t=new $ut;return t.end(),t},jut=()=>new Lut({read(){}}),qut=()=>new Uut({write(){}}),But=()=>new Fut({read(){},write(){}}),Vut=async(t,e,r)=>$_(t,e,r);import{createReadStream as qwe,createWriteStream as Bwe}from"fs";import{Buffer as Gut}from"buffer";import{Readable as zT,Writable as Hut,Duplex as Wut}from"stream";var Gwe=(t,e)=>zD(Kut,t,e,!1),jT=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${Bl[t]}.`)},Vwe={fileNumber:jT,generator:xY,asyncGenerator:xY,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:Wut.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},Kut={input:{...Vwe,fileUrl:({value:t})=>({stream:qwe(t)}),filePath:({value:{file:t}})=>({stream:qwe(t)}),webStream:({value:t})=>({stream:zT.fromWeb(t)}),iterable:({value:t})=>({stream:zT.from(t)}),asyncIterable:({value:t})=>({stream:zT.from(t)}),string:({value:t})=>({stream:zT.from(t)}),uint8Array:({value:t})=>({stream:zT.from(Gut.from(t))})},output:{...Vwe,fileUrl:({value:t})=>({stream:Bwe(t)}),filePath:({value:{file:t,append:e}})=>({stream:Bwe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:Hut.fromWeb(t)}),iterable:jT,asyncIterable:jT,string:jT,uint8Array:jT}};import{on as Yut,once as Hwe}from"events";import{PassThrough as Zut,getDefaultHighWaterMark as Jut}from"stream";import{finished as Ywe}from"stream/promises";function Tp(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)NY(i);let e=t.some(({readableObjectMode:i})=>i),r=Qut(t,e),n=new kY({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var Qut=(t,e)=>{if(t.length===0)return Jut(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},kY=class extends Zut{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(NY(e),this.#e.has(e))return;this.#e.add(e),this.#n??=Xut(this,this.#e,this.#s);let r=rlt({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(NY(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)}},Xut=async(t,e,r)=>{WD(t,Wwe);let n=new AbortController;try{await Promise.race([elt(t,n),tlt(t,e,r,n)])}finally{n.abort(),WD(t,-Wwe)}},elt=async(t,{signal:e})=>{try{await Ywe(t,{signal:e,cleanup:!0})}catch(r){throw Zwe(t,r),r}},tlt=async(t,e,r,{signal:n})=>{for await(let[i]of Yut(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},NY=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},rlt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{WD(t,Kwe);let a=new AbortController;try{await Promise.race([nlt(s,e,a),ilt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),slt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),WD(t,-Kwe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?DY(t):olt(t))},nlt=async(t,e,{signal:r})=>{try{await t,r.aborted||DY(e)}catch(n){r.aborted||Zwe(e,n)}},ilt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await Ywe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;Jwe(o)?i.add(e):Qwe(t,o)}},slt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await Hwe(t,i,{signal:s}),!t.readable)return Hwe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},olt=t=>{t.writable&&t.end()},Zwe=(t,e)=>{Jwe(e)?DY(t):Qwe(t,e)},Jwe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",DY=t=>{(t.readable||t.writable)&&t.destroy()},Qwe=(t,e)=>{t.destroyed||(t.once("error",alt),t.destroy(e))},alt=()=>{},WD=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},Wwe=2,Kwe=1;import{finished as Xwe}from"stream/promises";var U_=(t,e)=>{t.pipe(e),clt(t,e),ult(t,e)},clt=async(t,e)=>{if(!(Wo(t)||Wo(e))){try{await Xwe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}MY(e)}},MY=t=>{t.writable&&t.end()},ult=async(t,e)=>{if(!(Wo(t)||Wo(e))){try{await Xwe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}$Y(t)}},$Y=t=>{t.readable&&t.destroy()};var eTe=(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})=>Ls.has(c)))llt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!Ls.has(c)))flt({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]:Tp(s);U_(o,i)}},llt=(t,e,r,n)=>{r==="output"?U_(t.stdio[n],e):U_(e,t.stdio[n]);let i=dlt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},dlt=["stdin","stdout","stderr"],flt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;plt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},plt=(t,{signal:e})=>{Wo(t)&&vp(t,hlt,e)},hlt=2;import{addAbortListener as _lt}from"events";var Ap=[];Ap.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Ap.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Ap.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var KD=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",LY=Symbol.for("signal-exit emitter"),UY=globalThis,mlt=Object.defineProperty.bind(Object),FY=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(UY[LY])return UY[LY];mlt(UY,LY,{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}},YD=class{},glt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),zY=class extends YD{onExit(){return()=>{}}load(){}unload(){}},jY=class extends YD{#e=qY.platform==="win32"?"SIGINT":"SIGHUP";#r=new FY;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Ap)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(!KD(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 Ap)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,Ap.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 KD(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"&&KD(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)}},qY=globalThis.process,{onExit:tTe,load:Vir,unload:Gir}=glt(KD(qY)?new jY(qY):new zY);var rTe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=tTe(()=>{t.kill()});_lt(n,()=>{i()})};var iTe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=oD(),{destination:o,destinationStream:a,destinationError:c,from:u,unpipeSignal:l}=ylt(r,n,i),{sourceStream:d,sourceError:f}=vlt(t,u),{options:p,fileDescriptors:h}=Wa.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:l,fileDescriptors:h,startTime:s}},ylt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=Slt(t,e,...r),a=gD(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},Slt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(nTe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||CK(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]=ZN(r,...n);return{destination:e(nTe)(i,s,o),pipeOptions:o}}if(Wa.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},nTe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),vlt=(t,e)=>{try{return{sourceStream:C_(t,e)}}catch(r){return{sourceError:r}}};var oTe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=Elt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw BY({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},Elt=({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 MY(r),e},BY=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>M_({error:t,command:sTe,escapedCommand:sTe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),sTe="source.pipe(destination)";var aTe=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 blt}from"stream/promises";var cTe=(t,e,r)=>{let n=ZD.has(e)?Tlt(t,e):wlt(t,e);return vp(t,Rlt,r.signal),vp(e,xlt,r.signal),Alt(e),n},wlt=(t,e)=>{let r=Tp([t]);return U_(r,e),ZD.set(e,r),r},Tlt=(t,e)=>{let r=ZD.get(e);return r.add(t),r},Alt=async t=>{try{await blt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}ZD.delete(t)},ZD=new WeakMap,Rlt=2,xlt=1;import{aborted as Olt}from"util";var uTe=(t,e)=>t===void 0?[]:[Ilt(t,e)],Ilt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await Olt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw BY({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var JD=(t,...e)=>{if(Sr(e[0]))return JD.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=iTe(t,...e),i=Plt({...n,destination:r});return i.pipe=JD.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},Plt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:u})=>{let l=Clt(t,i);oTe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:u});let d=new AbortController;try{let f=cTe(e,s,d);return await Promise.race([aTe(l),...uTe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:u})])}finally{d.abort()}},Clt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as Ult}from"timers/promises";import{on as klt}from"events";import{getDefaultHighWaterMark as Nlt}from"stream";var QD=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return Dlt(e,o),dTe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},Dlt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},VY=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;Mlt(e,o,t);let a=t.readableObjectMode&&!s;return dTe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},Mlt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},dTe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=klt(t,"data",{signal:e.signal,highWaterMark:lTe,highWatermark:lTe});return $lt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},GY=Nlt(!0),lTe=GY,$lt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=Llt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*wp(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*UT(a)}},Llt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[qD(t,r,!e),jD(t,i,!n,{})].filter(Boolean);var fTe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:u,streamInfo:l})=>{let d=Flt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:u,streamInfo:l});if(!i){await Promise.all([zlt(t),d]);return}let f=bY(c,r),p=VY({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([jlt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},Flt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!GD({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=VY({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await wwe(a,t,r,s)},zlt=async t=>{await Ult(),t.readableFlowing===null&&t.resume()},jlt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await kD(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await ND(r,{maxBuffer:s})):await D_(r,{maxBuffer:s})}catch(a){return pTe(wbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},HY=async t=>{try{return await t}catch(e){return pTe(e)}},pTe=({bufferedData:t})=>FSe(t)?new Uint8Array(t):t;import{finished as qlt}from"stream/promises";var qT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=Blt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],qlt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||Hlt(a,e,r,n)}finally{o.abort()}},Blt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&Vlt(t,r,n),n},Vlt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{Glt(e,r),n.call(t,...i)}},Glt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},Hlt=(t,e,r,n)=>{if(!Wlt(t,e,r,n))throw t},Wlt=(t,e,r,n=!0)=>r.propagating?hTe(t)||XD(t):(r.propagating=!0,WY(r,e)===n?hTe(t):XD(t)),WY=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",XD=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",hTe=t=>t?.code==="EPIPE";var mTe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,u)=>KY({stream:c,fdNumber:u,encoding:e,buffer:r[u],maxBuffer:n[u],lines:i[u],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),KY=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u})=>{if(!t)return;let l=qT(t,e,u);if(WY(u,e)){await l;return}let[d]=await Promise.all([fTe({stream:t,onStreamEnd:l,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:u}),l]);return d};var gTe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?Tp([t,e].filter(Boolean)):void 0,_Te=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>KY({...Klt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:Ylt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),Klt=({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}},Ylt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as Zlt}from"events";var yTe=t=>R_(t,"ipc"),STe=(t,e)=>{let r=sD(t);Ga({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var vTe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=yTe(s),a=au(e,"ipc"),c=au(r,"ipc");for await(let u of CY({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(Tbe(t,i,c),i.push(u)),o&&STe(u,s);return i},ETe=async(t,e)=>(await Promise.allSettled([t]),e);var bTe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:u,ipc:l,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:S})=>{let b=Owe(t,f),R={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:b,propagating:!1},y=mTe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:R}),v=_Te({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:u,verboseInfo:p,streamInfo:R}),w=[],O=vTe({subprocess:t,buffer:r,maxBuffer:n,ipc:l,ipcOutput:w,verboseInfo:p}),P=Jlt(m,t,R),C=Qlt(h,R);try{return await Promise.race([Promise.all([{},Pwe(b),Promise.all(y),v,O,rbe(t,d),...P,...C]),_,Xlt(t,S),...JEe(t,s,f,S),...yEe({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:S}),...YEe({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(k){return f.terminationReason??="other",Promise.all([{error:k},b,Promise.all(y.map(T=>HY(T))),HY(v),ETe(O,w),Promise.allSettled(P),Promise.allSettled(C)])}},Jlt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:qT(n,i,r)),Qlt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>Zo(s,{checkOpen:!1})&&!Wo(s)).map(({type:i,value:s,stream:o=s})=>qT(o,n,e,{isSameDirection:Ls.has(i),stopOnExit:i==="native"}))),Xlt=async(t,{signal:e})=>{let[r]=await Zlt(t,"error",{signal:e});throw r};var wTe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),BT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=Ha();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},F_=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 edt}from"stream";import{callbackify as tdt}from"util";import{finished as TTe}from"stream/promises";var YY=async t=>{if(t!==void 0)try{await ZY(t)}catch{}},ATe=async t=>{if(t!==void 0)try{await JY(t)}catch{}},ZY=async t=>{await TTe(t,{cleanup:!0,readable:!1,writable:!0})},JY=async t=>{await TTe(t,{cleanup:!0,readable:!0,writable:!1})},eM=async(t,e)=>{if(await t,e)throw e},tM=(t,e,r)=>{r&&!XD(r)?t.destroy(r):e&&t.destroy()};var RTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||ts.has(r),{subprocessStdout:a,waitReadableDestroy:c}=QY(t,n,e),{readableEncoding:u,readableObjectMode:l,readableHighWaterMark:d}=XY(a,o),{read:f,onStdoutDataDone:p}=e9({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new edt({read:f,destroy:tdt(r9.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:l,encoding:u});return t9({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},QY=(t,e,r)=>{let n=C_(t,e),i=BT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},XY=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:GY},e9=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=Ha(),o=QD({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){rdt(this,o,s)},onStdoutDataDone:s}},rdt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},t9=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await JY(t),await n,await YY(i),await e,r.readable&&r.push(null)}catch(s){await YY(i),xTe(r,s)}},r9=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await F_(r,e)&&(xTe(t,n),await eM(e,n))},xTe=(t,e)=>{tM(t,t.readable,e)};import{Writable as ndt}from"stream";import{callbackify as OTe}from"util";var ITe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=n9(t,r,e),o=new ndt({...i9(n,t,i),destroy:OTe(o9.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return s9(n,o),o},n9=(t,e,r)=>{let n=gD(t,e),i=BT(r,n,"writableFinal"),s=BT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},i9=(t,e,r)=>({write:idt.bind(void 0,t),final:OTe(sdt.bind(void 0,t,e,r))}),idt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},sdt=async(t,e,r)=>{await F_(r,e)&&(t.writable&&t.end(),await e)},s9=async(t,e,r)=>{try{await ZY(t),e.writable&&e.end()}catch(n){await ATe(r),PTe(e,n)}},o9=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await F_(r,e),await F_(n,e)&&(PTe(t,i),await eM(e,i))},PTe=(t,e)=>{tM(t,t.writable,e)};import{Duplex as odt}from"stream";import{callbackify as adt}from"util";var CTe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||ts.has(r),{subprocessStdout:c,waitReadableDestroy:u}=QY(t,n,e),{subprocessStdin:l,waitWritableFinal:d,waitWritableDestroy:f}=n9(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=XY(c,a),{read:_,onStdoutDataDone:S}=e9({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),b=new odt({read:_,...i9(l,t,d),destroy:adt(cdt.bind(void 0,{subprocessStdout:c,subprocessStdin:l,subprocess:t,waitReadableDestroy:u,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:l.writableHighWaterMark,readableObjectMode:h,writableObjectMode:l.writableObjectMode,encoding:p});return t9({subprocessStdout:c,onStdoutDataDone:S,readable:b,subprocess:t,subprocessStdin:l}),s9(l,b,c),b},cdt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([r9({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),o9({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var a9=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||ts.has(e),o=C_(t,r),a=QD({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return udt(a,o,t)},udt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var kTe=(t,{encoding:e})=>{let r=wTe();t.readable=RTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=ITe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=CTe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=a9.bind(void 0,t,e),t[Symbol.asyncIterator]=a9.bind(void 0,t,e,{})};var NTe=(t,e)=>{for(let[r,n]of ddt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},ldt=(async()=>{})().constructor.prototype,ddt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(ldt,t)]);var DTe=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:u,options:l,fileDescriptors:d}=hdt(t,e,r),{subprocess:f,promise:p}=gdt({file:i,commandArguments:s,options:l,startTime:c,verboseInfo:u,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=JD.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),NTe(f,p),Wa.set(f,{options:l,fileDescriptors:d}),f},hdt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=aD(t,e,r),{file:a,commandArguments:c,options:u}=xD(t,e,r),l=mdt(u),d=Gwe(l,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:l,fileDescriptors:d}},mdt=({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}},gdt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=pdt(...OD(t,e,r))}catch(h){return jwe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let u=new AbortController;fdt(Number.POSITIVE_INFINITY,u.signal);let l=[...c.stdio];eTe(c,a,u),rTe(c,r,u);let d={},f=Ha();c.kill=gEe.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:u}),c.all=gTe(c,r),kTe(c,r),Uwe(c,r);let p=_dt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:l,command:s,escapedCommand:o,context:d,onInternalError:f,controller:u});return{subprocess:c,promise:p}},_dt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:u,controller:l})=>{let[d,[f,p],h,m,_]=await bTe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:u,controller:l});l.abort(),u.resolve();let S=h.map((y,v)=>uu(y,e,v)),b=uu(m,e,"all"),R=ydt({errorInfo:d,exitCode:f,signal:p,stdio:S,all:b,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return $_(R,n,e)},ydt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:u,startTime:l})=>"error"in t?LT({error:t.error,command:c,escapedCommand:u,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof Ka,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:l,isSync:!1}):$D({command:c,escapedCommand:u,stdio:n,all:i,ipcOutput:s,options:a,startTime:l});var rM=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,Sdt(n,t[n],i)]));return{...t,...r}},Sdt=(t,e,r)=>vdt.has(t)&&Sr(e)&&Sr(r)?{...e,...r}:r,vdt=new Set(["env",...LK]);var Vl=(t,e,r,n)=>{let i=(o,a,c)=>Vl(o,a,r,c),s=(...o)=>Edt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},Edt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(Sr(s))return i(t,rM(r,s),n);let{file:a,commandArguments:c,options:u,isSync:l}=bdt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return l?kwe(a,c,u):DTe(a,c,u,i)},bdt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=GSe(e)?HSe(e,r):[e,...r],[o,a,c]=ZN(...s),u=rM(rM(n,i),c),{file:l=o,commandArguments:d=a,options:f=u,isSync:p=!1}=t({file:o,commandArguments:a,options:u});return{file:l,commandArguments:d,options:f,isSync:p}};var MTe=({file:t,commandArguments:e})=>LTe(t,e),$Te=({file:t,commandArguments:e})=>({...LTe(t,e),isSync:!0}),LTe=(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]=wdt(t);return{file:r,commandArguments:n}},wdt=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(Tdt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Tdt=/ +/g;var UTe=(t,e,r)=>{t.sync=e(Adt,r),t.s=t.sync},FTe=({options:t})=>zTe(t),Adt=({options:t})=>({...zTe(t),isSync:!0}),zTe=t=>({options:{...Rdt(t),...t}}),Rdt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},jTe={preferLocal:!0};var qTe=Vl(()=>({})),$ar=Vl(()=>({isSync:!0})),BTe=Vl(MTe),Lar=Vl($Te),Uar=Vl(XEe),Far=Vl(FTe,{},jTe,UTe),{sendMessage:zar,getOneMessage:jar,getEachMessage:qar,getCancelSignal:Bar}=Fwe();var VTe=!1,GTe,xdt=t=>{GTe??=t},HTe=t=>{VTe=!0,xdt(t)},Mn=()=>VTe,lu=()=>GTe,WTe=t=>{switch(t){case"SIGTERM":case"SIGINT":return t;case void 0:return"interrupted";default:return}};var VT=null,KTe=t=>(VT&&VT.destroy(),VT=new Us({totalAllowedTime:t}),VT),YTe=()=>VT;var Us=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&&Mn())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((l,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),u="success";try{return await UC({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(l){throw u="failure",l}finally{Y.timing("stage.duration",Date.now()-c,{stage:e,outcome:u}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var ZTe={name:"@netlify/agent-runner-cli",type:"module",version:"1.200.2-bug.8",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{prebuild:"rm -rf dist",build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:opencode":"vitest run test/integration/opencode.test.ts","test:integration:muse":"vitest run test/integration/muse.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},engines:{node:">=22"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.21.0","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.295","@anthropic-ai/sdk":"^0.134.0","@google/gemini-cli":"0.63.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.2.2","@netlify/otel":"^6.0.6","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.162.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.12.5",minimist:"^1.2.8",openai:"7.31.0",zod:"^4.4.3"}};var Cdt=Idt(import.meta.url),kdt=du.dirname(Cdt),Ndt=Pdt(import.meta.url),z_=re("shell"),c9=new Set,JTe={preferLocal:!0},_t=(t,e,r)=>{let[n,i]=Ddt(e,r),s={...JTe,...i},o=qTe(t,n,s);XTe(o,s),rAe(o);let a=r?.idleTimeout;return a&&a>0&&tAe(o,a),o},QTe=(t,e)=>{let r={...JTe,...e},n=BTe(t,r);return XTe(n,r),rAe(n),e?.idleTimeout&&e.idleTimeout>0&&tAe(n,e.idleTimeout),n},Ddt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},XTe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0||Za.env.NETLIFY_LOCAL_QUIET==="true")return;if(Za.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new Nb).pipe(Za.stdout),t.stderr?.pipe(new Nb).pipe(Za.stderr);return}t.stdout?.pipe(Za.stdout),t.stderr?.pipe(Za.stderr)},u9=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Za.kill(-t.pid,e),z_.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return z_.error("Error killing process:",r),!1}},eAe=t=>u9(t,"SIGKILL"),tAe=(t,e)=>{let r=null,n=()=>{z_.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),u9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(z_.log(`Force killing idle process ${t.pid}`),eAe(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)},rAe=t=>{c9.add(t);let e=YTe();if(e){let r=e.onTimesUp(()=>{z_.log(`Global timer expired, killing process ${t.pid}`),u9(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(z_.log(`Force killing process ${t.pid} after timeout`),eAe(t))},5e3)});t.on("exit",()=>{c9.delete(t),r()}),t.on("error",()=>{c9.delete(t),r()})}};function iM(t,e){return!!Jo(t,e)}function Jo(t,e){if(!Za.env.NETLIFY_LOCAL_MODE)try{let i=Ndt.resolve(ZTe.name),s=du.dirname(i);for(;s!==du.dirname(s);){let o=du.dirname(s);if(du.basename(o)==="node_modules"){let a=du.join(o,".bin",e);if(nM.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Za.env.NODE_PATH){let i=du.join(Za.env.NODE_PATH,".bin",e);if(nM.existsSync(i))return i}let r=du.join(t,"node_modules",".bin",e);if(nM.existsSync(r))return r;let n=du.join(kdt,"..","node_modules",".bin",e);if(nM.existsSync(n))return n}var nAe=re("repo"),cAe="runner-diffs-",l9=t=>`${cAe}${t}-`,uAe=async t=>{let e=oM.tmpdir(),r;try{r=await si.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(cAe)&&!n.startsWith(l9(t))).map(n=>si.rm(Fs.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},iAe=async t=>{let e=Mdt("sha256");for await(let r of $dt(t))e.update(r);return e.digest("hex")},sAe=async(t,e)=>t.size===e.size&&await iAe(t.path)===await iAe(e.path),lAe=/.. (.+)?\.log$/,Ldt=[lAe],Udt=1,oAe=t=>{let e=t.split(`
|
|
389
389
|
`).reduce((r,n)=>{if(!n)return r;let[i,s,,...o]=n,a=o.join(""),c=i.trim(),u=s.trim();return r[a]?r[a].change=u:r[a]={filePath:a,stage:c,change:u},r},{});return Object.values(e)},Fdt=t=>t instanceof Error&&String(t.stderr??"").includes("No such remote"),zdt=t=>{let e=t instanceof Error?t.message:String(t),r=String(t?.stderr??"").trim();return bi(r?`${e}: ${r}`:e)},aAe={stdin:"pipe",stdout:"pipe",stderr:"pipe",stripFinalNewline:!1},sM=500,GT=class extends Error{constructor(r,n){super(n instanceof Error?n.message:String(n));this.step=r;this.cause=n}},$n=class{constructor(e=process.cwd()){this.cwd=e}getRoot(){return this.root??=this.run(["rev-parse","--show-toplevel"],{stdout:"pipe"}).then(({stdout:e})=>String(e).trim()),this.root}async restorePausedWork(e){let r="restore";try{let n=await this.restorePausedFiles(e);r="stage",await this.stageBuildSetup();let i=await this.getRoot(),s=new Set(n.changedFiles),o=(await this.listIndexEntries(n.deletedFiles,{cwd:i})).filter(({filePath:a})=>!s.has(a));return await this.unstageFiles(n.changedFiles,{cwd:i}),o.length>0&&await si.writeFile(await this.getSetupMetadataPath(),JSON.stringify(o)),{rewrittenFileCount:n.rewrittenFileCount}}catch(n){throw new GT(r,n)}}run(e,r={}){return _t("git",e,{cwd:this.cwd,...r,env:{...r.env,NETLIFY_INTERNAL_GIT:"1"}})}async commitAndCreateDiffs({config:e,isRetry:r}){nAe.info("Getting runner diffs");let n=await this.hasAgentChanges(),{hasChanges:i}=n,{status:s}=n;if(!i)return{hasChanges:!1};if(!r){let u=oAe(s);await this.discardSetupOnlyChanges(u)}nAe.info("Changes after processing"),await this.getStatus();let o=await this.getIgnoredPathspecs(s);if(await this.stageFiles(o),await this.excludeUnchangedSetupDescendants(),i=await this.hasStagedChanges(),!i)return{hasChanges:!1,ignored:o};await this.run(["commit","-m","Agent runner [skip ci]"]);let a=await si.mkdtemp(Fs.join(oM.tmpdir(),l9(e.sessionId))),c=await this.writeDiffFiles({config:e,diffDir:a,target:{commit:"HEAD"},ignored:o});return await this.rollbackIfLocal(),c.hasChanges&&Y.distribution("diff.size",(c.diffBinary??c.diff).size,{phase:"final"}),c}async getStatus(){let e=await this.run(["-c","status.relativePaths=true","status","-s"]);return String(e.stdout??"")}async hasAgentChanges(){let e=await this.getStatus();return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
390
390
|
`).filter(i=>Ldt.some(o=>o instanceof RegExp?o.test(i):i===o)?!1:i[1]?.trim()!=="")).length!==0,status:e}}async getCurrentCommitSha(){let{stdout:e}=await this.run(["rev-parse","HEAD"]);return String(e??"").trim()}async reset(){await this.run(["reset","--hard","HEAD"]),await si.rm(await this.getSetupMetadataPath(),{force:!0})}async discardSetupOnlyChanges(e){let r=e.filter(n=>n.stage&&!n.change).map(n=>n.filePath);r.length!==0&&await this.run(["restore","--staged","--worktree","--pathspec-from-file=-"],{input:r.join(`
|
|
391
391
|
`)})}async stageBuildSetup(){await si.rm(await this.getSetupMetadataPath(),{force:!0});let e=await this.getIgnoredPathspecs();await this.stageFiles(e)}getSetupMetadataPath(){return this.setupMetadataPath??=this.getRoot().then(async e=>{let{stdout:r}=await this.run(["rev-parse","--git-path","netlify-agent-runner-setup.json"],{cwd:e,stdout:"pipe"});return Fs.resolve(e,String(r).trim())}),this.setupMetadataPath}async listIndexEntries(e,r){let n=[];for(let i=0;i<e.length;i+=sM){let s=e.slice(i,i+sM).map(a=>`:(literal)${a}`),{stdout:o}=await this.run(["ls-files","--stage","-z","--",...s],{...aAe,...r});for(let a of String(o??"").split("\0").filter(Boolean))n.push({filePath:a.slice(a.indexOf(" ")+1),entry:a})}return n}async excludeUnchangedSetupDescendants(e){let r;try{r=JSON.parse(await si.readFile(await this.getSetupMetadataPath(),"utf8"))}catch(a){if(a.code==="ENOENT")return;throw a}let i={cwd:await this.getRoot(),env:e},s=new Map((await this.listIndexEntries(r.map(({filePath:a})=>a),i)).map(({filePath:a,entry:c})=>[a,c])),o=r.filter(({filePath:a,entry:c})=>s.get(a)===c);o.length!==0&&await this.run(["update-index","--force-remove","-z","--stdin"],{...i,input:o.map(({filePath:a})=>a).join("\0")})}async getIgnoredPathspecs(e){e||=await this.getStatus();let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return e.split(`
|
|
@@ -578,7 +578,7 @@ ${o.trim()}
|
|
|
578
578
|
\`\`\``),{title:n,message:o,category:i}};import Nh from"fs/promises";import xR from"os";import kd from"path";import JS from"process";import rvt from"readline";import AR from"fs/promises";import QSt from"os";import dL from"path";var PPe=re("gemini_session"),XSt=t=>t instanceof Error?t.message:String(t),evt=t=>{let e=!1;if(Array.isArray(t?.toolCalls))for(let n of t.toolCalls)n&&typeof n=="object"&&"id"in n&&(delete n.id,e=!0);let r=typeof t?.content=="object"?t.content?.parts:void 0;if(Array.isArray(r))for(let n of r)n?.functionCall&&typeof n.functionCall=="object"&&"id"in n.functionCall&&(delete n.functionCall.id,e=!0);return e},tvt=async t=>{let r=(await AR.readFile(t,"utf8")).split(`
|
|
579
579
|
`),n=!1,i=r.map(s=>{if(!s.trim())return s;let o;try{o=JSON.parse(s)}catch{return s}return evt(o)?(n=!0,JSON.stringify(o)):s});return n&&await AR.writeFile(t,i.join(`
|
|
580
580
|
`),"utf8"),n},y8=async(t,e=dL.join(QSt.homedir(),".gemini"))=>{let r=dL.join(e,"tmp"),n=t.slice(0,8),i;try{i=await AR.readdir(r)}catch{return}for(let s of i){let o=dL.join(r,s,"chats"),a;try{a=await AR.readdir(o)}catch{continue}for(let c of a){if(!c.endsWith(".jsonl")||!c.includes(n))continue;let u=dL.join(o,c);try{let l=(await AR.readFile(u,"utf8")).split(`
|
|
581
|
-
`,1)[0];if(JSON.parse(l).sessionId===t)return u}catch{continue}}}},RR=async t=>{try{let e=await y8(t);return e?(await tvt(e),!0):(PPe.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return PPe.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:XSt(e)}),!1}};var S8={list_directory:{name:"List directory",category:W.Explore},read_file:{name:"Read file",category:W.FileRead},write_file:{name:"Edit file",category:W.FileWrite},glob:{name:"Find files",category:W.Explore},search_file_content:{name:"Search files",category:W.Explore},replace:{name:"Edit file",category:W.FileWrite},run_shell_command:{name:"Run command",category:W.RunCommand},web_fetch:{name:"Fetch web",category:W.Web},web_search:{name:"Search web",category:W.Web},google_web_search:{name:"Search web",category:W.Web},update_topic:{name:"Update topic",category:W.Plan},read_many_files:{name:"Read files",category:W.FileRead},save_memory:{name:"Memorize",category:W.Memorize},activate_skill:{name:"Use Skill",category:W.Skill},grep_search:{name:"Search files",category:W.Explore}};var un=re("runner_gemini"),fL="Gemini CLI",nvt="gemini-3.8-flash",ivt=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(un.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(un.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(un.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),svt={low:"LOW",medium:"MEDIUM",high:"HIGH"},ovt=t=>Number(/^gemini-(\d+)/.exec(t??"")?.[1]),CPe=t=>ovt(t)>=3,avt=(t,{model:e,effort:r})=>{let n=t.modelConfigs?.customAliases??{};!r||!CPe(e)?(r&&un.log(`Model '${e}' does not support thinkingLevel; running at the model default effort`),delete n[e]):n[e]={extends:"chat-base-3",modelConfig:{model:e,generateContentConfig:{thinkingConfig:{thinkingLevel:svt[r]}}}},Object.keys(n).length!==0&&(t.modelConfigs={...t.modelConfigs,customAliases:n})},cvt=async({config:t,model:e,effort:r,creditWrapUpTurn:n,setup:i}={})=>{let{proxied:s,close:o}=await zl(t),a=kd.join(xR.homedir(),".gemini"),c=kd.join(a,"settings.json");try{await Nh.mkdir(a,{recursive:!0});let u={};try{let d=await Nh.readFile(c,"utf-8");u=JSON.parse(d)}catch{un.log("Creating new Gemini CLI settings file")}u.general||(u.general={}),u.general.previewFeatures||(u.general.previewFeatures=!0),u.model||(u.model={}),u.model.compressionThreshold!==.3&&(u.model.compressionThreshold=.3),u.skills||(u.skills={}),u.skills.enabled=!0,u.context||(u.context={}),u.context.fileName=["GEMINI.md","AGENTS.md"],avt(u,{model:e,effort:r}),u.mcpServers={...u.mcpServers},delete u.mcpServers[Ur],delete u.mcpServers[Dn],ki({creditWrapUpTurn:n})&&Object.assign(u.mcpServers,KT({trust:!0,...i?{env:gAe()}:{}},i));let l=ec(t,{creditWrapUpTurn:n,proxied:s});l&&Object.assign(u.mcpServers,m9(l,{trust:!0,env:_Ae()},mAe)),await Nh.writeFile(c,JSON.stringify(u,null,2),"utf-8"),un.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(u){un.error("Failed to ensure Gemini CLI settings",{error:u.message}),Y.inc("context.degraded",1,{component:"agent_config"})}return o},uvt=async({continueSession:t,priorAgentSessionId:e})=>{if(!t||!e)return!1;let r=await RR(e);return r||(un.log(`Gemini resume requested for session ${e} but it was not resumable; starting a fresh session`),Y.inc("inference.native_resume",1,{outcome:"sanitize_failed"})),r},lvt=t=>{t?.category===W.Skill&&t.type&&su(un,Va(t.type))},dvt=({aiGateway:t})=>{if(t){let{token:e,url:r}=t;if(!e||!r)throw new Error("No token or url provided from AI Gateway");JS.env.GEMINI_API_KEY=e,JS.env.GOOGLE_GEMINI_BASE_URL=r}else if(!JS.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided")},fvt=async({aiGateway:t,config:e,model:r})=>{let n=r;if(t){let i=e.modelVersionOverrides?.gemini?.[e.accountType];if(i){if(!await t.isModelAvailableForProvider("gemini",i))throw new Error(`Model override '${i}' is not available for gemini provider`);n=i}if(n)i||await t.isModelAvailableForProvider("gemini",n)||(un.log(`Model '${n}' is not available for gemini provider, proceeding without model specification`),Y.inc("model.unavailable",1,{provider:"gemini"}),n=void 0);else{let s=await t.getDefaultModelForRunner?.("gemini"),o=s||nvt,a=s?"catalog":"built-in";o&&await t.isModelAvailableForProvider("gemini",o)?(n=o,un.log(`Using ${a} default model: ${o}`)):o&&un.log(`Default model ${o} is not available, proceeding without model specification`)}}return n},pvt=async({config:t,cliPath:e})=>{let r=[`[[rule]]
|
|
581
|
+
`,1)[0];if(JSON.parse(l).sessionId===t)return u}catch{continue}}}},RR=async t=>{try{let e=await y8(t);return e?(await tvt(e),!0):(PPe.log(`No gemini session file for ${t}; not resumable, using fresh session`),!1)}catch(e){return PPe.warn(`Could not sanitize gemini session ${t} for resume; using fresh session`,{error:XSt(e)}),!1}};var S8={list_directory:{name:"List directory",category:W.Explore},read_file:{name:"Read file",category:W.FileRead},write_file:{name:"Edit file",category:W.FileWrite},glob:{name:"Find files",category:W.Explore},search_file_content:{name:"Search files",category:W.Explore},replace:{name:"Edit file",category:W.FileWrite},run_shell_command:{name:"Run command",category:W.RunCommand},web_fetch:{name:"Fetch web",category:W.Web},web_search:{name:"Search web",category:W.Web},google_web_search:{name:"Search web",category:W.Web},update_topic:{name:"Update topic",category:W.Plan},read_many_files:{name:"Read files",category:W.FileRead},save_memory:{name:"Memorize",category:W.Memorize},activate_skill:{name:"Use Skill",category:W.Skill},grep_search:{name:"Search files",category:W.Explore}};var un=re("runner_gemini"),fL="Gemini CLI",nvt="gemini-3.8-flash",ivt=({catchError:t,runCmd:e,error:r,result:n,runnerName:i})=>(un.log(`${i} command completed with catch handler triggered`,{hadExistingError:!!r,hadExistingResult:!!n,resultLength:n?n.length:0,catchError:t?.message||"No error object",processExitCode:e.exitCode,processKilled:e.killed}),n?(un.log("Preserving existing result despite catch handler being triggered"),r?{error:r,result:n}:{error:"Process completed with errors but result was captured",result:n}):(un.log("Setting result to undefined because no valid result was captured"),{error:r||`${i} failed`,result:void 0})),svt={low:"LOW",medium:"MEDIUM",high:"HIGH"},ovt=t=>Number(/^gemini-(\d+)/.exec(t??"")?.[1]),CPe=t=>ovt(t)>=3,avt=(t,{model:e,effort:r})=>{let n=t.modelConfigs?.customAliases??{};!r||!CPe(e)?(r&&un.log(`Model '${e}' does not support thinkingLevel; running at the model default effort`),delete n[e]):n[e]={extends:"chat-base-3",modelConfig:{model:e,generateContentConfig:{thinkingConfig:{thinkingLevel:svt[r]}}}},Object.keys(n).length!==0&&(t.modelConfigs={...t.modelConfigs,customAliases:n})},cvt=async({config:t,model:e,effort:r,creditWrapUpTurn:n,setup:i}={})=>{let{proxied:s,close:o}=await zl(t),a=kd.join(xR.homedir(),".gemini"),c=kd.join(a,"settings.json");try{await Nh.mkdir(a,{recursive:!0});let u={};try{let d=await Nh.readFile(c,"utf-8");u=JSON.parse(d)}catch{un.log("Creating new Gemini CLI settings file")}u.general||(u.general={}),u.general.previewFeatures||(u.general.previewFeatures=!0),u.model||(u.model={}),u.model.compressionThreshold!==.3&&(u.model.compressionThreshold=.3),u.security={...u.security,auth:{...u.security?.auth,selectedType:"gemini-api-key"}},u.skills||(u.skills={}),u.skills.enabled=!0,u.context||(u.context={}),u.context.fileName=["GEMINI.md","AGENTS.md"],avt(u,{model:e,effort:r}),u.mcpServers={...u.mcpServers},delete u.mcpServers[Ur],delete u.mcpServers[Dn],ki({creditWrapUpTurn:n})&&Object.assign(u.mcpServers,KT({trust:!0,...i?{env:gAe()}:{}},i));let l=ec(t,{creditWrapUpTurn:n,proxied:s});l&&Object.assign(u.mcpServers,m9(l,{trust:!0,env:_Ae()},mAe)),await Nh.writeFile(c,JSON.stringify(u,null,2),"utf-8"),un.log("Configured Gemini CLI settings (preview features and compression threshold)")}catch(u){un.error("Failed to ensure Gemini CLI settings",{error:u.message}),Y.inc("context.degraded",1,{component:"agent_config"})}return o},uvt=async({continueSession:t,priorAgentSessionId:e})=>{if(!t||!e)return!1;let r=await RR(e);return r||(un.log(`Gemini resume requested for session ${e} but it was not resumable; starting a fresh session`),Y.inc("inference.native_resume",1,{outcome:"sanitize_failed"})),r},lvt=t=>{t?.category===W.Skill&&t.type&&su(un,Va(t.type))},dvt=({aiGateway:t})=>{if(t){let{token:e,url:r}=t;if(!e||!r)throw new Error("No token or url provided from AI Gateway");JS.env.GEMINI_API_KEY=e,JS.env.GOOGLE_GEMINI_BASE_URL=r}else if(!JS.env.GEMINI_API_KEY)throw new Error("GEMINI_API_KEY is not provided")},fvt=async({aiGateway:t,config:e,model:r})=>{let n=r;if(t){let i=e.modelVersionOverrides?.gemini?.[e.accountType];if(i){if(!await t.isModelAvailableForProvider("gemini",i))throw new Error(`Model override '${i}' is not available for gemini provider`);n=i}if(n)i||await t.isModelAvailableForProvider("gemini",n)||(un.log(`Model '${n}' is not available for gemini provider, proceeding without model specification`),Y.inc("model.unavailable",1,{provider:"gemini"}),n=void 0);else{let s=await t.getDefaultModelForRunner?.("gemini"),o=s||nvt,a=s?"catalog":"built-in";o&&await t.isModelAvailableForProvider("gemini",o)?(n=o,un.log(`Using ${a} default model: ${o}`)):o&&un.log(`Default model ${o} is not available, proceeding without model specification`)}}return n},pvt=async({config:t,cliPath:e})=>{let r=[`[[rule]]
|
|
582
582
|
toolName = "web_fetch"
|
|
583
583
|
decision = "allow"
|
|
584
584
|
priority = 10
|
|
@@ -590,7 +590,7 @@ priority = 20
|
|
|
590
590
|
`),un.log("Ask policy allows the read-only database query command",{allowedPrefixes:i})}let n=kd.join(xR.homedir(),".gemini","ask-policy.toml");return await Nh.mkdir(kd.dirname(n),{recursive:!0}),await Nh.writeFile(n,r.join(`
|
|
591
591
|
`),"utf-8"),n};async function v8({config:t,persistSteps:e=void 0,sendSteps:r=void 0,aiGateway:n,continueSession:i=!1,priorAgentSessionId:s=void 0,cwd:o=JS.cwd(),cliPath:a="netlify",abortSignal:c=void 0,onSessionId:u=void 0,forceLowEffortForCreditWrapUp:l=void 0}){let{prompt:d}=t,f=Ja("gemini",t.effort);t.effort&&!f&&un.log(`Effort '${t.effort}' is not available on ${fL}; using its default`);let p=l?"low":f;dvt({aiGateway:n});let h=await fvt({aiGateway:n,config:t,model:t.model}),m=js({creditWrapUpTurn:l})?await Bs():void 0,_=m?qs(t,m.filePath):void 0,S=await cvt({config:t,model:h,effort:p,creditWrapUpTurn:l,setup:_}),b=[],R=[],y=[],v={},w=0,O=0,P,C,k,T,B,L=await uvt({continueSession:i,priorAgentSessionId:s}),E=t.mode==="ask",I=E?await pvt({config:t,cliPath:a}):void 0,$=[Jo(o,"gemini"),...h?["--model",h]:[],...E?["--approval-mode","default","--policy",I]:["--yolo"],"--skip-trust","--output-format","stream-json",...L?["-r",s]:[],"-p",""],Q=`${JS.env.NVM_BIN}/node`;un.log(`Running ${Q} ${$.join(" ")}`);let J=_t(Q,$,{all:!0,env:{...JS.env,GEMINI_CLI_NO_RELAUNCH:"1"},cwd:o,idleTimeout:Ji,cancelSignal:c});J.stdin?.end(d);let te=m?Vs(m.filePath,ge=>{B||(B={setupRequest:ge},J.kill())}):void 0,Re=Ba(()=>{e?.({steps:b,duration:O}),r?.({steps:R,duration:O}),R=[]},250),Ee=(ge,j)=>{ge.id=w,w+=1,y.push(ge),b.push(ge),R.push(ge),j||Re.flush(),Re(),j&&Re.flush()},Se=h||"default";Ar(t)||Ee({title:`Using ${fL} with ${Se}`,category:W.Environment},!0);let Te=rvt.createInterface({input:J.all});Te.on("error",ge=>{un.error("Readline interface error",{error:ge.message,stack:ge.stack})});let be="",me=()=>{be&&Ee({message:be.trim(),category:W.AgentMessage}),be=""};Te.on("line",ge=>{let j;try{if(ge.startsWith("[API Error")){let F=ge.match(/\[api error: (.+?)]$/i)?.[1];j={type:"error",value:yp(F,!1)?.error?.message||F||"Gemini encountered error"}}else j=JSON.parse(ge)}catch{return}if(j)switch(j.type==="init"&&typeof j.session_id=="string"&&(T=j.session_id,u?.(T)),["message","result"].includes(j.type)||me(),j.type){case"message":{j.role!=="user"&&j.content&&(be+=j.content);break}case"tool_use":{let F=j.tool_id&&!B?Hl(j.tool_name,j.parameters,vK):void 0;if(F&&"interaction"in F){B=F.interaction,J.kill();break}if(F){un.warn("Ignoring malformed pause tool input",{toolUseId:j.tool_id,tool:j.tool_name,issues:F.issues}),Y.inc(F.metric,1);break}if(tc(j.tool_name,vK))break;let D=S8[j.tool_name]?.name??j.tool_name,V=j.parameters?.file_path,K=V&&kd.relative(o,V),ne=j.parameters?.command,X=j.tool_name==="activate_skill"&&j.parameters?.name,ue=j.tool_name==="run_shell_command"&&rs(ne),De=[D,K&&`\`${K}\``,ne&&`\`${ne}\``].filter(Boolean).join(" ");if(X)De=`Use ${Va(X)}`;else if(ue)De="Generating the site";else if(j.tool_name==="grep_search"){let{dir_path:Oe,pattern:$e}=j.parameters||{};Oe&&$e?De=`Search in \`${Oe}\` for \`${$e}\``:Oe?De=`Search in \`${Oe}\``:$e&&(De=`Search for \`${$e}\``)}else if(j.tool_name==="update_topic"){let Oe=j.parameters?.title;Oe&&(De=`${D} \`${Oe}\``)}let ot={title:De,category:ue?W.SiteGeneration:S8[j.tool_name]?.category,...X&&{type:X}};v[j.tool_id]=ot,Re.flush();break}case"tool_result":{let F=v[j.tool_id];F&&(j.output&&(F.message=`\`\`\`
|
|
592
592
|
${j.output.trim()}
|
|
593
|
-
\`\`\``),Ee(F,!0),lvt(F));break}case"result":{O=j.stats?.duration_ms,j.stats&&(ka(j.stats,h?{model:h}:{}),k=j.stats),j.status==="error"?C=j.error?.message:P=be.trim();break}case"error":{C=j.error;break}case"finished":break;case"init":break;default:{un.warn("Unhandled message type:",j.type);break}}});let de=!1;if(await J.catch(ge=>{de=zs(ge,c),{error:C,result:P}=ivt({catchError:ge,runCmd:J,error:C,result:P,runnerName:"Gemini"})}),te?.stop(),await Promise.all([m?.remove(),S()]),Te.close(),B)return Re.flush(),{steps:y,duration:O,agentSessionId:T,resolvedModel:h,usage:k,pendingInteraction:B};let Le=de;Le&&(!P&&be.trim()&&(P=be.trim()),C=void 0),Re.flush();let{providerFailure:We,classification:ee}=Gs({error:C});return{steps:y,duration:O,result:await Hs({initialResult:P,agentName:fL,hasError:!!C}),error:Ws({error:C,agentName:fL}),isRetryableError:ee?.retryable??Ks(C),isProviderUnavailableError:ee?.providerFault??Ys(C),...We?{providerFailure:We}:{},resolvedModel:h,usage:k,agentSessionId:T,...p&&CPe(h)?{effort:p}:{},...Le?{aborted:!0}:{}}}var kPe=async()=>{let t=kd.join(xR.homedir(),".gemini");await Nh.rm(t,{recursive:!0,force:!0});let e=kd.join(xR.homedir(),".agents","skills");await Nh.rm(e,{recursive:!0,force:!0})},NPe={baseDir:kd.join(xR.homedir(),".gemini"),include:["tmp"]};import OR from"fs/promises";import zPe from"os";import Dd from"path";import _L from"process";import Svt from"readline";import DPe from"fs/promises";var hvt=re("interaction-files"),mvt=250,gvt=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=pM.safeParse(e);return r.success?{questions:r.data.questions}:{issues:j_(r.error.issues)}},MPe=(t,e,r,n)=>{let i=!0,s=setInterval(async()=>{let o=await DPe.readFile(t,"utf-8").catch(()=>{});if(o===void 0)return;clearInterval(s),await DPe.rm(t,{force:!0}).catch(()=>{});let{value:a,issues:c}=e(o);if(a===void 0){hvt.warn(n.message,{filePath:t,issues:c}),Y.inc(n.metric,1);return}i&&r(a)},mvt);return s.unref(),{stop:()=>{i=!1,clearInterval(s)}}},pL=(t,e)=>MPe(t,r=>{let{questions:n,issues:i}=gvt(r);return n?{value:n}:{issues:i}},e,{message:"Ignoring malformed ask tool questions file",metric:"inference.malformed_ask"}),hL=(t,e)=>MPe(t,r=>{let n;try{n=JSON.parse(r)}catch{return{issues:"invalid_json"}}let i=$N.safeParse(n);return i.success?{value:i.data}:{issues:j_(i.error.issues)}},e,{message:"Ignoring malformed authorization request file",metric:"inference.malformed_authorization"});import _vt from"os";import UPe from"path";import E8 from"fs";var $Pe=re("opencode_install"),LPe="1.
|
|
593
|
+
\`\`\``),Ee(F,!0),lvt(F));break}case"result":{O=j.stats?.duration_ms,j.stats&&(ka(j.stats,h?{model:h}:{}),k=j.stats),j.status==="error"?C=j.error?.message:P=be.trim();break}case"error":{C=j.error;break}case"finished":break;case"init":break;default:{un.warn("Unhandled message type:",j.type);break}}});let de=!1;if(await J.catch(ge=>{de=zs(ge,c),{error:C,result:P}=ivt({catchError:ge,runCmd:J,error:C,result:P,runnerName:"Gemini"})}),te?.stop(),await Promise.all([m?.remove(),S()]),Te.close(),B)return Re.flush(),{steps:y,duration:O,agentSessionId:T,resolvedModel:h,usage:k,pendingInteraction:B};let Le=de;Le&&(!P&&be.trim()&&(P=be.trim()),C=void 0),Re.flush();let{providerFailure:We,classification:ee}=Gs({error:C});return{steps:y,duration:O,result:await Hs({initialResult:P,agentName:fL,hasError:!!C}),error:Ws({error:C,agentName:fL}),isRetryableError:ee?.retryable??Ks(C),isProviderUnavailableError:ee?.providerFault??Ys(C),...We?{providerFailure:We}:{},resolvedModel:h,usage:k,agentSessionId:T,...p&&CPe(h)?{effort:p}:{},...Le?{aborted:!0}:{}}}var kPe=async()=>{let t=kd.join(xR.homedir(),".gemini");await Nh.rm(t,{recursive:!0,force:!0});let e=kd.join(xR.homedir(),".agents","skills");await Nh.rm(e,{recursive:!0,force:!0})},NPe={baseDir:kd.join(xR.homedir(),".gemini"),include:["tmp"]};import OR from"fs/promises";import zPe from"os";import Dd from"path";import _L from"process";import Svt from"readline";import DPe from"fs/promises";var hvt=re("interaction-files"),mvt=250,gvt=t=>{let e;try{e=JSON.parse(t)}catch{return{issues:"invalid_json"}}let r=pM.safeParse(e);return r.success?{questions:r.data.questions}:{issues:j_(r.error.issues)}},MPe=(t,e,r,n)=>{let i=!0,s=setInterval(async()=>{let o=await DPe.readFile(t,"utf-8").catch(()=>{});if(o===void 0)return;clearInterval(s),await DPe.rm(t,{force:!0}).catch(()=>{});let{value:a,issues:c}=e(o);if(a===void 0){hvt.warn(n.message,{filePath:t,issues:c}),Y.inc(n.metric,1);return}i&&r(a)},mvt);return s.unref(),{stop:()=>{i=!1,clearInterval(s)}}},pL=(t,e)=>MPe(t,r=>{let{questions:n,issues:i}=gvt(r);return n?{value:n}:{issues:i}},e,{message:"Ignoring malformed ask tool questions file",metric:"inference.malformed_ask"}),hL=(t,e)=>MPe(t,r=>{let n;try{n=JSON.parse(r)}catch{return{issues:"invalid_json"}}let i=$N.safeParse(n);return i.success?{value:i.data}:{issues:j_(i.error.issues)}},e,{message:"Ignoring malformed authorization request file",metric:"inference.malformed_authorization"});import _vt from"os";import UPe from"path";import E8 from"fs";var $Pe=re("opencode_install"),LPe="1.18.35",yvt=()=>UPe.join(_vt.homedir(),".netlify-agent-runner","opencode"),mL=async t=>{let e=Jo(t,"opencode");if(e)return e;let r=yvt(),n=UPe.join(r,"node_modules",".bin","opencode");if(E8.existsSync(n))return n;E8.mkdirSync(r,{recursive:!0}),$Pe.log(`Installing opencode-ai@${LPe} on demand`);let i=Date.now();await _t("npm",["install","--no-save","--no-audit","--no-fund","--prefix",r,`opencode-ai@${LPe}`],{cwd:r});let s=Date.now()-i;if(Y.timing("opencode.install_duration",s),$Pe.log(`Installed opencode-ai in ${s}ms`),!E8.existsSync(n))throw new Error("OpenCode CLI binary not found after installing opencode-ai");return n};var Nd=re("runner_opencode"),gL="OpenCode",jPe="gateway",vvt="z-ai/glm-5.3-flash",Evt=new Set(["z-ai/glm-5.3-flash","deepseek/deepseek-v4-pro","x-ai/grok-4.6"]),bvt=(t,e)=>!t||!kC.includes(t)?t:e&&Evt.has(e)?"xhigh":"max",b8={bash:{name:"Run command",category:W.RunCommand},read:{name:"Read file",category:W.FileRead},write:{name:"Edit file",category:W.FileWrite},edit:{name:"Edit file",category:W.FileWrite},glob:{name:"Find files",category:W.Explore},grep:{name:"Search files",category:W.Explore},list:{name:"List directory",category:W.Explore},task:{name:"Task",category:W.Task},todowrite:{name:"Update task list",category:W.Todo},webfetch:{name:"Fetch web",category:W.Web},websearch:{name:"Search web",category:W.Web},skill:{name:"Use Skill",category:W.Skill}},FPe=t=>b8[t]?.name||t,wvt=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"}]}):[];async function Tvt({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];if(s)n=s;else if(!r){let o=await t.getDefaultModelForRunner?.("opencode");n=Ge().opencodeDefaultModel||o||vvt}n&&(await i(n)||Nd.log(`Model '${n}' not found in gateway catalog; proceeding anyway (gateway is authoritative, e.g. flag-gated OpenRouter models)`))}return n}function Avt({aiGateway:t,model:e,effort:r,questionsFilePath:n,connections:i,setup:s,systemPromptPath:o}){if(!t)throw new Error("OpenCode runner requires the AI gateway");let{token:a,url:c}=t;if(!a||!c)throw new Error("No token or url provided from AI Gateway");let u=e?{[e]:{id:e,name:e,tool_call:!0,reasoning:!0,interleaved:{field:/^~?deepseek\//.test(e)?"reasoning_content":"reasoning"},...r?{options:{reasoningEffort:r}}:{}}}:{},l={$schema:"https://opencode.ai/config.json",instructions:[o],provider:{[jPe]:{api:"openai",name:"Netlify AI Gateway",options:{apiKey:a,baseURL:c},...Object.keys(u).length>0?{models:u}:{}}},...n||i?{mcp:{...n?yAe(n,s):{},...i?SAe(i):{}}}:{}};return{..._L.env,OPENCODE_CONFIG_CONTENT:JSON.stringify(l),OPENCODE_DISABLE_AUTOUPDATE:"1"}}async function qPe(t){if(!t.systemInstructions)throw new Error("OpenCode requires system instructions");let e=Dd.resolve(t.cwd??_L.cwd(),tn);await OR.mkdir(e,{recursive:!0});let r=await OR.mkdtemp(Dd.join(e,"opencode-instructions-"));try{let n=Dd.join(r,"instructions.md");return await OR.writeFile(n,t.systemInstructions,{encoding:"utf8",mode:384}),await Rvt({...t,systemPromptPath:n})}finally{await OR.rm(r,{recursive:!0,force:!0})}}async function Rvt({config:t,persistSteps:e,aiGateway:r,continueSession:n,priorAgentSessionId:i,cwd:s=_L.cwd(),abortSignal:o,onSessionId:a,forceLowEffortForCreditWrapUp:c,systemPromptPath:u}){let{prompt:l}=t,{model:d}=t,f=c?"low":t.effort,p="",h,m,_,S,b=0,R=0,y,v=await Tvt({config:t,aiGateway:r,model:d}),w=bvt(f,v);Nd.log(f?`Requesting reasoning effort '${f}' for model '${v}'${w===f?"":` (sent as '${w}')`}; ignored if unsupported`:`No reasoning effort requested for model '${v}'; running at its own default`);let O=ki({creditWrapUpTurn:c})?await dM():void 0,P=WT({creditWrapUpTurn:c})?await fM():void 0,C=js({creditWrapUpTurn:c})?await Bs():void 0,k=await zl(t),T=ec(t,{requestFilePath:P?.filePath,creditWrapUpTurn:c,proxied:k.proxied}),B=Avt({aiGateway:r,model:v,effort:w,questionsFilePath:O?.filePath,connections:T,setup:C?qs(t,C.filePath):void 0,systemPromptPath:u}),L=[],E=[],I=0,$=Date.now(),Q=await mL(s),J=["run","--format","json","--dangerously-skip-permissions","--agent","build",...v?["--model",`${jPe}/${v}`]:[],...n?i?["--session",i]:["--continue"]:[]];Nd.log(`Running ${Q} ${J.join(" ")}`);let te=_t(Q,J,{all:!0,env:B,cwd:s,idleTimeout:Ji,cancelSignal:o});te.stdin?.end(l);let Re=O?pL(O.filePath,ne=>{y||(y={questions:ne},te.kill())}):void 0,Ee=P?hL(P.filePath,ne=>{y||(y={authorization:ne},te.kill())}):void 0,Se=C?Vs(C.filePath,ne=>{y||(y={setupRequest:ne},te.kill())}):void 0,Te=Ba(()=>{e?.({steps:E,duration:Date.now()-$})},250),be=(ne,X)=>{let{wrapMessage:ue,...De}=ne,ot=YN({...De,id:I});ot.message&&ue&&(ot.message=`\`\`\`
|
|
594
594
|
${ot.message}
|
|
595
595
|
\`\`\``),I+=1,L.push(ot),E.push(ot),X||Te.flush(),Te(),X&&Te.flush()},me=v||"default";Ar(t)||be({title:`Using ${gL} with ${me}`,category:W.Environment},!0);let de=Svt.createInterface({input:te.all});de.on("error",ne=>{Nd.error("Readline interface error",{error:ne.message,stack:ne.stack})});let Le="",We,ee=new Set,ge=()=>{Le&&(be({message:Le,category:W.AgentMessage}),We=Le,Le="")};de.on("line",ne=>{let X;try{X=JSON.parse(ne)}catch{Nd.log("Could not parse line",ne);return}switch(X.sessionID&&X.sessionID!==p&&(p=X.sessionID,a?.(p)),X.type){case"step_start":{ge();break}case"text":{let ue=X.part?.text;ue&&(Le+=ue);break}case"reasoning":{ge();let ue=X.part?.text;ue&&be({title:"Reasoning",message:ue,category:W.Reasoning},!0);break}case"tool_use":{ge();let ue=X.part?.tool;if(!ue)break;let De=X.part?.state?.input??{},ot=X.part?.state?.status,Oe=X.part?.state?.output,$e=X.part?.state?.error;if(tc(ue,hSe)){ot==="error"&&Nd.warn("Pause tool call rejected before it could pause the run",{tool:ue,error:$e});break}if(ot==="error"&&(b+=1),(ot==="completed"||ot==="error")&&(R+=1),ue==="skill"){let On=typeof De.name=="string"?De.name:void 0;if(On){let mo=Va(On);su(Nd,mo),be({title:`Use ${mo}`,category:W.Skill,type:On},!0);break}}if(ue==="todowrite"){let On=wvt(De.todos);be({title:FPe(ue),category:On.length>0?b8.todowrite.category:W.Tool,...On.length>0?{tasks:On}:{}},!0);break}let Ke=typeof De.command=="string"?De.command:void 0,Pe=Ke?rs(Ke):!1,we=typeof De.path=="string"&&De.path||typeof De.file_path=="string"&&De.file_path||typeof De.pattern=="string"&&De.pattern||void 0,Xt,vt;if(Pe)Xt="Generating the site",vt=W.SiteGeneration;else if(Ke&&ue==="bash")Xt=`Running \`${Ke}\``,vt=W.RunCommand;else{let On=we&&`\`${Dd.relative(s,we)}\``;Xt=[FPe(ue),On].filter(Boolean).join(" "),vt=b8[ue]?.category||W.AgentMessage}let ho,hi=["bash","read","glob","grep","list","webfetch","websearch"].includes(ue);$e?ho=`\`\`\`
|
|
596
596
|
${$e.trim()}
|