phala 1.1.18 → 1.1.19

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/api/index.js CHANGED
@@ -1,46 +1,46 @@
1
1
  import { createRequire } from 'module';const require = createRequire(import.meta.url);
2
- var is=Object.create;var ln=Object.defineProperty;var cs=Object.getOwnPropertyDescriptor;var ls=Object.getOwnPropertyNames;var us=Object.getPrototypeOf,ps=Object.prototype.hasOwnProperty;var Oe=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var ge=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ds=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ls(t))!ps.call(e,s)&&s!==n&&ln(e,s,{get:()=>t[s],enumerable:!(r=cs(t,s))||r.enumerable});return e};var ct=(e,t,n)=>(n=e!=null?is(us(e)):{},ds(t||!e||!e.__esModule?ln(n,"default",{value:e,enumerable:!0}):n,e));var pn=ge((qu,un)=>{var Me=1e3,Ke=Me*60,Ge=Ke*60,De=Ge*24,ms=De*7,fs=De*365.25;un.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return gs(e);if(n==="number"&&isFinite(e))return t.long?bs(e):hs(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function gs(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*fs;case"weeks":case"week":case"w":return n*ms;case"days":case"day":case"d":return n*De;case"hours":case"hour":case"hrs":case"hr":case"h":return n*Ge;case"minutes":case"minute":case"mins":case"min":case"m":return n*Ke;case"seconds":case"second":case"secs":case"sec":case"s":return n*Me;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function hs(e){var t=Math.abs(e);return t>=De?Math.round(e/De)+"d":t>=Ge?Math.round(e/Ge)+"h":t>=Ke?Math.round(e/Ke)+"m":t>=Me?Math.round(e/Me)+"s":e+"ms"}function bs(e){var t=Math.abs(e);return t>=De?ht(e,t,De,"day"):t>=Ge?ht(e,t,Ge,"hour"):t>=Ke?ht(e,t,Ke,"minute"):t>=Me?ht(e,t,Me,"second"):e+" ms"}function ht(e,t,n,r){var s=t>=n*1.5;return Math.round(e/n)+" "+r+(s?"s":"")}});var Ot=ge((Fu,dn)=>{function vs(e){n.debug=n,n.default=n,n.coerce=l,n.disable=a,n.enable=s,n.enabled=i,n.humanize=pn(),n.destroy=m,Object.keys(e).forEach(u=>{n[u]=e[u]}),n.names=[],n.skips=[],n.formatters={};function t(u){let f=0;for(let g=0;g<u.length;g++)f=(f<<5)-f+u.charCodeAt(g),f|=0;return n.colors[Math.abs(f)%n.colors.length]}n.selectColor=t;function n(u){let f,g=null,y,S;function x(...N){if(!x.enabled)return;let Y=x,fe=Number(new Date),Pe=fe-(f||fe);Y.diff=Pe,Y.prev=f,Y.curr=fe,f=fe,N[0]=n.coerce(N[0]),typeof N[0]!="string"&&N.unshift("%O");let Se=0;N[0]=N[0].replace(/%([a-zA-Z%])/g,(Ve,gt)=>{if(Ve==="%%")return"%";Se++;let cn=n.formatters[gt];if(typeof cn=="function"){let as=N[Se];Ve=cn.call(Y,as),N.splice(Se,1),Se--}return Ve}),n.formatArgs.call(Y,N),(Y.log||n.log).apply(Y,N)}return x.namespace=u,x.useColors=n.useColors(),x.color=n.selectColor(u),x.extend=r,x.destroy=n.destroy,Object.defineProperty(x,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(y!==n.namespaces&&(y=n.namespaces,S=n.enabled(u)),S),set:N=>{g=N}}),typeof n.init=="function"&&n.init(x),x}function r(u,f){let g=n(this.namespace+(typeof f>"u"?":":f)+u);return g.log=this.log,g}function s(u){n.save(u),n.namespaces=u,n.names=[],n.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let g of f)g[0]==="-"?n.skips.push(g.slice(1)):n.names.push(g)}function o(u,f){let g=0,y=0,S=-1,x=0;for(;g<u.length;)if(y<f.length&&(f[y]===u[g]||f[y]==="*"))f[y]==="*"?(S=y,x=g,y++):(g++,y++);else if(S!==-1)y=S+1,x++,g=x;else return!1;for(;y<f.length&&f[y]==="*";)y++;return y===f.length}function a(){let u=[...n.names,...n.skips.map(f=>"-"+f)].join(",");return n.enable(""),u}function i(u){for(let f of n.skips)if(o(u,f))return!1;for(let f of n.names)if(o(u,f))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function m(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}dn.exports=vs});var mn=ge((ie,bt)=>{ie.formatArgs=_s;ie.save=ws;ie.load=Cs;ie.useColors=ys;ie.storage=ks();ie.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();ie.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ys(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function _s(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+bt.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(n++,s==="%c"&&(r=n))}),e.splice(r,0,t)}ie.log=console.debug||console.log||(()=>{});function ws(e){try{e?ie.storage.setItem("debug",e):ie.storage.removeItem("debug")}catch{}}function Cs(){let e;try{e=ie.storage.getItem("debug")||ie.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function ks(){try{return localStorage}catch{}}bt.exports=Ot()(ie);var{formatters:Ss}=bt.exports;Ss.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var gn=ge((M,yt)=>{var Es=Oe("tty"),vt=Oe("util");M.init=js;M.log=Rs;M.formatArgs=Is;M.save=Ts;M.load=Ps;M.useColors=As;M.destroy=vt.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");M.colors=[6,2,3,4,5,1];try{let e=Oe("supports-color");e&&(e.stderr||e).level>=2&&(M.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}M.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(s,o)=>o.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function As(){return"colors"in M.inspectOpts?!!M.inspectOpts.colors:Es.isatty(process.stderr.fd)}function Is(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),o=` ${s};1m${t} \x1B[0m`;e[0]=o+e[0].split(`
2
+ var ps=Object.create;var dn=Object.defineProperty;var ds=Object.getOwnPropertyDescriptor;var ms=Object.getOwnPropertyNames;var fs=Object.getPrototypeOf,gs=Object.prototype.hasOwnProperty;var $e=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var he=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var hs=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ms(t))!gs.call(e,s)&&s!==n&&dn(e,s,{get:()=>t[s],enumerable:!(r=ds(t,s))||r.enumerable});return e};var ut=(e,t,n)=>(n=e!=null?ps(fs(e)):{},hs(t||!e||!e.__esModule?dn(n,"default",{value:e,enumerable:!0}):n,e));var fn=he((Gu,mn)=>{var Ke=1e3,Ge=Ke*60,We=Ge*60,He=We*24,bs=He*7,vs=He*365.25;mn.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return ys(e);if(n==="number"&&isFinite(e))return t.long?ws(e):_s(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function ys(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var n=parseFloat(t[1]),r=(t[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return n*vs;case"weeks":case"week":case"w":return n*bs;case"days":case"day":case"d":return n*He;case"hours":case"hour":case"hrs":case"hr":case"h":return n*We;case"minutes":case"minute":case"mins":case"min":case"m":return n*Ge;case"seconds":case"second":case"secs":case"sec":case"s":return n*Ke;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function _s(e){var t=Math.abs(e);return t>=He?Math.round(e/He)+"d":t>=We?Math.round(e/We)+"h":t>=Ge?Math.round(e/Ge)+"m":t>=Ke?Math.round(e/Ke)+"s":e+"ms"}function ws(e){var t=Math.abs(e);return t>=He?vt(e,t,He,"day"):t>=We?vt(e,t,We,"hour"):t>=Ge?vt(e,t,Ge,"minute"):t>=Ke?vt(e,t,Ke,"second"):e+" ms"}function vt(e,t,n,r){var s=t>=n*1.5;return Math.round(e/n)+" "+r+(s?"s":"")}});var Lt=he((Wu,gn)=>{function Cs(e){n.debug=n,n.default=n,n.coerce=l,n.disable=a,n.enable=s,n.enabled=i,n.humanize=fn(),n.destroy=m,Object.keys(e).forEach(u=>{n[u]=e[u]}),n.names=[],n.skips=[],n.formatters={};function t(u){let f=0;for(let g=0;g<u.length;g++)f=(f<<5)-f+u.charCodeAt(g),f|=0;return n.colors[Math.abs(f)%n.colors.length]}n.selectColor=t;function n(u){let f,g=null,y,E;function T(...q){if(!T.enabled)return;let te=T,ge=Number(new Date),je=ge-(f||ge);te.diff=je,te.prev=f,te.curr=ge,f=ge,q[0]=n.coerce(q[0]),typeof q[0]!="string"&&q.unshift("%O");let Ee=0;q[0]=q[0].replace(/%([a-zA-Z%])/g,(Me,bt)=>{if(Me==="%%")return"%";Ee++;let pn=n.formatters[bt];if(typeof pn=="function"){let us=q[Ee];Me=pn.call(te,us),q.splice(Ee,1),Ee--}return Me}),n.formatArgs.call(te,q),(te.log||n.log).apply(te,q)}return T.namespace=u,T.useColors=n.useColors(),T.color=n.selectColor(u),T.extend=r,T.destroy=n.destroy,Object.defineProperty(T,"enabled",{enumerable:!0,configurable:!1,get:()=>g!==null?g:(y!==n.namespaces&&(y=n.namespaces,E=n.enabled(u)),E),set:q=>{g=q}}),typeof n.init=="function"&&n.init(T),T}function r(u,f){let g=n(this.namespace+(typeof f>"u"?":":f)+u);return g.log=this.log,g}function s(u){n.save(u),n.namespaces=u,n.names=[],n.skips=[];let f=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let g of f)g[0]==="-"?n.skips.push(g.slice(1)):n.names.push(g)}function o(u,f){let g=0,y=0,E=-1,T=0;for(;g<u.length;)if(y<f.length&&(f[y]===u[g]||f[y]==="*"))f[y]==="*"?(E=y,T=g,y++):(g++,y++);else if(E!==-1)y=E+1,T++,g=T;else return!1;for(;y<f.length&&f[y]==="*";)y++;return y===f.length}function a(){let u=[...n.names,...n.skips.map(f=>"-"+f)].join(",");return n.enable(""),u}function i(u){for(let f of n.skips)if(o(u,f))return!1;for(let f of n.names)if(o(u,f))return!0;return!1}function l(u){return u instanceof Error?u.stack||u.message:u}function m(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}gn.exports=Cs});var hn=he((le,yt)=>{le.formatArgs=Ss;le.save=Es;le.load=As;le.useColors=ks;le.storage=Is();le.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();le.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function ks(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function Ss(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+yt.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let n=0,r=0;e[0].replace(/%[a-zA-Z%]/g,s=>{s!=="%%"&&(n++,s==="%c"&&(r=n))}),e.splice(r,0,t)}le.log=console.debug||console.log||(()=>{});function Es(e){try{e?le.storage.setItem("debug",e):le.storage.removeItem("debug")}catch{}}function As(){let e;try{e=le.storage.getItem("debug")||le.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Is(){try{return localStorage}catch{}}yt.exports=Lt()(le);var{formatters:Rs}=yt.exports;Rs.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var vn=he((K,wt)=>{var xs=$e("tty"),_t=$e("util");K.init=Ns;K.log=Os;K.formatArgs=Ps;K.save=$s;K.load=Ls;K.useColors=Ts;K.destroy=_t.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");K.colors=[6,2,3,4,5,1];try{let e=$e("supports-color");e&&(e.stderr||e).level>=2&&(K.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch{}K.inspectOpts=Object.keys(process.env).filter(e=>/^debug_/i.test(e)).reduce((e,t)=>{let n=t.substring(6).toLowerCase().replace(/_([a-z])/g,(s,o)=>o.toUpperCase()),r=process.env[t];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),e[n]=r,e},{});function Ts(){return"colors"in K.inspectOpts?!!K.inspectOpts.colors:xs.isatty(process.stderr.fd)}function Ps(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),o=` ${s};1m${t} \x1B[0m`;e[0]=o+e[0].split(`
3
3
  `).join(`
4
- `+o),e.push(s+"m+"+yt.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=xs()+t+" "+e[0]}function xs(){return M.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Rs(...e){return process.stderr.write(vt.formatWithOptions(M.inspectOpts,...e)+`
5
- `)}function Ts(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function Ps(){return process.env.DEBUG}function js(e){e.inspectOpts={};let t=Object.keys(M.inspectOpts);for(let n=0;n<t.length;n++)e.inspectOpts[t[n]]=M.inspectOpts[t[n]]}yt.exports=Ot()(M);var{formatters:fn}=yt.exports;fn.o=function(e){return this.inspectOpts.colors=this.useColors,vt.inspect(e,this.inspectOpts).split(`
6
- `).map(t=>t.trim()).join(" ")};fn.O=function(e){return this.inspectOpts.colors=this.useColors,vt.inspect(e,this.inspectOpts)}});var hn=ge((Uu,$t)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?$t.exports=mn():$t.exports=gn()});var qt=ge(lt=>{"use strict";var Os=lt&&lt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(lt,"__esModule",{value:!0});lt.encryptEnvVars=Ns;var Lt=Oe("@noble/curves/ed25519"),Nt=Os(Oe("crypto"));function $s(e){var t,n;return e=e.startsWith("0x")?e.slice(2):e,new Uint8Array((n=(t=e.match(/.{1,2}/g))===null||t===void 0?void 0:t.map(r=>parseInt(r,16)))!==null&&n!==void 0?n:[])}function Ls(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function Ns(e,t){let n=JSON.stringify({env:e}),r=Lt.x25519.utils.randomPrivateKey(),s=Lt.x25519.getPublicKey(r),o=$s(t),a=Lt.x25519.getSharedSecret(r,o),i=await Nt.default.subtle.importKey("raw",a,{name:"AES-GCM",length:256},!0,["encrypt"]),l=Nt.default.getRandomValues(new Uint8Array(12)),m=await Nt.default.subtle.encrypt({name:"AES-GCM",iv:l},i,new TextEncoder().encode(n)),u=new Uint8Array(s.length+l.length+m.byteLength);return u.set(s),u.set(l,s.length),u.set(new Uint8Array(m),s.length+l.length),Ls(u)}});var vn=ge(ut=>{"use strict";var qs=ut&&ut.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ut,"__esModule",{value:!0});ut.getComposeHash=Ds;var Fs=qs(Oe("crypto"));function Ft(e){return e==null?e:Array.isArray(e)?e.map(Ft):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,n)=>{let r=e[n];return t[n]=Ft(r),t},{}):e}function Us(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function zs(e){let t=Ft(e);return JSON.stringify(t,(n,r)=>typeof r=="number"&&(isNaN(r)||!isFinite(r))?null:r)}function Ds(e,t=!1){t&&(e=Us(e));let n=zs(e);return Fs.default.createHash("sha256").update(n,"utf8").digest("hex")}});var zn=ge(w=>{"use strict";Object.defineProperty(w,"__esModule",{value:!0});w.toBig=w.shrSL=w.shrSH=w.rotrSL=w.rotrSH=w.rotrBL=w.rotrBH=w.rotr32L=w.rotr32H=w.rotlSL=w.rotlSH=w.rotlBL=w.rotlBH=w.add5L=w.add5H=w.add4L=w.add4H=w.add3L=w.add3H=void 0;w.add=On;w.fromBig=zt;w.split=yn;var _t=BigInt(2**32-1),Ut=BigInt(32);function zt(e,t=!1){return t?{h:Number(e&_t),l:Number(e>>Ut&_t)}:{h:Number(e>>Ut&_t)|0,l:Number(e&_t)|0}}function yn(e,t=!1){let n=e.length,r=new Uint32Array(n),s=new Uint32Array(n);for(let o=0;o<n;o++){let{h:a,l:i}=zt(e[o],t);[r[o],s[o]]=[a,i]}return[r,s]}var _n=(e,t)=>BigInt(e>>>0)<<Ut|BigInt(t>>>0);w.toBig=_n;var wn=(e,t,n)=>e>>>n;w.shrSH=wn;var Cn=(e,t,n)=>e<<32-n|t>>>n;w.shrSL=Cn;var kn=(e,t,n)=>e>>>n|t<<32-n;w.rotrSH=kn;var Sn=(e,t,n)=>e<<32-n|t>>>n;w.rotrSL=Sn;var En=(e,t,n)=>e<<64-n|t>>>n-32;w.rotrBH=En;var An=(e,t,n)=>e>>>n-32|t<<64-n;w.rotrBL=An;var In=(e,t)=>t;w.rotr32H=In;var xn=(e,t)=>e;w.rotr32L=xn;var Rn=(e,t,n)=>e<<n|t>>>32-n;w.rotlSH=Rn;var Tn=(e,t,n)=>t<<n|e>>>32-n;w.rotlSL=Tn;var Pn=(e,t,n)=>t<<n-32|e>>>64-n;w.rotlBH=Pn;var jn=(e,t,n)=>e<<n-32|t>>>64-n;w.rotlBL=jn;function On(e,t,n,r){let s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}var $n=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0);w.add3L=$n;var Ln=(e,t,n,r)=>t+n+r+(e/2**32|0)|0;w.add3H=Ln;var Nn=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0);w.add4L=Nn;var qn=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0;w.add4H=qn;var Fn=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0);w.add5L=Fn;var Un=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0;w.add5H=Un;var Hs={fromBig:zt,split:yn,toBig:_n,shrSH:wn,shrSL:Cn,rotrSH:kn,rotrSL:Sn,rotrBH:En,rotrBL:An,rotr32H:In,rotr32L:xn,rotlSH:Rn,rotlSL:Tn,rotlBH:Pn,rotlBL:jn,add:On,add3L:$n,add3H:Ln,add4L:Nn,add4H:qn,add5H:Un,add5L:Fn};w.default=Hs});var Dn=ge(wt=>{"use strict";Object.defineProperty(wt,"__esModule",{value:!0});wt.crypto=void 0;var $e=Oe("crypto");wt.crypto=$e&&typeof $e=="object"&&"webcrypto"in $e?$e.webcrypto:$e&&typeof $e=="object"&&"randomBytes"in $e?$e:void 0});var Xn=ge(v=>{"use strict";Object.defineProperty(v,"__esModule",{value:!0});v.wrapXOFConstructorWithOpts=v.wrapConstructorWithOpts=v.wrapConstructor=v.Hash=v.nextTick=v.swap32IfBE=v.byteSwapIfBE=v.swap8IfBE=v.isLE=void 0;v.isBytes=Bn;v.anumber=Dt;v.abytes=Xe;v.ahash=Bs;v.aexists=Vs;v.aoutput=Ms;v.u8=Ks;v.u32=Gs;v.clean=Ws;v.createView=Xs;v.rotr=Js;v.rotl=Zs;v.byteSwap=Bt;v.byteSwap32=Vn;v.bytesToHex=Ys;v.hexToBytes=eo;v.asyncLoop=no;v.utf8ToBytes=Vt;v.bytesToUtf8=ro;v.toBytes=Ct;v.kdfInputToBytes=so;v.concatBytes=oo;v.checkOpts=ao;v.createHasher=Kn;v.createOptHasher=Gn;v.createXOFer=Wn;v.randomBytes=io;var We=Dn();function Bn(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Dt(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Xe(e,...t){if(!Bn(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Bs(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");Dt(e.outputLen),Dt(e.blockLen)}function Vs(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Ms(e,t){Xe(e);let n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ks(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Gs(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Ws(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Xs(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Js(e,t){return e<<32-t|e>>>t}function Zs(e,t){return e<<t|e>>>32-t>>>0}v.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Bt(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}v.swap8IfBE=v.isLE?e=>e:e=>Bt(e);v.byteSwapIfBE=v.swap8IfBE;function Vn(e){for(let t=0;t<e.length;t++)e[t]=Bt(e[t]);return e}v.swap32IfBE=v.isLE?e=>e:Vn;var Mn=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Qs=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ys(e){if(Xe(e),Mn)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Qs[e[n]];return t}var Re={_0:48,_9:57,A:65,F:70,a:97,f:102};function Hn(e){if(e>=Re._0&&e<=Re._9)return e-Re._0;if(e>=Re.A&&e<=Re.F)return e-(Re.A-10);if(e>=Re.a&&e<=Re.f)return e-(Re.a-10)}function eo(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Mn)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(n);for(let s=0,o=0;s<n;s++,o+=2){let a=Hn(e.charCodeAt(o)),i=Hn(e.charCodeAt(o+1));if(a===void 0||i===void 0){let l=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+l+'" at index '+o)}r[s]=a*16+i}return r}var to=async()=>{};v.nextTick=to;async function no(e,t,n){let r=Date.now();for(let s=0;s<e;s++){n(s);let o=Date.now()-r;o>=0&&o<t||(await(0,v.nextTick)(),r+=o)}}function Vt(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function ro(e){return new TextDecoder().decode(e)}function Ct(e){return typeof e=="string"&&(e=Vt(e)),Xe(e),e}function so(e){return typeof e=="string"&&(e=Vt(e)),Xe(e),e}function oo(...e){let t=0;for(let r=0;r<e.length;r++){let s=e[r];Xe(s),t+=s.length}let n=new Uint8Array(t);for(let r=0,s=0;r<e.length;r++){let o=e[r];n.set(o,s),s+=o.length}return n}function ao(e,t){if(t!==void 0&&{}.toString.call(t)!=="[object Object]")throw new Error("options should be object or undefined");return Object.assign(e,t)}var Ht=class{};v.Hash=Ht;function Kn(e){let t=r=>e().update(Ct(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Gn(e){let t=(r,s)=>e(s).update(Ct(r)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=r=>e(r),t}function Wn(e){let t=(r,s)=>e(s).update(Ct(r)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=r=>e(r),t}v.wrapConstructor=Kn;v.wrapConstructorWithOpts=Gn;v.wrapXOFConstructorWithOpts=Wn;function io(e=32){if(We.crypto&&typeof We.crypto.getRandomValues=="function")return We.crypto.getRandomValues(new Uint8Array(e));if(We.crypto&&typeof We.crypto.randomBytes=="function")return Uint8Array.from(We.crypto.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}});var sr=ge($=>{"use strict";Object.defineProperty($,"__esModule",{value:!0});$.shake256=$.shake128=$.keccak_512=$.keccak_384=$.keccak_256=$.keccak_224=$.sha3_512=$.sha3_384=$.sha3_256=$.sha3_224=$.Keccak=void 0;$.keccakP=nr;var dt=zn(),Z=Xn(),co=BigInt(0),pt=BigInt(1),lo=BigInt(2),uo=BigInt(7),po=BigInt(256),mo=BigInt(113),Qn=[],Yn=[],er=[];for(let e=0,t=pt,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Qn.push(2*(5*r+n)),Yn.push((e+1)*(e+2)/2%64);let s=co;for(let o=0;o<7;o++)t=(t<<pt^(t>>uo)*mo)%po,t&lo&&(s^=pt<<(pt<<BigInt(o))-pt);er.push(s)}var tr=(0,dt.split)(er,!0),fo=tr[0],go=tr[1],Jn=(e,t,n)=>n>32?(0,dt.rotlBH)(e,t,n):(0,dt.rotlSH)(e,t,n),Zn=(e,t,n)=>n>32?(0,dt.rotlBL)(e,t,n):(0,dt.rotlSL)(e,t,n);function nr(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let a=0;a<10;a++)n[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let i=(a+8)%10,l=(a+2)%10,m=n[l],u=n[l+1],f=Jn(m,u,1)^n[i],g=Zn(m,u,1)^n[i+1];for(let y=0;y<50;y+=10)e[a+y]^=f,e[a+y+1]^=g}let s=e[2],o=e[3];for(let a=0;a<24;a++){let i=Yn[a],l=Jn(s,o,i),m=Zn(s,o,i),u=Qn[a];s=e[u],o=e[u+1],e[u]=l,e[u+1]=m}for(let a=0;a<50;a+=10){for(let i=0;i<10;i++)n[i]=e[a+i];for(let i=0;i<10;i++)e[a+i]^=~n[(i+2)%10]&n[(i+4)%10]}e[0]^=fo[r],e[1]^=go[r]}(0,Z.clean)(n)}var mt=class e extends Z.Hash{constructor(t,n,r,s=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=s,this.rounds=o,(0,Z.anumber)(r),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=(0,Z.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,Z.swap32IfBE)(this.state32),nr(this.state32,this.rounds),(0,Z.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(t){(0,Z.aexists)(this),t=(0,Z.toBytes)(t),(0,Z.abytes)(t);let{blockLen:n,state:r}=this,s=t.length;for(let o=0;o<s;){let a=Math.min(n-this.pos,s-o);for(let i=0;i<a;i++)r[this.pos++]^=t[o++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:n,pos:r,blockLen:s}=this;t[r]^=n,(n&128)!==0&&r===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){(0,Z.aexists)(this,!1),(0,Z.abytes)(t),this.finish();let n=this.state,{blockLen:r}=this;for(let s=0,o=t.length;s<o;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,o-s);t.set(n.subarray(this.posOut,this.posOut+a),s),this.posOut+=a,s+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return(0,Z.anumber)(t),this.xofInto(new Uint8Array(t))}digestInto(t){if((0,Z.aoutput)(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,Z.clean)(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:s,rounds:o,enableXOF:a}=this;return t||(t=new e(n,r,s,a,o)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=o,t.suffix=r,t.outputLen=s,t.enableXOF=a,t.destroyed=this.destroyed,t}};$.Keccak=mt;var Le=(e,t,n)=>(0,Z.createHasher)(()=>new mt(t,e,n));$.sha3_224=Le(6,144,224/8);$.sha3_256=Le(6,136,256/8);$.sha3_384=Le(6,104,384/8);$.sha3_512=Le(6,72,512/8);$.keccak_224=Le(1,144,224/8);$.keccak_256=Le(1,136,256/8);$.keccak_384=Le(1,104,384/8);$.keccak_512=Le(1,72,512/8);var rr=(e,t,n)=>(0,Z.createXOFer)((r={})=>new mt(t,e,r.dkLen===void 0?n:r.dkLen,!0));$.shake128=rr(31,168,128/8);$.shake256=rr(31,136,256/8)});var or=ge(Mt=>{"use strict";Object.defineProperty(Mt,"__esModule",{value:!0});Mt.verifyEnvEncryptPublicKey=vo;var ho=sr(),bo=Oe("@noble/curves/secp256k1");function vo(e,t,n){if(t.length!==65)return null;let r=Buffer.from("dstack-env-encrypt-pubkey","utf8"),s=n;n.startsWith("0x")&&(s=n.slice(2));let o=Buffer.from(s,"hex"),a=Buffer.from(":","utf8"),i=Buffer.concat([r,a,o,Buffer.from(e)]),l=(0,ho.keccak_256)(i);try{let m=t.slice(0,32),u=t.slice(32,64),f=t[64],g=new Uint8Array(64);g.set(m,0),g.set(u,32);let y=bo.secp256k1.Signature.fromCompact(g).addRecoveryBit(f).recoverPublicKey(l);return"0x"+Buffer.from(y.toRawBytes(!0)).toString("hex")}catch(m){return console.error("signature verification failed:",m),null}}});var br=ct(hn(),1);import{ofetch as yo}from"ofetch";function bn(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(s){s(n)}),(r=e.get("*"))&&r.slice().map(function(s){s(t,n)})}}}var od=ct(qt(),1),au=ct(qt(),1),iu=ct(vn(),1),cu=ct(or(),1);import{z as K}from"zod";import{z as L}from"zod";import{z as Ne}from"zod";import{z as k}from"zod";import{z as qe}from"zod";import{anvil as ir,base as cr,mainnet as lr}from"viem/chains";import{z as H}from"zod";import{z as re}from"zod";import{z as p}from"zod";import{z as d}from"zod";import{z as Ze}from"zod";import{z as Qe}from"zod";import{z as C}from"zod";import{z as G}from"zod";import{z as E}from"zod";import qa from"crypto";import{z as ye}from"zod";import{z as be}from"zod";import{z as J}from"zod";import{z as le}from"zod";import{z as ue}from"zod";import{z as hi}from"zod";import{z as pr}from"zod";import{z as Ie}from"zod";import{z as ot}from"zod";import{z as Be}from"zod";import{z as O}from"zod";import{z as Vi}from"zod";import{z as Wi}from"zod";import{z as P}from"zod";import{z as Ae}from"zod";import{z as lc}from"zod";import{z as D}from"zod";import{z as _}from"zod";import{z as rt}from"zod";import{z as Wt}from"zod";import{z as Q}from"zod";import{z as zr}from"zod";import{z as Ee}from"zod";import{z as ce}from"zod";import{z as Fe}from"zod";import{z as Xt}from"zod";import{z as Zt}from"zod";import{z as He}from"zod";import{z as X}from"zod";import{z as B}from"zod";import{z as h}from"zod";import{z as R}from"zod";import{z as I}from"zod";import{z as V}from"zod";import{createPublicClient as Qp,createWalletClient as Yp,http as ed,parseEventLogs as td,parseEther as nd}from"viem";import{privateKeyToAccount as sd}from"viem/accounts";import{isHex as cd}from"viem";import{createPublicClient as ud,createWalletClient as pd,http as dd,custom as md}from"viem";import{privateKeyToAccount as gd}from"viem/accounts";import{z as q}from"zod";import{createPublicClient as _d,createWalletClient as wd,http as Cd,parseEventLogs as kd,parseEther as Sd}from"viem";import{privateKeyToAccount as Ad}from"viem/accounts";import{z as F}from"zod";import{createPublicClient as Pd,createWalletClient as jd,http as Od,parseEther as $d}from"viem";import{privateKeyToAccount as Nd}from"viem/accounts";import{z as U}from"zod";import{createPublicClient as Dd,createWalletClient as Hd,http as Bd,parseEther as Vd}from"viem";import{privateKeyToAccount as Kd}from"viem/accounts";import{z}from"zod";import{createPublicClient as Zd,createWalletClient as Qd,http as Yd,parseEther as em}from"viem";import{privateKeyToAccount as nm}from"viem/accounts";import{z as Ye}from"zod";import{createPublicClient as im,http as cm}from"viem";import{createPublicClient as pm,http as dm}from"viem";import{createPublicClient as fm,http as gm}from"viem";import{createPublicClient as bm,http as vm}from"viem";import{z as et}from"zod";import{z as _e}from"zod";import{z as Tl}from"zod";import{z as tt}from"zod";import{z as A}from"zod";import{z as It}from"zod";import{z as at}from"zod";import{z as ve}from"zod";import{z as W}from"zod";import{z as te}from"zod";import{z as ft}from"zod";import{z as ne}from"zod";import{z as nt}from"zod";import{z as he}from"zod";import{z as de}from"zod";import{z as fr}from"zod";import{z as gr}from"zod";import{z as Te}from"zod";import{z as se}from"zod";import{z as kt}from"zod";import{z as St}from"zod";import{z as ee}from"zod";import{z as T}from"zod";var _o=K.object({detail:K.union([K.string(),K.array(K.object({msg:K.string(),type:K.string().optional(),ctx:K.record(K.unknown()).optional(),loc:K.array(K.union([K.string(),K.number()])).optional(),input:K.unknown().optional()}).passthrough()),K.record(K.unknown())]).optional(),type:K.string().optional(),code:K.string().optional()}),we=class extends Error{constructor(e,t){super(e),this.name=this.constructor.name,this.status=t.status,this.statusText=t.statusText,this.detail=t.detail,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},Kt=class Et extends we{constructor(t,n){super(t,{status:n?.status??0,statusText:n?.statusText??"Unknown Error",detail:n?.detail||t}),this.name="RequestError",this.isRequestError=!0,this.data=n?.data,this.request=n?.request,this.response=n?.response,this.code=n?.code,this.type=n?.type}static fromFetchError(t){let n=_o.safeParse(t.data);if(n.success){let r=n.data.detail??(t.data&&typeof t.data=="object"&&"error_code"in t.data?t.data:void 0);return new Et(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:r,code:n.data.code??void 0,type:n.data.type??void 0})}return new Et(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:t.data?.detail||"Unknown API error",code:t.status?.toString()??void 0})}static fromError(t,n){return new Et(t.message,{request:n??void 0,detail:t.message})}},wo=class extends we{constructor(e,t){super(e,t),this.isValidationError=!0,this.validationErrors=t.validationErrors}},Co=class extends we{constructor(){super(...arguments),this.isAuthError=!0}},vr=class extends we{constructor(){super(...arguments),this.isBusinessError=!0}},ko=class extends we{constructor(){super(...arguments),this.isServerError=!0}},So=class extends we{constructor(){super(...arguments),this.isUnknownError=!0}};function Eo(e){if(!e||!Array.isArray(e))return"unknown";let t=e.filter(n=>typeof n=="string"?!["body","query","path","header"].includes(n):!0);return t.length>0?t.join("."):"unknown"}function yr(e){if(!Array.isArray(e))return{errors:[],message:typeof e=="string"?e:"Validation error"};let t=e.map((s,o)=>{let a=Eo(s.loc),i=a;return a==="unknown"&&s.type&&(i=s.type==="missing"?"required field":s.type),{field:i,message:s.msg,type:s.type,context:s.ctx}}),n=t.length,r=n===1?`Validation failed: ${t[0].message}`:`Validation failed (${n} issue${n>1?"s":""})`;return{errors:t,message:r}}function Ao(e){return e===422?"validation":e===401||e===403?"auth":e>=400&&e<500?"business":e>=500?"server":"unknown"}function Io(e,t,n){if(e===422&&Array.isArray(t)){let{message:r}=yr(t);return r}if(typeof t=="string")return t;if(t&&typeof t=="object"&&"message"in t){let r=t.message;if(typeof r=="string")return r}return n}function xo(e){let t=e.status??0,n=e.statusText??"Unknown Error",r=e.detail,s=To(r);if(s)return new Ro(s.message,{status:t,statusText:n,detail:r,errorCode:s.error_code,structuredDetails:s.details,suggestions:s.suggestions,links:s.links});let o=Ao(t),a=Io(t,r,e.message),i={status:t,statusText:n,detail:r};if(o==="validation"&&Array.isArray(r)){let{errors:l}=yr(r);return new wo(a,{...i,validationErrors:l})}return o==="auth"?new Co(a,i):o==="business"?new vr(a,i):o==="server"?new ko(a,i):new So(a,i)}var Ro=class extends vr{constructor(e,t){super(e,t),this.isResourceError=!0,this.errorCode=t.errorCode,this.structuredDetails=t.structuredDetails,this.suggestions=t.suggestions,this.links=t.links}};function To(e){if(!e||typeof e!="object")return null;let t=e;return t.error_code&&typeof t.error_code=="string"&&t.message&&typeof t.message=="string"?{error_code:t.error_code,message:t.message,details:t.details,suggestions:t.suggestions,links:t.links}:null}var xt=["2025-10-28","2026-01-21"],Po="2026-01-21",Je=(0,br.default)("phala::api-client");function jo(e){return Object.entries(e).map(([t,n])=>` -H "${t}: ${n}"`).join(`
7
- `)}function Oo(e){return e?` -d '${(typeof e=="string"?e:JSON.stringify(e,null,2)).replace(/'/g,"\\'")}'`:""}function ar(e,t,n,r){let s=[];n.forEach((i,l)=>{s.push(`${l}: ${i}`)});let o=s.join(`
4
+ `+o),e.push(s+"m+"+wt.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=js()+t+" "+e[0]}function js(){return K.inspectOpts.hideDate?"":new Date().toISOString()+" "}function Os(...e){return process.stderr.write(_t.formatWithOptions(K.inspectOpts,...e)+`
5
+ `)}function $s(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function Ls(){return process.env.DEBUG}function Ns(e){e.inspectOpts={};let t=Object.keys(K.inspectOpts);for(let n=0;n<t.length;n++)e.inspectOpts[t[n]]=K.inspectOpts[t[n]]}wt.exports=Lt()(K);var{formatters:bn}=wt.exports;bn.o=function(e){return this.inspectOpts.colors=this.useColors,_t.inspect(e,this.inspectOpts).split(`
6
+ `).map(t=>t.trim()).join(" ")};bn.O=function(e){return this.inspectOpts.colors=this.useColors,_t.inspect(e,this.inspectOpts)}});var yn=he((Xu,Nt)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Nt.exports=hn():Nt.exports=vn()});var Ut=he(pt=>{"use strict";var qs=pt&&pt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(pt,"__esModule",{value:!0});pt.encryptEnvVars=zs;var qt=$e("@noble/curves/ed25519"),Ft=qs($e("crypto"));function Fs(e){var t,n;return e=e.startsWith("0x")?e.slice(2):e,new Uint8Array((n=(t=e.match(/.{1,2}/g))===null||t===void 0?void 0:t.map(r=>parseInt(r,16)))!==null&&n!==void 0?n:[])}function Us(e){return Array.from(e).map(t=>t.toString(16).padStart(2,"0")).join("")}async function zs(e,t){let n=JSON.stringify({env:e}),r=qt.x25519.utils.randomPrivateKey(),s=qt.x25519.getPublicKey(r),o=Fs(t),a=qt.x25519.getSharedSecret(r,o),i=await Ft.default.subtle.importKey("raw",a,{name:"AES-GCM",length:256},!0,["encrypt"]),l=Ft.default.getRandomValues(new Uint8Array(12)),m=await Ft.default.subtle.encrypt({name:"AES-GCM",iv:l},i,new TextEncoder().encode(n)),u=new Uint8Array(s.length+l.length+m.byteLength);return u.set(s),u.set(l,s.length),u.set(new Uint8Array(m),s.length+l.length),Us(u)}});var wn=he(dt=>{"use strict";var Ds=dt&&dt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(dt,"__esModule",{value:!0});dt.getComposeHash=Ms;var Hs=Ds($e("crypto"));function zt(e){return e==null?e:Array.isArray(e)?e.map(zt):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,n)=>{let r=e[n];return t[n]=zt(r),t},{}):e}function Bs(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function Vs(e){let t=zt(e);return JSON.stringify(t,(n,r)=>typeof r=="number"&&(isNaN(r)||!isFinite(r))?null:r)}function Ms(e,t=!1){t&&(e=Bs(e));let n=Vs(e);return Hs.default.createHash("sha256").update(n,"utf8").digest("hex")}});var Bn=he(k=>{"use strict";Object.defineProperty(k,"__esModule",{value:!0});k.toBig=k.shrSL=k.shrSH=k.rotrSL=k.rotrSH=k.rotrBL=k.rotrBH=k.rotr32L=k.rotr32H=k.rotlSL=k.rotlSH=k.rotlBL=k.rotlBH=k.add5L=k.add5H=k.add4L=k.add4H=k.add3L=k.add3H=void 0;k.add=Nn;k.fromBig=Ht;k.split=Cn;var Ct=BigInt(2**32-1),Dt=BigInt(32);function Ht(e,t=!1){return t?{h:Number(e&Ct),l:Number(e>>Dt&Ct)}:{h:Number(e>>Dt&Ct)|0,l:Number(e&Ct)|0}}function Cn(e,t=!1){let n=e.length,r=new Uint32Array(n),s=new Uint32Array(n);for(let o=0;o<n;o++){let{h:a,l:i}=Ht(e[o],t);[r[o],s[o]]=[a,i]}return[r,s]}var kn=(e,t)=>BigInt(e>>>0)<<Dt|BigInt(t>>>0);k.toBig=kn;var Sn=(e,t,n)=>e>>>n;k.shrSH=Sn;var En=(e,t,n)=>e<<32-n|t>>>n;k.shrSL=En;var An=(e,t,n)=>e>>>n|t<<32-n;k.rotrSH=An;var In=(e,t,n)=>e<<32-n|t>>>n;k.rotrSL=In;var Rn=(e,t,n)=>e<<64-n|t>>>n-32;k.rotrBH=Rn;var xn=(e,t,n)=>e>>>n-32|t<<64-n;k.rotrBL=xn;var Tn=(e,t)=>t;k.rotr32H=Tn;var Pn=(e,t)=>e;k.rotr32L=Pn;var jn=(e,t,n)=>e<<n|t>>>32-n;k.rotlSH=jn;var On=(e,t,n)=>t<<n|e>>>32-n;k.rotlSL=On;var $n=(e,t,n)=>t<<n-32|e>>>64-n;k.rotlBH=$n;var Ln=(e,t,n)=>e<<n-32|t>>>64-n;k.rotlBL=Ln;function Nn(e,t,n,r){let s=(t>>>0)+(r>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}var qn=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0);k.add3L=qn;var Fn=(e,t,n,r)=>t+n+r+(e/2**32|0)|0;k.add3H=Fn;var Un=(e,t,n,r)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0);k.add4L=Un;var zn=(e,t,n,r,s)=>t+n+r+s+(e/2**32|0)|0;k.add4H=zn;var Dn=(e,t,n,r,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(r>>>0)+(s>>>0);k.add5L=Dn;var Hn=(e,t,n,r,s,o)=>t+n+r+s+o+(e/2**32|0)|0;k.add5H=Hn;var Ks={fromBig:Ht,split:Cn,toBig:kn,shrSH:Sn,shrSL:En,rotrSH:An,rotrSL:In,rotrBH:Rn,rotrBL:xn,rotr32H:Tn,rotr32L:Pn,rotlSH:jn,rotlSL:On,rotlBH:$n,rotlBL:Ln,add:Nn,add3L:qn,add3H:Fn,add4L:Un,add4H:zn,add5H:Hn,add5L:Dn};k.default=Ks});var Vn=he(kt=>{"use strict";Object.defineProperty(kt,"__esModule",{value:!0});kt.crypto=void 0;var Le=$e("crypto");kt.crypto=Le&&typeof Le=="object"&&"webcrypto"in Le?Le.webcrypto:Le&&typeof Le=="object"&&"randomBytes"in Le?Le:void 0});var Qn=he(v=>{"use strict";Object.defineProperty(v,"__esModule",{value:!0});v.wrapXOFConstructorWithOpts=v.wrapConstructorWithOpts=v.wrapConstructor=v.Hash=v.nextTick=v.swap32IfBE=v.byteSwapIfBE=v.swap8IfBE=v.isLE=void 0;v.isBytes=Kn;v.anumber=Bt;v.abytes=Je;v.ahash=Gs;v.aexists=Ws;v.aoutput=Xs;v.u8=Js;v.u32=Zs;v.clean=Qs;v.createView=Ys;v.rotr=eo;v.rotl=to;v.byteSwap=Mt;v.byteSwap32=Gn;v.bytesToHex=ro;v.hexToBytes=so;v.asyncLoop=ao;v.utf8ToBytes=Kt;v.bytesToUtf8=io;v.toBytes=St;v.kdfInputToBytes=co;v.concatBytes=lo;v.checkOpts=uo;v.createHasher=Xn;v.createOptHasher=Jn;v.createXOFer=Zn;v.randomBytes=po;var Xe=Vn();function Kn(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Bt(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function Je(e,...t){if(!Kn(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Gs(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");Bt(e.outputLen),Bt(e.blockLen)}function Ws(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function Xs(e,t){Je(e);let n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Js(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Zs(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Qs(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function Ys(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function eo(e,t){return e<<32-t|e>>>t}function to(e,t){return e<<t|e>>>32-t>>>0}v.isLE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function Mt(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}v.swap8IfBE=v.isLE?e=>e:e=>Mt(e);v.byteSwapIfBE=v.swap8IfBE;function Gn(e){for(let t=0;t<e.length;t++)e[t]=Mt(e[t]);return e}v.swap32IfBE=v.isLE?e=>e:Gn;var Wn=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",no=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function ro(e){if(Je(e),Wn)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=no[e[n]];return t}var Pe={_0:48,_9:57,A:65,F:70,a:97,f:102};function Mn(e){if(e>=Pe._0&&e<=Pe._9)return e-Pe._0;if(e>=Pe.A&&e<=Pe.F)return e-(Pe.A-10);if(e>=Pe.a&&e<=Pe.f)return e-(Pe.a-10)}function so(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Wn)return Uint8Array.fromHex(e);let t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(n);for(let s=0,o=0;s<n;s++,o+=2){let a=Mn(e.charCodeAt(o)),i=Mn(e.charCodeAt(o+1));if(a===void 0||i===void 0){let l=e[o]+e[o+1];throw new Error('hex string expected, got non-hex character "'+l+'" at index '+o)}r[s]=a*16+i}return r}var oo=async()=>{};v.nextTick=oo;async function ao(e,t,n){let r=Date.now();for(let s=0;s<e;s++){n(s);let o=Date.now()-r;o>=0&&o<t||(await(0,v.nextTick)(),r+=o)}}function Kt(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function io(e){return new TextDecoder().decode(e)}function St(e){return typeof e=="string"&&(e=Kt(e)),Je(e),e}function co(e){return typeof e=="string"&&(e=Kt(e)),Je(e),e}function lo(...e){let t=0;for(let r=0;r<e.length;r++){let s=e[r];Je(s),t+=s.length}let n=new Uint8Array(t);for(let r=0,s=0;r<e.length;r++){let o=e[r];n.set(o,s),s+=o.length}return n}function uo(e,t){if(t!==void 0&&{}.toString.call(t)!=="[object Object]")throw new Error("options should be object or undefined");return Object.assign(e,t)}var Vt=class{};v.Hash=Vt;function Xn(e){let t=r=>e().update(St(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function Jn(e){let t=(r,s)=>e(s).update(St(r)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=r=>e(r),t}function Zn(e){let t=(r,s)=>e(s).update(St(r)).digest(),n=e({});return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=r=>e(r),t}v.wrapConstructor=Xn;v.wrapConstructorWithOpts=Jn;v.wrapXOFConstructorWithOpts=Zn;function po(e=32){if(Xe.crypto&&typeof Xe.crypto.getRandomValues=="function")return Xe.crypto.getRandomValues(new Uint8Array(e));if(Xe.crypto&&typeof Xe.crypto.randomBytes=="function")return Uint8Array.from(Xe.crypto.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}});var ir=he(L=>{"use strict";Object.defineProperty(L,"__esModule",{value:!0});L.shake256=L.shake128=L.keccak_512=L.keccak_384=L.keccak_256=L.keccak_224=L.sha3_512=L.sha3_384=L.sha3_256=L.sha3_224=L.Keccak=void 0;L.keccakP=or;var ft=Bn(),Q=Qn(),mo=BigInt(0),mt=BigInt(1),fo=BigInt(2),go=BigInt(7),ho=BigInt(256),bo=BigInt(113),tr=[],nr=[],rr=[];for(let e=0,t=mt,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],tr.push(2*(5*r+n)),nr.push((e+1)*(e+2)/2%64);let s=mo;for(let o=0;o<7;o++)t=(t<<mt^(t>>go)*bo)%ho,t&fo&&(s^=mt<<(mt<<BigInt(o))-mt);rr.push(s)}var sr=(0,ft.split)(rr,!0),vo=sr[0],yo=sr[1],Yn=(e,t,n)=>n>32?(0,ft.rotlBH)(e,t,n):(0,ft.rotlSH)(e,t,n),er=(e,t,n)=>n>32?(0,ft.rotlBL)(e,t,n):(0,ft.rotlSL)(e,t,n);function or(e,t=24){let n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let a=0;a<10;a++)n[a]=e[a]^e[a+10]^e[a+20]^e[a+30]^e[a+40];for(let a=0;a<10;a+=2){let i=(a+8)%10,l=(a+2)%10,m=n[l],u=n[l+1],f=Yn(m,u,1)^n[i],g=er(m,u,1)^n[i+1];for(let y=0;y<50;y+=10)e[a+y]^=f,e[a+y+1]^=g}let s=e[2],o=e[3];for(let a=0;a<24;a++){let i=nr[a],l=Yn(s,o,i),m=er(s,o,i),u=tr[a];s=e[u],o=e[u+1],e[u]=l,e[u+1]=m}for(let a=0;a<50;a+=10){for(let i=0;i<10;i++)n[i]=e[a+i];for(let i=0;i<10;i++)e[a+i]^=~n[(i+2)%10]&n[(i+4)%10]}e[0]^=vo[r],e[1]^=yo[r]}(0,Q.clean)(n)}var gt=class e extends Q.Hash{constructor(t,n,r,s=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=s,this.rounds=o,(0,Q.anumber)(r),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=(0,Q.u32)(this.state)}clone(){return this._cloneInto()}keccak(){(0,Q.swap32IfBE)(this.state32),or(this.state32,this.rounds),(0,Q.swap32IfBE)(this.state32),this.posOut=0,this.pos=0}update(t){(0,Q.aexists)(this),t=(0,Q.toBytes)(t),(0,Q.abytes)(t);let{blockLen:n,state:r}=this,s=t.length;for(let o=0;o<s;){let a=Math.min(n-this.pos,s-o);for(let i=0;i<a;i++)r[this.pos++]^=t[o++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:t,suffix:n,pos:r,blockLen:s}=this;t[r]^=n,(n&128)!==0&&r===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){(0,Q.aexists)(this,!1),(0,Q.abytes)(t),this.finish();let n=this.state,{blockLen:r}=this;for(let s=0,o=t.length;s<o;){this.posOut>=r&&this.keccak();let a=Math.min(r-this.posOut,o-s);t.set(n.subarray(this.posOut,this.posOut+a),s),this.posOut+=a,s+=a}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return(0,Q.anumber)(t),this.xofInto(new Uint8Array(t))}digestInto(t){if((0,Q.aoutput)(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,(0,Q.clean)(this.state)}_cloneInto(t){let{blockLen:n,suffix:r,outputLen:s,rounds:o,enableXOF:a}=this;return t||(t=new e(n,r,s,a,o)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=o,t.suffix=r,t.outputLen=s,t.enableXOF=a,t.destroyed=this.destroyed,t}};L.Keccak=gt;var Ne=(e,t,n)=>(0,Q.createHasher)(()=>new gt(t,e,n));L.sha3_224=Ne(6,144,224/8);L.sha3_256=Ne(6,136,256/8);L.sha3_384=Ne(6,104,384/8);L.sha3_512=Ne(6,72,512/8);L.keccak_224=Ne(1,144,224/8);L.keccak_256=Ne(1,136,256/8);L.keccak_384=Ne(1,104,384/8);L.keccak_512=Ne(1,72,512/8);var ar=(e,t,n)=>(0,Q.createXOFer)((r={})=>new gt(t,e,r.dkLen===void 0?n:r.dkLen,!0));L.shake128=ar(31,168,128/8);L.shake256=ar(31,136,256/8)});var cr=he(Gt=>{"use strict";Object.defineProperty(Gt,"__esModule",{value:!0});Gt.verifyEnvEncryptPublicKey=Co;var _o=ir(),wo=$e("@noble/curves/secp256k1");function Co(e,t,n){if(t.length!==65)return null;let r=Buffer.from("dstack-env-encrypt-pubkey","utf8"),s=n;n.startsWith("0x")&&(s=n.slice(2));let o=Buffer.from(s,"hex"),a=Buffer.from(":","utf8"),i=Buffer.concat([r,a,o,Buffer.from(e)]),l=(0,_o.keccak_256)(i);try{let m=t.slice(0,32),u=t.slice(32,64),f=t[64],g=new Uint8Array(64);g.set(m,0),g.set(u,32);let y=wo.secp256k1.Signature.fromCompact(g).addRecoveryBit(f).recoverPublicKey(l);return"0x"+Buffer.from(y.toRawBytes(!0)).toString("hex")}catch(m){return console.error("signature verification failed:",m),null}}});var _r=ut(yn(),1);import{ofetch as ko}from"ofetch";function _n(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(s){s(n)}),(r=e.get("*"))&&r.slice().map(function(s){s(t,n)})}}}var hd=ut(Ut(),1),hu=ut(Ut(),1),bu=ut(wn(),1),vu=ut(cr(),1);import{z as G}from"zod";import{z as N}from"zod";import{z as qe}from"zod";import{z as S}from"zod";import{z as Fe}from"zod";import{anvil as ur,base as pr,mainnet as dr}from"viem/chains";import{z as C}from"zod";import{z as B}from"zod";import{z as ee}from"zod";import{z as p}from"zod";import{z as d}from"zod";import{z as Qe}from"zod";import{z as Ye}from"zod";import{z as _}from"zod";import{z as W}from"zod";import{z as I}from"zod";import Ga from"crypto";import{z as _e}from"zod";import{z as ve}from"zod";import{z as Z}from"zod";import{z as pe}from"zod";import{z as de}from"zod";import{z as Ai}from"zod";import{z as fr}from"zod";import{z as xe}from"zod";import{z as at}from"zod";import{z as Ve}from"zod";import{z as $}from"zod";import{z as ec}from"zod";import{z as sc}from"zod";import{z as j}from"zod";import{z as Re}from"zod";import{z as yc}from"zod";import{z as H}from"zod";import{z as w}from"zod";import{z as st}from"zod";import{z as Jt}from"zod";import{z as Y}from"zod";import{z as Vr}from"zod";import{z as Ae}from"zod";import{z as ue}from"zod";import{z as Ue}from"zod";import{z as Zt}from"zod";import{z as Yt}from"zod";import{z as Be}from"zod";import{z as J}from"zod";import{z as V}from"zod";import{z as h}from"zod";import{z as P}from"zod";import{z as x}from"zod";import{z as M}from"zod";import{createPublicClient as ld,createWalletClient as ud,http as pd,parseEventLogs as dd,parseEther as md}from"viem";import{privateKeyToAccount as gd}from"viem/accounts";import{isHex as yd}from"viem";import{createPublicClient as wd,createWalletClient as Cd,http as kd,custom as Sd}from"viem";import{privateKeyToAccount as Ad}from"viem/accounts";import{z as F}from"zod";import{createPublicClient as Pd,createWalletClient as jd,http as Od,parseEventLogs as $d,parseEther as Ld}from"viem";import{privateKeyToAccount as qd}from"viem/accounts";import{z as U}from"zod";import{createPublicClient as Hd,createWalletClient as Bd,http as Vd,parseEther as Md}from"viem";import{privateKeyToAccount as Gd}from"viem/accounts";import{z}from"zod";import{createPublicClient as Qd,createWalletClient as Yd,http as em,parseEther as tm}from"viem";import{privateKeyToAccount as rm}from"viem/accounts";import{z as D}from"zod";import{createPublicClient as cm,createWalletClient as lm,http as um,parseEther as pm}from"viem";import{privateKeyToAccount as mm}from"viem/accounts";import{z as et}from"zod";import{createPublicClient as vm,http as ym}from"viem";import{createPublicClient as Cm,http as km}from"viem";import{createPublicClient as Em,http as Am}from"viem";import{createPublicClient as Rm,http as xm}from"viem";import{z as tt}from"zod";import{z as we}from"zod";import{z as zl}from"zod";import{z as nt}from"zod";import{z as R}from"zod";import{z as xt}from"zod";import{z as it}from"zod";import{z as ye}from"zod";import{z as X}from"zod";import{z as re}from"zod";import{z as ht}from"zod";import{z as se}from"zod";import{z as rt}from"zod";import{z as be}from"zod";import{z as me}from"zod";import{z as br}from"zod";import{z as vr}from"zod";import{z as Ie}from"zod";import{z as oe}from"zod";import{z as Et}from"zod";import{z as At}from"zod";import{z as ne}from"zod";import{z as A}from"zod";var So=G.object({detail:G.union([G.string(),G.array(G.object({msg:G.string(),type:G.string().optional(),ctx:G.record(G.unknown()).optional(),loc:G.array(G.union([G.string(),G.number()])).optional(),input:G.unknown().optional()}).passthrough()),G.record(G.unknown())]).optional(),type:G.string().optional(),code:G.string().optional()}),Ce=class extends Error{constructor(e,t){super(e),this.name=this.constructor.name,this.status=t.status,this.statusText=t.statusText,this.detail=t.detail,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},Wt=class It extends Ce{constructor(t,n){super(t,{status:n?.status??0,statusText:n?.statusText??"Unknown Error",detail:n?.detail||t}),this.name="RequestError",this.isRequestError=!0,this.data=n?.data,this.request=n?.request,this.response=n?.response,this.code=n?.code,this.type=n?.type}static fromFetchError(t){let n=So.safeParse(t.data);if(n.success){let r=n.data.detail??(t.data&&typeof t.data=="object"&&"error_code"in t.data?t.data:void 0);return new It(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:r,code:n.data.code??void 0,type:n.data.type??void 0})}return new It(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,response:t.response??void 0,detail:t.data?.detail||"Unknown API error",code:t.status?.toString()??void 0})}static fromError(t,n){return new It(t.message,{request:n??void 0,detail:t.message})}},Eo=class extends Ce{constructor(e,t){super(e,t),this.isValidationError=!0,this.validationErrors=t.validationErrors}},Ao=class extends Ce{constructor(){super(...arguments),this.isAuthError=!0}},wr=class extends Ce{constructor(){super(...arguments),this.isBusinessError=!0}},Io=class extends Ce{constructor(){super(...arguments),this.isServerError=!0}},Ro=class extends Ce{constructor(){super(...arguments),this.isUnknownError=!0}};function xo(e){if(!e||!Array.isArray(e))return"unknown";let t=e.filter(n=>typeof n=="string"?!["body","query","path","header"].includes(n):!0);return t.length>0?t.join("."):"unknown"}function Cr(e){if(!Array.isArray(e))return{errors:[],message:typeof e=="string"?e:"Validation error"};let t=e.map((s,o)=>{let a=xo(s.loc),i=a;return a==="unknown"&&s.type&&(i=s.type==="missing"?"required field":s.type),{field:i,message:s.msg,type:s.type,context:s.ctx}}),n=t.length,r=n===1?`Validation failed: ${t[0].message}`:`Validation failed (${n} issue${n>1?"s":""})`;return{errors:t,message:r}}function To(e){return e===422?"validation":e===401||e===403?"auth":e>=400&&e<500?"business":e>=500?"server":"unknown"}function Po(e,t,n){if(e===422&&Array.isArray(t)){let{message:r}=Cr(t);return r}if(typeof t=="string")return t;if(t&&typeof t=="object"&&"message"in t){let r=t.message;if(typeof r=="string")return r}return n}function jo(e){let t=e.status??0,n=e.statusText??"Unknown Error",r=e.detail,s=$o(r);if(s)return new Oo(s.message,{status:t,statusText:n,detail:r,errorCode:s.error_code,structuredDetails:s.details,suggestions:s.suggestions,links:s.links});let o=To(t),a=Po(t,r,e.message),i={status:t,statusText:n,detail:r};if(o==="validation"&&Array.isArray(r)){let{errors:l}=Cr(r);return new Eo(a,{...i,validationErrors:l})}return o==="auth"?new Ao(a,i):o==="business"?new wr(a,i):o==="server"?new Io(a,i):new Ro(a,i)}var Oo=class extends wr{constructor(e,t){super(e,t),this.isResourceError=!0,this.errorCode=t.errorCode,this.structuredDetails=t.structuredDetails,this.suggestions=t.suggestions,this.links=t.links}};function $o(e){if(!e||typeof e!="object")return null;let t=e;return t.error_code&&typeof t.error_code=="string"&&t.message&&typeof t.message=="string"?{error_code:t.error_code,message:t.message,details:t.details,suggestions:t.suggestions,links:t.links}:null}var Tt=["2025-10-28","2026-01-21"],Lo="2026-01-21",Ze=(0,_r.default)("phala::api-client");function No(e){return Object.entries(e).map(([t,n])=>` -H "${t}: ${n}"`).join(`
7
+ `)}function qo(e){return e?` -d '${(typeof e=="string"?e:JSON.stringify(e,null,2)).replace(/'/g,"\\'")}'`:""}function lr(e,t,n,r){let s=[];n.forEach((i,l)=>{s.push(`${l}: ${i}`)});let o=s.join(`
8
8
  `),a=typeof r=="string"?r:JSON.stringify(r,null,2);return[`< HTTP/1.1 ${e} ${t}`,o?`< ${o.replace(/\n/g,`
9
9
  < `)}`:"","",a].filter(Boolean).join(`
10
- `)}var $o=class _r{constructor(t={}){this.emitter=bn();let n=t.apiKey||process?.env?.PHALA_CLOUD_API_KEY,r=t.baseURL||process?.env?.PHALA_CLOUD_API_PREFIX||"https://cloud-api.phala.com/api/v1",s=t.version&&xt.includes(t.version)?t.version:Po;this.config={...t,apiKey:n,baseURL:r,version:s};let{apiKey:o,baseURL:a,timeout:i,headers:l,useCookieAuth:m,onResponseError:u,...f}=this.config,g={"X-Phala-Version":s,"Content-Type":"application/json"};l&&typeof l=="object"&&Object.entries(l).forEach(([y,S])=>{typeof S=="string"&&(g[y]=S)}),!m&&o&&(g["X-API-Key"]=o),this.fetchInstance=yo.create({baseURL:a,timeout:i||3e4,headers:g,...m?{credentials:"include"}:{},...f,onRequest({request:y,options:S}){if(S.body instanceof FormData){let x=S.headers;x instanceof Headers?x.delete("content-type"):x&&typeof x=="object"&&!Array.isArray(x)&&(delete x["Content-Type"],delete x["content-type"])}if(Je.enabled){let x=S.method||"GET",N=typeof y=="string"?y:y.url,Y=N.startsWith("http")?N:`${a}${N}`,fe={};S.headers&&typeof S.headers=="object"&&Object.entries(S.headers).forEach(([Se,je])=>{typeof je=="string"&&(fe[Se]=je)});let Pe=[`> curl -X ${x} "${Y}"`,jo(fe),S.body?Oo(S.body):""].filter(Boolean).join(`
11
- `);Je(`
10
+ `)}var Fo=class kr{constructor(t={}){this.emitter=_n();let n=t.apiKey||process?.env?.PHALA_CLOUD_API_KEY,r=t.baseURL||process?.env?.PHALA_CLOUD_API_PREFIX||"https://cloud-api.phala.com/api/v1",s=t.version&&Tt.includes(t.version)?t.version:Lo;this.config={...t,apiKey:n,baseURL:r,version:s};let{apiKey:o,baseURL:a,timeout:i,headers:l,useCookieAuth:m,onResponseError:u,...f}=this.config,g={"X-Phala-Version":s,"Content-Type":"application/json"};l&&typeof l=="object"&&Object.entries(l).forEach(([y,E])=>{typeof E=="string"&&(g[y]=E)}),!m&&o&&(g["X-API-Key"]=o),this.fetchInstance=ko.create({baseURL:a,timeout:i||3e4,headers:g,...m?{credentials:"include"}:{},...f,onRequest({request:y,options:E}){if(E.body instanceof FormData){let T=E.headers;T instanceof Headers?T.delete("content-type"):T&&typeof T=="object"&&!Array.isArray(T)&&(delete T["Content-Type"],delete T["content-type"])}if(Ze.enabled){let T=E.method||"GET",q=typeof y=="string"?y:y.url,te=q.startsWith("http")?q:`${a}${q}`,ge={};E.headers&&typeof E.headers=="object"&&Object.entries(E.headers).forEach(([Ee,Oe])=>{typeof Oe=="string"&&(ge[Ee]=Oe)});let je=[`> curl -X ${T} "${te}"`,No(ge),E.body?qo(E.body):""].filter(Boolean).join(`
11
+ `);Ze(`
12
12
  === REQUEST ===
13
13
  %s
14
- `,Pe)}},onResponse({request:y,response:S,options:x}){if(Je.enabled){let N=x.method||"GET",Y=typeof y=="string"?y:y.url;Je(`
14
+ `,je)}},onResponse({request:y,response:E,options:T}){if(Ze.enabled){let q=T.method||"GET",te=typeof y=="string"?y:y.url;Ze(`
15
15
  === RESPONSE [%s %s] (%dms) ===
16
16
  %s
17
- `,N,Y,S.headers.get("x-response-time")||"?",ar(S.status,S.statusText,S.headers,S._data))}},onResponseError:({request:y,response:S,options:x})=>{if(Je.enabled){console.warn(`HTTP ${S.status}: ${S.url}`);let N=x.method||"GET",Y=typeof y=="string"?y:y.url;Je(`
17
+ `,q,te,E.headers.get("x-response-time")||"?",lr(E.status,E.statusText,E.headers,E._data))}},onResponseError:({request:y,response:E,options:T})=>{if(Ze.enabled){console.warn(`HTTP ${E.status}: ${E.url}`);let q=T.method||"GET",te=typeof y=="string"?y:y.url;Ze(`
18
18
  === ERROR RESPONSE [%s %s] ===
19
19
  %s
20
- `,N,Y,ar(S.status,S.statusText,S.headers,S._data))}u&&u({request:y,response:S,options:x})}})}get raw(){return this.fetchInstance}on(t,n){this.emitter.on(t,n)}off(t,n){this.emitter.off(t,n)}once(t,n){let r=s=>{n(s),this.emitter.off(t,r)};this.emitter.on(t,r)}async request(t,n){try{let r=n?.method||"GET";return await this.fetchInstance(t,{...n,method:r})}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}async requestFull(t,n){try{let r=n?.method||"GET",s=await this.fetchInstance.raw(t,{...n,method:r,ignoreResponseError:!0});return{status:s.status,statusText:s.statusText,headers:s.headers,data:s._data,ok:s.ok}}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}async get(t,n){try{return await this.fetchInstance(t,{...n,method:"GET"})}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}buildRequestOptions(t,n,r){let s={...r,method:t,body:n};if(n instanceof FormData){let o=s.headers;s.headers={...o,"Content-Type":""}}return s}async post(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("POST",n,r))}catch(s){let o=this.convertToRequestError(s);throw this.emitError(o)}}async put(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("PUT",n,r))}catch(s){let o=this.convertToRequestError(s);throw this.emitError(o)}}async patch(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("PATCH",n,r))}catch(s){let o=this.convertToRequestError(s);throw this.emitError(o)}}async delete(t,n){try{return await this.fetchInstance(t,{...n,method:"DELETE"})}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}convertToRequestError(t){return t&&typeof t=="object"&&"data"in t?Kt.fromFetchError(t):t instanceof Error?Kt.fromError(t):new Kt("Unknown error occurred",{detail:"Unknown error occurred"})}emitError(t){let n=xo(t);return this.emitter.emit("error",n),n}async safeRequest(t){try{return{success:!0,data:await t()}}catch(n){if(n instanceof we)return{success:!1,error:n};let r=this.convertToRequestError(n);return this.emitError(r),{success:!1,error:r}}}async safeGet(t,n){return this.safeRequest(()=>this.get(t,n))}async safePost(t,n,r){return this.safeRequest(()=>this.post(t,n,r))}async safePut(t,n,r){return this.safeRequest(()=>this.put(t,n,r))}async safePatch(t,n,r){return this.safeRequest(()=>this.patch(t,n,r))}async safeDelete(t,n){return this.safeRequest(()=>this.delete(t,n))}async safeRequestMethod(t,n){return this.safeRequest(()=>this.request(t,n))}async safeRequestFull(t,n){return this.safeRequest(()=>this.requestFull(t,n))}withVersion(t){return new _r({...this.config,version:t})}extend(t){let n=typeof t=="function"?t(this):t,r=Object.create(this);for(let[s,o]of Object.entries(n))typeof o=="function"&&(r[s]=(...a)=>o(this,...a));return r}};function Lo(e={}){return new $o(e)}var No=L.object({username:L.string(),email:L.string(),role:L.enum(["admin","user"]),avatar:L.string(),email_verified:L.boolean(),totp_enabled:L.boolean(),has_backup_codes:L.boolean(),flag_has_password:L.boolean()}).passthrough(),qo=L.object({id:L.string(),name:L.string(),slug:L.string().nullable(),tier:L.string(),role:L.string(),avatar:L.string().nullable().optional()}).passthrough(),Fo=L.object({balance:L.string().or(L.number()),granted_balance:L.string().or(L.number()),is_post_paid:L.boolean(),outstanding_amount:L.string().or(L.number()).nullable()}).passthrough(),Uo=L.object({user:No,workspace:qo,credits:Fo}).passthrough(),zo=Ne.object({username:Ne.string(),email:Ne.string(),credits:Ne.number(),granted_credits:Ne.number(),avatar:Ne.string(),team_name:Ne.string(),team_tier:Ne.string()}).passthrough();function Do(e){return e==="2025-10-28"?zo:Uo}async function wr(e,t){let n=await e.get("/auth/me");return t?.schema===!1?n:(t?.schema||Do(e.config.version)).parse(n)}async function Ho(e,t){try{return{success:!0,data:await wr(e,t)}}catch(n){return n&&typeof n=="object"&&("status"in n||"issues"in n)?{success:!1,error:n}:{success:!1,error:{name:"Error",message:n instanceof Error?n.message:String(n)}}}}var Cr={[lr.id]:lr,[cr.id]:cr,[ir.id]:ir},Bo=qe.object({id:qe.string(),slug:qe.string().nullable(),url:qe.string(),version:qe.string(),chain_id:qe.number().nullable(),kms_contract_address:qe.string().nullable().transform(e=>e),gateway_app_id:qe.string().nullable().transform(e=>e)}).passthrough(),Ce=Bo.transform(e=>{if(e.chain_id!=null){let t=Cr[e.chain_id];if(t)return{...e,chain:t}}return e});function kr(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))throw new Error("Invalid schema: must be a Zod schema object, false, or undefined")}function Sr(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))return{success:!1,error:{name:"ZodError",message:"Invalid schema: must be a Zod schema object, false, or undefined",issues:[{code:"invalid_type",expected:"object",received:typeof e.schema,path:["schema"],message:"Invalid schema: must be a Zod schema object, false, or undefined"}]}}}function Er(e,t){function n(a,i){return r(a,i)}async function r(a,i){kr(i);let l=await t(a);return i?.schema===!1?l:(i?.schema||e).parse(l)}function s(a,i){return o(a,i)}async function o(a,i){let l=Sr(i);if(l)return l;let m=await(async()=>{try{return{success:!0,data:await t(a)}}catch(f){return f&&typeof f=="object"&&"status"in f?{success:!1,error:f}:f&&typeof f=="object"&&"issues"in f?{success:!1,error:f}:{success:!1,error:{name:"Error",message:f instanceof Error?f.message:String(f)}}}})();return m.success?i?.schema===!1?{success:!0,data:m.data}:(i?.schema||e).safeParse(m.data):m}return{action:n,safeAction:s}}function b(e,t){function n(a,...i){let[l,m]=i;return r(a,l,m)}async function r(a,i,l){kr(l);let m=await t(a,i);return l?.schema===!1?m:(l?.schema||e).parse(m)}function s(a,...i){let[l,m]=i;return o(a,l,m)}async function o(a,i,l){let m=Sr(l);if(m)return m;let u=await(async()=>{try{return{success:!0,data:await t(a,i)}}catch(g){return g&&typeof g=="object"&&"status"in g?{success:!1,error:g}:g&&typeof g=="object"&&"issues"in g?{success:!1,error:g}:{success:!1,error:{name:"Error",message:g instanceof Error?g.message:String(g)}}}})();return u.success?l?.schema===!1?{success:!0,data:u.data}:(l?.schema||e).safeParse(u.data):u}return{action:n,safeAction:s}}var Vo=k.object({name:k.string(),is_dev:k.boolean(),version:k.union([k.tuple([k.number(),k.number(),k.number()]),k.tuple([k.number(),k.number(),k.number(),k.number()])]),os_image_hash:k.string().nullable().optional()}).passthrough(),Mo=k.object({teepod_id:k.number(),name:k.string(),listed:k.boolean(),resource_score:k.number(),remaining_vcpu:k.number(),remaining_memory:k.number(),remaining_cvm_slots:k.number(),images:k.array(Vo),support_onchain_kms:k.boolean().optional(),fmspc:k.string().nullable().optional(),device_id:k.string().nullable().optional(),region_identifier:k.string().nullable().optional(),default_kms:k.string().nullable().optional(),kms_list:k.array(k.string()).default([])}).passthrough(),Ko=k.object({max_instances:k.number().nullable().optional(),max_vcpu:k.number().nullable().optional(),max_memory:k.number().nullable().optional(),max_disk:k.number().nullable().optional()}).passthrough(),Go=k.object({tier:k.string(),capacity:Ko,nodes:k.array(Mo),kms_list:k.array(Ce)}).passthrough(),{action:Wo,safeAction:Xo}=Er(Go,async e=>await e.get("/teepods/available")),Ar=H.object({id:H.string(),name:H.string(),description:H.string(),vcpu:H.number(),memory_mb:H.number(),hourly_rate:H.string(),requires_gpu:H.boolean(),default_disk_size_gb:H.number().default(20),family:H.string().nullable()}).passthrough(),Jo=H.object({name:H.string(),items:H.array(Ar),total:H.number()}).strict(),Zo=H.object({result:H.array(Jo)}).strict(),Qo=H.object({items:H.array(Ar),total:H.number(),family:H.string()}).strict(),Yo=H.object({family:H.string()}).strict(),{action:ea,safeAction:ta}=b(Zo,async e=>await e.get("/instance-types")),{action:na,safeAction:ra}=b(Qo,async(e,t)=>{let n=Yo.parse(t);return await e.get(`/instance-types/${n.family}`)}),Ir=re.object({id:re.string(),name:re.string(),slug:re.string().nullable(),tier:re.string(),role:re.string(),is_default:re.boolean(),created_at:re.string(),confidential_models_enabled:re.boolean().optional()}).passthrough(),sa=re.object({has_more:re.boolean(),next_cursor:re.string().nullable(),total:re.number().nullable()}).passthrough(),oa=re.object({data:re.array(Ir),pagination:sa}).passthrough(),{action:aa,safeAction:ia}=b(oa,async(e,t)=>{let n=new URLSearchParams;t?.cursor&&n.append("cursor",t.cursor),t?.limit&&n.append("limit",t.limit.toString());let r=n.toString()?`/workspaces?${n.toString()}`:"/workspaces";return await e.get(r)}),{action:ca,safeAction:la}=b(Ir,async(e,t)=>await e.get(`/workspaces/${t}`)),ua=p.object({id:p.string(),name:p.string(),status:p.string(),uptime:p.string(),app_url:p.string().nullable(),app_id:p.string(),instance_id:p.string().nullable(),configuration:p.any().optional(),exited_at:p.string().nullable(),boot_progress:p.string().nullable(),boot_error:p.string().nullable(),shutdown_progress:p.string().nullable(),image_version:p.string().nullable()}),pa=p.object({id:p.number(),username:p.string()}),xr=p.object({id:p.number(),name:p.string(),region_identifier:p.string().nullable().optional()}),Qt=p.object({vcpu:p.number(),memory:p.number(),disk_size:p.number(),gpu_count:p.number().default(0)}),Yt=p.object({app:p.string(),instance:p.string()}),da=p.object({hosted:ua,name:p.string(),managed_user:pa.nullable(),node:xr.nullable(),listed:p.boolean().default(!1),status:p.string(),in_progress:p.boolean().default(!1),dapp_dashboard_url:p.string().nullable(),syslog_endpoint:p.string().nullable(),allow_upgrade:p.boolean().default(!1),project_id:p.string().nullable(),project_type:p.string().nullable(),billing_period:p.string().nullable(),kms_info:Ce.nullable(),vcpu:p.number().nullable(),memory:p.number().nullable(),disk_size:p.number().nullable(),gateway_domain:p.string().nullable(),public_urls:p.array(Yt),machine_info:Qt.nullable().optional(),updated_at:p.string().nullable().optional()}),Rr=p.object({id:p.number(),name:p.string(),status:p.string(),in_progress:p.boolean().optional().default(!1),teepod_id:p.number().nullable(),teepod:xr.optional().nullable(),app_id:p.string(),vm_uuid:p.string().nullable(),instance_id:p.string().nullable(),vcpu:p.number(),memory:p.number(),disk_size:p.number(),base_image:p.string().nullable(),encrypted_env_pubkey:p.string().nullable(),listed:p.boolean().optional().default(!1),project_id:p.string().optional().nullable(),project_type:p.string().optional().nullable(),instance_type:p.string().optional().nullable(),public_sysinfo:p.boolean().optional().default(!1),public_logs:p.boolean().optional().default(!1),dapp_dashboard_url:p.string().optional().nullable(),syslog_endpoint:p.string().optional().nullable(),kms_info:Ce.optional().nullable(),contract_address:p.string().optional().nullable(),deployer_address:p.string().optional().nullable(),scheduled_delete_at:p.string().optional().nullable(),public_urls:p.array(Yt).optional().default([]),gateway_domain:p.string().optional().nullable(),machine_info:Qt.optional().nullable(),updated_at:p.string().optional().nullable()}),ma=p.object({items:p.array(da),total:p.number(),page:p.number(),page_size:p.number(),pages:p.number()}),fa=d.enum(["skip","hourly","monthly"]),ga=d.enum(["phala","ethereum","base","legacy"]),en=d.object({object_type:d.literal("user"),id:d.string().nullable().optional(),username:d.string().nullable().optional(),avatar_url:d.string().nullable().optional()}),tn=d.object({object_type:d.literal("workspace"),id:d.string(),name:d.string(),slug:d.string().nullable().optional(),avatar_url:d.string().nullable().optional()}),ha=d.object({instance_type:d.string().nullable().optional(),vcpu:d.number().int().nullable().optional(),memory_in_gb:d.number().nullable().optional(),disk_in_gb:d.number().int().nullable().optional(),gpus:d.number().int().nullable().optional(),compute_billing_price:d.string().nullable().optional(),billing_period:fa.nullable().optional()}),ba=d.object({name:d.string().nullable().optional(),version:d.string().nullable().optional(),is_dev:d.boolean().nullable().optional(),os_image_hash:d.string().nullable().optional()}),va=d.object({chain_id:d.number().int().nullable().optional(),dstack_kms_address:d.string().nullable().optional(),dstack_app_address:d.string().nullable().optional(),deployer_address:d.string().nullable().optional(),rpc_endpoint:d.string().nullable().optional(),encrypted_env_pubkey:d.string().nullable().optional()}),ya=va.transform(e=>{if(e.chain_id!=null){let t=Cr[e.chain_id];if(t)return{...e,chain:t}}return e}),_a=d.object({target:d.string().nullable().optional(),started_at:d.string().nullable().optional(),correlation_id:d.string().nullable().optional()}),wa=d.object({base_domain:d.string().nullable().optional(),cname:d.string().nullable().optional()}),Tr=d.object({object_type:d.literal("node"),id:d.number().int().nullable().optional(),name:d.string().nullable().optional(),region:d.string().nullable().optional(),device_id:d.string().nullable().optional(),ppid:d.string().nullable().optional(),status:d.string().nullable().optional(),version:d.string().nullable().optional()});var At=d.object({id:d.string(),name:d.string(),app_id:d.string().nullable().optional(),vm_uuid:d.string().nullable().optional(),instance_id:d.string().nullable().optional(),resource:ha,node_info:Tr.nullable().optional(),os:ba.nullable().optional(),kms_type:ga.nullable().optional(),kms_info:ya.nullable().optional(),status:d.string(),progress:_a.nullable().optional(),compose_hash:d.string().nullable().optional(),gateway:wa,services:d.array(d.record(d.any())).optional().default([]),endpoints:d.array(Yt).nullable().optional(),public_logs:d.boolean().optional(),public_sysinfo:d.boolean().optional(),public_tcbinfo:d.boolean().optional(),gateway_enabled:d.boolean().optional(),secure_time:d.boolean().optional(),listed:d.boolean().optional().default(!1),storage_fs:d.string().optional(),workspace:tn.nullable().optional(),creator:en.nullable().optional()}),Ca=At.extend({compose_file:d.union([d.record(d.any()),d.string()]).nullable().optional()}),ka=d.object({items:d.array(At),total:d.number(),page:d.number(),page_size:d.number(),pages:d.number()});function Pr(e){return typeof e!="string"||e.length<5||e.length>63?!1:/^[a-zA-Z](?!.*--)([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(e)}var oe=Ze.object({id:Ze.string().optional(),uuid:Ze.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,"Invalid UUID format").optional(),app_id:Ze.string().optional(),instance_id:Ze.string().optional(),name:Ze.string().refine(Pr,{message:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"}).optional()}),me=e=>e.refine(t=>{let n=t;return!!(n.id||n.uuid||n.app_id||n.instance_id||n.name)},{message:"One of id, uuid, app_id, instance_id, or name must be provided"}),Sa=me(oe),j=Sa.transform(e=>{let t;if(e.id)t=e.id;else if(e.uuid)t=e.uuid;else if(e.app_id)t=e.app_id;else if(e.instance_id)t=e.instance_id;else{if(e.name)return{cvmId:e.name};throw new Error("No valid identifier provided")}let n=/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,r=/^[0-9a-f]{40}$/i,s;return n.test(t)?s=t.replace(/-/g,""):r.test(t)?s=`app_${t}`:s=t,{cvmId:s}}),Ea=j;function Aa(e){return e==="2025-10-28"?Rr:Ca}async function jr(e,t){let{cvmId:n}=Ea.parse(t),r=await e.get(`/cvms/${n}`);return Aa(e.config.version).parse(r)}async function Rt(e,t){try{return{success:!0,data:await jr(e,t)}}catch(n){return n&&typeof n=="object"&&("status"in n||"issues"in n)?{success:!1,error:n}:{success:!1,error:{name:"Error",message:n instanceof Error?n.message:String(n)}}}}var Ia=Qe.object({page:Qe.number().int().min(1).optional(),page_size:Qe.number().int().min(1).optional(),node_id:Qe.number().int().min(1).optional(),teepod_id:Qe.number().int().min(1).optional(),user_id:Qe.string().optional()}).strict();function xa(e){return e==="2025-10-28"?ma:ka}async function Or(e,t){let n=Ia.parse(t??{}),r=await e.get("/cvms/paginated",{params:n});return xa(e.config.version).parse(r)}async function nn(e,t){try{return{success:!0,data:await Or(e,t)}}catch(n){return n&&typeof n=="object"&&("status"in n||"issues"in n)?{success:!1,error:n}:{success:!1,error:{name:"Error",message:n instanceof Error?n.message:String(n)}}}}var ur=200*1024;function $r(e,t,n){let r=new TextEncoder,s=e?r.encode(e).byteLength:0,o=t?r.encode(t).byteLength:0,a=s+o;if(a>ur){let i=ur/1024,l=Math.ceil(a/1024);n.addIssue({code:G.ZodIssueCode.custom,message:`Combined size of docker_compose_file and pre_launch_script must not exceed ${i}KB (current: ${l}KB)`})}}var Lr=G.object({allowed_envs:G.array(G.string()).optional(),docker_compose_file:G.string(),features:G.array(G.string()).optional(),name:G.string().optional(),manifest_version:G.number().optional(),kms_enabled:G.boolean().optional(),public_logs:G.boolean().optional(),public_sysinfo:G.boolean().optional(),tproxy_enabled:G.boolean().optional(),storage_fs:G.enum(["ext4","zfs"]).optional(),pre_launch_script:G.string().optional(),env_pubkey:G.string().optional(),salt:G.string().optional().nullable()}).passthrough().superRefine((e,t)=>{$r(e.docker_compose_file,e.pre_launch_script,t)}),Ra=C.object({app_id:C.string().nullable().optional(),app_env_encrypt_pubkey:C.string().nullable().optional(),compose_hash:C.string(),kms_info:Ce.nullable().optional(),fmspc:C.string().nullable().optional(),device_id:C.string().nullable().optional(),os_image_hash:C.string().nullable().optional(),instance_type:C.string().nullable().optional(),teepod_id:C.number().nullable().optional(),node_id:C.number().nullable().optional(),kms_id:C.string().nullable().optional()}).passthrough().transform(e=>{if("teepod_id"in e&&e.teepod_id!==void 0){let{teepod_id:t,...n}=e;return{...n,node_id:t}}return e}),Gt="Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens",Ta=C.object({node_id:C.number().optional(),teepod_id:C.number().optional(),region:C.string().optional(),name:C.string().min(5,Gt).max(63,Gt).refine(e=>Pr(e),Gt),instance_type:C.string().optional(),image:C.string().optional(),vcpu:C.number().optional(),memory:C.number().optional(),disk_size:C.number().optional(),compose_file:C.object({allowed_envs:C.array(C.string()).optional(),pre_launch_script:C.string().optional(),docker_compose_file:C.string().optional(),name:C.string().optional().default(""),kms_enabled:C.boolean().optional(),public_logs:C.boolean().optional(),public_sysinfo:C.boolean().optional(),gateway_enabled:C.boolean().optional(),tproxy_enabled:C.boolean().optional(),storage_fs:C.enum(["ext4","zfs"]).optional()}).superRefine((e,t)=>{$r(e.docker_compose_file,e.pre_launch_script,t)}),listed:C.boolean().optional(),kms_id:C.string().optional(),kms:C.enum(["PHALA","ETHEREUM","BASE"]).optional(),kms_contract:C.string().optional(),env_keys:C.array(C.string()).optional(),nonce:C.number().optional(),app_id:C.string().optional()}).passthrough().transform(e=>!e.instance_type&&!e.vcpu&&!e.memory?{...e,instance_type:"tdx.small"}:e);function Pa(e){if(!e.compose_file)return e;let t={...e.compose_file};return typeof t.gateway_enabled=="boolean"&&typeof t.tproxy_enabled=="boolean"?delete t.tproxy_enabled:typeof t.tproxy_enabled=="boolean"&&typeof t.gateway_enabled>"u"&&(t.gateway_enabled=t.tproxy_enabled,delete t.tproxy_enabled,(typeof window<"u"?window.console:globalThis.console)&&console.warn("[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration.")),{...e,compose_file:t}}var{action:ja,safeAction:Oa}=b(Ra,async(e,t)=>{let n=Ta.parse(t),r=Pa(n),s={...r};return typeof r.node_id=="number"?(s={...r,teepod_id:r.node_id},delete s.node_id):typeof r.teepod_id=="number"&&console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead."),await e.post("/cvms/provision",s)}),$a=E.object({id:E.number(),name:E.string(),status:E.string(),teepod_id:E.number(),teepod:E.object({id:E.number(),name:E.string()}).nullable(),user_id:E.number().nullable(),app_id:E.string().nullable(),vm_uuid:E.string().nullable(),instance_id:E.string().nullable(),app_url:E.string().nullable().default(null),base_image:E.string().nullable(),vcpu:E.number(),memory:E.number(),disk_size:E.number(),manifest_version:E.number().nullable().default(2),version:E.string().nullable().default("1.0.0"),runner:E.string().nullable().default("docker-compose"),docker_compose_file:E.string().nullable(),features:E.array(E.string()).nullable().default(["kms","tproxy-net"]),created_at:E.string(),encrypted_env_pubkey:E.string().nullable().optional(),app_auth_contract_address:E.string().nullable().optional(),deployer_address:E.string().nullable().optional()}).passthrough(),pp=E.object({encrypted_env:E.string().optional().nullable(),app_id:E.string(),compose_hash:E.string(),kms_id:E.string().optional(),contract_address:E.string().optional(),deployer_address:E.string().optional(),env_keys:E.array(E.string()).optional().nullable()}).passthrough(),{action:La,safeAction:Na}=b($a,async(e,t)=>await e.post("/cvms",t));function Jt(e){return e==null?e:Array.isArray(e)?e.map(Jt):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,n)=>{let r=e[n];return t[n]=Jt(r),t},{}):e}function Nr(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function qr(e){let t=Jt(e),n=JSON.stringify(t,null,4);return n=n.replace(/": /g,'":'),n}function Fa(e){let t=Nr(e),n=qr(t);return qa.createHash("sha256").update(n,"utf8").digest("hex")}function Ua(e){let t=e;return{...e,getHash:()=>Fa(t),toString:()=>qr(Nr(t))}}var za=Lr.transform(e=>Ua(e)),Da=j,{action:Ha,safeAction:Ba}=b(za,async(e,t)=>{let{cvmId:n}=Da.parse(t);return await e.get(`/cvms/${n}/compose_file`)}),Va=ye.object({id:ye.string().optional(),uuid:ye.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:ye.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:ye.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),app_compose:Lr,update_env_vars:ye.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,request:{...e.app_compose,update_env_vars:e.update_env_vars},_raw:e})),Ma=ye.object({app_id:ye.string().nullable(),device_id:ye.string().nullable(),compose_hash:ye.string(),kms_info:Ce.nullable().optional(),compose_hash_registered:ye.boolean().optional().default(!1)}).passthrough(),{action:Ka,safeAction:Ga}=b(Ma,async(e,t)=>{let n=Va.parse(t);return await e.post(`/cvms/${n.cvmId}/compose_file/provision`,n.request)}),Wa=be.object({id:be.string().optional(),uuid:be.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:be.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:be.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),compose_hash:be.string().min(1,"Compose hash is required"),encrypted_env:be.string().optional(),env_keys:be.array(be.string()).optional(),update_env_vars:be.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,compose_hash:e.compose_hash,encrypted_env:e.encrypted_env,env_keys:e.env_keys,update_env_vars:e.update_env_vars??void 0,_raw:e})),Xa=be.any().transform(()=>{}),{action:Ja,safeAction:Za}=b(Xa,async(e,t)=>{let n=Wa.parse(t);return await e.patch(`/cvms/${n.cvmId}/compose_file`,{compose_hash:n.compose_hash,encrypted_env:n.encrypted_env,env_keys:n.env_keys,update_env_vars:n.update_env_vars})}),Qa=me(oe.extend({encrypted_env:J.string().describe("Encrypted environment variables (hex string)"),env_keys:J.array(J.string()).optional().describe("List of allowed environment variable keys"),compose_hash:J.string().optional().describe("Compose hash for verification (Phase 2, required when env_keys changes)"),transaction_hash:J.string().optional().describe("On-chain transaction hash for verification (Phase 2, required when env_keys changes)")})).transform(e=>{let{cvmId:t}=j.parse(e);return{cvmId:t,request:{encrypted_env:e.encrypted_env,env_keys:e.env_keys,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),Ya=J.object({status:J.literal("in_progress"),message:J.string(),correlation_id:J.string(),allowed_envs_changed:J.boolean()}),ei=J.object({status:J.literal("precondition_required"),message:J.string(),compose_hash:J.string(),app_id:J.string(),device_id:J.string(),kms_info:Ce}),ti=J.union([Ya,ei]),{action:ni,safeAction:ri}=b(ti,async(e,t)=>{let n=Qa.parse(t);try{return await e.patch(`/cvms/${n.cvmId}/envs`,n.request)}catch(r){if(r instanceof we&&r.status===465){let s=r.detail;if(s&&typeof s=="object"){let o=s,a=o.details;if(a&&Array.isArray(a)){let i=new Map(a.map(g=>[g.field,g.value])),l=i.get("compose_hash"),m=i.get("app_id"),u=i.get("device_id"),f=i.get("kms_info");if(l&&m)return{status:"precondition_required",message:o.message||"Compose hash verification required",compose_hash:l,app_id:m,device_id:u||"",kms_info:f}}}}throw r}}),si=me(oe.extend({docker_compose_file:le.string().describe("Docker Compose YAML content"),compose_hash:le.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:le.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=j.parse(e);return{cvmId:t,request:{docker_compose_file:e.docker_compose_file,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),oi=le.object({status:le.literal("in_progress"),message:le.string(),correlation_id:le.string()}),ai=le.object({status:le.literal("precondition_required"),message:le.string(),compose_hash:le.string(),app_id:le.string(),device_id:le.string(),kms_info:Ce}),ii=le.union([oi,ai]),{action:ci,safeAction:li}=b(ii,async(e,t)=>{let n=si.parse(t),r={"Content-Type":"text/yaml"};n.request.compose_hash&&(r["X-Compose-Hash"]=n.request.compose_hash),n.request.transaction_hash&&(r["X-Transaction-Hash"]=n.request.transaction_hash);try{return await e.patch(`/cvms/${n.cvmId}/docker-compose`,n.request.docker_compose_file,{headers:r})}catch(s){if(s instanceof we&&s.status===465){let o=s.detail;if(o&&typeof o=="object"){let a=o,i=a.details;if(i&&Array.isArray(i)){let l=new Map(i.map(y=>[y.field,y.value])),m=l.get("compose_hash"),u=l.get("app_id"),f=l.get("device_id"),g=l.get("kms_info");if(m&&u)return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:m,app_id:u,device_id:f||"",kms_info:g}}}}throw s}}),ui=me(oe.extend({pre_launch_script:ue.string().describe("Pre-launch script content (shell script)"),compose_hash:ue.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:ue.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=j.parse(e);return{cvmId:t,request:{pre_launch_script:e.pre_launch_script,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),pi=ue.object({status:ue.literal("in_progress"),message:ue.string(),correlation_id:ue.string()}),di=ue.object({status:ue.literal("precondition_required"),message:ue.string(),compose_hash:ue.string(),app_id:ue.string(),device_id:ue.string(),kms_info:Ce}),mi=ue.union([pi,di]),{action:fi,safeAction:gi}=b(mi,async(e,t)=>{let n=ui.parse(t),r={"Content-Type":"text/plain"};n.request.compose_hash&&(r["X-Compose-Hash"]=n.request.compose_hash),n.request.transaction_hash&&(r["X-Transaction-Hash"]=n.request.transaction_hash);try{return await e.patch(`/cvms/${n.cvmId}/pre-launch-script`,n.request.pre_launch_script,{headers:r})}catch(s){if(s instanceof we&&s.status===465){let o=s.detail;if(o&&typeof o=="object"){let a=o,i=a.details;if(i&&Array.isArray(i)){let l=new Map(i.map(y=>[y.field,y.value])),m=l.get("compose_hash"),u=l.get("app_id"),f=l.get("device_id"),g=l.get("kms_info");if(m&&u)return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:m,app_id:u,device_id:f||"",kms_info:g}}}}throw s}}),bi=j,{action:vi,safeAction:yi}=b(hi.string(),async(e,t)=>{let{cvmId:n}=bi.parse(t);return await e.get(`/cvms/${n}/pre-launch-script`)}),_i=pr.object({kms_id:pr.string().min(1,"KMS ID is required")}),{action:wi,safeAction:Ci}=b(Ce,async(e,t)=>{let n=_i.parse(t);return await e.get(`/kms/${n.kms_id}`)}),ki=Ie.object({page:Ie.number().int().min(1).optional(),page_size:Ie.number().int().min(1).optional(),is_onchain:Ie.boolean().optional()}).strict(),Si=Ie.object({items:Ie.array(Ce),total:Ie.number(),page:Ie.number(),page_size:Ie.number(),pages:Ie.number()}).strict(),{action:Ei,safeAction:Ai}=b(Si,async(e,t)=>{let n=ki.parse(t??{});return await e.get("/kms",{params:n})}),Ii=ot.object({kms:ot.string().min(1,"KMS ID or slug is required"),app_id:ot.string().refine(e=>e.length===40||e.startsWith("0x")&&e.length===42,"App ID must be exactly 40 characters or 42 characters with 0x prefix")}).strict(),xi=ot.object({public_key:ot.string(),signature:ot.string()}).strict(),{action:Ri,safeAction:Ti}=b(xi,async(e,t)=>{let n=Ii.parse(t);return await e.get(`/kms/${n.kms}/pubkey/${n.app_id}`)}),Pi=Be.object({counts:Be.number().int().min(1).max(20).optional().default(1)}).strict(),ji=Be.object({app_ids:Be.array(Be.object({app_id:Be.string(),nonce:Be.number().int().min(0)}))}).strict(),{action:Oi,safeAction:$i}=b(ji,async(e,t)=>{let n=Pi.parse(t??{}),r=new URLSearchParams;return r.append("counts",n.counts.toString()),await e.get(`/kms/phala/next_app_id?${r.toString()}`)}),it=O.object({id:O.number(),name:O.string(),status:O.string(),teepod_id:O.number(),teepod:O.object({id:O.number(),name:O.string(),region_identifier:O.string().nullable().optional()}).optional().nullable(),user_id:O.number().optional().nullable(),app_id:O.string(),vm_uuid:O.string().nullable(),instance_id:O.string().nullable(),app_url:O.string().optional().nullable(),base_image:O.string().optional().nullable(),vcpu:O.number(),memory:O.number(),disk_size:O.number(),manifest_version:O.number().optional().nullable(),version:O.string().optional().nullable(),runner:O.string().optional().nullable(),docker_compose_file:O.string().optional().nullable(),features:O.array(O.string()).optional().nullable(),created_at:O.string(),encrypted_env_pubkey:O.string().nullable()}),Li=j,{action:Ni,safeAction:qi}=b(it,async(e,t)=>{let{cvmId:n}=Li.parse(t);return await e.post(`/cvms/${n}/start`)}),Fi=j,{action:Ui,safeAction:zi}=b(it,async(e,t)=>{let{cvmId:n}=Fi.parse(t);return await e.post(`/cvms/${n}/stop`)}),Di=j,{action:Hi,safeAction:Bi}=b(it,async(e,t)=>{let{cvmId:n}=Di.parse(t);return await e.post(`/cvms/${n}/shutdown`)}),Mi=me(oe.extend({force:Vi.boolean().optional()})),{action:Ki,safeAction:Gi}=b(it,async(e,t)=>{let n=Mi.parse(t),{cvmId:r}=j.parse(n),{force:s=!1}=n;return await e.post(`/cvms/${r}/restart`,{force:s})}),Xi=j,{action:Ji,safeAction:Zi}=b(Wi.void(),async(e,t)=>{let{cvmId:n}=Xi.parse(t);await e.delete(`/cvms/${n}`)}),Qi=P.object({name:P.string(),mount_point:P.string(),total_size:P.number(),free_size:P.number()}),Yi=P.object({os_name:P.string(),os_version:P.string(),kernel_version:P.string(),cpu_model:P.string(),num_cpus:P.number(),total_memory:P.number(),available_memory:P.number(),used_memory:P.number(),free_memory:P.number(),total_swap:P.number(),used_swap:P.number(),free_swap:P.number(),uptime:P.number(),loadavg_one:P.number(),loadavg_five:P.number(),loadavg_fifteen:P.number(),disks:P.array(Qi)}),ec=P.object({is_online:P.boolean(),is_public:P.boolean().default(!1),error:P.string().nullable(),sysinfo:Yi.nullable(),status:P.string().nullable(),in_progress:P.boolean().default(!1),boot_progress:P.string().nullable(),boot_error:P.string().nullable()}),tc=j,{action:nc,safeAction:rc}=b(ec,async(e,t)=>{let{cvmId:n}=tc.parse(t);return await e.get(`/cvms/${n}/stats`)}),sc=Ae.object({app:Ae.string(),instance:Ae.string()}),oc=Ae.object({is_online:Ae.boolean(),is_public:Ae.boolean().default(!0),error:Ae.string().nullable(),internal_ip:Ae.string().nullable(),latest_handshake:Ae.string().nullable(),public_urls:Ae.array(sc).nullable()}),ac=j,{action:ic,safeAction:cc}=b(oc,async(e,t)=>{let{cvmId:n}=ac.parse(t);return await e.get(`/cvms/${n}/network`)}),uc=j,{action:pc,safeAction:dc}=b(lc.string(),async(e,t)=>{let{cvmId:n}=uc.parse(t);return await e.get(`/cvms/${n}/docker-compose.yml`)}),mc=D.object({id:D.string(),names:D.array(D.string()),image:D.string(),image_id:D.string(),command:D.string().nullable().optional(),created:D.number(),state:D.string(),status:D.string(),log_endpoint:D.string().nullable()}),fc=D.object({is_online:D.boolean(),is_public:D.boolean().default(!0),error:D.string().nullable(),docker_compose_file:D.string().nullable(),manifest_version:D.number().nullable(),version:D.string().nullable(),runner:D.string().nullable(),features:D.array(D.string()).nullable(),containers:D.array(mc).nullable()}),gc=j,{action:hc,safeAction:bc}=b(fc,async(e,t)=>{let{cvmId:n}=gc.parse(t);return await e.get(`/cvms/${n}/composition`)}),vc=_.object({common_name:_.string().nullable(),organization:_.string().nullable(),country:_.string().nullable(),state:_.string().nullable(),locality:_.string().nullable()}),yc=_.object({common_name:_.string().nullable(),organization:_.string().nullable(),country:_.string().nullable()}),Fr=_.object({subject:vc,issuer:yc,serial_number:_.string(),not_before:_.string(),not_after:_.string(),version:_.string(),fingerprint:_.string(),signature_algorithm:_.string(),sans:_.array(_.string()).nullable(),is_ca:_.boolean(),position_in_chain:_.number().nullable(),quote:_.string().nullable(),app_id:_.string().nullable().optional(),cert_usage:_.string().nullable().optional()}),_c=_.object({imr:_.number(),event_type:_.number(),digest:_.string(),event:_.string(),event_payload:_.string()}),Ur=_.object({mrtd:_.string(),rootfs_hash:_.string().nullable().optional(),rtmr0:_.string(),rtmr1:_.string(),rtmr2:_.string(),rtmr3:_.string(),event_log:_.array(_c),app_compose:_.string()}),wc=_.object({name:_.string().nullable(),is_online:_.boolean(),is_public:_.boolean().default(!0),error:_.string().nullable(),app_certificates:_.array(Fr).nullable(),tcb_info:Ur.nullable(),compose_file:_.string().nullable()}),Cc=j,{action:kc,safeAction:Sc}=b(wc,async(e,t)=>{let{cvmId:n}=Cc.parse(t);return await e.get(`/cvms/${n}/attestation`)}),Ec=me(oe.extend({vcpu:rt.number().optional(),memory:rt.number().optional(),disk_size:rt.number().optional(),instance_type:rt.string().optional(),allow_restart:rt.boolean().optional()})),{action:Ac,safeAction:Ic}=b(rt.void(),async(e,t)=>{let n=Ec.parse(t),{cvmId:r}=j.parse(n),{...s}=n;await e.patch(`/cvms/${r}/resources`,s)}),xc=me(oe.extend({public_sysinfo:Wt.boolean(),public_logs:Wt.boolean(),public_tcbinfo:Wt.boolean().optional()})),{action:Rc,safeAction:Tc}=b(Rr,async(e,t)=>{let n=xc.parse(t),{cvmId:r}=j.parse(n),{public_sysinfo:s,public_logs:o,public_tcbinfo:a}=n;return await e.patch(`/cvms/${r}/visibility`,{public_sysinfo:s,public_logs:o,public_tcbinfo:a})}),dr=Q.object({name:Q.string(),os_image_hash:Q.string().nullable(),is_current:Q.boolean()}),Pc=Q.object({version:Q.union([Q.tuple([Q.number(),Q.number(),Q.number(),Q.number()]),Q.tuple([Q.number(),Q.number(),Q.number()])]),prod:dr.nullable(),dev:dr.nullable()}),jc=Q.array(Pc),Oc=j,{action:$c,safeAction:Lc}=b(jc,async(e,t)=>{let{cvmId:n}=Oc.parse(t);return await e.get(`/cvms/${n}/available-os-images`)}),Nc=me(oe.extend({os_image_name:zr.string().min(1,"OS image name is required")})),{action:qc,safeAction:Fc}=b(zr.void(),async(e,t)=>{let n=Nc.parse(t),{cvmId:r}=j.parse(n),{os_image_name:s}=n;await e.patch(`/cvms/${r}/os-image`,{os_image_name:s})}),Uc=Ee.object({id:Ee.string().optional(),instance_id:Ee.string().optional(),name:Ee.string(),status:Ee.string(),uptime:Ee.string().optional(),exited_at:Ee.string().optional(),boot_progress:Ee.string().optional(),boot_error:Ee.string().optional(),shutdown_progress:Ee.string().optional()}),zc=j,{action:Dc,safeAction:Hc}=b(Uc,async(e,t)=>{let{cvmId:n}=zc.parse(t);return await e.get(`/cvms/${n}/state`)}),Dr=ce.object({id:ce.string(),user_id:ce.string(),name:ce.string(),public_key:ce.string(),fingerprint:ce.string(),key_type:ce.string(),source:ce.string(),key_metadata:ce.record(ce.unknown()).nullable().optional(),last_synced_at:ce.string().nullable().optional(),created_at:ce.string(),updated_at:ce.string()}),Bc=ce.array(Dr);async function Hr(e){let t=await e.get("/user/ssh-keys");return Bc.parse(t)}async function Vc(e){try{return{success:!0,data:await Hr(e)}}catch(t){return t&&typeof t=="object"&&("status"in t||"issues"in t)?{success:!1,error:t}:{success:!1,error:{name:"Error",message:t instanceof Error?t.message:String(t)}}}}var Mc=Fe.object({github_username:Fe.string().min(1)}),Kc=Fe.object({github_username:Fe.string(),keys_added:Fe.number().int(),keys_skipped:Fe.number().int(),errors:Fe.array(Fe.string()).default([])}),{action:Gc,safeAction:Wc}=b(Kc,async(e,t)=>{let{github_username:n}=Mc.parse(t);return await e.post("/user/ssh-keys/github-profile",{github_username:n})}),Xc=Xt.object({name:Xt.string().min(1),public_key:Xt.string().min(1)}),{action:Jc,safeAction:Zc}=b(Dr,async(e,t)=>{let{name:n,public_key:r}=Xc.parse(t);return await e.post("/user/ssh-keys",{name:n,public_key:r})}),Qc=Zt.object({keyId:Zt.string().min(1)}),{action:Yc,safeAction:el}=b(Zt.void(),async(e,t)=>{let{keyId:n}=Qc.parse(t);await e.delete(`/user/ssh-keys/${n}`)}),tl=He.object({synced_count:He.number().int(),keys_added:He.number().int(),keys_updated:He.number().int(),keys_removed:He.number().int(),errors:He.array(He.string()).default([])}),{action:nl,safeAction:rl}=Er(tl,async e=>await e.post("/user/ssh-keys/github-sync",{})),sl=X.object({name:X.string(),slug:X.string(),version:X.string(),os_image_hash:X.string().nullable(),is_dev:X.boolean(),requires_gpu:X.boolean()}).passthrough(),ol=X.object({page:X.number().int().min(1).optional(),page_size:X.number().int().min(1).optional(),is_dev:X.boolean().optional()}).strict(),al=X.object({items:X.array(sl),total:X.number(),page:X.number(),page_size:X.number(),pages:X.number()}).passthrough(),{action:il,safeAction:cl}=b(al,async(e,t)=>{let n=ol.parse(t??{});return await e.get("/os-images",{params:n})}),ll=B.object({device_id:B.string(),node_name:B.string().nullable().optional(),on_chain_allowed:B.boolean().nullable()}).passthrough(),ul=B.object({name:B.string(),version:B.string(),os_image_hash:B.string().nullable(),on_chain_allowed:B.boolean().nullable()}).passthrough(),pl=B.object({contract_address:B.string(),chain_id:B.number(),chain_name:B.string(),devices:B.array(ll),os_images:B.array(ul)}).passthrough(),dl=B.object({chain_name:B.string(),chain_id:B.number(),contracts:B.array(pl)}).passthrough(),ml=B.object({chain:B.string()}).strict(),{action:fl,safeAction:gl}=b(dl,async(e,t)=>{let{chain:n}=ml.parse(t);return await e.get(`/kms/on-chain/${n}`)});function Br(e={}){let t=Lo(e),n={getCurrentUser:wr,safeGetCurrentUser:Ho,getAvailableNodes:Wo,safeGetAvailableNodes:Xo,listAllInstanceTypeFamilies:ea,safeListAllInstanceTypeFamilies:ta,listFamilyInstanceTypes:na,safeListFamilyInstanceTypes:ra,listWorkspaces:aa,safeListWorkspaces:ia,getWorkspace:ca,safeGetWorkspace:la,getCvmInfo:jr,safeGetCvmInfo:Rt,getCvmList:Or,safeGetCvmList:nn,provisionCvm:ja,safeProvisionCvm:Oa,commitCvmProvision:La,safeCommitCvmProvision:Na,getCvmComposeFile:Ha,safeGetCvmComposeFile:Ba,provisionCvmComposeFileUpdate:Ka,safeProvisionCvmComposeFileUpdate:Ga,commitCvmComposeFileUpdate:Ja,safeCommitCvmComposeFileUpdate:Za,updateCvmEnvs:ni,safeUpdateCvmEnvs:ri,updateDockerCompose:ci,safeUpdateDockerCompose:li,updatePreLaunchScript:fi,safeUpdatePreLaunchScript:gi,getCvmPreLaunchScript:vi,safeGetCvmPreLaunchScript:yi,startCvm:Ni,safeStartCvm:qi,stopCvm:Ui,safeStopCvm:zi,shutdownCvm:Hi,safeShutdownCvm:Bi,restartCvm:Ki,safeRestartCvm:Gi,deleteCvm:Ji,safeDeleteCvm:Zi,getCvmStats:nc,safeGetCvmStats:rc,getCvmNetwork:ic,safeGetCvmNetwork:cc,getCvmDockerCompose:pc,safeGetCvmDockerCompose:dc,getCvmContainersStats:hc,safeGetCvmContainersStats:bc,getCvmAttestation:kc,safeGetCvmAttestation:Sc,updateCvmResources:Ac,safeUpdateCvmResources:Ic,updateCvmVisibility:Rc,safeUpdateCvmVisibility:Tc,getAvailableOsImages:$c,safeGetAvailableOsImages:Lc,updateOsImage:qc,safeUpdateOsImage:Fc,getKmsInfo:wi,safeGetKmsInfo:Ci,getKmsList:Ei,safeGetKmsList:Ai,getAppEnvEncryptPubKey:Ri,safeGetAppEnvEncryptPubKey:Ti,nextAppIds:Oi,safeNextAppIds:$i,getCvmState:Dc,safeGetCvmState:Hc,listSshKeys:Hr,safeListSshKeys:Vc,importGithubProfileSshKeys:Gc,safeImportGithubProfileSshKeys:Wc,createSshKey:Jc,safeCreateSshKey:Zc,deleteSshKey:Yc,safeDeleteSshKey:el,syncGithubSshKeys:nl,safeSyncGithubSshKeys:rl,getOsImages:il,safeGetOsImages:cl,getKmsOnChainDetail:fl,safeGetKmsOnChainDetail:gl};return t.extend(n)}var mr=h.object({vm_uuid:h.string().nullable(),app_id:h.string(),name:h.string().default(""),status:h.string(),vcpu:h.number().int(),memory:h.number().int(),disk_size:h.number().int(),teepod_id:h.number().int(),teepod_name:h.string(),region_identifier:h.string().nullable().optional(),kms_type:h.string().nullable().optional(),instance_type:h.string().nullable().optional(),listed:h.boolean().nullable().optional(),base_image:h.string().nullable().optional(),kms_slug:h.string().nullable().optional(),kms_id:h.string().nullable().optional(),instance_id:h.string().nullable().optional(),machine_info:Qt.nullable().optional(),updated_at:h.string().nullable().optional()}),hl=h.object({display_name:h.string().nullable().optional(),avatar_url:h.string().nullable().optional(),description:h.string().nullable().optional(),custom_domain:h.string().nullable().optional()}),bl=h.object({id:h.string(),name:h.string(),app_id:h.string(),app_provision_type:h.string().nullable().optional(),app_icon_url:h.string().nullable().optional(),created_at:h.string(),kms_type:h.string(),profile:hl.nullable().optional(),current_cvm:mr.nullable().optional(),cvms:h.array(mr).default([]),cvm_count:h.number().int().default(0)}),vl=h.object({id:h.null().optional(),app_id:h.string(),name:h.null().optional(),app_provision_type:h.null().optional(),app_icon_url:h.null().optional(),created_at:h.null().optional(),kms_type:h.null().optional(),current_cvm:h.null().optional(),cvms:h.null().optional(),cvm_count:h.null().optional()}),yl=h.union([bl,vl]),Vp=h.object({dstack_apps:h.array(yl),page:h.number().int(),page_size:h.number().int(),total:h.number().int(),total_pages:h.number().int()}),_l=R.object({id:R.string(),name:R.string(),app_id:R.string(),app_provision_type:R.string().nullable().optional(),app_icon_url:R.string().nullable().optional(),created_at:R.string(),kms_type:R.string(),profile:R.object({display_name:R.string().nullable().optional(),avatar_url:R.string().nullable().optional(),description:R.string().nullable().optional(),custom_domain:R.string().nullable().optional()}).nullable().optional(),current_cvm:At.nullable().optional(),cvms:R.array(At).default([]),cvm_count:R.number().int().default(0)}),wl=R.object({id:R.null().optional(),app_id:R.string(),name:R.null().optional(),app_provision_type:R.null().optional(),app_icon_url:R.null().optional(),created_at:R.null().optional(),kms_type:R.null().optional(),current_cvm:R.null().optional(),cvms:R.null().optional(),cvm_count:R.null().optional()}),Cl=R.union([_l,wl]),Kp=R.object({dstack_apps:R.array(Cl),page:R.number().int(),page_size:R.number().int(),total:R.number().int(),total_pages:R.number().int()}),Vr=I.object({object_type:I.literal("cvm"),id:I.string().nullable().optional(),name:I.string().nullable().optional(),app_id:I.string().nullable().optional(),vm_uuid:I.string().nullable().optional()}),kl=I.object({revision_id:I.string(),app_id:I.string(),vm_uuid:I.string(),compose_hash:I.string(),created_at:I.string(),trace_id:I.string().nullable().optional(),operation_type:I.string(),triggered_by:en.nullable().optional(),cvm:Vr.nullable().optional(),workspace:tn.nullable().optional()}),Wp=I.object({revision_id:I.string(),app_id:I.string(),vm_uuid:I.string(),compose_hash:I.string(),compose_file:I.union([I.record(I.any()),I.string()]).nullable().optional(),encrypted_env:I.string(),user_config:I.string(),created_at:I.string(),trace_id:I.string().nullable().optional(),operation_type:I.string(),triggered_by:en.nullable().optional(),cvm:Vr.nullable().optional(),workspace:tn.nullable().optional()}),Xp=I.object({revisions:I.array(kl),total:I.number().int(),page:I.number().int(),page_size:I.number().int(),total_pages:I.number().int()});var Sl=V.object({chain:V.unknown().optional(),rpcUrl:V.string().optional(),kmsContractAddress:V.string(),privateKey:V.string().optional(),walletClient:V.unknown().optional(),publicClient:V.unknown().optional(),allowAnyDevice:V.boolean().optional().default(!1),deviceId:V.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),composeHash:V.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),disableUpgrades:V.boolean().optional().default(!1),skipPrerequisiteChecks:V.boolean().optional().default(!1),minBalance:V.string().optional()}).passthrough(),hd=Sl.refine(e=>{let t=!!e.privateKey,n=!!e.walletClient;return t!==n},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,n=!!e.walletClient,r=!!e.chain;return t&&n?!0:r},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),bd=V.object({appId:V.string(),appAuthAddress:V.string(),deployer:V.string(),transactionHash:V.string(),blockNumber:V.bigint().optional(),gasUsed:V.bigint().optional()}).passthrough();var Id=q.object({chain:q.unknown().optional(),rpcUrl:q.string().optional(),appId:q.string(),composeHash:q.string(),privateKey:q.string().optional(),walletClient:q.unknown().optional(),publicClient:q.unknown().optional(),skipPrerequisiteChecks:q.boolean().optional().default(!1),minBalance:q.string().optional(),timeout:q.number().optional().default(12e4),retryOptions:q.unknown().optional(),signal:q.unknown().optional(),onTransactionStateChange:q.function().optional(),onTransactionSubmitted:q.function().optional(),onTransactionConfirmed:q.function().optional()}).passthrough().refine(e=>{let t=!!e.privateKey,n=!!e.walletClient;return t!==n},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,n=!!e.walletClient,r=!!e.chain;return t&&n?!0:r},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),xd=q.object({composeHash:q.string(),appId:q.string(),transactionHash:q.string(),blockNumber:q.bigint().optional(),gasUsed:q.bigint().optional()}).passthrough();var qd=F.object({chain:F.unknown().optional(),rpcUrl:F.string().optional(),appAddress:F.string(),deviceId:F.string(),privateKey:F.string().optional(),walletClient:F.unknown().optional(),publicClient:F.unknown().optional(),skipPrerequisiteChecks:F.boolean().optional().default(!1),minBalance:F.string().optional(),timeout:F.number().optional().default(12e4),retryOptions:F.unknown().optional(),signal:F.unknown().optional(),onTransactionStateChange:F.function().optional(),onTransactionSubmitted:F.function().optional(),onTransactionConfirmed:F.function().optional()}).passthrough().refine(e=>!!e.privateKey!=!!e.walletClient,{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>e.publicClient&&e.walletClient?!0:!!e.chain,{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),Fd=F.object({appAddress:F.string(),deviceId:F.string(),transactionHash:F.string(),blockNumber:F.bigint().optional(),gasUsed:F.bigint().optional()}).passthrough();var Gd=U.object({chain:U.unknown().optional(),rpcUrl:U.string().optional(),appAddress:U.string(),deviceId:U.string(),privateKey:U.string().optional(),walletClient:U.unknown().optional(),publicClient:U.unknown().optional(),skipPrerequisiteChecks:U.boolean().optional().default(!1),minBalance:U.string().optional(),timeout:U.number().optional().default(12e4),retryOptions:U.unknown().optional(),signal:U.unknown().optional(),onTransactionStateChange:U.function().optional(),onTransactionSubmitted:U.function().optional(),onTransactionConfirmed:U.function().optional()}).passthrough().refine(e=>!!e.privateKey!=!!e.walletClient,{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>e.publicClient&&e.walletClient?!0:!!e.chain,{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),Wd=U.object({appAddress:U.string(),deviceId:U.string(),transactionHash:U.string(),blockNumber:U.bigint().optional(),gasUsed:U.bigint().optional()}).passthrough();var rm=z.object({chain:z.unknown().optional(),rpcUrl:z.string().optional(),appAddress:z.string(),allow:z.boolean(),privateKey:z.string().optional(),walletClient:z.unknown().optional(),publicClient:z.unknown().optional(),skipPrerequisiteChecks:z.boolean().optional().default(!1),minBalance:z.string().optional(),timeout:z.number().optional().default(12e4),retryOptions:z.unknown().optional(),signal:z.unknown().optional(),onTransactionStateChange:z.function().optional(),onTransactionSubmitted:z.function().optional(),onTransactionConfirmed:z.function().optional()}).passthrough().refine(e=>!!e.privateKey!=!!e.walletClient,{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>e.publicClient&&e.walletClient?!0:!!e.chain,{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),sm=z.object({appAddress:z.string(),allow:z.boolean(),transactionHash:z.string(),blockNumber:z.bigint().optional(),gasUsed:z.bigint().optional()}).passthrough();var lm=Ye.object({appAddress:Ye.string(),owner:Ye.string(),allowAnyDevice:Ye.boolean(),devices:Ye.array(Ye.string())});var El=Tr;var Al=et.object({items:et.array(El),total:et.number(),page:et.number(),page_size:et.number(),pages:et.number()}).passthrough(),{action:_m,safeAction:wm}=b(Al,async(e,t)=>{let{teamSlug:n,page:r,pageSize:s}=t,o=new URLSearchParams;r!==void 0&&o.append("page",r.toString()),s!==void 0&&o.append("page_size",s.toString());let a=o.toString()?`/workspaces/${n}/nodes?${o.toString()}`:`/workspaces/${n}/nodes`;return await e.get(a)}),st=_e.object({limit:_e.number(),remaining:_e.number()}).passthrough(),Il=_e.object({vm_slots:st,vcpu:st,memory_mb:st,disk_gb:st}).passthrough(),xl=_e.object({gpus:st,in_use:_e.number(),misconfigured:_e.number()}).passthrough(),Rl=_e.object({team_slug:_e.string(),tier:_e.string(),quotas:Il,reserved_nodes:st,reserved_gpu:xl,as_of:_e.string()}).passthrough(),{action:km,safeAction:Sm}=b(Rl,async(e,t)=>await e.get(`/workspaces/${t.teamSlug}/quotas`)),Pl=me(oe.extend({node_id:Tl.number().optional()})),{action:Am,safeAction:Im}=b(it,async(e,t)=>{let n=Pl.parse(t),{cvmId:r}=j.parse(n),{node_id:s}=n;return await e.post(`/cvms/${r}/replicas`,{node_id:s})}),Rm=tt.object({target:tt.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),interval:tt.number().min(5).max(30).default(5).describe("Polling interval in seconds"),timeout:tt.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),maxRetries:tt.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),retryDelay:tt.number().min(0).default(5e3).describe("Delay between retries in milliseconds")});var jl=me(oe.extend({docker_compose_file:A.string().optional(),pre_launch_script:A.string().optional(),allowed_envs:A.array(A.string()).optional(),public_logs:A.boolean().optional(),public_sysinfo:A.boolean().optional(),public_tcbinfo:A.boolean().optional(),encrypted_env:A.string().optional(),user_config:A.string().optional(),gpus:A.object({count:A.number(),product_name:A.string().optional()}).optional(),vcpu:A.number().optional(),memory:A.number().optional(),disk_size:A.number().optional(),image:A.string().optional(),shutdown_timeout:A.number().optional(),allow_force_stop:A.boolean().optional(),prepareOnly:A.boolean().optional()})),Ol=A.object({requiresOnChainHash:A.literal(!1),correlationId:A.string()}),$l=A.object({requiresOnChainHash:A.literal(!0),composeHash:A.string(),appId:A.string(),deviceId:A.string(),kmsInfo:Ce,commitToken:A.string().optional(),commitUrl:A.string().optional(),apiCommitUrl:A.string().optional(),onchainStatus:A.object({compose_hash_allowed:A.boolean(),device_id_allowed:A.boolean(),is_allowed:A.boolean()}).optional()}),Ll=A.discriminatedUnion("requiresOnChainHash",[Ol,$l]);function Nl(e){let t={};if(!e||typeof e!="object")return t;let r=e.details;if(!Array.isArray(r))return t;for(let s of r)s&&typeof s=="object"&&"field"in s&&"value"in s&&(t[s.field]=s.value);return t}var{action:Pm,safeAction:jm}=b(Ll,async(e,t)=>{let n=jl.parse(t),{cvmId:r}=j.parse(n),{id:s,uuid:o,app_id:a,instance_id:i,name:l,prepareOnly:m,...u}=n;try{return{requiresOnChainHash:!1,correlationId:(m?await e.patch(`/cvms/${r}`,u,{headers:{"X-Prepare-Only":"true"}}):await e.patch(`/cvms/${r}`,u)).correlation_id}}catch(f){if(f instanceof we&&f.status===465){let g=Nl(f.detail);return{requiresOnChainHash:!0,composeHash:g.compose_hash,appId:String(g.app_id),deviceId:g.device_id,kmsInfo:g.kms_info,commitToken:g.commit_token,commitUrl:g.commit_url,apiCommitUrl:g.api_commit_url,onchainStatus:g.onchain_status}}throw f}}),ql=me(oe.extend({composeHash:It.string().describe("Compose hash from patchCvm Phase 1 response"),transactionHash:It.string().describe("Transaction hash proving on-chain registration")})),Fl=It.object({correlationId:It.string()}),{action:$m,safeAction:Lm}=b(Fl,async(e,t)=>{let n=ql.parse(t),{cvmId:r}=j.parse(n);return{correlationId:(await e.patch(`/cvms/${r}`,{},{headers:{"X-Compose-Hash":n.composeHash,"X-Transaction-Hash":n.transactionHash}})).correlation_id}}),Ul=me(oe.extend({token:at.string().describe("One-time commit token from prepare-only flow"),composeHash:at.string().describe("Compose hash from Phase 1 response"),transactionHash:at.string().describe("Transaction hash proving on-chain registration")})),zl=at.object({correlationId:at.string(),status:at.string()}),{action:qm,safeAction:Fm}=b(zl,async(e,t)=>{let n=Ul.parse(t),{cvmId:r}=j.parse(n),s=await e.post(`/cvms/${r}/commit-update`,{token:n.token,compose_hash:n.composeHash,transaction_hash:n.transactionHash});return{correlationId:s.correlation_id,status:s.status}}),Mr=ve.object({cvm_id:ve.number().int(),identifier:ve.string(),status:ve.enum(["updated","unchanged","skipped","conflict","error"]),old_instance_id:ve.string().nullable().optional(),new_instance_id:ve.string().nullable().optional(),source:ve.enum(["teepod_state","teepod_info","gateway","none"]),verified_with_gateway:ve.boolean(),reason:ve.string().nullable().optional()}),Dl=me(oe.extend({overwrite:ve.boolean().optional(),dry_run:ve.boolean().optional()})),{action:zm,safeAction:Dm}=b(Mr,async(e,t)=>{let n=Dl.parse(t),{cvmId:r}=j.parse(n),{overwrite:s,dry_run:o}=n;return await e.patch(`/cvms/${r}/instance-id`,{overwrite:s,dry_run:o})}),Hl=W.object({cvm_ids:W.array(W.string()).optional(),running_only:W.boolean().optional(),missing_only:W.boolean().optional(),overwrite:W.boolean().optional(),limit:W.number().int().min(1).max(500).optional(),dry_run:W.boolean().optional()}).strict(),Bl=W.object({total:W.number().int(),scanned:W.number().int(),updated:W.number().int(),unchanged:W.number().int(),skipped:W.number().int(),conflicts:W.number().int(),errors:W.number().int(),items:W.array(Mr)}),{action:Bm,safeAction:Vm}=b(Bl,async(e,t)=>{let n=Hl.parse(t);return await e.patch("/cvms/instance-ids",n)}),Vl=te.object({vm_uuid:te.string(),status:te.string(),uptime:te.string().nullable().optional(),in_progress:te.boolean(),boot_progress:te.string().nullable().optional(),boot_error:te.string().nullable().optional(),operation_type:te.string().nullable().optional(),operation_started_at:te.string().nullable().optional(),correlation_id:te.string().nullable().optional()}),Ml=te.record(te.string(),Vl),Kl=te.object({vmUuids:te.array(te.string())}),{action:Km,safeAction:Gm}=b(Ml,async(e,t)=>{let{vmUuids:n}=Kl.parse(t);return await e.post("/status/batch",{vm_uuids:n})}),Gl=ft.object({hostname:ft.string().nullable().optional(),ssh_authorized_keys:ft.array(ft.string()).default([]),default_gateway_domain:ft.string().nullable().optional()}),Wl=j,{action:Xm,safeAction:Jm}=b(Gl,async(e,t)=>{let{cvmId:n}=Wl.parse(t);return await e.get(`/cvms/${n}/user_config`)}),rn=ne.object({cvm_id:ne.number().optional(),app_contract_address:ne.string(),compose_hash:ne.string(),device_id:ne.string(),compose_hash_allowed:ne.boolean(),allow_any_device:ne.boolean(),device_id_allowed:ne.boolean().nullable().optional(),is_allowed:ne.boolean(),error:ne.string().nullable().optional()}),Xl=ne.object({cvmId:ne.string().min(1),compose_hash:ne.string().optional(),node_id:ne.number().optional(),device_id:ne.string().optional()}),Jl=Xl,{action:Qm,safeAction:Ym}=b(rn,async(e,t)=>{let{cvmId:n,...r}=Jl.parse(t);return await e.post(`/cvms/${n}/is-allowed`,r)}),Zl=nt.object({appId:nt.string().min(1),compose_hash:nt.string(),node_id:nt.number().optional(),device_id:nt.string().optional(),chain_id:nt.number().optional()}),{action:tf,safeAction:nf}=b(rn,async(e,t)=>{let{appId:n,...r}=Zl.parse(t);return await e.post(`/apps/${n}/is-allowed`,r)}),Ql=he.object({is_onchain:he.boolean(),results:he.array(rn.extend({cvm_id:he.number()})).default([]),total:he.number().default(0),allowed_count:he.number().default(0),denied_count:he.number().default(0),error_count:he.number().default(0),skipped_cvm_ids:he.array(he.number()).default([])}),Yl=he.object({appId:he.string().min(1)}),{action:sf,safeAction:of}=b(Ql,async(e,t)=>{let{appId:n}=Yl.parse(t);return await e.post(`/apps/${n}/cvms/is-allowed`,{})}),cf=de.object({page:de.number().int().min(1).optional(),page_size:de.number().int().min(1).max(100).optional(),search:de.string().optional(),status:de.array(de.string()).optional(),listed:de.boolean().optional(),base_image:de.string().optional(),instance_type:de.string().optional(),kms_slug:de.string().optional(),kms_type:de.string().optional(),node:de.string().optional(),region:de.string().optional()}).strict();var uf=fr.object({appId:fr.string().min(1)}).strict();var df=gr.object({appId:gr.string().min(1)}).strict();var eu=Te.object({appId:Te.string().min(1),node_id:Te.number().optional(),docker_compose_file:Te.string().optional(),pre_launch_script:Te.string().optional(),encrypted_env:Te.string().optional(),compose_hash:Te.string().optional(),token:Te.string().optional(),transaction_hash:Te.string().optional()}).strict(),{action:ff,safeAction:gf}=b(it,async(e,t)=>{let n=eu.parse(t),{appId:r,...s}=n;return await e.post(`/apps/${r}/instances`,s)}),tu=se.object({device_id:se.string(),node_name:se.string().nullable(),cvm_ids:se.array(se.number()),allowed_onchain:se.boolean(),status:se.string()}),bf=se.object({is_onchain_kms:se.boolean(),allow_any_device:se.boolean().nullable().optional(),chain_id:se.number().nullable().optional(),app_contract_address:se.string().nullable().optional(),devices:se.array(tu).optional().default([])}),vf=se.object({appId:se.string().min(1)}).strict();var _f=kt.object({appId:kt.string().min(1),page:kt.number().int().min(1).optional(),page_size:kt.number().int().min(1).max(1e3).optional()}).strict();var Cf=St.object({appId:St.string().min(1),revisionId:St.string().min(1),rawComposeFile:St.boolean().optional()}).strict();var Sf=ee.object({statuses:ee.array(ee.string()),image_versions:ee.array(ee.string()),instance_types:ee.array(ee.string()),kms_slugs:ee.array(ee.string()),kms_types:ee.array(ee.string()),regions:ee.array(ee.string()),nodes:ee.array(ee.string())});var nu=T.object({contract_address:T.string(),chain_id:T.string().nullable(),version:T.string(),url:T.string(),gateway_app_id:T.string().nullable(),gateway_app_url:T.string(),kms_type:T.string()}),hr=T.object({app_id:T.string().optional(),instance_id:T.string().optional(),app_name:T.string().optional(),device_id:T.string().optional()}).passthrough().nullable(),ru=T.object({vm_uuid:T.string().nullable().optional(),name:T.string().optional(),instance_id:T.string().nullable().optional(),status:T.string().optional(),image_version:T.string().nullable().optional(),quote:T.string().nullable().optional(),ppid:T.string().optional(),device_id:T.string().optional(),tcb_info:Ur.nullable().optional(),app_certificates:T.array(Fr).nullable().optional(),compose_file:T.string().nullable().optional(),error:T.string().nullable().optional()}),su=T.object({app_id:T.string(),contract_address:T.string(),kms_info:nu,instances:T.array(ru),kms_guest_agent_info:hr,gateway_guest_agent_info:hr,qemu_version:T.string().nullable()}),ou=T.object({appId:T.string().min(1)}).strict(),{action:Af,safeAction:If}=b(su,async(e,t)=>{let{appId:n}=ou.parse(t);return await e.get(`/apps/${n}/attestations`)});var lu;function Kr(){return lu}import fu from"path";import sn from"fs-extra";import gu from"@iarna/toml";import{z as xe}from"zod";import ae from"chalk";import pu from"ora";var uu=!1;function ke(){return uu}function du(e,t){let n=e.split(/\s+/),r=[],s="";for(let o of n){let a=s.length===0?o:`${s} ${o}`;a.length<=t?s=a:(s.length>0&&r.push(s),s=o)}return s.length>0&&r.push(s),r}function mu(e,t){if(e.length<=t)return[e];let n=[],r=0;for(;r<e.length;)n.push(e.slice(r,r+t)),r+=t;return n}function Gr(e,t){let n=[];for(let r of e.split(`
21
- `)){if(r.length<=t){n.push(r);continue}if(r.indexOf(" ")===-1){n.push(...mu(r,t));continue}let s=du(r,t);n.push(...s)}if(n.length===0){let r=e.trim();n.push(r)}return n}var Ue={error:(e,...t)=>{ke()||(process.stderr.write(`${ae.red("\u2717")} ${ae.red(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
22
- `))},warn:(e,...t)=>{ke()||(process.stderr.write(`${ae.yellow("\u26A0")} ${ae.yellow(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
23
- `))},info:(e,...t)=>{ke()||(process.stderr.write(`${ae.blue("\u2139")} ${ae.blue(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
24
- `))},success:(e,...t)=>{ke()||(process.stderr.write(`${ae.green("\u2713")} ${ae.green(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
25
- `))},debug:(e,...t)=>{ke()||process.env.DEBUG&&(process.stderr.write(`${ae.gray("\u{1F50D}")} ${ae.gray(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
26
- `))},table:(e,t)=>{if(!ke()){if(e.length===0){console.log(ae.yellow("No data to display"));return}if(t){let n;typeof t[0]=="string"?n=t.map(a=>({key:a,header:a})):n=t;let r={};for(let a of n){let i=a.header||String(a.key);r[String(a.key)]=i.length}for(let a of e)for(let i of n){let l=String(typeof i.key=="string"&&!(i.key in a)?"":a[String(i.key)]??"");r[String(i.key)]=Math.max(r[String(i.key)],l.length)}let s=[];for(let a of n){let i=a.header||String(a.key);s.push(ae.bold(i.padEnd(r[String(a.key)])))}console.log(s.join(" "));let o=[];for(let a of n)o.push("-".repeat(r[String(a.key)]));console.log(o.join(" "));for(let a of e){let i=[];for(let l of n){let m=String(typeof l.key=="string"&&!(l.key in a)?"":a[String(l.key)]??"");i.push(m.padEnd(r[String(l.key)]))}console.log(i.join(" "))}}else{let n=e[0],r=Object.keys(n),s={};for(let i of r)s[i]=i.length;for(let i of e)for(let l of r){let m=String(i[l]??"");s[l]=Math.max(s[l],m.length)}let o=[];for(let i of r)o.push(ae.bold(i.padEnd(s[i])));console.log(o.join(" "));let a=[];for(let i of r)a.push("-".repeat(s[i]));console.log(a.join(" "));for(let i of e){let l=[];for(let m of r){let u=String(i[m]??"");l.push(u.padEnd(s[m]))}console.log(l.join(" "))}}}},keyValueTable:(e,t)=>{if(ke())return;let{borderStyle:n="single",keyColor:r=ae.blue,valueColor:s=ae.white,maxWidth:o=process.stdout.columns||80}=t||{},i={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",cross:"\u256C",leftT:"\u2560",rightT:"\u2563"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",cross:"\u254B",leftT:"\u2523",rightT:"\u252B"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",cross:"",leftT:"",rightT:""}}[n],l=0,m=0;for(let[S,x]of Object.entries(e)){l=Math.max(l,S.length);let N=String(x??"");m=Math.max(m,N.length)}let u=4,f=1,g=o-u-f;if(l+m>g){let S=l/(l+m);l=Math.floor(g*S),m=g-l}let y=l+m+u+f;n!=="none"&&console.log(i.topLeft+i.horizontal.repeat(y-2)+i.topRight);for(let[S,x]of Object.entries(e)){let N=S,Y=String(x??""),fe=Gr(N,l),Pe=Gr(Y,m),Se=Math.max(fe.length,Pe.length);for(;fe.length<Se;)fe.push("");for(;Pe.length<Se;)Pe.push("");for(let je=0;je<Se;je++){let Ve=fe[je].padEnd(l),gt=Pe[je].padEnd(m);console.log(n!=="none"?`${i.vertical} ${r(Ve)} ${i.vertical} ${s(gt)} ${i.vertical}`:`${r(Ve)} : ${s(gt)}`)}}n!=="none"&&console.log(i.bottomLeft+i.horizontal.repeat(y-2)+i.bottomRight)},break:()=>{ke()||process.stderr.write(`
27
- `)},startSpinner:e=>{if(ke())return{stop:()=>{}};let t=pu(e).start();return{stop:(n=!0,r)=>{r&&(t.text=r),n?t.succeed():t.fail()}}},logDetailedError(e,t){if(ke())return;let n=t?`[${t}] `:"",r=o=>o!==null&&typeof o=="object"&&"isRequestError"in o&&o.isRequestError===!0&&"status"in o&&"message"in o&&"data"in o,s=o=>o!==null&&typeof o=="object"&&"issues"in o&&Array.isArray(o.issues);if(r(e)){process.stderr.write(`${n}HTTP ${e.status}: ${e.message}
20
+ `,q,te,lr(E.status,E.statusText,E.headers,E._data))}u&&u({request:y,response:E,options:T})}})}get raw(){return this.fetchInstance}on(t,n){this.emitter.on(t,n)}off(t,n){this.emitter.off(t,n)}once(t,n){let r=s=>{n(s),this.emitter.off(t,r)};this.emitter.on(t,r)}async request(t,n){try{let r=n?.method||"GET";return await this.fetchInstance(t,{...n,method:r})}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}async requestFull(t,n){try{let r=n?.method||"GET",s=await this.fetchInstance.raw(t,{...n,method:r,ignoreResponseError:!0});return{status:s.status,statusText:s.statusText,headers:s.headers,data:s._data,ok:s.ok}}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}async get(t,n){try{return await this.fetchInstance(t,{...n,method:"GET"})}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}buildRequestOptions(t,n,r){let s={...r,method:t,body:n};if(n instanceof FormData){let o=s.headers;s.headers={...o,"Content-Type":""}}return s}async post(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("POST",n,r))}catch(s){let o=this.convertToRequestError(s);throw this.emitError(o)}}async put(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("PUT",n,r))}catch(s){let o=this.convertToRequestError(s);throw this.emitError(o)}}async patch(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("PATCH",n,r))}catch(s){let o=this.convertToRequestError(s);throw this.emitError(o)}}async delete(t,n){try{return await this.fetchInstance(t,{...n,method:"DELETE"})}catch(r){let s=this.convertToRequestError(r);throw this.emitError(s)}}convertToRequestError(t){return t&&typeof t=="object"&&"data"in t?Wt.fromFetchError(t):t instanceof Error?Wt.fromError(t):new Wt("Unknown error occurred",{detail:"Unknown error occurred"})}emitError(t){let n=jo(t);return this.emitter.emit("error",n),n}async safeRequest(t){try{return{success:!0,data:await t()}}catch(n){if(n instanceof Ce)return{success:!1,error:n};let r=this.convertToRequestError(n);return this.emitError(r),{success:!1,error:r}}}async safeGet(t,n){return this.safeRequest(()=>this.get(t,n))}async safePost(t,n,r){return this.safeRequest(()=>this.post(t,n,r))}async safePut(t,n,r){return this.safeRequest(()=>this.put(t,n,r))}async safePatch(t,n,r){return this.safeRequest(()=>this.patch(t,n,r))}async safeDelete(t,n){return this.safeRequest(()=>this.delete(t,n))}async safeRequestMethod(t,n){return this.safeRequest(()=>this.request(t,n))}async safeRequestFull(t,n){return this.safeRequest(()=>this.requestFull(t,n))}withVersion(t){return new kr({...this.config,version:t})}extend(t){let n=typeof t=="function"?t(this):t,r=Object.create(this);for(let[s,o]of Object.entries(n))typeof o=="function"&&(r[s]=(...a)=>o(this,...a));return r}};function Uo(e={}){return new Fo(e)}var zo=N.object({username:N.string(),email:N.string(),role:N.enum(["admin","user"]),avatar:N.string(),email_verified:N.boolean(),totp_enabled:N.boolean(),has_backup_codes:N.boolean(),flag_has_password:N.boolean()}).passthrough(),Do=N.object({id:N.string(),name:N.string(),slug:N.string().nullable(),tier:N.string(),role:N.string(),avatar:N.string().nullable().optional()}).passthrough(),Ho=N.object({balance:N.string().or(N.number()),granted_balance:N.string().or(N.number()),is_post_paid:N.boolean(),outstanding_amount:N.string().or(N.number()).nullable()}).passthrough(),Bo=N.object({user:zo,workspace:Do,credits:Ho}).passthrough(),Vo=qe.object({username:qe.string(),email:qe.string(),credits:qe.number(),granted_credits:qe.number(),avatar:qe.string(),team_name:qe.string(),team_tier:qe.string()}).passthrough();function Mo(e){return e==="2025-10-28"?Vo:Bo}async function Sr(e,t){let n=await e.get("/auth/me");return t?.schema===!1?n:(t?.schema||Mo(e.config.version)).parse(n)}async function Ko(e,t){try{return{success:!0,data:await Sr(e,t)}}catch(n){return n&&typeof n=="object"&&("status"in n||"issues"in n)?{success:!1,error:n}:{success:!1,error:{name:"Error",message:n instanceof Error?n.message:String(n)}}}}var Er={[dr.id]:dr,[pr.id]:pr,[ur.id]:ur},Go=Fe.object({id:Fe.string(),slug:Fe.string().nullable(),url:Fe.string(),version:Fe.string(),chain_id:Fe.number().nullable(),kms_contract_address:Fe.string().nullable().transform(e=>e),gateway_app_id:Fe.string().nullable().transform(e=>e)}).passthrough(),ke=Go.transform(e=>{if(e.chain_id!=null){let t=Er[e.chain_id];if(t)return{...e,chain:t}}return e});function Ar(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))throw new Error("Invalid schema: must be a Zod schema object, false, or undefined")}function Ir(e){if(e?.schema!==void 0&&e?.schema!==!1&&(typeof e.schema!="object"||e.schema===null||!("parse"in e.schema)||typeof e.schema.parse!="function"))return{success:!1,error:{name:"ZodError",message:"Invalid schema: must be a Zod schema object, false, or undefined",issues:[{code:"invalid_type",expected:"object",received:typeof e.schema,path:["schema"],message:"Invalid schema: must be a Zod schema object, false, or undefined"}]}}}function en(e,t){function n(a,i){return r(a,i)}async function r(a,i){Ar(i);let l=await t(a);return i?.schema===!1?l:(i?.schema||e).parse(l)}function s(a,i){return o(a,i)}async function o(a,i){let l=Ir(i);if(l)return l;let m=await(async()=>{try{return{success:!0,data:await t(a)}}catch(f){return f&&typeof f=="object"&&"status"in f?{success:!1,error:f}:f&&typeof f=="object"&&"issues"in f?{success:!1,error:f}:{success:!1,error:{name:"Error",message:f instanceof Error?f.message:String(f)}}}})();return m.success?i?.schema===!1?{success:!0,data:m.data}:(i?.schema||e).safeParse(m.data):m}return{action:n,safeAction:s}}function b(e,t){function n(a,...i){let[l,m]=i;return r(a,l,m)}async function r(a,i,l){Ar(l);let m=await t(a,i);return l?.schema===!1?m:(l?.schema||e).parse(m)}function s(a,...i){let[l,m]=i;return o(a,l,m)}async function o(a,i,l){let m=Ir(l);if(m)return m;let u=await(async()=>{try{return{success:!0,data:await t(a,i)}}catch(g){return g&&typeof g=="object"&&"status"in g?{success:!1,error:g}:g&&typeof g=="object"&&"issues"in g?{success:!1,error:g}:{success:!1,error:{name:"Error",message:g instanceof Error?g.message:String(g)}}}})();return u.success?l?.schema===!1?{success:!0,data:u.data}:(l?.schema||e).safeParse(u.data):u}return{action:n,safeAction:s}}var Wo=S.object({name:S.string(),is_dev:S.boolean(),version:S.union([S.tuple([S.number(),S.number(),S.number()]),S.tuple([S.number(),S.number(),S.number(),S.number()])]),os_image_hash:S.string().nullable().optional()}).passthrough(),Rr=S.object({teepod_id:S.number(),name:S.string(),listed:S.boolean(),resource_score:S.number(),remaining_vcpu:S.number(),remaining_memory:S.number(),remaining_cvm_slots:S.number(),images:S.array(Wo),support_onchain_kms:S.boolean().optional(),fmspc:S.string().nullable().optional(),device_id:S.string().nullable().optional(),region_identifier:S.string().nullable().optional(),default_kms:S.string().nullable().optional(),kms_list:S.array(S.string()).default([])}).passthrough(),xr=S.object({max_instances:S.number().nullable().optional(),max_vcpu:S.number().nullable().optional(),max_memory:S.number().nullable().optional(),max_disk:S.number().nullable().optional()}).passthrough(),Xo=S.object({tier:S.string(),capacity:xr,nodes:S.array(Rr),kms_list:S.array(ke)}).passthrough(),{action:Jo,safeAction:Zo}=en(Xo,async e=>await e.get("/teepods/available")),ct=C.union([C.number(),C.string()]),Qo=C.object({has_reserved_gpus:C.boolean(),reserved_gpu_count:C.number(),has_public_gpus:C.boolean(),public_gpu_count:C.number()}).passthrough(),Yo=C.object({id:ct,slug:C.string().nullable().optional(),url:C.string(),version:C.string().nullable().optional(),kms_type:C.string(),chain_id:C.number().nullable().optional(),kms_contract_id:ct.nullable().optional(),kms_contract_address:C.string().nullable().optional(),gateway_app_id:C.string().nullable().optional(),supported_os_images:C.array(C.string()).default([])}).passthrough(),ea=C.object({teepod_id:C.number(),kms_id:ct,kms_type:C.string(),kms_contract_id:ct.nullable().optional(),kms_contract_address:C.string().nullable().optional(),supported_os_images:C.array(C.string()).default([])}).passthrough(),ta=C.object({id:ct,teepod_id:C.number().nullable().optional(),kms_contract_id:ct,rpc_url:C.string().nullable().optional(),domain_suffix:C.string().nullable().optional(),enabled:C.boolean()}).passthrough(),na=C.object({id:C.string(),name:C.string(),vcpu:C.number(),memory_mb:C.number(),default_disk_size_gb:C.number(),requires_gpu:C.boolean(),requires_gpu_count:C.number(),family:C.string().nullable().optional(),display_order:C.number().nullable().optional()}).passthrough(),ra=C.object({tier:C.string(),capacity:xr,nodes:C.array(Rr),kms_nodes:C.array(Yo),node_kms_relations:C.array(ea),gateway_nodes:C.array(ta),instance_types:C.array(na),gpu_availability:Qo}).passthrough(),{action:sa,safeAction:oa}=en(ra,async e=>await e.get("/teepods/cvm-create-resources")),Tr=B.object({id:B.string(),name:B.string(),description:B.string(),vcpu:B.number(),memory_mb:B.number(),hourly_rate:B.string(),requires_gpu:B.boolean(),default_disk_size_gb:B.number().default(20),family:B.string().nullable()}).passthrough(),aa=B.object({name:B.string(),items:B.array(Tr),total:B.number()}).strict(),ia=B.object({result:B.array(aa)}).strict(),ca=B.object({items:B.array(Tr),total:B.number(),family:B.string()}).strict(),la=B.object({family:B.string()}).strict(),{action:ua,safeAction:pa}=b(ia,async e=>await e.get("/instance-types")),{action:da,safeAction:ma}=b(ca,async(e,t)=>{let n=la.parse(t);return await e.get(`/instance-types/${n.family}`)}),Pr=ee.object({id:ee.string(),name:ee.string(),slug:ee.string().nullable(),avatar_url:ee.string().nullable().optional(),tier:ee.string(),role:ee.string(),is_default:ee.boolean(),created_at:ee.string(),confidential_models_enabled:ee.boolean().optional()}).passthrough(),fa=ee.object({has_more:ee.boolean(),next_cursor:ee.string().nullable(),total:ee.number().nullable()}).passthrough(),ga=ee.object({data:ee.array(Pr),pagination:fa}).passthrough(),{action:ha,safeAction:ba}=b(ga,async(e,t)=>{let n=new URLSearchParams;t?.cursor&&n.append("cursor",t.cursor),t?.limit&&n.append("limit",t.limit.toString());let r=n.toString()?`/workspaces?${n.toString()}`:"/workspaces";return await e.get(r)}),{action:va,safeAction:ya}=b(Pr,async(e,t)=>await e.get(`/workspaces/${t}`)),_a=p.object({id:p.string(),name:p.string(),status:p.string(),uptime:p.string(),app_url:p.string().nullable(),app_id:p.string(),instance_id:p.string().nullable(),configuration:p.any().optional(),exited_at:p.string().nullable(),boot_progress:p.string().nullable(),boot_error:p.string().nullable(),shutdown_progress:p.string().nullable(),image_version:p.string().nullable()}),wa=p.object({id:p.number(),username:p.string()}),jr=p.object({id:p.number(),name:p.string(),region_identifier:p.string().nullable().optional()}),tn=p.object({vcpu:p.number(),memory:p.number(),disk_size:p.number(),gpu_count:p.number().default(0)}),nn=p.object({app:p.string(),instance:p.string()}),Ca=p.object({hosted:_a,name:p.string(),managed_user:wa.nullable(),node:jr.nullable(),listed:p.boolean().default(!1),status:p.string(),in_progress:p.boolean().default(!1),dapp_dashboard_url:p.string().nullable(),syslog_endpoint:p.string().nullable(),allow_upgrade:p.boolean().default(!1),project_id:p.string().nullable(),project_type:p.string().nullable(),billing_period:p.string().nullable(),kms_info:ke.nullable(),vcpu:p.number().nullable(),memory:p.number().nullable(),disk_size:p.number().nullable(),gateway_domain:p.string().nullable(),public_urls:p.array(nn),machine_info:tn.nullable().optional(),updated_at:p.string().nullable().optional()}),Or=p.object({id:p.number(),name:p.string(),status:p.string(),in_progress:p.boolean().optional().default(!1),teepod_id:p.number().nullable(),teepod:jr.optional().nullable(),app_id:p.string(),vm_uuid:p.string().nullable(),instance_id:p.string().nullable(),vcpu:p.number(),memory:p.number(),disk_size:p.number(),base_image:p.string().nullable(),encrypted_env_pubkey:p.string().nullable(),listed:p.boolean().optional().default(!1),project_id:p.string().optional().nullable(),project_type:p.string().optional().nullable(),instance_type:p.string().optional().nullable(),public_sysinfo:p.boolean().optional().default(!1),public_logs:p.boolean().optional().default(!1),dapp_dashboard_url:p.string().optional().nullable(),syslog_endpoint:p.string().optional().nullable(),kms_info:ke.optional().nullable(),contract_address:p.string().optional().nullable(),deployer_address:p.string().optional().nullable(),scheduled_delete_at:p.string().optional().nullable(),public_urls:p.array(nn).optional().default([]),gateway_domain:p.string().optional().nullable(),machine_info:tn.optional().nullable(),updated_at:p.string().optional().nullable()}),ka=p.object({items:p.array(Ca),total:p.number(),page:p.number(),page_size:p.number(),pages:p.number()}),Sa=d.enum(["skip","hourly","monthly"]),Ea=d.enum(["phala","ethereum","base","legacy"]),rn=d.object({object_type:d.literal("user"),id:d.string().nullable().optional(),username:d.string().nullable().optional(),avatar_url:d.string().nullable().optional()}),sn=d.object({object_type:d.literal("workspace"),id:d.string(),name:d.string(),slug:d.string().nullable().optional(),avatar_url:d.string().nullable().optional()}),Aa=d.object({instance_type:d.string().nullable().optional(),vcpu:d.number().int().nullable().optional(),memory_in_gb:d.number().nullable().optional(),disk_in_gb:d.number().int().nullable().optional(),gpus:d.number().int().nullable().optional(),compute_billing_price:d.string().nullable().optional(),billing_period:Sa.nullable().optional()}),Ia=d.object({name:d.string().nullable().optional(),version:d.string().nullable().optional(),is_dev:d.boolean().nullable().optional(),os_image_hash:d.string().nullable().optional()}),Ra=d.object({chain_id:d.number().int().nullable().optional(),dstack_kms_address:d.string().nullable().optional(),dstack_app_address:d.string().nullable().optional(),deployer_address:d.string().nullable().optional(),rpc_endpoint:d.string().nullable().optional(),encrypted_env_pubkey:d.string().nullable().optional()}),xa=Ra.transform(e=>{if(e.chain_id!=null){let t=Er[e.chain_id];if(t)return{...e,chain:t}}return e}),Ta=d.object({target:d.string().nullable().optional(),started_at:d.string().nullable().optional(),correlation_id:d.string().nullable().optional()}),Pa=d.object({base_domain:d.string().nullable().optional(),cname:d.string().nullable().optional()}),$r=d.object({object_type:d.literal("node"),id:d.number().int().nullable().optional(),name:d.string().nullable().optional(),region:d.string().nullable().optional(),device_id:d.string().nullable().optional(),ppid:d.string().nullable().optional(),status:d.string().nullable().optional(),version:d.string().nullable().optional()});var Rt=d.object({id:d.string(),name:d.string(),app_id:d.string().nullable().optional(),vm_uuid:d.string().nullable().optional(),instance_id:d.string().nullable().optional(),resource:Aa,node_info:$r.nullable().optional(),os:Ia.nullable().optional(),kms_type:Ea.nullable().optional(),kms_info:xa.nullable().optional(),status:d.string(),progress:Ta.nullable().optional(),compose_hash:d.string().nullable().optional(),gateway:Pa,services:d.array(d.record(d.any())).optional().default([]),endpoints:d.array(nn).nullable().optional(),public_logs:d.boolean().optional(),public_sysinfo:d.boolean().optional(),public_tcbinfo:d.boolean().optional(),gateway_enabled:d.boolean().optional(),secure_time:d.boolean().optional(),listed:d.boolean().optional().default(!1),storage_fs:d.string().optional(),workspace:sn.nullable().optional(),creator:rn.nullable().optional()}),ja=Rt.extend({compose_file:d.union([d.record(d.any()),d.string()]).nullable().optional()}),Oa=d.object({items:d.array(Rt),total:d.number(),page:d.number(),page_size:d.number(),pages:d.number()});function Lr(e){return typeof e!="string"||e.length<5||e.length>63?!1:/^[a-zA-Z](?!.*--)([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(e)}var ae=Qe.object({id:Qe.string().optional(),uuid:Qe.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,"Invalid UUID format").optional(),app_id:Qe.string().optional(),instance_id:Qe.string().optional(),name:Qe.string().refine(Lr,{message:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"}).optional()}),fe=e=>e.refine(t=>{let n=t;return!!(n.id||n.uuid||n.app_id||n.instance_id||n.name)},{message:"One of id, uuid, app_id, instance_id, or name must be provided"}),$a=fe(ae),O=$a.transform(e=>{let t;if(e.id)t=e.id;else if(e.uuid)t=e.uuid;else if(e.app_id)t=e.app_id;else if(e.instance_id)t=e.instance_id;else{if(e.name)return{cvmId:e.name};throw new Error("No valid identifier provided")}let n=/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,r=/^[0-9a-f]{40}$/i,s;return n.test(t)?s=t.replace(/-/g,""):r.test(t)?s=`app_${t}`:s=t,{cvmId:s}}),La=O;function Na(e){return e==="2025-10-28"?Or:ja}async function Nr(e,t){let{cvmId:n}=La.parse(t),r=await e.get(`/cvms/${n}`);return Na(e.config.version).parse(r)}async function Pt(e,t){try{return{success:!0,data:await Nr(e,t)}}catch(n){return n&&typeof n=="object"&&("status"in n||"issues"in n)?{success:!1,error:n}:{success:!1,error:{name:"Error",message:n instanceof Error?n.message:String(n)}}}}var qa=Ye.object({page:Ye.number().int().min(1).optional(),page_size:Ye.number().int().min(1).optional(),node_id:Ye.number().int().min(1).optional(),teepod_id:Ye.number().int().min(1).optional(),user_id:Ye.string().optional()}).strict();function Fa(e){return e==="2025-10-28"?ka:Oa}async function qr(e,t){let n=qa.parse(t??{}),r=await e.get("/cvms/paginated",{params:n});return Fa(e.config.version).parse(r)}async function on(e,t){try{return{success:!0,data:await qr(e,t)}}catch(n){return n&&typeof n=="object"&&("status"in n||"issues"in n)?{success:!1,error:n}:{success:!1,error:{name:"Error",message:n instanceof Error?n.message:String(n)}}}}var mr=200*1024;function Fr(e,t,n){let r=new TextEncoder,s=e?r.encode(e).byteLength:0,o=t?r.encode(t).byteLength:0,a=s+o;if(a>mr){let i=mr/1024,l=Math.ceil(a/1024);n.addIssue({code:W.ZodIssueCode.custom,message:`Combined size of docker_compose_file and pre_launch_script must not exceed ${i}KB (current: ${l}KB)`})}}var Ur=W.object({allowed_envs:W.array(W.string()).optional(),docker_compose_file:W.string(),features:W.array(W.string()).optional(),name:W.string().optional(),manifest_version:W.number().optional(),kms_enabled:W.boolean().optional(),public_logs:W.boolean().optional(),public_sysinfo:W.boolean().optional(),tproxy_enabled:W.boolean().optional(),storage_fs:W.enum(["ext4","zfs"]).optional(),pre_launch_script:W.string().optional(),env_pubkey:W.string().optional(),salt:W.string().optional().nullable()}).passthrough().superRefine((e,t)=>{Fr(e.docker_compose_file,e.pre_launch_script,t)}),Ua=_.object({app_id:_.string().nullable().optional(),app_env_encrypt_pubkey:_.string().nullable().optional(),compose_hash:_.string(),kms_info:ke.nullable().optional(),fmspc:_.string().nullable().optional(),device_id:_.string().nullable().optional(),os_image_hash:_.string().nullable().optional(),instance_type:_.string().nullable().optional(),teepod_id:_.number().nullable().optional(),node_id:_.number().nullable().optional(),kms_id:_.string().nullable().optional()}).passthrough().transform(e=>{if("teepod_id"in e&&e.teepod_id!==void 0){let{teepod_id:t,...n}=e;return{...n,node_id:t}}return e}),Xt="Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens",za=_.object({node_id:_.number().optional(),teepod_id:_.number().optional(),region:_.string().optional(),name:_.string().min(5,Xt).max(63,Xt).refine(e=>Lr(e),Xt),instance_type:_.string().optional(),image:_.string().optional(),vcpu:_.number().optional(),memory:_.number().optional(),disk_size:_.number().optional(),compose_file:_.object({allowed_envs:_.array(_.string()).optional(),pre_launch_script:_.string().optional(),docker_compose_file:_.string().optional(),name:_.string().optional().default(""),kms_enabled:_.boolean().optional(),public_logs:_.boolean().optional(),public_sysinfo:_.boolean().optional(),gateway_enabled:_.boolean().optional(),tproxy_enabled:_.boolean().optional(),storage_fs:_.enum(["ext4","zfs"]).optional()}).passthrough().superRefine((e,t)=>{Fr(e.docker_compose_file,e.pre_launch_script,t)}),listed:_.boolean().optional(),kms_id:_.string().optional(),kms:_.enum(["PHALA","ETHEREUM","BASE"]).optional(),kms_contract:_.string().optional(),kms_contract_id:_.union([_.string(),_.number()]).optional(),key_provider_mode:_.enum(["kms","local"]).optional(),skip_gateway:_.boolean().optional(),env_keys:_.array(_.string()).optional(),nonce:_.number().optional(),app_id:_.string().optional()}).passthrough().transform(e=>!e.instance_type&&!e.vcpu&&!e.memory?{...e,instance_type:"tdx.small"}:e);function Da(e){if(!e.compose_file)return e;let t={...e.compose_file};return typeof t.gateway_enabled=="boolean"&&typeof t.tproxy_enabled=="boolean"?delete t.tproxy_enabled:typeof t.tproxy_enabled=="boolean"&&typeof t.gateway_enabled>"u"&&(t.gateway_enabled=t.tproxy_enabled,delete t.tproxy_enabled,(typeof window<"u"?window.console:globalThis.console)&&console.warn("[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration.")),{...e,compose_file:t}}var{action:Ha,safeAction:Ba}=b(Ua,async(e,t)=>{let n=za.parse(t),r=Da(n),s={...r};return typeof r.node_id=="number"?(s={...r,teepod_id:r.node_id},delete s.node_id):typeof r.teepod_id=="number"&&console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead."),await e.post("/cvms/provision",s)}),Va=I.object({id:I.number(),name:I.string(),status:I.string(),teepod_id:I.number(),teepod:I.object({id:I.number(),name:I.string()}).nullable(),user_id:I.number().nullable(),app_id:I.string().nullable(),vm_uuid:I.string().nullable(),instance_id:I.string().nullable(),app_url:I.string().nullable().default(null),base_image:I.string().nullable(),vcpu:I.number(),memory:I.number(),disk_size:I.number(),manifest_version:I.number().nullable().default(2),version:I.string().nullable().default("1.0.0"),runner:I.string().nullable().default("docker-compose"),docker_compose_file:I.string().nullable(),features:I.array(I.string()).nullable().default(["kms","tproxy-net"]),created_at:I.string(),encrypted_env_pubkey:I.string().nullable().optional(),app_auth_contract_address:I.string().nullable().optional(),deployer_address:I.string().nullable().optional()}).passthrough(),Cp=I.object({encrypted_env:I.string().optional().nullable(),app_id:I.string(),compose_hash:I.string(),kms_id:I.string().optional(),contract_address:I.string().optional(),deployer_address:I.string().optional(),env_keys:I.array(I.string()).optional().nullable()}).passthrough(),{action:Ma,safeAction:Ka}=b(Va,async(e,t)=>await e.post("/cvms",t));function Qt(e){return e==null?e:Array.isArray(e)?e.map(Qt):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,n)=>{let r=e[n];return t[n]=Qt(r),t},{}):e}function zr(e){let t={...e};return t.runner==="bash"&&"docker_compose_file"in t?delete t.docker_compose_file:t.runner==="docker-compose"&&"bash_script"in t&&delete t.bash_script,"pre_launch_script"in t&&!t.pre_launch_script&&delete t.pre_launch_script,t}function Dr(e){let t=Qt(e),n=JSON.stringify(t,null,4);return n=n.replace(/": /g,'":'),n}function Wa(e){let t=zr(e),n=Dr(t);return Ga.createHash("sha256").update(n,"utf8").digest("hex")}function Xa(e){let t=e;return{...e,getHash:()=>Wa(t),toString:()=>Dr(zr(t))}}var Ja=Ur.transform(e=>Xa(e)),Za=O,{action:Qa,safeAction:Ya}=b(Ja,async(e,t)=>{let{cvmId:n}=Za.parse(t);return await e.get(`/cvms/${n}/compose_file`)}),ei=_e.object({id:_e.string().optional(),uuid:_e.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:_e.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:_e.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),app_compose:Ur,update_env_vars:_e.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,request:{...e.app_compose,update_env_vars:e.update_env_vars},_raw:e})),ti=_e.object({app_id:_e.string().nullable(),device_id:_e.string().nullable(),compose_hash:_e.string(),kms_info:ke.nullable().optional(),compose_hash_registered:_e.boolean().optional().default(!1)}).passthrough(),{action:ni,safeAction:ri}=b(ti,async(e,t)=>{let n=ei.parse(t);return await e.post(`/cvms/${n.cvmId}/compose_file/provision`,n.request)}),si=ve.object({id:ve.string().optional(),uuid:ve.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),app_id:ve.string().refine(e=>!e.startsWith("app_")&&e.length===40,"app_id should be 40 characters without prefix").transform(e=>e.startsWith("app_")?e:`app_${e}`).optional(),instance_id:ve.string().refine(e=>!e.startsWith("instance_")&&e.length===40,"instance_id should be 40 characters without prefix").transform(e=>e.startsWith("instance_")?e:`instance_${e}`).optional(),compose_hash:ve.string().min(1,"Compose hash is required"),encrypted_env:ve.string().optional(),env_keys:ve.array(ve.string()).optional(),update_env_vars:ve.boolean().optional().nullable()}).refine(e=>!!(e.id||e.uuid||e.app_id||e.instance_id),"One of id, uuid, app_id, or instance_id must be provided").transform(e=>({cvmId:e.id||e.uuid||e.app_id||e.instance_id,compose_hash:e.compose_hash,encrypted_env:e.encrypted_env,env_keys:e.env_keys,update_env_vars:e.update_env_vars??void 0,_raw:e})),oi=ve.any().transform(()=>{}),{action:ai,safeAction:ii}=b(oi,async(e,t)=>{let n=si.parse(t);return await e.patch(`/cvms/${n.cvmId}/compose_file`,{compose_hash:n.compose_hash,encrypted_env:n.encrypted_env,env_keys:n.env_keys,update_env_vars:n.update_env_vars})}),ci=fe(ae.extend({encrypted_env:Z.string().describe("Encrypted environment variables (hex string)"),env_keys:Z.array(Z.string()).optional().describe("List of allowed environment variable keys"),compose_hash:Z.string().optional().describe("Compose hash for verification (Phase 2, required when env_keys changes)"),transaction_hash:Z.string().optional().describe("On-chain transaction hash for verification (Phase 2, required when env_keys changes)")})).transform(e=>{let{cvmId:t}=O.parse(e);return{cvmId:t,request:{encrypted_env:e.encrypted_env,env_keys:e.env_keys,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),li=Z.object({status:Z.literal("in_progress"),message:Z.string(),correlation_id:Z.string(),allowed_envs_changed:Z.boolean()}),ui=Z.object({status:Z.literal("precondition_required"),message:Z.string(),compose_hash:Z.string(),app_id:Z.string(),device_id:Z.string(),kms_info:ke}),pi=Z.union([li,ui]),{action:di,safeAction:mi}=b(pi,async(e,t)=>{let n=ci.parse(t);try{return await e.patch(`/cvms/${n.cvmId}/envs`,n.request)}catch(r){if(r instanceof Ce&&r.status===465){let s=r.detail;if(s&&typeof s=="object"){let o=s,a=o.details;if(a&&Array.isArray(a)){let i=new Map(a.map(g=>[g.field,g.value])),l=i.get("compose_hash"),m=i.get("app_id"),u=i.get("device_id"),f=i.get("kms_info");if(l&&m)return{status:"precondition_required",message:o.message||"Compose hash verification required",compose_hash:l,app_id:m,device_id:u||"",kms_info:f}}}}throw r}}),fi=fe(ae.extend({docker_compose_file:pe.string().describe("Docker Compose YAML content"),compose_hash:pe.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:pe.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=O.parse(e);return{cvmId:t,request:{docker_compose_file:e.docker_compose_file,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),gi=pe.object({status:pe.literal("in_progress"),message:pe.string(),correlation_id:pe.string()}),hi=pe.object({status:pe.literal("precondition_required"),message:pe.string(),compose_hash:pe.string(),app_id:pe.string(),device_id:pe.string(),kms_info:ke}),bi=pe.union([gi,hi]),{action:vi,safeAction:yi}=b(bi,async(e,t)=>{let n=fi.parse(t),r={"Content-Type":"text/yaml"};n.request.compose_hash&&(r["X-Compose-Hash"]=n.request.compose_hash),n.request.transaction_hash&&(r["X-Transaction-Hash"]=n.request.transaction_hash);try{return await e.patch(`/cvms/${n.cvmId}/docker-compose`,n.request.docker_compose_file,{headers:r})}catch(s){if(s instanceof Ce&&s.status===465){let o=s.detail;if(o&&typeof o=="object"){let a=o,i=a.details;if(i&&Array.isArray(i)){let l=new Map(i.map(y=>[y.field,y.value])),m=l.get("compose_hash"),u=l.get("app_id"),f=l.get("device_id"),g=l.get("kms_info");if(m&&u)return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:m,app_id:u,device_id:f||"",kms_info:g}}}}throw s}}),_i=fe(ae.extend({pre_launch_script:de.string().describe("Pre-launch script content (shell script)"),compose_hash:de.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:de.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=O.parse(e);return{cvmId:t,request:{pre_launch_script:e.pre_launch_script,compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),wi=de.object({status:de.literal("in_progress"),message:de.string(),correlation_id:de.string()}),Ci=de.object({status:de.literal("precondition_required"),message:de.string(),compose_hash:de.string(),app_id:de.string(),device_id:de.string(),kms_info:ke}),ki=de.union([wi,Ci]),{action:Si,safeAction:Ei}=b(ki,async(e,t)=>{let n=_i.parse(t),r={"Content-Type":"text/plain"};n.request.compose_hash&&(r["X-Compose-Hash"]=n.request.compose_hash),n.request.transaction_hash&&(r["X-Transaction-Hash"]=n.request.transaction_hash);try{return await e.patch(`/cvms/${n.cvmId}/pre-launch-script`,n.request.pre_launch_script,{headers:r})}catch(s){if(s instanceof Ce&&s.status===465){let o=s.detail;if(o&&typeof o=="object"){let a=o,i=a.details;if(i&&Array.isArray(i)){let l=new Map(i.map(y=>[y.field,y.value])),m=l.get("compose_hash"),u=l.get("app_id"),f=l.get("device_id"),g=l.get("kms_info");if(m&&u)return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:m,app_id:u,device_id:f||"",kms_info:g}}}}throw s}}),Ii=O,{action:Ri,safeAction:xi}=b(Ai.string(),async(e,t)=>{let{cvmId:n}=Ii.parse(t);return await e.get(`/cvms/${n}/pre-launch-script`)}),Ti=fr.object({kms_id:fr.string().min(1,"KMS ID is required")}),{action:Pi,safeAction:ji}=b(ke,async(e,t)=>{let n=Ti.parse(t);return await e.get(`/kms/${n.kms_id}`)}),Oi=xe.object({page:xe.number().int().min(1).optional(),page_size:xe.number().int().min(1).optional(),is_onchain:xe.boolean().optional()}).strict(),$i=xe.object({items:xe.array(ke),total:xe.number(),page:xe.number(),page_size:xe.number(),pages:xe.number()}).strict(),{action:Li,safeAction:Ni}=b($i,async(e,t)=>{let n=Oi.parse(t??{});return await e.get("/kms",{params:n})}),qi=at.object({kms:at.string().min(1,"KMS ID or slug is required"),app_id:at.string().refine(e=>e.length===40||e.startsWith("0x")&&e.length===42,"App ID must be exactly 40 characters or 42 characters with 0x prefix")}).strict(),Fi=at.object({public_key:at.string(),signature:at.string()}).strict(),{action:Ui,safeAction:zi}=b(Fi,async(e,t)=>{let n=qi.parse(t);return await e.get(`/kms/${n.kms}/pubkey/${n.app_id}`)}),Di=Ve.object({counts:Ve.number().int().min(1).max(20).optional().default(1)}).strict(),Hi=Ve.object({app_ids:Ve.array(Ve.object({app_id:Ve.string(),nonce:Ve.number().int().min(0)}))}).strict(),{action:Bi,safeAction:Vi}=b(Hi,async(e,t)=>{let n=Di.parse(t??{}),r=new URLSearchParams;return r.append("counts",n.counts.toString()),await e.get(`/kms/phala/next_app_id?${r.toString()}`)}),lt=$.object({id:$.number(),name:$.string(),status:$.string(),teepod_id:$.number(),teepod:$.object({id:$.number(),name:$.string(),region_identifier:$.string().nullable().optional()}).optional().nullable(),user_id:$.number().optional().nullable(),app_id:$.string(),vm_uuid:$.string().nullable(),instance_id:$.string().nullable(),app_url:$.string().optional().nullable(),base_image:$.string().optional().nullable(),vcpu:$.number(),memory:$.number(),disk_size:$.number(),manifest_version:$.number().optional().nullable(),version:$.string().optional().nullable(),runner:$.string().optional().nullable(),docker_compose_file:$.string().optional().nullable(),features:$.array($.string()).optional().nullable(),created_at:$.string(),encrypted_env_pubkey:$.string().nullable()}),Mi=O,{action:Ki,safeAction:Gi}=b(lt,async(e,t)=>{let{cvmId:n}=Mi.parse(t);return await e.post(`/cvms/${n}/start`)}),Wi=O,{action:Xi,safeAction:Ji}=b(lt,async(e,t)=>{let{cvmId:n}=Wi.parse(t);return await e.post(`/cvms/${n}/stop`)}),Zi=O,{action:Qi,safeAction:Yi}=b(lt,async(e,t)=>{let{cvmId:n}=Zi.parse(t);return await e.post(`/cvms/${n}/shutdown`)}),tc=fe(ae.extend({force:ec.boolean().optional()})),{action:nc,safeAction:rc}=b(lt,async(e,t)=>{let n=tc.parse(t),{cvmId:r}=O.parse(n),{force:s=!1}=n;return await e.post(`/cvms/${r}/restart`,{force:s})}),oc=O,{action:ac,safeAction:ic}=b(sc.void(),async(e,t)=>{let{cvmId:n}=oc.parse(t);await e.delete(`/cvms/${n}`)}),cc=j.object({name:j.string(),mount_point:j.string(),total_size:j.number(),free_size:j.number()}),lc=j.object({os_name:j.string(),os_version:j.string(),kernel_version:j.string(),cpu_model:j.string(),num_cpus:j.number(),total_memory:j.number(),available_memory:j.number(),used_memory:j.number(),free_memory:j.number(),total_swap:j.number(),used_swap:j.number(),free_swap:j.number(),uptime:j.number(),loadavg_one:j.number(),loadavg_five:j.number(),loadavg_fifteen:j.number(),disks:j.array(cc)}),uc=j.object({is_online:j.boolean(),is_public:j.boolean().default(!1),error:j.string().nullable(),sysinfo:lc.nullable(),status:j.string().nullable(),in_progress:j.boolean().default(!1),boot_progress:j.string().nullable(),boot_error:j.string().nullable()}),pc=O,{action:dc,safeAction:mc}=b(uc,async(e,t)=>{let{cvmId:n}=pc.parse(t);return await e.get(`/cvms/${n}/stats`)}),fc=Re.object({app:Re.string(),instance:Re.string()}),gc=Re.object({is_online:Re.boolean(),is_public:Re.boolean().default(!0),error:Re.string().nullable(),internal_ip:Re.string().nullable(),latest_handshake:Re.string().nullable(),public_urls:Re.array(fc).nullable()}),hc=O,{action:bc,safeAction:vc}=b(gc,async(e,t)=>{let{cvmId:n}=hc.parse(t);return await e.get(`/cvms/${n}/network`)}),_c=O,{action:wc,safeAction:Cc}=b(yc.string(),async(e,t)=>{let{cvmId:n}=_c.parse(t);return await e.get(`/cvms/${n}/docker-compose.yml`)}),kc=H.object({id:H.string(),names:H.array(H.string()),image:H.string(),image_id:H.string(),command:H.string().nullable().optional(),created:H.number(),state:H.string(),status:H.string(),log_endpoint:H.string().nullable()}),Sc=H.object({is_online:H.boolean(),is_public:H.boolean().default(!0),error:H.string().nullable(),docker_compose_file:H.string().nullable(),manifest_version:H.number().nullable(),version:H.string().nullable(),runner:H.string().nullable(),features:H.array(H.string()).nullable(),containers:H.array(kc).nullable()}),Ec=O,{action:Ac,safeAction:Ic}=b(Sc,async(e,t)=>{let{cvmId:n}=Ec.parse(t);return await e.get(`/cvms/${n}/composition`)}),Rc=w.object({common_name:w.string().nullable(),organization:w.string().nullable(),country:w.string().nullable(),state:w.string().nullable(),locality:w.string().nullable()}),xc=w.object({common_name:w.string().nullable(),organization:w.string().nullable(),country:w.string().nullable()}),Hr=w.object({subject:Rc,issuer:xc,serial_number:w.string(),not_before:w.string(),not_after:w.string(),version:w.string(),fingerprint:w.string(),signature_algorithm:w.string(),sans:w.array(w.string()).nullable(),is_ca:w.boolean(),position_in_chain:w.number().nullable(),quote:w.string().nullable(),app_id:w.string().nullable().optional(),cert_usage:w.string().nullable().optional()}),Tc=w.object({imr:w.number(),event_type:w.number(),digest:w.string(),event:w.string(),event_payload:w.string()}),Br=w.object({mrtd:w.string(),rootfs_hash:w.string().nullable().optional(),rtmr0:w.string(),rtmr1:w.string(),rtmr2:w.string(),rtmr3:w.string(),event_log:w.array(Tc),app_compose:w.string()}),Pc=w.object({name:w.string().nullable(),is_online:w.boolean(),is_public:w.boolean().default(!0),error:w.string().nullable(),app_certificates:w.array(Hr).nullable(),tcb_info:Br.nullable(),compose_file:w.string().nullable()}),jc=O,{action:Oc,safeAction:$c}=b(Pc,async(e,t)=>{let{cvmId:n}=jc.parse(t);return await e.get(`/cvms/${n}/attestation`)}),Lc=fe(ae.extend({vcpu:st.number().optional(),memory:st.number().optional(),disk_size:st.number().optional(),instance_type:st.string().optional(),allow_restart:st.boolean().optional()})),{action:Nc,safeAction:qc}=b(st.void(),async(e,t)=>{let n=Lc.parse(t),{cvmId:r}=O.parse(n),{...s}=n;await e.patch(`/cvms/${r}/resources`,s)}),Fc=fe(ae.extend({public_sysinfo:Jt.boolean(),public_logs:Jt.boolean(),public_tcbinfo:Jt.boolean().optional()})),{action:Uc,safeAction:zc}=b(Or,async(e,t)=>{let n=Fc.parse(t),{cvmId:r}=O.parse(n),{public_sysinfo:s,public_logs:o,public_tcbinfo:a}=n;return await e.patch(`/cvms/${r}/visibility`,{public_sysinfo:s,public_logs:o,public_tcbinfo:a})}),gr=Y.object({name:Y.string(),os_image_hash:Y.string().nullable(),is_current:Y.boolean()}),Dc=Y.object({version:Y.union([Y.tuple([Y.number(),Y.number(),Y.number(),Y.number()]),Y.tuple([Y.number(),Y.number(),Y.number()])]),prod:gr.nullable(),dev:gr.nullable()}),Hc=Y.array(Dc),Bc=O,{action:Vc,safeAction:Mc}=b(Hc,async(e,t)=>{let{cvmId:n}=Bc.parse(t);return await e.get(`/cvms/${n}/available-os-images`)}),Kc=fe(ae.extend({os_image_name:Vr.string().min(1,"OS image name is required")})),{action:Gc,safeAction:Wc}=b(Vr.void(),async(e,t)=>{let n=Kc.parse(t),{cvmId:r}=O.parse(n),{os_image_name:s}=n;await e.patch(`/cvms/${r}/os-image`,{os_image_name:s})}),Xc=Ae.object({id:Ae.string().optional(),instance_id:Ae.string().optional(),name:Ae.string(),status:Ae.string(),uptime:Ae.string().optional(),exited_at:Ae.string().optional(),boot_progress:Ae.string().optional(),boot_error:Ae.string().optional(),shutdown_progress:Ae.string().optional()}),Jc=O,{action:Zc,safeAction:Qc}=b(Xc,async(e,t)=>{let{cvmId:n}=Jc.parse(t);return await e.get(`/cvms/${n}/state`)}),Mr=ue.object({id:ue.string(),user_id:ue.string(),name:ue.string(),public_key:ue.string(),fingerprint:ue.string(),key_type:ue.string(),source:ue.string(),key_metadata:ue.record(ue.unknown()).nullable().optional(),last_synced_at:ue.string().nullable().optional(),created_at:ue.string(),updated_at:ue.string()}),Yc=ue.array(Mr);async function Kr(e){let t=await e.get("/user/ssh-keys");return Yc.parse(t)}async function el(e){try{return{success:!0,data:await Kr(e)}}catch(t){return t&&typeof t=="object"&&("status"in t||"issues"in t)?{success:!1,error:t}:{success:!1,error:{name:"Error",message:t instanceof Error?t.message:String(t)}}}}var tl=Ue.object({github_username:Ue.string().min(1)}),nl=Ue.object({github_username:Ue.string(),keys_added:Ue.number().int(),keys_skipped:Ue.number().int(),errors:Ue.array(Ue.string()).default([])}),{action:rl,safeAction:sl}=b(nl,async(e,t)=>{let{github_username:n}=tl.parse(t);return await e.post("/user/ssh-keys/github-profile",{github_username:n})}),ol=Zt.object({name:Zt.string().min(1),public_key:Zt.string().min(1)}),{action:al,safeAction:il}=b(Mr,async(e,t)=>{let{name:n,public_key:r}=ol.parse(t);return await e.post("/user/ssh-keys",{name:n,public_key:r})}),cl=Yt.object({keyId:Yt.string().min(1)}),{action:ll,safeAction:ul}=b(Yt.void(),async(e,t)=>{let{keyId:n}=cl.parse(t);await e.delete(`/user/ssh-keys/${n}`)}),pl=Be.object({synced_count:Be.number().int(),keys_added:Be.number().int(),keys_updated:Be.number().int(),keys_removed:Be.number().int(),errors:Be.array(Be.string()).default([])}),{action:dl,safeAction:ml}=en(pl,async e=>await e.post("/user/ssh-keys/github-sync",{})),fl=J.object({name:J.string(),slug:J.string(),version:J.string(),os_image_hash:J.string().nullable(),is_dev:J.boolean(),requires_gpu:J.boolean()}).passthrough(),gl=J.object({page:J.number().int().min(1).optional(),page_size:J.number().int().min(1).optional(),is_dev:J.boolean().optional()}).strict(),hl=J.object({items:J.array(fl),total:J.number(),page:J.number(),page_size:J.number(),pages:J.number()}).passthrough(),{action:bl,safeAction:vl}=b(hl,async(e,t)=>{let n=gl.parse(t??{});return await e.get("/os-images",{params:n})}),yl=V.object({device_id:V.string(),node_name:V.string().nullable().optional(),on_chain_allowed:V.boolean().nullable()}).passthrough(),_l=V.object({name:V.string(),version:V.string(),os_image_hash:V.string().nullable(),on_chain_allowed:V.boolean().nullable()}).passthrough(),wl=V.object({contract_address:V.string(),chain_id:V.number(),chain_name:V.string(),devices:V.array(yl),os_images:V.array(_l)}).passthrough(),Cl=V.object({chain_name:V.string(),chain_id:V.number(),contracts:V.array(wl)}).passthrough(),kl=V.object({chain:V.string()}).strict(),{action:Sl,safeAction:El}=b(Cl,async(e,t)=>{let{chain:n}=kl.parse(t);return await e.get(`/kms/on-chain/${n}`)});function Gr(e={}){let t=Uo(e),n={getCurrentUser:Sr,safeGetCurrentUser:Ko,getAvailableNodes:Jo,safeGetAvailableNodes:Zo,getCvmCreateResources:sa,safeGetCvmCreateResources:oa,listAllInstanceTypeFamilies:ua,safeListAllInstanceTypeFamilies:pa,listFamilyInstanceTypes:da,safeListFamilyInstanceTypes:ma,listWorkspaces:ha,safeListWorkspaces:ba,getWorkspace:va,safeGetWorkspace:ya,getCvmInfo:Nr,safeGetCvmInfo:Pt,getCvmList:qr,safeGetCvmList:on,provisionCvm:Ha,safeProvisionCvm:Ba,commitCvmProvision:Ma,safeCommitCvmProvision:Ka,getCvmComposeFile:Qa,safeGetCvmComposeFile:Ya,provisionCvmComposeFileUpdate:ni,safeProvisionCvmComposeFileUpdate:ri,commitCvmComposeFileUpdate:ai,safeCommitCvmComposeFileUpdate:ii,updateCvmEnvs:di,safeUpdateCvmEnvs:mi,updateDockerCompose:vi,safeUpdateDockerCompose:yi,updatePreLaunchScript:Si,safeUpdatePreLaunchScript:Ei,getCvmPreLaunchScript:Ri,safeGetCvmPreLaunchScript:xi,startCvm:Ki,safeStartCvm:Gi,stopCvm:Xi,safeStopCvm:Ji,shutdownCvm:Qi,safeShutdownCvm:Yi,restartCvm:nc,safeRestartCvm:rc,deleteCvm:ac,safeDeleteCvm:ic,getCvmStats:dc,safeGetCvmStats:mc,getCvmNetwork:bc,safeGetCvmNetwork:vc,getCvmDockerCompose:wc,safeGetCvmDockerCompose:Cc,getCvmContainersStats:Ac,safeGetCvmContainersStats:Ic,getCvmAttestation:Oc,safeGetCvmAttestation:$c,updateCvmResources:Nc,safeUpdateCvmResources:qc,updateCvmVisibility:Uc,safeUpdateCvmVisibility:zc,getAvailableOsImages:Vc,safeGetAvailableOsImages:Mc,updateOsImage:Gc,safeUpdateOsImage:Wc,getKmsInfo:Pi,safeGetKmsInfo:ji,getKmsList:Li,safeGetKmsList:Ni,getAppEnvEncryptPubKey:Ui,safeGetAppEnvEncryptPubKey:zi,nextAppIds:Bi,safeNextAppIds:Vi,getCvmState:Zc,safeGetCvmState:Qc,listSshKeys:Kr,safeListSshKeys:el,importGithubProfileSshKeys:rl,safeImportGithubProfileSshKeys:sl,createSshKey:al,safeCreateSshKey:il,deleteSshKey:ll,safeDeleteSshKey:ul,syncGithubSshKeys:dl,safeSyncGithubSshKeys:ml,getOsImages:bl,safeGetOsImages:vl,getKmsOnChainDetail:Sl,safeGetKmsOnChainDetail:El};return t.extend(n)}var hr=h.object({vm_uuid:h.string().nullable(),app_id:h.string(),name:h.string().default(""),status:h.string(),vcpu:h.number().int(),memory:h.number().int(),disk_size:h.number().int(),teepod_id:h.number().int(),teepod_name:h.string(),region_identifier:h.string().nullable().optional(),kms_type:h.string().nullable().optional(),instance_type:h.string().nullable().optional(),listed:h.boolean().nullable().optional(),base_image:h.string().nullable().optional(),kms_slug:h.string().nullable().optional(),kms_id:h.string().nullable().optional(),instance_id:h.string().nullable().optional(),machine_info:tn.nullable().optional(),updated_at:h.string().nullable().optional()}),Al=h.object({display_name:h.string().nullable().optional(),avatar_url:h.string().nullable().optional(),description:h.string().nullable().optional(),custom_domain:h.string().nullable().optional()}),Il=h.object({id:h.string(),name:h.string(),app_id:h.string(),app_provision_type:h.string().nullable().optional(),app_icon_url:h.string().nullable().optional(),created_at:h.string(),kms_type:h.string(),profile:Al.nullable().optional(),current_cvm:hr.nullable().optional(),cvms:h.array(hr).default([]),cvm_count:h.number().int().default(0)}),Rl=h.object({id:h.null().optional(),app_id:h.string(),name:h.null().optional(),app_provision_type:h.null().optional(),app_icon_url:h.null().optional(),created_at:h.null().optional(),kms_type:h.null().optional(),current_cvm:h.null().optional(),cvms:h.null().optional(),cvm_count:h.null().optional()}),xl=h.union([Il,Rl]),td=h.object({dstack_apps:h.array(xl),page:h.number().int(),page_size:h.number().int(),total:h.number().int(),total_pages:h.number().int()}),Tl=P.object({id:P.string(),name:P.string(),app_id:P.string(),app_provision_type:P.string().nullable().optional(),app_icon_url:P.string().nullable().optional(),created_at:P.string(),kms_type:P.string(),profile:P.object({display_name:P.string().nullable().optional(),avatar_url:P.string().nullable().optional(),description:P.string().nullable().optional(),custom_domain:P.string().nullable().optional()}).nullable().optional(),current_cvm:Rt.nullable().optional(),cvms:P.array(Rt).default([]),cvm_count:P.number().int().default(0)}),Pl=P.object({id:P.null().optional(),app_id:P.string(),name:P.null().optional(),app_provision_type:P.null().optional(),app_icon_url:P.null().optional(),created_at:P.null().optional(),kms_type:P.null().optional(),current_cvm:P.null().optional(),cvms:P.null().optional(),cvm_count:P.null().optional()}),jl=P.union([Tl,Pl]),rd=P.object({dstack_apps:P.array(jl),page:P.number().int(),page_size:P.number().int(),total:P.number().int(),total_pages:P.number().int()}),Wr=x.object({object_type:x.literal("cvm"),id:x.string().nullable().optional(),name:x.string().nullable().optional(),app_id:x.string().nullable().optional(),vm_uuid:x.string().nullable().optional()}),Ol=x.object({revision_id:x.string(),app_id:x.string(),vm_uuid:x.string(),compose_hash:x.string(),created_at:x.string(),trace_id:x.string().nullable().optional(),operation_type:x.string(),triggered_by:rn.nullable().optional(),cvm:Wr.nullable().optional(),workspace:sn.nullable().optional()}),od=x.object({revision_id:x.string(),app_id:x.string(),vm_uuid:x.string(),compose_hash:x.string(),compose_file:x.union([x.record(x.any()),x.string()]).nullable().optional(),encrypted_env:x.string(),user_config:x.string(),created_at:x.string(),trace_id:x.string().nullable().optional(),operation_type:x.string(),triggered_by:rn.nullable().optional(),cvm:Wr.nullable().optional(),workspace:sn.nullable().optional()}),ad=x.object({revisions:x.array(Ol),total:x.number().int(),page:x.number().int(),page_size:x.number().int(),total_pages:x.number().int()});var $l=M.object({chain:M.unknown().optional(),rpcUrl:M.string().optional(),kmsContractAddress:M.string(),privateKey:M.string().optional(),walletClient:M.unknown().optional(),publicClient:M.unknown().optional(),allowAnyDevice:M.boolean().optional().default(!1),deviceId:M.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),composeHash:M.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),disableUpgrades:M.boolean().optional().default(!1),skipPrerequisiteChecks:M.boolean().optional().default(!1),minBalance:M.string().optional()}).passthrough(),Id=$l.refine(e=>{let t=!!e.privateKey,n=!!e.walletClient;return t!==n},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,n=!!e.walletClient,r=!!e.chain;return t&&n?!0:r},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),Rd=M.object({appId:M.string(),appAuthAddress:M.string(),deployer:M.string(),transactionHash:M.string(),blockNumber:M.bigint().optional(),gasUsed:M.bigint().optional()}).passthrough();var Fd=F.object({chain:F.unknown().optional(),rpcUrl:F.string().optional(),appId:F.string(),composeHash:F.string(),privateKey:F.string().optional(),walletClient:F.unknown().optional(),publicClient:F.unknown().optional(),skipPrerequisiteChecks:F.boolean().optional().default(!1),minBalance:F.string().optional(),timeout:F.number().optional().default(12e4),retryOptions:F.unknown().optional(),signal:F.unknown().optional(),onTransactionStateChange:F.function().optional(),onTransactionSubmitted:F.function().optional(),onTransactionConfirmed:F.function().optional()}).passthrough().refine(e=>{let t=!!e.privateKey,n=!!e.walletClient;return t!==n},{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>{let t=!!e.publicClient,n=!!e.walletClient,r=!!e.chain;return t&&n?!0:r},{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),Ud=F.object({composeHash:F.string(),appId:F.string(),transactionHash:F.string(),blockNumber:F.bigint().optional(),gasUsed:F.bigint().optional()}).passthrough();var Wd=U.object({chain:U.unknown().optional(),rpcUrl:U.string().optional(),appAddress:U.string(),deviceId:U.string(),privateKey:U.string().optional(),walletClient:U.unknown().optional(),publicClient:U.unknown().optional(),skipPrerequisiteChecks:U.boolean().optional().default(!1),minBalance:U.string().optional(),timeout:U.number().optional().default(12e4),retryOptions:U.unknown().optional(),signal:U.unknown().optional(),onTransactionStateChange:U.function().optional(),onTransactionSubmitted:U.function().optional(),onTransactionConfirmed:U.function().optional()}).passthrough().refine(e=>!!e.privateKey!=!!e.walletClient,{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>e.publicClient&&e.walletClient?!0:!!e.chain,{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),Xd=U.object({appAddress:U.string(),deviceId:U.string(),transactionHash:U.string(),blockNumber:U.bigint().optional(),gasUsed:U.bigint().optional()}).passthrough();var sm=z.object({chain:z.unknown().optional(),rpcUrl:z.string().optional(),appAddress:z.string(),deviceId:z.string(),privateKey:z.string().optional(),walletClient:z.unknown().optional(),publicClient:z.unknown().optional(),skipPrerequisiteChecks:z.boolean().optional().default(!1),minBalance:z.string().optional(),timeout:z.number().optional().default(12e4),retryOptions:z.unknown().optional(),signal:z.unknown().optional(),onTransactionStateChange:z.function().optional(),onTransactionSubmitted:z.function().optional(),onTransactionConfirmed:z.function().optional()}).passthrough().refine(e=>!!e.privateKey!=!!e.walletClient,{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>e.publicClient&&e.walletClient?!0:!!e.chain,{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),om=z.object({appAddress:z.string(),deviceId:z.string(),transactionHash:z.string(),blockNumber:z.bigint().optional(),gasUsed:z.bigint().optional()}).passthrough();var fm=D.object({chain:D.unknown().optional(),rpcUrl:D.string().optional(),appAddress:D.string(),allow:D.boolean(),privateKey:D.string().optional(),walletClient:D.unknown().optional(),publicClient:D.unknown().optional(),skipPrerequisiteChecks:D.boolean().optional().default(!1),minBalance:D.string().optional(),timeout:D.number().optional().default(12e4),retryOptions:D.unknown().optional(),signal:D.unknown().optional(),onTransactionStateChange:D.function().optional(),onTransactionSubmitted:D.function().optional(),onTransactionConfirmed:D.function().optional()}).passthrough().refine(e=>!!e.privateKey!=!!e.walletClient,{message:"Either 'privateKey' or 'walletClient' must be provided, but not both",path:["privateKey","walletClient"]}).refine(e=>e.publicClient&&e.walletClient?!0:!!e.chain,{message:"Chain is required when publicClient or walletClient is not provided",path:["chain"]}),gm=D.object({appAddress:D.string(),allow:D.boolean(),transactionHash:D.string(),blockNumber:D.bigint().optional(),gasUsed:D.bigint().optional()}).passthrough();var _m=et.object({appAddress:et.string(),owner:et.string(),allowAnyDevice:et.boolean(),devices:et.array(et.string())});var Ll=$r;var Nl=tt.object({items:tt.array(Ll),total:tt.number(),page:tt.number(),page_size:tt.number(),pages:tt.number()}).passthrough(),{action:Pm,safeAction:jm}=b(Nl,async(e,t)=>{let{teamSlug:n,page:r,pageSize:s}=t,o=new URLSearchParams;r!==void 0&&o.append("page",r.toString()),s!==void 0&&o.append("page_size",s.toString());let a=o.toString()?`/workspaces/${n}/nodes?${o.toString()}`:`/workspaces/${n}/nodes`;return await e.get(a)}),ot=we.object({limit:we.number(),remaining:we.number()}).passthrough(),ql=we.object({vm_slots:ot,vcpu:ot,memory_mb:ot,disk_gb:ot}).passthrough(),Fl=we.object({gpus:ot,in_use:we.number(),misconfigured:we.number()}).passthrough(),Ul=we.object({team_slug:we.string(),tier:we.string(),quotas:ql,reserved_nodes:ot,reserved_gpu:Fl,as_of:we.string()}).passthrough(),{action:$m,safeAction:Lm}=b(Ul,async(e,t)=>await e.get(`/workspaces/${t.teamSlug}/quotas`)),Dl=fe(ae.extend({node_id:zl.number().optional()})),{action:qm,safeAction:Fm}=b(lt,async(e,t)=>{let n=Dl.parse(t),{cvmId:r}=O.parse(n),{node_id:s}=n;return await e.post(`/cvms/${r}/replicas`,{node_id:s})}),zm=nt.object({target:nt.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),interval:nt.number().min(5).max(30).default(5).describe("Polling interval in seconds"),timeout:nt.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),maxRetries:nt.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),retryDelay:nt.number().min(0).default(5e3).describe("Delay between retries in milliseconds")});var Hl=fe(ae.extend({docker_compose_file:R.string().optional(),pre_launch_script:R.string().optional(),allowed_envs:R.array(R.string()).optional(),public_logs:R.boolean().optional(),public_sysinfo:R.boolean().optional(),public_tcbinfo:R.boolean().optional(),encrypted_env:R.string().optional(),user_config:R.string().optional(),gpus:R.object({count:R.number(),product_name:R.string().optional()}).optional(),vcpu:R.number().optional(),memory:R.number().optional(),disk_size:R.number().optional(),image:R.string().optional(),shutdown_timeout:R.number().optional(),allow_force_stop:R.boolean().optional(),prepareOnly:R.boolean().optional()})),Bl=R.object({requiresOnChainHash:R.literal(!1),correlationId:R.string()}),Vl=R.object({requiresOnChainHash:R.literal(!0),composeHash:R.string(),appId:R.string(),deviceId:R.string(),kmsInfo:ke,commitToken:R.string().optional(),commitUrl:R.string().optional(),apiCommitUrl:R.string().optional(),onchainStatus:R.object({compose_hash_allowed:R.boolean(),device_id_allowed:R.boolean(),is_allowed:R.boolean()}).optional()}),Ml=R.discriminatedUnion("requiresOnChainHash",[Bl,Vl]);function Kl(e){let t={};if(!e||typeof e!="object")return t;let r=e.details;if(!Array.isArray(r))return t;for(let s of r)s&&typeof s=="object"&&"field"in s&&"value"in s&&(t[s.field]=s.value);return t}var{action:Hm,safeAction:Bm}=b(Ml,async(e,t)=>{let n=Hl.parse(t),{cvmId:r}=O.parse(n),{id:s,uuid:o,app_id:a,instance_id:i,name:l,prepareOnly:m,...u}=n;try{return{requiresOnChainHash:!1,correlationId:(m?await e.patch(`/cvms/${r}`,u,{headers:{"X-Prepare-Only":"true"}}):await e.patch(`/cvms/${r}`,u)).correlation_id}}catch(f){if(f instanceof Ce&&f.status===465){let g=Kl(f.detail);return{requiresOnChainHash:!0,composeHash:g.compose_hash,appId:String(g.app_id),deviceId:g.device_id,kmsInfo:g.kms_info,commitToken:g.commit_token,commitUrl:g.commit_url,apiCommitUrl:g.api_commit_url,onchainStatus:g.onchain_status}}throw f}}),Gl=fe(ae.extend({composeHash:xt.string().describe("Compose hash from patchCvm Phase 1 response"),transactionHash:xt.string().describe("Transaction hash proving on-chain registration")})),Wl=xt.object({correlationId:xt.string()}),{action:Mm,safeAction:Km}=b(Wl,async(e,t)=>{let n=Gl.parse(t),{cvmId:r}=O.parse(n);return{correlationId:(await e.patch(`/cvms/${r}`,{},{headers:{"X-Compose-Hash":n.composeHash,"X-Transaction-Hash":n.transactionHash}})).correlation_id}}),Xl=fe(ae.extend({token:it.string().describe("One-time commit token from prepare-only flow"),composeHash:it.string().describe("Compose hash from Phase 1 response"),transactionHash:it.string().describe("Transaction hash proving on-chain registration")})),Jl=it.object({correlationId:it.string(),status:it.string()}),{action:Wm,safeAction:Xm}=b(Jl,async(e,t)=>{let n=Xl.parse(t),{cvmId:r}=O.parse(n),s=await e.post(`/cvms/${r}/commit-update`,{token:n.token,compose_hash:n.composeHash,transaction_hash:n.transactionHash});return{correlationId:s.correlation_id,status:s.status}}),Xr=ye.object({cvm_id:ye.number().int(),identifier:ye.string(),status:ye.enum(["updated","unchanged","skipped","conflict","error"]),old_instance_id:ye.string().nullable().optional(),new_instance_id:ye.string().nullable().optional(),source:ye.enum(["teepod_state","teepod_info","gateway","none"]),verified_with_gateway:ye.boolean(),reason:ye.string().nullable().optional()}),Zl=fe(ae.extend({overwrite:ye.boolean().optional(),dry_run:ye.boolean().optional()})),{action:Zm,safeAction:Qm}=b(Xr,async(e,t)=>{let n=Zl.parse(t),{cvmId:r}=O.parse(n),{overwrite:s,dry_run:o}=n;return await e.patch(`/cvms/${r}/instance-id`,{overwrite:s,dry_run:o})}),Ql=X.object({cvm_ids:X.array(X.string()).optional(),running_only:X.boolean().optional(),missing_only:X.boolean().optional(),overwrite:X.boolean().optional(),limit:X.number().int().min(1).max(500).optional(),dry_run:X.boolean().optional()}).strict(),Yl=X.object({total:X.number().int(),scanned:X.number().int(),updated:X.number().int(),unchanged:X.number().int(),skipped:X.number().int(),conflicts:X.number().int(),errors:X.number().int(),items:X.array(Xr)}),{action:ef,safeAction:tf}=b(Yl,async(e,t)=>{let n=Ql.parse(t);return await e.patch("/cvms/instance-ids",n)}),eu=re.object({vm_uuid:re.string(),status:re.string(),uptime:re.string().nullable().optional(),in_progress:re.boolean(),boot_progress:re.string().nullable().optional(),boot_error:re.string().nullable().optional(),operation_type:re.string().nullable().optional(),operation_started_at:re.string().nullable().optional(),correlation_id:re.string().nullable().optional()}),tu=re.record(re.string(),eu),nu=re.object({vmUuids:re.array(re.string())}),{action:rf,safeAction:sf}=b(tu,async(e,t)=>{let{vmUuids:n}=nu.parse(t);return await e.post("/status/batch",{vm_uuids:n})}),ru=ht.object({hostname:ht.string().nullable().optional(),ssh_authorized_keys:ht.array(ht.string()).default([]),default_gateway_domain:ht.string().nullable().optional()}),su=O,{action:af,safeAction:cf}=b(ru,async(e,t)=>{let{cvmId:n}=su.parse(t);return await e.get(`/cvms/${n}/user_config`)}),an=se.object({cvm_id:se.number().optional(),app_contract_address:se.string(),compose_hash:se.string(),device_id:se.string(),compose_hash_allowed:se.boolean(),allow_any_device:se.boolean(),device_id_allowed:se.boolean().nullable().optional(),is_allowed:se.boolean(),error:se.string().nullable().optional()}),ou=se.object({cvmId:se.string().min(1),compose_hash:se.string().optional(),node_id:se.number().optional(),device_id:se.string().optional()}),au=ou,{action:uf,safeAction:pf}=b(an,async(e,t)=>{let{cvmId:n,...r}=au.parse(t);return await e.post(`/cvms/${n}/is-allowed`,r)}),iu=rt.object({appId:rt.string().min(1),compose_hash:rt.string(),node_id:rt.number().optional(),device_id:rt.string().optional(),chain_id:rt.number().optional()}),{action:mf,safeAction:ff}=b(an,async(e,t)=>{let{appId:n,...r}=iu.parse(t);return await e.post(`/apps/${n}/is-allowed`,r)}),cu=be.object({is_onchain:be.boolean(),results:be.array(an.extend({cvm_id:be.number()})).default([]),total:be.number().default(0),allowed_count:be.number().default(0),denied_count:be.number().default(0),error_count:be.number().default(0),skipped_cvm_ids:be.array(be.number()).default([])}),lu=be.object({appId:be.string().min(1)}),{action:hf,safeAction:bf}=b(cu,async(e,t)=>{let{appId:n}=lu.parse(t);return await e.post(`/apps/${n}/cvms/is-allowed`,{})}),yf=me.object({page:me.number().int().min(1).optional(),page_size:me.number().int().min(1).max(100).optional(),search:me.string().optional(),status:me.array(me.string()).optional(),listed:me.boolean().optional(),base_image:me.string().optional(),instance_type:me.string().optional(),kms_slug:me.string().optional(),kms_type:me.string().optional(),node:me.string().optional(),region:me.string().optional()}).strict();var wf=br.object({appId:br.string().min(1)}).strict();var kf=vr.object({appId:vr.string().min(1)}).strict();var uu=Ie.object({appId:Ie.string().min(1),name:Ie.string().optional(),node_id:Ie.number().optional(),docker_compose_file:Ie.string().optional(),pre_launch_script:Ie.string().optional(),encrypted_env:Ie.string().optional(),compose_hash:Ie.string().optional(),token:Ie.string().optional(),transaction_hash:Ie.string().optional()}).strict(),{action:Ef,safeAction:Af}=b(lt,async(e,t)=>{let n=uu.parse(t),{appId:r,...s}=n;return await e.post(`/apps/${r}/instances`,s)}),pu=oe.object({device_id:oe.string(),node_name:oe.string().nullable(),cvm_ids:oe.array(oe.number()),allowed_onchain:oe.boolean(),status:oe.string()}),Rf=oe.object({is_onchain_kms:oe.boolean(),allow_any_device:oe.boolean().nullable().optional(),chain_id:oe.number().nullable().optional(),app_contract_address:oe.string().nullable().optional(),devices:oe.array(pu).optional().default([])}),xf=oe.object({appId:oe.string().min(1)}).strict();var Pf=Et.object({appId:Et.string().min(1),page:Et.number().int().min(1).optional(),page_size:Et.number().int().min(1).max(1e3).optional()}).strict();var Of=At.object({appId:At.string().min(1),revisionId:At.string().min(1),rawComposeFile:At.boolean().optional()}).strict();var Lf=ne.object({statuses:ne.array(ne.string()),image_versions:ne.array(ne.string()),instance_types:ne.array(ne.string()),kms_slugs:ne.array(ne.string()),kms_types:ne.array(ne.string()),regions:ne.array(ne.string()),nodes:ne.array(ne.string())});var du=A.object({contract_address:A.string(),chain_id:A.string().nullable(),version:A.string(),url:A.string(),gateway_app_id:A.string().nullable(),gateway_app_url:A.string(),kms_type:A.string()}),yr=A.object({app_id:A.string().optional(),instance_id:A.string().optional(),app_name:A.string().optional(),device_id:A.string().optional()}).passthrough().nullable(),mu=A.object({vm_uuid:A.string().nullable().optional(),name:A.string().optional(),instance_id:A.string().nullable().optional(),status:A.string().optional(),image_version:A.string().nullable().optional(),quote:A.string().nullable().optional(),ppid:A.string().optional(),ppid_sha256:A.string().nullable().optional(),device_id:A.string().optional(),fmspc:A.string().nullable().optional(),tee_tcb_svn:A.string().nullable().optional(),cpusvn:A.string().nullable().optional(),pcesvn:A.number().nullable().optional(),tcb_info:Br.nullable().optional(),app_certificates:A.array(Hr).nullable().optional(),compose_file:A.string().nullable().optional(),error:A.string().nullable().optional()}),fu=A.object({app_id:A.string(),contract_address:A.string(),kms_info:du,instances:A.array(mu),kms_guest_agent_info:yr,gateway_guest_agent_info:yr,qemu_version:A.string().nullable()}),gu=A.object({appId:A.string().min(1)}).strict(),{action:qf,safeAction:Ff}=b(fu,async(e,t)=>{let{appId:n}=gu.parse(t);return await e.get(`/apps/${n}/attestations`)});var yu;function Jr(){return yu}import Su from"path";import cn from"fs-extra";import Eu from"@iarna/toml";import{z as Te}from"zod";import ie from"chalk";import wu from"ora";var _u=!1;function Se(){return _u}function Cu(e,t){let n=e.split(/\s+/),r=[],s="";for(let o of n){let a=s.length===0?o:`${s} ${o}`;a.length<=t?s=a:(s.length>0&&r.push(s),s=o)}return s.length>0&&r.push(s),r}function ku(e,t){if(e.length<=t)return[e];let n=[],r=0;for(;r<e.length;)n.push(e.slice(r,r+t)),r+=t;return n}function Zr(e,t){let n=[];for(let r of e.split(`
21
+ `)){if(r.length<=t){n.push(r);continue}if(r.indexOf(" ")===-1){n.push(...ku(r,t));continue}let s=Cu(r,t);n.push(...s)}if(n.length===0){let r=e.trim();n.push(r)}return n}var ze={error:(e,...t)=>{Se()||(process.stderr.write(`${ie.red("\u2717")} ${ie.red(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
22
+ `))},warn:(e,...t)=>{Se()||(process.stderr.write(`${ie.yellow("\u26A0")} ${ie.yellow(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
23
+ `))},info:(e,...t)=>{Se()||(process.stderr.write(`${ie.blue("\u2139")} ${ie.blue(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
24
+ `))},success:(e,...t)=>{Se()||(process.stderr.write(`${ie.green("\u2713")} ${ie.green(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
25
+ `))},debug:(e,...t)=>{Se()||process.env.DEBUG&&(process.stderr.write(`${ie.gray("\u{1F50D}")} ${ie.gray(e)}`),t.length>0&&process.stderr.write(` ${t.map(String).join(" ")}`),process.stderr.write(`
26
+ `))},table:(e,t)=>{if(!Se()){if(e.length===0){console.log(ie.yellow("No data to display"));return}if(t){let n;typeof t[0]=="string"?n=t.map(a=>({key:a,header:a})):n=t;let r={};for(let a of n){let i=a.header||String(a.key);r[String(a.key)]=i.length}for(let a of e)for(let i of n){let l=String(typeof i.key=="string"&&!(i.key in a)?"":a[String(i.key)]??"");r[String(i.key)]=Math.max(r[String(i.key)],l.length)}let s=[];for(let a of n){let i=a.header||String(a.key);s.push(ie.bold(i.padEnd(r[String(a.key)])))}console.log(s.join(" "));let o=[];for(let a of n)o.push("-".repeat(r[String(a.key)]));console.log(o.join(" "));for(let a of e){let i=[];for(let l of n){let m=String(typeof l.key=="string"&&!(l.key in a)?"":a[String(l.key)]??"");i.push(m.padEnd(r[String(l.key)]))}console.log(i.join(" "))}}else{let n=e[0],r=Object.keys(n),s={};for(let i of r)s[i]=i.length;for(let i of e)for(let l of r){let m=String(i[l]??"");s[l]=Math.max(s[l],m.length)}let o=[];for(let i of r)o.push(ie.bold(i.padEnd(s[i])));console.log(o.join(" "));let a=[];for(let i of r)a.push("-".repeat(s[i]));console.log(a.join(" "));for(let i of e){let l=[];for(let m of r){let u=String(i[m]??"");l.push(u.padEnd(s[m]))}console.log(l.join(" "))}}}},keyValueTable:(e,t)=>{if(Se())return;let{borderStyle:n="single",keyColor:r=ie.blue,valueColor:s=ie.white,maxWidth:o=process.stdout.columns||80}=t||{},i={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",cross:"\u256C",leftT:"\u2560",rightT:"\u2563"},rounded:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",cross:"\u253C",leftT:"\u251C",rightT:"\u2524"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",cross:"\u254B",leftT:"\u2523",rightT:"\u252B"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",cross:"",leftT:"",rightT:""}}[n],l=0,m=0;for(let[E,T]of Object.entries(e)){l=Math.max(l,E.length);let q=String(T??"");m=Math.max(m,q.length)}let u=4,f=1,g=o-u-f;if(l+m>g){let E=l/(l+m);l=Math.floor(g*E),m=g-l}let y=l+m+u+f;n!=="none"&&console.log(i.topLeft+i.horizontal.repeat(y-2)+i.topRight);for(let[E,T]of Object.entries(e)){let q=E,te=String(T??""),ge=Zr(q,l),je=Zr(te,m),Ee=Math.max(ge.length,je.length);for(;ge.length<Ee;)ge.push("");for(;je.length<Ee;)je.push("");for(let Oe=0;Oe<Ee;Oe++){let Me=ge[Oe].padEnd(l),bt=je[Oe].padEnd(m);console.log(n!=="none"?`${i.vertical} ${r(Me)} ${i.vertical} ${s(bt)} ${i.vertical}`:`${r(Me)} : ${s(bt)}`)}}n!=="none"&&console.log(i.bottomLeft+i.horizontal.repeat(y-2)+i.bottomRight)},break:()=>{Se()||process.stderr.write(`
27
+ `)},startSpinner:e=>{if(Se())return{stop:()=>{}};let t=wu(e).start();return{stop:(n=!0,r)=>{r&&(t.text=r),n?t.succeed():t.fail()}}},logDetailedError(e,t){if(Se())return;let n=t?`[${t}] `:"",r=o=>o!==null&&typeof o=="object"&&"isRequestError"in o&&o.isRequestError===!0&&"status"in o&&"message"in o&&"data"in o,s=o=>o!==null&&typeof o=="object"&&"issues"in o&&Array.isArray(o.issues);if(r(e)){process.stderr.write(`${n}HTTP ${e.status}: ${e.message}
28
28
  `),e.data!==void 0&&e.data!==null&&process.stderr.write(`${JSON.stringify(e.data,null,2)}
29
29
  `);return}if(s(e)){process.stderr.write(`${n}Validation error: ${JSON.stringify(e.issues)}
30
30
  `);return}e instanceof Error?process.stderr.write(`${n}${e.message}
31
31
  `):process.stderr.write(`${n}${String(e)}
32
- `)}};var hu=oe.extend({profile:xe.string().optional(),api_version:xe.enum(xt).optional(),gateway_domain:xe.string().optional(),gateway_port:xe.number().int().positive().optional(),compose_file:xe.string().optional(),env_file:xe.string().optional(),public_logs:xe.boolean().optional(),public_sysinfo:xe.boolean().optional(),listed:xe.boolean().optional()}),on="phala.toml";function Wr(){return fu.join(process.cwd(),on)}function bu(){return sn.existsSync(Wr())}function vu(){let e=Wr();if(!sn.existsSync(e))throw new Error(`Project configuration file not found: ${on}
33
- Run 'phala init' to create one.`);try{let t=sn.readFileSync(e,"utf8"),n=gu.parse(t),r=hu.parse(n);if(r.id||r.uuid||r.app_id||r.instance_id||r.name){let{cvmId:s}=j.parse(r);return{...r,cvm_id:s}}return r}catch(t){if(t instanceof xe.ZodError){let n=t.issues.map(r=>` - ${r.path.join(".")}: ${r.message}`).join(`
32
+ `)}};var Au=ae.extend({profile:Te.string().optional(),api_version:Te.enum(Tt).optional(),gateway_domain:Te.string().optional(),gateway_port:Te.number().int().positive().optional(),compose_file:Te.string().optional(),env_file:Te.string().optional(),public_logs:Te.boolean().optional(),public_sysinfo:Te.boolean().optional(),listed:Te.boolean().optional()}),ln="phala.toml";function Qr(){return Su.join(process.cwd(),ln)}function Iu(){return cn.existsSync(Qr())}function Ru(){let e=Qr();if(!cn.existsSync(e))throw new Error(`Project configuration file not found: ${ln}
33
+ Run 'phala init' to create one.`);try{let t=cn.readFileSync(e,"utf8"),n=Eu.parse(t),r=Au.parse(n);if(r.id||r.uuid||r.app_id||r.instance_id||r.name){let{cvmId:s}=O.parse(r);return{...r,cvm_id:s}}return r}catch(t){if(t instanceof Te.ZodError){let n=t.issues.map(r=>` - ${r.path.join(".")}: ${r.message}`).join(`
34
34
  `);throw new Error(`Invalid project configuration:
35
- ${n}`)}throw new Error(`Failed to parse ${on}: ${t instanceof Error?t.message:String(t)}`)}}function Xr(){return bu()?vu():{}}import Jr from"fs";import yu from"os";import Qr from"path";var Zr="https://cloud-api.phala.com/api/v1";function _u(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Qr.join(yu.homedir(),".phala-cloud")}function wu(){return Qr.join(_u(),"credentials.json")}function Tt(e){return typeof e=="string"&&e.trim().length>0}function Cu(e){let t=e.trim();return t.length===0?"default":t}function ku(){try{let e=wu();if(!Jr.existsSync(e))return null;let t=Jr.readFileSync(e,"utf8"),n=JSON.parse(t);if(!n||typeof n!="object")return null;let r=n;return r.schema_version!==1||!Tt(r.current_profile)||!r.profiles||typeof r.profiles!="object"?null:r}catch(e){return Ue.error("Failed to read credentials file:",e),null}}function Yr(e){let t=ku(),n=Cu(e.profile||e.projectProfile||t?.current_profile||"default"),r=n;if(t&&!t.profiles[r]){let m=Object.entries(t.profiles).find(([,u])=>u?.workspace?.slug===n);if(m)r=m[0];else{let u=Object.entries(t.profiles).find(([,f])=>f?.workspace?.name===n);u&&(r=u[0])}}let s=e.env.PHALA_CLOUD_API_PREFIX,o=t?.profiles?.[r]?.api_prefix,a=(s&&s.trim().length>0?s:o&&o.trim().length>0?o:Zr)??Zr,i=s?"env":o?"file":"default";if(Tt(e.apiToken))return{apiKey:e.apiToken,baseURL:a,profileName:r,tokenSource:"flag",apiPrefixSource:i};if(Tt(e.env.PHALA_CLOUD_API_KEY))return{apiKey:e.env.PHALA_CLOUD_API_KEY,baseURL:a,profileName:r,tokenSource:"env",apiPrefixSource:i};let l=t?.profiles?.[r]?.token;return Tt(l)?{apiKey:l,baseURL:a,profileName:r,tokenSource:"file",apiPrefixSource:i}:{apiKey:null,baseURL:a,profileName:r,tokenSource:"none",apiPrefixSource:i}}var Su="2026-01-21";function Eu(){return{env:process.env,projectConfig:Xr()}}function Au(e,t){let n=e??Eu();return Yr({env:n.env,apiToken:t?.apiToken??n.globalOptions?.apiToken,profile:t?.profile??n.globalOptions?.profile,projectProfile:n.projectConfig.profile})}async function pe(e,t){let n=Au(e,t),r=Kr()??Su;return Br({apiKey:n.apiKey??void 0,baseURL:n.baseURL,version:r})}import{z as c}from"zod";var Iu=c.object({password:c.string(),registry:c.string().nullable(),username:c.string()}),lg=c.object({docker_compose_file:c.string(),docker_config:Iu.optional().nullable(),features:c.array(c.string()),kms_enabled:c.boolean(),manifest_version:c.number(),name:c.string(),public_logs:c.boolean(),public_sysinfo:c.boolean(),runner:c.string().optional(),salt:c.string().nullable().optional(),tproxy_enabled:c.boolean(),version:c.string().optional()}).passthrough(),es=c.object({id:c.number(),name:c.string(),status:c.string(),teepod_id:c.number().nullable(),teepod:c.object({id:c.number(),name:c.string()}).nullable(),user_id:c.number().nullable(),app_id:c.string(),vm_uuid:c.string().nullable(),instance_id:c.string().nullable(),app_url:c.string().nullable(),base_image:c.string().nullable(),vcpu:c.number(),memory:c.number(),disk_size:c.number(),manifest_version:c.number().nullable(),version:c.string().nullable(),runner:c.string().nullable(),docker_compose_file:c.string().nullable(),features:c.array(c.string()).nullable(),created_at:c.string(),encrypted_env_pubkey:c.string().nullable()}),ug=c.object({key:c.string(),value:c.string()}),ts=c.object({is_online:c.boolean(),is_public:c.boolean(),error:c.string().nullable(),internal_ip:c.string(),latest_handshake:c.string(),public_urls:c.array(c.object({app:c.string(),instance:c.string()}))}),ns=c.object({id:c.number(),name:c.string(),status:c.string(),teepod_id:c.number(),teepod:c.object({id:c.number(),name:c.string()}),user_id:c.number().nullable().optional(),app_id:c.string(),vm_uuid:c.string().nullable().optional(),instance_id:c.string().nullable().optional(),app_url:c.string().nullable().optional(),base_image:c.string().nullable().optional(),vcpu:c.number(),memory:c.number(),disk_size:c.number(),manifest_version:c.number().nullable().optional(),version:c.string().nullable().optional(),runner:c.string().nullable().optional(),docker_compose_file:c.string().nullable().optional(),features:c.array(c.string()).nullable().optional(),created_at:c.string(),encrypted_env_pubkey:c.string().nullable().optional()}),rs=c.object({is_online:c.boolean(),is_public:c.boolean(),error:c.string().nullable(),app_certificates:c.array(c.object({subject:c.object({common_name:c.string().nullable(),organization:c.string().nullable(),country:c.string().nullable(),state:c.string().nullable().optional(),locality:c.string().nullable().optional()}),issuer:c.object({common_name:c.string().nullable(),organization:c.string().nullable(),country:c.string().nullable()}),serial_number:c.string(),not_before:c.string(),not_after:c.string(),version:c.string(),fingerprint:c.string(),signature_algorithm:c.string(),sans:c.string().nullable(),is_ca:c.boolean(),position_in_chain:c.number(),quote:c.string().nullable()})).nullable(),tcb_info:c.object({mrtd:c.string(),rootfs_hash:c.string(),rtmr0:c.string(),rtmr1:c.string(),rtmr2:c.string(),rtmr3:c.string(),event_log:c.array(c.object({imr:c.number(),event_type:c.number(),digest:c.string(),event:c.string(),event_payload:c.string()}))}).nullable(),compose_file:c.string().nullable()}),xu=c.object({name:c.string(),description:c.string().optional(),version:c.array(c.number()).optional(),is_dev:c.boolean().optional(),os_image_hash:c.string().nullable().optional(),rootfs_hash:c.string().optional(),shared_ro:c.boolean().optional(),cmdline:c.string().optional(),kernel:c.string().optional(),initrd:c.string().optional(),hda:c.string().nullable().optional(),rootfs:c.string().optional(),bios:c.string().optional()}),pg=c.object({teepod_id:c.number().nullable(),id:c.number().optional(),name:c.string(),listed:c.boolean().optional(),resource_score:c.number().optional(),remaining_vcpu:c.number().optional(),remaining_memory:c.number().optional(),remaining_cvm_slots:c.number().optional(),images:c.array(xu).optional(),region_identifier:c.string().optional(),dedicated_for_team_id:c.number().nullable().optional(),support_onchain_kms:c.boolean().optional(),fmspc:c.string().nullable().optional(),device_id:c.string().nullable().optional()});import Ru from"inquirer";async function vg(e){let t=await pe(),n=e.replace(/^app_/,""),r=await Rt(t,{app_id:n});if(!r.success)throw new Error(r.error.message);return r.data}async function yg(e){let t=await pe(),n=e.replace(/^app_/,""),r=await t.get(`cvms/app_${n}/network`);return ts.parse(r)}async function _g(){let e=Ue.startSpinner("Fetching available CVMs"),t=await pe(),n=await nn(t);if(e.stop(!0),!n.success){Ue.error(`Failed to fetch CVMs: ${n.error.message}`);return}let{items:r}=n.data;if(r.length===0){Ue.info("No CVMs found for your account");return}let s=r.map(a=>({name:`${a.name} (${a.app_id??a.id}) - ${a.status}`,value:a.app_id??a.id})),{selectedCvm:o}=await Ru.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM:",choices:s}]);return o}async function wg(e){let t=await pe(),n=e.replace(/^app_/,""),r=await t.get(`cvms/app_${n}/attestation`);try{return rs.parse(r)}catch(s){return Ue.debug(`Validation error: ${s instanceof Error?s.message:String(s)}`),{is_online:!!r?.is_online,is_public:!!r?.is_public,error:typeof r?.error=="string"?r.error:null,app_certificates:Array.isArray(r?.app_certificates)?r.app_certificates:null,tcb_info:r?.tcb_info||null,compose_file:typeof r?.compose_file=="string"?r.compose_file:null}}}async function Cg(e,t,n){let r=await pe(),s=e.replace(/^app_/,""),o=await r.post(`apps/${s}/cvms/${t}/replicas`,n);return ns.parse(o)}async function kg(e,t,n,r,s){let o=await pe(),a=e.replace(/^app_/,""),i={};if(t!==void 0&&(i.vcpu=t),n!==void 0&&(i.memory=n),r!==void 0&&(i.disk_size=r),s!==void 0&&(i.allow_restart=s),Object.keys(i).length===0)throw new Error("At least one resource parameter must be provided");return await o.patch(`cvms/app_${a}/resources`,i),!0}async function Sg(e){return await(await pe()).post("cvms/pubkey/from_cvm_configuration",e)}async function Eg(e){let n=await(await pe()).post("cvms/from_cvm_configuration",e);return es.parse(n)}async function Ag(e,t){let n=await pe(),r=e.replace(/^app_/,"");return await n.put(`cvms/app_${r}/compose`,t)}async function Ig(e=!1){let t=await pe(),n="teepods/available";return e&&(n+="?v03x_only=1"),await t.get(n)}function ze(e,t){let n=[];t.since&&n.push(`since=${encodeURIComponent(t.since)}`),t.until&&n.push(`until=${encodeURIComponent(t.until)}`),t.follow&&n.push("follow"),t.text&&n.push("text"),t.bare&&n.push("bare"),t.tail!==void 0&&(n.push(`tail=${t.tail}`),n.push(`lines=${t.tail}`)),t.timestamps&&n.push("timestamps"),(t.ansi??!0)&&n.push("ansi");let r=e.includes("?")?"&":"?";return e+r+n.join("&")}async function ss(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder;for(;;){let{done:s,value:o}=await n.read();if(s)break;t(r.decode(o,{stream:!0}))}}function Tu(e){return!e||/\s/.test(e)||e.length%4!==0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function Pu(e){if(!Tu(e))return e;try{return Buffer.from(e,"base64").toString("utf-8")}catch{return e}}function Pt(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.message!="string"?null:{channel:n.channel==="stderr"?"stderr":"stdout",message:Pu(n.message)}}catch{return null}}function ju(e){let t=e.split(/\r?\n/),n=[];for(let r of t){if(!r.trim())continue;let s=Pt(r);if(s){n.push(s);continue}n.push({channel:"stdout",message:`${r}
36
- `})}return n}function Ou(e){let t=e.split(/\r?\n/),n="";for(let r of t){let s=Pt(r);if(s){n+=s.message;continue}r.trim()&&(n+=`${r}
37
- `)}return n}async function $u(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder,s="",o="unknown",a=i=>{let l=Pt(i);if(l){t(l.message);return}i.trim()&&t(`${i}
35
+ ${n}`)}throw new Error(`Failed to parse ${ln}: ${t instanceof Error?t.message:String(t)}`)}}function Yr(){return Iu()?Ru():{}}import es from"fs";import xu from"os";import ns from"path";var ts="https://cloud-api.phala.com/api/v1";function Tu(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:ns.join(xu.homedir(),".phala-cloud")}function Pu(){return ns.join(Tu(),"credentials.json")}function jt(e){return typeof e=="string"&&e.trim().length>0}function ju(e){let t=e.trim();return t.length===0?"default":t}function Ou(){try{let e=Pu();if(!es.existsSync(e))return null;let t=es.readFileSync(e,"utf8"),n=JSON.parse(t);if(!n||typeof n!="object")return null;let r=n;return r.schema_version!==1||!jt(r.current_profile)||!r.profiles||typeof r.profiles!="object"?null:r}catch(e){return ze.error("Failed to read credentials file:",e),null}}function rs(e){let t=Ou(),n=ju(e.profile||e.projectProfile||t?.current_profile||"default"),r=n;if(t&&!t.profiles[r]){let m=Object.entries(t.profiles).find(([,u])=>u?.workspace?.slug===n);if(m)r=m[0];else{let u=Object.entries(t.profiles).find(([,f])=>f?.workspace?.name===n);u&&(r=u[0])}}let s=e.env.PHALA_CLOUD_API_PREFIX,o=t?.profiles?.[r]?.api_prefix,a=(s&&s.trim().length>0?s:o&&o.trim().length>0?o:ts)??ts,i=s?"env":o?"file":"default";if(jt(e.apiToken))return{apiKey:e.apiToken,baseURL:a,profileName:r,tokenSource:"flag",apiPrefixSource:i};if(jt(e.env.PHALA_CLOUD_API_KEY))return{apiKey:e.env.PHALA_CLOUD_API_KEY,baseURL:a,profileName:r,tokenSource:"env",apiPrefixSource:i};let l=t?.profiles?.[r]?.token;return jt(l)?{apiKey:l,baseURL:a,profileName:r,tokenSource:"file",apiPrefixSource:i}:{apiKey:null,baseURL:a,profileName:r,tokenSource:"none",apiPrefixSource:i}}var $u="2026-01-21";function Lu(){return{env:process.env,projectConfig:Yr()}}function Nu(e,t){let n=e??Lu();return rs({env:n.env,apiToken:t?.apiToken??n.globalOptions?.apiToken,profile:t?.profile??n.globalOptions?.profile,projectProfile:n.projectConfig.profile})}async function ce(e,t){let n=Nu(e,t),r=Jr()??$u;return Gr({apiKey:n.apiKey??void 0,baseURL:n.baseURL,version:r})}import{z as c}from"zod";var qu=c.object({password:c.string(),registry:c.string().nullable(),username:c.string()}),_g=c.object({docker_compose_file:c.string(),docker_config:qu.optional().nullable(),features:c.array(c.string()),kms_enabled:c.boolean(),manifest_version:c.number(),name:c.string(),public_logs:c.boolean(),public_sysinfo:c.boolean(),runner:c.string().optional(),salt:c.string().nullable().optional(),tproxy_enabled:c.boolean(),version:c.string().optional()}).passthrough(),ss=c.object({id:c.number(),name:c.string(),status:c.string(),teepod_id:c.number().nullable(),teepod:c.object({id:c.number(),name:c.string()}).nullable(),user_id:c.number().nullable(),app_id:c.string(),vm_uuid:c.string().nullable(),instance_id:c.string().nullable(),app_url:c.string().nullable(),base_image:c.string().nullable(),vcpu:c.number(),memory:c.number(),disk_size:c.number(),manifest_version:c.number().nullable(),version:c.string().nullable(),runner:c.string().nullable(),docker_compose_file:c.string().nullable(),features:c.array(c.string()).nullable(),created_at:c.string(),encrypted_env_pubkey:c.string().nullable()}),wg=c.object({key:c.string(),value:c.string()}),os=c.object({is_online:c.boolean(),is_public:c.boolean(),error:c.string().nullable(),internal_ip:c.string(),latest_handshake:c.string(),public_urls:c.array(c.object({app:c.string(),instance:c.string()}))}),as=c.object({id:c.number(),name:c.string(),status:c.string(),teepod_id:c.number(),teepod:c.object({id:c.number(),name:c.string()}),user_id:c.number().nullable().optional(),app_id:c.string(),vm_uuid:c.string().nullable().optional(),instance_id:c.string().nullable().optional(),app_url:c.string().nullable().optional(),base_image:c.string().nullable().optional(),vcpu:c.number(),memory:c.number(),disk_size:c.number(),manifest_version:c.number().nullable().optional(),version:c.string().nullable().optional(),runner:c.string().nullable().optional(),docker_compose_file:c.string().nullable().optional(),features:c.array(c.string()).nullable().optional(),created_at:c.string(),encrypted_env_pubkey:c.string().nullable().optional()}),is=c.object({is_online:c.boolean(),is_public:c.boolean(),error:c.string().nullable(),app_certificates:c.array(c.object({subject:c.object({common_name:c.string().nullable(),organization:c.string().nullable(),country:c.string().nullable(),state:c.string().nullable().optional(),locality:c.string().nullable().optional()}),issuer:c.object({common_name:c.string().nullable(),organization:c.string().nullable(),country:c.string().nullable()}),serial_number:c.string(),not_before:c.string(),not_after:c.string(),version:c.string(),fingerprint:c.string(),signature_algorithm:c.string(),sans:c.string().nullable(),is_ca:c.boolean(),position_in_chain:c.number(),quote:c.string().nullable()})).nullable(),tcb_info:c.object({mrtd:c.string(),rootfs_hash:c.string(),rtmr0:c.string(),rtmr1:c.string(),rtmr2:c.string(),rtmr3:c.string(),event_log:c.array(c.object({imr:c.number(),event_type:c.number(),digest:c.string(),event:c.string(),event_payload:c.string()}))}).nullable(),compose_file:c.string().nullable()}),Fu=c.object({name:c.string(),description:c.string().optional(),version:c.array(c.number()).optional(),is_dev:c.boolean().optional(),os_image_hash:c.string().nullable().optional(),rootfs_hash:c.string().optional(),shared_ro:c.boolean().optional(),cmdline:c.string().optional(),kernel:c.string().optional(),initrd:c.string().optional(),hda:c.string().nullable().optional(),rootfs:c.string().optional(),bios:c.string().optional()}),Cg=c.object({teepod_id:c.number().nullable(),id:c.number().optional(),name:c.string(),listed:c.boolean().optional(),resource_score:c.number().optional(),remaining_vcpu:c.number().optional(),remaining_memory:c.number().optional(),remaining_cvm_slots:c.number().optional(),images:c.array(Fu).optional(),region_identifier:c.string().optional(),dedicated_for_team_id:c.number().nullable().optional(),support_onchain_kms:c.boolean().optional(),fmspc:c.string().nullable().optional(),device_id:c.string().nullable().optional()});import Uu from"inquirer";async function xg(e){let t=await ce(),n=e.replace(/^app_/,""),r=await Pt(t,{app_id:n});if(!r.success)throw new Error(r.error.message);return r.data}async function Tg(e){let t=await ce(),n=e.replace(/^app_/,""),r=await t.get(`cvms/app_${n}/network`);return os.parse(r)}async function Pg(){let e=ze.startSpinner("Fetching available CVMs"),t=await ce(),n=await on(t);if(e.stop(!0),!n.success){ze.error(`Failed to fetch CVMs: ${n.error.message}`);return}let{items:r}=n.data;if(r.length===0){ze.info("No CVMs found for your account");return}let s=r.map(a=>({name:`${a.name} (${a.app_id??a.id}) - ${a.status}`,value:a.app_id??a.id})),{selectedCvm:o}=await Uu.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM:",choices:s}]);return o}async function jg(e){let t=await ce(),n=e.replace(/^app_/,""),r=await t.get(`cvms/app_${n}/attestation`);try{return is.parse(r)}catch(s){return ze.debug(`Validation error: ${s instanceof Error?s.message:String(s)}`),{is_online:!!r?.is_online,is_public:!!r?.is_public,error:typeof r?.error=="string"?r.error:null,app_certificates:Array.isArray(r?.app_certificates)?r.app_certificates:null,tcb_info:r?.tcb_info||null,compose_file:typeof r?.compose_file=="string"?r.compose_file:null}}}async function Og(e,t,n){let r=await ce(),s=e.replace(/^app_/,""),o=await r.post(`apps/${s}/cvms/${t}/replicas`,n);return as.parse(o)}async function $g(e,t,n,r,s){let o=await ce(),a=e.replace(/^app_/,""),i={};if(t!==void 0&&(i.vcpu=t),n!==void 0&&(i.memory=n),r!==void 0&&(i.disk_size=r),s!==void 0&&(i.allow_restart=s),Object.keys(i).length===0)throw new Error("At least one resource parameter must be provided");return await o.patch(`cvms/app_${a}/resources`,i),!0}async function Lg(e){return await(await ce()).post("cvms/pubkey/from_cvm_configuration",e)}async function Ng(e){let n=await(await ce()).post("cvms/from_cvm_configuration",e);return ss.parse(n)}async function qg(e,t){let n=await ce(),r=e.replace(/^app_/,"");return await n.put(`cvms/app_${r}/compose`,t)}async function Fg(e=!1){let t=await ce(),n="teepods/available";return e&&(n+="?v03x_only=1"),await t.get(n)}async function Ug(){return await(await ce()).get("teepods/cvm-create-resources")}function De(e,t){let n=[];t.since&&n.push(`since=${encodeURIComponent(t.since)}`),t.until&&n.push(`until=${encodeURIComponent(t.until)}`),t.follow&&n.push("follow"),t.text&&n.push("text"),t.bare&&n.push("bare"),t.tail!==void 0&&(n.push(`tail=${t.tail}`),n.push(`lines=${t.tail}`)),t.timestamps&&n.push("timestamps"),(t.ansi??!0)&&n.push("ansi");let r=e.includes("?")?"&":"?";return e+r+n.join("&")}async function cs(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder;for(;;){let{done:s,value:o}=await n.read();if(s)break;t(r.decode(o,{stream:!0}))}}function zu(e){return!e||/\s/.test(e)||e.length%4!==0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function Du(e){if(!zu(e))return e;try{return Buffer.from(e,"base64").toString("utf-8")}catch{return e}}function Ot(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.message!="string"?null:{channel:n.channel==="stderr"?"stderr":"stdout",message:Du(n.message)}}catch{return null}}function Hu(e){let t=e.split(/\r?\n/),n=[];for(let r of t){if(!r.trim())continue;let s=Ot(r);if(s){n.push(s);continue}n.push({channel:"stdout",message:`${r}
36
+ `})}return n}function Bu(e){let t=e.split(/\r?\n/),n="";for(let r of t){let s=Ot(r);if(s){n+=s.message;continue}r.trim()&&(n+=`${r}
37
+ `)}return n}async function Vu(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder,s="",o="unknown",a=i=>{let l=Ot(i);if(l){t(l.message);return}i.trim()&&t(`${i}
38
38
  `)};for(;;){let{done:i,value:l}=await n.read();if(i)break;let m=r.decode(l,{stream:!0});if(o==="raw"){t(m);continue}if(s+=m,o==="unknown")if(s.trimStart().startsWith("{"))o="structured";else{o="raw",t(s),s="";continue}let u=s.indexOf(`
39
39
  `);for(;u>=0;){let f=s.slice(0,u);s=s.slice(u+1),a(f),u=s.indexOf(`
40
- `)}}o==="structured"&&s.trim()?a(s):o==="raw"&&s&&t(s)}async function Lu(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder,s="",o="unknown",a=i=>{let l=Pt(i);if(l){t(l);return}i.trim()&&t({channel:"stdout",message:`${i}
40
+ `)}}o==="structured"&&s.trim()?a(s):o==="raw"&&s&&t(s)}async function Mu(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder,s="",o="unknown",a=i=>{let l=Ot(i);if(l){t(l);return}i.trim()&&t({channel:"stdout",message:`${i}
41
41
  `})};for(;;){let{done:i,value:l}=await n.read();if(i)break;let m=r.decode(l,{stream:!0});if(o==="raw"){t({channel:"stdout",message:m});continue}if(s+=m,o==="unknown")if(s.trimStart().startsWith("{"))o="structured";else{o="raw",t({channel:"stdout",message:s}),s="";continue}let u=s.indexOf(`
42
42
  `);for(;u>=0;){let f=s.slice(0,u);s=s.slice(u+1),a(f),u=s.indexOf(`
43
- `)}}o==="structured"&&s.trim()?a(s):o==="raw"&&s&&t({channel:"stdout",message:s})}async function an(e,t){let r=await(await pe()).get(`cvms/${e}`,{headers:{"X-Phala-Version":"2025-10-28"}});if(!r.syslog_endpoint)throw new Error(`No syslog endpoint available for CVM '${e}'`);return`${r.syslog_endpoint}&ch=${t}`}async function os(e){return an(e,"serial")}async function jt(e,t,n=!0){let s=await(await pe()).get(`cvms/${e}/composition`);if(!s.containers?.length)throw new Error(`No containers found for CVM '${e}'`);let o=s.containers;if(t&&(o=o.filter(i=>i.names.some(m=>m===t||m===`/${t}`)?!0:n?i.id.startsWith(t):!1),!o.length))throw new Error(`Container '${t}' not found in CVM '${e}'`);let a=o.find(i=>i.log_endpoint);if(!a?.log_endpoint)throw new Error(`No log endpoints available for CVM '${e}'`);return a.log_endpoint}async function xg(e,t={}){let n=await os(e),r=ze(n,t),s=await fetch(r);if(!s.ok)throw new Error(`Failed to fetch serial logs: ${s.status} ${s.statusText}`);return s.text()}async function Rg(e,t={}){let n=await jt(e,t.container,t.matchContainerIdPrefix??!0),r=t.text??!0,s=t.bare??!0,o=ze(n,{...t,text:r,bare:s}),a=await fetch(o);if(!a.ok)throw new Error(`Failed to fetch container logs: ${a.status} ${a.statusText}`);let i=await a.text();return i.trimStart().startsWith("{")?Ou(i):i}async function Tg(e,t={}){let n=await jt(e,t.container,t.matchContainerIdPrefix??!0),r=ze(n,{...t,text:!1,bare:!1}),s=await fetch(r);if(!s.ok)throw new Error(`Failed to fetch container logs: ${s.status} ${s.statusText}`);let o=await s.text();return o.trimStart().startsWith("{")?ju(o):[{channel:"stdout",message:o}]}async function Pg(e,t,n={},r){let s=await jt(e,n.container,n.matchContainerIdPrefix??!0),o=ze(s,{...n,follow:!0,text:!1,bare:!1}),a=await fetch(o,{signal:r});if(!a.ok)throw new Error(`Failed to stream container logs: ${a.status} ${a.statusText}`);await Lu(a,t)}async function jg(e,t,n={},r){let s=await os(e),o=ze(s,{...n,follow:!0}),a=await fetch(o,{signal:r});if(!a.ok)throw new Error(`Failed to stream serial logs: ${a.status} ${a.statusText}`);await ss(a,t)}async function Og(e,t,n={},r){let s=await jt(e,n.container,n.matchContainerIdPrefix??!0),o=n.text??!0,a=n.bare??!0,i=ze(s,{...n,follow:!0,text:o,bare:a}),l=await fetch(i,{signal:r});if(!l.ok)throw new Error(`Failed to stream container logs: ${l.status} ${l.statusText}`);await $u(l,t)}async function $g(e,t,n={}){let r=await an(e,t),s=ze(r,n),o=await fetch(s);if(!o.ok)throw new Error(`Failed to fetch CVM ${t} logs: ${o.status} ${o.statusText}`);return o.text()}async function Lg(e,t,n,r={},s){let o=await an(e,t),a=ze(o,{...r,follow:!0}),i=await fetch(a,{signal:s});if(!i.ok)throw new Error(`Failed to stream CVM ${t} logs: ${i.status} ${i.statusText}`);await ss(i,n)}async function Ng(e){let t=await pe(),n=e.replace(/^app_/,""),r=await Rt(t,{app_id:n});if(!r.success)throw new Error(r.error.message);return r.data.status}export{lg as composeFileSchema,Eg as createCvm,rs as cvmAttestationResponseSchema,Iu as dockerConfigSchema,ug as encryptedEnvItemSchema,Rg as fetchContainerLogs,Tg as fetchContainerLogsEntries,$g as fetchCvmChannelLogs,xg as fetchSerialLogs,wg as getCvmAttestation,vg as getCvmByAppId,an as getCvmLogEndpoint,yg as getCvmNetwork,ts as getCvmNetworkResponseSchema,Ng as getCvmStatus,Sg as getPubkeyFromCvm,Ig as getTeepods,xu as imageSchema,es as postCvmResponseSchema,Cg as replicateCvm,ns as replicateCvmResponseSchema,kg as resizeCvm,_g as selectCvm,Og as streamContainerLogs,Pg as streamContainerLogsEntries,Lg as streamCvmChannelLogs,jg as streamSerialLogs,pg as teepodSchema,Ag as upgradeCvm};
43
+ `)}}o==="structured"&&s.trim()?a(s):o==="raw"&&s&&t({channel:"stdout",message:s})}async function un(e,t){let r=await(await ce()).get(`cvms/${e}`,{headers:{"X-Phala-Version":"2025-10-28"}});if(!r.syslog_endpoint)throw new Error(`No syslog endpoint available for CVM '${e}'`);return`${r.syslog_endpoint}&ch=${t}`}async function ls(e){return un(e,"serial")}async function $t(e,t,n=!0){let s=await(await ce()).get(`cvms/${e}/composition`);if(!s.containers?.length)throw new Error(`No containers found for CVM '${e}'`);let o=s.containers;if(t&&(o=o.filter(i=>i.names.some(m=>m===t||m===`/${t}`)?!0:n?i.id.startsWith(t):!1),!o.length))throw new Error(`Container '${t}' not found in CVM '${e}'`);let a=o.find(i=>i.log_endpoint);if(!a?.log_endpoint)throw new Error(`No log endpoints available for CVM '${e}'`);return a.log_endpoint}async function zg(e,t={}){let n=await ls(e),r=De(n,t),s=await fetch(r);if(!s.ok)throw new Error(`Failed to fetch serial logs: ${s.status} ${s.statusText}`);return s.text()}async function Dg(e,t={}){let n=await $t(e,t.container,t.matchContainerIdPrefix??!0),r=t.text??!0,s=t.bare??!0,o=De(n,{...t,text:r,bare:s}),a=await fetch(o);if(!a.ok)throw new Error(`Failed to fetch container logs: ${a.status} ${a.statusText}`);let i=await a.text();return i.trimStart().startsWith("{")?Bu(i):i}async function Hg(e,t={}){let n=await $t(e,t.container,t.matchContainerIdPrefix??!0),r=De(n,{...t,text:!1,bare:!1}),s=await fetch(r);if(!s.ok)throw new Error(`Failed to fetch container logs: ${s.status} ${s.statusText}`);let o=await s.text();return o.trimStart().startsWith("{")?Hu(o):[{channel:"stdout",message:o}]}async function Bg(e,t,n={},r){let s=await $t(e,n.container,n.matchContainerIdPrefix??!0),o=De(s,{...n,follow:!0,text:!1,bare:!1}),a=await fetch(o,{signal:r});if(!a.ok)throw new Error(`Failed to stream container logs: ${a.status} ${a.statusText}`);await Mu(a,t)}async function Vg(e,t,n={},r){let s=await ls(e),o=De(s,{...n,follow:!0}),a=await fetch(o,{signal:r});if(!a.ok)throw new Error(`Failed to stream serial logs: ${a.status} ${a.statusText}`);await cs(a,t)}async function Mg(e,t,n={},r){let s=await $t(e,n.container,n.matchContainerIdPrefix??!0),o=n.text??!0,a=n.bare??!0,i=De(s,{...n,follow:!0,text:o,bare:a}),l=await fetch(i,{signal:r});if(!l.ok)throw new Error(`Failed to stream container logs: ${l.status} ${l.statusText}`);await Vu(l,t)}async function Kg(e,t,n={}){let r=await un(e,t),s=De(r,n),o=await fetch(s);if(!o.ok)throw new Error(`Failed to fetch CVM ${t} logs: ${o.status} ${o.statusText}`);return o.text()}async function Gg(e,t,n,r={},s){let o=await un(e,t),a=De(o,{...r,follow:!0}),i=await fetch(a,{signal:s});if(!i.ok)throw new Error(`Failed to stream CVM ${t} logs: ${i.status} ${i.statusText}`);await cs(i,n)}async function Wg(e){let t=await ce(),n=e.replace(/^app_/,""),r=await Pt(t,{app_id:n});if(!r.success)throw new Error(r.error.message);return r.data.status}export{_g as composeFileSchema,Ng as createCvm,is as cvmAttestationResponseSchema,qu as dockerConfigSchema,wg as encryptedEnvItemSchema,Dg as fetchContainerLogs,Hg as fetchContainerLogsEntries,Kg as fetchCvmChannelLogs,zg as fetchSerialLogs,jg as getCvmAttestation,xg as getCvmByAppId,Ug as getCvmCreateResources,un as getCvmLogEndpoint,Tg as getCvmNetwork,os as getCvmNetworkResponseSchema,Wg as getCvmStatus,Lg as getPubkeyFromCvm,Fg as getTeepods,Fu as imageSchema,ss as postCvmResponseSchema,Og as replicateCvm,as as replicateCvmResponseSchema,$g as resizeCvm,Pg as selectCvm,Mg as streamContainerLogs,Bg as streamContainerLogsEntries,Gg as streamCvmChannelLogs,Vg as streamSerialLogs,Cg as teepodSchema,qg as upgradeCvm};
44
44
  /*! Bundled license information:
45
45
 
46
46
  @noble/hashes/utils.js: