@netlify/agent-runner-cli 1.154.0-xhigh.0 → 1.154.0-xhigh.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin-local.js +39 -39
- package/dist/bin.js +4 -4
- package/dist/index.js +4 -4
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -587,7 +587,7 @@ For example, you can use the \`pathToFileURL()\` method of the \`url\` core modu
|
|
|
587
587
|
`,LF:`
|
|
588
588
|
`,concatBytes:E3},sSt=(t,e)=>{let r=new Uint8Array(t.length+e.length);return r.set(t,0),r.set(e,t.length),r},oSt={windowsNewline:new Uint8Array([13,10]),unixNewline:new Uint8Array([10]),LF:10,concatBytes:sSt};import{Buffer as aSt}from"buffer";var pTe=(t,e)=>t?void 0:cSt.bind(void 0,e),cSt=function*(t,e){if(typeof e!="string"&&!kr(e)&&!aSt.isBuffer(e))throw new TypeError(`The \`${t}\` option's transform must use "objectMode: true" to receive as input: ${typeof e}.`);yield e},hTe=(t,e)=>t?lSt.bind(void 0,e):uSt.bind(void 0,e),lSt=function*(t,e){mTe(t,e),yield e},uSt=function*(t,e){if(mTe(t,e),typeof e!="string"&&!kr(e))throw new TypeError(`The \`${t}\` option's function must yield a string or an Uint8Array, not ${typeof e}.`);yield e},mTe=(t,e)=>{if(e==null)throw new TypeError(`The \`${t}\` option's function must not call \`yield ${e}\`.
|
|
589
589
|
Instead, \`yield\` should either be called with a value, or not be called at all. For example:
|
|
590
|
-
if (condition) { yield value; }`)};import{Buffer as dSt}from"buffer";import{StringDecoder as fSt}from"string_decoder";var TC=(t,e,r)=>{if(r)return;if(t)return{transform:pSt.bind(void 0,new TextEncoder)};let n=new fSt(e);return{transform:hSt.bind(void 0,n),final:mSt.bind(void 0,n)}},pSt=function*(t,e){dSt.isBuffer(e)?yield bc(e):typeof e=="string"?yield t.encode(e):yield e},hSt=function*(t,e){yield kr(e)?t.write(e):e},mSt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as gTe}from"util";var b3=gTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),wC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=_St}=e[r];for await(let i of n(t))yield*wC(i,e,r+1)},_Te=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*gSt(r,Number(e),t)},gSt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*wC(n,r,e+1)},yTe=gTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),_St=function*(t){yield t};var T3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},STe=(t,e)=>[...e.flatMap(r=>[...jf(r,t,0)]),...Jb(t)],jf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=SSt}=e[r];for(let i of n(t))yield*jf(i,e,r+1)},Jb=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*ySt(r,Number(e),t)},ySt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*jf(n,r,e+1)},SSt=function*(t){yield t};var w3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=vTe(t,o,s),l=Ff(e),u=Ff(r),d=l?b3.bind(void 0,wC,a):T3.bind(void 0,jf),f=l||u?b3.bind(void 0,_Te,a):T3.bind(void 0,Jb),p=l||u?yTe.bind(void 0,a):void 0;return{stream:new ESt({writableObjectMode:n,writableHighWaterMark:ETe(n),readableObjectMode:i,readableHighWaterMark:ETe(i),transform(m,_,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},RC=(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=vTe(o,r,a);t=STe(c,t)}return t},vTe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:pTe(n,a)},TC(r,o,n),bC(r,s,n,c),{transform:t,final:e},{transform:hTe(i,a)},fTe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var bTe=(t,e)=>{for(let r of vSt(t))bSt(t,r,e)},vSt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),bSt=(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 ${bu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>TSt(a,n));r.input=jb(o)},TSt=(t,e)=>{let r=RC(t,e,"utf8",!0);return wSt(r),jb(r)},wSt=t=>{let e=t.find(r=>typeof r!="string"&&!kr(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 ISt,appendFileSync as OSt}from"fs";var AC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&$g(r,n)&&!Fi.has(e)&&RSt(n)&&(t.some(({type:i,value:s})=>i==="native"&&ASt.has(s))||t.every(({type:i})=>bs.has(i))),RSt=t=>t===1||t===2,ASt=new Set(["pipe","overlapped"]),TTe=async(t,e,r,n)=>{for await(let i of t)xSt(e)||RTe(i,r,n)},wTe=(t,e,r)=>{for(let n of t)RTe(n,e,r)},xSt=t=>t._readableState.pipes.length>0,RTe=(t,e,r)=>{let n=jP(t);ra({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var ATe=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:e.map((c,l)=>PSt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},PSt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=xbe(t,s,d),p=bc(f),{stdioItems:h,objectMode:m}=e[r],_=CSt([p],h,c,n),{serializedResult:S,finalResult:v=S}=NSt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});kSt({serializedResult:S,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let y=a[r]?v:void 0;try{return n.error===void 0&&$St(S,h,i),y}catch(g){return n.error=g,y}},CSt=(t,e,r,n)=>{try{return RC(t,e,r,!1)}catch(i){return n.error=i,t}},NSt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:jb(t)};let o=qSe(t,r);return n[s]?{serializedResult:o,finalResult:v3(o,!i[s],e)}:{serializedResult:o}},kSt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!AC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=v3(t,!1,o);try{wTe(a,e,n)}catch(c){r.error??=c}},$St=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>EC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?OSt(n,t):(r.add(s),ISt(n,t))}};var xTe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Rc(e,r,"all")]:Array.isArray(e)?[Rc(t,r,"all"),...e]:kr(t)&&kr(e)?P6([t,e]):`${t}${e}`};import{once as R3}from"events";var ITe=async(t,e)=>{let[r,n]=await LSt(t);return e.isForcefullyTerminated??=!1,[r,n]},LSt=async t=>{let[e,r]=await Promise.allSettled([R3(t,"spawn"),R3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?OTe(t):r.value},OTe=async t=>{try{return await R3(t,"exit")}catch{return OTe(t)}},PTe=async t=>{let[e,r]=await t;if(!DSt(e,r)&&A3(e,r))throw new to;return[e,r]},DSt=(t,e)=>t===void 0&&e===void 0,A3=(t,e)=>t!==0||e!==null;var CTe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=MSt(t,e,r),o=s?.code==="ETIMEDOUT",a=Abe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},MSt=(t,e,r)=>t!==void 0?t:A3(e,r)?new to:void 0;var NTe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=FSt(t,e,r),d=BSt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Vg(d,c,l)},FSt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=BP(t,e,r),a=jSt(r),{file:c,commandArguments:l,options:u}=cC(t,e,a);qSt(u);let d=cTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},jSt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,qSt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&xC("ipcInput"),t&&xC("ipc: true"),r&&xC("detached: true"),n&&xC("cancelSignal")},xC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},BSt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=zSt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=CTe(c,r),{output:h,error:m=l}=ATe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,y)=>Rc(v,r,y)),S=Rc(xTe(h,r),r,"all");return HSt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:S,options:r,command:n,escapedCommand:i,startTime:a})},zSt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{bTe(s,r);let a=VSt(r);return USt(...lC(t,e,a))}catch(a){return zg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},VSt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:gC(e)}),HSt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?_C({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Kb({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as Nvt}from"events";import{spawn as kvt}from"child_process";import MTe from"process";import{once as x3,on as GSt}from"events";var kTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Mg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:rC(t)}),WSt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),WSt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{XP(e,i);let s=vu(t,e,r),o=new AbortController;try{return await Promise.race([YSt(s,n,o),KSt(s,r,o),JSt(s,r,o)])}catch(a){throw Ug(t),a}finally{o.abort(),QP(e,i)}},YSt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await x3(t,"message",{signal:r});return n}for await(let[n]of GSt(t,"message",{signal:r}))if(e(n))return n},KSt=async(t,e,{signal:r})=>{await x3(t,"disconnect",{signal:r}),Sve(e)},JSt=async(t,e,{signal:r})=>{let[n]=await x3(t,"strict:error",{signal:r});throw KP(n,e)};import{once as LTe,on as ZSt}from"events";var DTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>I3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),I3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Mg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:rC(t)}),XP(e,s);let o=vu(t,e,r),a=new AbortController,c={};return XSt(t,o,a),QSt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),eEt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},XSt=async(t,e,r)=>{try{await LTe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},QSt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await LTe(t,"strict:error",{signal:r.signal});n.error=KP(i,e),r.abort()}catch{}},eEt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of ZSt(r,"message",{signal:s.signal}))$Te(o),yield c}catch{$Te(o)}finally{s.abort(),QP(e,a),n||Ug(t),i&&await t}},$Te=({error:t})=>{if(t)throw t};var UTe=(t,{ipc:e})=>{Object.assign(t,jTe(t,!1,e))},FTe=()=>{let t=MTe,e=!0,r=MTe.channel!==void 0;return{...jTe(t,e,r),getCancelSignal:Gve.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},jTe=(t,e,r)=>({sendMessage:oC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:kTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:DTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as tEt}from"child_process";import{PassThrough as rEt,Readable as nEt,Writable as iEt,Duplex as sEt}from"stream";var qTe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{y3(n);let a=new tEt;oEt(a,n),Object.assign(a,{readable:aEt,writable:cEt,duplex:lEt});let c=zg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=uEt(c,o,i);return{subprocess:a,promise:l}},oEt=(t,e)=>{let r=Zb(),n=Zb(),i=Zb(),s=Array.from({length:e.length-3},Zb),o=Zb(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},Zb=()=>{let t=new rEt;return t.end(),t},aEt=()=>new nEt({read(){}}),cEt=()=>new iEt({write(){}}),lEt=()=>new sEt({read(){},write(){}}),uEt=async(t,e,r)=>Vg(t,e,r);import{createReadStream as BTe,createWriteStream as zTe}from"fs";import{Buffer as dEt}from"buffer";import{Readable as Xb,Writable as fEt,Duplex as pEt}from"stream";var HTe=(t,e)=>vC(hEt,t,e,!1),Qb=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${bu[t]}.`)},VTe={fileNumber:Qb,generator:w3,asyncGenerator:w3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:pEt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},hEt={input:{...VTe,fileUrl:({value:t})=>({stream:BTe(t)}),filePath:({value:{file:t}})=>({stream:BTe(t)}),webStream:({value:t})=>({stream:Xb.fromWeb(t)}),iterable:({value:t})=>({stream:Xb.from(t)}),asyncIterable:({value:t})=>({stream:Xb.from(t)}),string:({value:t})=>({stream:Xb.from(t)}),uint8Array:({value:t})=>({stream:Xb.from(dEt.from(t))})},output:{...VTe,fileUrl:({value:t})=>({stream:zTe(t)}),filePath:({value:{file:t,append:e}})=>({stream:zTe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:fEt.fromWeb(t)}),iterable:Qb,asyncIterable:Qb,string:Qb,uint8Array:Qb}};import{on as mEt,once as GTe}from"events";import{PassThrough as gEt,getDefaultHighWaterMark as _Et}from"stream";import{finished as KTe}from"stream/promises";function qf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)P3(i);let e=t.some(({readableObjectMode:i})=>i),r=yEt(t,e),n=new O3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var yEt=(t,e)=>{if(t.length===0)return _Et(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},O3=class extends gEt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(P3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=SEt(this,this.#e,this.#s);let r=bEt({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(P3(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)}},SEt=async(t,e,r)=>{IC(t,WTe);let n=new AbortController;try{await Promise.race([EEt(t,n),vEt(t,e,r,n)])}finally{n.abort(),IC(t,-WTe)}},EEt=async(t,{signal:e})=>{try{await KTe(t,{signal:e,cleanup:!0})}catch(r){throw JTe(t,r),r}},vEt=async(t,e,r,{signal:n})=>{for await(let[i]of mEt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},P3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},bEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{IC(t,YTe);let a=new AbortController;try{await Promise.race([TEt(s,e,a),wEt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),REt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),IC(t,-YTe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?C3(t):AEt(t))},TEt=async(t,e,{signal:r})=>{try{await t,r.aborted||C3(e)}catch(n){r.aborted||JTe(e,n)}},wEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await KTe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;ZTe(o)?i.add(e):XTe(t,o)}},REt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await GTe(t,i,{signal:s}),!t.readable)return GTe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},AEt=t=>{t.writable&&t.end()},JTe=(t,e)=>{ZTe(e)?C3(t):XTe(t,e)},ZTe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",C3=t=>{(t.readable||t.writable)&&t.destroy()},XTe=(t,e)=>{t.destroyed||(t.once("error",xEt),t.destroy(e))},xEt=()=>{},IC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},WTe=2,YTe=1;import{finished as QTe}from"stream/promises";var Gg=(t,e)=>{t.pipe(e),IEt(t,e),OEt(t,e)},IEt=async(t,e)=>{if(!(eo(t)||eo(e))){try{await QTe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}N3(e)}},N3=t=>{t.writable&&t.end()},OEt=async(t,e)=>{if(!(eo(t)||eo(e))){try{await QTe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}k3(t)}},k3=t=>{t.readable&&t.destroy()};var ewe=(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})=>bs.has(c)))PEt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!bs.has(c)))NEt({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]:qf(s);Gg(o,i)}},PEt=(t,e,r,n)=>{r==="output"?Gg(t.stdio[n],e):Gg(e,t.stdio[n]);let i=CEt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},CEt=["stdin","stdout","stderr"],NEt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;kEt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},kEt=(t,{signal:e})=>{eo(t)&&Mf(t,$Et,e)},$Et=2;import{addAbortListener as MEt}from"events";var Bf=[];Bf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Bf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Bf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var OC=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",$3=Symbol.for("signal-exit emitter"),L3=globalThis,LEt=Object.defineProperty.bind(Object),D3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(L3[$3])return L3[$3];LEt(L3,$3,{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}},PC=class{},DEt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),M3=class extends PC{onExit(){return()=>{}}load(){}unload(){}},U3=class extends PC{#e=F3.platform==="win32"?"SIGINT":"SIGHUP";#r=new D3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Bf)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(!OC(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 Bf)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,Bf.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 OC(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"&&OC(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)}},F3=globalThis.process,{onExit:twe,load:klr,unload:$lr}=DEt(OC(F3)?new U3(F3):new M3);var rwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=twe(()=>{t.kill()});MEt(n,()=>{i()})};var iwe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=qP(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=UEt(r,n,i),{sourceStream:d,sourceError:f}=jEt(t,l),{options:p,fileDescriptors:h}=ia.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},UEt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=FEt(t,e,...r),a=ZP(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},FEt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(nwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||I6(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]=CP(r,...n);return{destination:e(nwe)(i,s,o),pipeOptions:o}}if(ia.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},nwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),jEt=(t,e)=>{try{return{sourceStream:Fg(t,e)}}catch(r){return{sourceError:r}}};var owe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=qEt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw j3({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},qEt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return k3(t),n;if(e!==void 0)return N3(r),e},j3=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>zg({error:t,command:swe,escapedCommand:swe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),swe="source.pipe(destination)";var awe=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 BEt}from"stream/promises";var cwe=(t,e,r)=>{let n=CC.has(e)?VEt(t,e):zEt(t,e);return Mf(t,GEt,r.signal),Mf(e,WEt,r.signal),HEt(e),n},zEt=(t,e)=>{let r=qf([t]);return Gg(r,e),CC.set(e,r),r},VEt=(t,e)=>{let r=CC.get(e);return r.add(t),r},HEt=async t=>{try{await BEt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}CC.delete(t)},CC=new WeakMap,GEt=2,WEt=1;import{aborted as YEt}from"util";var lwe=(t,e)=>t===void 0?[]:[KEt(t,e)],KEt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await YEt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw j3({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var NC=(t,...e)=>{if(_r(e[0]))return NC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=iwe(t,...e),i=JEt({...n,destination:r});return i.pipe=NC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},JEt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=ZEt(t,i);owe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=cwe(e,s,d);return await Promise.race([awe(u),...lwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},ZEt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as ivt}from"timers/promises";import{on as XEt}from"events";import{getDefaultHighWaterMark as QEt}from"stream";var kC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return evt(e,o),dwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},evt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},q3=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;tvt(e,o,t);let a=t.readableObjectMode&&!s;return dwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},tvt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},dwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=XEt(t,"data",{signal:e.signal,highWaterMark:uwe,highWatermark:uwe});return rvt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},B3=QEt(!0),uwe=B3,rvt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=nvt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*jf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Jb(a)}},nvt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[TC(t,r,!e),bC(t,i,!n,{})].filter(Boolean);var fwe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=svt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([ovt(t),d]);return}let f=S3(c,r),p=q3({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([avt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},svt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!AC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=q3({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await TTe(a,t,r,s)},ovt=async t=>{await ivt(),t.readableFlowing===null&&t.resume()},avt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await pC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await hC(r,{maxBuffer:s})):await Bg(r,{maxBuffer:s})}catch(a){return pwe(Tbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},z3=async t=>{try{return await t}catch(e){return pwe(e)}},pwe=({bufferedData:t})=>FSe(t)?new Uint8Array(t):t;import{finished as cvt}from"stream/promises";var eT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=lvt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],cvt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||fvt(a,e,r,n)}finally{o.abort()}},lvt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&uvt(t,r,n),n},uvt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{dvt(e,r),n.call(t,...i)}},dvt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},fvt=(t,e,r,n)=>{if(!pvt(t,e,r,n))throw t},pvt=(t,e,r,n=!0)=>r.propagating?hwe(t)||$C(t):(r.propagating=!0,V3(r,e)===n?hwe(t):$C(t)),V3=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",$C=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",hwe=t=>t?.code==="EPIPE";var mwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>H3({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),H3=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=eT(t,e,l);if(V3(l,e)){await u;return}let[d]=await Promise.all([fwe({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var gwe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?qf([t,e].filter(Boolean)):void 0,_we=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>H3({...hvt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:mvt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),hvt=({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}},mvt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as gvt}from"events";var ywe=t=>$g(t,"ipc"),Swe=(t,e)=>{let r=jP(t);ra({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Ewe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=ywe(s),a=Tc(e,"ipc"),c=Tc(r,"ipc");for await(let l of I3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(wbe(t,i,c),i.push(l)),o&&Swe(l,s);return i},vwe=async(t,e)=>(await Promise.allSettled([t]),e);var bwe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:S})=>{let v=ITe(t,f),y={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=mwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),T=_we({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),I=[],x=Ewe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:I,verboseInfo:p}),A=_vt(m,t,y),O=yvt(h,y);try{return await Promise.race([Promise.all([{},PTe(v),Promise.all(g),T,x,rbe(t,d),...A,...O]),_,Svt(t,S),...Zve(t,s,f,S),...yve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:S}),...Kve({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(R){return f.terminationReason??="other",Promise.all([{error:R},v,Promise.all(g.map(b=>z3(b))),z3(T),vwe(x,I),Promise.allSettled(A),Promise.allSettled(O)])}},_vt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:eT(n,i,r)),yvt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>no(s,{checkOpen:!1})&&!eo(s)).map(({type:i,value:s,stream:o=s})=>eT(o,n,e,{isSameDirection:bs.has(i),stopOnExit:i==="native"}))),Svt=async(t,{signal:e})=>{let[r]=await gvt(t,"error",{signal:e});throw r};var Twe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),tT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=na();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Wg=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 Evt}from"stream";import{callbackify as vvt}from"util";import{finished as wwe}from"stream/promises";var G3=async t=>{if(t!==void 0)try{await W3(t)}catch{}},Rwe=async t=>{if(t!==void 0)try{await Y3(t)}catch{}},W3=async t=>{await wwe(t,{cleanup:!0,readable:!1,writable:!0})},Y3=async t=>{await wwe(t,{cleanup:!0,readable:!0,writable:!1})},LC=async(t,e)=>{if(await t,e)throw e},DC=(t,e,r)=>{r&&!$C(r)?t.destroy(r):e&&t.destroy()};var Awe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||Fi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=K3(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=J3(a,o),{read:f,onStdoutDataDone:p}=Z3({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Evt({read:f,destroy:vvt(Q3.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return X3({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},K3=(t,e,r)=>{let n=Fg(t,e),i=tT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},J3=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:B3},Z3=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=na(),o=kC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){bvt(this,o,s)},onStdoutDataDone:s}},bvt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},X3=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await Y3(t),await n,await G3(i),await e,r.readable&&r.push(null)}catch(s){await G3(i),xwe(r,s)}},Q3=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Wg(r,e)&&(xwe(t,n),await LC(e,n))},xwe=(t,e)=>{DC(t,t.readable,e)};import{Writable as Tvt}from"stream";import{callbackify as Iwe}from"util";var Owe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=eW(t,r,e),o=new Tvt({...tW(n,t,i),destroy:Iwe(nW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return rW(n,o),o},eW=(t,e,r)=>{let n=ZP(t,e),i=tT(r,n,"writableFinal"),s=tT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},tW=(t,e,r)=>({write:wvt.bind(void 0,t),final:Iwe(Rvt.bind(void 0,t,e,r))}),wvt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Rvt=async(t,e,r)=>{await Wg(r,e)&&(t.writable&&t.end(),await e)},rW=async(t,e,r)=>{try{await W3(t),e.writable&&e.end()}catch(n){await Rwe(r),Pwe(e,n)}},nW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Wg(r,e),await Wg(n,e)&&(Pwe(t,i),await LC(e,i))},Pwe=(t,e)=>{DC(t,t.writable,e)};import{Duplex as Avt}from"stream";import{callbackify as xvt}from"util";var Cwe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||Fi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=K3(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=eW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=J3(c,a),{read:_,onStdoutDataDone:S}=Z3({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Avt({read:_,...tW(u,t,d),destroy:xvt(Ivt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return X3({subprocessStdout:c,onStdoutDataDone:S,readable:v,subprocess:t,subprocessStdin:u}),rW(u,v,c),v},Ivt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([Q3({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),nW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var iW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||Fi.has(e),o=Fg(t,r),a=kC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return Ovt(a,o,t)},Ovt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Nwe=(t,{encoding:e})=>{let r=Twe();t.readable=Awe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Owe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Cwe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=iW.bind(void 0,t,e),t[Symbol.asyncIterator]=iW.bind(void 0,t,e,{})};var kwe=(t,e)=>{for(let[r,n]of Cvt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Pvt=(async()=>{})().constructor.prototype,Cvt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Pvt,t)]);var $we=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=$vt(t,e,r),{subprocess:f,promise:p}=Dvt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=NC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),kwe(f,p),ia.set(f,{options:u,fileDescriptors:d}),f},$vt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=BP(t,e,r),{file:a,commandArguments:c,options:l}=cC(t,e,r),u=Lvt(l),d=HTe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Lvt=({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}},Dvt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=kvt(...lC(t,e,r))}catch(h){return qTe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;Nvt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];ewe(c,a,l),rwe(c,r,l);let d={},f=na();c.kill=gve.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=gwe(c,r),Nwe(c,r),UTe(c,r);let p=Mvt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:s,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},Mvt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,_]=await bwe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let S=h.map((g,T)=>Rc(g,e,T)),v=Rc(m,e,"all"),y=Uvt({errorInfo:d,exitCode:f,signal:p,stdio:S,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Vg(y,n,e)},Uvt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?Kb({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof sa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):_C({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var MC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,Fvt(n,t[n],i)]));return{...t,...r}},Fvt=(t,e,r)=>jvt.has(t)&&_r(e)&&_r(r)?{...e,...r}:r,jvt=new Set(["env",...$6]);var Tu=(t,e,r,n)=>{let i=(o,a,c)=>Tu(o,a,r,c),s=(...o)=>qvt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},qvt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(_r(s))return i(t,MC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Bvt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?NTe(a,c,l):$we(a,c,l,i)},Bvt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=HSe(e)?GSe(e,r):[e,...r],[o,a,c]=CP(...s),l=MC(MC(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Lwe=({file:t,commandArguments:e})=>Mwe(t,e),Dwe=({file:t,commandArguments:e})=>({...Mwe(t,e),isSync:!0}),Mwe=(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]=zvt(t);return{file:r,commandArguments:n}},zvt=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(Vvt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Vvt=/ +/g;var Uwe=(t,e,r)=>{t.sync=e(Hvt,r),t.s=t.sync},Fwe=({options:t})=>jwe(t),Hvt=({options:t})=>({...jwe(t),isSync:!0}),jwe=t=>({options:{...Gvt(t),...t}}),Gvt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},qwe={preferLocal:!0};var Bwe=Tu(()=>({})),Tfr=Tu(()=>({isSync:!0})),zwe=Tu(Lwe),wfr=Tu(Dwe),Rfr=Tu(Qve),Afr=Tu(Fwe,{},qwe,Uwe),{sendMessage:xfr,getOneMessage:Ifr,getEachMessage:Ofr,getCancelSignal:Pfr}=FTe();import{Transform as Wvt}from"stream";var Yvt=["NETLIFY_AI_GATEWAY_KEY"];function Kvt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...Yvt])]}function Jvt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function Zvt(){let e=Kvt().map(r=>process.env[r]).filter(r=>!(!r||Jvt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Ts(t){if(typeof t!="string")return t;let e=Zvt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(Xvt(n),"g");r=r.replace(i,"******")}),r}function Xvt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var rT=class extends Wvt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Ts(i);n(null,s)}},UC=Symbol("maskedWrite");function Vwe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[UC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Ts(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[UC]=!0,process.stdout.write=r}if(!process.stderr.write[UC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Ts(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[UC]=!0,process.stderr.write=r}}}var Hwe=!1,Gwe=()=>{Hwe=!0},_i=()=>Hwe;var nT=null,Wwe=t=>(nT&&nT.destroy(),nT=new Ac({totalAllowedTime:t}),nT),Ywe=()=>nT;var Ac=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&&_i())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await OP({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Ee.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var Kwe={name:"@netlify/agent-runner-cli",type:"module",version:"1.154.0-xhigh.0",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.2","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.5","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var rbt=ebt(import.meta.url),nbt=xc.dirname(rbt),ibt=tbt(import.meta.url),Yg=ye("shell"),sW=new Set,Jwe={preferLocal:!0},Wn=(t,e,r)=>{let[n,i]=sbt(e,r),s={...Jwe,...i},o=Bwe(t,n,s);Xwe(o,s),t0e(o);let a=r?.idleTimeout;return a&&a>0&&e0e(o,a),o},Zwe=(t,e)=>{let r={...Jwe,...e},n=zwe(t,r);return Xwe(n,r),t0e(n),e?.idleTimeout&&e.idleTimeout>0&&e0e(n,e.idleTimeout),n},sbt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Xwe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Ic.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new rT).pipe(Ic.stdout),t.stderr?.pipe(new rT).pipe(Ic.stderr);return}t.stdout?.pipe(Ic.stdout),t.stderr?.pipe(Ic.stderr)},oW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ic.kill(-t.pid,e),Yg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Yg.error("Error killing process:",r),!1}},Qwe=t=>oW(t,"SIGKILL"),e0e=(t,e)=>{let r=null,n=()=>{Yg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),oW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Yg.log(`Force killing idle process ${t.pid}`),Qwe(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)},t0e=t=>{sW.add(t);let e=Ywe();if(e){let r=e.onTimesUp(()=>{Yg.log(`Global timer expired, killing process ${t.pid}`),oW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Yg.log(`Force killing process ${t.pid} after timeout`),Qwe(t))},5e3)});t.on("exit",()=>{sW.delete(t),r()}),t.on("error",()=>{sW.delete(t),r()})}};function aa(t,e){if(!Ic.env.NETLIFY_LOCAL_MODE)try{let i=ibt.resolve(Kwe.name),s=xc.dirname(i);for(;s!==xc.dirname(s);){let o=xc.dirname(s);if(xc.basename(o)==="node_modules"){let a=xc.join(o,".bin",e);if(FC.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Ic.env.NODE_PATH){let i=xc.join(Ic.env.NODE_PATH,".bin",e);if(FC.existsSync(i))return i}let r=xc.join(t,"node_modules",".bin",e);if(FC.existsSync(r))return r;let n=xc.join(nbt,"..","node_modules",".bin",e);if(FC.existsSync(n))return n}import cD from"process";import{fileURLToPath as $Lt}from"url";import{createRequire as LLt}from"module";import lD from"path";var obt="__netlify__getTracer",abt="__netlify__shutdownTracers",gt=(t,e)=>globalThis[obt]?.(t,e),r0e=async()=>globalThis[abt]?.();function zf(t,e,r,n,i){let s=typeof n=="function"?n:typeof r=="function"?r:i;if(!s)throw new Error("function to execute with active span is missing");return t?t.withActiveSpan(e,r,n,s):s()}import{setTimeout as xLt}from"timers/promises";Ne();import cwt from"process";Ne();var Cbt=(t,e)=>{e.recordException(t),e.setStatus({code:In.ERROR})};var Cc=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=K0e(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>J0e(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=K0e(r,n,i),c=this._tracer.startSpan(e,s,o);return J0e(c,s,a)}};function K0e(t,e,r){let n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??Ft.active(),{opts:n,ctx:i,fn:s}}function J0e(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:Cbt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}Ne();var t_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var jW=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=oRe(e),n._asyncAttributesPending=e.filter(([i,s])=>t_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(t_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=oRe(this._rawAttributes),this._schemaUrl=Nbt(r?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[r,n]=this._rawAttributes[e];this._rawAttributes[e]=[r,t_(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&oe.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(t_(n)){oe.debug(`Unsettled resource attribute ${r} skipped`);continue}n!=null&&(e[r]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(e){if(e==null)return this;let r=kbt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function qW(t,e){return jW.FromAttributeList(Object.entries(t),e)}function oRe(t){return t.map(([e,r])=>t_(r)?[e,r.catch(n=>{oe.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function Nbt(t){if(typeof t=="string"||t===void 0)return t;oe.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function kbt(t,e){let r=t?.schemaUrl,n=e?.schemaUrl,i=r===void 0||r==="",s=n===void 0||n==="";if(i)return n;if(s||r===n)return r;oe.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Ne();var mT=class{emit(e){}enabled(){return!1}},aRe=new mT;var gT=Symbol.for("io.opentelemetry.js.api.logs"),r_=globalThis;function cRe(t,e,r){return n=>n===t?e:r}var BW=1;var zW=class{getLogger(e,r,n){return new mT}},cN=new zW;var lN=class{constructor(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}emit(e){this._getLogger().emit(e)}enabled(e){return this._getLogger().enabled(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):aRe}};var _T=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new lN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:cN}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(e,r,n)}};var uN=class t{constructor(){this._proxyLoggerProvider=new _T}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return r_[gT]?this.getLoggerProvider():(r_[gT]=cRe(BW,e,cN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=r_[gT])===null||e===void 0?void 0:e.call(r_,BW))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete r_[gT],this._proxyLoggerProvider=new _T}};var lRe=uN.getInstance();function uRe(t,e,r,n){for(let i=0,s=t.length;i<s;i++){let o=t[i];e&&o.setTracerProvider(e),r&&o.setMeterProvider(r),n&&o.setLoggerProvider&&o.setLoggerProvider(n),o.getConfig().enabled||o.enable()}}function dRe(t){t.forEach(e=>e.disable())}function VW(t){let e=t.tracerProvider||At.getTracerProvider(),r=t.meterProvider||hT.getMeterProvider(),n=t.loggerProvider||lRe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return uRe(i,e,r,n),()=>{dRe(i)}}Ne();var $bt=zr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function fRe(t){return t.getValue($bt)===!0}var n_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(n_||(n_={}));Ne();var HW="[_0-9a-z-*/]",Lbt=`[a-z]${HW}{0,255}`,Dbt=`[a-z0-9]${HW}{0,240}@[a-z]${HW}{0,13}`,Mbt=new RegExp(`^(?:${Lbt}|${Dbt})$`),Ubt=/^[ -~]{0,255}[!-~]$/,Fbt=/,|=/;function GW(t){return Mbt.test(t)}function WW(t){return Ubt.test(t)&&!Fbt.test(t)}var jbt=32,pRe=512,hRe=",",mRe="=",dN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!GW(e)||!WW(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>pRe)return this;let o=new Map(n);return o.delete(e),o.set(e,r),this._fromState(o,s)}unset(e){let r=this._getState(),n=r.get(e);if(typeof n!="string")return this;let i=this._length-(e.length+n.length+1);r.size>1&&(i=i-1);let s=new Map(r);return s.delete(e),this._fromState(s,i)}get(e){return this._getState().get(e)}serialize(){let e="",r=0;for(let n of this._getState())r>0&&(e=hRe+e),e=`${n[0]}${mRe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(hRe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(mRe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!GW(a)||!WW(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>pRe)&&(r.set(a,c),n=l,r.size>=jbt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var fN="traceparent",pN="tracestate",qbt="00",Bbt="(?!ff)[\\da-f]{2}",zbt="(?![0]{32})[\\da-f]{32}",Vbt="(?![0]{16})[\\da-f]{16}",Hbt="[\\da-f]{2}",Gbt=new RegExp(`^\\s?(${Bbt})-(${zbt})-(${Vbt})-(${Hbt})(-.*)?\\s?$`);function gRe(t){let e=Gbt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Au=class{inject(e,r,n){let i=At.getSpanContext(e);if(!i||fRe(e)||!yi(i))return;let s=`${qbt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||dr.NONE).toString(16)}`;n.set(r,fN,s),i.traceState&&n.set(r,pN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,fN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=gRe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,pN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new dN(typeof c=="string"?c:void 0)}return At.setSpanContext(e,o)}fields(){return[fN,pN]}};var hN=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var yT=class{_isCalled=!1;_deferred=new hN;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var sk=Dn(NY(),1);Ne();var Xxe=t=>{throw TypeError(t)},DY=(t,e,r)=>e.has(t)||Xxe("Cannot "+r),ik=(t,e,r)=>(DY(t,e,"read from private field"),r?r.call(t):e.get(t)),kY=(t,e,r)=>e.has(t)?Xxe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Kxe=(t,e,r,n)=>(DY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),awt=(t,e,r)=>(DY(t,e,"access private method"),r),Jxe="__netlify__getTracer",lwt="__netlify__shutdownTracers",uwt="__nfOTLPTrace",kT,$T,LY,Qxe,dwt=class{constructor(){kY(this,LY),kY(this,kT),kY(this,$T),Kxe(this,kT,new yT(awt(this,LY,Qxe),this)),Kxe(this,$T,oe.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(ik(this,$T).debug(`export ${t.length.toString()} spans`),ik(this,kT).isCalled){e({code:n_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(uwt,JSON.stringify(fwt(t))),e({code:n_.SUCCESS})}shutdown(){return ik(this,kT).call()}};kT=new WeakMap;$T=new WeakMap;LY=new WeakSet;Qxe=function(){return ik(this,$T).debug("Shutting down"),Promise.resolve()};function fwt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:nk(e.resource.attributes),droppedAttributesCount:e.droppedAttributesCount},scopeSpans:[{scope:{name:e.instrumentationScope.name,version:e.instrumentationScope.version},spans:[{traceId:r.traceId,spanId:r.spanId,parentSpanId:e.parentSpanContext?.spanId,name:e.name,kind:e.kind||io.SERVER,startTimeUnixNano:$Y(e.startTime),endTimeUnixNano:$Y(e.endTime),attributes:nk(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:$Y(n.time),attributes:nk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedEventsCount:e.droppedEventsCount,status:{code:e.status.code,message:e.status.message},links:e.links.map(n=>({spanId:n.context.spanId,traceId:n.context.traceId,attributes:nk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function nk(t){return Object.keys(t).map(e=>eIe(e,t[e]))}function eIe(t,e){return{key:t,value:tIe(e)}}function tIe(t){let e=typeof t;return e==="string"?{stringValue:t}:e==="number"?Number.isInteger(t)?{intValue:t}:{doubleValue:t}:e==="boolean"?{boolValue:t}:t instanceof Uint8Array?{bytesValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(tIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>eIe(r,n))}}:{}}function $Y(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var Zxe={name:"@netlify/otel",version:"6.0.5",type:"module",engines:{node:"^18.14.0 || >=20.6.1"},main:"./dist/main.cjs",module:"./dist/main.js",types:"./dist/main.d.ts",exports:{".":{require:{types:"./dist/main.d.cts",default:"./dist/main.cjs"},import:{types:"./dist/main.d.ts",default:"./dist/main.js"},default:{types:"./dist/main.d.ts",default:"./dist/main.js"}},"./package.json":"./package.json","./bootstrap":{require:{types:"./dist/bootstrap/main.d.cts",default:"./dist/bootstrap/main.cjs"},import:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"},default:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"}},"./exporter-netlify":{require:{types:"./dist/exporters/netlify.d.cts",default:"./dist/exporters/netlify.cjs"},import:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"},default:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"}},"./instrumentation-fetch":{require:{types:"./dist/instrumentations/fetch.d.cts",default:"./dist/instrumentations/fetch.cjs"},import:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"},default:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"}},"./instrumentation-http":{require:{types:"./dist/instrumentations/http.d.cts",default:"./dist/instrumentations/http.cjs"},import:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"},default:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"}},"./opentelemetry":{require:{types:"./dist/opentelemetry.d.cts",default:"./dist/opentelemetry.cjs"},import:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"},default:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"}}},files:["dist/**/*"],scripts:{build:"tsup-node",dev:"tsup-node --watch",prepack:"npm run build",test:"run-s build test:ci","test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"vitest","test:dev:vitest:watch":"vitest watch","test:ci:vitest":"vitest run",publint:"npx -y publint --strict"},keywords:["netlify","cdn"],license:"MIT",repository:{type:"git",url:"https://github.com/netlify/primitives.git",directory:"packages/otel"},bugs:{url:"https://github.com/netlify/primitives/issues"},author:"Netlify Inc.",devDependencies:{"@netlify/dev-utils":"^4.4.7",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.8.0","@opentelemetry/instrumentation":"^0.220.0","@opentelemetry/resources":"2.9.0","@opentelemetry/sdk-trace-node":"2.9.0"}},rIe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,Jxe))return;let e=cwt.version.slice(1),r=qW({"service.name":t.serviceName,"service.version":t.serviceVersion,"process.runtime.name":"nodejs","process.runtime.version":e,"deployment.environment":t.deploymentEnvironment,"http.url":t.siteUrl,"netlify.site.id":t.siteId,"netlify.site.name":t.siteName}),n=t.spanProcessors??[pwt()],i=new sk.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Au});let s=t.instrumentations??[];VW({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,Jxe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new Cc(At.getTracer(a,c)):new Cc(At.getTracer(Zxe.name,Zxe.version))}}),Object.defineProperty(globalThis,lwt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},pwt=()=>new sk.SimpleSpanProcessor(new dwt);Ne();var LT=Dn(NY(),1);Ne();import*as ok from"diagnostics_channel";var nIe=class{constructor(t={}){this.instrumentationName="@netlify/otel/instrumentation-fetch",this.instrumentationVersion="1.0.0",this._recordFromReq=new WeakMap,this.config=t,this._channelSubs=[]}getConfig(){return this.config}setConfig(){}setMeterProvider(){}setTracerProvider(t){this.provider=t}getTracerProvider(){return this.provider}annotateFromRequest(t,e){let r=this.config.getRequestAttributes?.(e)??{},n=new URL(e.path,e.origin);t.setAttributes({...r,"http.request.method":e.method,"url.full":n.href,"url.host":n.host,"url.scheme":n.protocol.slice(0,-1),"server.address":n.hostname,"server.port":n.port,...this.prepareHeaders("request",e.headers)})}annotateFromResponse(t,e){let r=this.config.getResponseAttributes?.(e)??{};t.setAttributes({...r,"http.response.status_code":e.statusCode,...this.prepareHeaders("response",e.headers)}),t.setStatus({code:e.statusCode>=400?In.ERROR:In.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof Cc?t:new Cc(t)}enable(){this._channelSubs.length>0||(this.subscribe("undici:request:create",this.onRequestCreate.bind(this)),this.subscribe("undici:request:headers",this.onRequestHeaders.bind(this)),this.subscribe("undici:request:trailers",this.onRequestEnd.bind(this)),this.subscribe("undici:request:error",this.onRequestError.bind(this)))}subscribe(t,e){ok.subscribe(t,e);let r=()=>ok.unsubscribe(t,e);this._channelSubs.push({name:t,unsubscribe:r})}disable(){this._channelSubs.forEach(t=>{t.unsubscribe()}),this._channelSubs.length=0}onRequestCreate({request:t}){try{let e=this.getTracer(),r=new URL(t.path,t.origin);if(!e||t.method==="CONNECT"||this.config.skipURLs?.some(i=>typeof i=="string"?r.href.startsWith(i):i.test(r.href)))return;let n=e.startSpan(this.getRequestMethod(t.method),{kind:io.CLIENT},Ft.active());this.annotateFromRequest(n,t),this._recordFromReq.set(t,n)}catch{}}onRequestHeaders({request:t,response:e}){try{let r=this._recordFromReq.get(t);if(!r)return;this.annotateFromResponse(r,e)}catch{}}onRequestError({request:t,error:e}){try{let r=this._recordFromReq.get(t);if(!r)return;r.recordException(e),r.setStatus({code:In.ERROR,message:e.message}),r.end(),this._recordFromReq.delete(t)}catch{}}onRequestEnd({request:t}){try{let e=this._recordFromReq.get(t);if(!e)return;e.end(),this._recordFromReq.delete(t)}catch{}}};var xDe=Dn(RDe(),1);var oD=ye("tracing"),ADe=8e3,ILt=5e3,Qw=async(t=ILt)=>{try{await Promise.race([r0e(),xLt(t)])}catch(e){oD.warn("Failed to flush tracers on shutdown",e)}},IDe=async(t,e,r)=>{if(!gt()){let n=[new LT.SimpleSpanProcessor(new MJ),new LT.SimpleSpanProcessor(new xDe.OTLPTraceExporter({url:r.exporterUrl}))];await rIe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new nIe({skipHeaders:!0})]})}return r.traceparent?(Yn.setGlobalPropagator(new Au),Yn.extract(Ft.active(),{traceparent:r.traceparent,isRemote:!0})):Ft.active()};function Vt(t,e,r){return oD.log(`\u23F3 TRACE: ${e} starting...`),zf(t,e,r)}var MJ=class{export(e,r){for(let n of e)this.logSpan(n);r({code:1})}async shutdown(){}forceFlush(){return Promise.resolve()}logSpan(e){let r=(e.endTime[0]-e.startTime[0])*1e3+(e.endTime[1]-e.startTime[1])/1e6,n=e.attributes,i=[];for(let[a,c]of Object.entries(n))a.includes("duration")&&typeof c=="number"?i.push(`${a}=${c.toFixed(2)}ms`):i.push(`${a}=${c}`);let s=e.status?.code===2?"\u274C":"\u2705",o=i.length>0?` [${i.join(", ")}]`:"";oD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&oD.log(` \u274C Error: ${e.status.message}`)}};function UJ(){return nt().captureLlmContentEnabled}function ODe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function aD(t,e,r){let n={role:t,parts:[{type:"text",content:Ts(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var OLt=new Set([te.Task,te.RunCommand,te.Explore,te.FileRead,te.FileWrite,te.Notebook,te.Web,te.Todo,te.Skill,te.Tool,te.Memorize,te.Deployment,te.SiteGeneration]);function PDe(t,e,r,n){if(!t.length)return;let i=gt();if(!i)return;let s=UJ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&OLt.has(a.category),f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,_=a.message?a.message.length>ADe?`${a.message.slice(0,ADe)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Ts(_)}:{"gen_ai.output.messages":aD("assistant",_)}:{}}}).end(u)})}import{readdir as PLt,rm as CLt}from"fs/promises";import{join as NLt}from"path";async function CDe(t,e=[]){let n=(await PLt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>CLt(NLt(t,i),{recursive:!0,force:!0})))}var kLt=700,NDe=t=>t.mode==="create"&&(t.accountType===Tl||t.enforcedAICreditsRemaining!=null&&t.enforcedAICreditsRemaining<=kLt);var DLt=lD.dirname($Lt(import.meta.url)),kDe=LLt(import.meta.url),MLt=lD.resolve(DLt,"scripts/scaffold.js"),ULt="scripts/scaffold.js",FLt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,FJ=t=>{if(t.length>=2){let e=t[0],r=t[t.length-1];if(e==='"'&&r==='"'||e==="'"&&r==="'")return t.slice(1,-1)}return t},jLt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),qLt=t=>{let e=FJ(t);return e==="node"||e.endsWith("/node")},tl=t=>{if(typeof t!="string")return!1;let e=t.match(FLt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&jLt(FJ(e[r]));)r+=1;if(r>=e.length||!qLt(e[r]))return!1;let n=e[r+1];return n?FJ(n).includes(ULt):!1},hy=ye("create_stage"),$De="Do not run local validation or dev-server commands to check your work \u2014 specifically `tsc`, `npx tsc`, `vite build`, `vite dev`, or any equivalent build/start/test command. The build pipeline installs and validates the project automatically after your edits. Verify your changes by reading the files you edited.",BLt=`${$De}
|
|
590
|
+
if (condition) { yield value; }`)};import{Buffer as dSt}from"buffer";import{StringDecoder as fSt}from"string_decoder";var TC=(t,e,r)=>{if(r)return;if(t)return{transform:pSt.bind(void 0,new TextEncoder)};let n=new fSt(e);return{transform:hSt.bind(void 0,n),final:mSt.bind(void 0,n)}},pSt=function*(t,e){dSt.isBuffer(e)?yield bc(e):typeof e=="string"?yield t.encode(e):yield e},hSt=function*(t,e){yield kr(e)?t.write(e):e},mSt=function*(t){let e=t.end();e!==""&&(yield e)};import{callbackify as gTe}from"util";var b3=gTe(async(t,e,r,n)=>{e.currentIterable=t(...r);try{for await(let i of e.currentIterable)n.push(i)}finally{delete e.currentIterable}}),wC=async function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=_St}=e[r];for await(let i of n(t))yield*wC(i,e,r+1)},_Te=async function*(t){for(let[e,{final:r}]of Object.entries(t))yield*gSt(r,Number(e),t)},gSt=async function*(t,e,r){if(t!==void 0)for await(let n of t())yield*wC(n,r,e+1)},yTe=gTe(async({currentIterable:t},e)=>{if(t!==void 0){await(e?t.throw(e):t.return());return}if(e)throw e}),_St=function*(t){yield t};var T3=(t,e,r,n)=>{try{for(let i of t(...e))r.push(i);n()}catch(i){n(i)}},STe=(t,e)=>[...e.flatMap(r=>[...jf(r,t,0)]),...Jb(t)],jf=function*(t,e,r){if(r===e.length){yield t;return}let{transform:n=SSt}=e[r];for(let i of n(t))yield*jf(i,e,r+1)},Jb=function*(t){for(let[e,{final:r}]of Object.entries(t))yield*ySt(r,Number(e),t)},ySt=function*(t,e,r){if(t!==void 0)for(let n of t())yield*jf(n,r,e+1)},SSt=function*(t){yield t};var w3=({value:t,value:{transform:e,final:r,writableObjectMode:n,readableObjectMode:i},optionName:s},{encoding:o})=>{let a={},c=vTe(t,o,s),l=Ff(e),u=Ff(r),d=l?b3.bind(void 0,wC,a):T3.bind(void 0,jf),f=l||u?b3.bind(void 0,_Te,a):T3.bind(void 0,Jb),p=l||u?yTe.bind(void 0,a):void 0;return{stream:new ESt({writableObjectMode:n,writableHighWaterMark:ETe(n),readableObjectMode:i,readableHighWaterMark:ETe(i),transform(m,_,S){d([m,c,0],this,S)},flush(m){f([c],this,m)},destroy:p})}},RC=(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=vTe(o,r,a);t=STe(c,t)}return t},vTe=({transform:t,final:e,binary:r,writableObjectMode:n,readableObjectMode:i,preserveNewlines:s},o,a)=>{let c={};return[{transform:pTe(n,a)},TC(r,o,n),bC(r,s,n,c),{transform:t,final:e},{transform:hTe(i,a)},fTe({binary:r,preserveNewlines:s,readableObjectMode:i,state:c})].filter(Boolean)};var bTe=(t,e)=>{for(let r of vSt(t))bSt(t,r,e)},vSt=t=>new Set(Object.entries(t).filter(([,{direction:e}])=>e==="input").map(([e])=>Number(e))),bSt=(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 ${bu[a]} with synchronous methods.`)}let o=i.map(({contents:a})=>a).map(a=>TSt(a,n));r.input=jb(o)},TSt=(t,e)=>{let r=RC(t,e,"utf8",!0);return wSt(r),jb(r)},wSt=t=>{let e=t.find(r=>typeof r!="string"&&!kr(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 ISt,appendFileSync as OSt}from"fs";var AC=({stdioItems:t,encoding:e,verboseInfo:r,fdNumber:n})=>n!=="all"&&$g(r,n)&&!Fi.has(e)&&RSt(n)&&(t.some(({type:i,value:s})=>i==="native"&&ASt.has(s))||t.every(({type:i})=>bs.has(i))),RSt=t=>t===1||t===2,ASt=new Set(["pipe","overlapped"]),TTe=async(t,e,r,n)=>{for await(let i of t)xSt(e)||RTe(i,r,n)},wTe=(t,e,r)=>{for(let n of t)RTe(n,e,r)},xSt=t=>t._readableState.pipes.length>0,RTe=(t,e,r)=>{let n=jP(t);ra({type:"output",verboseMessage:n,fdNumber:e,verboseInfo:r})};var ATe=({fileDescriptors:t,syncResult:{output:e},options:r,isMaxBuffer:n,verboseInfo:i})=>{if(e===null)return{output:Array.from({length:3})};let s={},o=new Set([]);return{output:e.map((c,l)=>PSt({result:c,fileDescriptors:t,fdNumber:l,state:s,outputFiles:o,isMaxBuffer:n,verboseInfo:i},r)),...s}},PSt=({result:t,fileDescriptors:e,fdNumber:r,state:n,outputFiles:i,isMaxBuffer:s,verboseInfo:o},{buffer:a,encoding:c,lines:l,stripFinalNewline:u,maxBuffer:d})=>{if(t===null)return;let f=xbe(t,s,d),p=bc(f),{stdioItems:h,objectMode:m}=e[r],_=CSt([p],h,c,n),{serializedResult:S,finalResult:v=S}=NSt({chunks:_,objectMode:m,encoding:c,lines:l,stripFinalNewline:u,fdNumber:r});kSt({serializedResult:S,fdNumber:r,state:n,verboseInfo:o,encoding:c,stdioItems:h,objectMode:m});let y=a[r]?v:void 0;try{return n.error===void 0&&$St(S,h,i),y}catch(g){return n.error=g,y}},CSt=(t,e,r,n)=>{try{return RC(t,e,r,!1)}catch(i){return n.error=i,t}},NSt=({chunks:t,objectMode:e,encoding:r,lines:n,stripFinalNewline:i,fdNumber:s})=>{if(e)return{serializedResult:t};if(r==="buffer")return{serializedResult:jb(t)};let o=qSe(t,r);return n[s]?{serializedResult:o,finalResult:v3(o,!i[s],e)}:{serializedResult:o}},kSt=({serializedResult:t,fdNumber:e,state:r,verboseInfo:n,encoding:i,stdioItems:s,objectMode:o})=>{if(!AC({stdioItems:s,encoding:i,verboseInfo:n,fdNumber:e}))return;let a=v3(t,!1,o);try{wTe(a,e,n)}catch(c){r.error??=c}},$St=(t,e,r)=>{for(let{path:n,append:i}of e.filter(({type:s})=>EC.has(s))){let s=typeof n=="string"?n:n.toString();i||r.has(s)?OSt(n,t):(r.add(s),ISt(n,t))}};var xTe=([,t,e],r)=>{if(r.all)return t===void 0?e:e===void 0?t:Array.isArray(t)?Array.isArray(e)?[...t,...e]:[...t,Rc(e,r,"all")]:Array.isArray(e)?[Rc(t,r,"all"),...e]:kr(t)&&kr(e)?P6([t,e]):`${t}${e}`};import{once as R3}from"events";var ITe=async(t,e)=>{let[r,n]=await LSt(t);return e.isForcefullyTerminated??=!1,[r,n]},LSt=async t=>{let[e,r]=await Promise.allSettled([R3(t,"spawn"),R3(t,"exit")]);return e.status==="rejected"?[]:r.status==="rejected"?OTe(t):r.value},OTe=async t=>{try{return await R3(t,"exit")}catch{return OTe(t)}},PTe=async t=>{let[e,r]=await t;if(!DSt(e,r)&&A3(e,r))throw new to;return[e,r]},DSt=(t,e)=>t===void 0&&e===void 0,A3=(t,e)=>t!==0||e!==null;var CTe=({error:t,status:e,signal:r,output:n},{maxBuffer:i})=>{let s=MSt(t,e,r),o=s?.code==="ETIMEDOUT",a=Abe(s,n,i);return{resultError:s,exitCode:e,signal:r,timedOut:o,isMaxBuffer:a}},MSt=(t,e,r)=>t!==void 0?t:A3(e,r)?new to:void 0;var NTe=(t,e,r)=>{let{file:n,commandArguments:i,command:s,escapedCommand:o,startTime:a,verboseInfo:c,options:l,fileDescriptors:u}=FSt(t,e,r),d=BSt({file:n,commandArguments:i,options:l,command:s,escapedCommand:o,verboseInfo:c,fileDescriptors:u,startTime:a});return Vg(d,c,l)},FSt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=BP(t,e,r),a=jSt(r),{file:c,commandArguments:l,options:u}=cC(t,e,a);qSt(u);let d=cTe(u,o);return{file:c,commandArguments:l,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},jSt=t=>t.node&&!t.ipc?{...t,ipc:!1}:t,qSt=({ipc:t,ipcInput:e,detached:r,cancelSignal:n})=>{e&&xC("ipcInput"),t&&xC("ipc: true"),r&&xC("detached: true"),n&&xC("cancelSignal")},xC=t=>{throw new TypeError(`The "${t}" option cannot be used with synchronous methods.`)},BSt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,verboseInfo:s,fileDescriptors:o,startTime:a})=>{let c=zSt({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:o,startTime:a});if(c.failed)return c;let{resultError:l,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p}=CTe(c,r),{output:h,error:m=l}=ATe({fileDescriptors:o,syncResult:c,options:r,isMaxBuffer:p,verboseInfo:s}),_=h.map((v,y)=>Rc(v,r,y)),S=Rc(xTe(h,r),r,"all");return HSt({error:m,exitCode:u,signal:d,timedOut:f,isMaxBuffer:p,stdio:_,all:S,options:r,command:n,escapedCommand:i,startTime:a})},zSt=({file:t,commandArguments:e,options:r,command:n,escapedCommand:i,fileDescriptors:s,startTime:o})=>{try{bTe(s,r);let a=VSt(r);return USt(...lC(t,e,a))}catch(a){return zg({error:a,command:n,escapedCommand:i,fileDescriptors:s,options:r,startTime:o,isSync:!0})}},VSt=({encoding:t,maxBuffer:e,...r})=>({...r,encoding:"buffer",maxBuffer:gC(e)}),HSt=({error:t,exitCode:e,signal:r,timedOut:n,isMaxBuffer:i,stdio:s,all:o,options:a,command:c,escapedCommand:l,startTime:u})=>t===void 0?_C({command:c,escapedCommand:l,stdio:s,all:o,ipcOutput:[],options:a,startTime:u}):Kb({error:t,command:c,escapedCommand:l,timedOut:n,isCanceled:!1,isGracefullyCanceled:!1,isMaxBuffer:i,isForcefullyTerminated:!1,exitCode:e,signal:r,stdio:s,all:o,ipcOutput:[],options:a,startTime:u,isSync:!0});import{setMaxListeners as Nvt}from"events";import{spawn as kvt}from"child_process";import MTe from"process";import{once as x3,on as GSt}from"events";var kTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0,filter:s}={})=>(Mg({methodName:"getOneMessage",isSubprocess:r,ipc:n,isConnected:rC(t)}),WSt({anyProcess:t,channel:e,isSubprocess:r,filter:s,reference:i})),WSt=async({anyProcess:t,channel:e,isSubprocess:r,filter:n,reference:i})=>{XP(e,i);let s=vu(t,e,r),o=new AbortController;try{return await Promise.race([YSt(s,n,o),KSt(s,r,o),JSt(s,r,o)])}catch(a){throw Ug(t),a}finally{o.abort(),QP(e,i)}},YSt=async(t,e,{signal:r})=>{if(e===void 0){let[n]=await x3(t,"message",{signal:r});return n}for await(let[n]of GSt(t,"message",{signal:r}))if(e(n))return n},KSt=async(t,e,{signal:r})=>{await x3(t,"disconnect",{signal:r}),Sve(e)},JSt=async(t,e,{signal:r})=>{let[n]=await x3(t,"strict:error",{signal:r});throw KP(n,e)};import{once as LTe,on as ZSt}from"events";var DTe=({anyProcess:t,channel:e,isSubprocess:r,ipc:n},{reference:i=!0}={})=>I3({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:!r,reference:i}),I3=({anyProcess:t,channel:e,isSubprocess:r,ipc:n,shouldAwait:i,reference:s})=>{Mg({methodName:"getEachMessage",isSubprocess:r,ipc:n,isConnected:rC(t)}),XP(e,s);let o=vu(t,e,r),a=new AbortController,c={};return XSt(t,o,a),QSt({ipcEmitter:o,isSubprocess:r,controller:a,state:c}),eEt({anyProcess:t,channel:e,ipcEmitter:o,isSubprocess:r,shouldAwait:i,controller:a,state:c,reference:s})},XSt=async(t,e,r)=>{try{await LTe(e,"disconnect",{signal:r.signal}),r.abort()}catch{}},QSt=async({ipcEmitter:t,isSubprocess:e,controller:r,state:n})=>{try{let[i]=await LTe(t,"strict:error",{signal:r.signal});n.error=KP(i,e),r.abort()}catch{}},eEt=async function*({anyProcess:t,channel:e,ipcEmitter:r,isSubprocess:n,shouldAwait:i,controller:s,state:o,reference:a}){try{for await(let[c]of ZSt(r,"message",{signal:s.signal}))$Te(o),yield c}catch{$Te(o)}finally{s.abort(),QP(e,a),n||Ug(t),i&&await t}},$Te=({error:t})=>{if(t)throw t};var UTe=(t,{ipc:e})=>{Object.assign(t,jTe(t,!1,e))},FTe=()=>{let t=MTe,e=!0,r=MTe.channel!==void 0;return{...jTe(t,e,r),getCancelSignal:Gve.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})}},jTe=(t,e,r)=>({sendMessage:oC.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getOneMessage:kTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r}),getEachMessage:DTe.bind(void 0,{anyProcess:t,channel:t.channel,isSubprocess:e,ipc:r})});import{ChildProcess as tEt}from"child_process";import{PassThrough as rEt,Readable as nEt,Writable as iEt,Duplex as sEt}from"stream";var qTe=({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,verboseInfo:o})=>{y3(n);let a=new tEt;oEt(a,n),Object.assign(a,{readable:aEt,writable:cEt,duplex:lEt});let c=zg({error:t,command:e,escapedCommand:r,fileDescriptors:n,options:i,startTime:s,isSync:!1}),l=uEt(c,o,i);return{subprocess:a,promise:l}},oEt=(t,e)=>{let r=Zb(),n=Zb(),i=Zb(),s=Array.from({length:e.length-3},Zb),o=Zb(),a=[r,n,i,...s];Object.assign(t,{stdin:r,stdout:n,stderr:i,all:o,stdio:a})},Zb=()=>{let t=new rEt;return t.end(),t},aEt=()=>new nEt({read(){}}),cEt=()=>new iEt({write(){}}),lEt=()=>new sEt({read(){},write(){}}),uEt=async(t,e,r)=>Vg(t,e,r);import{createReadStream as BTe,createWriteStream as zTe}from"fs";import{Buffer as dEt}from"buffer";import{Readable as Xb,Writable as fEt,Duplex as pEt}from"stream";var HTe=(t,e)=>vC(hEt,t,e,!1),Qb=({type:t,optionName:e})=>{throw new TypeError(`The \`${e}\` option cannot be ${bu[t]}.`)},VTe={fileNumber:Qb,generator:w3,asyncGenerator:w3,nodeStream:({value:t})=>({stream:t}),webTransform({value:{transform:t,writableObjectMode:e,readableObjectMode:r}}){let n=e||r;return{stream:pEt.fromWeb(t,{objectMode:n})}},duplex:({value:{transform:t}})=>({stream:t}),native(){}},hEt={input:{...VTe,fileUrl:({value:t})=>({stream:BTe(t)}),filePath:({value:{file:t}})=>({stream:BTe(t)}),webStream:({value:t})=>({stream:Xb.fromWeb(t)}),iterable:({value:t})=>({stream:Xb.from(t)}),asyncIterable:({value:t})=>({stream:Xb.from(t)}),string:({value:t})=>({stream:Xb.from(t)}),uint8Array:({value:t})=>({stream:Xb.from(dEt.from(t))})},output:{...VTe,fileUrl:({value:t})=>({stream:zTe(t)}),filePath:({value:{file:t,append:e}})=>({stream:zTe(t,e?{flags:"a"}:{})}),webStream:({value:t})=>({stream:fEt.fromWeb(t)}),iterable:Qb,asyncIterable:Qb,string:Qb,uint8Array:Qb}};import{on as mEt,once as GTe}from"events";import{PassThrough as gEt,getDefaultHighWaterMark as _Et}from"stream";import{finished as KTe}from"stream/promises";function qf(t){if(!Array.isArray(t))throw new TypeError(`Expected an array, got \`${typeof t}\`.`);for(let i of t)P3(i);let e=t.some(({readableObjectMode:i})=>i),r=yEt(t,e),n=new O3({objectMode:e,writableHighWaterMark:r,readableHighWaterMark:r});for(let i of t)n.add(i);return n}var yEt=(t,e)=>{if(t.length===0)return _Et(e);let r=t.filter(({readableObjectMode:n})=>n===e).map(({readableHighWaterMark:n})=>n);return Math.max(...r)},O3=class extends gEt{#e=new Set([]);#r=new Set([]);#t=new Set([]);#n;#s=Symbol("unpipe");#i=new WeakMap;add(e){if(P3(e),this.#e.has(e))return;this.#e.add(e),this.#n??=SEt(this,this.#e,this.#s);let r=bEt({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(P3(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)}},SEt=async(t,e,r)=>{IC(t,WTe);let n=new AbortController;try{await Promise.race([EEt(t,n),vEt(t,e,r,n)])}finally{n.abort(),IC(t,-WTe)}},EEt=async(t,{signal:e})=>{try{await KTe(t,{signal:e,cleanup:!0})}catch(r){throw JTe(t,r),r}},vEt=async(t,e,r,{signal:n})=>{for await(let[i]of mEt(t,"unpipe",{signal:n}))e.has(i)&&i.emit(r)},P3=t=>{if(typeof t?.pipe!="function")throw new TypeError(`Expected a readable stream, got: \`${typeof t}\`.`)},bEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,onFinished:s,unpipeEvent:o})=>{IC(t,YTe);let a=new AbortController;try{await Promise.race([TEt(s,e,a),wEt({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:a}),REt({stream:e,streams:r,ended:n,aborted:i,unpipeEvent:o,controller:a})])}finally{a.abort(),IC(t,-YTe)}r.size>0&&r.size===n.size+i.size&&(n.size===0&&i.size>0?C3(t):AEt(t))},TEt=async(t,e,{signal:r})=>{try{await t,r.aborted||C3(e)}catch(n){r.aborted||JTe(e,n)}},wEt=async({passThroughStream:t,stream:e,streams:r,ended:n,aborted:i,controller:{signal:s}})=>{try{await KTe(e,{signal:s,cleanup:!0,readable:!0,writable:!1}),r.has(e)&&n.add(e)}catch(o){if(s.aborted||!r.has(e))return;ZTe(o)?i.add(e):XTe(t,o)}},REt=async({stream:t,streams:e,ended:r,aborted:n,unpipeEvent:i,controller:{signal:s}})=>{if(await GTe(t,i,{signal:s}),!t.readable)return GTe(s,"abort",{signal:s});e.delete(t),r.delete(t),n.delete(t)},AEt=t=>{t.writable&&t.end()},JTe=(t,e)=>{ZTe(e)?C3(t):XTe(t,e)},ZTe=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",C3=t=>{(t.readable||t.writable)&&t.destroy()},XTe=(t,e)=>{t.destroyed||(t.once("error",xEt),t.destroy(e))},xEt=()=>{},IC=(t,e)=>{let r=t.getMaxListeners();r!==0&&r!==Number.POSITIVE_INFINITY&&t.setMaxListeners(r+e)},WTe=2,YTe=1;import{finished as QTe}from"stream/promises";var Gg=(t,e)=>{t.pipe(e),IEt(t,e),OEt(t,e)},IEt=async(t,e)=>{if(!(eo(t)||eo(e))){try{await QTe(t,{cleanup:!0,readable:!0,writable:!1})}catch{}N3(e)}},N3=t=>{t.writable&&t.end()},OEt=async(t,e)=>{if(!(eo(t)||eo(e))){try{await QTe(e,{cleanup:!0,readable:!1,writable:!0})}catch{}k3(t)}},k3=t=>{t.readable&&t.destroy()};var ewe=(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})=>bs.has(c)))PEt(t,a,o,i);for(let{stream:a}of s.filter(({type:c})=>!bs.has(c)))NEt({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]:qf(s);Gg(o,i)}},PEt=(t,e,r,n)=>{r==="output"?Gg(t.stdio[n],e):Gg(e,t.stdio[n]);let i=CEt[n];i!==void 0&&(t[i]=e),t.stdio[n]=e},CEt=["stdin","stdout","stderr"],NEt=({subprocess:t,stream:e,direction:r,fdNumber:n,pipeGroups:i,controller:s})=>{if(e===void 0)return;kEt(e,s);let[o,a]=r==="output"?[e,t.stdio[n]]:[t.stdio[n],e],c=i.get(o)??[];i.set(o,[...c,a])},kEt=(t,{signal:e})=>{eo(t)&&Mf(t,$Et,e)},$Et=2;import{addAbortListener as MEt}from"events";var Bf=[];Bf.push("SIGHUP","SIGINT","SIGTERM");process.platform!=="win32"&&Bf.push("SIGALRM","SIGABRT","SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Bf.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT");var OC=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",$3=Symbol.for("signal-exit emitter"),L3=globalThis,LEt=Object.defineProperty.bind(Object),D3=class{emitted={afterExit:!1,exit:!1};listeners={afterExit:[],exit:[]};count=0;id=Math.random();constructor(){if(L3[$3])return L3[$3];LEt(L3,$3,{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}},PC=class{},DEt=t=>({onExit(e,r){return t.onExit(e,r)},load(){return t.load()},unload(){return t.unload()}}),M3=class extends PC{onExit(){return()=>{}}load(){}unload(){}},U3=class extends PC{#e=F3.platform==="win32"?"SIGINT":"SIGHUP";#r=new D3;#t;#n;#s;#i={};#o=!1;constructor(e){super(),this.#t=e,this.#i={};for(let r of Bf)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(!OC(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 Bf)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,Bf.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 OC(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"&&OC(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)}},F3=globalThis.process,{onExit:twe,load:klr,unload:$lr}=DEt(OC(F3)?new U3(F3):new M3);var rwe=(t,{cleanup:e,detached:r},{signal:n})=>{if(!e||r)return;let i=twe(()=>{t.kill()});MEt(n,()=>{i()})};var iwe=({source:t,sourcePromise:e,boundOptions:r,createNested:n},...i)=>{let s=qP(),{destination:o,destinationStream:a,destinationError:c,from:l,unpipeSignal:u}=UEt(r,n,i),{sourceStream:d,sourceError:f}=jEt(t,l),{options:p,fileDescriptors:h}=ia.get(t);return{sourcePromise:e,sourceStream:d,sourceOptions:p,sourceError:f,destination:o,destinationStream:a,destinationError:c,unpipeSignal:u,fileDescriptors:h,startTime:s}},UEt=(t,e,r)=>{try{let{destination:n,pipeOptions:{from:i,to:s,unpipeSignal:o}={}}=FEt(t,e,...r),a=ZP(n,s);return{destination:n,destinationStream:a,from:i,unpipeSignal:o}}catch(n){return{destinationError:n}}},FEt=(t,e,r,...n)=>{if(Array.isArray(r))return{destination:e(nwe,t)(r,...n),pipeOptions:t};if(typeof r=="string"||r instanceof URL||I6(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]=CP(r,...n);return{destination:e(nwe)(i,s,o),pipeOptions:o}}if(ia.has(r)){if(Object.keys(t).length>0)throw new TypeError("Please use .pipe(options)`command` or .pipe($(options)`command`) instead of .pipe(options)($`command`).");return{destination:r,pipeOptions:n[0]}}throw new TypeError(`The first argument must be a template string, an options object, or an Execa subprocess: ${r}`)},nwe=({options:t})=>({options:{...t,stdin:"pipe",piped:!0}}),jEt=(t,e)=>{try{return{sourceStream:Fg(t,e)}}catch(r){return{sourceError:r}}};var owe=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n,fileDescriptors:i,sourceOptions:s,startTime:o})=>{let a=qEt({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n});if(a!==void 0)throw j3({error:a,fileDescriptors:i,sourceOptions:s,startTime:o})},qEt=({sourceStream:t,sourceError:e,destinationStream:r,destinationError:n})=>{if(e!==void 0&&n!==void 0)return n;if(n!==void 0)return k3(t),n;if(e!==void 0)return N3(r),e},j3=({error:t,fileDescriptors:e,sourceOptions:r,startTime:n})=>zg({error:t,command:swe,escapedCommand:swe,fileDescriptors:e,options:r,startTime:n,isSync:!1}),swe="source.pipe(destination)";var awe=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 BEt}from"stream/promises";var cwe=(t,e,r)=>{let n=CC.has(e)?VEt(t,e):zEt(t,e);return Mf(t,GEt,r.signal),Mf(e,WEt,r.signal),HEt(e),n},zEt=(t,e)=>{let r=qf([t]);return Gg(r,e),CC.set(e,r),r},VEt=(t,e)=>{let r=CC.get(e);return r.add(t),r},HEt=async t=>{try{await BEt(t,{cleanup:!0,readable:!1,writable:!0})}catch{}CC.delete(t)},CC=new WeakMap,GEt=2,WEt=1;import{aborted as YEt}from"util";var lwe=(t,e)=>t===void 0?[]:[KEt(t,e)],KEt=async(t,{sourceStream:e,mergedStream:r,fileDescriptors:n,sourceOptions:i,startTime:s})=>{await YEt(t,e),await r.remove(e);let o=new Error("Pipe canceled by `unpipeSignal` option.");throw j3({error:o,fileDescriptors:n,sourceOptions:i,startTime:s})};var NC=(t,...e)=>{if(_r(e[0]))return NC.bind(void 0,{...t,boundOptions:{...t.boundOptions,...e[0]}});let{destination:r,...n}=iwe(t,...e),i=JEt({...n,destination:r});return i.pipe=NC.bind(void 0,{...t,source:r,sourcePromise:i,boundOptions:{}}),i},JEt=async({sourcePromise:t,sourceStream:e,sourceOptions:r,sourceError:n,destination:i,destinationStream:s,destinationError:o,unpipeSignal:a,fileDescriptors:c,startTime:l})=>{let u=ZEt(t,i);owe({sourceStream:e,sourceError:n,destinationStream:s,destinationError:o,fileDescriptors:c,sourceOptions:r,startTime:l});let d=new AbortController;try{let f=cwe(e,s,d);return await Promise.race([awe(u),...lwe(a,{sourceStream:e,mergedStream:f,sourceOptions:r,fileDescriptors:c,startTime:l})])}finally{d.abort()}},ZEt=(t,e)=>Promise.allSettled([t,e]);import{setImmediate as ivt}from"timers/promises";import{on as XEt}from"events";import{getDefaultHighWaterMark as QEt}from"stream";var kC=({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:n,encoding:i,preserveNewlines:s})=>{let o=new AbortController;return evt(e,o),dwe({stream:t,controller:o,binary:r,shouldEncode:!t.readableObjectMode&&n,encoding:i,shouldSplit:!t.readableObjectMode,preserveNewlines:s})},evt=async(t,e)=>{try{await t}catch{}finally{e.abort()}},q3=({stream:t,onStreamEnd:e,lines:r,encoding:n,stripFinalNewline:i,allMixed:s})=>{let o=new AbortController;tvt(e,o,t);let a=t.readableObjectMode&&!s;return dwe({stream:t,controller:o,binary:n==="buffer",shouldEncode:!a,encoding:n,shouldSplit:!a&&r,preserveNewlines:!i})},tvt=async(t,e,r)=>{try{await t}catch{r.destroy()}finally{e.abort()}},dwe=({stream:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})=>{let a=XEt(t,"data",{signal:e.signal,highWaterMark:uwe,highWatermark:uwe});return rvt({onStdoutChunk:a,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o})},B3=QEt(!0),uwe=B3,rvt=async function*({onStdoutChunk:t,controller:e,binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o}){let a=nvt({binary:r,shouldEncode:n,encoding:i,shouldSplit:s,preserveNewlines:o});try{for await(let[c]of t)yield*jf(c,a,0)}catch(c){if(!e.signal.aborted)throw c}finally{yield*Jb(a)}},nvt=({binary:t,shouldEncode:e,encoding:r,shouldSplit:n,preserveNewlines:i})=>[TC(t,r,!e),bC(t,i,!n,{})].filter(Boolean);var fwe=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,buffer:i,maxBuffer:s,lines:o,allMixed:a,stripFinalNewline:c,verboseInfo:l,streamInfo:u})=>{let d=svt({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:a,verboseInfo:l,streamInfo:u});if(!i){await Promise.all([ovt(t),d]);return}let f=S3(c,r),p=q3({stream:t,onStreamEnd:e,lines:o,encoding:n,stripFinalNewline:f,allMixed:a}),[h]=await Promise.all([avt({stream:t,iterable:p,fdNumber:r,encoding:n,maxBuffer:s,lines:o}),d]);return h},svt=async({stream:t,onStreamEnd:e,fdNumber:r,encoding:n,allMixed:i,verboseInfo:s,streamInfo:{fileDescriptors:o}})=>{if(!AC({stdioItems:o[r]?.stdioItems,encoding:n,verboseInfo:s,fdNumber:r}))return;let a=q3({stream:t,onStreamEnd:e,lines:!0,encoding:n,stripFinalNewline:!0,allMixed:i});await TTe(a,t,r,s)},ovt=async t=>{await ivt(),t.readableFlowing===null&&t.resume()},avt=async({stream:t,stream:{readableObjectMode:e},iterable:r,fdNumber:n,encoding:i,maxBuffer:s,lines:o})=>{try{return e||o?await pC(r,{maxBuffer:s}):i==="buffer"?new Uint8Array(await hC(r,{maxBuffer:s})):await Bg(r,{maxBuffer:s})}catch(a){return pwe(Tbe({error:a,stream:t,readableObjectMode:e,lines:o,encoding:i,fdNumber:n}))}},z3=async t=>{try{return await t}catch(e){return pwe(e)}},pwe=({bufferedData:t})=>FSe(t)?new Uint8Array(t):t;import{finished as cvt}from"stream/promises";var eT=async(t,e,r,{isSameDirection:n,stopOnExit:i=!1}={})=>{let s=lvt(t,r),o=new AbortController;try{await Promise.race([...i?[r.exitPromise]:[],cvt(t,{cleanup:!0,signal:o.signal})])}catch(a){s.stdinCleanedUp||fvt(a,e,r,n)}finally{o.abort()}},lvt=(t,{originalStreams:[e],subprocess:r})=>{let n={stdinCleanedUp:!1};return t===e&&uvt(t,r,n),n},uvt=(t,e,r)=>{let{_destroy:n}=t;t._destroy=(...i)=>{dvt(e,r),n.call(t,...i)}},dvt=({exitCode:t,signalCode:e},r)=>{(t!==null||e!==null)&&(r.stdinCleanedUp=!0)},fvt=(t,e,r,n)=>{if(!pvt(t,e,r,n))throw t},pvt=(t,e,r,n=!0)=>r.propagating?hwe(t)||$C(t):(r.propagating=!0,V3(r,e)===n?hwe(t):$C(t)),V3=({fileDescriptors:t},e)=>e!=="all"&&t[e].direction==="input",$C=t=>t?.code==="ERR_STREAM_PREMATURE_CLOSE",hwe=t=>t?.code==="EPIPE";var mwe=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>t.stdio.map((c,l)=>H3({stream:c,fdNumber:l,encoding:e,buffer:r[l],maxBuffer:n[l],lines:i[l],allMixed:!1,stripFinalNewline:s,verboseInfo:o,streamInfo:a})),H3=async({stream:t,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l})=>{if(!t)return;let u=eT(t,e,l);if(V3(l,e)){await u;return}let[d]=await Promise.all([fwe({stream:t,onStreamEnd:u,fdNumber:e,encoding:r,buffer:n,maxBuffer:i,lines:s,allMixed:o,stripFinalNewline:a,verboseInfo:c,streamInfo:l}),u]);return d};var gwe=({stdout:t,stderr:e},{all:r})=>r&&(t||e)?qf([t,e].filter(Boolean)):void 0,_we=({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:s,verboseInfo:o,streamInfo:a})=>H3({...hvt(t,r),fdNumber:"all",encoding:e,maxBuffer:n[1]+n[2],lines:i[1]||i[2],allMixed:mvt(t),stripFinalNewline:s,verboseInfo:o,streamInfo:a}),hvt=({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}},mvt=({all:t,stdout:e,stderr:r})=>t&&e&&r&&e.readableObjectMode!==r.readableObjectMode;import{once as gvt}from"events";var ywe=t=>$g(t,"ipc"),Swe=(t,e)=>{let r=jP(t);ra({type:"ipc",verboseMessage:r,fdNumber:"ipc",verboseInfo:e})};var Ewe=async({subprocess:t,buffer:e,maxBuffer:r,ipc:n,ipcOutput:i,verboseInfo:s})=>{if(!n)return i;let o=ywe(s),a=Tc(e,"ipc"),c=Tc(r,"ipc");for await(let l of I3({anyProcess:t,channel:t.channel,isSubprocess:!1,ipc:n,shouldAwait:!1,reference:!0}))a&&(wbe(t,i,c),i.push(l)),o&&Swe(l,s);return i},vwe=async(t,e)=>(await Promise.allSettled([t]),e);var bwe=async({subprocess:t,options:{encoding:e,buffer:r,maxBuffer:n,lines:i,timeoutDuration:s,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,stripFinalNewline:l,ipc:u,ipcInput:d},context:f,verboseInfo:p,fileDescriptors:h,originalStreams:m,onInternalError:_,controller:S})=>{let v=ITe(t,f),y={originalStreams:m,fileDescriptors:h,subprocess:t,exitPromise:v,propagating:!1},g=mwe({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),T=_we({subprocess:t,encoding:e,buffer:r,maxBuffer:n,lines:i,stripFinalNewline:l,verboseInfo:p,streamInfo:y}),I=[],x=Ewe({subprocess:t,buffer:r,maxBuffer:n,ipc:u,ipcOutput:I,verboseInfo:p}),A=_vt(m,t,y),O=yvt(h,y);try{return await Promise.race([Promise.all([{},PTe(v),Promise.all(g),T,x,rbe(t,d),...A,...O]),_,Svt(t,S),...Zve(t,s,f,S),...yve({subprocess:t,cancelSignal:o,gracefulCancel:a,context:f,controller:S}),...Kve({subprocess:t,cancelSignal:o,gracefulCancel:a,forceKillAfterDelay:c,context:f,controller:S})])}catch(R){return f.terminationReason??="other",Promise.all([{error:R},v,Promise.all(g.map(b=>z3(b))),z3(T),vwe(x,I),Promise.allSettled(A),Promise.allSettled(O)])}},_vt=(t,e,r)=>t.map((n,i)=>n===e.stdio[i]?void 0:eT(n,i,r)),yvt=(t,e)=>t.flatMap(({stdioItems:r},n)=>r.filter(({value:i,stream:s=i})=>no(s,{checkOpen:!1})&&!eo(s)).map(({type:i,value:s,stream:o=s})=>eT(o,n,e,{isSameDirection:bs.has(i),stopOnExit:i==="native"}))),Svt=async(t,{signal:e})=>{let[r]=await gvt(t,"error",{signal:e});throw r};var Twe=()=>({readableDestroy:new WeakMap,writableFinal:new WeakMap,writableDestroy:new WeakMap}),tT=(t,e,r)=>{let n=t[r];n.has(e)||n.set(e,[]);let i=n.get(e),s=na();return i.push(s),{resolve:s.resolve.bind(s),promises:i}},Wg=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 Evt}from"stream";import{callbackify as vvt}from"util";import{finished as wwe}from"stream/promises";var G3=async t=>{if(t!==void 0)try{await W3(t)}catch{}},Rwe=async t=>{if(t!==void 0)try{await Y3(t)}catch{}},W3=async t=>{await wwe(t,{cleanup:!0,readable:!1,writable:!0})},Y3=async t=>{await wwe(t,{cleanup:!0,readable:!0,writable:!1})},LC=async(t,e)=>{if(await t,e)throw e},DC=(t,e,r)=>{r&&!$C(r)?t.destroy(r):e&&t.destroy()};var Awe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,binary:i=!0,preserveNewlines:s=!0}={})=>{let o=i||Fi.has(r),{subprocessStdout:a,waitReadableDestroy:c}=K3(t,n,e),{readableEncoding:l,readableObjectMode:u,readableHighWaterMark:d}=J3(a,o),{read:f,onStdoutDataDone:p}=Z3({subprocessStdout:a,subprocess:t,binary:o,encoding:r,preserveNewlines:s}),h=new Evt({read:f,destroy:vvt(Q3.bind(void 0,{subprocessStdout:a,subprocess:t,waitReadableDestroy:c})),highWaterMark:d,objectMode:u,encoding:l});return X3({subprocessStdout:a,onStdoutDataDone:p,readable:h,subprocess:t}),h},K3=(t,e,r)=>{let n=Fg(t,e),i=tT(r,n,"readableDestroy");return{subprocessStdout:n,waitReadableDestroy:i}},J3=({readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r},n)=>n?{readableEncoding:t,readableObjectMode:e,readableHighWaterMark:r}:{readableEncoding:t,readableObjectMode:!0,readableHighWaterMark:B3},Z3=({subprocessStdout:t,subprocess:e,binary:r,encoding:n,preserveNewlines:i})=>{let s=na(),o=kC({subprocessStdout:t,subprocess:e,binary:r,shouldEncode:!r,encoding:n,preserveNewlines:i});return{read(){bvt(this,o,s)},onStdoutDataDone:s}},bvt=async(t,e,r)=>{try{let{value:n,done:i}=await e.next();i?r.resolve():t.push(n)}catch{}},X3=async({subprocessStdout:t,onStdoutDataDone:e,readable:r,subprocess:n,subprocessStdin:i})=>{try{await Y3(t),await n,await G3(i),await e,r.readable&&r.push(null)}catch(s){await G3(i),xwe(r,s)}},Q3=async({subprocessStdout:t,subprocess:e,waitReadableDestroy:r},n)=>{await Wg(r,e)&&(xwe(t,n),await LC(e,n))},xwe=(t,e)=>{DC(t,t.readable,e)};import{Writable as Tvt}from"stream";import{callbackify as Iwe}from"util";var Owe=({subprocess:t,concurrentStreams:e},{to:r}={})=>{let{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}=eW(t,r,e),o=new Tvt({...tW(n,t,i),destroy:Iwe(nW.bind(void 0,{subprocessStdin:n,subprocess:t,waitWritableFinal:i,waitWritableDestroy:s})),highWaterMark:n.writableHighWaterMark,objectMode:n.writableObjectMode});return rW(n,o),o},eW=(t,e,r)=>{let n=ZP(t,e),i=tT(r,n,"writableFinal"),s=tT(r,n,"writableDestroy");return{subprocessStdin:n,waitWritableFinal:i,waitWritableDestroy:s}},tW=(t,e,r)=>({write:wvt.bind(void 0,t),final:Iwe(Rvt.bind(void 0,t,e,r))}),wvt=(t,e,r,n)=>{t.write(e,r)?n():t.once("drain",n)},Rvt=async(t,e,r)=>{await Wg(r,e)&&(t.writable&&t.end(),await e)},rW=async(t,e,r)=>{try{await W3(t),e.writable&&e.end()}catch(n){await Rwe(r),Pwe(e,n)}},nW=async({subprocessStdin:t,subprocess:e,waitWritableFinal:r,waitWritableDestroy:n},i)=>{await Wg(r,e),await Wg(n,e)&&(Pwe(t,i),await LC(e,i))},Pwe=(t,e)=>{DC(t,t.writable,e)};import{Duplex as Avt}from"stream";import{callbackify as xvt}from"util";var Cwe=({subprocess:t,concurrentStreams:e,encoding:r},{from:n,to:i,binary:s=!0,preserveNewlines:o=!0}={})=>{let a=s||Fi.has(r),{subprocessStdout:c,waitReadableDestroy:l}=K3(t,n,e),{subprocessStdin:u,waitWritableFinal:d,waitWritableDestroy:f}=eW(t,i,e),{readableEncoding:p,readableObjectMode:h,readableHighWaterMark:m}=J3(c,a),{read:_,onStdoutDataDone:S}=Z3({subprocessStdout:c,subprocess:t,binary:a,encoding:r,preserveNewlines:o}),v=new Avt({read:_,...tW(u,t,d),destroy:xvt(Ivt.bind(void 0,{subprocessStdout:c,subprocessStdin:u,subprocess:t,waitReadableDestroy:l,waitWritableFinal:d,waitWritableDestroy:f})),readableHighWaterMark:m,writableHighWaterMark:u.writableHighWaterMark,readableObjectMode:h,writableObjectMode:u.writableObjectMode,encoding:p});return X3({subprocessStdout:c,onStdoutDataDone:S,readable:v,subprocess:t,subprocessStdin:u}),rW(u,v,c),v},Ivt=async({subprocessStdout:t,subprocessStdin:e,subprocess:r,waitReadableDestroy:n,waitWritableFinal:i,waitWritableDestroy:s},o)=>{await Promise.all([Q3({subprocessStdout:t,subprocess:r,waitReadableDestroy:n},o),nW({subprocessStdin:e,subprocess:r,waitWritableFinal:i,waitWritableDestroy:s},o)])};var iW=(t,e,{from:r,binary:n=!1,preserveNewlines:i=!1}={})=>{let s=n||Fi.has(e),o=Fg(t,r),a=kC({subprocessStdout:o,subprocess:t,binary:s,shouldEncode:!0,encoding:e,preserveNewlines:i});return Ovt(a,o,t)},Ovt=async function*(t,e,r){try{yield*t}finally{e.readable&&e.destroy(),await r}};var Nwe=(t,{encoding:e})=>{let r=Twe();t.readable=Awe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.writable=Owe.bind(void 0,{subprocess:t,concurrentStreams:r}),t.duplex=Cwe.bind(void 0,{subprocess:t,concurrentStreams:r,encoding:e}),t.iterable=iW.bind(void 0,t,e),t[Symbol.asyncIterator]=iW.bind(void 0,t,e,{})};var kwe=(t,e)=>{for(let[r,n]of Cvt){let i=n.value.bind(e);Reflect.defineProperty(t,r,{...n,value:i})}},Pvt=(async()=>{})().constructor.prototype,Cvt=["then","catch","finally"].map(t=>[t,Reflect.getOwnPropertyDescriptor(Pvt,t)]);var $we=(t,e,r,n)=>{let{file:i,commandArguments:s,command:o,escapedCommand:a,startTime:c,verboseInfo:l,options:u,fileDescriptors:d}=$vt(t,e,r),{subprocess:f,promise:p}=Dvt({file:i,commandArguments:s,options:u,startTime:c,verboseInfo:l,command:o,escapedCommand:a,fileDescriptors:d});return f.pipe=NC.bind(void 0,{source:f,sourcePromise:p,boundOptions:{},createNested:n}),kwe(f,p),ia.set(f,{options:u,fileDescriptors:d}),f},$vt=(t,e,r)=>{let{command:n,escapedCommand:i,startTime:s,verboseInfo:o}=BP(t,e,r),{file:a,commandArguments:c,options:l}=cC(t,e,r),u=Lvt(l),d=HTe(u,o);return{file:a,commandArguments:c,command:n,escapedCommand:i,startTime:s,verboseInfo:o,options:u,fileDescriptors:d}},Lvt=({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}},Dvt=({file:t,commandArguments:e,options:r,startTime:n,verboseInfo:i,command:s,escapedCommand:o,fileDescriptors:a})=>{let c;try{c=kvt(...lC(t,e,r))}catch(h){return qTe({error:h,command:s,escapedCommand:o,fileDescriptors:a,options:r,startTime:n,verboseInfo:i})}let l=new AbortController;Nvt(Number.POSITIVE_INFINITY,l.signal);let u=[...c.stdio];ewe(c,a,l),rwe(c,r,l);let d={},f=na();c.kill=gve.bind(void 0,{kill:c.kill.bind(c),options:r,onInternalError:f,context:d,controller:l}),c.all=gwe(c,r),Nwe(c,r),UTe(c,r);let p=Mvt({subprocess:c,options:r,startTime:n,verboseInfo:i,fileDescriptors:a,originalStreams:u,command:s,escapedCommand:o,context:d,onInternalError:f,controller:l});return{subprocess:c,promise:p}},Mvt=async({subprocess:t,options:e,startTime:r,verboseInfo:n,fileDescriptors:i,originalStreams:s,command:o,escapedCommand:a,context:c,onInternalError:l,controller:u})=>{let[d,[f,p],h,m,_]=await bwe({subprocess:t,options:e,context:c,verboseInfo:n,fileDescriptors:i,originalStreams:s,onInternalError:l,controller:u});u.abort(),l.resolve();let S=h.map((g,T)=>Rc(g,e,T)),v=Rc(m,e,"all"),y=Uvt({errorInfo:d,exitCode:f,signal:p,stdio:S,all:v,ipcOutput:_,context:c,options:e,command:o,escapedCommand:a,startTime:r});return Vg(y,n,e)},Uvt=({errorInfo:t,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,context:o,options:a,command:c,escapedCommand:l,startTime:u})=>"error"in t?Kb({error:t.error,command:c,escapedCommand:l,timedOut:o.terminationReason==="timeout",isCanceled:o.terminationReason==="cancel"||o.terminationReason==="gracefulCancel",isGracefullyCanceled:o.terminationReason==="gracefulCancel",isMaxBuffer:t.error instanceof sa,isForcefullyTerminated:o.isForcefullyTerminated,exitCode:e,signal:r,stdio:n,all:i,ipcOutput:s,options:a,startTime:u,isSync:!1}):_C({command:c,escapedCommand:l,stdio:n,all:i,ipcOutput:s,options:a,startTime:u});var MC=(t,e)=>{let r=Object.fromEntries(Object.entries(e).map(([n,i])=>[n,Fvt(n,t[n],i)]));return{...t,...r}},Fvt=(t,e,r)=>jvt.has(t)&&_r(e)&&_r(r)?{...e,...r}:r,jvt=new Set(["env",...$6]);var Tu=(t,e,r,n)=>{let i=(o,a,c)=>Tu(o,a,r,c),s=(...o)=>qvt({mapArguments:t,deepOptions:r,boundOptions:e,setBoundExeca:n,createNested:i},...o);return n!==void 0&&n(s,i,e),s},qvt=({mapArguments:t,deepOptions:e={},boundOptions:r={},setBoundExeca:n,createNested:i},s,...o)=>{if(_r(s))return i(t,MC(r,s),n);let{file:a,commandArguments:c,options:l,isSync:u}=Bvt({mapArguments:t,firstArgument:s,nextArguments:o,deepOptions:e,boundOptions:r});return u?NTe(a,c,l):$we(a,c,l,i)},Bvt=({mapArguments:t,firstArgument:e,nextArguments:r,deepOptions:n,boundOptions:i})=>{let s=HSe(e)?GSe(e,r):[e,...r],[o,a,c]=CP(...s),l=MC(MC(n,i),c),{file:u=o,commandArguments:d=a,options:f=l,isSync:p=!1}=t({file:o,commandArguments:a,options:l});return{file:u,commandArguments:d,options:f,isSync:p}};var Lwe=({file:t,commandArguments:e})=>Mwe(t,e),Dwe=({file:t,commandArguments:e})=>({...Mwe(t,e),isSync:!0}),Mwe=(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]=zvt(t);return{file:r,commandArguments:n}},zvt=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(Vvt)){let i=r.at(-1);i&&i.endsWith("\\")?r[r.length-1]=`${i.slice(0,-1)} ${n}`:r.push(n)}return r},Vvt=/ +/g;var Uwe=(t,e,r)=>{t.sync=e(Hvt,r),t.s=t.sync},Fwe=({options:t})=>jwe(t),Hvt=({options:t})=>({...jwe(t),isSync:!0}),jwe=t=>({options:{...Gvt(t),...t}}),Gvt=({input:t,inputFile:e,stdio:r})=>t===void 0&&e===void 0&&r===void 0?{stdin:"inherit"}:{},qwe={preferLocal:!0};var Bwe=Tu(()=>({})),Tfr=Tu(()=>({isSync:!0})),zwe=Tu(Lwe),wfr=Tu(Dwe),Rfr=Tu(Qve),Afr=Tu(Fwe,{},qwe,Uwe),{sendMessage:xfr,getOneMessage:Ifr,getEachMessage:Ofr,getCancelSignal:Pfr}=FTe();import{Transform as Wvt}from"stream";var Yvt=["NETLIFY_AI_GATEWAY_KEY"];function Kvt(){let t=(process.env.NETLIFY_SENSITIVE_ENV_KEYS||"").split(",").map(e=>e.trim()).filter(Boolean);return[...new Set([...t,...Yvt])]}function Jvt(t){let e=t.toLowerCase();return e==="true"||e==="false"?!0:t.trim().length<4}function Zvt(){let e=Kvt().map(r=>process.env[r]).filter(r=>!(!r||Jvt(r)));return[...new Set(e)].sort((r,n)=>n.length-r.length)}function Ts(t){if(typeof t!="string")return t;let e=Zvt();if(e.length===0)return t;let r=t;return e.forEach(n=>{let i=new RegExp(Xvt(n),"g");r=r.replace(i,"******")}),r}function Xvt(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}var rT=class extends Wvt{constructor(e={}){super({...e,objectMode:!1})}_transform(e,r,n){let i=e.toString(),s=Ts(i);n(null,s)}},UC=Symbol("maskedWrite");function Vwe(){if(process.env.NETLIFY_MASK_LOGS!=="false"){if(!process.stdout.write[UC]){let e=process.stdout.write.bind(process.stdout),r=function(n,i,s){let o=typeof n=="string"?Ts(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[UC]=!0,process.stdout.write=r}if(!process.stderr.write[UC]){let e=process.stderr.write.bind(process.stderr),r=function(n,i,s){let o=typeof n=="string"?Ts(n):n;return typeof i=="function"?e(o,i):e(o,i,s)};r[UC]=!0,process.stderr.write=r}}}var Hwe=!1,Gwe=()=>{Hwe=!0},_i=()=>Hwe;var nT=null,Wwe=t=>(nT&&nT.destroy(),nT=new Ac({totalAllowedTime:t}),nT),Ywe=()=>nT;var Ac=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&&_i())throw new Error(`Aborting ${e} stage \u2014 shutting down`);let s=this.onTimesUp(()=>{throw new Error(`${e} stage did not complete in the allowed time.`)}),o=null,a=null;n!==void 0&&(a=new Promise((u,d)=>{o=setTimeout(()=>{d(new Error(`${e} stage exceeded its maximum duration of ${n}ms`))},n)}));let c=Date.now(),l="success";try{return await OP({stage:e},async()=>a?await Promise.race([r(),a]):await r())}catch(u){throw l="failure",u}finally{Ee.timing("stage.duration",Date.now()-c,{stage:e,outcome:l}),s(),o&&clearTimeout(o)}};this.startTime=Date.now(),this.totalAllowedTime=e,this.globalTimeoutId=null,this.subscribers=[],this.hasTimedOut=!1,this.setupGlobalTimeout()}getElapsedTime(){return Date.now()-this.startTime}getRemainingTime(){let e=this.getElapsedTime(),r=this.totalAllowedTime-e;return Math.max(0,r)}isTimeExpired(){return this.getRemainingTime()===0||this.hasTimedOut}setupGlobalTimeout(){this.globalTimeoutId&&clearTimeout(this.globalTimeoutId),this.globalTimeoutId=setTimeout(()=>{this.notifyTimeUp()},this.totalAllowedTime)}notifyTimeUp(){this.hasTimedOut=!0;for(let e=this.subscribers.length-1;e>=0;e--)try{this.subscribers[e]()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}}onTimesUp(e){if(this.subscribers.push(e),this.hasTimedOut)try{e()}catch(r){console.error("TimeKeeper: Error in time up callback:",r)}return()=>{let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}}off(e){let r=this.subscribers.indexOf(e);r>-1&&this.subscribers.splice(r,1)}clearSubscribers(){this.subscribers.length=0}getSubscriberCount(){return this.subscribers.length}destroy(){this.globalTimeoutId&&(clearTimeout(this.globalTimeoutId),this.globalTimeoutId=null),this.clearSubscribers()}static{this.timeUnits={seconds:e=>e*1e3,minutes:e=>e*60*1e3,hours:e=>e*60*60*1e3}}};var Kwe={name:"@netlify/agent-runner-cli",type:"module",version:"1.154.0-xhigh.1",description:"CLI tool for running Netlify agents",main:"./dist/index.js",types:"./dist/index.d.ts",exports:"./dist/index.js",bin:{"agent-runner-cli":"./dist/bin.js","agent-runner-cli-local":"./dist/bin-local.js"},files:["dist/**/*.js","dist/**/*.d.ts","dist/skills/**","patches","scripts"],scripts:{build:"tsup",dev:"tsup --watch",prepare:"husky install node_modules/@netlify/eslint-config-node/.husky/",prepublishOnly:"npm ci && npm test",prepack:"npm run build",test:"run-s build format test:dev",format:"run-s build format:check-fix:*","format:ci":"run-s build format:check:*","format:check-fix:lint":"run-e format:check:lint format:fix:lint","format:check:lint":'eslint --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:fix:lint":'eslint --fix --cache --format=codeframe --max-warnings=0 "{src,scripts,test,.github}/**/*.{js,ts,md,html}"',"format:check-fix:prettier":"run-e format:check:prettier format:fix:prettier","format:check:prettier":'prettier --check --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"format:fix:prettier":'prettier --write --ignore-path .gitignore --loglevel=warn "{src,scripts,test,.github}/**/*.{js,ts,md,yml,json,html}" "*.{js,ts,yml,json,html}" ".*.{js,ts,yml,json,html}" "!**/package-lock.json" "!package-lock.json" "!src/skills/**/*.md"',"test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"LOG=0 vitest --exclude '**/integration/**'","test:ci:vitest":"LOG=0 vitest run --coverage --exclude '**/integration/**'","test:smoke":"node scripts/smoke-dist.js","test:integration":"vitest run test/integration/","test:integration:codex":"vitest run test/integration/codex.test.ts","test:integration:claude":"vitest run test/integration/claude.test.ts","test:integration:gemini":"vitest run test/integration/gemini.test.ts","test:integration:skill-invocation":"vitest run test/integration/skill-invocation.test.ts","check:types":"tsc --noEmit",postinstall:"node scripts/postinstall.js"},keywords:[],license:"MIT",repository:"netlify/agent-runner-cli",bugs:{url:"https://github.com/netlify/agent-runner-cli/issues"},author:"Netlify Inc.",directories:{test:"test"},devDependencies:{"@commitlint/cli":"^20.0.0","@commitlint/config-conventional":"^20.0.0","@eslint/compat":"^2.0.0","@eslint/js":"^10.0.1","@netlify/axis":"^1.17.2","@netlify/eslint-config-node":"^7.0.1","@types/node":"^24.5.0","@typescript-eslint/eslint-plugin":"^8.0.0","@typescript-eslint/parser":"^8.0.0","@vitest/coverage-v8":"^4.1.5","@vitest/eslint-plugin":"^1.6.6",eslint:"^10.5.0","eslint-config-prettier":"^10.1.8","eslint-plugin-n":"^17.0.0",husky:"^9.0.0",jiti:"^2.7.0","patch-package":"^8.0.0",tsup:"^8.5.0",typescript:"^5.0.0","typescript-eslint":"^8.44.0",vitest:"^4.0.16"},dependencies:{"@anthropic-ai/claude-code":"^2.1.219","@anthropic-ai/sdk":"0.91.1","@google/gemini-cli":"0.42.0","@modelcontextprotocol/sdk":"^1.29.0","@netlify/cache-utils":"^6.0.5","@netlify/database-proxy":"^0.1.5","@netlify/otel":"^6.0.5","@netlify/ts-cli":"^1.2.0","@openai/codex":"0.128.0","@opentelemetry/api":"^1.9.0","@opentelemetry/exporter-trace-otlp-grpc":"0.218.0",execa:"^9.6.1",fastify:"5.8.5",minimist:"^1.2.8",openai:"6.34.0",zod:"^4.4.3"}};var rbt=ebt(import.meta.url),nbt=xc.dirname(rbt),ibt=tbt(import.meta.url),Yg=ye("shell"),sW=new Set,Jwe={preferLocal:!0},Wn=(t,e,r)=>{let[n,i]=sbt(e,r),s={...Jwe,...i},o=Bwe(t,n,s);Xwe(o,s),t0e(o);let a=r?.idleTimeout;return a&&a>0&&e0e(o,a),o},Zwe=(t,e)=>{let r={...Jwe,...e},n=zwe(t,r);return Xwe(n,r),t0e(n),e?.idleTimeout&&e.idleTimeout>0&&e0e(n,e.idleTimeout),n},sbt=function(t,e){return Array.isArray(t)?[t,e]:typeof t=="object"&&t!==null?[[],t]:[[],void 0]},Xwe=(t,e)=>{if(e.stdio!==void 0||e.stdout!==void 0||e.stderr!==void 0)return;if(Ic.env.NETLIFY_MASK_LOGS!=="false"){t.stdout?.pipe(new rT).pipe(Ic.stdout),t.stderr?.pipe(new rT).pipe(Ic.stderr);return}t.stdout?.pipe(Ic.stdout),t.stderr?.pipe(Ic.stderr)},oW=(t,e="SIGTERM")=>{try{return t.pid&&!t.killed?(Ic.kill(-t.pid,e),Yg.log(`Killed process ${t.pid} with signal ${e}`),!0):!1}catch(r){return Yg.error("Error killing process:",r),!1}},Qwe=t=>oW(t,"SIGKILL"),e0e=(t,e)=>{let r=null,n=()=>{Yg.log(`Process ${t.pid} killed due to idle timeout (no output for ${e}ms)`),oW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Yg.log(`Force killing idle process ${t.pid}`),Qwe(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)},t0e=t=>{sW.add(t);let e=Ywe();if(e){let r=e.onTimesUp(()=>{Yg.log(`Global timer expired, killing process ${t.pid}`),oW(t,"SIGTERM"),setTimeout(()=>{t.pid&&!t.killed&&(Yg.log(`Force killing process ${t.pid} after timeout`),Qwe(t))},5e3)});t.on("exit",()=>{sW.delete(t),r()}),t.on("error",()=>{sW.delete(t),r()})}};function aa(t,e){if(!Ic.env.NETLIFY_LOCAL_MODE)try{let i=ibt.resolve(Kwe.name),s=xc.dirname(i);for(;s!==xc.dirname(s);){let o=xc.dirname(s);if(xc.basename(o)==="node_modules"){let a=xc.join(o,".bin",e);if(FC.existsSync(a))return a;break}s=o}}catch(i){console.error("Could not resolve package.json",i)}if(Ic.env.NODE_PATH){let i=xc.join(Ic.env.NODE_PATH,".bin",e);if(FC.existsSync(i))return i}let r=xc.join(t,"node_modules",".bin",e);if(FC.existsSync(r))return r;let n=xc.join(nbt,"..","node_modules",".bin",e);if(FC.existsSync(n))return n}import cD from"process";import{fileURLToPath as $Lt}from"url";import{createRequire as LLt}from"module";import lD from"path";var obt="__netlify__getTracer",abt="__netlify__shutdownTracers",gt=(t,e)=>globalThis[obt]?.(t,e),r0e=async()=>globalThis[abt]?.();function zf(t,e,r,n,i){let s=typeof n=="function"?n:typeof r=="function"?r:i;if(!s)throw new Error("function to execute with active span is missing");return t?t.withActiveSpan(e,r,n,s):s()}import{setTimeout as xLt}from"timers/promises";Ne();import cwt from"process";Ne();var Cbt=(t,e)=>{e.recordException(t),e.setStatus({code:In.ERROR})};var Cc=class{constructor(e){this._tracer=e,this.startSpan=e.startSpan.bind(this._tracer),this.startActiveSpan=e.startActiveSpan.bind(this._tracer)}withActiveSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=K0e(r,n,i);return this._tracer.startActiveSpan(e,s,o,c=>J0e(c,s,a))}withSpan(e,r,n,i){let{opts:s,ctx:o,fn:a}=K0e(r,n,i),c=this._tracer.startSpan(e,s,o);return J0e(c,s,a)}};function K0e(t,e,r){let n,i,s;return!e&&!r?s=t:r?(n=t,i=e,s=r):(n=t,s=e),n=n??{},i=i??Ft.active(),{opts:n,ctx:i,fn:s}}function J0e(t,e,r){var n;let i=(n=e.onException)!==null&&n!==void 0?n:Cbt,s=o=>{throw i(o,t),t.end(),o};try{let o=r(t);return typeof o?.then=="function"?o.then(a=>(t.end(),a),s):(t.end(),o)}catch(o){throw s(o)}}Ne();var t_=t=>t!==null&&typeof t=="object"&&typeof t.then=="function";var jW=class t{_rawAttributes;_asyncAttributesPending=!1;_schemaUrl;_memoizedAttributes;static FromAttributeList(e,r){let n=new t({},r);return n._rawAttributes=oRe(e),n._asyncAttributesPending=e.filter(([i,s])=>t_(s)).length>0,n}constructor(e,r){let n=e.attributes??{};this._rawAttributes=Object.entries(n).map(([i,s])=>(t_(s)&&(this._asyncAttributesPending=!0),[i,s])),this._rawAttributes=oRe(this._rawAttributes),this._schemaUrl=Nbt(r?.schemaUrl)}get asyncAttributesPending(){return this._asyncAttributesPending}async waitForAsyncAttributes(){if(this.asyncAttributesPending){for(let e=0;e<this._rawAttributes.length;e++){let[r,n]=this._rawAttributes[e];this._rawAttributes[e]=[r,t_(n)?await n:n]}this._asyncAttributesPending=!1}}get attributes(){if(this.asyncAttributesPending&&oe.error("Accessing resource attributes before async attributes settled"),this._memoizedAttributes)return this._memoizedAttributes;let e={};for(let[r,n]of this._rawAttributes){if(t_(n)){oe.debug(`Unsettled resource attribute ${r} skipped`);continue}n!=null&&(e[r]??=n)}return this._asyncAttributesPending||(this._memoizedAttributes=e),e}getRawAttributes(){return this._rawAttributes}get schemaUrl(){return this._schemaUrl}merge(e){if(e==null)return this;let r=kbt(this,e),n=r?{schemaUrl:r}:void 0;return t.FromAttributeList([...e.getRawAttributes(),...this.getRawAttributes()],n)}};function qW(t,e){return jW.FromAttributeList(Object.entries(t),e)}function oRe(t){return t.map(([e,r])=>t_(r)?[e,r.catch(n=>{oe.debug("promise rejection for resource attribute: %s - %s",e,n)})]:[e,r])}function Nbt(t){if(typeof t=="string"||t===void 0)return t;oe.warn("Schema URL must be string or undefined, got %s. Schema URL will be ignored.",t)}function kbt(t,e){let r=t?.schemaUrl,n=e?.schemaUrl,i=r===void 0||r==="",s=n===void 0||n==="";if(i)return n;if(s||r===n)return r;oe.warn('Schema URL merge conflict: old resource has "%s", updating resource has "%s". Resulting resource will have undefined Schema URL.',r,n)}Ne();var mT=class{emit(e){}enabled(){return!1}},aRe=new mT;var gT=Symbol.for("io.opentelemetry.js.api.logs"),r_=globalThis;function cRe(t,e,r){return n=>n===t?e:r}var BW=1;var zW=class{getLogger(e,r,n){return new mT}},cN=new zW;var lN=class{constructor(e,r,n,i){this._provider=e,this.name=r,this.version=n,this.options=i}emit(e){this._getLogger().emit(e)}enabled(e){return this._getLogger().enabled(e)}_getLogger(){if(this._delegate)return this._delegate;let e=this._provider._getDelegateLogger(this.name,this.version,this.options);return e?(this._delegate=e,this._delegate):aRe}};var _T=class{getLogger(e,r,n){var i;return(i=this._getDelegateLogger(e,r,n))!==null&&i!==void 0?i:new lN(this,e,r,n)}_getDelegate(){var e;return(e=this._delegate)!==null&&e!==void 0?e:cN}_setDelegate(e){this._delegate=e}_getDelegateLogger(e,r,n){var i;return(i=this._delegate)===null||i===void 0?void 0:i.getLogger(e,r,n)}};var uN=class t{constructor(){this._proxyLoggerProvider=new _T}static getInstance(){return this._instance||(this._instance=new t),this._instance}setGlobalLoggerProvider(e){return r_[gT]?this.getLoggerProvider():(r_[gT]=cRe(BW,e,cN),this._proxyLoggerProvider._setDelegate(e),e)}getLoggerProvider(){var e,r;return(r=(e=r_[gT])===null||e===void 0?void 0:e.call(r_,BW))!==null&&r!==void 0?r:this._proxyLoggerProvider}getLogger(e,r,n){return this.getLoggerProvider().getLogger(e,r,n)}disable(){delete r_[gT],this._proxyLoggerProvider=new _T}};var lRe=uN.getInstance();function uRe(t,e,r,n){for(let i=0,s=t.length;i<s;i++){let o=t[i];e&&o.setTracerProvider(e),r&&o.setMeterProvider(r),n&&o.setLoggerProvider&&o.setLoggerProvider(n),o.getConfig().enabled||o.enable()}}function dRe(t){t.forEach(e=>e.disable())}function VW(t){let e=t.tracerProvider||At.getTracerProvider(),r=t.meterProvider||hT.getMeterProvider(),n=t.loggerProvider||lRe.getLoggerProvider(),i=t.instrumentations?.flat()??[];return uRe(i,e,r,n),()=>{dRe(i)}}Ne();var $bt=zr("OpenTelemetry SDK Context Key SUPPRESS_TRACING");function fRe(t){return t.getValue($bt)===!0}var n_;(function(t){t[t.SUCCESS=0]="SUCCESS",t[t.FAILED=1]="FAILED"})(n_||(n_={}));Ne();var HW="[_0-9a-z-*/]",Lbt=`[a-z]${HW}{0,255}`,Dbt=`[a-z0-9]${HW}{0,240}@[a-z]${HW}{0,13}`,Mbt=new RegExp(`^(?:${Lbt}|${Dbt})$`),Ubt=/^[ -~]{0,255}[!-~]$/,Fbt=/,|=/;function GW(t){return Mbt.test(t)}function WW(t){return Ubt.test(t)&&!Fbt.test(t)}var jbt=32,pRe=512,hRe=",",mRe="=",dN=class t{_length;_rawTraceState;_internalState;constructor(e){this._rawTraceState=typeof e=="string"?e:"",this._length=this._rawTraceState.length}set(e,r){if(!GW(e)||!WW(r))return this;let n=this._getState(),i=n.get(e),s=this._length;if(typeof i=="string"?s+=r.length-i.length:s+=e.length+r.length+(n.size>0?2:1),s>pRe)return this;let o=new Map(n);return o.delete(e),o.set(e,r),this._fromState(o,s)}unset(e){let r=this._getState(),n=r.get(e);if(typeof n!="string")return this;let i=this._length-(e.length+n.length+1);r.size>1&&(i=i-1);let s=new Map(r);return s.delete(e),this._fromState(s,i)}get(e){return this._getState().get(e)}serialize(){let e="",r=0;for(let n of this._getState())r>0&&(e=hRe+e),e=`${n[0]}${mRe}${n[1]}`+e,r++;return e}_getState(){if(this._internalState)return this._internalState;let e=this._rawTraceState.split(hRe),r=new Map,n=0;for(let i of e){let s=i.trim(),o=s.indexOf(mRe);if(o===-1)continue;let a=s.slice(0,o),c=s.slice(o+1);if(!GW(a)||!WW(c))continue;let l=n+s.length+(r.size>0?1:0);if(!(l>pRe)&&(r.set(a,c),n=l,r.size>=jbt))break}return this._length=n,this._internalState=new Map(Array.from(r.entries()).reverse()),this._internalState}_fromState(e,r){let n=Object.create(t.prototype);return n._internalState=e,n._length=r,n}};var fN="traceparent",pN="tracestate",qbt="00",Bbt="(?!ff)[\\da-f]{2}",zbt="(?![0]{32})[\\da-f]{32}",Vbt="(?![0]{16})[\\da-f]{16}",Hbt="[\\da-f]{2}",Gbt=new RegExp(`^\\s?(${Bbt})-(${zbt})-(${Vbt})-(${Hbt})(-.*)?\\s?$`);function gRe(t){let e=Gbt.exec(t);return!e||e[1]==="00"&&e[5]?null:{traceId:e[2],spanId:e[3],traceFlags:parseInt(e[4],16)}}var Au=class{inject(e,r,n){let i=At.getSpanContext(e);if(!i||fRe(e)||!yi(i))return;let s=`${qbt}-${i.traceId}-${i.spanId}-0${Number(i.traceFlags||dr.NONE).toString(16)}`;n.set(r,fN,s),i.traceState&&n.set(r,pN,i.traceState.serialize())}extract(e,r,n){let i=n.get(r,fN);if(!i)return e;let s=Array.isArray(i)?i[0]:i;if(typeof s!="string")return e;let o=gRe(s);if(!o)return e;o.isRemote=!0;let a=n.get(r,pN);if(a){let c=Array.isArray(a)?a.join(","):a;o.traceState=new dN(typeof c=="string"?c:void 0)}return At.setSpanContext(e,o)}fields(){return[fN,pN]}};var hN=class{_promise;_resolve;_reject;constructor(){this._promise=new Promise((e,r)=>{this._resolve=e,this._reject=r})}get promise(){return this._promise}resolve(e){this._resolve(e)}reject(e){this._reject(e)}};var yT=class{_isCalled=!1;_deferred=new hN;_callback;_that;constructor(e,r){this._callback=e,this._that=r}get isCalled(){return this._isCalled}get promise(){return this._deferred.promise}call(...e){if(!this._isCalled){this._isCalled=!0;try{Promise.resolve(this._callback.call(this._that,...e)).then(r=>this._deferred.resolve(r),r=>this._deferred.reject(r))}catch(r){this._deferred.reject(r)}}return this._deferred.promise}};var sk=Dn(NY(),1);Ne();var Xxe=t=>{throw TypeError(t)},DY=(t,e,r)=>e.has(t)||Xxe("Cannot "+r),ik=(t,e,r)=>(DY(t,e,"read from private field"),r?r.call(t):e.get(t)),kY=(t,e,r)=>e.has(t)?Xxe("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),Kxe=(t,e,r,n)=>(DY(t,e,"write to private field"),n?n.call(t,r):e.set(t,r),r),awt=(t,e,r)=>(DY(t,e,"access private method"),r),Jxe="__netlify__getTracer",lwt="__netlify__shutdownTracers",uwt="__nfOTLPTrace",kT,$T,LY,Qxe,dwt=class{constructor(){kY(this,LY),kY(this,kT),kY(this,$T),Kxe(this,kT,new yT(awt(this,LY,Qxe),this)),Kxe(this,$T,oe.createComponentLogger({namespace:"netlify-span-exporter"}))}export(t,e){if(ik(this,$T).debug(`export ${t.length.toString()} spans`),ik(this,kT).isCalled){e({code:n_.FAILED,error:new Error("Exporter has been shutdown")});return}console.log(uwt,JSON.stringify(fwt(t))),e({code:n_.SUCCESS})}shutdown(){return ik(this,kT).call()}};kT=new WeakMap;$T=new WeakMap;LY=new WeakSet;Qxe=function(){return ik(this,$T).debug("Shutting down"),Promise.resolve()};function fwt(t){return{resourceSpans:t.map(e=>{let r=e.spanContext();return{resource:{attributes:nk(e.resource.attributes),droppedAttributesCount:e.droppedAttributesCount},scopeSpans:[{scope:{name:e.instrumentationScope.name,version:e.instrumentationScope.version},spans:[{traceId:r.traceId,spanId:r.spanId,parentSpanId:e.parentSpanContext?.spanId,name:e.name,kind:e.kind||io.SERVER,startTimeUnixNano:$Y(e.startTime),endTimeUnixNano:$Y(e.endTime),attributes:nk(e.attributes),droppedAttributesCount:e.droppedAttributesCount,events:e.events.map(n=>({name:n.name,timeUnixNano:$Y(n.time),attributes:nk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedEventsCount:e.droppedEventsCount,status:{code:e.status.code,message:e.status.message},links:e.links.map(n=>({spanId:n.context.spanId,traceId:n.context.traceId,attributes:nk(n.attributes??{}),droppedAttributesCount:n.droppedAttributesCount??0})),droppedLinksCount:e.droppedLinksCount}]}]}})}}function nk(t){return Object.keys(t).map(e=>eIe(e,t[e]))}function eIe(t,e){return{key:t,value:tIe(e)}}function tIe(t){let e=typeof t;return e==="string"?{stringValue:t}:e==="number"?Number.isInteger(t)?{intValue:t}:{doubleValue:t}:e==="boolean"?{boolValue:t}:t instanceof Uint8Array?{bytesValue:t}:Array.isArray(t)?{arrayValue:{values:t.map(tIe)}}:e==="object"&&t!=null?{kvlistValue:{values:Object.entries(t).map(([r,n])=>eIe(r,n))}}:{}}function $Y(t){let e=BigInt(1e9);return(BigInt(Math.trunc(t[0]))*e+BigInt(Math.trunc(t[1]))).toString()}var Zxe={name:"@netlify/otel",version:"6.0.5",type:"module",engines:{node:"^18.14.0 || >=20.6.1"},main:"./dist/main.cjs",module:"./dist/main.js",types:"./dist/main.d.ts",exports:{".":{require:{types:"./dist/main.d.cts",default:"./dist/main.cjs"},import:{types:"./dist/main.d.ts",default:"./dist/main.js"},default:{types:"./dist/main.d.ts",default:"./dist/main.js"}},"./package.json":"./package.json","./bootstrap":{require:{types:"./dist/bootstrap/main.d.cts",default:"./dist/bootstrap/main.cjs"},import:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"},default:{types:"./dist/bootstrap/main.d.ts",default:"./dist/bootstrap/main.js"}},"./exporter-netlify":{require:{types:"./dist/exporters/netlify.d.cts",default:"./dist/exporters/netlify.cjs"},import:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"},default:{types:"./dist/exporters/netlify.d.ts",default:"./dist/exporters/netlify.js"}},"./instrumentation-fetch":{require:{types:"./dist/instrumentations/fetch.d.cts",default:"./dist/instrumentations/fetch.cjs"},import:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"},default:{types:"./dist/instrumentations/fetch.d.ts",default:"./dist/instrumentations/fetch.js"}},"./instrumentation-http":{require:{types:"./dist/instrumentations/http.d.cts",default:"./dist/instrumentations/http.cjs"},import:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"},default:{types:"./dist/instrumentations/http.d.ts",default:"./dist/instrumentations/http.js"}},"./opentelemetry":{require:{types:"./dist/opentelemetry.d.cts",default:"./dist/opentelemetry.cjs"},import:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"},default:{types:"./dist/opentelemetry.d.ts",default:"./dist/opentelemetry.js"}}},files:["dist/**/*"],scripts:{build:"tsup-node",dev:"tsup-node --watch",prepack:"npm run build",test:"run-s build test:ci","test:dev":"run-s build test:dev:*","test:ci":"run-s build test:ci:*","test:dev:vitest":"vitest","test:dev:vitest:watch":"vitest watch","test:ci:vitest":"vitest run",publint:"npx -y publint --strict"},keywords:["netlify","cdn"],license:"MIT",repository:{type:"git",url:"https://github.com/netlify/primitives.git",directory:"packages/otel"},bugs:{url:"https://github.com/netlify/primitives/issues"},author:"Netlify Inc.",devDependencies:{"@netlify/dev-utils":"^4.4.7",msw:"^2.10.5","npm-run-all2":"^7.0.2",tsup:"^8.0.0",vitest:"^3.0.0"},dependencies:{"@opentelemetry/api":"1.9.1","@opentelemetry/core":"2.8.0","@opentelemetry/instrumentation":"^0.220.0","@opentelemetry/resources":"2.9.0","@opentelemetry/sdk-trace-node":"2.9.0"}},rIe=t=>{if(Object.prototype.hasOwnProperty.call(globalThis,Jxe))return;let e=cwt.version.slice(1),r=qW({"service.name":t.serviceName,"service.version":t.serviceVersion,"process.runtime.name":"nodejs","process.runtime.version":e,"deployment.environment":t.deploymentEnvironment,"http.url":t.siteUrl,"netlify.site.id":t.siteId,"netlify.site.name":t.siteName}),n=t.spanProcessors??[pwt()],i=new sk.NodeTracerProvider({resource:r,spanProcessors:n});i.register({propagator:new Au});let s=t.instrumentations??[];VW({instrumentations:s,tracerProvider:i}),Object.defineProperty(globalThis,Jxe,{enumerable:!1,configurable:!0,writable:!1,value:function(a,c){return a?new Cc(At.getTracer(a,c)):new Cc(At.getTracer(Zxe.name,Zxe.version))}}),Object.defineProperty(globalThis,lwt,{enumerable:!1,configurable:!0,writable:!1,value:async()=>await i.shutdown()})},pwt=()=>new sk.SimpleSpanProcessor(new dwt);Ne();var LT=Dn(NY(),1);Ne();import*as ok from"diagnostics_channel";var nIe=class{constructor(t={}){this.instrumentationName="@netlify/otel/instrumentation-fetch",this.instrumentationVersion="1.0.0",this._recordFromReq=new WeakMap,this.config=t,this._channelSubs=[]}getConfig(){return this.config}setConfig(){}setMeterProvider(){}setTracerProvider(t){this.provider=t}getTracerProvider(){return this.provider}annotateFromRequest(t,e){let r=this.config.getRequestAttributes?.(e)??{},n=new URL(e.path,e.origin);t.setAttributes({...r,"http.request.method":e.method,"url.full":n.href,"url.host":n.host,"url.scheme":n.protocol.slice(0,-1),"server.address":n.hostname,"server.port":n.port,...this.prepareHeaders("request",e.headers)})}annotateFromResponse(t,e){let r=this.config.getResponseAttributes?.(e)??{};t.setAttributes({...r,"http.response.status_code":e.statusCode,...this.prepareHeaders("response",e.headers)}),t.setStatus({code:e.statusCode>=400?In.ERROR:In.UNSET})}prepareHeaders(t,e){if(!Array.isArray(e))return{};if(this.config.skipHeaders===!0)return{};let r=["*","/.*/"],n=this.config.skipHeaders??[],i=this.config.redactHeaders??[],s=n.some(a=>r.includes(a.toString())),o={};if(s)return o;for(let a=0;a+1<e.length;a=a+2){let c=e[a],l=e[a+1];if(typeof c!="string"&&!Buffer.isBuffer(c)||typeof l!="string"&&!Buffer.isBuffer(l))continue;let u=c.toString().toLowerCase();if(n.some(f=>typeof f=="string"?f==u:f.test(u)))continue;let d=`http.${t}.header.${u}`;i===!0||i.some(f=>typeof f=="string"?f==u:f.test(u))?o[d]="REDACTED":o[d]=l.toString()}return o}getRequestMethod(t){return["HEAD","GET","POST","PUT","PATCH","DELETE"].includes(t.toUpperCase())?t.toUpperCase():"_OTHER"}getTracer(){if(!this.provider)return;let t=this.provider.getTracer(this.instrumentationName,this.instrumentationVersion);return t instanceof Cc?t:new Cc(t)}enable(){this._channelSubs.length>0||(this.subscribe("undici:request:create",this.onRequestCreate.bind(this)),this.subscribe("undici:request:headers",this.onRequestHeaders.bind(this)),this.subscribe("undici:request:trailers",this.onRequestEnd.bind(this)),this.subscribe("undici:request:error",this.onRequestError.bind(this)))}subscribe(t,e){ok.subscribe(t,e);let r=()=>ok.unsubscribe(t,e);this._channelSubs.push({name:t,unsubscribe:r})}disable(){this._channelSubs.forEach(t=>{t.unsubscribe()}),this._channelSubs.length=0}onRequestCreate({request:t}){try{let e=this.getTracer(),r=new URL(t.path,t.origin);if(!e||t.method==="CONNECT"||this.config.skipURLs?.some(i=>typeof i=="string"?r.href.startsWith(i):i.test(r.href)))return;let n=e.startSpan(this.getRequestMethod(t.method),{kind:io.CLIENT},Ft.active());this.annotateFromRequest(n,t),this._recordFromReq.set(t,n)}catch{}}onRequestHeaders({request:t,response:e}){try{let r=this._recordFromReq.get(t);if(!r)return;this.annotateFromResponse(r,e)}catch{}}onRequestError({request:t,error:e}){try{let r=this._recordFromReq.get(t);if(!r)return;r.recordException(e),r.setStatus({code:In.ERROR,message:e.message}),r.end(),this._recordFromReq.delete(t)}catch{}}onRequestEnd({request:t}){try{let e=this._recordFromReq.get(t);if(!e)return;e.end(),this._recordFromReq.delete(t)}catch{}}};var xDe=Dn(RDe(),1);var oD=ye("tracing"),ADe=8e3,ILt=5e3,Qw=async(t=ILt)=>{try{await Promise.race([r0e(),xLt(t)])}catch(e){oD.warn("Failed to flush tracers on shutdown",e)}},IDe=async(t,e,r)=>{if(!gt()){let n=[new LT.SimpleSpanProcessor(new MJ),new LT.SimpleSpanProcessor(new xDe.OTLPTraceExporter({url:r.exporterUrl}))];await rIe({serviceName:"@netlify/agent-runner-cli",serviceVersion:t,deploymentEnvironment:"production",siteUrl:"",siteId:process.env.SITE_ID??"",siteName:e,spanProcessors:n,instrumentations:[new nIe({skipHeaders:!0})]})}return r.traceparent?(Yn.setGlobalPropagator(new Au),Yn.extract(Ft.active(),{traceparent:r.traceparent,isRemote:!0})):Ft.active()};function Vt(t,e,r){return oD.log(`\u23F3 TRACE: ${e} starting...`),zf(t,e,r)}var MJ=class{export(e,r){for(let n of e)this.logSpan(n);r({code:1})}async shutdown(){}forceFlush(){return Promise.resolve()}logSpan(e){let r=(e.endTime[0]-e.startTime[0])*1e3+(e.endTime[1]-e.startTime[1])/1e6,n=e.attributes,i=[];for(let[a,c]of Object.entries(n))a.includes("duration")&&typeof c=="number"?i.push(`${a}=${c.toFixed(2)}ms`):i.push(`${a}=${c}`);let s=e.status?.code===2?"\u274C":"\u2705",o=i.length>0?` [${i.join(", ")}]`:"";oD.log(`${s} TRACE: ${e.name} completed in ${r.toFixed(2)}ms${o}`),e.status?.code===2&&e.status.message&&oD.log(` \u274C Error: ${e.status.message}`)}};function UJ(){return nt().captureLlmContentEnabled}function ODe(t){return t.includes("claude")?"anthropic":t.includes("codex")?"openai":t.includes("gemini")?"google":t.includes("opencode")?"opencode":t}function aD(t,e,r){let n={role:t,parts:[{type:"text",content:Ts(e)}]};return r&&(n.finish_reason=r),JSON.stringify([n])}var OLt=new Set([te.Task,te.RunCommand,te.Explore,te.FileRead,te.FileWrite,te.Notebook,te.Web,te.Todo,te.Skill,te.Tool,te.Memorize,te.Deployment,te.SiteGeneration]);function PDe(t,e,r,n){if(!t.length)return;let i=gt();if(!i)return;let s=UJ(),o=Math.max(1,(n-r)/t.length);t.forEach((a,c)=>{let l=Math.min(n,r+c*o),u=Math.min(n,l+o),d=a.type==="tool_use"||a.type==="tool_result"||a.category!=null&&OLt.has(a.category),f=d?"execute_tool":"chat",p=a.title||a.type||`step-${a.id??c}`,h=a.category||"unknown",m=d?`${f} ${h}`:f,_=a.message?a.message.length>ADe?`${a.message.slice(0,ADe)}\u2026`:a.message:void 0;i.startSpan(m,{startTime:l,attributes:{"gen_ai.capability.name":e,"gen_ai.step.name":p,"gen_ai.operation.name":f,...d?{"gen_ai.tool.name":h}:{},"spark.step.id":a.id??-1,...a.type?{"spark.step.type":a.type}:{},...a.category?{"spark.step.category":a.category}:{},...a.groupId?{"spark.step.group_id":a.groupId}:{},...a.parentGroupId?{"spark.step.parent_group_id":a.parentGroupId}:{},...s&&_?d?{"gen_ai.tool.call.result":Ts(_)}:{"gen_ai.output.messages":aD("assistant",_)}:{}}}).end(u)})}import{readdir as PLt,rm as CLt}from"fs/promises";import{join as NLt}from"path";async function CDe(t,e=[]){let n=(await PLt(t)).filter(i=>!e.includes(i));await Promise.all(n.map(i=>CLt(NLt(t,i),{recursive:!0,force:!0})))}var kLt=700,NDe=t=>t.mode==="create"&&(t.accountType===Tl||t.enforcedAICreditsRemaining!=null&&t.enforcedAICreditsRemaining<=kLt);var DLt=lD.dirname($Lt(import.meta.url)),kDe=LLt(import.meta.url),MLt=lD.resolve(DLt,"scripts/scaffold.js"),ULt="scripts/scaffold.js",FLt=/"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\S+/g,FJ=t=>{if(t.length>=2){let e=t[0],r=t[t.length-1];if(e==='"'&&r==='"'||e==="'"&&r==="'")return t.slice(1,-1)}return t},jLt=t=>/^[A-Za-z_][A-Za-z0-9_]*=.*/.test(t),qLt=t=>{let e=FJ(t);return e==="node"||e.endsWith("/node")},tl=t=>{if(typeof t!="string")return!1;let e=t.match(FLt)||[];if(e.length<2)return!1;let r=0;for(;r<e.length&&jLt(FJ(e[r]));)r+=1;if(r>=e.length||!qLt(e[r]))return!1;let n=e[r+1];return n?FJ(n).includes(ULt):!1},hy=ye("create_stage"),$De="Do not run local validation or dev-server commands to check your work \u2014 specifically `tsc`, `npx tsc`, `vite build`, `vite dev`, or any equivalent build/start/test command. The build pipeline installs and validates the project automatically after your edits. Verify your changes by reading the files you edited.",BLt=`${$De}
|
|
591
591
|
|
|
592
592
|
Commands that generate or modify project files are fine to run when the task requires them \u2014 for example \`drizzle-kit generate\` to write a database migration after a schema change, or other code-generation utilities documented in the skills.`,zLt=`${$De}
|
|
593
593
|
|
|
@@ -722,13 +722,13 @@ ${Te.trim()}
|
|
|
722
722
|
\`\`\``:Te.trim()),ve==="error"&&L&&($=$?`${$}
|
|
723
723
|
|
|
724
724
|
*Command failed*`:`*Command failed: ${L.trim()}*`),D({title:he,message:$,category:M},!0);break}case"step_finish":{z();let Re=ue.part?.tokens;Re&&(h={input_tokens:(h?.input_tokens??0)+(Re.input??0),output_tokens:(h?.output_tokens??0)+(Re.output??0),reasoning_output_tokens:(h?.reasoning_output_tokens??0)+(Re.reasoning??0),cache_creation_input_tokens:(h?.cache_creation_input_tokens??0)+(Re.cache?.write??0),cache_read_input_tokens:(h?.cache_read_input_tokens??0)+(Re.cache?.read??0)}),ue.part?.cost!=null&&(m=(m??0)+ue.part.cost);break}case"error":{z();let Q=ue.error?.data?.message??ue.error?.message??ue.part?.state?.error??(ue.error?JSON.stringify(ue.error).slice(0,500):"unknown error");p=p?`${p}
|
|
725
|
-
${Q}`:Q;break}default:ue.type&&!F.has(ue.type)&&(F.add(ue.type),th.log(`Unhandled opencode event type: ${ue.type}`))}}),await R.catch(_e=>{z();let ue=Jm({catchError:_e,runCmd:R,error:p,result:f??N,runnerName:zD});p=ue.error,f=ue.result});let de=Date.now()-x;return z(),w.close(),b.flush(),!p&&!f&&N&&(f=N),h&&mu(h,v?{model:v}:{}),{steps:g,duration:de,result:await gu({initialResult:f,agentName:zD,hasError:!!p}),error:_u({error:p,agentName:zD}),isRetryableError:yu(p),isProviderUnavailableError:Su(p),agentSessionId:d,resolvedModel:v,effort:u,usage:h,costUsd:m,toolErrorCount:_,toolCallCount:S}}var s1e=async()=>{let t=$Z.join(r1e.homedir(),".config","opencode");await JMt.rm(t,{recursive:!0,force:!0})},o1e={baseDir:$Z.join(r1e.homedir(),".config","opencode"),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};var DZ={codex:{runner:OZ,clean:HMe,nativeSessionArchive:GMe},claude:{runner:qJ,clean:jDe,nativeSessionArchive:qDe},gemini:{runner:NZ,clean:JMe,nativeSessionArchive:ZMe},opencode:{runner:LZ,clean:s1e,nativeSessionArchive:o1e}},MZ=Object.keys(DZ),pl=t=>DZ[t]?.nativeSessionArchive,fS=DZ;import{readFileSync as F6t}from"fs";import j6t from"path";import{createRequire as q6t}from"module";var i1t=["error","failed","exception","fatal","panic","abort","crash"];function a1e(t){let e=t.split(`
|
|
725
|
+
${Q}`:Q;break}default:ue.type&&!F.has(ue.type)&&(F.add(ue.type),th.log(`Unhandled opencode event type: ${ue.type}`))}}),await R.catch(_e=>{z();let ue=Jm({catchError:_e,runCmd:R,error:p,result:f??N,runnerName:zD});p=ue.error,f=ue.result});let de=Date.now()-x;return z(),w.close(),b.flush(),!p&&!f&&N&&(f=N),h&&mu(h,v?{model:v}:{}),{steps:g,duration:de,result:await gu({initialResult:f,agentName:zD,hasError:!!p}),error:_u({error:p,agentName:zD}),isRetryableError:yu(p),isProviderUnavailableError:Su(p),agentSessionId:d,resolvedModel:v,effort:u,providerEffort:y,usage:h,costUsd:m,toolErrorCount:_,toolCallCount:S}}var s1e=async()=>{let t=$Z.join(r1e.homedir(),".config","opencode");await JMt.rm(t,{recursive:!0,force:!0})},o1e={baseDir:$Z.join(r1e.homedir(),".config","opencode"),include:["opencode.db","opencode.db-shm","opencode.db-wal"]};var DZ={codex:{runner:OZ,clean:HMe,nativeSessionArchive:GMe},claude:{runner:qJ,clean:jDe,nativeSessionArchive:qDe},gemini:{runner:NZ,clean:JMe,nativeSessionArchive:ZMe},opencode:{runner:LZ,clean:s1e,nativeSessionArchive:o1e}},MZ=Object.keys(DZ),pl=t=>DZ[t]?.nativeSessionArchive,fS=DZ;import{readFileSync as F6t}from"fs";import j6t from"path";import{createRequire as q6t}from"module";var i1t=["error","failed","exception","fatal","panic","abort","crash"];function a1e(t){let e=t.split(`
|
|
726
726
|
`),r=[],n=-1,i=0;for(;i<e.length;){let a=e[i].slice(0,500).toLowerCase();if(i1t.some(l=>a.includes(l))){let l=Math.max(0,i-10,n+1),u=Math.min(e.length-1,i+20),d=[];for(let f=l;f<=u;f++)d.push(e[f]);r.push(d.join(`
|
|
727
727
|
`)),n=u,i=u+1}else i++}if(r.length===0)return t;let s=r.map((o,a)=>`<extracted_error_chunk order="${a+1}">
|
|
728
728
|
${o}
|
|
729
729
|
</extracted_error_chunk>`).join(`
|
|
730
730
|
|
|
731
|
-
`);return s.length>t.length*.8?t:s}import{promises as c1e}from"fs";import rh from"path";var s1t=/@anthropic-ai\/sdk|['"`]openai['"`]|@google\/genai|new\s+Anthropic\b|new\s+OpenAI\b|GoogleGenAI|ANTHROPIC_API_KEY|OPENAI_API_KEY|GEMINI_API_KEY/,o1t=/satisfies\s+NetlifyFunction\b|export\s+default\s*\{/,a1t=/export\s+default\b/,c1t=/\bexports\.handler\b|\bmodule\.exports\.handler\b|\bmodule\.exports\s*=|export\s+(async\s+)?(const\s+handler\b|function\s+handler\b)/,l1t=new Set([".js",".ts",".mjs",".mts",".cjs",".cts"]);function u1t(t){return o1t.test(t)?"v3":a1t.test(t)?"v2":c1t.test(t)?"v1":"unknown"}async function UZ(t,e=process.env.FUNCTIONS_DIST||"netlify/functions"){let r={aiTotal:0,v1:0,v2:0,v3:0,unknown:0,v1Files:[]},n=rh.isAbsolute(e)?e:rh.join(t,e),i;try{i=await c1e.readdir(n,{withFileTypes:!0})}catch{return r}for(let s of i){if(!s.isFile()||!l1t.has(rh.extname(s.name))||s.name.endsWith(".d.ts"))continue;let o;try{o=await c1e.readFile(rh.join(n,s.name),"utf8")}catch{continue}if(!s1t.test(o))continue;r.aiTotal++;let a=u1t(o);r[a]++,a==="v1"&&r.v1Files.push(rh.relative(t,rh.join(n,s.name)).split(rh.sep).join("/"))}return r}var l1e=(t,e)=>{let r=t.usage,n=r?.output_tokens??0,i=r?.reasoning_output_tokens??0,s=t.costUsd!=null&&t.costUsd>0?t.costUsd:void 0,o=s==null&&e!=null?e/180:void 0,a=s??o;return{...t.resolvedModel?{"netlify.ai.run.model":t.resolvedModel}:{},"netlify.ai.run.outcome":t.error?"error":"completed","netlify.ai.run.step_count":t.steps?.length??0,...t.toolCallCount!=null?{"netlify.ai.run.tool_call_count":t.toolCallCount}:{},...t.toolErrorCount!=null?{"netlify.ai.run.tool_error_count":t.toolErrorCount}:{},...r?.input_tokens!=null?{"netlify.ai.run.tokens.input.total":r.input_tokens}:{},...r?.output_tokens!=null?{"netlify.ai.run.tokens.output.total":r.output_tokens}:{},...r?.reasoning_output_tokens!=null?{"netlify.ai.run.tokens.reasoning.total":r.reasoning_output_tokens}:{},...a!=null?{"netlify.ai.run.cost_usd.total":a,"netlify.ai.run.cost.source":s!=null?"provider":"credits-derived"}:{},...e!=null?{"netlify.ai.run.credits_cost":e}:{},...n>0?{"netlify.ai.run.reasoning_ratio":i/n}:{}}};import{createReadStream as d1t}from"fs";import{request as f1t}from"http";import{request as p1t}from"https";import{pipeline as h1t}from"stream/promises";import C0 from"process";var P0=t=>4*Math.ceil(t/3);var HD=C0.env.NETLIFY_API_URL,GD=C0.env.NETLIFY_API_TOKEN,br=ye("api"),hl=()=>C0.env.NETLIFY_LOCAL_MODE==="true",ti=async(t,e={})=>{if(!HD||!GD)throw new Error("No API URL or token");let r=new URL(t,HD),n={...e,headers:{...e.headers,Authorization:`Bearer ${GD}`}};C0.env.AGENT_RUNNERS_DEBUG==="true"&&(n.headers["x-nf-debug-logging"]="true"),e.json&&(n.headers||={},n.headers["Content-Type"]="application/json",n.body=JSON.stringify(e.json));let i=await fetch(r,n),s=i.ok&&i.status<=299,o=e.expectStatuses?.includes(i.status)??!1;if(C0.env.AGENT_RUNNERS_DEBUG==="true")br.log(`Response headers for ${r}:`),i.headers.forEach((c,l)=>{br.log(` ${l}: ${c}`)});else{let c=i.headers.get("x-request-id")||i.headers.get("x-nf-request-id");br.log(`Request ID for ${r}: ${c||"N/A"}`)}if(!s&&!o&&(br.error(`Got status ${i.status} for request ${r}`),Ee.inc("api.request_failed",1,{status:i.status})),e.raw){if(!s)throw new Error(`API request failed: ${i.status} ${i.statusText}`);return i}let a=await(i.headers.get("content-type")?.includes("application/json")?i.json():i.text());if(!s){let c=typeof a=="string"?a:JSON.stringify(a);throw i.status===404?new qs(`API request failed: 404 - ${c}`,404,"The site associated with this agent run no longer exists."):i.status===503&&e.gracefulOn503&&c.toLowerCase().includes("usage exceeded")?new qs(`API request failed: 503 - ${c}`,503,"Credit limit reached. Please add more credits to continue using Agent Runners.",!0):new Error(`API request failed: ${i.status} - ${c}`)}return a},u1e=t=>{br.log("Setting details for api",{apiUrl:t?.constants?.NETLIFY_API_HOST,token:!!t?.constants?.NETLIFY_API_TOKEN}),t?.constants?.NETLIFY_API_HOST&&(HD=`https://${t.constants.NETLIFY_API_HOST}`),t?.constants?.NETLIFY_API_TOKEN&&(GD=t.constants.NETLIFY_API_TOKEN)},d1e=()=>({apiUrl:HD,token:GD}),WD=async(t,e)=>hl()?(br.log("Mock API: updateRunner called",{runnerId:t,data:e}),{id:t,...e}):ti(`/api/v1/agent_runners/${t}`,{method:"PUT",json:e}),Cn=async(t,e,r)=>hl()?(br.log("Mock API: updateRunnerSession called",JSON.stringify({runnerId:t,sessionId:e,data:r},null,2)),{id:t,sessionId:e,...r}):ti(`/api/v1/agent_runners/${t}/sessions/${e}`,{method:"PUT",json:r});var f1e=async t=>hl()?(br.log("Mock API: getSite called",{siteId:t}),{id:t,published_deploy:{id:"id"}}):ti(`/api/v1/sites/${t}`),YD=async(t,e)=>hl()?(br.log("Mock API: getRunnerSession called",{runnerId:t,sessionId:e}),{id:e,runnerId:t,state:"running"}):ti(`/api/v1/agent_runners/${t}/sessions/${e}`),p1e=(t,e,r)=>ti(`/api/v1/accounts/${t}/ai-gateway/token`,{headers:{"X-Nf-Agent-Runner-Id":e,"X-Nf-Agent-Runner-Session-Id":r},gracefulOn503:!0}),h1e=(t,e,r)=>ti(`/api/v1/sites/${t}/ai-gateway/token`,{headers:{"X-Nf-Agent-Runner-Id":e,"X-Nf-Agent-Runner-Session-Id":r},gracefulOn503:!0}),m1e=async(t,e)=>hl()?(br.log("Mock API: getDiffUploadUrls called",{runnerId:t,sessionId:e}),{result:{upload_url:"https://s3.mock.com/mock-upload-url-result",s3_key:"mock-s3-key-result"},cumulative:{upload_url:"https://s3.mock.com/mock-upload-url-cumulative",s3_key:"mock-s3-key-cumulative"}}):ti(`/api/v1/agent_runners/${t}/sessions/${e}/diff/upload_urls`,{method:"POST"}),g1e=async(t,e)=>hl()?(br.log("Mock API: getNativeSessionUploadUrl called",{runnerId:t,sessionId:e}),{upload_url:"https://s3.mock.com/mock-upload-url-native-session",s3_key:"mock-s3-key-native-session"}):ti(`/api/v1/agent_runners/${t}/sessions/${e}/native_session/upload`,{method:"POST"}),_1e=async(t,e)=>{if(hl())return br.log("Mock API: getNativeSessionDownloadUrl called",{runnerId:t,sessionId:e}),{download_url:"https://s3.mock.com/mock-download-url-native-session"};try{return await ti(`/api/v1/agent_runners/${t}/sessions/${e}/native_session`)}catch(r){if(r instanceof qs&&r.statusCode===404)return br.log("No native session available to download (404), falling back"),null;throw r}},y1e=async(t,e)=>hl()?(br.log("Mock API: updateSessionUsage called",{runnerId:t,sessionId:e}),{id:e,runnerId:t,usage:0}):ti(`/api/v1/agent_runners/${t}/sessions/${e}/update_usage`,{method:"POST"}),FZ="netlifydb_readonly",S1e=async t=>(await ti(`/api/v1/sites/${t}/database?role=${FZ}`,{raw:!0})).json(),E1e=async t=>{if(hl())return br.log("Mock API: siteHasDatabase called",{siteId:t}),!1;try{return await ti(`/api/v1/sites/${t}/database?role=${FZ}`,{raw:!0,expectStatuses:[404]}),!0}catch(e){if(e?.message?.includes("404"))return!1;br.warn("siteHasDatabase check inconclusive",{siteId:t,error:e?.message});return}},v1e=async(t,e)=>(await ti(`/api/v1/sites/${t}/database/branch/${encodeURIComponent(e)}?role=${FZ}`,{raw:!0})).json(),b1e=async t=>ti(`/api/v1/sites/${t}/database`,{method:"POST",json:{}}),T1e=async(t,e)=>ti(`/api/v1/sites/${t}/database/branch`,{method:"POST",json:{branch_id:e}}),m1t=1e4,w1e=async t=>{br.log(`Downloading from S3: ${new URL(t).host}`);let e=await fetch(t,{method:"GET",signal:AbortSignal.timeout(m1t)});if(!e.ok)throw new Error(`S3 download failed with status ${e.status}`);return Buffer.from(await e.arrayBuffer())},R1e=async(t,e,{maxRetries:r=3,baseDelayMs:n=500,contentType:i="text/plain"}={})=>{br.log(`Uploading to S3: ${new URL(t).host}`);for(let s=1;s<=r;s++)try{let o=await fetch(t,{method:"PUT",body:e,headers:{"Content-Type":i}});if(!o.ok)throw new Error(`S3 upload failed with status ${o.status}`);return o}catch(o){if(s===r)throw o;let a=n*2**(s-1);br.warn(`S3 upload attempt ${s}/${r} failed: ${o.message}. Retrying in ${a}ms...`),await new Promise(c=>setTimeout(c,a))}},g1t=6e4,_1t=(t,e,{contentLength:r,contentType:n,base64:i,timeoutMs:s})=>new Promise((o,a)=>{let c=new URL(t),u=(c.protocol==="http:"?f1t:p1t)(c,{method:"PUT",headers:{"Content-Type":n,"Content-Length":r}});u.setTimeout(s,()=>{u.destroy(new Error(`S3 upload timed out after ${s}ms with no socket activity`))}),u.on("error",a),u.on("response",f=>{f.resume(),f.statusCode>=200&&f.statusCode<=299?o(f.statusCode):a(new Error(`S3 upload failed with status ${f.statusCode}`))});let d=d1t(e,i?{encoding:"base64"}:void 0);h1t(d,u).catch(a)}),jZ=async(t,e,{size:r,base64:n=!1,maxRetries:i=3,baseDelayMs:s=500,contentType:o="text/plain",timeoutMs:a=g1t})=>{br.log(`Uploading file to S3: ${new URL(t).host}`);let c=n?P0(r):r;for(let l=1;l<=i;l++)try{return await _1t(t,e,{contentLength:c,contentType:o,base64:n,timeoutMs:a})}catch(u){if(l===i)throw u;let d=s*2**(l-1);br.warn(`S3 upload attempt ${l}/${i} failed: ${u.message}. Retrying in ${d}ms...`),await new Promise(f=>setTimeout(f,d))}};var y1t=ye("storage_outcome"),A1e=async({config:t,hasDb:e,pipelineSpan:r,resolvedModel:n,cliVersion:i})=>{let s=r?.spanContext();await Cn(t.id,t.sessionId,{metadata:{storage_outcome:{...typeof e=="boolean"?{has_db:e}:{},...s?{trace_id:s.traceId,span_id:s.spanId}:{},provider:t.runner,model:n??t.model??"unknown",cli_version:i}}}).catch(o=>y1t.warn("Failed to persist storage_outcome",{error:o?.message}))};import Z1t from"fs/promises";import X1t from"path";import M0 from"process";var nh=ye("ai_gateway"),qZ=null;var N0=async()=>{if(qZ)return qZ;nh.log("Fetching available AI gateway providers");let t=await fetch(`${d1e().apiUrl}/api/v1/ai-gateway/providers`);if(!t.ok)throw new Error(`Failed to fetch AI gateway providers: ${t.statusText}`);let e=await t.json();return qZ=e,nh.log("Cached AI gateway providers",{providerCount:Object.keys(e.providers).length}),e},S1t=async(t,e)=>{let n=(await N0()).providers[t];if(!n)return nh.log(`Provider '${t}' not found`),!1;let i=n.models.includes(e);return nh.log(`Model validation for ${t}/${e}`,{isAvailable:i}),i},E1t=async t=>{let e=await N0(),r=Object.values(e.providers).some(n=>n.models.includes(t));return nh.log(`Model validation across all providers for ${t}`,{isAvailable:r}),r},x1e=async({config:t})=>{let e,r,n,i,s=!t.site?.published_deploy;if(!(s?t.accountId:t.siteId))throw new Error(`No entity id for ${s?"account":"site"}`);let a=async()=>{clearTimeout(n),nh.log("Requesting AI gateway information");let l=await(s?p1e(t.accountId,t.id,t.sessionId):h1e(t.siteId,t.id,t.sessionId));if({token:e,url:i}=l,r=l.expires_at?l.expires_at*1e3:void 0,process.env.NETLIFY_AI_GATEWAY_KEY=e,process.env.NETLIFY_AI_GATEWAY_BASE_URL=i,nh.log("Got AI gateway information",{token:!!e,expiresAt:r,url:i}),r){let u=r-Date.now()-6e4;u>0&&(n=setTimeout(()=>{a()},u))}};return await Promise.all([a(),N0()]),{get url(){return i},get token(){return e},isModelAvailableForProvider:S1t,isModelAvailable:E1t}};import v1t from"crypto";import{createWriteStream as b1t}from"fs";import $0 from"fs/promises";import L0 from"path";import T1t from"process";import{Readable as w1t,Transform as R1t}from"stream";import{pipeline as A1t}from"stream/promises";async function KD(t,e){let{maxRetries:r,baseDelay:n,onRetry:i,shouldRetry:s}=e,o;for(let a=1;a<=r;a++)try{return await t()}catch(c){if(o=c,a===r||s&&!s(o))throw o;i&&i(a,o),await new Promise(l=>setTimeout(l,n*a))}throw o}var k0=ye("asset_fetch"),JD=100*1024*1024,x1t=6e4,I1e=6,I1t=3,O1t=300,P1t=t=>{if(!wl(t))return!1;switch(t.kind){case"network":case"timeout":case"http_5xx":return!0;case"http_4xx":return t.status===404;default:return!1}},C1t=t=>v1t.createHash("sha1").update(t).digest("hex").slice(0,8),N1t=t=>typeof t=="string"&&t.length>0&&t!=="."&&t!==".."&&t===L0.basename(t),k1t=async t=>{try{return await $0.stat(t),!0}catch{return!1}},$1t=t=>decodeURIComponent(new URL(t).pathname),BZ=t=>L0.basename(t)||"attachment",L1t=(t,e)=>{let r=L0.extname(t);return`${t.slice(0,t.length-r.length)}-${C1t(e)}${r}`},D1t=t=>{let e=new Map;for(let r of t)e.set(BZ(r),(e.get(BZ(r))??0)+1);return t.map(r=>{let n=BZ(r);return(e.get(n)??0)>1?L1t(n,r):n})},O1e=t=>{let e=t?.name;return e==="TimeoutError"||e==="AbortError"?"timeout":"network"},M1t=async(t,e)=>{let r;try{r=await fetch(t,{signal:AbortSignal.timeout(x1t)})}catch(a){throw new Lo(`Asset fetch failed: ${a?.message||a}`,O1e(a))}if(!r.ok)throw await r.body?.cancel(),new Lo(`Asset download failed: ${r.status} ${r.statusText}`,r.status>=500?"http_5xx":"http_4xx",r.status);let n=r.headers.get("content-length");if(n&&Number(n)>JD)throw new Lo(`Asset too large: ${n} bytes (max ${JD})`,"too_large");if(!r.body)throw new Lo("Asset download failed: missing response body","network");let i=`${e}.part`,s=0,o=new R1t({transform(a,c,l){if(s+=a.length,s>JD){l(new Lo(`Asset too large: exceeded ${JD} bytes`,"too_large"));return}l(null,a)}});try{await A1t(w1t.fromWeb(r.body),o,b1t(i))}catch(a){throw await $0.rm(i,{force:!0}),wl(a)?a:new Lo(`Asset body read failed: ${a?.message||a}`,O1e(a))}try{await $0.rename(i,e)}catch(a){throw await $0.rm(i,{force:!0}),a}},U1t=async(t,e,r)=>{if(!N1t(t))return k0.warn(`Skipping attachments for unsafe session id: ${t}`),[];if(!Array.isArray(e)||e.length===0)return[];let n=L0.join(r,tn,js,t);await $0.mkdir(n,{recursive:!0});let i=e.filter(o=>typeof o=="string"&&o.length>0),s=D1t(i.map($1t));return i.map((o,a)=>({sessionId:t,url:o,dest:L0.join(n,s[a])}))},P1e=async({assetMap:t,cwd:e=T1t.cwd()})=>{let r=Object.entries(t??{});if(r.length===0)return;let n=(await Promise.all(r.map(([a,c])=>U1t(a,c,e)))).flat();if(n.length===0)return;let i={};for(let a of n)i[a.sessionId]=(i[a.sessionId]??0)+1;k0.info(`Reconciling ${n.length} attachment(s) across ${Object.keys(i).length} session(s)`);let s={},o=async a=>{if(await k1t(a.dest))return;let c=performance.now(),l=new URL(a.url).pathname;try{await KD(()=>M1t(a.url,a.dest),{maxRetries:I1t,baseDelay:O1t,shouldRetry:P1t,onRetry:(u,d)=>{let f=wl(d)?d.kind:"unknown";Ee.inc("assets.fetch_retry",1,{kind:f}),k0.info(`Retrying asset download session=${a.sessionId} key=${l} kind=${f} attempt=${u}`)}})}catch(u){let d=wl(u)?u.kind:"unknown",f=wl(u)?u.status:void 0;throw k0.error(`Asset download failed session=${a.sessionId} key=${new URL(a.url).pathname} kind=${d} status=${f??"-"} elapsedMs=${Math.round(performance.now()-c)} message=${u?.message||u}`),u}s[a.sessionId]=(s[a.sessionId]??0)+1};for(let a=0;a<n.length;a+=I1e){let c=n.slice(a,a+I1e);await Promise.all(c.map(o))}for(let[a,c]of Object.entries(i)){let l=s[a]??0;k0.info(`Session ${a}: fetched ${l} attachment(s), ${c-l} already present`)}};import{createHash as F1t}from"crypto";import{createReadStream as j1t}from"fs";import ZD from"fs/promises";import L1e from"os";import XD from"path";var C1e=ye("repo"),D1e="runner-diffs-",M1e=t=>`${D1e}${t}-`,U1e=async t=>{let e=L1e.tmpdir(),r;try{r=await ZD.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(D1e)&&!n.startsWith(M1e(t))).map(n=>ZD.rm(XD.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Ai=(t,e={})=>Wn("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),QD=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{C1e.info("Getting runner diffs");let n=await B1t(r),{hasChanges:i}=n,{status:s}=n;if(!i)return{hasChanges:!1};if(!e){let h=V1t(s);await H1t(h,r)}C1e.info("Changes after processing"),await VZ(r);let o=await GZ(s,r);if(await zZ(o,r),i=await z1t(r),!i)return{hasChanges:!1,ignored:o};await Ai(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await ZD.mkdtemp(XD.join(L1e.tmpdir(),M1e(t.sessionId))),c=async({from:h,to:m,fileName:_,binary:S})=>{let v=XD.join(a,_);await Ai([...S?["diff",h,m,"--binary"]:["diff",h,m],`--output=${v}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:g}=await ZD.stat(v);return{path:v,size:g}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await $1e(r),{hasChanges:!1,ignored:o};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await k1e(d,h)||(f=h)}await $1e(r),Ee.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:o};return await k1e(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},N1e=async t=>{let e=F1t("sha256");for await(let r of j1t(t))e.update(r);return e.digest("hex")},k1e=async(t,e)=>t.size===e.size&&await N1e(t.path)===await N1e(e.path),$1e=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Ai(["reset","--soft","HEAD~1"],{cwd:t})},zZ=async(t=[],e=process.cwd())=>{await Ai(["add",".",...t],{cwd:e})},VZ=async(t=process.cwd())=>{let e=await Ai(["status","-s"],{cwd:t});return String(e.stdout??"")},F1e=/.. (.+)?\.log$/,q1t=[F1e],B1t=async(t=process.cwd())=>{let e=await VZ(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
731
|
+
`);return s.length>t.length*.8?t:s}import{promises as c1e}from"fs";import rh from"path";var s1t=/@anthropic-ai\/sdk|['"`]openai['"`]|@google\/genai|new\s+Anthropic\b|new\s+OpenAI\b|GoogleGenAI|ANTHROPIC_API_KEY|OPENAI_API_KEY|GEMINI_API_KEY/,o1t=/satisfies\s+NetlifyFunction\b|export\s+default\s*\{/,a1t=/export\s+default\b/,c1t=/\bexports\.handler\b|\bmodule\.exports\.handler\b|\bmodule\.exports\s*=|export\s+(async\s+)?(const\s+handler\b|function\s+handler\b)/,l1t=new Set([".js",".ts",".mjs",".mts",".cjs",".cts"]);function u1t(t){return o1t.test(t)?"v3":a1t.test(t)?"v2":c1t.test(t)?"v1":"unknown"}async function UZ(t,e=process.env.FUNCTIONS_DIST||"netlify/functions"){let r={aiTotal:0,v1:0,v2:0,v3:0,unknown:0,v1Files:[]},n=rh.isAbsolute(e)?e:rh.join(t,e),i;try{i=await c1e.readdir(n,{withFileTypes:!0})}catch{return r}for(let s of i){if(!s.isFile()||!l1t.has(rh.extname(s.name))||s.name.endsWith(".d.ts"))continue;let o;try{o=await c1e.readFile(rh.join(n,s.name),"utf8")}catch{continue}if(!s1t.test(o))continue;r.aiTotal++;let a=u1t(o);r[a]++,a==="v1"&&r.v1Files.push(rh.relative(t,rh.join(n,s.name)).split(rh.sep).join("/"))}return r}var l1e=(t,e)=>{let r=t.usage,n=r?.output_tokens??0,i=r?.reasoning_output_tokens??0,s=t.costUsd!=null&&t.costUsd>0?t.costUsd:void 0,o=s==null&&e!=null?e/180:void 0,a=s??o;return{...t.resolvedModel?{"netlify.ai.run.model":t.resolvedModel}:{},"netlify.ai.run.effort":t.effort??"auto",...t.providerEffort&&t.providerEffort!==t.effort?{"netlify.ai.run.effort.sent":t.providerEffort}:{},"netlify.ai.run.outcome":t.error?"error":"completed","netlify.ai.run.step_count":t.steps?.length??0,...t.toolCallCount!=null?{"netlify.ai.run.tool_call_count":t.toolCallCount}:{},...t.toolErrorCount!=null?{"netlify.ai.run.tool_error_count":t.toolErrorCount}:{},...r?.input_tokens!=null?{"netlify.ai.run.tokens.input.total":r.input_tokens}:{},...r?.output_tokens!=null?{"netlify.ai.run.tokens.output.total":r.output_tokens}:{},...r?.reasoning_output_tokens!=null?{"netlify.ai.run.tokens.reasoning.total":r.reasoning_output_tokens}:{},...a!=null?{"netlify.ai.run.cost_usd.total":a,"netlify.ai.run.cost.source":s!=null?"provider":"credits-derived"}:{},...e!=null?{"netlify.ai.run.credits_cost":e}:{},...n>0?{"netlify.ai.run.reasoning_ratio":i/n}:{}}};import{createReadStream as d1t}from"fs";import{request as f1t}from"http";import{request as p1t}from"https";import{pipeline as h1t}from"stream/promises";import C0 from"process";var P0=t=>4*Math.ceil(t/3);var HD=C0.env.NETLIFY_API_URL,GD=C0.env.NETLIFY_API_TOKEN,br=ye("api"),hl=()=>C0.env.NETLIFY_LOCAL_MODE==="true",ti=async(t,e={})=>{if(!HD||!GD)throw new Error("No API URL or token");let r=new URL(t,HD),n={...e,headers:{...e.headers,Authorization:`Bearer ${GD}`}};C0.env.AGENT_RUNNERS_DEBUG==="true"&&(n.headers["x-nf-debug-logging"]="true"),e.json&&(n.headers||={},n.headers["Content-Type"]="application/json",n.body=JSON.stringify(e.json));let i=await fetch(r,n),s=i.ok&&i.status<=299,o=e.expectStatuses?.includes(i.status)??!1;if(C0.env.AGENT_RUNNERS_DEBUG==="true")br.log(`Response headers for ${r}:`),i.headers.forEach((c,l)=>{br.log(` ${l}: ${c}`)});else{let c=i.headers.get("x-request-id")||i.headers.get("x-nf-request-id");br.log(`Request ID for ${r}: ${c||"N/A"}`)}if(!s&&!o&&(br.error(`Got status ${i.status} for request ${r}`),Ee.inc("api.request_failed",1,{status:i.status})),e.raw){if(!s)throw new Error(`API request failed: ${i.status} ${i.statusText}`);return i}let a=await(i.headers.get("content-type")?.includes("application/json")?i.json():i.text());if(!s){let c=typeof a=="string"?a:JSON.stringify(a);throw i.status===404?new qs(`API request failed: 404 - ${c}`,404,"The site associated with this agent run no longer exists."):i.status===503&&e.gracefulOn503&&c.toLowerCase().includes("usage exceeded")?new qs(`API request failed: 503 - ${c}`,503,"Credit limit reached. Please add more credits to continue using Agent Runners.",!0):new Error(`API request failed: ${i.status} - ${c}`)}return a},u1e=t=>{br.log("Setting details for api",{apiUrl:t?.constants?.NETLIFY_API_HOST,token:!!t?.constants?.NETLIFY_API_TOKEN}),t?.constants?.NETLIFY_API_HOST&&(HD=`https://${t.constants.NETLIFY_API_HOST}`),t?.constants?.NETLIFY_API_TOKEN&&(GD=t.constants.NETLIFY_API_TOKEN)},d1e=()=>({apiUrl:HD,token:GD}),WD=async(t,e)=>hl()?(br.log("Mock API: updateRunner called",{runnerId:t,data:e}),{id:t,...e}):ti(`/api/v1/agent_runners/${t}`,{method:"PUT",json:e}),Cn=async(t,e,r)=>hl()?(br.log("Mock API: updateRunnerSession called",JSON.stringify({runnerId:t,sessionId:e,data:r},null,2)),{id:t,sessionId:e,...r}):ti(`/api/v1/agent_runners/${t}/sessions/${e}`,{method:"PUT",json:r});var f1e=async t=>hl()?(br.log("Mock API: getSite called",{siteId:t}),{id:t,published_deploy:{id:"id"}}):ti(`/api/v1/sites/${t}`),YD=async(t,e)=>hl()?(br.log("Mock API: getRunnerSession called",{runnerId:t,sessionId:e}),{id:e,runnerId:t,state:"running"}):ti(`/api/v1/agent_runners/${t}/sessions/${e}`),p1e=(t,e,r)=>ti(`/api/v1/accounts/${t}/ai-gateway/token`,{headers:{"X-Nf-Agent-Runner-Id":e,"X-Nf-Agent-Runner-Session-Id":r},gracefulOn503:!0}),h1e=(t,e,r)=>ti(`/api/v1/sites/${t}/ai-gateway/token`,{headers:{"X-Nf-Agent-Runner-Id":e,"X-Nf-Agent-Runner-Session-Id":r},gracefulOn503:!0}),m1e=async(t,e)=>hl()?(br.log("Mock API: getDiffUploadUrls called",{runnerId:t,sessionId:e}),{result:{upload_url:"https://s3.mock.com/mock-upload-url-result",s3_key:"mock-s3-key-result"},cumulative:{upload_url:"https://s3.mock.com/mock-upload-url-cumulative",s3_key:"mock-s3-key-cumulative"}}):ti(`/api/v1/agent_runners/${t}/sessions/${e}/diff/upload_urls`,{method:"POST"}),g1e=async(t,e)=>hl()?(br.log("Mock API: getNativeSessionUploadUrl called",{runnerId:t,sessionId:e}),{upload_url:"https://s3.mock.com/mock-upload-url-native-session",s3_key:"mock-s3-key-native-session"}):ti(`/api/v1/agent_runners/${t}/sessions/${e}/native_session/upload`,{method:"POST"}),_1e=async(t,e)=>{if(hl())return br.log("Mock API: getNativeSessionDownloadUrl called",{runnerId:t,sessionId:e}),{download_url:"https://s3.mock.com/mock-download-url-native-session"};try{return await ti(`/api/v1/agent_runners/${t}/sessions/${e}/native_session`)}catch(r){if(r instanceof qs&&r.statusCode===404)return br.log("No native session available to download (404), falling back"),null;throw r}},y1e=async(t,e)=>hl()?(br.log("Mock API: updateSessionUsage called",{runnerId:t,sessionId:e}),{id:e,runnerId:t,usage:0}):ti(`/api/v1/agent_runners/${t}/sessions/${e}/update_usage`,{method:"POST"}),FZ="netlifydb_readonly",S1e=async t=>(await ti(`/api/v1/sites/${t}/database?role=${FZ}`,{raw:!0})).json(),E1e=async t=>{if(hl())return br.log("Mock API: siteHasDatabase called",{siteId:t}),!1;try{return await ti(`/api/v1/sites/${t}/database?role=${FZ}`,{raw:!0,expectStatuses:[404]}),!0}catch(e){if(e?.message?.includes("404"))return!1;br.warn("siteHasDatabase check inconclusive",{siteId:t,error:e?.message});return}},v1e=async(t,e)=>(await ti(`/api/v1/sites/${t}/database/branch/${encodeURIComponent(e)}?role=${FZ}`,{raw:!0})).json(),b1e=async t=>ti(`/api/v1/sites/${t}/database`,{method:"POST",json:{}}),T1e=async(t,e)=>ti(`/api/v1/sites/${t}/database/branch`,{method:"POST",json:{branch_id:e}}),m1t=1e4,w1e=async t=>{br.log(`Downloading from S3: ${new URL(t).host}`);let e=await fetch(t,{method:"GET",signal:AbortSignal.timeout(m1t)});if(!e.ok)throw new Error(`S3 download failed with status ${e.status}`);return Buffer.from(await e.arrayBuffer())},R1e=async(t,e,{maxRetries:r=3,baseDelayMs:n=500,contentType:i="text/plain"}={})=>{br.log(`Uploading to S3: ${new URL(t).host}`);for(let s=1;s<=r;s++)try{let o=await fetch(t,{method:"PUT",body:e,headers:{"Content-Type":i}});if(!o.ok)throw new Error(`S3 upload failed with status ${o.status}`);return o}catch(o){if(s===r)throw o;let a=n*2**(s-1);br.warn(`S3 upload attempt ${s}/${r} failed: ${o.message}. Retrying in ${a}ms...`),await new Promise(c=>setTimeout(c,a))}},g1t=6e4,_1t=(t,e,{contentLength:r,contentType:n,base64:i,timeoutMs:s})=>new Promise((o,a)=>{let c=new URL(t),u=(c.protocol==="http:"?f1t:p1t)(c,{method:"PUT",headers:{"Content-Type":n,"Content-Length":r}});u.setTimeout(s,()=>{u.destroy(new Error(`S3 upload timed out after ${s}ms with no socket activity`))}),u.on("error",a),u.on("response",f=>{f.resume(),f.statusCode>=200&&f.statusCode<=299?o(f.statusCode):a(new Error(`S3 upload failed with status ${f.statusCode}`))});let d=d1t(e,i?{encoding:"base64"}:void 0);h1t(d,u).catch(a)}),jZ=async(t,e,{size:r,base64:n=!1,maxRetries:i=3,baseDelayMs:s=500,contentType:o="text/plain",timeoutMs:a=g1t})=>{br.log(`Uploading file to S3: ${new URL(t).host}`);let c=n?P0(r):r;for(let l=1;l<=i;l++)try{return await _1t(t,e,{contentLength:c,contentType:o,base64:n,timeoutMs:a})}catch(u){if(l===i)throw u;let d=s*2**(l-1);br.warn(`S3 upload attempt ${l}/${i} failed: ${u.message}. Retrying in ${d}ms...`),await new Promise(f=>setTimeout(f,d))}};var y1t=ye("storage_outcome"),A1e=async({config:t,hasDb:e,pipelineSpan:r,resolvedModel:n,cliVersion:i})=>{let s=r?.spanContext();await Cn(t.id,t.sessionId,{metadata:{storage_outcome:{...typeof e=="boolean"?{has_db:e}:{},...s?{trace_id:s.traceId,span_id:s.spanId}:{},provider:t.runner,model:n??t.model??"unknown",cli_version:i}}}).catch(o=>y1t.warn("Failed to persist storage_outcome",{error:o?.message}))};import Z1t from"fs/promises";import X1t from"path";import M0 from"process";var nh=ye("ai_gateway"),qZ=null;var N0=async()=>{if(qZ)return qZ;nh.log("Fetching available AI gateway providers");let t=await fetch(`${d1e().apiUrl}/api/v1/ai-gateway/providers`);if(!t.ok)throw new Error(`Failed to fetch AI gateway providers: ${t.statusText}`);let e=await t.json();return qZ=e,nh.log("Cached AI gateway providers",{providerCount:Object.keys(e.providers).length}),e},S1t=async(t,e)=>{let n=(await N0()).providers[t];if(!n)return nh.log(`Provider '${t}' not found`),!1;let i=n.models.includes(e);return nh.log(`Model validation for ${t}/${e}`,{isAvailable:i}),i},E1t=async t=>{let e=await N0(),r=Object.values(e.providers).some(n=>n.models.includes(t));return nh.log(`Model validation across all providers for ${t}`,{isAvailable:r}),r},x1e=async({config:t})=>{let e,r,n,i,s=!t.site?.published_deploy;if(!(s?t.accountId:t.siteId))throw new Error(`No entity id for ${s?"account":"site"}`);let a=async()=>{clearTimeout(n),nh.log("Requesting AI gateway information");let l=await(s?p1e(t.accountId,t.id,t.sessionId):h1e(t.siteId,t.id,t.sessionId));if({token:e,url:i}=l,r=l.expires_at?l.expires_at*1e3:void 0,process.env.NETLIFY_AI_GATEWAY_KEY=e,process.env.NETLIFY_AI_GATEWAY_BASE_URL=i,nh.log("Got AI gateway information",{token:!!e,expiresAt:r,url:i}),r){let u=r-Date.now()-6e4;u>0&&(n=setTimeout(()=>{a()},u))}};return await Promise.all([a(),N0()]),{get url(){return i},get token(){return e},isModelAvailableForProvider:S1t,isModelAvailable:E1t}};import v1t from"crypto";import{createWriteStream as b1t}from"fs";import $0 from"fs/promises";import L0 from"path";import T1t from"process";import{Readable as w1t,Transform as R1t}from"stream";import{pipeline as A1t}from"stream/promises";async function KD(t,e){let{maxRetries:r,baseDelay:n,onRetry:i,shouldRetry:s}=e,o;for(let a=1;a<=r;a++)try{return await t()}catch(c){if(o=c,a===r||s&&!s(o))throw o;i&&i(a,o),await new Promise(l=>setTimeout(l,n*a))}throw o}var k0=ye("asset_fetch"),JD=100*1024*1024,x1t=6e4,I1e=6,I1t=3,O1t=300,P1t=t=>{if(!wl(t))return!1;switch(t.kind){case"network":case"timeout":case"http_5xx":return!0;case"http_4xx":return t.status===404;default:return!1}},C1t=t=>v1t.createHash("sha1").update(t).digest("hex").slice(0,8),N1t=t=>typeof t=="string"&&t.length>0&&t!=="."&&t!==".."&&t===L0.basename(t),k1t=async t=>{try{return await $0.stat(t),!0}catch{return!1}},$1t=t=>decodeURIComponent(new URL(t).pathname),BZ=t=>L0.basename(t)||"attachment",L1t=(t,e)=>{let r=L0.extname(t);return`${t.slice(0,t.length-r.length)}-${C1t(e)}${r}`},D1t=t=>{let e=new Map;for(let r of t)e.set(BZ(r),(e.get(BZ(r))??0)+1);return t.map(r=>{let n=BZ(r);return(e.get(n)??0)>1?L1t(n,r):n})},O1e=t=>{let e=t?.name;return e==="TimeoutError"||e==="AbortError"?"timeout":"network"},M1t=async(t,e)=>{let r;try{r=await fetch(t,{signal:AbortSignal.timeout(x1t)})}catch(a){throw new Lo(`Asset fetch failed: ${a?.message||a}`,O1e(a))}if(!r.ok)throw await r.body?.cancel(),new Lo(`Asset download failed: ${r.status} ${r.statusText}`,r.status>=500?"http_5xx":"http_4xx",r.status);let n=r.headers.get("content-length");if(n&&Number(n)>JD)throw new Lo(`Asset too large: ${n} bytes (max ${JD})`,"too_large");if(!r.body)throw new Lo("Asset download failed: missing response body","network");let i=`${e}.part`,s=0,o=new R1t({transform(a,c,l){if(s+=a.length,s>JD){l(new Lo(`Asset too large: exceeded ${JD} bytes`,"too_large"));return}l(null,a)}});try{await A1t(w1t.fromWeb(r.body),o,b1t(i))}catch(a){throw await $0.rm(i,{force:!0}),wl(a)?a:new Lo(`Asset body read failed: ${a?.message||a}`,O1e(a))}try{await $0.rename(i,e)}catch(a){throw await $0.rm(i,{force:!0}),a}},U1t=async(t,e,r)=>{if(!N1t(t))return k0.warn(`Skipping attachments for unsafe session id: ${t}`),[];if(!Array.isArray(e)||e.length===0)return[];let n=L0.join(r,tn,js,t);await $0.mkdir(n,{recursive:!0});let i=e.filter(o=>typeof o=="string"&&o.length>0),s=D1t(i.map($1t));return i.map((o,a)=>({sessionId:t,url:o,dest:L0.join(n,s[a])}))},P1e=async({assetMap:t,cwd:e=T1t.cwd()})=>{let r=Object.entries(t??{});if(r.length===0)return;let n=(await Promise.all(r.map(([a,c])=>U1t(a,c,e)))).flat();if(n.length===0)return;let i={};for(let a of n)i[a.sessionId]=(i[a.sessionId]??0)+1;k0.info(`Reconciling ${n.length} attachment(s) across ${Object.keys(i).length} session(s)`);let s={},o=async a=>{if(await k1t(a.dest))return;let c=performance.now(),l=new URL(a.url).pathname;try{await KD(()=>M1t(a.url,a.dest),{maxRetries:I1t,baseDelay:O1t,shouldRetry:P1t,onRetry:(u,d)=>{let f=wl(d)?d.kind:"unknown";Ee.inc("assets.fetch_retry",1,{kind:f}),k0.info(`Retrying asset download session=${a.sessionId} key=${l} kind=${f} attempt=${u}`)}})}catch(u){let d=wl(u)?u.kind:"unknown",f=wl(u)?u.status:void 0;throw k0.error(`Asset download failed session=${a.sessionId} key=${new URL(a.url).pathname} kind=${d} status=${f??"-"} elapsedMs=${Math.round(performance.now()-c)} message=${u?.message||u}`),u}s[a.sessionId]=(s[a.sessionId]??0)+1};for(let a=0;a<n.length;a+=I1e){let c=n.slice(a,a+I1e);await Promise.all(c.map(o))}for(let[a,c]of Object.entries(i)){let l=s[a]??0;k0.info(`Session ${a}: fetched ${l} attachment(s), ${c-l} already present`)}};import{createHash as F1t}from"crypto";import{createReadStream as j1t}from"fs";import ZD from"fs/promises";import L1e from"os";import XD from"path";var C1e=ye("repo"),D1e="runner-diffs-",M1e=t=>`${D1e}${t}-`,U1e=async t=>{let e=L1e.tmpdir(),r;try{r=await ZD.readdir(e)}catch{return}await Promise.all(r.filter(n=>n.startsWith(D1e)&&!n.startsWith(M1e(t))).map(n=>ZD.rm(XD.join(e,n),{recursive:!0,force:!0}).catch(()=>{})))},Ai=(t,e={})=>Wn("git",t,{...e,env:{...e.env,NETLIFY_INTERNAL_GIT:"1"}}),QD=async({config:t,isRetry:e,cwd:r=process.cwd()})=>{C1e.info("Getting runner diffs");let n=await B1t(r),{hasChanges:i}=n,{status:s}=n;if(!i)return{hasChanges:!1};if(!e){let h=V1t(s);await H1t(h,r)}C1e.info("Changes after processing"),await VZ(r);let o=await GZ(s,r);if(await zZ(o,r),i=await z1t(r),!i)return{hasChanges:!1,ignored:o};await Ai(["commit","-m","Agent runner [skip ci]"],{cwd:r});let a=await ZD.mkdtemp(XD.join(L1e.tmpdir(),M1e(t.sessionId))),c=async({from:h,to:m,fileName:_,binary:S})=>{let v=XD.join(a,_);await Ai([...S?["diff",h,m,"--binary"]:["diff",h,m],`--output=${v}`],{stdio:["ignore","ignore","pipe"],cwd:r});let{size:g}=await ZD.stat(v);return{path:v,size:g}},l=await c({from:t.runSha,to:"HEAD",fileName:"session.patch"});if(i=l.size>0,!i)return await $1e(r),{hasChanges:!1,ignored:o};let u=await c({from:t.runSha,to:"HEAD",fileName:"session-binary.patch",binary:!0}),d,f;if(t.sha){d=await c({from:t.sha,to:"HEAD",fileName:"cumulative.patch"});let h=await c({from:t.sha,to:"HEAD",fileName:"cumulative-binary.patch",binary:!0});await k1e(d,h)||(f=h)}await $1e(r),Ee.distribution("diff.size",u.size);let p={hasChanges:!0,diff:l,resultDiff:d,ignored:o};return await k1e(l,u)||(p.diffBinary=u),f&&(p.resultDiffBinary=f),p},N1e=async t=>{let e=F1t("sha256");for await(let r of j1t(t))e.update(r);return e.digest("hex")},k1e=async(t,e)=>t.size===e.size&&await N1e(t.path)===await N1e(e.path),$1e=async(t=process.cwd())=>{process.env.NETLIFY_LOCAL_MODE&&await Ai(["reset","--soft","HEAD~1"],{cwd:t})},zZ=async(t=[],e=process.cwd())=>{await Ai(["add",".",...t],{cwd:e})},VZ=async(t=process.cwd())=>{let e=await Ai(["status","-s"],{cwd:t});return String(e.stdout??"")},F1e=/.. (.+)?\.log$/,q1t=[F1e],B1t=async(t=process.cwd())=>{let e=await VZ(t);return{hasChanges:(e.trim().length===0?[]:e.split(`
|
|
732
732
|
`).filter(i=>q1t.some(o=>o instanceof RegExp?o.test(i):i===o)?!1:i[1]?.trim()!=="")).length!==0,status:e}},z1t=async(t=process.cwd())=>{try{return await Ai(["diff","--staged","--quiet"],{cwd:t}),!1}catch{return!0}},HZ=async(t=process.cwd())=>{let{stdout:e}=await Ai(["rev-parse","HEAD"],{cwd:t});return String(e??"").trim()},j1e=async(t=process.cwd())=>{let{stdout:e}=await Ai(["rev-list","--max-parents=0","HEAD"],{cwd:t});return String(e??"").trim()},GZ=async(t,e=process.cwd())=>{t||=await VZ(e);let r=[".netlify","node_modules","dist",".next","out",".nuxt",".output",".cache",".turbo",".parcel-cache","coverage",".nyc_output","storybook-static","public/build","CLAUDE.local.md"],n=[];return t.split(`
|
|
733
733
|
`).forEach(i=>{r.forEach(o=>{let a=i===`?? ${o}`,c=i.startsWith(`?? ${o}/`)||i.startsWith(`?? ${o}${XD.sep}`);(a||c)&&n.push(`:!${o}`)});let s=i.match(F1e)?.[1];s&&n.push(`:!${s}.log`)}),n},q1e=async(t=process.cwd())=>{await Ai(["reset","--hard","HEAD"],{cwd:t})},B1e=async(t=process.cwd())=>{let e=await Ai(["clean","-fd","-e",".netlify"],{stdio:["ignore","pipe","pipe"],cwd:t});return String(e.stdout??"").split(`
|
|
734
734
|
`).filter(r=>r.startsWith("Removing ")).map(r=>r.slice(9))},V1t=t=>{let e=t.split(`
|
|
@@ -909,7 +909,7 @@ Use the following file for the complete context of the ask, the environment, and
|
|
|
909
909
|
`,l=await fVt({hash:o,manifestPath:i,manifestString:c});return{manifestInfo:{manifestPath:i,manifestString:c},identical:l}},fVt=async function({hash:t,manifestPath:e,manifestString:r}){return t===void 0||!iBe(e)?!1:await nBe(e,"utf8")===r},oBe=async function({manifestPath:t,manifestString:e}){await cVt(dVt(t),{recursive:!0}),await uVt(t,e)},aBe=async function(t){let e=YM(t);await lVt(e,{force:!0,recursive:!0,maxRetries:3})},YM=function(t){return`${t}${lBe}`},cBe=function(t){return t.endsWith(lBe)},lBe=".netlify.cache.json",TQ=async function(t){let e=YM(t);if(!iBe(e))return!1;let{expires:r}=await pVt(t);return X2e(r)},pVt=async function(t){let e=YM(t),r=await nBe(e,"utf-8");return JSON.parse(r)};import{homedir as yVt}from"os";import{resolve as uBe,isAbsolute as SVt,join as EVt,sep as RQ}from"path";import{normalize as hVt}from"path";import{existsSync as mVt}from"fs";import gVt from"process";var wQ=function(t){try{let e=_Vt(t);return mVt(e)?Promise.resolve(e):Promise.resolve("")}catch{return Promise.resolve("")}},_Vt=function(t=gVt.cwd()){return hVt(t)};var tR=async function({path:t,cacheDir:e,cwdOpt:r}){let n=await vVt(t,r),i=await RVt({srcPath:n,cacheDir:e,cwdOpt:r});return{srcPath:n,cachePath:i}},vVt=async function(t,e){let r=await wQ(e),n=bVt(t,r);return TVt(n,r),n},bVt=function(t,e){if(SVt(t))return uBe(t);if(e!=="")return uBe(e,t);throw new Error(`Current directory does not exist: ${e}`)},TVt=function(t,e){if(e!==""&&wVt(t,e))throw new Error(`Cannot cache ${t} because it is the current directory (${e}) or a parent directory`)},wVt=function(t,e){return`${e}${RQ}`.startsWith(`${t}${RQ}`)},RVt=async function({srcPath:t,cacheDir:e,cwdOpt:r}){let n=ih({cacheDir:e,cwd:r}),{name:i,relPath:s}=await AVt(t,r);return EVt(n,i,s)},AVt=async function(t,e){let r=await AQ(e),n=xVt(t);return r.map(({name:i,base:s})=>OVt(i,s,n)).find(Boolean)},xVt=function(t){return t.replace(IVt,"\\")},IVt=/^[a-zA-Z]:\\/,OVt=function(t,e,r){if(r===e||!r.startsWith(e))return;let n=r.replace(e,"");return{name:t,relPath:n}},AQ=async function(t){return[...await PVt(t),{name:"home",base:yVt()},{name:"root",base:RQ}]},PVt=async function(t){let e=await wQ(t);return e===""?[]:[{name:"cwd",base:e}]};var NVt=1,xQ=async function({cacheDir:t,cwd:e,depth:r=NVt}={}){let n=await AQ(e),i=ih({cacheDir:t,cwd:e});return(await Promise.all(n.map(({name:a,base:c})=>kVt({name:a,base:c,cacheDir:i,depth:r})))).flat()},kVt=async function({name:t,base:e,cacheDir:r,depth:n}){return(await J2e(`${r}/${t}`,{fileFilter:$Vt,depth:n,type:"files_directories"})).map(({path:o})=>CVt(e,o))},$Vt=function({basename:t}){return!cBe(t)};var LVt=async function(t,{move:e=dBe,ttl:r=FVt,digests:n=[],cacheDir:i,cwd:s}={}){let{srcPath:o,cachePath:a}=await tR({path:t,cacheDir:i,cwdOpt:s});if(!await Q0(o))return!1;let{manifestInfo:c,identical:l}=await sBe({cachePath:a,move:e,ttl:r,digests:n});return l||(await IQ(a,{force:!0,recursive:!0,maxRetries:3}),await yQ(o,a,e),await oBe(c)),!0},DVt=async function(t,{move:e=dBe,cacheDir:r,cwd:n}={}){let{srcPath:i,cachePath:s}=await tR({path:t,cacheDir:r,cwdOpt:n});return!await Q0(s)||await TQ(s)?!1:(await IQ(i,{force:!0,recursive:!0,maxRetries:3}),await yQ(s,i,e),!0)},MVt=async function(t,{cacheDir:e,cwd:r}={}){let{cachePath:n}=await tR({path:t,cacheDir:e,cwdOpt:r});return await Q0(n)?(await IQ(n,{force:!0,recursive:!0,maxRetries:3}),await aBe(n),!0):!1},UVt=async function(t,{cacheDir:e,cwd:r}={}){let{cachePath:n}=await tR({path:t,cacheDir:e,cwdOpt:r});return await Q0(n)&&!await TQ(n)},dBe=!1,FVt=void 0,KM=async function(t,e,...r){return Array.isArray(e)?(await Promise.all(e.map(i=>t(i,...r)))).some(Boolean):t(e,...r)},jVt=KM.bind(null,LVt),qVt=KM.bind(null,DVt),BVt=KM.bind(null,MVt),zVt=KM.bind(null,UVt),fBe=function(t){return{save:(e,r)=>jVt(e,{...t,...r}),restore:(e,r)=>qVt(e,{...t,...r}),remove:(e,r)=>BVt(e,{...t,...r}),has:(e,r)=>zVt(e,{...t,...r}),list:e=>xQ({...t,...e}),getCacheDir:e=>ih({...t,...e})}};var Zr=ye("native_session"),OQ=async(t,e)=>(await Promise.all(e.map(async n=>{try{return await yl.stat(Sl.join(t,n)),n}catch{return null}}))).filter(n=>n!==null),dh=async({runnerId:t,sessionId:e,archive:r,nativeSessionId:n})=>{if(!r)return Zr.log("No native session archive descriptor for this runner, skipping"),null;let{baseDir:i,include:s}=r,o=!1;try{o=(await yl.stat(i)).isDirectory()}catch{}if(!o)return Zr.log(`Native session base dir ${i} not found, skipping`),null;let a=await OQ(i,s);if(a.length===0)return Zr.log(`No native session history found under ${i}, skipping`),null;let c=Sl.join(pBe.tmpdir(),`native-session-${e}.zip`);try{await Wn("zip",["-r","-q","-X",c,...a],{cwd:i});let l=await yl.readFile(c);Zr.log(`Zipped native session (${l.length} bytes) from ${a.join(", ")}`,{nativeSessionId:n});let{upload_url:u,s3_key:d}=await g1e(t,e);return await R1e(u,l,{contentType:"application/zip"}),Zr.log("Successfully uploaded native session to S3"),d}catch(l){return Zr.error("Failed to archive/upload native session, continuing without it:",l),null}finally{await yl.rm(c,{force:!0}).catch(()=>{})}},hBe=async t=>{if(!t)return!1;let{baseDir:e,include:r}=t,n=await OQ(e,r);for(let i of n)if((await yl.readdir(Sl.join(e,i)).catch(()=>[])).length>0)return!0;return!1},VVt=t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),mBe=async(t,e)=>{let r=await yl.readdir(t,{withFileTypes:!0}).catch(()=>[]);for(let n of r)if(n.isDirectory()){if(await mBe(Sl.join(t,n.name),e))return!0}else if(e.test(n.name))return!0;return!1},gBe=async(t,e)=>{if(!t||!e)return!1;let r=new RegExp(`(^|[^a-zA-Z0-9])${VVt(e)}([^a-zA-Z0-9]|$)`),{baseDir:n,include:i}=t,s=await OQ(n,i);for(let o of s)if(await mBe(Sl.join(n,o),r))return!0;return!1},_Be=async({runnerId:t,sessionId:e,archive:r})=>{if(!r)return Zr.log("No native session archive descriptor for this runner, skipping restore"),!1;let{baseDir:n}=r,i=Sl.join(pBe.tmpdir(),`native-session-restore-${e}.zip`);try{let s=await _1e(t,e);if(!s?.download_url)return Zr.log("No native session available to restore, skipping"),!1;let o=await w1e(s.download_url);return await yl.writeFile(i,o),Zr.log(`Downloaded native session (${o.length} bytes) to ${i}`),await yl.mkdir(n,{recursive:!0}),await Wn("unzip",["-o","-q",i,"-d",n]),Zr.log(`Restored native session into ${n}`),!0}catch(s){return Zr.error("Failed to fetch/restore native session, continuing without it:",s),!1}finally{await yl.rm(i,{force:!0}).catch(()=>{})}},HVt="native-sessions",yBe=(t,e)=>fBe({cacheDir:Sl.join(e.dir,HVt),cwd:t}),SBe=async({archive:t,cache:e})=>{if(!e?.dir||!t)return!1;let{baseDir:r,include:n}=t;try{return await yBe(r,e).restore(n.map(s=>Sl.join(r,s)),{})?(Zr.log(`Restored native session from buildbot cache into ${r}`),!0):(Zr.log("No native session in buildbot cache, skipping restore"),!1)}catch(i){return Zr.error("Failed to restore native session from buildbot cache, continuing without it:",i),!1}},NS=async({archive:t,cache:e,nativeSessionId:r})=>{if(!e?.dir||!t)return Zr.log("No buildbot cache configured for the native session, skipping cache seed",{nativeSessionId:r}),!1;let{baseDir:n,include:i}=t;try{return await yBe(n,e).save(i.map(o=>Sl.join(n,o)),{})?(Zr.log(`Saved native session to buildbot cache under ${e.dir}`,{nativeSessionId:r}),!0):(Zr.log("No native session history to save to buildbot cache, skipping"),!1)}catch(s){return Zr.error("Failed to save native session to buildbot cache, continuing:",s),!1}};var kS=ye("inference_stage"),EBe=5,Od=async t=>{let{additionalContext:e,cliPath:r,config:n,context:i,buildErrors:s,runner:o,persistSteps:a,aiGateway:c,attempt:l,contextPrefix:u,priorAgentSessionId:d,cwd:f,abortSignal:p,onSessionId:h,resumeSession:m,effortOverride:_,answerFold:S}=t;if(_i())throw new Error("Shutdown in progress, aborting inference stage");kS.log(`Running inference stage, attempt ${l} of ${EBe}`);let v=!1,y=await Vt(gt(),"inference-stage",async g=>{g?.setAttributes({"inference.attempt":l||1}),Vwe();let T=!!(l&&l>1),I=await GVt(n,T),x=!!m&&!!d;x&&n.runner==="gemini"&&!await I0(d)&&(x=!1);let A=I.viable||x;v=A,I.outcome!=="not_eligible"&&Ee.inc("inference.native_resume",1,{outcome:I.outcome,...I.source?{source:I.source}:{}});let O=n;if("prompt"in n&&n.answeredInteraction&&nt().questionsEnabled){let P=n.answeredInteraction,N=A||T&&!!d,F=[P];if(!N){S.allAnswered??=fUe(n);let z=await S.allAnswered;z===null&&(S.allAnswered=void 0),z&&z.length>0&&(F=z.some(de=>de.refId===P.refId)?z:[...z,P])}O={...n,prompt:hUe(n.prompt,F)},!T&&!S.counted&&(S.counted=!0,kS.log("Resuming session with answered questions",{sessionId:n.sessionId,interactionCount:F.length}),Ee.inc("inference.answer_resume",1,{fold:N?"latest":"all"}))}let{prompt:R}=await Vt(gt(),"compose-prompt",async()=>await lUe({cliPath:r,config:O,buildErrorContext:WVt(s),netlify:i,additionalContext:e,resumePrompt:A})),b=`
|
|
910
910
|
${u||""}
|
|
911
911
|
${R}
|
|
912
|
-
`.trim(),D={...n,prompt:b},C=d??(A?I.sessionId:void 0),w=await Vt(gt(),`run-${n.runner}`,async P=>{let N=UJ();P?.setAttributes({"gen_ai.operation.name":"chat","gen_ai.capability.name":n.mode,"gen_ai.provider.name":ODe(n.runner),"gen_ai.system":n.runner,...N?{"gen_ai.input.messages":aD("user",b)}:{}});let F=Date.now(),z=await o({aiGateway:c,config:D,netlify:i,persistSteps:a,continueSession:T||A,priorAgentSessionId:C,cwd:f,cliPath:r,abortSignal:p,onSessionId:h,..._?{effortOverride:_}:{}}),de=Date.now(),_e=z.resolvedModel||n.model||"unknown",ue=z.error?"error":"stop";return P?.setAttributes({...N?{"gen_ai.output.messages":aD("assistant",z.result??z.error??"",ue)}:{},"gen_ai.response.finish_reasons":[ue],"gen_ai.request.model":_e,"gen_ai.response.model":_e
|
|
912
|
+
`.trim(),D={...n,prompt:b},C=d??(A?I.sessionId:void 0),w=await Vt(gt(),`run-${n.runner}`,async P=>{let N=UJ();P?.setAttributes({"gen_ai.operation.name":"chat","gen_ai.capability.name":n.mode,"gen_ai.provider.name":ODe(n.runner),"gen_ai.system":n.runner,...N?{"gen_ai.input.messages":aD("user",b)}:{}});let F=Date.now(),z=await o({aiGateway:c,config:D,netlify:i,persistSteps:a,continueSession:T||A,priorAgentSessionId:C,cwd:f,cliPath:r,abortSignal:p,onSessionId:h,..._?{effortOverride:_}:{}}),de=Date.now(),_e=z.resolvedModel||n.model||"unknown",ue=z.error?"error":"stop";return P?.setAttributes({...N?{"gen_ai.output.messages":aD("assistant",z.result??z.error??"",ue)}:{},"gen_ai.response.finish_reasons":[ue],"gen_ai.request.model":_e,"gen_ai.response.model":_e,"gen_ai.request.effort":z.effort??"auto",...z.usage?.input_tokens!=null?{"gen_ai.usage.input_tokens":z.usage.input_tokens}:{},...z.usage?.output_tokens!=null?{"gen_ai.usage.output_tokens":z.usage.output_tokens}:{},...z.usage?.cache_creation_input_tokens!=null?{"gen_ai.usage.cache_creation.input_tokens":z.usage.cache_creation_input_tokens}:{},...z.usage?.cache_read_input_tokens!=null?{"gen_ai.usage.cache_read.input_tokens":z.usage.cache_read_input_tokens}:{},...z.usage?.reasoning_output_tokens!=null?{"gen_ai.usage.reasoning.output_tokens":z.usage.reasoning_output_tokens}:{}}),PDe(z.steps??[],n.mode,F,de),z});return w.result&&(w.result=Ts(w.result)),w.error&&(w.error=Ts(w.error)),await a.flush(),w});if(y.aborted)return kS.log("Inference turn was interrupted (credit wrap-up); skipping retry/error handling",{agentSessionId:y.agentSessionId}),{runnerResult:y,nativeResume:v};if(y.error){if(_i()){let g=new Error("Shutdown in progress, aborting inference stage");throw Object.assign(g,{agentSessionId:y.agentSessionId}),g}if(kS.error("Runner failed",{stepsCount:y.steps.length,duration:y.duration,error:y.error,isRetryableError:y.isRetryableError,attempt:l||1,agentSessionId:y.agentSessionId}),Ee.inc("inference.failed",1,{attempt:l||1,is_retryable:!!y.isRetryableError,is_provider_unavailable:!!y.isProviderUnavailableError}),y.isRetryableError&&(!l||l<EBe))return kS.log("Retrying inference stage"),await new Promise(T=>setTimeout(T,5e3)),{runnerResult:(await Od({...t,attempt:(l||1)+1,priorAgentSessionId:y.agentSessionId,contextPrefix:y.agentSessionId?"":"<important> The agent has already started on this work but ran into networking errors trying to complete it. Please continue from where it left off (you can use git commands to see what's currently changed thus far) and do not start over. Here is the full prompt for context: </important>"})).runnerResult,nativeResume:v};{if(kS.log("Do not retry inference stage"),y.error.toLowerCase().includes("usage exceeded")){let T=new qs(y.error,503,"Credit limit reached. Please add more credits to continue using Agent Runners.",!0);throw Object.assign(T,{agentSessionId:y.agentSessionId}),T}let g=y.isRetryableError||y.isProviderUnavailableError?new Ld(y.error):new Error(y.error);throw Object.assign(g,{agentSessionId:y.agentSessionId}),g}}return{runnerResult:y,nativeResume:v}},GVt=async(t,e)=>{if(e)return{viable:!1,outcome:"not_eligible"};let r=t.previousSession,{viable:n,outcome:i}=uUe(t);if(!n)return{viable:n,outcome:i};let s=r?.nativeSessionId,o=pl(t.runner),a=async()=>s?t.runner==="gemini"?!!await PZ(s):gBe(o,s):!1,c;if(vBe(t)&&await hBe(o))c="local";else if(t.fastInit&&nt().warmNativeResumeEnabled&&await SBe({archive:o,cache:t.cache})&&await a())c="cache_restore";else{if(c="fetch",!nt().coldResumeFromS3Enabled)return{viable:!1,outcome:"cold_resume_disabled",source:c};if(!await _Be({runnerId:t.id,sessionId:t.sessionId,archive:o}))return{viable:!1,outcome:"fetch_failed",source:c}}return t.runner==="gemini"&&s&&!await I0(s)?{viable:!1,outcome:"sanitize_failed",source:c}:{viable:!0,sessionId:s,outcome:"resumed",source:c}},WVt=t=>!t||t.length===0?"":`
|
|
913
913
|
Deploy failed. Here are the errors to review on the latest build:
|
|
914
914
|
|
|
915
915
|
Below are all of the logs with potential issues that we extracted. Some of them may be false positives, discern them carefully and ensure fixes are relevant.
|