@e2b/cli 0.5.1 → 0.5.2

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/index.js CHANGED
@@ -68,7 +68,7 @@ https://github.com/highlightjs/highlight.js/issues/2277`),Ue=k,N=X);let se={code
68
68
  `:`
69
69
  `.charCodeAt(),n=typeof e=="string"?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,e.length-1)),e[e.length-1]===n&&(e=e.slice(0,e.length-1)),e}});var Iy=E((ooe,Ua)=>{"use strict";l();var Ba=require("path"),Ay=V_(),Ny=e=>{e={cwd:process.cwd(),path:process.env[Ay()],execPath:process.execPath,...e};let t,n=Ba.resolve(e.cwd),r=[];for(;t!==n;)r.push(Ba.join(n,"node_modules/.bin")),t=n,n=Ba.resolve(n,"..");let i=Ba.resolve(e.cwd,e.execPath,"..");return r.push(i),r.concat(e.path).join(Ba.delimiter)};Ua.exports=Ny;Ua.exports.default=Ny;Ua.exports.env=e=>{e={env:process.env,...e};let t={...e.env},n=Ay({env:t});return e.path=t[n],t[n]=Ua.exports(e),t}});var vy=E((coe,em)=>{"use strict";l();var yy=(e,t)=>{for(let n of Reflect.ownKeys(t))Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n));return e};em.exports=yy;em.exports.default=yy});var My=E((doe,Nl)=>{"use strict";l();var zH=vy(),Al=new WeakMap,xy=(e,t={})=>{if(typeof e!="function")throw new TypeError("Expected a function");let n,r=0,i=e.displayName||e.name||"<anonymous>",a=function(...s){if(Al.set(a,++r),r===1)n=e.apply(this,s),e=null;else if(t.throw===!0)throw new Error(`Function \`${i}\` can only be called once`);return n};return zH(a,e),Al.set(a,r),a};Nl.exports=xy;Nl.exports.default=xy;Nl.exports.callCount=e=>{if(!Al.has(e))throw new Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return Al.get(e)}});var Ly=E(Il=>{"use strict";l();Object.defineProperty(Il,"__esModule",{value:!0});Il.SIGNALS=void 0;var QH=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGPROF",number:27,action:"terminate",description:"Timeout or timer",standard:"bsd"},{name:"SIGWINCH",number:28,action:"ignore",description:"Terminal window size changed",standard:"bsd"},{name:"SIGIO",number:29,action:"terminate",description:"I/O is available",standard:"other"},{name:"SIGPOLL",number:29,action:"terminate",description:"Watched event",standard:"other"},{name:"SIGINFO",number:29,action:"ignore",description:"Request for process information",standard:"other"},{name:"SIGPWR",number:30,action:"terminate",description:"Device running out of power",standard:"systemv"},{name:"SIGSYS",number:31,action:"core",description:"Invalid system call",standard:"other"},{name:"SIGUNUSED",number:31,action:"terminate",description:"Invalid system call",standard:"other"}];Il.SIGNALS=QH});var tm=E(Ci=>{"use strict";l();Object.defineProperty(Ci,"__esModule",{value:!0});Ci.SIGRTMAX=Ci.getRealtimeSignals=void 0;var XH=function(){let e=Py-wy+1;return Array.from({length:e},jH)};Ci.getRealtimeSignals=XH;var jH=function(e,t){return{name:`SIGRT${t+1}`,number:wy+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}},wy=34,Py=64;Ci.SIGRTMAX=Py});var Fy=E(yl=>{"use strict";l();Object.defineProperty(yl,"__esModule",{value:!0});yl.getSignals=void 0;var ZH=require("os"),JH=Ly(),eY=tm(),tY=function(){let e=(0,eY.getRealtimeSignals)();return[...JH.SIGNALS,...e].map(nY)};yl.getSignals=tY;var nY=function({name:e,number:t,description:n,action:r,forced:i=!1,standard:a}){let{signals:{[e]:s}}=ZH.constants,o=s!==void 0;return{name:e,number:o?s:t,description:n,supported:o,action:r,forced:i,standard:a}}});var By=E(Ri=>{"use strict";l();Object.defineProperty(Ri,"__esModule",{value:!0});Ri.signalsByNumber=Ri.signalsByName=void 0;var rY=require("os"),ky=Fy(),iY=tm(),aY=function(){return(0,ky.getSignals)().reduce(sY,{})},sY=function(e,{name:t,number:n,description:r,supported:i,action:a,forced:s,standard:o}){return{...e,[t]:{name:t,number:n,description:r,supported:i,action:a,forced:s,standard:o}}},oY=aY();Ri.signalsByName=oY;var lY=function(){let e=(0,ky.getSignals)(),t=iY.SIGRTMAX+1,n=Array.from({length:t},(r,i)=>cY(i,e));return Object.assign({},...n)},cY=function(e,t){let n=uY(e,t);if(n===void 0)return{};let{name:r,description:i,supported:a,action:s,forced:o,standard:c}=n;return{[e]:{name:r,number:e,description:i,supported:a,action:s,forced:o,standard:c}}},uY=function(e,t){let n=t.find(({name:r})=>rY.constants.signals[r]===e);return n!==void 0?n:t.find(r=>r.number===e)},dY=lY();Ri.signalsByNumber=dY});var Gy=E((boe,Uy)=>{"use strict";l();var{signalsByName:_Y}=By(),mY=({timedOut:e,timeout:t,errorCode:n,signal:r,signalDescription:i,exitCode:a,isCanceled:s})=>e?`timed out after ${t} milliseconds`:s?"was canceled":n!==void 0?`failed with ${n}`:r!==void 0?`was killed with ${r} (${i})`:a!==void 0?`failed with exit code ${a}`:"failed",pY=({stdout:e,stderr:t,all:n,error:r,signal:i,exitCode:a,command:s,escapedCommand:o,timedOut:c,isCanceled:u,killed:d,parsed:{options:{timeout:m}}})=>{a=a===null?void 0:a,i=i===null?void 0:i;let g=i===void 0?void 0:_Y[i].description,D=r&&r.code,A=`Command ${mY({timedOut:c,timeout:m,errorCode:D,signal:i,signalDescription:g,exitCode:a,isCanceled:u})}: ${s}`,x=Object.prototype.toString.call(r)==="[object Error]",P=x?`${A}
70
70
  ${r.message}`:A,B=[P,t,e].filter(Boolean).join(`
71
- `);return x?(r.originalMessage=r.message,r.message=B):r=new Error(B),r.shortMessage=P,r.command=s,r.escapedCommand=o,r.exitCode=a,r.signal=i,r.signalDescription=g,r.stdout=e,r.stderr=t,n!==void 0&&(r.all=n),"bufferedData"in r&&delete r.bufferedData,r.failed=!0,r.timedOut=!!c,r.isCanceled=u,r.killed=d&&!c,r};Uy.exports=pY});var Yy=E((Coe,nm)=>{"use strict";l();var vl=["stdin","stdout","stderr"],EY=e=>vl.some(t=>e[t]!==void 0),Hy=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return vl.map(r=>e[r]);if(EY(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${vl.map(r=>`\`${r}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let n=Math.max(t.length,vl.length);return Array.from({length:n},(r,i)=>t[i])};nm.exports=Hy;nm.exports.node=e=>{let t=Hy(e);return t==="ipc"?"ipc":t===void 0||typeof t=="string"?[t,t,t,"ipc"]:t.includes("ipc")?t:[...t,"ipc"]}});var qy=E((Ooe,xl)=>{"use strict";l();xl.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&xl.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&xl.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var am=E((Noe,Ni)=>{"use strict";l();var ke=global.process,xr=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};xr(ke)?($y=require("assert"),Oi=qy(),Vy=/^win/i.test(ke.platform),Ga=require("events"),typeof Ga!="function"&&(Ga=Ga.EventEmitter),ke.__signal_exit_emitter__?it=ke.__signal_exit_emitter__:(it=ke.__signal_exit_emitter__=new Ga,it.count=0,it.emitted={}),it.infinite||(it.setMaxListeners(1/0),it.infinite=!0),Ni.exports=function(e,t){if(!xr(global.process))return function(){};$y.equal(typeof e,"function","a callback must be provided for exit handler"),Ai===!1&&rm();var n="exit";t&&t.alwaysLast&&(n="afterexit");var r=function(){it.removeListener(n,e),it.listeners("exit").length===0&&it.listeners("afterexit").length===0&&Ml()};return it.on(n,e),r},Ml=function(){!Ai||!xr(global.process)||(Ai=!1,Oi.forEach(function(t){try{ke.removeListener(t,Ll[t])}catch{}}),ke.emit=wl,ke.reallyExit=im,it.count-=1)},Ni.exports.unload=Ml,Mr=function(t,n,r){it.emitted[t]||(it.emitted[t]=!0,it.emit(t,n,r))},Ll={},Oi.forEach(function(e){Ll[e]=function(){if(xr(global.process)){var n=ke.listeners(e);n.length===it.count&&(Ml(),Mr("exit",null,e),Mr("afterexit",null,e),Vy&&e==="SIGHUP"&&(e="SIGINT"),ke.kill(ke.pid,e))}}}),Ni.exports.signals=function(){return Oi},Ai=!1,rm=function(){Ai||!xr(global.process)||(Ai=!0,it.count+=1,Oi=Oi.filter(function(t){try{return ke.on(t,Ll[t]),!0}catch{return!1}}),ke.emit=Ky,ke.reallyExit=Wy)},Ni.exports.load=rm,im=ke.reallyExit,Wy=function(t){xr(global.process)&&(ke.exitCode=t||0,Mr("exit",ke.exitCode,null),Mr("afterexit",ke.exitCode,null),im.call(ke,ke.exitCode))},wl=ke.emit,Ky=function(t,n){if(t==="exit"&&xr(global.process)){n!==void 0&&(ke.exitCode=n);var r=wl.apply(this,arguments);return Mr("exit",ke.exitCode,null),Mr("afterexit",ke.exitCode,null),r}else return wl.apply(this,arguments)}):Ni.exports=function(){return function(){}};var $y,Oi,Vy,Ga,it,Ml,Mr,Ll,Ai,rm,im,Wy,wl,Ky});var Qy=E((yoe,zy)=>{"use strict";l();var fY=require("os"),gY=am(),SY=1e3*5,hY=(e,t="SIGTERM",n={})=>{let r=e(t);return TY(e,t,n,r),r},TY=(e,t,n,r)=>{if(!bY(t,n,r))return;let i=CY(n),a=setTimeout(()=>{e("SIGKILL")},i);a.unref&&a.unref()},bY=(e,{forceKillAfterTimeout:t},n)=>DY(e)&&t!==!1&&n,DY=e=>e===fY.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",CY=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return SY;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},RY=(e,t)=>{e.kill()&&(t.isCanceled=!0)},OY=(e,t,n)=>{e.kill(t),n(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},AY=(e,{timeout:t,killSignal:n="SIGTERM"},r)=>{if(t===0||t===void 0)return r;let i,a=new Promise((o,c)=>{i=setTimeout(()=>{OY(e,n,c)},t)}),s=r.finally(()=>{clearTimeout(i)});return Promise.race([a,s])},NY=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},IY=async(e,{cleanup:t,detached:n},r)=>{if(!t||n)return r;let i=gY(()=>{e.kill()});return r.finally(()=>{i()})};zy.exports={spawnedKill:hY,spawnedCancel:RY,setupTimeout:AY,validateTimeout:NY,setExitHandler:IY}});var jy=E((xoe,Xy)=>{"use strict";l();var dn=e=>e!==null&&typeof e=="object"&&typeof e.pipe=="function";dn.writable=e=>dn(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object";dn.readable=e=>dn(e)&&e.readable!==!1&&typeof e._read=="function"&&typeof e._readableState=="object";dn.duplex=e=>dn.writable(e)&&dn.readable(e);dn.transform=e=>dn.duplex(e)&&typeof e._transform=="function";Xy.exports=dn});var Jy=E((Loe,Zy)=>{"use strict";l();var{PassThrough:yY}=require("stream");Zy.exports=e=>{e={...e};let{array:t}=e,{encoding:n}=e,r=n==="buffer",i=!1;t?i=!(n||r):n=n||"utf8",r&&(n=null);let a=new yY({objectMode:i});n&&a.setEncoding(n);let s=0,o=[];return a.on("data",c=>{o.push(c),i?s=o.length:s+=c.length}),a.getBufferedValue=()=>t?o:r?Buffer.concat(o,s):o.join(""),a.getBufferedLength=()=>s,a}});var om=E((Poe,Ha)=>{"use strict";l();var{constants:vY}=require("buffer"),xY=require("stream"),{promisify:MY}=require("util"),LY=Jy(),wY=MY(xY.pipeline),Pl=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function sm(e,t){if(!e)throw new Error("Expected a stream");t={maxBuffer:1/0,...t};let{maxBuffer:n}=t,r=LY(t);return await new Promise((i,a)=>{let s=o=>{o&&r.getBufferedLength()<=vY.MAX_LENGTH&&(o.bufferedData=r.getBufferedValue()),a(o)};(async()=>{try{await wY(e,r),i()}catch(o){s(o)}})(),r.on("data",()=>{r.getBufferedLength()>n&&s(new Pl)})}),r.getBufferedValue()}Ha.exports=sm;Ha.exports.buffer=(e,t)=>sm(e,{...t,encoding:"buffer"});Ha.exports.array=(e,t)=>sm(e,{...t,array:!0});Ha.exports.MaxBufferError=Pl});var lm=E((koe,ev)=>{"use strict";l();var{PassThrough:PY}=require("stream");ev.exports=function(){var e=[],t=new PY({objectMode:!0});return t.setMaxListeners(0),t.add=n,t.isEmpty=r,t.on("unpipe",i),Array.prototype.slice.call(arguments).forEach(n),t;function n(a){return Array.isArray(a)?(a.forEach(n),this):(e.push(a),a.once("end",i.bind(null,a)),a.once("error",t.emit.bind(t,"error")),a.pipe(t,{end:!1}),this)}function r(){return e.length==0}function i(a){e=e.filter(function(s){return s!==a}),!e.length&&t.readable&&t.end()}}});var iv=E((Uoe,rv)=>{"use strict";l();var nv=jy(),tv=om(),FY=lm(),kY=(e,t)=>{t===void 0||e.stdin===void 0||(nv(t)?t.pipe(e.stdin):e.stdin.end(t))},BY=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let n=FY();return e.stdout&&n.add(e.stdout),e.stderr&&n.add(e.stderr),n},cm=async(e,t)=>{if(e){e.destroy();try{return await t}catch(n){return n.bufferedData}}},um=(e,{encoding:t,buffer:n,maxBuffer:r})=>{if(!(!e||!n))return t?tv(e,{encoding:t,maxBuffer:r}):tv.buffer(e,{maxBuffer:r})},UY=async({stdout:e,stderr:t,all:n},{encoding:r,buffer:i,maxBuffer:a},s)=>{let o=um(e,{encoding:r,buffer:i,maxBuffer:a}),c=um(t,{encoding:r,buffer:i,maxBuffer:a}),u=um(n,{encoding:r,buffer:i,maxBuffer:a*2});try{return await Promise.all([s,o,c,u])}catch(d){return Promise.all([{error:d,signal:d.signal,timedOut:d.timedOut},cm(e,o),cm(t,c),cm(n,u)])}},GY=({input:e})=>{if(nv(e))throw new TypeError("The `input` option cannot be a stream in sync mode")};rv.exports={handleInput:kY,makeAllStream:BY,getSpawnedResult:UY,validateInputSync:GY}});var sv=E((Hoe,av)=>{"use strict";l();var HY=(async()=>{})().constructor.prototype,YY=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(HY,e)]),qY=(e,t)=>{for(let[n,r]of YY){let i=typeof t=="function"?(...a)=>Reflect.apply(r.value,t(),a):r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:i})}return e},$Y=e=>new Promise((t,n)=>{e.on("exit",(r,i)=>{t({exitCode:r,signal:i})}),e.on("error",r=>{n(r)}),e.stdin&&e.stdin.on("error",r=>{n(r)})});av.exports={mergePromise:qY,getSpawnedPromise:$Y}});var cv=E((qoe,lv)=>{"use strict";l();var ov=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],VY=/^[\w.-]+$/,WY=/"/g,KY=e=>typeof e!="string"||VY.test(e)?e:`"${e.replace(WY,'\\"')}"`,zY=(e,t)=>ov(e,t).join(" "),QY=(e,t)=>ov(e,t).map(n=>KY(n)).join(" "),XY=/ +/g,jY=e=>{let t=[];for(let n of e.trim().split(XY)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${n}`:t.push(n)}return t};lv.exports={joinCommand:zY,getEscapedCommand:QY,parseCommand:jY}});var fv=E((Voe,Ii)=>{"use strict";l();var ZY=require("path"),dm=require("child_process"),JY=J_(),eq=Oy(),tq=Iy(),nq=My(),Fl=Gy(),dv=Yy(),{spawnedKill:rq,spawnedCancel:iq,setupTimeout:aq,validateTimeout:sq,setExitHandler:oq}=Qy(),{handleInput:lq,getSpawnedResult:cq,makeAllStream:uq,validateInputSync:dq}=iv(),{mergePromise:uv,getSpawnedPromise:_q}=sv(),{joinCommand:_v,parseCommand:mv,getEscapedCommand:pv}=cv(),mq=1e3*1e3*100,pq=({env:e,extendEnv:t,preferLocal:n,localDir:r,execPath:i})=>{let a=t?{...process.env,...e}:e;return n?tq.env({env:a,cwd:r,execPath:i}):a},Ev=(e,t,n={})=>{let r=JY._parse(e,t,n);return e=r.command,t=r.args,n=r.options,n={maxBuffer:mq,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:n.cwd||process.cwd(),execPath:process.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,...n},n.env=pq(n),n.stdio=dv(n),process.platform==="win32"&&ZY.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:n,parsed:r}},Ya=(e,t,n)=>typeof t!="string"&&!Buffer.isBuffer(t)?n===void 0?void 0:"":e.stripFinalNewline?eq(t):t,kl=(e,t,n)=>{let r=Ev(e,t,n),i=_v(e,t),a=pv(e,t);sq(r.options);let s;try{s=dm.spawn(r.file,r.args,r.options)}catch(D){let S=new dm.ChildProcess,A=Promise.reject(Fl({error:D,stdout:"",stderr:"",all:"",command:i,escapedCommand:a,parsed:r,timedOut:!1,isCanceled:!1,killed:!1}));return uv(S,A)}let o=_q(s),c=aq(s,r.options,o),u=oq(s,r.options,c),d={isCanceled:!1};s.kill=rq.bind(null,s.kill.bind(s)),s.cancel=iq.bind(null,s,d);let g=nq(async()=>{let[{error:D,exitCode:S,signal:A,timedOut:x},P,B,U]=await cq(s,r.options,u),q=Ya(r.options,P),te=Ya(r.options,B),Z=Ya(r.options,U);if(D||S!==0||A!==null){let re=Fl({error:D,exitCode:S,signal:A,stdout:q,stderr:te,all:Z,command:i,escapedCommand:a,parsed:r,timedOut:x,isCanceled:d.isCanceled,killed:s.killed});if(!r.options.reject)return re;throw re}return{command:i,escapedCommand:a,exitCode:0,stdout:q,stderr:te,all:Z,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return lq(s,r.options.input),s.all=uq(s,r.options),uv(s,g)};Ii.exports=kl;Ii.exports.sync=(e,t,n)=>{let r=Ev(e,t,n),i=_v(e,t),a=pv(e,t);dq(r.options);let s;try{s=dm.spawnSync(r.file,r.args,r.options)}catch(u){throw Fl({error:u,stdout:"",stderr:"",all:"",command:i,escapedCommand:a,parsed:r,timedOut:!1,isCanceled:!1,killed:!1})}let o=Ya(r.options,s.stdout,s.error),c=Ya(r.options,s.stderr,s.error);if(s.error||s.status!==0||s.signal!==null){let u=Fl({stdout:o,stderr:c,error:s.error,signal:s.signal,exitCode:s.status,command:i,escapedCommand:a,parsed:r,timedOut:s.error&&s.error.code==="ETIMEDOUT",isCanceled:!1,killed:s.signal!==null});if(!r.options.reject)return u;throw u}return{command:i,escapedCommand:a,exitCode:0,stdout:o,stderr:c,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}};Ii.exports.command=(e,t)=>{let[n,...r]=mv(e);return kl(n,r,t)};Ii.exports.commandSync=(e,t)=>{let[n,...r]=mv(e);return kl.sync(n,r,t)};Ii.exports.node=(e,t,n={})=>{t&&!Array.isArray(t)&&typeof t=="object"&&(n=t,t=[]);let r=dv.node(n),i=process.execArgv.filter(o=>!o.startsWith("--inspect")),{nodePath:a=process.execPath,nodeOptions:s=i}=n;return kl(a,[...s,e,...Array.isArray(t)?t:[]],{...n,stdin:void 0,stdout:void 0,stderr:void 0,stdio:r,shell:!1})}});var o$={};ec(o$,{pkg:()=>jl});module.exports=UM(o$);l();var Ox=J(require("update-notifier"));var tc={};ec(tc,{author:()=>VM,bin:()=>JM,bugs:()=>WM,default:()=>nL,dependencies:()=>eL,description:()=>YM,devDependencies:()=>jM,engines:()=>tL,files:()=>ZM,homepage:()=>qM,license:()=>$M,name:()=>HM,publishConfig:()=>zM,repository:()=>KM,scripts:()=>XM,sideEffects:()=>QM,version:()=>nc});var HM="@e2b/cli",nc="0.5.1",YM="CLI for managing e2b sandbox templates",qM="https://e2b.dev",$M="MIT",VM={name:"FoundryLabs, Inc.",email:"hello@e2b.dev",url:"https://e2b.dev"},WM="https://github.com/e2b-dev/e2b/issues",KM={type:"git",url:"https://github.com/e2b-dev/e2b",directory:"packages/cli"},zM={access:"public"},QM=!1,XM={prepublishOnly:"pnpm build",build:"tsc --noEmit --skipLibCheck && tsup --minify",dev:"tsup --watch",test:"pnpm build && cd testground/demo-basic && ../../dist/index.js template build","check-deps":"knip","update-deps":"ncu -u && pnpm i"},jM={"@types/command-exists":"^1.2.3","@types/inquirer":"^9.0.7","@types/node":"^18.18.6","@types/update-notifier":"6.0.5",knip:"^2.33.4","npm-check-updates":"^16.14.6",tsup:"^7.2.0",typescript:"^5.2.2",vitest:"^0.34.6"},ZM=["dist","LICENSE","README","package.json"],JM={e2b:"dist/index.js"},eL={"@iarna/toml":"^2.2.5","async-listen":"^3.0.1",boxen:"^7.1.1",chalk:"^5.3.0","cli-highlight":"^2.1.11","command-exists":"^1.2.9",commander:"^11.1.0","console-table-printer":"^2.11.2",e2b:"^0.15.0",inquirer:"^9.2.12",open:"^9.1.0","strip-ansi":"^7.1.0","update-notifier":"5.1.0",yup:"^1.3.2"},tL={node:">=18"},nL={name:HM,version:nc,description:YM,homepage:qM,license:$M,author:VM,bugs:WM,repository:KM,publishConfig:zM,sideEffects:QM,scripts:XM,devDependencies:jM,files:ZM,bin:JM,dependencies:eL,engines:tL};l();l();var op=J(sp(),1),{program:O$,createCommand:A$,createArgument:N$,createOption:I$,CommanderError:y$,InvalidArgumentError:v$,InvalidOptionArgumentError:x$,Command:Ce,Argument:M$,Option:cr,Help:L$}=op.default;l();l();l();var lp=(e=0)=>t=>`\x1B[${t+e}m`,cp=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,up=(e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,Pe={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},P$=Object.keys(Pe.modifier),TL=Object.keys(Pe.color),bL=Object.keys(Pe.bgColor),F$=[...TL,...bL];function DL(){let e=new Map;for(let[t,n]of Object.entries(Pe)){for(let[r,i]of Object.entries(n))Pe[r]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},n[r]=Pe[r],e.set(i[0],i[1]);Object.defineProperty(Pe,t,{value:n,enumerable:!1})}return Object.defineProperty(Pe,"codes",{value:e,enumerable:!1}),Pe.color.close="\x1B[39m",Pe.bgColor.close="\x1B[49m",Pe.color.ansi=lp(),Pe.color.ansi256=cp(),Pe.color.ansi16m=up(),Pe.bgColor.ansi=lp(10),Pe.bgColor.ansi256=cp(10),Pe.bgColor.ansi16m=up(10),Object.defineProperties(Pe,{rgbToAnsi256:{value(t,n,r){return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},enumerable:!1},hexToRgb:{value(t){let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!n)return[0,0,0];let[r]=n;r.length===3&&(r=[...r].map(a=>a+a).join(""));let i=Number.parseInt(r,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>Pe.rgbToAnsi256(...Pe.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let n,r,i;if(t>=232)n=((t-232)*10+8)/255,r=n,i=n;else{t-=16;let o=t%36;n=Math.floor(t/36)/5,r=Math.floor(o/6)/5,i=o%6/5}let a=Math.max(n,r,i)*2;if(a===0)return 30;let s=30+(Math.round(i)<<2|Math.round(r)<<1|Math.round(n));return a===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,n,r)=>Pe.ansi256ToAnsi(Pe.rgbToAnsi256(t,n,r)),enumerable:!1},hexToAnsi:{value:t=>Pe.ansi256ToAnsi(Pe.hexToAnsi256(t)),enumerable:!1}}),Pe}var CL=DL(),Ht=CL;l();var ts=J(require("process"),1),_p=J(require("os"),1),fc=J(require("tty"),1);function vt(e,t=globalThis.Deno?globalThis.Deno.args:ts.default.argv){let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return r!==-1&&(i===-1||r<i)}var{env:Ge}=ts.default,es;vt("no-color")||vt("no-colors")||vt("color=false")||vt("color=never")?es=0:(vt("color")||vt("colors")||vt("color=true")||vt("color=always"))&&(es=1);function RL(){if("FORCE_COLOR"in Ge)return Ge.FORCE_COLOR==="true"?1:Ge.FORCE_COLOR==="false"?0:Ge.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Ge.FORCE_COLOR,10),3)}function OL(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function AL(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=RL();r!==void 0&&(es=r);let i=n?es:r;if(i===0)return 0;if(n){if(vt("color=16m")||vt("color=full")||vt("color=truecolor"))return 3;if(vt("color=256"))return 2}if("TF_BUILD"in Ge&&"AGENT_NAME"in Ge)return 1;if(e&&!t&&i===void 0)return 0;let a=i||0;if(Ge.TERM==="dumb")return a;if(ts.default.platform==="win32"){let s=_p.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Ge)return"GITHUB_ACTIONS"in Ge||"GITEA_ACTIONS"in Ge?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Ge)||Ge.CI_NAME==="codeship"?1:a;if("TEAMCITY_VERSION"in Ge)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ge.TEAMCITY_VERSION)?1:0;if(Ge.COLORTERM==="truecolor"||Ge.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in Ge){let s=Number.parseInt((Ge.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ge.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ge.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ge.TERM)||"COLORTERM"in Ge?1:a}function dp(e,t={}){let n=AL(e,{streamIsTTY:e&&e.isTTY,...t});return OL(n)}var NL={stdout:dp({isTTY:fc.default.isatty(1)}),stderr:dp({isTTY:fc.default.isatty(2)})},mp=NL;l();function pp(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,s="";do s+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return s+=e.slice(a),s}function Ep(e,t,n,r){let i=0,a="";do{let s=e[r-1]==="\r";a+=e.slice(i,s?r-1:r)+t+(s?`\r
71
+ `);return x?(r.originalMessage=r.message,r.message=B):r=new Error(B),r.shortMessage=P,r.command=s,r.escapedCommand=o,r.exitCode=a,r.signal=i,r.signalDescription=g,r.stdout=e,r.stderr=t,n!==void 0&&(r.all=n),"bufferedData"in r&&delete r.bufferedData,r.failed=!0,r.timedOut=!!c,r.isCanceled=u,r.killed=d&&!c,r};Uy.exports=pY});var Yy=E((Coe,nm)=>{"use strict";l();var vl=["stdin","stdout","stderr"],EY=e=>vl.some(t=>e[t]!==void 0),Hy=e=>{if(!e)return;let{stdio:t}=e;if(t===void 0)return vl.map(r=>e[r]);if(EY(e))throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${vl.map(r=>`\`${r}\``).join(", ")}`);if(typeof t=="string")return t;if(!Array.isArray(t))throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);let n=Math.max(t.length,vl.length);return Array.from({length:n},(r,i)=>t[i])};nm.exports=Hy;nm.exports.node=e=>{let t=Hy(e);return t==="ipc"?"ipc":t===void 0||typeof t=="string"?[t,t,t,"ipc"]:t.includes("ipc")?t:[...t,"ipc"]}});var qy=E((Ooe,xl)=>{"use strict";l();xl.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&xl.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&xl.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var am=E((Noe,Ni)=>{"use strict";l();var ke=global.process,xr=function(e){return e&&typeof e=="object"&&typeof e.removeListener=="function"&&typeof e.emit=="function"&&typeof e.reallyExit=="function"&&typeof e.listeners=="function"&&typeof e.kill=="function"&&typeof e.pid=="number"&&typeof e.on=="function"};xr(ke)?($y=require("assert"),Oi=qy(),Vy=/^win/i.test(ke.platform),Ga=require("events"),typeof Ga!="function"&&(Ga=Ga.EventEmitter),ke.__signal_exit_emitter__?it=ke.__signal_exit_emitter__:(it=ke.__signal_exit_emitter__=new Ga,it.count=0,it.emitted={}),it.infinite||(it.setMaxListeners(1/0),it.infinite=!0),Ni.exports=function(e,t){if(!xr(global.process))return function(){};$y.equal(typeof e,"function","a callback must be provided for exit handler"),Ai===!1&&rm();var n="exit";t&&t.alwaysLast&&(n="afterexit");var r=function(){it.removeListener(n,e),it.listeners("exit").length===0&&it.listeners("afterexit").length===0&&Ml()};return it.on(n,e),r},Ml=function(){!Ai||!xr(global.process)||(Ai=!1,Oi.forEach(function(t){try{ke.removeListener(t,Ll[t])}catch{}}),ke.emit=wl,ke.reallyExit=im,it.count-=1)},Ni.exports.unload=Ml,Mr=function(t,n,r){it.emitted[t]||(it.emitted[t]=!0,it.emit(t,n,r))},Ll={},Oi.forEach(function(e){Ll[e]=function(){if(xr(global.process)){var n=ke.listeners(e);n.length===it.count&&(Ml(),Mr("exit",null,e),Mr("afterexit",null,e),Vy&&e==="SIGHUP"&&(e="SIGINT"),ke.kill(ke.pid,e))}}}),Ni.exports.signals=function(){return Oi},Ai=!1,rm=function(){Ai||!xr(global.process)||(Ai=!0,it.count+=1,Oi=Oi.filter(function(t){try{return ke.on(t,Ll[t]),!0}catch{return!1}}),ke.emit=Ky,ke.reallyExit=Wy)},Ni.exports.load=rm,im=ke.reallyExit,Wy=function(t){xr(global.process)&&(ke.exitCode=t||0,Mr("exit",ke.exitCode,null),Mr("afterexit",ke.exitCode,null),im.call(ke,ke.exitCode))},wl=ke.emit,Ky=function(t,n){if(t==="exit"&&xr(global.process)){n!==void 0&&(ke.exitCode=n);var r=wl.apply(this,arguments);return Mr("exit",ke.exitCode,null),Mr("afterexit",ke.exitCode,null),r}else return wl.apply(this,arguments)}):Ni.exports=function(){return function(){}};var $y,Oi,Vy,Ga,it,Ml,Mr,Ll,Ai,rm,im,Wy,wl,Ky});var Qy=E((yoe,zy)=>{"use strict";l();var fY=require("os"),gY=am(),SY=1e3*5,hY=(e,t="SIGTERM",n={})=>{let r=e(t);return TY(e,t,n,r),r},TY=(e,t,n,r)=>{if(!bY(t,n,r))return;let i=CY(n),a=setTimeout(()=>{e("SIGKILL")},i);a.unref&&a.unref()},bY=(e,{forceKillAfterTimeout:t},n)=>DY(e)&&t!==!1&&n,DY=e=>e===fY.constants.signals.SIGTERM||typeof e=="string"&&e.toUpperCase()==="SIGTERM",CY=({forceKillAfterTimeout:e=!0})=>{if(e===!0)return SY;if(!Number.isFinite(e)||e<0)throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e},RY=(e,t)=>{e.kill()&&(t.isCanceled=!0)},OY=(e,t,n)=>{e.kill(t),n(Object.assign(new Error("Timed out"),{timedOut:!0,signal:t}))},AY=(e,{timeout:t,killSignal:n="SIGTERM"},r)=>{if(t===0||t===void 0)return r;let i,a=new Promise((o,c)=>{i=setTimeout(()=>{OY(e,n,c)},t)}),s=r.finally(()=>{clearTimeout(i)});return Promise.race([a,s])},NY=({timeout:e})=>{if(e!==void 0&&(!Number.isFinite(e)||e<0))throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`)},IY=async(e,{cleanup:t,detached:n},r)=>{if(!t||n)return r;let i=gY(()=>{e.kill()});return r.finally(()=>{i()})};zy.exports={spawnedKill:hY,spawnedCancel:RY,setupTimeout:AY,validateTimeout:NY,setExitHandler:IY}});var jy=E((xoe,Xy)=>{"use strict";l();var dn=e=>e!==null&&typeof e=="object"&&typeof e.pipe=="function";dn.writable=e=>dn(e)&&e.writable!==!1&&typeof e._write=="function"&&typeof e._writableState=="object";dn.readable=e=>dn(e)&&e.readable!==!1&&typeof e._read=="function"&&typeof e._readableState=="object";dn.duplex=e=>dn.writable(e)&&dn.readable(e);dn.transform=e=>dn.duplex(e)&&typeof e._transform=="function";Xy.exports=dn});var Jy=E((Loe,Zy)=>{"use strict";l();var{PassThrough:yY}=require("stream");Zy.exports=e=>{e={...e};let{array:t}=e,{encoding:n}=e,r=n==="buffer",i=!1;t?i=!(n||r):n=n||"utf8",r&&(n=null);let a=new yY({objectMode:i});n&&a.setEncoding(n);let s=0,o=[];return a.on("data",c=>{o.push(c),i?s=o.length:s+=c.length}),a.getBufferedValue=()=>t?o:r?Buffer.concat(o,s):o.join(""),a.getBufferedLength=()=>s,a}});var om=E((Poe,Ha)=>{"use strict";l();var{constants:vY}=require("buffer"),xY=require("stream"),{promisify:MY}=require("util"),LY=Jy(),wY=MY(xY.pipeline),Pl=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function sm(e,t){if(!e)throw new Error("Expected a stream");t={maxBuffer:1/0,...t};let{maxBuffer:n}=t,r=LY(t);return await new Promise((i,a)=>{let s=o=>{o&&r.getBufferedLength()<=vY.MAX_LENGTH&&(o.bufferedData=r.getBufferedValue()),a(o)};(async()=>{try{await wY(e,r),i()}catch(o){s(o)}})(),r.on("data",()=>{r.getBufferedLength()>n&&s(new Pl)})}),r.getBufferedValue()}Ha.exports=sm;Ha.exports.buffer=(e,t)=>sm(e,{...t,encoding:"buffer"});Ha.exports.array=(e,t)=>sm(e,{...t,array:!0});Ha.exports.MaxBufferError=Pl});var lm=E((koe,ev)=>{"use strict";l();var{PassThrough:PY}=require("stream");ev.exports=function(){var e=[],t=new PY({objectMode:!0});return t.setMaxListeners(0),t.add=n,t.isEmpty=r,t.on("unpipe",i),Array.prototype.slice.call(arguments).forEach(n),t;function n(a){return Array.isArray(a)?(a.forEach(n),this):(e.push(a),a.once("end",i.bind(null,a)),a.once("error",t.emit.bind(t,"error")),a.pipe(t,{end:!1}),this)}function r(){return e.length==0}function i(a){e=e.filter(function(s){return s!==a}),!e.length&&t.readable&&t.end()}}});var iv=E((Uoe,rv)=>{"use strict";l();var nv=jy(),tv=om(),FY=lm(),kY=(e,t)=>{t===void 0||e.stdin===void 0||(nv(t)?t.pipe(e.stdin):e.stdin.end(t))},BY=(e,{all:t})=>{if(!t||!e.stdout&&!e.stderr)return;let n=FY();return e.stdout&&n.add(e.stdout),e.stderr&&n.add(e.stderr),n},cm=async(e,t)=>{if(e){e.destroy();try{return await t}catch(n){return n.bufferedData}}},um=(e,{encoding:t,buffer:n,maxBuffer:r})=>{if(!(!e||!n))return t?tv(e,{encoding:t,maxBuffer:r}):tv.buffer(e,{maxBuffer:r})},UY=async({stdout:e,stderr:t,all:n},{encoding:r,buffer:i,maxBuffer:a},s)=>{let o=um(e,{encoding:r,buffer:i,maxBuffer:a}),c=um(t,{encoding:r,buffer:i,maxBuffer:a}),u=um(n,{encoding:r,buffer:i,maxBuffer:a*2});try{return await Promise.all([s,o,c,u])}catch(d){return Promise.all([{error:d,signal:d.signal,timedOut:d.timedOut},cm(e,o),cm(t,c),cm(n,u)])}},GY=({input:e})=>{if(nv(e))throw new TypeError("The `input` option cannot be a stream in sync mode")};rv.exports={handleInput:kY,makeAllStream:BY,getSpawnedResult:UY,validateInputSync:GY}});var sv=E((Hoe,av)=>{"use strict";l();var HY=(async()=>{})().constructor.prototype,YY=["then","catch","finally"].map(e=>[e,Reflect.getOwnPropertyDescriptor(HY,e)]),qY=(e,t)=>{for(let[n,r]of YY){let i=typeof t=="function"?(...a)=>Reflect.apply(r.value,t(),a):r.value.bind(t);Reflect.defineProperty(e,n,{...r,value:i})}return e},$Y=e=>new Promise((t,n)=>{e.on("exit",(r,i)=>{t({exitCode:r,signal:i})}),e.on("error",r=>{n(r)}),e.stdin&&e.stdin.on("error",r=>{n(r)})});av.exports={mergePromise:qY,getSpawnedPromise:$Y}});var cv=E((qoe,lv)=>{"use strict";l();var ov=(e,t=[])=>Array.isArray(t)?[e,...t]:[e],VY=/^[\w.-]+$/,WY=/"/g,KY=e=>typeof e!="string"||VY.test(e)?e:`"${e.replace(WY,'\\"')}"`,zY=(e,t)=>ov(e,t).join(" "),QY=(e,t)=>ov(e,t).map(n=>KY(n)).join(" "),XY=/ +/g,jY=e=>{let t=[];for(let n of e.trim().split(XY)){let r=t[t.length-1];r&&r.endsWith("\\")?t[t.length-1]=`${r.slice(0,-1)} ${n}`:t.push(n)}return t};lv.exports={joinCommand:zY,getEscapedCommand:QY,parseCommand:jY}});var fv=E((Voe,Ii)=>{"use strict";l();var ZY=require("path"),dm=require("child_process"),JY=J_(),eq=Oy(),tq=Iy(),nq=My(),Fl=Gy(),dv=Yy(),{spawnedKill:rq,spawnedCancel:iq,setupTimeout:aq,validateTimeout:sq,setExitHandler:oq}=Qy(),{handleInput:lq,getSpawnedResult:cq,makeAllStream:uq,validateInputSync:dq}=iv(),{mergePromise:uv,getSpawnedPromise:_q}=sv(),{joinCommand:_v,parseCommand:mv,getEscapedCommand:pv}=cv(),mq=1e3*1e3*100,pq=({env:e,extendEnv:t,preferLocal:n,localDir:r,execPath:i})=>{let a=t?{...process.env,...e}:e;return n?tq.env({env:a,cwd:r,execPath:i}):a},Ev=(e,t,n={})=>{let r=JY._parse(e,t,n);return e=r.command,t=r.args,n=r.options,n={maxBuffer:mq,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:n.cwd||process.cwd(),execPath:process.execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,...n},n.env=pq(n),n.stdio=dv(n),process.platform==="win32"&&ZY.basename(e,".exe")==="cmd"&&t.unshift("/q"),{file:e,args:t,options:n,parsed:r}},Ya=(e,t,n)=>typeof t!="string"&&!Buffer.isBuffer(t)?n===void 0?void 0:"":e.stripFinalNewline?eq(t):t,kl=(e,t,n)=>{let r=Ev(e,t,n),i=_v(e,t),a=pv(e,t);sq(r.options);let s;try{s=dm.spawn(r.file,r.args,r.options)}catch(D){let S=new dm.ChildProcess,A=Promise.reject(Fl({error:D,stdout:"",stderr:"",all:"",command:i,escapedCommand:a,parsed:r,timedOut:!1,isCanceled:!1,killed:!1}));return uv(S,A)}let o=_q(s),c=aq(s,r.options,o),u=oq(s,r.options,c),d={isCanceled:!1};s.kill=rq.bind(null,s.kill.bind(s)),s.cancel=iq.bind(null,s,d);let g=nq(async()=>{let[{error:D,exitCode:S,signal:A,timedOut:x},P,B,U]=await cq(s,r.options,u),q=Ya(r.options,P),te=Ya(r.options,B),Z=Ya(r.options,U);if(D||S!==0||A!==null){let re=Fl({error:D,exitCode:S,signal:A,stdout:q,stderr:te,all:Z,command:i,escapedCommand:a,parsed:r,timedOut:x,isCanceled:d.isCanceled,killed:s.killed});if(!r.options.reject)return re;throw re}return{command:i,escapedCommand:a,exitCode:0,stdout:q,stderr:te,all:Z,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}});return lq(s,r.options.input),s.all=uq(s,r.options),uv(s,g)};Ii.exports=kl;Ii.exports.sync=(e,t,n)=>{let r=Ev(e,t,n),i=_v(e,t),a=pv(e,t);dq(r.options);let s;try{s=dm.spawnSync(r.file,r.args,r.options)}catch(u){throw Fl({error:u,stdout:"",stderr:"",all:"",command:i,escapedCommand:a,parsed:r,timedOut:!1,isCanceled:!1,killed:!1})}let o=Ya(r.options,s.stdout,s.error),c=Ya(r.options,s.stderr,s.error);if(s.error||s.status!==0||s.signal!==null){let u=Fl({stdout:o,stderr:c,error:s.error,signal:s.signal,exitCode:s.status,command:i,escapedCommand:a,parsed:r,timedOut:s.error&&s.error.code==="ETIMEDOUT",isCanceled:!1,killed:s.signal!==null});if(!r.options.reject)return u;throw u}return{command:i,escapedCommand:a,exitCode:0,stdout:o,stderr:c,failed:!1,timedOut:!1,isCanceled:!1,killed:!1}};Ii.exports.command=(e,t)=>{let[n,...r]=mv(e);return kl(n,r,t)};Ii.exports.commandSync=(e,t)=>{let[n,...r]=mv(e);return kl.sync(n,r,t)};Ii.exports.node=(e,t,n={})=>{t&&!Array.isArray(t)&&typeof t=="object"&&(n=t,t=[]);let r=dv.node(n),i=process.execArgv.filter(o=>!o.startsWith("--inspect")),{nodePath:a=process.execPath,nodeOptions:s=i}=n;return kl(a,[...s,e,...Array.isArray(t)?t:[]],{...n,stdin:void 0,stdout:void 0,stderr:void 0,stdio:r,shell:!1})}});var o$={};ec(o$,{pkg:()=>jl});module.exports=UM(o$);l();var Ox=J(require("update-notifier"));var tc={};ec(tc,{author:()=>VM,bin:()=>JM,bugs:()=>WM,default:()=>nL,dependencies:()=>eL,description:()=>YM,devDependencies:()=>jM,engines:()=>tL,files:()=>ZM,homepage:()=>qM,license:()=>$M,name:()=>HM,publishConfig:()=>zM,repository:()=>KM,scripts:()=>XM,sideEffects:()=>QM,version:()=>nc});var HM="@e2b/cli",nc="0.5.2",YM="CLI for managing e2b sandbox templates",qM="https://e2b.dev",$M="MIT",VM={name:"FoundryLabs, Inc.",email:"hello@e2b.dev",url:"https://e2b.dev"},WM="https://github.com/e2b-dev/e2b/issues",KM={type:"git",url:"https://github.com/e2b-dev/e2b",directory:"packages/cli"},zM={access:"public"},QM=!1,XM={prepublishOnly:"pnpm build",build:"tsc --noEmit --skipLibCheck && tsup --minify",dev:"tsup --watch",test:"pnpm build && cd testground/demo-basic && ../../dist/index.js template build","check-deps":"knip","update-deps":"ncu -u && pnpm i"},jM={"@types/command-exists":"^1.2.3","@types/inquirer":"^9.0.7","@types/node":"^18.18.6","@types/update-notifier":"6.0.5",knip:"^2.33.4","npm-check-updates":"^16.14.6",tsup:"^7.2.0",typescript:"^5.2.2"},ZM=["dist","LICENSE","README","package.json"],JM={e2b:"dist/index.js"},eL={"@iarna/toml":"^2.2.5","async-listen":"^3.0.1",boxen:"^7.1.1",chalk:"^5.3.0","cli-highlight":"^2.1.11","command-exists":"^1.2.9",commander:"^11.1.0","console-table-printer":"^2.11.2",e2b:"^0.16.0",inquirer:"^9.2.12",open:"^9.1.0","strip-ansi":"^7.1.0","update-notifier":"5.1.0",yup:"^1.3.2"},tL={node:">=18"},nL={name:HM,version:nc,description:YM,homepage:qM,license:$M,author:VM,bugs:WM,repository:KM,publishConfig:zM,sideEffects:QM,scripts:XM,devDependencies:jM,files:ZM,bin:JM,dependencies:eL,engines:tL};l();l();var op=J(sp(),1),{program:O$,createCommand:A$,createArgument:N$,createOption:I$,CommanderError:y$,InvalidArgumentError:v$,InvalidOptionArgumentError:x$,Command:Ce,Argument:M$,Option:cr,Help:L$}=op.default;l();l();l();var lp=(e=0)=>t=>`\x1B[${t+e}m`,cp=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,up=(e=0)=>(t,n,r)=>`\x1B[${38+e};2;${t};${n};${r}m`,Pe={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}},P$=Object.keys(Pe.modifier),TL=Object.keys(Pe.color),bL=Object.keys(Pe.bgColor),F$=[...TL,...bL];function DL(){let e=new Map;for(let[t,n]of Object.entries(Pe)){for(let[r,i]of Object.entries(n))Pe[r]={open:`\x1B[${i[0]}m`,close:`\x1B[${i[1]}m`},n[r]=Pe[r],e.set(i[0],i[1]);Object.defineProperty(Pe,t,{value:n,enumerable:!1})}return Object.defineProperty(Pe,"codes",{value:e,enumerable:!1}),Pe.color.close="\x1B[39m",Pe.bgColor.close="\x1B[49m",Pe.color.ansi=lp(),Pe.color.ansi256=cp(),Pe.color.ansi16m=up(),Pe.bgColor.ansi=lp(10),Pe.bgColor.ansi256=cp(10),Pe.bgColor.ansi16m=up(10),Object.defineProperties(Pe,{rgbToAnsi256:{value(t,n,r){return t===n&&n===r?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(n/255*5)+Math.round(r/255*5)},enumerable:!1},hexToRgb:{value(t){let n=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!n)return[0,0,0];let[r]=n;r.length===3&&(r=[...r].map(a=>a+a).join(""));let i=Number.parseInt(r,16);return[i>>16&255,i>>8&255,i&255]},enumerable:!1},hexToAnsi256:{value:t=>Pe.rgbToAnsi256(...Pe.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value(t){if(t<8)return 30+t;if(t<16)return 90+(t-8);let n,r,i;if(t>=232)n=((t-232)*10+8)/255,r=n,i=n;else{t-=16;let o=t%36;n=Math.floor(t/36)/5,r=Math.floor(o/6)/5,i=o%6/5}let a=Math.max(n,r,i)*2;if(a===0)return 30;let s=30+(Math.round(i)<<2|Math.round(r)<<1|Math.round(n));return a===2&&(s+=60),s},enumerable:!1},rgbToAnsi:{value:(t,n,r)=>Pe.ansi256ToAnsi(Pe.rgbToAnsi256(t,n,r)),enumerable:!1},hexToAnsi:{value:t=>Pe.ansi256ToAnsi(Pe.hexToAnsi256(t)),enumerable:!1}}),Pe}var CL=DL(),Ht=CL;l();var ts=J(require("process"),1),_p=J(require("os"),1),fc=J(require("tty"),1);function vt(e,t=globalThis.Deno?globalThis.Deno.args:ts.default.argv){let n=e.startsWith("-")?"":e.length===1?"-":"--",r=t.indexOf(n+e),i=t.indexOf("--");return r!==-1&&(i===-1||r<i)}var{env:Ge}=ts.default,es;vt("no-color")||vt("no-colors")||vt("color=false")||vt("color=never")?es=0:(vt("color")||vt("colors")||vt("color=true")||vt("color=always"))&&(es=1);function RL(){if("FORCE_COLOR"in Ge)return Ge.FORCE_COLOR==="true"?1:Ge.FORCE_COLOR==="false"?0:Ge.FORCE_COLOR.length===0?1:Math.min(Number.parseInt(Ge.FORCE_COLOR,10),3)}function OL(e){return e===0?!1:{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function AL(e,{streamIsTTY:t,sniffFlags:n=!0}={}){let r=RL();r!==void 0&&(es=r);let i=n?es:r;if(i===0)return 0;if(n){if(vt("color=16m")||vt("color=full")||vt("color=truecolor"))return 3;if(vt("color=256"))return 2}if("TF_BUILD"in Ge&&"AGENT_NAME"in Ge)return 1;if(e&&!t&&i===void 0)return 0;let a=i||0;if(Ge.TERM==="dumb")return a;if(ts.default.platform==="win32"){let s=_p.default.release().split(".");return Number(s[0])>=10&&Number(s[2])>=10586?Number(s[2])>=14931?3:2:1}if("CI"in Ge)return"GITHUB_ACTIONS"in Ge||"GITEA_ACTIONS"in Ge?3:["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(s=>s in Ge)||Ge.CI_NAME==="codeship"?1:a;if("TEAMCITY_VERSION"in Ge)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Ge.TEAMCITY_VERSION)?1:0;if(Ge.COLORTERM==="truecolor"||Ge.TERM==="xterm-kitty")return 3;if("TERM_PROGRAM"in Ge){let s=Number.parseInt((Ge.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Ge.TERM_PROGRAM){case"iTerm.app":return s>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Ge.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Ge.TERM)||"COLORTERM"in Ge?1:a}function dp(e,t={}){let n=AL(e,{streamIsTTY:e&&e.isTTY,...t});return OL(n)}var NL={stdout:dp({isTTY:fc.default.isatty(1)}),stderr:dp({isTTY:fc.default.isatty(2)})},mp=NL;l();function pp(e,t,n){let r=e.indexOf(t);if(r===-1)return e;let i=t.length,a=0,s="";do s+=e.slice(a,r)+t+n,a=r+i,r=e.indexOf(t,a);while(r!==-1);return s+=e.slice(a),s}function Ep(e,t,n,r){let i=0,a="";do{let s=e[r-1]==="\r";a+=e.slice(i,s?r-1:r)+t+(s?`\r
72
72
  `:`
73
73
  `)+n,i=r+1,r=e.indexOf(`
74
74
  `,i)}while(r!==-1);return a+=e.slice(i),a}var{stdout:fp,stderr:gp}=mp,gc=Symbol("GENERATOR"),Lr=Symbol("STYLER"),Pi=Symbol("IS_EMPTY"),Sp=["ansi","ansi","ansi256","ansi16m"],wr=Object.create(null),IL=(e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let n=fp?fp.level:0;e.level=t.level===void 0?n:t.level};var yL=e=>{let t=(...n)=>n.join(" ");return IL(t,e),Object.setPrototypeOf(t,Fi.prototype),t};function Fi(e){return yL(e)}Object.setPrototypeOf(Fi.prototype,Function.prototype);for(let[e,t]of Object.entries(Ht))wr[e]={get(){let n=ns(this,hc(t.open,t.close,this[Lr]),this[Pi]);return Object.defineProperty(this,e,{value:n}),n}};wr.visible={get(){let e=ns(this,this[Lr],!0);return Object.defineProperty(this,"visible",{value:e}),e}};var Sc=(e,t,n,...r)=>e==="rgb"?t==="ansi16m"?Ht[n].ansi16m(...r):t==="ansi256"?Ht[n].ansi256(Ht.rgbToAnsi256(...r)):Ht[n].ansi(Ht.rgbToAnsi(...r)):e==="hex"?Sc("rgb",t,n,...Ht.hexToRgb(...r)):Ht[n][e](...r),vL=["rgb","hex","ansi256"];for(let e of vL){wr[e]={get(){let{level:n}=this;return function(...r){let i=hc(Sc(e,Sp[n],"color",...r),Ht.color.close,this[Lr]);return ns(this,i,this[Pi])}}};let t="bg"+e[0].toUpperCase()+e.slice(1);wr[t]={get(){let{level:n}=this;return function(...r){let i=hc(Sc(e,Sp[n],"bgColor",...r),Ht.bgColor.close,this[Lr]);return ns(this,i,this[Pi])}}}}var xL=Object.defineProperties(()=>{},{...wr,level:{enumerable:!0,get(){return this[gc].level},set(e){this[gc].level=e}}}),hc=(e,t,n)=>{let r,i;return n===void 0?(r=e,i=t):(r=n.openAll+e,i=t+n.closeAll),{open:e,close:t,openAll:r,closeAll:i,parent:n}},ns=(e,t,n)=>{let r=(...i)=>ML(r,i.length===1?""+i[0]:i.join(" "));return Object.setPrototypeOf(r,xL),r[gc]=e,r[Lr]=t,r[Pi]=n,r},ML=(e,t)=>{if(e.level<=0||!t)return e[Pi]?"":t;let n=e[Lr];if(n===void 0)return t;let{openAll:r,closeAll:i}=n;if(t.includes("\x1B"))for(;n!==void 0;)t=pp(t,n.close,n.open),n=n.parent;let a=t.indexOf(`
@@ -83,7 +83,7 @@ ${r.message}`:A,B=[P,t,e].filter(Boolean).join(`
83
83
  `,gt=" ",oa="none",mR=()=>{let{env:e,stdout:t,stderr:n}=sa.default;return t?.columns?t.columns:n?.columns?n.columns:e.COLUMNS?Number.parseInt(e.COLUMNS,10):80},cR=e=>typeof e=="number"?{top:e,right:e*3,bottom:e,left:e*3}:{top:0,right:0,bottom:0,left:0,...e},la=e=>e===oa?0:2,cB=e=>{let t=["topLeft","topRight","bottomRight","bottomLeft","left","right","top","bottom"],n;if(e===oa){e={};for(let r of t)e[r]=""}if(typeof e=="string"){if(n=_R.default[e],!n)throw new TypeError(`Invalid border style: ${e}`)}else{typeof e?.vertical=="string"&&(e.left=e.vertical,e.right=e.vertical),typeof e?.horizontal=="string"&&(e.top=e.horizontal,e.bottom=e.horizontal);for(let r of t)if(e[r]===null||typeof e[r]!="string")throw new TypeError(`Invalid border style: ${r}`);n=e}return n},uB=(e,t,n)=>{let r="",i=tt(e);switch(n){case"left":{r=e+t.slice(i);break}case"right":{r=t.slice(i)+e;break}default:{t=t.slice(i),t.length%2===1?(t=t.slice(Math.floor(t.length/2)),r=t.slice(1)+e+t):(t=t.slice(t.length/2),r=t+e+t);break}}return r},dB=(e,{padding:t,width:n,textAlignment:r,height:i})=>{e=(0,ad.default)(e,{align:r});let a=e.split(Qn),s=co(e),o=n-t.left-t.right;if(s>o){let d=[];for(let m of a){let g=_o(m,o,{hard:!0}),S=(0,ad.default)(g,{align:r}).split(`
84
84
  `),A=Math.max(...S.map(x=>tt(x)));for(let x of S){let P;switch(r){case"center":{P=gt.repeat((o-A)/2)+x;break}case"right":{P=gt.repeat(o-A)+x;break}default:{P=x;break}}d.push(P)}}a=d}r==="center"&&s<o?a=a.map(d=>gt.repeat((o-s)/2)+d):r==="right"&&s<o&&(a=a.map(d=>gt.repeat(o-s)+d));let c=gt.repeat(t.left),u=gt.repeat(t.right);return a=a.map(d=>c+d+u),a=a.map(d=>{if(n-tt(d)>0)switch(r){case"center":return d+gt.repeat(n-tt(d));case"right":return d+gt.repeat(n-tt(d));default:return d+gt.repeat(n-tt(d))}return d}),t.top>0&&(a=[...Array.from({length:t.top}).fill(gt.repeat(n)),...a]),t.bottom>0&&(a=[...a,...Array.from({length:t.bottom}).fill(gt.repeat(n))]),i&&a.length>i?a=a.slice(0,i):i&&a.length<i&&(a=[...a,...Array.from({length:i-a.length}).fill(gt.repeat(n))]),a.join(Qn)},_B=(e,t,n)=>{let r=d=>{let m=n.borderColor?EB(n.borderColor)(d):d;return n.dimBorder?Re.dim(m):m},i=d=>n.backgroundColor?fB(n.backgroundColor)(d):d,a=cB(n.borderStyle),s=mR(),o=gt.repeat(n.margin.left);if(n.float==="center"){let d=Math.max((s-t-la(n.borderStyle))/2,0);o=gt.repeat(d)}else if(n.float==="right"){let d=Math.max(s-t-n.margin.right-la(n.borderStyle),0);o=gt.repeat(d)}let c="";n.margin.top&&(c+=Qn.repeat(n.margin.top)),(n.borderStyle!==oa||n.title)&&(c+=r(o+a.topLeft+(n.title?uB(n.title,a.top.repeat(t),n.titleAlignment):a.top.repeat(t))+a.topRight)+Qn);let u=e.split(Qn);return c+=u.map(d=>o+r(a.left)+i(d)+r(a.right)).join(Qn),n.borderStyle!==oa&&(c+=Qn+r(o+a.bottomLeft+a.bottom.repeat(t)+a.bottomRight)),n.margin.bottom&&(c+=Qn.repeat(n.margin.bottom)),c},mB=e=>{if(e.fullscreen&&sa.default?.stdout){let t=[sa.default.stdout.columns,sa.default.stdout.rows];typeof e.fullscreen=="function"&&(t=e.fullscreen(...t)),e.width||(e.width=t[0]),e.height||(e.height=t[1])}return e.width&&(e.width=Math.max(1,e.width-la(e.borderStyle))),e.height&&(e.height=Math.max(1,e.height-la(e.borderStyle))),e},uR=(e,t)=>t===oa?e:` ${e} `,pB=(e,t)=>{t=mB(t);let n=t.width!==void 0,r=mR(),i=la(t.borderStyle),a=r-t.margin.left-t.margin.right-i,s=co(_o(e,r-i,{hard:!0,trim:!1}))+t.padding.left+t.padding.right;if(t.title&&n?(t.title=t.title.slice(0,Math.max(0,t.width-2)),t.title&&(t.title=uR(t.title,t.borderStyle))):t.title&&(t.title=t.title.slice(0,Math.max(0,a-2)),t.title&&(t.title=uR(t.title,t.borderStyle),tt(t.title)>s&&(t.width=tt(t.title)))),t.width=t.width?t.width:s,!n){if(t.margin.left&&t.margin.right&&t.width>a){let c=(r-t.width-i)/(t.margin.left+t.margin.right);t.margin.left=Math.max(0,Math.floor(t.margin.left*c)),t.margin.right=Math.max(0,Math.floor(t.margin.right*c))}t.width=Math.min(t.width,r-i-t.margin.left-t.margin.right)}return t.width-(t.padding.left+t.padding.right)<=0&&(t.padding.left=0,t.padding.right=0),t.height&&t.height-(t.padding.top+t.padding.bottom)<=0&&(t.padding.top=0,t.padding.bottom=0),t},sd=e=>e.match(/^#(?:[0-f]{3}){1,2}$/i),dR=e=>typeof e=="string"&&(Re[e]??sd(e)),EB=e=>sd(e)?Re.hex(e):Re[e],fB=e=>sd(e)?Re.bgHex(e):Re[Ju(["bg",e])];function hr(e,t){if(t={padding:0,borderStyle:"single",dimBorder:!1,textAlignment:"left",float:"left",titleAlignment:"left",...t},t.align&&(t.textAlignment=t.align),t.borderColor&&!dR(t.borderColor))throw new Error(`${t.borderColor} is not a valid borderColor`);if(t.backgroundColor&&!dR(t.backgroundColor))throw new Error(`${t.backgroundColor} is not a valid backgroundColor`);return t.padding=cR(t.padding),t.margin=cR(t.margin),t=pB(e,t),e=dB(e,t),_B(e,t.width,t)}l();var ei=J(require("path"));function Xn(e){let t=process.cwd();return e?ei.isAbsolute(e)?e:ei.resolve(t,e):t}function pR(e){return ei.relative(process.cwd(),e)}var SB="#FFB766";function nt(e,t){let n=dd(e.aliases),r=n?fe(n):"",i=t?hB(" <-> ")+rt(t):"";return`${`${e.templateID} `}${r}${i}`.trim()}function ti(e,t){return Re.redBright(`${e?`${e}
85
85
  `:""}${t?t.stack:""}
86
- `)}function hB(e){return Re.dim(e)}function fe(e){return Re.bold(e)}function bt(e){return Re.hex(SB)(e)}function gR(e){return Re.blue(e)}function Dt(e){return Re.blue(e)}function rt(e){return e?Dt("./"+pR(e)):""}function cd(e){return Re.blueBright(e)}function ud(e){return Re.underline(e)}function dd(e){if(e)return e.join(" | ")}function SR(e){return ld.default(e,{language:"typescript",ignoreIllegals:!0})}function hR(e){return ld.default(e,{language:"python",ignoreIllegals:!0})}var TB={topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",top:"",bottom:"",left:"",right:""},ER=2,fR=1;function _d(e,t,n){return hr(e,{borderStyle:{...TB,top:"\u2500",bottom:n?"\u2500":""},titleAlignment:"center",float:"left",title:t?fe(t):void 0,margin:{top:0,bottom:0,left:1,right:0},fullscreen:r=>[r,0],padding:{bottom:n?fR:0,left:ER,right:ER,top:fR}})}l();l();var xa=J(require("fs")),Pn=J(require("path"));l();l();var md={};ec(md,{ApiError:()=>jn,Fetcher:()=>bR,arrayRequestBody:()=>DR});l();l();l();var Cee=Symbol(),jn=class extends Error{constructor(t){super(t.statusText),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"statusText",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.setPrototypeOf(this,new.target.prototype),this.headers=t.headers,this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.data=t.data}};var ca=function(e,t,n,r){function i(a){return a instanceof n?a:new n(function(s){s(a)})}return new(n||(n=Promise))(function(a,s){function o(d){try{u(r.next(d))}catch(m){s(m)}}function c(d){try{u(r.throw(d))}catch(m){s(m)}}function u(d){d.done?a(d.value):i(d.value).then(o,c)}u((r=r.apply(e,t||[])).next())})},TR=e=>e==="post"||e==="put"||e==="patch"||e==="delete";function bB(e){let t=[],n=(r,i)=>`${encodeURIComponent(r)}=${encodeURIComponent(String(i))}`;return Object.keys(e).forEach(r=>{let i=e[r];i!=null&&(Array.isArray(i)?i.forEach(a=>t.push(n(r,a))):t.push(n(r,i)))}),t.length>0?`?${t.join("&")}`:""}function DB(e,t){return e.replace(/\{([^}]+)\}/g,(n,r)=>{let i=encodeURIComponent(t[r]);return delete t[r],i})}function CB(e,t,n){let r={};return TR(e)?n.forEach(i=>{r[i]=t[i],delete t[i]}):r=Object.assign({},t),bB(r)}function RB(e,t){let n=new Headers(t);return e!==void 0&&!n.has("Content-Type")&&n.append("Content-Type","application/json"),n.has("Accept")||n.append("Accept","application/json"),n}function OB(e,t){let n=TR(e)?JSON.stringify(t):void 0;return e==="delete"&&n==="{}"?void 0:n}function AB(e,t){let n=new Headers(e?.headers),r=new Headers(t?.headers);for(let i of r.keys()){let a=r.get(i);a!=null&&n.set(i,a)}return Object.assign(Object.assign(Object.assign({},e),t),{headers:n})}function NB(e){var t;let n=Object.assign(Array.isArray(e.payload)?[]:{},e.payload),r=DB(e.path,n),i=CB(e.method,n,e.queryParams),a=OB(e.method,n),s=RB(a,(t=e.init)===null||t===void 0?void 0:t.headers),o=e.baseUrl+r+i,c=Object.assign(Object.assign({},e.init),{method:e.method.toUpperCase(),headers:s,body:a});return{url:o,init:c}}function IB(e){return ca(this,void 0,void 0,function*(){let t=e.headers.get("content-type");if(e.status===204)return;if(t&&t.indexOf("application/json")!==-1)return yield e.json();let n=yield e.text();try{return JSON.parse(n)}catch{return n}})}function yB(e,t){return ca(this,void 0,void 0,function*(){let n=yield fetch(e,t),r=yield IB(n),i={headers:n.headers,url:n.url,ok:n.ok,status:n.status,statusText:n.statusText,data:r};if(i.ok)return i;throw new jn(i)})}function vB(e,t){let n=(r,i,a)=>ca(this,void 0,void 0,function*(){if(e==null||r===e.length)return t(i,a);let s=e[r];return yield s(i,a,(o,c)=>n(r+1,o,c))});return(r,i)=>n(0,r,i)}function xB(e){return ca(this,void 0,void 0,function*(){let{url:t,init:n}=NB(e);return yield e.fetch(t,n)})}function MB(e){let t=(n,r)=>ca(this,void 0,void 0,function*(){try{return yield e(n,r)}catch(i){throw i instanceof jn?new t.Error(i):i}});return t.Error=class extends jn{constructor(n){super(n),Object.setPrototypeOf(this,new.target.prototype)}getActualType(){return{status:this.status,data:this.data}}},t}function LB(){let e="",t={},n=[],r=vB(n,yB);return{configure:i=>{e=i.baseUrl||"",t=i.init||{},n.splice(0),n.push(...i.use||[])},use:i=>n.push(i),path:i=>({method:a=>({create:s=>MB((o,c)=>xB({baseUrl:e||"",path:i,method:a,queryParams:Object.keys(s||{}),payload:o,init:AB(t,c),fetch:r}))})})}}var bR={for:()=>LB()};l();function DR(e,t){return Object.assign([...e],t)}l();var po=J(CR());var RR="0.15.0";var OR={browser:typeof window<"u"&&po.default.name||"undefined",lang:"js",lang_version:po.default.version||"unknown",package_version:RR,publisher:"e2b",sdk_runtime:typeof window>"u"?"node":"browser",system:po.default.os?.family||"unknown"};l();var Eo=process?.env?.E2B_DEBUG,fo=process?.env?.E2B_DOMAIN||"e2b.dev",pd=(process?.env?.E2B_SECURE||"true").toLowerCase()==="true",PB=Eo?"localhost:3000":`api.${fo}`,FB=`${pd&&!Eo?"https":"http"}://${PB}`,da=fo,go=49982,AR="/ws",NR="/file";var{Fetcher:kB}=md,Rn=class{constructor(t){this.opts=t;this.client.configure({baseUrl:this.apiHost,init:{headers:OR}})}client=kB.for();get secure(){return this.opts?.secure??pd}get domain(){return this.opts?.domain??fo}get debug(){return this.opts?.debug??Eo}get apiDomain(){return this.debug?"localhost:3000":`api.${this.domain}`}get apiHost(){return`${this.secure&&!this.debug?"https":"http"}://${this.apiDomain}`}get api(){return this.client}};function en(e){let t=(n,r,i)=>e(r,{...i,headers:{Authorization:`Bearer ${n}`,...i?.headers}});return t.Error=e.Error,t}function tn(e){let t=(n,r,i)=>e(r,{...i,headers:{"X-API-KEY":n,...i?.headers}});return t.Error=e.Error,t}l();var Tr="terminal",So=class{_data="";get data(){return this._data}addData(t){this._data+=t}},ho=class{constructor(t,n,r,i,a){this.terminalID=t;this.sandbox=n;this.triggerExit=r;this.output=a;this.finished=i}finished;get data(){return this.output.data}async kill(){try{await this.sandbox._call(Tr,"destroy",[this.terminalID])}finally{this.triggerExit(),await this.finished}}async wait(){return this.finished}async sendData(t){await this.sandbox._call(Tr,"data",[this.terminalID,t])}async resize({cols:t,rows:n}){await this.sandbox._call(Tr,"resize",[this.terminalID,t,n])}};l();l();l();var Ed=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},fd=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},IR=e=>globalThis.DOMException===void 0?new fd(e):new DOMException(e),yR=e=>{let t=e.reason===void 0?IR("This operation was aborted."):e.reason;return t instanceof Error?t:IR(t)};function gd(e,t){let{milliseconds:n,fallback:r,message:i,customTimers:a={setTimeout,clearTimeout}}=t,s,c=new Promise((u,d)=>{if(typeof n!="number"||Math.sign(n)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:g}=t;g.aborted&&d(yR(g)),g.addEventListener("abort",()=>{d(yR(g))})}if(n===Number.POSITIVE_INFINITY){e.then(u,d);return}let m=new Ed;s=a.setTimeout.call(void 0,()=>{if(r){try{u(r())}catch(g){d(g)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?d(i):(m.message=i??`Promise timed out after ${n} milliseconds`,d(m))},n),(async()=>{try{u(await e)}catch(g){d(g)}})()}).finally(()=>{c.clear()});return c.clear=()=>{a.clearTimeout.call(void 0,s),s=void 0},c}function vR(e){return e.status==="fulfilled"}function _a(e){if(!e.every(t=>t.status==="fulfilled"))return e.reduce((t,n,r)=>n.status==="rejected"?t+`
86
+ `)}function hB(e){return Re.dim(e)}function fe(e){return Re.bold(e)}function bt(e){return Re.hex(SB)(e)}function gR(e){return Re.blue(e)}function Dt(e){return Re.blue(e)}function rt(e){return e?Dt("./"+pR(e)):""}function cd(e){return Re.blueBright(e)}function ud(e){return Re.underline(e)}function dd(e){if(e)return e.join(" | ")}function SR(e){return ld.default(e,{language:"typescript",ignoreIllegals:!0})}function hR(e){return ld.default(e,{language:"python",ignoreIllegals:!0})}var TB={topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",top:"",bottom:"",left:"",right:""},ER=2,fR=1;function _d(e,t,n){return hr(e,{borderStyle:{...TB,top:"\u2500",bottom:n?"\u2500":""},titleAlignment:"center",float:"left",title:t?fe(t):void 0,margin:{top:0,bottom:0,left:1,right:0},fullscreen:r=>[r,0],padding:{bottom:n?fR:0,left:ER,right:ER,top:fR}})}l();l();var xa=J(require("fs")),Pn=J(require("path"));l();l();var md={};ec(md,{ApiError:()=>jn,Fetcher:()=>bR,arrayRequestBody:()=>DR});l();l();l();var Cee=Symbol(),jn=class extends Error{constructor(t){super(t.statusText),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"statusText",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.setPrototypeOf(this,new.target.prototype),this.headers=t.headers,this.url=t.url,this.status=t.status,this.statusText=t.statusText,this.data=t.data}};var ca=function(e,t,n,r){function i(a){return a instanceof n?a:new n(function(s){s(a)})}return new(n||(n=Promise))(function(a,s){function o(d){try{u(r.next(d))}catch(m){s(m)}}function c(d){try{u(r.throw(d))}catch(m){s(m)}}function u(d){d.done?a(d.value):i(d.value).then(o,c)}u((r=r.apply(e,t||[])).next())})},TR=e=>e==="post"||e==="put"||e==="patch"||e==="delete";function bB(e){let t=[],n=(r,i)=>`${encodeURIComponent(r)}=${encodeURIComponent(String(i))}`;return Object.keys(e).forEach(r=>{let i=e[r];i!=null&&(Array.isArray(i)?i.forEach(a=>t.push(n(r,a))):t.push(n(r,i)))}),t.length>0?`?${t.join("&")}`:""}function DB(e,t){return e.replace(/\{([^}]+)\}/g,(n,r)=>{let i=encodeURIComponent(t[r]);return delete t[r],i})}function CB(e,t,n){let r={};return TR(e)?n.forEach(i=>{r[i]=t[i],delete t[i]}):r=Object.assign({},t),bB(r)}function RB(e,t){let n=new Headers(t);return e!==void 0&&!n.has("Content-Type")&&n.append("Content-Type","application/json"),n.has("Accept")||n.append("Accept","application/json"),n}function OB(e,t){let n=TR(e)?JSON.stringify(t):void 0;return e==="delete"&&n==="{}"?void 0:n}function AB(e,t){let n=new Headers(e?.headers),r=new Headers(t?.headers);for(let i of r.keys()){let a=r.get(i);a!=null&&n.set(i,a)}return Object.assign(Object.assign(Object.assign({},e),t),{headers:n})}function NB(e){var t;let n=Object.assign(Array.isArray(e.payload)?[]:{},e.payload),r=DB(e.path,n),i=CB(e.method,n,e.queryParams),a=OB(e.method,n),s=RB(a,(t=e.init)===null||t===void 0?void 0:t.headers),o=e.baseUrl+r+i,c=Object.assign(Object.assign({},e.init),{method:e.method.toUpperCase(),headers:s,body:a});return{url:o,init:c}}function IB(e){return ca(this,void 0,void 0,function*(){let t=e.headers.get("content-type");if(e.status===204)return;if(t&&t.indexOf("application/json")!==-1)return yield e.json();let n=yield e.text();try{return JSON.parse(n)}catch{return n}})}function yB(e,t){return ca(this,void 0,void 0,function*(){let n=yield fetch(e,t),r=yield IB(n),i={headers:n.headers,url:n.url,ok:n.ok,status:n.status,statusText:n.statusText,data:r};if(i.ok)return i;throw new jn(i)})}function vB(e,t){let n=(r,i,a)=>ca(this,void 0,void 0,function*(){if(e==null||r===e.length)return t(i,a);let s=e[r];return yield s(i,a,(o,c)=>n(r+1,o,c))});return(r,i)=>n(0,r,i)}function xB(e){return ca(this,void 0,void 0,function*(){let{url:t,init:n}=NB(e);return yield e.fetch(t,n)})}function MB(e){let t=(n,r)=>ca(this,void 0,void 0,function*(){try{return yield e(n,r)}catch(i){throw i instanceof jn?new t.Error(i):i}});return t.Error=class extends jn{constructor(n){super(n),Object.setPrototypeOf(this,new.target.prototype)}getActualType(){return{status:this.status,data:this.data}}},t}function LB(){let e="",t={},n=[],r=vB(n,yB);return{configure:i=>{e=i.baseUrl||"",t=i.init||{},n.splice(0),n.push(...i.use||[])},use:i=>n.push(i),path:i=>({method:a=>({create:s=>MB((o,c)=>xB({baseUrl:e||"",path:i,method:a,queryParams:Object.keys(s||{}),payload:o,init:AB(t,c),fetch:r}))})})}}var bR={for:()=>LB()};l();function DR(e,t){return Object.assign([...e],t)}l();var po=J(CR());var RR="0.16.0";var OR={browser:typeof window<"u"&&po.default.name||"undefined",lang:"js",lang_version:po.default.version||"unknown",package_version:RR,publisher:"e2b",sdk_runtime:typeof window>"u"?"node":"browser",system:po.default.os?.family||"unknown"};l();var Eo=process?.env?.E2B_DEBUG,fo=process?.env?.E2B_DOMAIN||"e2b.dev",pd=(process?.env?.E2B_SECURE||"true").toLowerCase()==="true",PB=Eo?"localhost:3000":`api.${fo}`,FB=`${pd&&!Eo?"https":"http"}://${PB}`,da=fo,go=49982,AR="/ws",NR="/file";var{Fetcher:kB}=md,Rn=class{constructor(t){this.opts=t;this.client.configure({baseUrl:this.apiHost,init:{headers:OR}})}client=kB.for();get secure(){return this.opts?.secure??pd}get domain(){return this.opts?.domain??fo}get debug(){return this.opts?.debug??Eo}get apiDomain(){return this.debug?"localhost:3000":`api.${this.domain}`}get apiHost(){return`${this.secure&&!this.debug?"https":"http"}://${this.apiDomain}`}get api(){return this.client}};function en(e){let t=(n,r,i)=>e(r,{...i,headers:{Authorization:`Bearer ${n}`,...i?.headers}});return t.Error=e.Error,t}function tn(e){let t=(n,r,i)=>e(r,{...i,headers:{"X-API-KEY":n,...i?.headers}});return t.Error=e.Error,t}l();var Tr="terminal",So=class{_data="";get data(){return this._data}addData(t){this._data+=t}},ho=class{constructor(t,n,r,i,a){this.terminalID=t;this.sandbox=n;this.triggerExit=r;this.output=a;this.finished=i}finished;get data(){return this.output.data}async kill(){try{await this.sandbox._call(Tr,"destroy",[this.terminalID])}finally{this.triggerExit(),await this.finished}}async wait(){return this.finished}async sendData(t){await this.sandbox._call(Tr,"data",[this.terminalID,t])}async resize({cols:t,rows:n}){await this.sandbox._call(Tr,"resize",[this.terminalID,t,n])}};l();l();l();var Ed=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},fd=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},IR=e=>globalThis.DOMException===void 0?new fd(e):new DOMException(e),yR=e=>{let t=e.reason===void 0?IR("This operation was aborted."):e.reason;return t instanceof Error?t:IR(t)};function gd(e,t){let{milliseconds:n,fallback:r,message:i,customTimers:a={setTimeout,clearTimeout}}=t,s,c=new Promise((u,d)=>{if(typeof n!="number"||Math.sign(n)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${n}\``);if(t.signal){let{signal:g}=t;g.aborted&&d(yR(g)),g.addEventListener("abort",()=>{d(yR(g))})}if(n===Number.POSITIVE_INFINITY){e.then(u,d);return}let m=new Ed;s=a.setTimeout.call(void 0,()=>{if(r){try{u(r())}catch(g){d(g)}return}typeof e.cancel=="function"&&e.cancel(),i===!1?u():i instanceof Error?d(i):(m.message=i??`Promise timed out after ${n} milliseconds`,d(m))},n),(async()=>{try{u(await e)}catch(g){d(g)}})()}).finally(()=>{c.clear()});return c.clear=()=>{a.clearTimeout.call(void 0,s),s=void 0},c}function vR(e){return e.status==="fulfilled"}function _a(e){if(!e.every(t=>t.status==="fulfilled"))return e.reduce((t,n,r)=>n.status==="rejected"?t+`
87
87
  [${r}]: ${JSON.stringify(n)}`:t,`errors:
88
88
  `)}function ma(){let e,t;return{promise:new Promise((r,i)=>{e=r,t=i}),reject:t,resolve:e}}function nn(e,t=6e4){return t===void 0||t<=0||t===Number.POSITIVE_INFINITY?e:(...n)=>gd(e(...n),{milliseconds:t})}l();var rn="filesystem";var Sd=class{constructor(t,n){this.sessConn=t;this.path=n;this.listeners=new Set}listeners;rpcSubscriptionID;async start(t){return await nn(async()=>{this.rpcSubscriptionID||(this.handleFilesystemEvents=this.handleFilesystemEvents.bind(this),this.rpcSubscriptionID=await this.sessConn._subscribe(rn,this.handleFilesystemEvents,"watchDir",this.path))},t?.timeout)()}async stop(){this.listeners.clear(),this.rpcSubscriptionID&&await this.sessConn._unsubscribe(this.rpcSubscriptionID)}addEventListener(t){return this.listeners.add(t),()=>this.listeners.delete(t)}handleFilesystemEvents(t){this.listeners.forEach(n=>{n(t)})}},xR=Sd;l();var To=class extends Error{constructor(t){super(t),this.name="AuthenticationError"}},bo=class extends Error{constructor(t){super(t),this.name="CurrentWorkingDirectoryDoesntExistError"}};l();var br="process",pa=class{constructor(t,n,r){this.line=t;this.timestamp=n;this.error=r}toString(){return this.line}},Do=class{delimiter=`
89
89
  `;messages=[];_finished=!1;_error=!1;_exitCode;get error(){return this._error}get exitCode(){if(!this._finished)throw new Error("Process has not finished yet");return this._exitCode}get stdout(){return this.messages.filter(t=>!t.error).map(t=>t.line).join(this.delimiter)}get stderr(){return this.messages.filter(t=>t.error).map(t=>t.line).join(this.delimiter)}addStdout(t){this.insertByTimestamp(t)}addStderr(t){this._error=!0,this.insertByTimestamp(t)}setExitCode(t){this._exitCode=t,this._finished=!0}insertByTimestamp(t){let n=this.messages.length-1;for(;n>=0&&this.messages[n].timestamp>t.timestamp;)n-=1;this.messages.splice(n+1,0,t)}},Co=class{constructor(t,n,r,i,a){this.processID=t;this.sandbox=n;this.triggerExit=r;this.output=a;this.finished=i}finished;async kill(){try{await this.sandbox._call(br,"kill",[this.processID])}finally{this.triggerExit(),await this.finished}}async wait(t){return await nn(()=>this.finished,t)()}async sendStdin(t,n){await this.sandbox._call(br,"stdin",[this.processID,t],n)}};l();var mA=J(LR());l();function ni(e){let t="",n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",r=n.length;for(let i=0;i<e;i++)t+=n.charAt(Math.floor(Math.random()*r));return t}l();var wR="codeSnippet";l();l();var lA=J(oA());var ko=class{ws;onOpenHandlers=[];onAnyMessageHandlers=[];onNotification=[];onRequest=[];onSuccessResponse=[];onErrorResponse=[];onErrorHandlers=[];onCloseHandlers=[];config={responseTimeout:1e4};idAwaiter={};constructor(){this.ws=void 0}connect(t,n){return this.ws=new lA.default(t,n),this.listen()}onOpen(t){this.onOpenHandlers.push(t)}onAnyMessage(t){this.onAnyMessageHandlers.push(t)}onError(t){this.onErrorHandlers.push(t)}onClose(t){this.onCloseHandlers.push(t)}listenMessages(){let t;this.ws.onmessage&&(t=this.ws.onmessage.bind(this.ws)),this.ws.onmessage=n=>{t&&t(n);for(let i of this.onAnyMessageHandlers)i(n);let r=JSON.parse(n.data.toString());if(this.isNotification(r))for(let i of this.onNotification)i(r);else if(this.isRequest(r))for(let i of this.onRequest)i(r);else if(this.isSuccessResponse(r)){for(let i of this.onSuccessResponse)i(r);this.idAwaiter[r.id](r.result)}else if(this.isErrorResponse(r)){for(let i of this.onErrorResponse)i(r);this.idAwaiter[r.id](r.error)}}}call(t,n){return new Promise((r,i)=>{let a=this.buildRequest(t,n),s;this.config.responseTimeout&&(s=setTimeout(()=>{delete this.idAwaiter[a.id],i(new Error(`Awaiting response to "${t}" with id: ${a.id} timed out.`))},this.config.responseTimeout)),this.idAwaiter[a.id]=c=>{if(clearInterval(s),delete this.idAwaiter[a.id],this.isRpcError(c)){i(new Error(`RPC Error (${c.code}): ${c.message}`));return}r(c)};let o=JSON.stringify(a);this.ws.send(o)})}notify(t,n){this.ws.send(JSON.stringify(this.buildNotification(t,n)))}customId(t){this.idFn=t}noRpc(){this.buildRequest=this.buildRequestBase,this.buildNotification=this.buildNotificationBase,this.buildRpcSuccessResponse=this.buildRpcSuccessResponseBase,this.buildRpcErrorResponse=this.buildRpcErrorResponseBase}configure(t){Object.assign(this.config,t)}changeSocket(t){this.ws=t}listen(){return new Promise((t,n)=>{this.ws.onopen=r=>{for(let i of this.onOpenHandlers)i(r);t(r)},this.listenMessages(),this.ws.onerror=r=>{for(let i of this.onErrorHandlers)i(r)},this.ws.onclose=r=>{for(let i of this.onCloseHandlers)i(r);n(new Error(`WebSocket closed with code: ${r.code} and reason: ${r.reason}`))}})}buildRequest(t,n){let r=this.buildRequestBase(t,n);return r.jsonrpc="2.0",r}buildRequestBase(t,n){let r={};return r.id=this.idFn(),r.method=t,n&&(r.params=n),r}buildNotification(t,n){let r=this.buildNotificationBase(t,n);return r.jsonrpc="2.0",r}buildNotificationBase(t,n){let r={};return r.method=t,n&&(r.params=n),r}buildRpcSuccessResponse(t,n){let r=this.buildRpcSuccessResponseBase(t,n);return r.jsonrpc="2.0",r}buildRpcSuccessResponseBase(t,n){let r={};return r.id=t,r.result=n,r}buildRpcErrorResponse(t,n){let r=this.buildRpcErrorResponseBase(t,n);return r.jsonrpc="2.0",r}buildRpcErrorResponseBase(t,n){let r={};return r.id=t,r.error=n,r}idFn(){return ni(12)}isNotification(t){return!t.id}isRequest(t){return t.method}isSuccessResponse(t){return t.hasOwnProperty("result")}isErrorResponse(t){return t.hasOwnProperty("error")}isRpcError(t){return typeof t?.code<"u"}};l();function sU(e){return new Promise(t=>setTimeout(t,e))}var Qd=sU;l();function Bo(e){if(e=e||process?.env?.E2B_API_KEY,!e)throw new To("API key is required, please visit https://e2b.dev/docs to get your API key. You can either set the environment variable `E2B_API_KEY` or you can pass it directly to the sandbox like Sandbox.create({apiKey: 'e2b_...'})");return e}var Uo=class{constructor(t){this.opts=t;this.sandbox=t.__sandbox,this.apiKey=Bo(t.apiKey),this.client=new Rn({domain:t.domain}),this.cwd=t.cwd,this.cwd&&this.cwd.startsWith("~")&&(this.cwd=this.cwd.replace("~","/home/user"));let n={PYTHONUNBUFFERED:"1"};this.envVars={...n,...t.envVars||{}},this.logger=t.logger??{info:console.info,warn:console.warn,error:console.error},this.logger.debug?.(`Sandbox "${this.templateID}" initialized`)}cwd;envVars;logger;sandbox;isOpen=!1;apiKey;rpc=new ko;subscribers=[];client;get id(){return`${this.sandbox?.sandboxID}-${this.sandbox?.clientID}`}get templateID(){return this.opts.template||this.opts.id||"base"}get refreshSandbox(){return tn(this.client.api.path("/sandboxes/{sandboxID}/refreshes").method("post").create())}get createSandbox(){return tn(this.client.api.path("/sandboxes").method("post").create())}static async list(t,n){t=Bo(t);let r=new Rn({domain:n}),i=tn(r.api.path("/sandboxes").method("get").create());try{return(await i(t,{})).data.map(s=>({sandboxID:`${s.sandboxID}-${s.clientID}`,templateID:s.templateID,cpuCount:s.cpuCount,memoryMB:s.memoryMB,...s.alias&&{alias:s.alias},...s.metadata&&{metadata:s.metadata},startedAt:new Date(s.startedAt)}))}catch(a){if(a instanceof i.Error){let s=a.getActualType();if(s.status===401)throw new Error(`Error listing sandboxes - (${s.status}) unauthenticated: ${s.data.message}`);if(s.status===500)throw new Error(`Error listing sandboxes - (${s.status}) server error: ${s.data.message}`)}throw a}}static async kill(t,n,r){n=Bo(n);let i=t.split("-")[0],a=new Rn({domain:r}),s=tn(a.api.path("/sandboxes/{sandboxID}").method("delete").create());try{await s(n,{sandboxID:i})}catch(o){if(o instanceof s.Error){let c=o.getActualType();if(c.status===401)throw new Error(`Error killing sandbox (${t}) - (${c.status}) unauthenticated: ${c.data.message}`);if(c.status===500)throw new Error(`Error killing sandbox (${t}) - (${c.status}) server error: ${c.data.message}`)}throw o}}async keepAlive(t){if(t=Math.round(t/1e3),t<0||t>3600)throw new Error("Duration must be between 0 and 3600 seconds");if(!this.sandbox)throw new Error("Cannot keep alive - sandbox is not initialized");await this.refreshSandbox(this.apiKey,{sandboxID:this.sandbox?.sandboxID,duration:t})}getHostname(t){if(this.opts.__debug_hostname)return t&&this.opts.__debug_devEnv==="remote"?`${t}-${this.opts.__debug_hostname}`:t?`${this.opts.__debug_hostname}:${t}`:this.opts.__debug_hostname;if(!this.sandbox)throw new Error("Cannot get sandbox's hostname - sandbox is not initialized");let n=`${this.id}.${this.client.domain}`;return t?`${t}-${n}`:n}getProtocol(t="http",n=this.client.secure){return n?`${t}s`:t}async close(){this.isOpen&&(this.logger.debug?.(`Closing sandbox "${this.id}"`),this.isOpen=!1,this.rpc.ws?.terminate?.(),this.rpc.ws?.close?.(),this.subscribers=[],this.logger.debug?.("Disconnected from the sandbox"))}async _call(t,n,r,i){return this.logger.debug?.(`Calling "${t}_${n}" with params:`,r),await nn(async(s,o)=>await this.rpc.call(s,o),i?.timeout)(`${t}_${n}`,r)}async _handleSubscriptions(...t){let n=await Promise.allSettled(t);if(n.every(r=>r.status==="fulfilled"))return n.map(r=>r.status==="fulfilled"?r.value:void 0);throw await Promise.all(n.filter(vR).map(r=>r.value?this._unsubscribe(r.value):void 0)),new Error(_a(n))}async _unsubscribe(t){let n=this.subscribers.find(r=>r.subID===t);n&&(await this._call(n.service,"unsubscribe",[n.subID]),this.subscribers=this.subscribers.filter(r=>r!==n),this.logger.debug?.(`Unsubscribed '${t}' from '${n.service}'`))}async _subscribe(t,n,r,...i){let a=await this._call(t,"subscribe",[r,...i]);if(typeof a!="string")throw new Error(`Cannot subscribe to ${t}_${r}${i.length>0?" with params ["+i.join(", ")+"]":""}. Expected response should have been a subscription ID, instead we got ${JSON.stringify(a)}`);return this.subscribers.push({handler:n,service:t,subID:a}),this.logger.debug?.(`Subscribed to "${t}_${r}"${i.length>0?" with params ["+i.join(", ")+"] and":""} with id "${a}"`),a}async _open(t){let n=async()=>{if(this.isOpen)throw new Error("Sandbox connect was already called");if(this.isOpen=!0,this.logger.debug?.("Opening sandbox..."),!this.sandbox&&!this.opts.__debug_hostname)try{let r=await this.createSandbox(this.apiKey,{templateID:this.templateID,metadata:this.opts.metadata});this.sandbox=r.data,this.logger.debug?.(`Acquired sandbox "${this.id}"`)}catch(r){if(r instanceof this.createSandbox.Error){let i=r.getActualType();if(i.status===400)throw new Error(`Error creating sandbox - (${i.status}) bad request: ${i.data.message}`);if(i.status===401)throw new Error(`Error creating sandbox - (${i.status}) unauthenticated: ${i.data.message}`);if(i.status===500)throw new Error(`Error creating sandbox - (${i.status}) server error: ${i.data.message}`)}throw r}return this.sandbox&&!this.opts.__debug_hostname&&this.refresh(this.sandbox.sandboxID),await this.connectRpc(),this};try{return await nn(n,t?.timeout)()}catch(r){throw await this.close(),r}}async connectRpc(){let t=this.getHostname(this.opts.__debug_port||go),r=`${this.getProtocol("ws",this.opts.__debug_devEnv!=="local")}://${t}${AR}`,i=!1,a,s,o=new Promise((c,u)=>{a=()=>{i||(i=!0,c())},s=()=>{i||(i=!0,u())}});this.rpc.onOpen(()=>{this.logger.debug?.(`Connected to sandbox "${this.id}"`),a?.()}),this.rpc.onError(async c=>{if(this.logger.debug?.(`Error in WebSocket of sandbox "${this.id}": ${c.message??c.code??c.toString()}. Trying to reconnect...`),this.isOpen){await Qd(150),this.logger.debug?.(`Reconnecting to sandbox "${this.id}"`);try{this.subscribers=[],await this.rpc.connect(r),this.logger.debug?.(`Reconnected to sandbox "${this.id}"`)}catch(u){this.logger.debug?.(`Failed reconnecting to sandbox "${this.id}": ${u.message??u.code??u.toString()}`)}}else s?.()}),this.rpc.onClose(async()=>{this.logger.debug?.(`WebSocket connection to sandbox "${this.id}" closed`)}),this.rpc.onNotification.push(this.handleNotification.bind(this)),(async()=>{try{this.logger.debug?.(`Connecting to sandbox "${this.id}"`),await this.rpc.connect(r)}catch(c){this.logger.debug?.(`Error connecting to sandbox "${this.id}": ${c.message??c.code??c.toString()}`)}})(),await o}handleNotification(t){this.logger.debug?.("Handling notification:",t),this.subscribers.filter(n=>n.subID===t.params?.subscription).forEach(n=>n.handler(t.params?.result))}async refresh(t){this.logger.debug?.(`Started refreshing sandbox "${t}"`);try{for(;;){if(!this.isOpen){this.logger.debug?.(`Cannot refresh sandbox ${this.id} - it was closed`);return}await Qd(5e3);try{await this.refreshSandbox(this.apiKey,{sandboxID:t,duration:0}),this.logger.debug?.(`Refreshed sandbox "${t}"`)}catch(n){if(n instanceof this.refreshSandbox.Error){let r=n.getActualType();if(r.status===404){this.logger.warn?.(`Error refreshing sandbox - (${r.status}): ${r.data.message}`);return}this.logger.warn?.(`Refreshing sandbox "${t}" failed - (${r.status})`)}}}}finally{this.logger.debug?.(`Stopped refreshing sandbox "${t}"`),await this.close()}}};l();var Oa=J(dA()),_A=(e,t,n)=>{let r;return e.startsWith("./")?(r=Oa.default.posix.join(t||"/home/user",e),t||n.warn?.(`Path starts with './' and cwd isn't set. The path '${e}' will evaluate to '${r}', which may not be what you want.`),r):e.startsWith("../")?(r=Oa.default.posix.join(t||"/home/user",e),t||n.warn?.(`Path starts with '../' and cwd isn't set. The path '${e}' will evaluate to '${r}', which may not be what you want.`),r):e.startsWith("~/")?(r=Oa.default.posix.join(t||"/home/user",e.substring(2)),t||n.warn?.(`Path starts with '~/' and cwd isn't set. The path '${e}' will evaluate to '${r}', which may not be what you want.`),r):!e.startsWith("/")&&t?Oa.default.posix.join(t,e):e};var vn=class extends Uo{terminal;filesystem;process;onScanPorts;constructor(t){t=t||{},super(t),this.onScanPorts=t.onScanPorts,this.filesystem={list:async(r,i)=>await this._call(rn,"list",[n(r)],i),read:async(r,i)=>await this._call(rn,"read",[n(r)],i),remove:async(r,i)=>{await this._call(rn,"remove",[n(r)],i)},write:async(r,i,a)=>{await this._call(rn,"write",[n(r),i],a)},writeBytes:async(r,i)=>{let a=Buffer.from(i).toString("base64");await this._call(rn,"writeBase64",[n(r),a])},readBytes:async r=>{let i=await this._call(rn,"readBase64",[n(r)]);return Buffer.from(i,"base64")},makeDir:async(r,i)=>{await this._call(rn,"makeDir",[n(r)],i)},watchDir:r=>{this.logger.debug?.(`Watching directory "${r}"`);let i=(0,mA.default)(n(r));return new xR(this,i)}},this.terminal={start:async({onData:r,size:i,onExit:a,envVars:s,cmd:o,cwd:c="",terminalID:u=ni(12),timeout:d=void 0})=>await nn(async({onData:g,size:D,onExit:S,envVars:A,cmd:x,cwd:P="",rootDir:B,terminalID:U=ni(12)})=>{this.logger.debug?.(`Starting terminal "${U}"`),!P&&B&&(this.logger.warn?.("The rootDir parameter is deprecated, use cwd instead."),P=B),!P&&this.cwd&&(P=this.cwd),A=A||{},A={...this.envVars,...A};let{promise:q,resolve:te}=ma(),Z=new So;function re(ae){Z.addData(ae),g?.(ae)}let[M,w]=await this._handleSubscriptions(this._subscribe(Tr,re,"onData",U),this._subscribe(Tr,te,"onExit",U)),{promise:G,resolve:z}=ma();q.then(async()=>{Promise.allSettled([this._unsubscribe(w),this._unsubscribe(M)]).then(ae=>{let _e=_a(ae);_e&&this.logger.debug?.(_e)}),this.logger.debug?.(`Terminal "${U}" exited`),S?.(),z(Z)});try{await this._call(Tr,"start",[U,D.cols,D.rows,...x!==void 0?[A,x,P]:[]])}catch(ae){throw te(),await G,ae}return new ho(U,this,te,G,Z)},d)({onData:r,size:i,onExit:a,envVars:s,cmd:o,cwd:c,terminalID:u})},this.process={start:async r=>{let i=typeof r=="string"?{cmd:r}:r,a=async({cmd:o,onStdout:c,onStderr:u,onExit:d,envVars:m={},cwd:g="",rootDir:D,processID:S=ni(12)})=>{if(!g&&D&&(this.logger.warn?.("The rootDir parameter is deprecated, use cwd instead."),g=D),!g&&this.cwd&&(g=this.cwd),!o)throw new Error("cmd is required");m=m||{},m={...this.envVars,...m},this.logger.debug?.(`Starting process "${S}", cmd: "${o}"`);let{promise:A,resolve:x}=ma(),P=new Do,B=G=>{P.setExitCode(G),x()},U=G=>{let z=new pa(G.line,G.timestamp,!1);P.addStdout(z),c?c(z):this.opts.onStdout&&this.opts.onStdout(z)},q=G=>{let z=new pa(G.line,G.timestamp,!0);P.addStderr(z),u?u(z):this.opts.onStderr&&this.opts.onStderr(z)},[te,Z,re]=await this._handleSubscriptions(this._subscribe(br,B,"onExit",S),this._subscribe(br,U,"onStdout",S),this._subscribe(br,q,"onStderr",S)),{promise:M,resolve:w}=ma();A.then(async()=>{Promise.allSettled([this._unsubscribe(te),Z?this._unsubscribe(Z):void 0,re?this._unsubscribe(re):void 0]).then(G=>{let z=_a(G);z&&this.logger.debug?.(z)}),this.logger.debug?.(`Process "${S}" exited`),d?d(P.exitCode||0):this.opts.onExit&&this.opts.onExit(),w(P)});try{await this._call(br,"start",[S,o,m,g])}catch(G){throw x(),await M,/error starting process '\w+': fork\/exec \/bin\/bash: no such file or directory/.test(G?.message)?new bo(`Failed to start the process. You are trying set 'cwd' to a directory that does not exist.