phala 1.1.19 → 1.1.20
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.d.ts +30 -142
- package/dist/api/index.js +31 -36
- package/dist/index.js +201 -234
- package/package.json +4 -4
package/dist/api/index.js
CHANGED
|
@@ -1,49 +1,44 @@
|
|
|
1
1
|
import { createRequire } from 'module';const require = createRequire(import.meta.url);
|
|
2
|
-
var
|
|
2
|
+
var qr=Object.create;var Gt=Object.defineProperty;var $r=Object.getOwnPropertyDescriptor;var Or=Object.getOwnPropertyNames;var Nr=Object.getPrototypeOf,zr=Object.prototype.hasOwnProperty;var St=(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 rt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ur=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Or(t))!zr.call(e,s)&&s!==n&&Gt(e,s,{get:()=>t[s],enumerable:!(r=$r(t,s))||r.enumerable});return e};var Lr=(e,t,n)=>(n=e!=null?qr(Nr(e)):{},Ur(t||!e||!e.__esModule?Gt(n,"default",{value:e,enumerable:!0}):n,e));var Wt=rt((ru,Bt)=>{var De=1e3,Ve=De*60,Me=Ve*60,ze=Me*24,Fr=ze*7,Dr=ze*365.25;Bt.exports=function(e,t){t=t||{};var n=typeof e;if(n==="string"&&e.length>0)return Vr(e);if(n==="number"&&isFinite(e))return t.long?Kr(e):Mr(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function Vr(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*Dr;case"weeks":case"week":case"w":return n*Fr;case"days":case"day":case"d":return n*ze;case"hours":case"hour":case"hrs":case"hr":case"h":return n*Me;case"minutes":case"minute":case"mins":case"min":case"m":return n*Ve;case"seconds":case"second":case"secs":case"sec":case"s":return n*De;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function Mr(e){var t=Math.abs(e);return t>=ze?Math.round(e/ze)+"d":t>=Me?Math.round(e/Me)+"h":t>=Ve?Math.round(e/Ve)+"m":t>=De?Math.round(e/De)+"s":e+"ms"}function Kr(e){var t=Math.abs(e);return t>=ze?lt(e,t,ze,"day"):t>=Me?lt(e,t,Me,"hour"):t>=Ve?lt(e,t,Ve,"minute"):t>=De?lt(e,t,De,"second"):e+" ms"}function lt(e,t,n,r){var s=t>=n*1.5;return Math.round(e/n)+" "+r+(s?"s":"")}});var kt=rt((su,Xt)=>{function Hr(e){n.debug=n,n.default=n,n.coerce=u,n.disable=a,n.enable=s,n.enabled=o,n.humanize=Wt(),n.destroy=f,Object.keys(e).forEach(m=>{n[m]=e[m]}),n.names=[],n.skips=[],n.formatters={};function t(m){let d=0;for(let h=0;h<m.length;h++)d=(d<<5)-d+m.charCodeAt(h),d|=0;return n.colors[Math.abs(d)%n.colors.length]}n.selectColor=t;function n(m){let d,h=null,_,k;function R(...O){if(!R.enabled)return;let se=R,fe=Number(new Date),je=fe-(d||fe);se.diff=je,se.prev=d,se.curr=fe,d=fe,O[0]=n.coerce(O[0]),typeof O[0]!="string"&&O.unshift("%O");let Se=0;O[0]=O[0].replace(/%([a-zA-Z%])/g,(Fe,ct)=>{if(Fe==="%%")return"%";Se++;let Ht=n.formatters[ct];if(typeof Ht=="function"){let Pr=O[Se];Fe=Ht.call(se,Pr),O.splice(Se,1),Se--}return Fe}),n.formatArgs.call(se,O),(se.log||n.log).apply(se,O)}return R.namespace=m,R.useColors=n.useColors(),R.color=n.selectColor(m),R.extend=r,R.destroy=n.destroy,Object.defineProperty(R,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(_!==n.namespaces&&(_=n.namespaces,k=n.enabled(m)),k),set:O=>{h=O}}),typeof n.init=="function"&&n.init(R),R}function r(m,d){let h=n(this.namespace+(typeof d>"u"?":":d)+m);return h.log=this.log,h}function s(m){n.save(m),n.namespaces=m,n.names=[],n.skips=[];let d=(typeof m=="string"?m:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let h of d)h[0]==="-"?n.skips.push(h.slice(1)):n.names.push(h)}function i(m,d){let h=0,_=0,k=-1,R=0;for(;h<m.length;)if(_<d.length&&(d[_]===m[h]||d[_]==="*"))d[_]==="*"?(k=_,R=h,_++):(h++,_++);else if(k!==-1)_=k+1,R++,h=R;else return!1;for(;_<d.length&&d[_]==="*";)_++;return _===d.length}function a(){let m=[...n.names,...n.skips.map(d=>"-"+d)].join(",");return n.enable(""),m}function o(m){for(let d of n.skips)if(i(m,d))return!1;for(let d of n.names)if(i(m,d))return!0;return!1}function u(m){return m instanceof Error?m.stack||m.message:m}function f(){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}Xt.exports=Hr});var Jt=rt((ce,ut)=>{ce.formatArgs=Br;ce.save=Wr;ce.load=Xr;ce.useColors=Gr;ce.storage=Jr();ce.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`."))}})();ce.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 Gr(){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 Br(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+ut.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)}ce.log=console.debug||console.log||(()=>{});function Wr(e){try{e?ce.storage.setItem("debug",e):ce.storage.removeItem("debug")}catch{}}function Xr(){let e;try{e=ce.storage.getItem("debug")||ce.storage.getItem("DEBUG")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Jr(){try{return localStorage}catch{}}ut.exports=kt()(ce);var{formatters:Zr}=ut.exports;Zr.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Qt=rt((B,mt)=>{var Qr=St("tty"),pt=St("util");B.init=as;B.log=ns;B.formatArgs=es;B.save=rs;B.load=ss;B.useColors=Yr;B.destroy=pt.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");B.colors=[6,2,3,4,5,1];try{let e=St("supports-color");e&&(e.stderr||e).level>=2&&(B.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{}B.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,i)=>i.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 Yr(){return"colors"in B.inspectOpts?!!B.inspectOpts.colors:Qr.isatty(process.stderr.fd)}function es(e){let{namespace:t,useColors:n}=this;if(n){let r=this.color,s="\x1B[3"+(r<8?r:"8;5;"+r),i=` ${s};1m${t} \x1B[0m`;e[0]=i+e[0].split(`
|
|
3
3
|
`).join(`
|
|
4
|
-
`+
|
|
5
|
-
`)}function
|
|
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
|
|
8
|
-
`),a=typeof r=="string"?r:JSON.stringify(r,null,2);return[`< HTTP/1.1 ${e} ${t}`,
|
|
4
|
+
`+i),e.push(s+"m+"+mt.exports.humanize(this.diff)+"\x1B[0m")}else e[0]=ts()+t+" "+e[0]}function ts(){return B.inspectOpts.hideDate?"":new Date().toISOString()+" "}function ns(...e){return process.stderr.write(pt.formatWithOptions(B.inspectOpts,...e)+`
|
|
5
|
+
`)}function rs(e){e?process.env.DEBUG=e:delete process.env.DEBUG}function ss(){return process.env.DEBUG}function as(e){e.inspectOpts={};let t=Object.keys(B.inspectOpts);for(let n=0;n<t.length;n++)e.inspectOpts[t[n]]=B.inspectOpts[t[n]]}mt.exports=kt()(B);var{formatters:Zt}=mt.exports;Zt.o=function(e){return this.inspectOpts.colors=this.useColors,pt.inspect(e,this.inspectOpts).split(`
|
|
6
|
+
`).map(t=>t.trim()).join(" ")};Zt.O=function(e){return this.inspectOpts.colors=this.useColors,pt.inspect(e,this.inspectOpts)}});var Yt=rt((au,Et)=>{typeof process>"u"||process.type==="renderer"||process.browser===!0||process.__nwjs?Et.exports=Jt():Et.exports=Qt()});var gn=Lr(Yt(),1);import{ofetch as os}from"ofetch";function en(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)})}}}import{z as W}from"zod";import{z as $}from"zod";import{z as qe}from"zod";import{z as S}from"zod";import{z as l}from"zod";import{z as p}from"zod";import{z as xe}from"zod";import{anvil as rn,base as sn,mainnet as an}from"viem/chains";import{z as b}from"zod";import{z as M}from"zod";import{z as X}from"zod";import{z as He}from"zod";import{z as Ge}from"zod";import{z as g}from"zod";import{z as x}from"zod";import{z as w}from"zod";import Oa from"crypto";import{z as ge}from"zod";import{z as _e}from"zod";import{z as Q}from"zod";import{z as Y}from"zod";import{z as ee}from"zod";import{z as bo}from"zod";import{z as Be}from"zod";import{z as de}from"zod";import{z as cn}from"zod";import{z as Ie}from"zod";import{z as Re}from"zod";import{z as oe}from"zod";import{z as ln}from"zod";import{z as ot}from"zod";import{z as Ye}from"zod";import{z as Le}from"zod";import{z as P}from"zod";import{z as fi}from"zod";import{z as bi}from"zod";import{z as T}from"zod";import{z as Ae}from"zod";import{z as Pi}from"zod";import{z as V}from"zod";import{z as y}from"zod";import{z as Te}from"zod";import{z as Rt}from"zod";import{z as ne}from"zod";import{z as ar}from"zod";import{z as ke}from"zod";import{z as le}from"zod";import{z as $e}from"zod";import{z as xt}from"zod";import{z as jt}from"zod";import{z as Ue}from"zod";import{z as Z}from"zod";import{z as N}from"zod";import{z as C}from"zod";import{z}from"zod";import{z as I}from"zod";import{z as K}from"zod";import{createPublicClient as jp,createWalletClient as Pp,http as qp,parseEventLogs as $p,parseEther as Op}from"viem";import{privateKeyToAccount as zp}from"viem/accounts";import{x25519 as cu}from"@noble/curves/ed25519";import{keccak256 as Dp,toBytes as Vp,toHex as Mp}from"viem";import{isHex as Hp}from"viem";import{createPublicClient as Bp,createWalletClient as Wp,http as Xp,custom as Jp}from"viem";import{privateKeyToAccount as Qp}from"viem/accounts";import{z as U}from"zod";import{createPublicClient as rm,createWalletClient as sm,http as am,parseEventLogs as om,parseEther as im}from"viem";import{privateKeyToAccount as lm}from"viem/accounts";import{z as L}from"zod";import{createPublicClient as fm,createWalletClient as gm,http as hm,parseEther as bm}from"viem";import{privateKeyToAccount as ym}from"viem/accounts";import{z as F}from"zod";import{createPublicClient as km,createWalletClient as Em,http as Am,parseEther as Im}from"viem";import{privateKeyToAccount as xm}from"viem/accounts";import{z as D}from"zod";import{createPublicClient as $m,createWalletClient as Om,http as Nm,parseEther as zm}from"viem";import{privateKeyToAccount as Lm}from"viem/accounts";import{z as We}from"zod";import{createPublicClient as Km,http as Hm}from"viem";import{createPublicClient as Wm,http as Xm}from"viem";import{createPublicClient as Zm,http as Qm}from"viem";import{createPublicClient as ed,http as td}from"viem";import{z as Xe}from"zod";import{z as we}from"zod";import{z as el}from"zod";import{z as Je}from"zod";import{z as A}from"zod";import{z as ht}from"zod";import{z as et}from"zod";import{z as me}from"zod";import{z as H}from"zod";import{z as j}from"zod";import{z as st}from"zod";import{z as J}from"zod";import{z as Ze}from"zod";import{z as te}from"zod";import{z as pe}from"zod";import{z as mn}from"zod";import{z as dn}from"zod";import{z as Ee}from"zod";import{z as G}from"zod";import{z as dt}from"zod";import{z as ft}from"zod";import{z as ae}from"zod";import{z as E}from"zod";import{secp256k1 as mu}from"@noble/curves/secp256k1";var is=W.object({detail:W.union([W.string(),W.array(W.object({msg:W.string(),type:W.string().optional(),ctx:W.record(W.unknown()).optional(),loc:W.array(W.union([W.string(),W.number()])).optional(),input:W.unknown().optional()}).passthrough()),W.record(W.unknown())]).optional(),type:W.string().optional(),code:W.string().optional()});function cs(e){if(!e||typeof e!="object")return;let t=e.request_id;return typeof t=="string"?t:void 0}function ls(e){return e?.headers?.get("X-Request-ID")??void 0}function tn(e){if(typeof e!="string")return;let t=e.trim().toUpperCase();return t.length>0?t:void 0}var he=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,this.requestId=t.requestId,this.request=t.request,this.requestMethod=t.requestMethod,this.data=t.data,this.code=t.code,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},At=class at extends he{constructor(t,n){super(t,{status:n?.status??0,statusText:n?.statusText??"Unknown Error",detail:n?.detail||t,requestId:n?.requestId,request:n?.request,requestMethod:n?.requestMethod,data:n?.data,code:n?.code}),this.name="RequestError",this.isRequestError=!0,this.data=n?.data,this.request=n?.request,this.requestMethod=n?.requestMethod,this.response=n?.response,this.type=n?.type}static fromFetchError(t){let n=cs(t.data),r=ls(t.response),s=n??r,i=tn(t.options?.method),a=is.safeParse(t.data);if(a.success){let u=a.data.detail??(t.data&&typeof t.data=="object"&&"error_code"in t.data?t.data:void 0);return new at(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,requestMethod:i,response:t.response??void 0,detail:u,code:a.data.code??void 0,type:a.data.type??void 0,requestId:s})}if(t.cause?.name==="TimeoutError"||t.message?.includes("[TimeoutError]")){let u="Request timed out. The server did not respond in time.";return new at(u,{status:0,statusText:"Request Timeout",data:t.data,request:t.request??void 0,requestMethod:i,response:t.response??void 0,detail:u,code:"TIMEOUT",requestId:s})}return new at(t.message,{status:t.status??void 0,statusText:t.statusText??void 0,data:t.data,request:t.request??void 0,requestMethod:i,response:t.response??void 0,detail:t.data?.detail||t.message||"Unknown API error",code:t.status?.toString()??void 0,requestId:s})}static fromError(t,n,r){return new at(t.message,{request:n??void 0,requestMethod:tn(r),detail:t.message})}},us=class extends he{constructor(e,t){super(e,t),this.isValidationError=!0,this.validationErrors=t.validationErrors}},ps=class extends he{constructor(){super(...arguments),this.isAuthError=!0}},hn=class extends he{constructor(){super(...arguments),this.isBusinessError=!0}},ms=class extends he{constructor(){super(...arguments),this.isServerError=!0}},ds=class extends he{constructor(){super(...arguments),this.isUnknownError=!0}};function fs(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 bn(e){if(!Array.isArray(e))return{errors:[],message:typeof e=="string"?e:"Validation error"};let t=e.map((s,i)=>{let a=fs(s.loc),o=a;return a==="unknown"&&s.type&&(o=s.type==="missing"?"required field":s.type),{field:o,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 gs(e){return e===422?"validation":e===401||e===403?"auth":e>=400&&e<500?"business":e>=500?"server":"unknown"}function hs(e,t,n){if(e===422&&Array.isArray(t)){let{message:r}=bn(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 bs(e){let t=e.status??0,n=e.statusText??"Unknown Error",r=e.detail,s=ys(r);if(s)return new vs(s.message,{status:t,statusText:n,detail:r,requestId:s.request_id??e.requestId,request:e.request,requestMethod:e.requestMethod,data:e.data,errorCode:s.error_code,structuredDetails:s.details,suggestions:s.suggestions,links:s.links});let i=gs(t),a=hs(t,r,e.message),o={status:t,statusText:n,detail:r,requestId:e.requestId,request:e.request,requestMethod:e.requestMethod,data:e.data,code:e.code};if(i==="validation"&&Array.isArray(r)){let{errors:u}=bn(r);return new us(a,{...o,validationErrors:u})}return i==="auth"?new ps(a,o):i==="business"?new hn(a,o):i==="server"?new ms(a,o):new ds(a,o)}var vs=class extends hn{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 ys(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,request_id:typeof t.request_id=="string"?t.request_id:void 0,details:t.details,suggestions:t.suggestions,links:t.links}:null}var bt=["2025-10-28","2026-01-21","2026-05-22","2026-06-23"],_s="2026-06-23",Ke=(0,gn.default)("phala::api-client");function ws(e){return Object.entries(e).map(([t,n])=>` -H "${t}: ${n}"`).join(`
|
|
7
|
+
`)}function Cs(e){return e?` -d '${(typeof e=="string"?e:JSON.stringify(e,null,2)).replace(/'/g,"\\'")}'`:""}function nn(e,t,n,r){let s=[];n.forEach((o,u)=>{s.push(`${u}: ${o}`)});let i=s.join(`
|
|
8
|
+
`),a=typeof r=="string"?r:JSON.stringify(r,null,2);return[`< HTTP/1.1 ${e} ${t}`,i?`< ${i.replace(/\n/g,`
|
|
9
9
|
< `)}`:"","",a].filter(Boolean).join(`
|
|
10
|
-
`)}var
|
|
11
|
-
`);
|
|
10
|
+
`)}var Ss=class vn{constructor(t={}){this.emitter=en();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&&bt.includes(t.version)?t.version:_s;this.config={...t,apiKey:n,baseURL:r,version:s};let{apiKey:i,baseURL:a,timeout:o,headers:u,useCookieAuth:f,onResponseError:m,...d}=this.config,h={"X-Phala-Version":s,"Content-Type":"application/json"};u&&typeof u=="object"&&Object.entries(u).forEach(([_,k])=>{typeof k=="string"&&(h[_]=k)}),!f&&i&&(h["X-API-Key"]=i),this.fetchInstance=os.create({baseURL:a,timeout:o||6e4,headers:h,...f?{credentials:"include"}:{},...d,onRequest({request:_,options:k}){if(k.body instanceof FormData){let R=k.headers;R instanceof Headers?R.delete("content-type"):R&&typeof R=="object"&&!Array.isArray(R)&&(delete R["Content-Type"],delete R["content-type"])}if(Ke.enabled){let R=k.method||"GET",O=typeof _=="string"?_:_.url,se=O.startsWith("http")?O:`${a}${O}`,fe={};k.headers&&typeof k.headers=="object"&&Object.entries(k.headers).forEach(([Se,Pe])=>{typeof Pe=="string"&&(fe[Se]=Pe)});let je=[`> curl -X ${R} "${se}"`,ws(fe),k.body?Cs(k.body):""].filter(Boolean).join(`
|
|
11
|
+
`);Ke(`
|
|
12
12
|
=== REQUEST ===
|
|
13
13
|
%s
|
|
14
|
-
`,je)}},onResponse({request:
|
|
14
|
+
`,je)}},onResponse({request:_,response:k,options:R}){if(Ke.enabled){let O=R.method||"GET",se=typeof _=="string"?_:_.url;Ke(`
|
|
15
15
|
=== RESPONSE [%s %s] (%dms) ===
|
|
16
16
|
%s
|
|
17
|
-
`,
|
|
17
|
+
`,O,se,k.headers.get("x-response-time")||"?",nn(k.status,k.statusText,k.headers,k._data))}},onResponseError:({request:_,response:k,options:R})=>{if(Ke.enabled){console.warn(`HTTP ${k.status}: ${k.url}`);let O=R.method||"GET",se=typeof _=="string"?_:_.url;Ke(`
|
|
18
18
|
=== ERROR RESPONSE [%s %s] ===
|
|
19
19
|
%s
|
|
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(...
|
|
22
|
-
`))},warn:(e,...t)=>{
|
|
23
|
-
`))},info:(e,...t)=>{
|
|
24
|
-
`))},success:(e,...t)=>{
|
|
25
|
-
`))},debug:(e,...t)=>{
|
|
26
|
-
`))},table:(e,t)=>{if(!
|
|
27
|
-
`)},startSpinner:e=>{if(
|
|
28
|
-
`),e.data!==void 0&&e.data!==null&&
|
|
29
|
-
`)
|
|
20
|
+
`,O,se,nn(k.status,k.statusText,k.headers,k._data))}m&&m({request:_,response:k,options:R})}})}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 i=s.headers;s.headers={...i,"Content-Type":""}}return s}async post(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("POST",n,r))}catch(s){let i=this.convertToRequestError(s);throw this.emitError(i)}}async put(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("PUT",n,r))}catch(s){let i=this.convertToRequestError(s);throw this.emitError(i)}}async patch(t,n,r){try{return await this.fetchInstance(t,this.buildRequestOptions("PATCH",n,r))}catch(s){let i=this.convertToRequestError(s);throw this.emitError(i)}}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?At.fromFetchError(t):t instanceof Error?At.fromError(t):new At("Unknown error occurred",{detail:"Unknown error occurred"})}emitError(t){let n=bs(t);return this.emitter.emit("error",n),n}async safeRequest(t){try{return{success:!0,data:await t()}}catch(n){if(n instanceof he)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 vn({...this.config,version:t})}extend(t){let n=typeof t=="function"?t(this):t,r=Object.create(this);for(let[s,i]of Object.entries(n))typeof i=="function"&&(r[s]=(...a)=>i(this,...a));return r}};function ks(e={}){return new Ss(e)}var Es=$.object({username:$.string(),email:$.string(),role:$.enum(["admin","user"]),avatar:$.string(),email_verified:$.boolean(),totp_enabled:$.boolean(),has_backup_codes:$.boolean(),flag_has_password:$.boolean()}).passthrough(),As=$.object({id:$.string(),name:$.string(),slug:$.string().nullable(),tier:$.string(),role:$.string(),avatar:$.string().nullable().optional()}).passthrough(),Is=$.object({balance:$.string().or($.number()),granted_balance:$.string().or($.number()),is_post_paid:$.boolean(),outstanding_amount:$.string().or($.number()).nullable()}).passthrough(),Rs=$.object({user:Es,workspace:As,credits:Is}).passthrough(),xs=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 Ts(e){return e==="2025-10-28"?xs:Rs}async function yn(e,t){let n=await e.get("/auth/me");return t?.schema===!1?n:(t?.schema||Ts(e.config.version)).parse(n)}async function js(e,t){try{return{success:!0,data:await yn(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 _n={[an.id]:an,[sn.id]:sn,[rn.id]:rn},Ps=xe.object({id:xe.string(),slug:xe.string().nullable(),url:xe.string(),version:xe.string(),chain_id:xe.number().nullable(),kms_contract_address:xe.string().nullable().transform(e=>e),gateway_app_id:xe.string().nullable().transform(e=>e),k256_pubkey:xe.string().nullable().optional()}).passthrough(),be=Ps.transform(e=>{if(e.chain_id!=null){let t=_n[e.chain_id];if(t)return{...e,chain:t}}return e}),wn=p.union([p.number(),p.string()]),qs=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()}),$s=p.object({id:wn,username:p.string()}),Cn=p.object({id:p.number(),name:p.string(),region_identifier:p.string().nullable().optional()}),Pt=p.object({vcpu:p.number(),memory:p.number(),disk_size:p.number(),gpu_count:p.number().default(0)}),qt=p.object({app:p.string(),instance:p.string()}),Os=p.object({hosted:qs,name:p.string(),managed_user:$s.nullable(),node:Cn.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:be.nullable(),vcpu:p.number().nullable(),memory:p.number().nullable(),disk_size:p.number().nullable(),gateway_domain:p.string().nullable(),public_urls:p.array(qt),machine_info:Pt.nullable().optional(),updated_at:p.string().nullable().optional()}),Sn=p.object({id:wn,name:p.string(),status:p.string(),in_progress:p.boolean().optional().default(!1),teepod_id:p.number().nullable(),teepod:Cn.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:be.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(qt).optional().default([]),gateway_domain:p.string().optional().nullable(),machine_info:Pt.optional().nullable(),updated_at:p.string().optional().nullable()}),Ns=p.object({items:p.array(Os),total:p.number(),page:p.number(),page_size:p.number(),pages:p.number()}),zs=l.enum(["skip","hourly","monthly"]),Us=l.enum(["phala","ethereum","base","legacy"]),$t=l.object({object_type:l.literal("user"),id:l.string().nullable().optional(),username:l.string().nullable().optional(),avatar_url:l.string().nullable().optional()}),Ot=l.object({object_type:l.literal("workspace"),id:l.string(),name:l.string(),slug:l.string().nullable().optional(),avatar_url:l.string().nullable().optional()}),Ls=l.object({instance_type:l.string().nullable().optional(),vcpu:l.number().int().nullable().optional(),memory_in_gb:l.number().nullable().optional(),disk_in_gb:l.number().int().nullable().optional(),gpus:l.number().int().nullable().optional(),compute_billing_price:l.string().nullable().optional(),billing_period:zs.nullable().optional()}),Fs=l.object({total:l.string().nullable().optional(),compute:l.string().nullable().optional(),disk:l.string().nullable().optional()}),Ds=l.object({order_id:l.string(),status:l.string(),pricing_plan:l.string().nullable().optional(),commitment_days:l.number().int().nullable().optional(),agreed_hourly_rate:l.string().nullable().optional(),hourly_billing_start_time:l.string().nullable().optional(),activated_at:l.string().nullable().optional(),completed_at:l.string().nullable().optional(),cancelled_at:l.string().nullable().optional(),decoupled_at:l.string().nullable().optional(),sku_code:l.string().nullable().optional(),sku_display_name:l.string().nullable().optional()}),Vs=l.object({name:l.string().nullable().optional(),version:l.string().nullable().optional(),is_dev:l.boolean().nullable().optional(),os_image_hash:l.string().nullable().optional()}),Ms=l.object({chain_id:l.number().int().nullable().optional(),dstack_kms_address:l.string().nullable().optional(),dstack_app_address:l.string().nullable().optional(),deployer_address:l.string().nullable().optional(),rpc_endpoint:l.string().nullable().optional(),encrypted_env_pubkey:l.string().nullable().optional()}),Ks=Ms.transform(e=>{if(e.chain_id!=null){let t=_n[e.chain_id];if(t)return{...e,chain:t}}return e}),Hs=l.object({target:l.string().nullable().optional(),started_at:l.string().nullable().optional(),correlation_id:l.string().nullable().optional()}),Gs=l.object({base_domain:l.string().nullable().optional(),cname:l.string().nullable().optional()}),Bs=l.object({serial:l.string().nullable().optional(),stdout:l.string().nullable().optional(),stderr:l.string().nullable().optional(),container_log_base:l.string().nullable().optional()}),kn=l.object({device_id:l.string(),algorithm_version:l.string(),enabled:l.boolean()}),En=l.object({object_type:l.literal("node"),id:l.number().int().nullable().optional(),name:l.string().nullable().optional(),region:l.string().nullable().optional(),device_id:l.string().nullable().optional(),device_ids:l.array(kn).default([]),ppid:l.string().nullable().optional(),status:l.string().nullable().optional(),version:l.string().nullable().optional()});var it=l.object({id:l.string(),name:l.string(),app_id:l.string().nullable().optional(),vm_uuid:l.string().nullable().optional(),instance_id:l.string().nullable().optional(),resource:Ls,node_info:En.nullable().optional(),os:Vs.nullable().optional(),kms_type:Us.nullable().optional(),kms_info:Ks.nullable().optional(),status:l.string(),in_progress:l.boolean().optional().default(!1),progress:Hs.nullable().optional(),compose_hash:l.string().nullable().optional(),docker_compose_hash:l.string().nullable().optional(),pre_launch_script_hash:l.string().nullable().optional(),gateway:Gs,logs:Bs.optional().default({}),services:l.array(l.record(l.any())).optional().default([]),endpoints:l.array(qt).nullable().optional(),public_logs:l.boolean().optional(),public_sysinfo:l.boolean().optional(),public_tcbinfo:l.boolean().optional(),gateway_enabled:l.boolean().optional(),secure_time:l.boolean().optional(),listed:l.boolean().optional().default(!1),storage_fs:l.string().optional(),workspace:Ot.nullable().optional(),creator:$t.nullable().optional(),created_at:l.string().nullable().optional(),deleted_at:l.string().nullable().optional(),project_type:l.string().nullable().optional(),hourly_rate:Fs.nullable().optional(),billing_interval:l.string().nullable().optional(),gpu_rental_order:Ds.nullable().optional()}),gt=it.extend({id:l.string()}),Ws=it.extend({compose_file:l.union([l.record(l.any()),l.string()]).nullable().optional()}),Xs=gt.extend({compose_file:l.union([l.record(l.any()),l.string()]).nullable().optional()}),An=l.object({items:l.array(it),total:l.number(),page:l.number(),page_size:l.number(),pages:l.number()}),Js=An.extend({items:l.array(gt)});function In(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 Rn(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 xn(e,t){function n(a,o){return r(a,o)}async function r(a,o){In(o);let u=await t(a);return o?.schema===!1?u:(o?.schema||e).parse(u)}function s(a,o){return i(a,o)}async function i(a,o){let u=Rn(o);if(u)return u;let f=await(async()=>{try{return{success:!0,data:await t(a)}}catch(d){return d&&typeof d=="object"&&"status"in d?{success:!1,error:d}:d&&typeof d=="object"&&"issues"in d?{success:!1,error:d}:{success:!1,error:{name:"Error",message:d instanceof Error?d.message:String(d)}}}})();return f.success?o?.schema===!1?{success:!0,data:f.data}:(o?.schema||e).safeParse(f.data):f}return{action:n,safeAction:s}}function v(e,t){function n(a,...o){let[u,f]=o;return r(a,u,f)}async function r(a,o,u){In(u);let f=await t(a,o);return u?.schema===!1?f:(u?.schema||e).parse(f)}function s(a,...o){let[u,f]=o;return i(a,u,f)}async function i(a,o,u){let f=Rn(u);if(f)return f;let m=await(async()=>{try{return{success:!0,data:await t(a,o)}}catch(h){return h&&typeof h=="object"&&"status"in h?{success:!1,error:h}:h&&typeof h=="object"&&"issues"in h?{success:!1,error:h}:{success:!1,error:{name:"Error",message:h instanceof Error?h.message:String(h)}}}})();return m.success?u?.schema===!1?{success:!0,data:m.data}:(u?.schema||e).safeParse(m.data):m}return{action:n,safeAction:s}}var Zs=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(),Tn=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(Zs),support_onchain_kms:S.boolean().optional(),fmspc:S.string().nullable().optional(),device_id:S.string().nullable().optional(),device_ids:S.array(kn).default([]),region_identifier:S.string().nullable().optional(),default_kms:S.string().nullable().optional(),kms_list:S.array(S.string()).default([])}).passthrough(),jn=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(),Qs=S.object({tier:S.string(),capacity:jn,nodes:S.array(Tn),kms_list:S.array(be)}).passthrough(),{action:Ys,safeAction:ea}=xn(Qs,async e=>await e.get("/teepods/available")),tt=b.union([b.number(),b.string()]),nt=b.string(),ta=b.object({has_reserved_gpus:b.boolean(),reserved_gpu_count:b.number(),has_public_gpus:b.boolean(),public_gpu_count:b.number()}).passthrough(),Pn=b.object({id:tt,slug:b.string().nullable().optional(),url:b.string(),version:b.string().nullable().optional(),kms_type:b.string(),chain_id:b.number().nullable().optional(),kms_contract_id:tt.nullable().optional(),kms_contract_address:b.string().nullable().optional(),gateway_app_id:b.string().nullable().optional(),supported_os_images:b.array(b.string()).default([])}).passthrough(),qn=b.object({teepod_id:b.number(),kms_id:tt,kms_type:b.string(),kms_contract_id:tt.nullable().optional(),kms_contract_address:b.string().nullable().optional(),supported_os_images:b.array(b.string()).default([])}).passthrough(),$n=b.object({id:tt,teepod_id:b.number().nullable().optional(),kms_contract_id:tt,rpc_url:b.string().nullable().optional(),domain_suffix:b.string().nullable().optional(),enabled:b.boolean()}).passthrough(),na=Pn.extend({id:nt,kms_contract_id:nt.nullable().optional()}),ra=qn.extend({kms_id:nt,kms_contract_id:nt.nullable().optional()}),sa=$n.extend({id:nt,kms_contract_id:nt}),aa=b.object({id:b.string(),name:b.string(),vcpu:b.number(),memory_mb:b.number(),default_disk_size_gb:b.number(),requires_gpu:b.boolean(),requires_gpu_count:b.number(),family:b.string().nullable().optional(),display_order:b.number().nullable().optional()}).passthrough(),On=b.object({tier:b.string(),capacity:jn,nodes:b.array(Tn),kms_nodes:b.array(Pn),node_kms_relations:b.array(qn),gateway_nodes:b.array($n),instance_types:b.array(aa),gpu_availability:ta}).passthrough(),oa=On.extend({kms_nodes:b.array(na),node_kms_relations:b.array(ra),gateway_nodes:b.array(sa)});function Nn(e){return e==="2026-01-21"?On:oa}async function ia(e,t){let n=await e.get("/teepods/cvm-create-resources");return t?.schema===!1?n:(t?.schema||Nn(e.config.version)).parse(n)}async function ca(e,t){try{let n=await e.get("/teepods/cvm-create-resources");return t?.schema===!1?{success:!0,data:n}:{success:!0,data:(t?.schema||Nn(e.config.version)).parse(n)}}catch(n){return{success:!1,error:n}}}var zn=M.object({id:M.string(),name:M.string(),description:M.string(),vcpu:M.number(),memory_mb:M.number(),hourly_rate:M.string(),requires_gpu:M.boolean(),default_disk_size_gb:M.number().default(20),family:M.string().nullable()}).passthrough(),la=M.object({name:M.string(),items:M.array(zn),total:M.number()}).strict(),ua=M.object({result:M.array(la)}).strict(),pa=M.object({items:M.array(zn),total:M.number(),family:M.string()}).strict(),ma=M.object({family:M.string()}).strict(),{action:da,safeAction:fa}=v(ua,async e=>await e.get("/instance-types")),{action:ga,safeAction:ha}=v(pa,async(e,t)=>{let n=ma.parse(t);return await e.get(`/instance-types/${n.family}`)}),Un=X.object({id:X.string(),name:X.string(),slug:X.string().nullable(),avatar_url:X.string().nullable().optional(),tier:X.string(),role:X.string(),is_default:X.boolean(),created_at:X.string(),confidential_models_enabled:X.boolean().optional(),billing_status:X.enum(["active","suspended","abandoned"]).default("active"),suspended_at:X.string().nullable().optional()}).passthrough(),ba=X.object({has_more:X.boolean(),next_cursor:X.string().nullable(),total:X.number().nullable()}).passthrough(),va=X.object({data:X.array(Un),pagination:ba}).passthrough(),{action:ya,safeAction:_a}=v(va,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:wa,safeAction:Ca}=v(Un,async(e,t)=>await e.get(`/workspaces/${t}`));function Ln(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 re=He.object({id:He.string().optional(),uuid:He.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:He.string().optional(),instance_id:He.string().optional(),name:He.string().refine(Ln,{message:"Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"}).optional()}),ue=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=ue(re),q=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}}),ka=q;function Ea(e){return e==="2025-10-28"?Sn:e==="2026-01-21"?Ws:Xs}async function Fn(e,t){let{cvmId:n}=ka.parse(t),r=await e.get(`/cvms/${n}`);return Ea(e.config.version).parse(r)}async function vt(e,t){try{return{success:!0,data:await Fn(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 Aa=Ge.object({page:Ge.number().int().min(1).optional(),page_size:Ge.number().int().min(1).optional(),family:Ge.enum(["all","cpu","gpu"]).optional(),instance_types:Ge.array(Ge.string()).optional()}).strict();function Ia(e){return e==="2025-10-28"?Ns:e==="2026-01-21"?An:Js}async function Dn(e,t){let n=Aa.parse(t??{}),r=await e.get("/cvms/paginated",{params:n});return Ia(e.config.version).parse(r)}async function Nt(e,t){try{return{success:!0,data:await Dn(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 on=200*1024;function Vn(e,t,n){let r=new TextEncoder,s=e?r.encode(e).byteLength:0,i=t?r.encode(t).byteLength:0,a=s+i;if(a>on){let o=on/1024,u=Math.ceil(a/1024);n.addIssue({code:x.ZodIssueCode.custom,message:`Combined size of docker_compose_file and pre_launch_script must not exceed ${o}KB (current: ${u}KB)`})}}var Mn=x.object({allowed_envs:x.array(x.string()).optional(),docker_compose_file:x.string(),features:x.array(x.string()).optional(),name:x.string().optional(),manifest_version:x.number().optional(),runner:x.string().optional(),kms_enabled:x.boolean().optional(),gateway_enabled:x.boolean().optional(),tproxy_enabled:x.boolean().optional(),local_key_provider_enabled:x.boolean().optional(),key_provider:x.enum(["none","kms","local","tpm"]).optional(),key_provider_id:x.string().optional(),public_logs:x.boolean().optional(),public_sysinfo:x.boolean().optional(),public_tcbinfo:x.boolean().optional(),no_instance_id:x.boolean().optional(),secure_time:x.boolean().optional(),port_policy:x.object({ports:x.array(x.object({port:x.number().int().min(1).max(65535),pp:x.boolean()})),restrict_mode:x.boolean()}).optional(),storage_fs:x.enum(["ext4","zfs"]).optional(),swap_size:x.string().optional(),pre_launch_script:x.string().optional(),env_pubkey:x.string().optional(),salt:x.string().optional().nullable()}).passthrough().superRefine((e,t)=>{Vn(e.docker_compose_file,e.pre_launch_script,t)}),Ra=g.object({app_id:g.string().nullable().optional(),app_env_encrypt_pubkey:g.string().nullable().optional(),compose_hash:g.string(),kms_info:be.nullable().optional(),fmspc:g.string().nullable().optional(),device_id:g.string().nullable().optional(),os_image_hash:g.string().nullable().optional(),instance_type:g.string().nullable().optional(),teepod_id:g.number().nullable().optional(),node_id:g.number().nullable().optional(),kms_id:g.string().nullable().optional(),kms_contract_id:g.union([g.string(),g.number()]).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}),It="Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens",xa=g.object({node_id:g.number().optional(),teepod_id:g.number().optional(),region:g.string().optional(),name:g.string().min(5,It).max(63,It).refine(e=>Ln(e),It),instance_type:g.string().optional(),image:g.string().optional(),vcpu:g.number().optional(),memory:g.number().optional(),disk_size:g.number().optional(),compose_file:g.object({allowed_envs:g.array(g.string()).optional(),pre_launch_script:g.string().optional(),docker_compose_file:g.string().optional(),name:g.string().optional().default(""),kms_enabled:g.boolean().optional(),gateway_enabled:g.boolean().optional(),tproxy_enabled:g.boolean().optional(),local_key_provider_enabled:g.boolean().optional(),key_provider:g.enum(["none","kms","local","tpm"]).optional(),key_provider_id:g.string().optional(),public_logs:g.boolean().optional(),public_sysinfo:g.boolean().optional(),public_tcbinfo:g.boolean().optional(),no_instance_id:g.boolean().optional(),secure_time:g.boolean().optional(),storage_fs:g.enum(["ext4","zfs"]).optional(),swap_size:g.string().optional(),port_policy:g.object({ports:g.array(g.object({port:g.number(),pp:g.boolean()})),restrict_mode:g.boolean()}).optional()}).passthrough().superRefine((e,t)=>{Vn(e.docker_compose_file,e.pre_launch_script,t)}),listed:g.boolean().optional(),kms_id:g.string().optional(),kms:g.enum(["PHALA","ETHEREUM","BASE"]).optional(),kms_contract:g.string().optional(),kms_contract_id:g.union([g.string(),g.number()]).optional(),key_provider_mode:g.enum(["kms","local"]).optional(),skip_gateway:g.boolean().optional(),env_keys:g.array(g.string()).optional(),nonce:g.number().optional(),app_id:g.string().optional()}).passthrough().transform(e=>!e.instance_type&&!e.vcpu&&!e.memory?{...e,instance_type:"tdx.small"}:e);function Ta(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:Pa}=v(Ra,async(e,t)=>{let n=xa.parse(t),r=Ta(n);return typeof r.teepod_id=="number"&&typeof r.node_id!="number"&&console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead."),await e.post("/cvms/provision",r)}),Kn=w.object({name:w.string(),status:w.string(),teepod_id:w.number(),teepod:w.object({id:w.number(),name:w.string()}).nullable(),app_id:w.string().nullable(),vm_uuid:w.string().nullable(),instance_id:w.string().nullable(),app_url:w.string().nullable().default(null),base_image:w.string().nullable(),vcpu:w.number(),memory:w.number(),disk_size:w.number(),manifest_version:w.number().nullable().default(2),version:w.string().nullable().default("1.0.0"),runner:w.string().nullable().default("docker-compose"),docker_compose_file:w.string().nullable(),features:w.array(w.string()).nullable().default(["kms","tproxy-net"]),created_at:w.string(),encrypted_env_pubkey:w.string().nullable().optional(),app_auth_contract_address:w.string().nullable().optional(),deployer_address:w.string().nullable().optional()}).passthrough(),Hn=Kn.extend({id:w.number(),user_id:w.number().nullable()}),Gn=Kn.extend({id:w.string(),user_id:w.string().nullable()}),Nu=w.union([Hn,Gn]);var zu=w.object({encrypted_env:w.string().optional().nullable(),app_id:w.string(),compose_hash:w.string(),kms_id:w.string().optional(),kms_contract_id:w.union([w.string(),w.number()]).optional(),contract_address:w.string().optional(),deployer_address:w.string().optional(),env_keys:w.array(w.string()).optional().nullable()}).passthrough();function qa(e){return e==="2026-01-21"?Hn:Gn}async function Bn(e,t){let n=await e.post("/cvms",t);return qa(e.config.version).parse(n)}async function $a(e,t){try{return{success:!0,data:await Bn(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)}}}}function Tt(e){return e==null?e:Array.isArray(e)?e.map(Tt):e&&typeof e=="object"&&e.constructor===Object?Object.keys(e).sort().reduce((t,n)=>{let r=e[n];return t[n]=Tt(r),t},{}):e}function Wn(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 Xn(e){let t=Tt(e),n=JSON.stringify(t,null,4);return n=n.replace(/": /g,'":'),n}function Na(e){let t=Wn(e),n=Xn(t);return Oa.createHash("sha256").update(n,"utf8").digest("hex")}function za(e){let t=e;return{...e,getHash:()=>Na(t),toString:()=>Xn(Wn(t))}}var Ua=Mn.transform(e=>za(e)),La=q,{action:Fa,safeAction:Da}=v(Ua,async(e,t)=>{let{cvmId:n}=La.parse(t);return await e.get(`/cvms/${n}/compose_file`)}),Va=ge.object({id:ge.string().optional(),uuid:ge.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:ge.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:ge.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:Mn,update_env_vars:ge.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=ge.object({app_id:ge.string().nullable(),device_id:ge.string().nullable(),compose_hash:ge.string(),kms_info:be.nullable().optional(),compose_hash_registered:ge.boolean().optional().default(!1),compose_unchanged:ge.boolean().optional().default(!1)}).passthrough(),{action:Ka,safeAction:Ha}=v(Ma,async(e,t)=>{let n=Va.parse(t);return await e.post(`/cvms/${n.cvmId}/compose_file/provision`,n.request)}),Ga=_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(),compose_hash:_e.string().min(1,"Compose hash is required"),encrypted_env:_e.string().optional(),env_keys:_e.array(_e.string()).optional(),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,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})),Ba=_e.any().transform(()=>{}),{action:Wa,safeAction:Xa}=v(Ba,async(e,t)=>{let n=Ga.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})}),Ja=ue(re.extend({encrypted_env:Q.string().describe("Encrypted environment variables (hex string)"),env_keys:Q.array(Q.string()).optional().describe("List of allowed environment variable keys"),compose_hash:Q.string().optional().describe("Compose hash for verification (Phase 2, required when env_keys changes)"),transaction_hash:Q.string().optional().describe("On-chain transaction hash for verification (Phase 2, required when env_keys changes)")})).transform(e=>{let{cvmId:t}=q.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}}),Za=Q.object({status:Q.literal("in_progress"),message:Q.string(),correlation_id:Q.string(),allowed_envs_changed:Q.boolean()}),Qa=Q.object({status:Q.literal("precondition_required"),message:Q.string(),compose_hash:Q.string(),app_id:Q.string(),device_id:Q.string(),kms_info:be}),Ya=Q.union([Za,Qa]),{action:eo,safeAction:to}=v(Ya,async(e,t)=>{let n=Ja.parse(t);try{return await e.patch(`/cvms/${n.cvmId}/envs`,n.request)}catch(r){if(r instanceof he&&r.status===465){let s=r.detail;if(s&&typeof s=="object"){let i=s,a=i.details;if(a&&Array.isArray(a)){let o=new Map(a.map(h=>[h.field,h.value])),u=o.get("compose_hash"),f=o.get("app_id"),m=o.get("device_id"),d=o.get("kms_info");if(u&&f)return{status:"precondition_required",message:i.message||"Compose hash verification required",compose_hash:u,app_id:f,device_id:m||"",kms_info:d}}}}throw r}}),no=ue(re.extend({docker_compose_file:Y.string().describe("Docker Compose YAML content"),compose_hash:Y.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:Y.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=q.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}}),ro=Y.object({status:Y.literal("in_progress"),message:Y.string(),correlation_id:Y.string()}),so=Y.object({status:Y.literal("precondition_required"),message:Y.string(),compose_hash:Y.string(),app_id:Y.string(),device_id:Y.string(),kms_info:be}),ao=Y.object({status:Y.literal("no_change"),message:Y.string()}),oo=Y.union([ro,so,ao]),{action:io,safeAction:co}=v(oo,async(e,t)=>{let n=no.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 he&&s.status===465){let i=s.detail;if(i&&typeof i=="object"){let a=i,o=a.details;if(o&&Array.isArray(o)){let u=new Map(o.map(_=>[_.field,_.value])),f=u.get("compose_hash"),m=u.get("app_id"),d=u.get("device_id"),h=u.get("kms_info");if(f&&m)return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:f,app_id:m,device_id:d||"",kms_info:h}}}}throw s}}),lo=ue(re.extend({pre_launch_script:ee.string().describe("Pre-launch script content (shell script)"),compose_hash:ee.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),transaction_hash:ee.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")})).transform(e=>{let{cvmId:t}=q.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}}),uo=ee.object({status:ee.literal("in_progress"),message:ee.string(),correlation_id:ee.string()}),po=ee.object({status:ee.literal("precondition_required"),message:ee.string(),compose_hash:ee.string(),app_id:ee.string(),device_id:ee.string(),kms_info:be}),mo=ee.object({status:ee.literal("no_change"),message:ee.string()}),fo=ee.union([uo,po,mo]),{action:go,safeAction:ho}=v(fo,async(e,t)=>{let n=lo.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 he&&s.status===465){let i=s.detail;if(i&&typeof i=="object"){let a=i,o=a.details;if(o&&Array.isArray(o)){let u=new Map(o.map(_=>[_.field,_.value])),f=u.get("compose_hash"),m=u.get("app_id"),d=u.get("device_id"),h=u.get("kms_info");if(f&&m)return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:f,app_id:m,device_id:d||"",kms_info:h}}}}throw s}}),vo=q,{action:yo,safeAction:_o}=v(bo.string(),async(e,t)=>{let{cvmId:n}=vo.parse(t);return await e.get(`/cvms/${n}/pre-launch-script`)}),wo=q,Co=Be.object({current_hash:Be.string().nullable(),latest_official_hash:Be.string(),is_official:Be.boolean(),is_latest:Be.boolean(),can_upgrade:Be.boolean()}),{action:So,safeAction:ko}=v(Co,async(e,t)=>{let{cvmId:n}=wo.parse(t);return await e.get(`/cvms/${n}/pre-launch-script/upgrade-status`)}),Eo=ue(re.extend({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}=q.parse(e);return{cvmId:t,request:{compose_hash:e.compose_hash,transaction_hash:e.transaction_hash},_raw:e}}),Ao=de.object({status:de.literal("in_progress"),message:de.string(),correlation_id:de.string()}),Io=de.object({status:de.literal("precondition_required"),message:de.string(),compose_hash:de.string(),app_id:de.string(),device_id:de.string(),kms_info:be}),Ro=de.union([Ao,Io]),{action:xo,safeAction:To}=v(Ro,async(e,t)=>{let n=Eo.parse(t),r={};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.post(`/cvms/${n.cvmId}/pre-launch-script/upgrade-to-latest-official`,void 0,{headers:r})}catch(s){if(s instanceof he&&s.status===465){let i=s.detail;if(i&&typeof i=="object"){let a=i,o=a.details;if(o&&Array.isArray(o)){let u=new Map(o.map(_=>[_.field,_.value])),f=u.get("compose_hash"),m=u.get("app_id"),d=u.get("device_id"),h=u.get("kms_info");if(f&&m)return{status:"precondition_required",message:a.message||"Compose hash verification required",compose_hash:f,app_id:m,device_id:d||"",kms_info:h}}}}throw s}}),jo=cn.object({kms_id:cn.string().min(1,"KMS ID is required")}),{action:Po,safeAction:qo}=v(be,async(e,t)=>{let n=jo.parse(t);return await e.get(`/kms/${n.kms_id}`,{headers:{"X-Phala-Version":"2026-05-22"}})}),$o=Ie.object({page:Ie.number().int().min(1).optional(),page_size:Ie.number().int().min(1).optional(),is_onchain:Ie.boolean().optional()}).strict(),Oo=Ie.object({items:Ie.array(be),total:Ie.number(),page:Ie.number(),page_size:Ie.number(),pages:Ie.number()}).strict(),{action:No,safeAction:zo}=v(Oo,async(e,t)=>{let n=$o.parse(t??{});return await e.get("/kms",{params:n,headers:{"X-Phala-Version":"2026-05-22"}})}),Jn=oe.object({id:oe.string(),slug:oe.string().nullable(),label:oe.string().nullable(),contract_address:oe.string(),chain_id:oe.number(),k256_pubkey:oe.string().nullable(),ca_pubkey:oe.string().nullable(),node_count:oe.number()}).passthrough(),Uo=oe.object({id:oe.string(),slug:oe.string().nullable(),url:oe.string(),version:oe.string(),kms_type:oe.string()}).passthrough(),Lo="2026-06-23",Fo=Re.object({page:Re.number().int().min(1).optional(),page_size:Re.number().int().min(1).optional(),is_onchain:Re.boolean().optional()}).strict(),Do=Re.object({items:Re.array(Jn),total:Re.number(),page:Re.number(),page_size:Re.number(),pages:Re.number()}).strict(),{action:Vo,safeAction:Mo}=v(Do,async(e,t)=>{let n=Fo.parse(t??{});return await e.get("/kms",{params:n,headers:{"X-Phala-Version":Lo}})}),Ko="2026-06-23",Ho=ln.object({slug:ln.string().min(1,"KMS contract slug is required")}).strict(),{action:Go,safeAction:Bo}=v(Jn,async(e,t)=>{let{slug:n}=Ho.parse(t);return await e.get(`/kms/${n}`,{headers:{"X-Phala-Version":Ko}})}),Wo="2026-06-23",Xo=ot.object({slug:ot.string().min(1,"KMS contract slug is required")}).strict(),Jo=ot.object({items:ot.array(Uo),total:ot.number()}).strict(),{action:Zo,safeAction:Qo}=v(Jo,async(e,t)=>{let{slug:n}=Xo.parse(t);return await e.get(`/kms/${n}/nodes`,{headers:{"X-Phala-Version":Wo}})}),Yo=Ye.object({kms:Ye.string().min(1,"KMS ID or slug is required"),app_id:Ye.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(),ei=Ye.object({public_key:Ye.string(),signature:Ye.string()}).strict(),{action:ti,safeAction:ni}=v(ei,async(e,t)=>{let n=Yo.parse(t);return await e.get(`/kms/${n.kms}/pubkey/${n.app_id}`,{headers:{"X-Phala-Version":"2026-05-22"}})}),ri=Le.object({counts:Le.number().int().min(1).max(20).optional().default(1)}).strict(),si=Le.object({app_ids:Le.array(Le.object({app_id:Le.string(),nonce:Le.number().int().min(0)}))}).strict(),{action:ai,safeAction:oi}=v(si,async(e,t)=>{let n=ri.parse(t??{}),r=new URLSearchParams;return r.append("counts",n.counts.toString()),await e.get(`/kms/phala/next_app_id?${r.toString()}`)}),Zn=P.object({name:P.string(),status:P.string(),teepod_id:P.number(),teepod:P.object({id:P.number(),name:P.string(),region_identifier:P.string().nullable().optional()}).optional().nullable(),app_id:P.string(),vm_uuid:P.string().nullable(),instance_id:P.string().nullable(),app_url:P.string().optional().nullable(),base_image:P.string().optional().nullable(),vcpu:P.number(),memory:P.number(),disk_size:P.number(),manifest_version:P.number().optional().nullable(),version:P.string().optional().nullable(),runner:P.string().optional().nullable(),docker_compose_file:P.string().optional().nullable(),features:P.array(P.string()).optional().nullable(),created_at:P.string(),encrypted_env_pubkey:P.string().nullable()}),Qn=Zn.extend({id:P.number(),user_id:P.number().optional().nullable()}),zt=Zn.extend({id:P.string(),user_id:P.string().optional().nullable()}),np=P.union([Qn,zt]),ii=zt;function yt(e){return e==="2026-01-21"?Qn:zt}var ci=q;async function Yn(e,t){let{cvmId:n}=ci.parse(t),r=await e.post(`/cvms/${n}/start`);return yt(e.config.version).parse(r)}async function li(e,t){try{return{success:!0,data:await Yn(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 ui=q;async function er(e,t){let{cvmId:n}=ui.parse(t),r=await e.post(`/cvms/${n}/stop`);return yt(e.config.version).parse(r)}async function pi(e,t){try{return{success:!0,data:await er(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 mi=q;async function tr(e,t){let{cvmId:n}=mi.parse(t),r=await e.post(`/cvms/${n}/shutdown`);return yt(e.config.version).parse(r)}async function di(e,t){try{return{success:!0,data:await tr(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 gi=ue(re.extend({force:fi.boolean().optional()}));async function nr(e,t){let n=gi.parse(t),{cvmId:r}=q.parse(n),{force:s=!1}=n,i=await e.post(`/cvms/${r}/restart`,{force:s});return yt(e.config.version).parse(i)}async function hi(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 vi=q,{action:yi,safeAction:_i}=v(bi.void(),async(e,t)=>{let{cvmId:n}=vi.parse(t);await e.delete(`/cvms/${n}`)}),wi=T.object({name:T.string(),mount_point:T.string(),total_size:T.number(),free_size:T.number()}),Ci=T.object({os_name:T.string(),os_version:T.string(),kernel_version:T.string(),cpu_model:T.string(),num_cpus:T.number(),total_memory:T.number(),available_memory:T.number(),used_memory:T.number(),free_memory:T.number(),total_swap:T.number(),used_swap:T.number(),free_swap:T.number(),uptime:T.number(),loadavg_one:T.number(),loadavg_five:T.number(),loadavg_fifteen:T.number(),disks:T.array(wi)}),Si=T.object({is_online:T.boolean(),is_public:T.boolean().default(!1),error:T.string().nullable(),sysinfo:Ci.nullable(),status:T.string().nullable(),in_progress:T.boolean().default(!1),boot_progress:T.string().nullable(),boot_error:T.string().nullable()}),ki=q,{action:Ei,safeAction:Ai}=v(Si,async(e,t)=>{let{cvmId:n}=ki.parse(t);return await e.get(`/cvms/${n}/stats`)}),Ii=Ae.object({app:Ae.string(),instance:Ae.string()}),Ri=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(Ii).nullable()}),xi=q,{action:Ti,safeAction:ji}=v(Ri,async(e,t)=>{let{cvmId:n}=xi.parse(t);return await e.get(`/cvms/${n}/network`)}),qi=q,{action:$i,safeAction:Oi}=v(Pi.string(),async(e,t)=>{let{cvmId:n}=qi.parse(t);return await e.get(`/cvms/${n}/docker-compose.yml`)}),Ni=V.object({id:V.string(),names:V.array(V.string()),image:V.string(),image_id:V.string(),command:V.string().nullable().optional(),created:V.number(),state:V.string(),status:V.string(),log_endpoint:V.string().nullable()}),zi=V.object({is_online:V.boolean(),is_public:V.boolean().default(!0),error:V.string().nullable(),docker_compose_file:V.string().nullable(),manifest_version:V.number().nullable(),version:V.string().nullable(),runner:V.string().nullable(),features:V.array(V.string()).nullable(),containers:V.array(Ni).nullable()}),Ui=q,{action:Li,safeAction:Fi}=v(zi,async(e,t)=>{let{cvmId:n}=Ui.parse(t);return await e.get(`/cvms/${n}/composition`)}),Di=y.object({common_name:y.string().nullable(),organization:y.string().nullable(),country:y.string().nullable(),state:y.string().nullable(),locality:y.string().nullable()}),Vi=y.object({common_name:y.string().nullable(),organization:y.string().nullable(),country:y.string().nullable()}),rr=y.object({subject:Di,issuer:Vi,serial_number:y.string(),not_before:y.string(),not_after:y.string(),version:y.string(),fingerprint:y.string(),signature_algorithm:y.string(),sans:y.array(y.string()).nullable(),is_ca:y.boolean(),position_in_chain:y.number().nullable(),quote:y.string().nullable(),app_id:y.string().nullable().optional(),cert_usage:y.string().nullable().optional()}),Mi=y.object({imr:y.number(),event_type:y.number(),digest:y.string(),event:y.string(),event_payload:y.string()}),sr=y.object({mrtd:y.string(),rootfs_hash:y.string().nullable().optional(),rtmr0:y.string(),rtmr1:y.string(),rtmr2:y.string(),rtmr3:y.string(),event_log:y.array(Mi),app_compose:y.string()}),Ki=y.object({name:y.string().nullable(),is_online:y.boolean(),is_public:y.boolean().default(!0),error:y.string().nullable(),app_certificates:y.array(rr).nullable(),tcb_info:sr.nullable(),compose_file:y.string().nullable()}),Hi=q,{action:Gi,safeAction:Bi}=v(Ki,async(e,t)=>{let{cvmId:n}=Hi.parse(t);return await e.get(`/cvms/${n}/attestation`)}),Wi=ue(re.extend({vcpu:Te.number().optional(),memory:Te.number().optional(),disk_size:Te.number().optional(),instance_type:Te.string().optional(),allow_restart:Te.boolean().optional()})),Xi=Te.object({message:Te.string(),correlation_id:Te.string(),status:Te.string()}),{action:Ji,safeAction:Zi}=v(Xi,async(e,t)=>{let n=Wi.parse(t),{cvmId:r}=q.parse(n),{...s}=n;return await e.patch(`/cvms/${r}`,s)}),Qi=ue(re.extend({public_sysinfo:Rt.boolean(),public_logs:Rt.boolean(),public_tcbinfo:Rt.boolean().optional()})),{action:Yi,safeAction:ec}=v(Sn,async(e,t)=>{let n=Qi.parse(t),{cvmId:r}=q.parse(n),{public_sysinfo:s,public_logs:i,public_tcbinfo:a}=n;return await e.patch(`/cvms/${r}/visibility`,{public_sysinfo:s,public_logs:i,public_tcbinfo:a})}),un=ne.object({name:ne.string(),os_image_hash:ne.string().nullable(),is_current:ne.boolean()}),tc=ne.object({version:ne.union([ne.tuple([ne.number(),ne.number(),ne.number(),ne.number()]),ne.tuple([ne.number(),ne.number(),ne.number()])]),prod:un.nullable(),dev:un.nullable()}),nc=ne.array(tc),rc=q,{action:sc,safeAction:ac}=v(nc,async(e,t)=>{let{cvmId:n}=rc.parse(t);return await e.get(`/cvms/${n}/available-os-images`)}),oc=ue(re.extend({os_image_name:ar.string().min(1,"OS image name is required")})),{action:ic,safeAction:cc}=v(ar.void(),async(e,t)=>{let n=oc.parse(t),{cvmId:r}=q.parse(n),{os_image_name:s}=n;await e.patch(`/cvms/${r}/os-image`,{os_image_name:s})}),lc=ke.object({id:ke.string().optional(),instance_id:ke.string().optional(),name:ke.string(),status:ke.string(),uptime:ke.string().optional(),exited_at:ke.string().optional(),boot_progress:ke.string().optional(),boot_error:ke.string().optional(),shutdown_progress:ke.string().optional()}),uc=q,{action:pc,safeAction:mc}=v(lc,async(e,t)=>{let{cvmId:n}=uc.parse(t);return await e.get(`/cvms/${n}/state`)}),or=le.object({id:le.string(),user_id:le.string(),name:le.string(),public_key:le.string(),fingerprint:le.string(),key_type:le.string(),source:le.string(),key_metadata:le.record(le.unknown()).nullable().optional(),last_synced_at:le.string().nullable().optional(),created_at:le.string(),updated_at:le.string()}),dc=le.array(or);async function ir(e){let t=await e.get("/user/ssh-keys");return dc.parse(t)}async function fc(e){try{return{success:!0,data:await ir(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 gc=$e.object({github_username:$e.string().min(1)}),hc=$e.object({github_username:$e.string(),keys_added:$e.number().int(),keys_skipped:$e.number().int(),errors:$e.array($e.string()).default([])}),{action:bc,safeAction:vc}=v(hc,async(e,t)=>{let{github_username:n}=gc.parse(t);return await e.post("/user/ssh-keys/github-profile",{github_username:n})}),yc=xt.object({name:xt.string().min(1),public_key:xt.string().min(1)}),{action:_c,safeAction:wc}=v(or,async(e,t)=>{let{name:n,public_key:r}=yc.parse(t);return await e.post("/user/ssh-keys",{name:n,public_key:r})}),Cc=jt.object({keyId:jt.string().min(1)}),{action:Sc,safeAction:kc}=v(jt.void(),async(e,t)=>{let{keyId:n}=Cc.parse(t);await e.delete(`/user/ssh-keys/${n}`)}),Ec=Ue.object({synced_count:Ue.number().int(),keys_added:Ue.number().int(),keys_updated:Ue.number().int(),keys_removed:Ue.number().int(),errors:Ue.array(Ue.string()).default([])}),{action:Ac,safeAction:Ic}=xn(Ec,async e=>await e.post("/user/ssh-keys/github-sync",{})),Rc=Z.object({name:Z.string(),slug:Z.string(),version:Z.string(),os_image_hash:Z.string().nullable(),is_dev:Z.boolean(),requires_gpu:Z.boolean()}).passthrough(),xc=Z.object({page:Z.number().int().min(1).optional(),page_size:Z.number().int().min(1).optional(),is_dev:Z.boolean().optional()}).strict(),Tc=Z.object({items:Z.array(Rc),total:Z.number(),page:Z.number(),page_size:Z.number(),pages:Z.number()}).passthrough(),{action:jc,safeAction:Pc}=v(Tc,async(e,t)=>{let n=xc.parse(t??{});return await e.get("/os-images",{params:n})}),qc=N.object({device_id:N.string(),node_name:N.string().nullable().optional(),on_chain_allowed:N.boolean().nullable()}).passthrough(),$c=N.object({name:N.string(),version:N.string(),os_image_hash:N.string().nullable(),on_chain_allowed:N.boolean().nullable()}).passthrough(),Oc=N.object({contract_address:N.string(),chain_id:N.number(),chain_name:N.string(),k256_pubkey:N.string().nullable().optional(),ca_pubkey:N.string().nullable().optional(),gateway_contract_address:N.string().nullable().optional(),devices:N.array(qc),os_images:N.array($c)}).passthrough(),Nc=N.object({chain_name:N.string(),chain_id:N.number(),contracts:N.array(Oc)}).passthrough(),zc=N.object({chain:N.string()}).strict(),{action:Uc,safeAction:Lc}=v(Nc,async(e,t)=>{let{chain:n}=zc.parse(t);return await e.get(`/kms/on-chain/${n}`)});function cr(e={}){let t=ks(e),n={getCurrentUser:yn,safeGetCurrentUser:js,getAvailableNodes:Ys,safeGetAvailableNodes:ea,getCvmCreateResources:ia,safeGetCvmCreateResources:ca,listAllInstanceTypeFamilies:da,safeListAllInstanceTypeFamilies:fa,listFamilyInstanceTypes:ga,safeListFamilyInstanceTypes:ha,listWorkspaces:ya,safeListWorkspaces:_a,getWorkspace:wa,safeGetWorkspace:Ca,getCvmInfo:Fn,safeGetCvmInfo:vt,getCvmList:Dn,safeGetCvmList:Nt,provisionCvm:ja,safeProvisionCvm:Pa,commitCvmProvision:Bn,safeCommitCvmProvision:$a,getCvmComposeFile:Fa,safeGetCvmComposeFile:Da,provisionCvmComposeFileUpdate:Ka,safeProvisionCvmComposeFileUpdate:Ha,commitCvmComposeFileUpdate:Wa,safeCommitCvmComposeFileUpdate:Xa,updateCvmEnvs:eo,safeUpdateCvmEnvs:to,updateDockerCompose:io,safeUpdateDockerCompose:co,updatePreLaunchScript:go,safeUpdatePreLaunchScript:ho,getCvmPreLaunchScript:yo,safeGetCvmPreLaunchScript:_o,getPreLaunchScriptUpgradeStatus:So,safeGetPreLaunchScriptUpgradeStatus:ko,upgradePreLaunchScript:xo,safeUpgradePreLaunchScript:To,startCvm:Yn,safeStartCvm:li,stopCvm:er,safeStopCvm:pi,shutdownCvm:tr,safeShutdownCvm:di,restartCvm:nr,safeRestartCvm:hi,deleteCvm:yi,safeDeleteCvm:_i,getCvmStats:Ei,safeGetCvmStats:Ai,getCvmNetwork:Ti,safeGetCvmNetwork:ji,getCvmDockerCompose:$i,safeGetCvmDockerCompose:Oi,getCvmContainersStats:Li,safeGetCvmContainersStats:Fi,getCvmAttestation:Gi,safeGetCvmAttestation:Bi,updateCvmResources:Ji,safeUpdateCvmResources:Zi,updateCvmVisibility:Yi,safeUpdateCvmVisibility:ec,getAvailableOsImages:sc,safeGetAvailableOsImages:ac,updateOsImage:ic,safeUpdateOsImage:cc,getKmsInfo:Po,safeGetKmsInfo:qo,getKmsList:No,safeGetKmsList:zo,listKmsContracts:Vo,safeListKmsContracts:Mo,getKmsContract:Go,safeGetKmsContract:Bo,listKmsContractNodes:Zo,safeListKmsContractNodes:Qo,getAppEnvEncryptPubKey:ti,safeGetAppEnvEncryptPubKey:ni,nextAppIds:ai,safeNextAppIds:oi,getCvmState:pc,safeGetCvmState:mc,listSshKeys:ir,safeListSshKeys:fc,importGithubProfileSshKeys:bc,safeImportGithubProfileSshKeys:vc,createSshKey:_c,safeCreateSshKey:wc,deleteSshKey:Sc,safeDeleteSshKey:kc,syncGithubSshKeys:Ac,safeSyncGithubSshKeys:Ic,getOsImages:jc,safeGetOsImages:Pc,getKmsOnChainDetail:Uc,safeGetKmsOnChainDetail:Lc};return t.extend(n)}var pn=C.object({vm_uuid:C.string().nullable(),app_id:C.string(),name:C.string().default(""),status:C.string(),vcpu:C.number().int(),memory:C.number().int(),disk_size:C.number().int(),teepod_id:C.number().int(),teepod_name:C.string(),region_identifier:C.string().nullable().optional(),kms_type:C.string().nullable().optional(),instance_type:C.string().nullable().optional(),listed:C.boolean().nullable().optional(),base_image:C.string().nullable().optional(),kms_slug:C.string().nullable().optional(),kms_id:C.string().nullable().optional(),kms_contract_id:C.string().nullable().optional(),instance_id:C.string().nullable().optional(),machine_info:Pt.nullable().optional(),updated_at:C.string().nullable().optional()}),Fc=C.object({display_name:C.string().nullable().optional(),avatar_url:C.string().nullable().optional(),description:C.string().nullable().optional(),custom_domain:C.string().nullable().optional()}),Dc=C.object({id:C.string(),name:C.string(),app_id:C.string(),app_provision_type:C.string().nullable().optional(),app_icon_url:C.string().nullable().optional(),created_at:C.string(),kms_type:C.string(),profile:Fc.nullable().optional(),current_cvm:pn.nullable().optional(),cvms:C.array(pn).default([]),cvm_count:C.number().int().default(0)}),Vc=Dc,Sp=C.object({dstack_apps:C.array(Vc),page:C.number().int(),page_size:C.number().int(),total:C.number().int(),total_pages:C.number().int()}),lr=z.object({id:z.string(),name:z.string(),app_id:z.string(),app_provision_type:z.string().nullable().optional(),app_icon_url:z.string().nullable().optional(),created_at:z.string(),kms_type:z.string(),profile:z.object({display_name:z.string().nullable().optional(),avatar_url:z.string().nullable().optional(),description:z.string().nullable().optional(),custom_domain:z.string().nullable().optional()}).nullable().optional(),current_cvm:it.nullable().optional(),cvms:z.array(it).default([]),cvm_count:z.number().int().default(0)}),Mc=lr.extend({current_cvm:gt.nullable().optional(),cvms:z.array(gt).default([])}),Kc=lr,Hc=Mc,Gc=z.object({dstack_apps:z.array(Kc),page:z.number().int(),page_size:z.number().int(),total:z.number().int(),total_pages:z.number().int()}),Ep=Gc.extend({dstack_apps:z.array(Hc)}),ur=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()}),Bc=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:$t.nullable().optional(),cvm:ur.nullable().optional(),workspace:Ot.nullable().optional()}),Ip=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:$t.nullable().optional(),cvm:ur.nullable().optional(),workspace:Ot.nullable().optional()}),Rp=I.object({revisions:I.array(Bc),total:I.number().int(),page:I.number().int(),page_size:I.number().int(),total_pages:I.number().int()});var Wc=K.object({chain:K.unknown().optional(),rpcUrl:K.string().optional(),kmsContractAddress:K.string(),privateKey:K.string().optional(),walletClient:K.unknown().optional(),publicClient:K.unknown().optional(),allowAnyDevice:K.boolean().optional().default(!1),deviceId:K.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),composeHash:K.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),disableUpgrades:K.boolean().optional().default(!1),skipPrerequisiteChecks:K.boolean().optional().default(!1),minBalance:K.string().optional()}).passthrough(),Yp=Wc.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"]}),em=K.object({appId:K.string(),appAuthAddress:K.string(),deployer:K.string(),transactionHash:K.string(),blockNumber:K.bigint().optional(),gasUsed:K.bigint().optional()}).passthrough();var um=U.object({chain:U.unknown().optional(),rpcUrl:U.string().optional(),appId:U.string(),composeHash: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=>{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"]}),pm=U.object({composeHash:U.string(),appId:U.string(),transactionHash:U.string(),blockNumber:U.bigint().optional(),gasUsed:U.bigint().optional()}).passthrough();var _m=L.object({chain:L.unknown().optional(),rpcUrl:L.string().optional(),appAddress:L.string(),deviceId:L.string(),privateKey:L.string().optional(),walletClient:L.unknown().optional(),publicClient:L.unknown().optional(),skipPrerequisiteChecks:L.boolean().optional().default(!1),minBalance:L.string().optional(),timeout:L.number().optional().default(12e4),retryOptions:L.unknown().optional(),signal:L.unknown().optional(),onTransactionStateChange:L.function().optional(),onTransactionSubmitted:L.function().optional(),onTransactionConfirmed:L.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"]}),wm=L.object({appAddress:L.string(),deviceId:L.string(),transactionHash:L.string(),blockNumber:L.bigint().optional(),gasUsed:L.bigint().optional()}).passthrough();var Tm=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"]}),jm=F.object({appAddress:F.string(),deviceId:F.string(),transactionHash:F.string(),blockNumber:F.bigint().optional(),gasUsed:F.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"]}),Dm=D.object({appAddress:D.string(),allow:D.boolean(),transactionHash:D.string(),blockNumber:D.bigint().optional(),gasUsed:D.bigint().optional()}).passthrough();var Gm=We.object({appAddress:We.string(),owner:We.string(),allowAnyDevice:We.boolean(),devices:We.array(We.string())});var Xc=En;var Jc=Xe.object({items:Xe.array(Xc),total:Xe.number(),page:Xe.number(),page_size:Xe.number(),pages:Xe.number()}).passthrough(),{action:rd,safeAction:sd}=v(Jc,async(e,t)=>{let{teamSlug:n,page:r,pageSize:s}=t,i=new URLSearchParams;r!==void 0&&i.append("page",r.toString()),s!==void 0&&i.append("page_size",s.toString());let a=i.toString()?`/workspaces/${n}/nodes?${i.toString()}`:`/workspaces/${n}/nodes`;return await e.get(a)}),Qe=we.object({limit:we.number(),remaining:we.number()}).passthrough(),Zc=we.object({vm_slots:Qe,vcpu:Qe,memory_mb:Qe,disk_gb:Qe}).passthrough(),Qc=we.object({gpus:Qe,in_use:we.number(),misconfigured:we.number()}).passthrough(),Yc=we.object({team_slug:we.string(),tier:we.string(),quotas:Zc,reserved_nodes:Qe,reserved_gpu:Qc,as_of:we.string()}).passthrough(),{action:od,safeAction:id}=v(Yc,async(e,t)=>await e.get(`/workspaces/${t.teamSlug}/quotas`)),ld=ue(re.extend({node_id:el.number().optional()}));var pd=Je.object({target:Je.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),interval:Je.number().min(5).max(30).default(5).describe("Polling interval in seconds"),timeout:Je.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),maxRetries:Je.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),retryDelay:Je.number().min(0).default(5e3).describe("Delay between retries in milliseconds")});var tl=ue(re.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()})),nl=A.object({requiresOnChainHash:A.literal(!1),correlationId:A.string()}),rl=A.object({requiresOnChainHash:A.literal(!0),composeHash:A.string(),appId:A.string(),deviceId:A.string(),kmsInfo:be,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()}),sl=A.discriminatedUnion("requiresOnChainHash",[nl,rl]);function al(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:dd,safeAction:fd}=v(sl,async(e,t)=>{let n=tl.parse(t),{cvmId:r}=q.parse(n),{id:s,uuid:i,app_id:a,instance_id:o,name:u,prepareOnly:f,...m}=n;try{return{requiresOnChainHash:!1,correlationId:(f?await e.patch(`/cvms/${r}`,m,{headers:{"X-Prepare-Only":"true"}}):await e.patch(`/cvms/${r}`,m)).correlation_id}}catch(d){if(d instanceof he&&d.status===465){let h=al(d.detail);return{requiresOnChainHash:!0,composeHash:h.compose_hash,appId:String(h.app_id),deviceId:h.device_id,kmsInfo:h.kms_info,commitToken:h.commit_token,commitUrl:h.commit_url,apiCommitUrl:h.api_commit_url,onchainStatus:h.onchain_status}}throw d}}),ol=ue(re.extend({composeHash:ht.string().describe("Compose hash from patchCvm Phase 1 response"),transactionHash:ht.string().describe("Transaction hash proving on-chain registration")})),il=ht.object({correlationId:ht.string()}),{action:hd,safeAction:bd}=v(il,async(e,t)=>{let n=ol.parse(t),{cvmId:r}=q.parse(n);return{correlationId:(await e.patch(`/cvms/${r}`,{},{headers:{"X-Compose-Hash":n.composeHash,"X-Transaction-Hash":n.transactionHash}})).correlation_id}}),cl=ue(re.extend({token:et.string().describe("One-time commit token from prepare-only flow"),composeHash:et.string().describe("Compose hash from Phase 1 response"),transactionHash:et.string().describe("Transaction hash proving on-chain registration")})),ll=et.object({correlationId:et.string(),status:et.string()}),{action:yd,safeAction:_d}=v(ll,async(e,t)=>{let n=cl.parse(t),{cvmId:r}=q.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}}),pr=me.object({identifier:me.string(),status:me.enum(["updated","unchanged","skipped","conflict","error"]),old_instance_id:me.string().nullable().optional(),new_instance_id:me.string().nullable().optional(),source:me.enum(["teepod_state","teepod_info","gateway","none"]),verified_with_gateway:me.boolean(),reason:me.string().nullable().optional()}),Ut=pr.extend({cvm_id:me.number().nullable()}),Lt=pr.extend({cvm_id:me.string().nullable()}),Cd=me.union([Ut,Lt]);var Sd=ue(re.extend({overwrite:me.boolean().optional(),dry_run:me.boolean().optional()}));var Ed=H.object({cvm_ids:H.array(H.string()).optional(),running_only:H.boolean().optional(),missing_only:H.boolean().optional(),overwrite:H.boolean().optional(),limit:H.number().int().min(1).max(500).optional(),dry_run:H.boolean().optional()}).strict(),Ft=H.object({total:H.number().int(),scanned:H.number().int(),updated:H.number().int(),unchanged:H.number().int(),skipped:H.number().int(),conflicts:H.number().int(),errors:H.number().int()}),Ad=Ft.extend({items:H.array(Ut)}),Id=Ft.extend({items:H.array(Lt)}),Rd=Ft.extend({items:H.array(H.union([Ut,Lt]))});var ul=j.object({cpu_percent:j.number().nullable().optional(),memory_used_bytes:j.number().nullable().optional(),memory_total_bytes:j.number().nullable().optional(),disk_used_bytes:j.number().nullable().optional(),disk_total_bytes:j.number().nullable().optional(),egress_bytes:j.number().nullable().optional()}),pl=j.object({vm_uuid:j.string(),status:j.string(),uptime:j.string().nullable().optional(),in_progress:j.boolean(),boot_progress:j.string().nullable().optional(),boot_error:j.string().nullable().optional(),shutdown_progress:j.string().nullable().optional(),events:j.array(j.object({event:j.string(),body:j.string(),timestamp:j.number()})).default([]),operation:j.object({type:j.string().nullable().optional(),phase:j.string().nullable().optional(),started_at:j.string().nullable().optional(),correlation_id:j.string().nullable().optional()}).nullable().optional(),resource_usage:ul.nullable().optional()}),ml=j.record(j.string(),pl),dl=j.object({vmUuids:j.array(j.string())}),{action:Td,safeAction:jd}=v(ml,async(e,t)=>{let{vmUuids:n}=dl.parse(t);return await e.post("/status/batch",{vm_uuids:n})}),fl=st.object({hostname:st.string().nullable().optional(),ssh_authorized_keys:st.array(st.string()).default([]),default_gateway_domain:st.string().nullable().optional()}),gl=q,{action:qd,safeAction:$d}=v(fl,async(e,t)=>{let{cvmId:n}=gl.parse(t);return await e.get(`/cvms/${n}/user_config`)}),mr=J.object({app_contract_address:J.string(),compose_hash:J.string(),device_id:J.string(),compose_hash_allowed:J.boolean(),allow_any_device:J.boolean(),device_id_allowed:J.boolean().nullable().optional(),is_allowed:J.boolean(),error:J.string().nullable().optional()}),dr=mr.extend({cvm_id:J.number().optional()}),Dt=mr.extend({cvm_id:J.string().optional()}),Nd=J.union([dr,Dt]),hl=Dt,zd=J.object({cvmId:J.string().min(1),compose_hash:J.string().optional(),node_id:J.number().optional(),device_id:J.string().optional()});var bl=Ze.object({appId:Ze.string().min(1),compose_hash:Ze.string(),node_id:Ze.number().optional(),device_id:Ze.string().optional(),chain_id:Ze.number().optional()}),{action:Ld,safeAction:Fd}=v(hl,async(e,t)=>{let{appId:n,...r}=bl.parse(t);return await e.post(`/apps/${n}/is-allowed`,r)}),fr=te.object({is_onchain:te.boolean(),total:te.number().default(0),allowed_count:te.number().default(0),denied_count:te.number().default(0),error_count:te.number().default(0)}),vl=fr.extend({results:te.array(dr.extend({cvm_id:te.number()})).default([]),skipped_cvm_ids:te.array(te.number()).default([])}),yl=fr.extend({results:te.array(Dt.extend({cvm_id:te.string()})).default([]),skipped_cvm_ids:te.array(te.string()).default([])}),Vd=te.union([vl,yl]);var Md=te.object({appId:te.string().min(1)});var Hd=pe.object({page:pe.number().int().min(1).optional(),page_size:pe.number().int().min(1).max(100).optional(),search:pe.string().optional(),status:pe.array(pe.string()).optional(),listed:pe.boolean().optional(),base_image:pe.string().optional(),instance_type:pe.string().optional(),kms_slug:pe.string().optional(),kms_type:pe.string().optional(),node:pe.string().optional(),region:pe.string().optional()}).strict();var Bd=mn.object({appId:mn.string().min(1)}).strict();var Xd=dn.object({appId:dn.string().min(1)}).strict();var _l=Ee.object({appId:Ee.string().min(1),name:Ee.string().optional(),node_id:Ee.number().optional(),docker_compose_file:Ee.string().optional(),pre_launch_script:Ee.string().optional(),encrypted_env:Ee.string().optional(),compose_hash:Ee.string().optional(),token:Ee.string().optional(),transaction_hash:Ee.string().optional()}).strict(),{action:Zd,safeAction:Qd}=v(ii,async(e,t)=>{let n=_l.parse(t),{appId:r,...s}=n;return await e.post(`/apps/${r}/instances`,s)}),gr=G.object({device_id:G.string(),node_name:G.string().nullable(),allowed_onchain:G.boolean(),status:G.string()}),hr=gr.extend({cvm_ids:G.array(G.number())}),br=gr.extend({cvm_ids:G.array(G.string())}),vr=G.object({is_onchain_kms:G.boolean(),allow_any_device:G.boolean().nullable().optional(),chain_id:G.number().nullable().optional(),app_contract_address:G.string().nullable().optional()}),wl=vr.extend({devices:G.array(hr).optional().default([])}),Cl=vr.extend({devices:G.array(br).optional().default([])}),ef=G.union([hr,br]),tf=G.union([wl,Cl]);var nf=G.object({appId:G.string().min(1)}).strict();var sf=dt.object({appId:dt.string().min(1),page:dt.number().int().min(1).optional(),page_size:dt.number().int().min(1).max(1e3).optional()}).strict();var of=ft.object({appId:ft.string().min(1),revisionId:ft.string().min(1),rawComposeFile:ft.boolean().optional()}).strict();var lf=ae.object({statuses:ae.array(ae.string()),image_versions:ae.array(ae.string()),instance_types:ae.array(ae.string()),kms_slugs:ae.array(ae.string()),kms_types:ae.array(ae.string()),regions:ae.array(ae.string()),nodes:ae.array(ae.string())});var Sl=E.object({contract_address:E.string(),chain_id:E.number().nullable(),version:E.string(),url:E.string(),gateway_app_id:E.string().nullable(),gateway_app_url:E.string(),kms_type:E.string()}),fn=E.object({app_id:E.string().optional(),instance_id:E.string().optional(),app_name:E.string().optional(),device_id:E.string().optional()}).passthrough().nullable(),kl=E.object({vm_uuid:E.string().nullable().optional(),name:E.string().optional(),instance_id:E.string().nullable().optional(),status:E.string().optional(),image_version:E.string().nullable().optional(),quote:E.string().nullable().optional(),ppid:E.string().optional(),ppid_sha256:E.string().nullable().optional(),device_id:E.string().optional(),fmspc:E.string().nullable().optional(),tee_tcb_svn:E.string().nullable().optional(),mr_config_id:E.string().nullable().optional(),cpusvn:E.string().nullable().optional(),pcesvn:E.number().nullable().optional(),tcb_info:sr.nullable().optional(),app_certificates:E.array(rr).nullable().optional(),compose_file:E.string().nullable().optional(),error:E.string().nullable().optional()}),El=E.object({app_id:E.string(),contract_address:E.string(),kms_info:Sl,instances:E.array(kl),kms_guest_agent_info:fn,gateway_guest_agent_info:fn,qemu_version:E.string().nullable()}),Al=E.object({appId:E.string().min(1)}).strict(),{action:pf,safeAction:mf}=v(El,async(e,t)=>{let{appId:n}=Al.parse(t);return await e.get(`/apps/${n}/attestations`)});var Il;function yr(){return Il}import Pl from"path";import Vt from"fs-extra";import ql from"@iarna/toml";import{z as ve}from"zod";import ie from"chalk";import xl from"ora";var Rl=!1;function Ce(){return Rl}function Tl(e,t){let n=e.split(/\s+/),r=[],s="";for(let i of n){let a=s.length===0?i:`${s} ${i}`;a.length<=t?s=a:(s.length>0&&r.push(s),s=i)}return s.length>0&&r.push(s),r}function jl(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 _r(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(...jl(r,t));continue}let s=Tl(r,t);n.push(...s)}if(n.length===0){let r=e.trim();n.push(r)}return n}var Oe={error:(e,...t)=>{Ce()||(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)=>{Ce()||(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)=>{Ce()||(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)=>{Ce()||(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)=>{Ce()||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(!Ce()){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 o=a.header||String(a.key);r[String(a.key)]=o.length}for(let a of e)for(let o of n){let u=String(typeof o.key=="string"&&!(o.key in a)?"":a[String(o.key)]??"");r[String(o.key)]=Math.max(r[String(o.key)],u.length)}let s=[];for(let a of n){let o=a.header||String(a.key);s.push(ie.bold(o.padEnd(r[String(a.key)])))}console.log(s.join(" "));let i=[];for(let a of n)i.push("-".repeat(r[String(a.key)]));console.log(i.join(" "));for(let a of e){let o=[];for(let u of n){let f=String(typeof u.key=="string"&&!(u.key in a)?"":a[String(u.key)]??"");o.push(f.padEnd(r[String(u.key)]))}console.log(o.join(" "))}}else{let n=e[0],r=Object.keys(n),s={};for(let o of r)s[o]=o.length;for(let o of e)for(let u of r){let f=String(o[u]??"");s[u]=Math.max(s[u],f.length)}let i=[];for(let o of r)i.push(ie.bold(o.padEnd(s[o])));console.log(i.join(" "));let a=[];for(let o of r)a.push("-".repeat(s[o]));console.log(a.join(" "));for(let o of e){let u=[];for(let f of r){let m=String(o[f]??"");u.push(m.padEnd(s[f]))}console.log(u.join(" "))}}}},keyValueTable:(e,t)=>{if(Ce())return;let{borderStyle:n="single",keyColor:r=ie.blue,valueColor:s=ie.white,maxWidth:i=process.stdout.columns||80}=t||{},o={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],u=0,f=0;for(let[k,R]of Object.entries(e)){u=Math.max(u,k.length);let O=String(R??"");f=Math.max(f,O.length)}let m=4,d=1,h=i-m-d;if(u+f>h){let k=u/(u+f);u=Math.floor(h*k),f=h-u}let _=u+f+m+d;n!=="none"&&console.log(o.topLeft+o.horizontal.repeat(_-2)+o.topRight);for(let[k,R]of Object.entries(e)){let O=k,se=String(R??""),fe=_r(O,u),je=_r(se,f),Se=Math.max(fe.length,je.length);for(;fe.length<Se;)fe.push("");for(;je.length<Se;)je.push("");for(let Pe=0;Pe<Se;Pe++){let Fe=fe[Pe].padEnd(u),ct=je[Pe].padEnd(f);console.log(n!=="none"?`${o.vertical} ${r(Fe)} ${o.vertical} ${s(ct)} ${o.vertical}`:`${r(Fe)} : ${s(ct)}`)}}n!=="none"&&console.log(o.bottomLeft+o.horizontal.repeat(_-2)+o.bottomRight)},break:()=>{Ce()||process.stderr.write(`
|
|
27
|
+
`)},startSpinner:e=>{if(Ce())return{stop:()=>{}};let t=xl(e).start();return{stop:(n=!0,r)=>{r&&(t.text=r),n?t.succeed():t.fail()}}},logDetailedError(e,t){if(Ce())return;let n=t?`[${t}] `:"",r=(a,o)=>{let u,f=typeof o=="string"?o:void 0;if(typeof a=="string"&&(u=a),a instanceof URL&&(u=a.toString()),typeof Request<"u"&&a instanceof Request&&(u=a.url,f??=a.method),!u)return;let m=f?.trim().toUpperCase();return m?`${m} ${u}`:u},s=a=>a!==null&&typeof a=="object"&&("status"in a||"detail"in a||"requestId"in a);if((a=>a!==null&&typeof a=="object"&&"issues"in a&&Array.isArray(a.issues))(e)){process.stderr.write(`${n}Validation error: ${JSON.stringify(e.issues)}
|
|
28
|
+
`);return}if(s(e)){let a=[],o=r(e.request,e.requestMethod);if(o&&a.push(`${n}Request: ${o}`),typeof e.status=="number"&&e.status>0){let u=e.statusText??"";a.push(`${n}HTTP ${e.status}${u?` ${u}`:""}`)}typeof e.requestId=="string"&&e.requestId.length>0&&a.push(`${n}Request ID: ${e.requestId}`),e.data!==void 0&&e.data!==null&&a.push(JSON.stringify(e.data,null,2)),a.length>0&&process.stderr.write(`${a.join(`
|
|
29
|
+
`)}
|
|
30
30
|
`);return}e instanceof Error?process.stderr.write(`${n}${e.message}
|
|
31
31
|
`):process.stderr.write(`${n}${String(e)}
|
|
32
|
-
`)}};var
|
|
33
|
-
Run 'phala init' to create one.`);try{let t=
|
|
32
|
+
`)}};var $l=re.extend({profile:ve.string().optional(),api_version:ve.enum(bt).optional(),gateway_domain:ve.string().optional(),gateway_port:ve.number().int().positive().optional(),compose_file:ve.string().optional(),env_file:ve.string().optional(),public_logs:ve.boolean().optional(),public_sysinfo:ve.boolean().optional(),public_tcbinfo:ve.boolean().optional(),secure_time:ve.boolean().optional(),listed:ve.boolean().optional()}),Mt="phala.toml";function wr(){return Pl.join(process.cwd(),Mt)}function Ol(){return Vt.existsSync(wr())}function Nl(){let e=wr();if(!Vt.existsSync(e))throw new Error(`Project configuration file not found: ${Mt}
|
|
33
|
+
Run 'phala init' to create one.`);try{let t=Vt.readFileSync(e,"utf8"),n=ql.parse(t),r=$l.parse(n);if(r.id||r.uuid||r.app_id||r.instance_id||r.name){let{cvmId:s}=q.parse(r);return{...r,cvm_id:s}}return r}catch(t){if(t instanceof ve.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 ${
|
|
36
|
-
`})}return n}function
|
|
37
|
-
`)}return n}async function
|
|
38
|
-
`)};for(;;){let{done:
|
|
39
|
-
`);for(;
|
|
40
|
-
`)}}
|
|
41
|
-
`})};for(;;){let{done:
|
|
42
|
-
`);for(;
|
|
43
|
-
`)}}
|
|
44
|
-
/*! Bundled license information:
|
|
45
|
-
|
|
46
|
-
@noble/hashes/utils.js:
|
|
47
|
-
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
48
|
-
*/
|
|
35
|
+
${n}`)}throw new Error(`Failed to parse ${Mt}: ${t instanceof Error?t.message:String(t)}`)}}function Cr(){return Ol()?Nl():{}}import Sr from"fs";import zl from"os";import Er from"path";var kr="https://cloud-api.phala.com/api/v1";function Ul(){let e=process.env.PHALA_CLOUD_DIR;return typeof e=="string"&&e.trim().length>0?e:Er.join(zl.homedir(),".phala-cloud")}function Ll(){return Er.join(Ul(),"credentials.json")}function _t(e){return typeof e=="string"&&e.trim().length>0}function Fl(e){let t=e.trim();return t.length===0?"default":t}function Dl(){try{let e=Ll();if(!Sr.existsSync(e))return null;let t=Sr.readFileSync(e,"utf8"),n=JSON.parse(t);if(!n||typeof n!="object")return null;let r=n;return r.schema_version!==1||!_t(r.current_profile)||!r.profiles||typeof r.profiles!="object"?null:r}catch(e){return Oe.error("Failed to read credentials file:",e),null}}function Ar(e){let t=Dl(),n=Fl(e.profile||e.projectProfile||t?.current_profile||"default"),r=n;if(t&&!t.profiles[r]){let f=Object.entries(t.profiles).find(([,m])=>m?.workspace?.slug===n);if(f)r=f[0];else{let m=Object.entries(t.profiles).find(([,d])=>d?.workspace?.name===n);m&&(r=m[0])}}let s=e.env.PHALA_CLOUD_API_PREFIX,i=t?.profiles?.[r]?.api_prefix,a=(s&&s.trim().length>0?s:i&&i.trim().length>0?i:kr)??kr,o=s?"env":i?"file":"default";if(_t(e.apiToken))return{apiKey:e.apiToken,baseURL:a,profileName:r,tokenSource:"flag",apiPrefixSource:o};if(_t(e.env.PHALA_CLOUD_API_KEY))return{apiKey:e.env.PHALA_CLOUD_API_KEY,baseURL:a,profileName:r,tokenSource:"env",apiPrefixSource:o};let u=t?.profiles?.[r]?.token;return _t(u)?{apiKey:u,baseURL:a,profileName:r,tokenSource:"file",apiPrefixSource:o}:{apiKey:null,baseURL:a,profileName:r,tokenSource:"none",apiPrefixSource:o}}var Vl="2026-06-23",Ml=60;function Kl(e){return e?.globalOptions?.timeout??Ml}function Hl(){return{env:process.env,projectConfig:Cr()}}function Gl(e,t){let n=e??Hl();return Ar({env:n.env,apiToken:t?.apiToken??n.globalOptions?.apiToken,profile:t?.profile??n.globalOptions?.profile,projectProfile:n.projectConfig.profile})}async function ye(e,t){let n=Gl(e,t),r=yr()??Vl,s=Kl(e);return cr({apiKey:n.apiKey??void 0,baseURL:n.baseURL,version:r,timeout:s*1e3})}import{z as c}from"zod";var Bl=c.object({password:c.string(),registry:c.string().nullable(),username:c.string()}),Zf=c.object({docker_compose_file:c.string(),docker_config:Bl.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(),Qf=c.object({key:c.string(),value:c.string()}),Ir=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()}))}),Rr=c.object({id:c.string(),name:c.string(),status:c.string(),teepod_id:c.number(),teepod:c.object({id:c.number(),name:c.string()}),user_id:c.string().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()}),xr=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()}),Wl=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()}),Yf=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(Wl).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 Xl from"inquirer";async function og(e){let t=await ye(),n=e.replace(/^app_/,""),r=await vt(t,{app_id:n});if(!r.success)throw new Error(r.error.message);return r.data}async function ig(e){let t=await ye(),n=e.replace(/^app_/,""),r=await t.get(`cvms/app_${n}/network`);return Ir.parse(r)}async function cg(){let e=Oe.startSpinner("Fetching available CVMs"),t=await ye(),n=await Nt(t);if(e.stop(!0),!n.success){Oe.error(`Failed to fetch CVMs: ${n.error.message}`);return}let{items:r}=n.data;if(r.length===0){Oe.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:i}=await Xl.prompt([{type:"list",name:"selectedCvm",message:"Select a CVM:",choices:s}]);return i}async function lg(e){let t=await ye(),n=e.replace(/^app_/,""),r=await t.get(`cvms/app_${n}/attestation`);try{return xr.parse(r)}catch(s){return Oe.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 ug(e,t,n){let r=await ye(),s=e.replace(/^app_/,""),i=await r.post(`apps/${s}/cvms/${t}/replicas`,n);return Rr.parse(i)}async function pg(e,t,n,r,s){let i=await ye(),a=e.replace(/^app_/,""),o={};if(t!==void 0&&(o.vcpu=t),n!==void 0&&(o.memory=n),r!==void 0&&(o.disk_size=r),s!==void 0&&(o.allow_restart=s),Object.keys(o).length===0)throw new Error("At least one resource parameter must be provided");return await i.patch(`cvms/app_${a}`,o),!0}async function mg(e,t){let n=await ye(),r=e.replace(/^app_/,"");return await n.put(`cvms/app_${r}/compose`,t)}async function dg(){return await(await ye()).get("teepods/cvm-create-resources")}function Ne(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 Tr(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:i}=await n.read();if(s)break;t(r.decode(i,{stream:!0}))}}function Jl(e){return!e||/\s/.test(e)||e.length%4!==0?!1:/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function Zl(e){if(!Jl(e))return e;try{return Buffer.from(e,"base64").toString("utf-8")}catch{return e}}function wt(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:Zl(n.message)}}catch{return null}}function Ql(e){let t=e.split(/\r?\n/),n=[];for(let r of t){if(!r.trim())continue;let s=wt(r);if(s){n.push(s);continue}n.push({channel:"stdout",message:`${r}
|
|
36
|
+
`})}return n}function Yl(e){let t=e.split(/\r?\n/),n="";for(let r of t){let s=wt(r);if(s){n+=s.message;continue}r.trim()&&(n+=`${r}
|
|
37
|
+
`)}return n}async function eu(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder,s="",i="unknown",a=o=>{let u=wt(o);if(u){t(u.message);return}o.trim()&&t(`${o}
|
|
38
|
+
`)};for(;;){let{done:o,value:u}=await n.read();if(o)break;let f=r.decode(u,{stream:!0});if(i==="raw"){t(f);continue}if(s+=f,i==="unknown")if(s.trimStart().startsWith("{"))i="structured";else{i="raw",t(s),s="";continue}let m=s.indexOf(`
|
|
39
|
+
`);for(;m>=0;){let d=s.slice(0,m);s=s.slice(m+1),a(d),m=s.indexOf(`
|
|
40
|
+
`)}}i==="structured"&&s.trim()?a(s):i==="raw"&&s&&t(s)}async function tu(e,t){let n=e.body?.getReader();if(!n)throw new Error("No response body available for streaming");let r=new TextDecoder,s="",i="unknown",a=o=>{let u=wt(o);if(u){t(u);return}o.trim()&&t({channel:"stdout",message:`${o}
|
|
41
|
+
`})};for(;;){let{done:o,value:u}=await n.read();if(o)break;let f=r.decode(u,{stream:!0});if(i==="raw"){t({channel:"stdout",message:f});continue}if(s+=f,i==="unknown")if(s.trimStart().startsWith("{"))i="structured";else{i="raw",t({channel:"stdout",message:s}),s="";continue}let m=s.indexOf(`
|
|
42
|
+
`);for(;m>=0;){let d=s.slice(0,m);s=s.slice(m+1),a(d),m=s.indexOf(`
|
|
43
|
+
`)}}i==="structured"&&s.trim()?a(s):i==="raw"&&s&&t({channel:"stdout",message:s})}async function Kt(e,t){let r=await(await ye()).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 jr(e){return Kt(e,"serial")}async function Ct(e,t,n=!0){let s=await(await ye()).get(`cvms/${e}/composition`);if(!s.containers?.length)throw new Error(`No containers found for CVM '${e}'`);let i=s.containers;if(t&&(i=i.filter(o=>o.names.some(f=>f===t||f===`/${t}`)?!0:n?o.id.startsWith(t):!1),!i.length))throw new Error(`Container '${t}' not found in CVM '${e}'`);let a=i.find(o=>o.log_endpoint);if(!a?.log_endpoint)throw new Error(`No log endpoints available for CVM '${e}'`);return a.log_endpoint}async function fg(e,t={}){let n=await jr(e),r=Ne(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 gg(e,t={}){let n=await Ct(e,t.container,t.matchContainerIdPrefix??!0),r=t.text??!0,s=t.bare??!0,i=Ne(n,{...t,text:r,bare:s}),a=await fetch(i);if(!a.ok)throw new Error(`Failed to fetch container logs: ${a.status} ${a.statusText}`);let o=await a.text();return o.trimStart().startsWith("{")?Yl(o):o}async function hg(e,t={}){let n=await Ct(e,t.container,t.matchContainerIdPrefix??!0),r=Ne(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 i=await s.text();return i.trimStart().startsWith("{")?Ql(i):[{channel:"stdout",message:i}]}async function bg(e,t,n={},r){let s=await Ct(e,n.container,n.matchContainerIdPrefix??!0),i=Ne(s,{...n,follow:!0,text:!1,bare:!1}),a=await fetch(i,{signal:r});if(!a.ok)throw new Error(`Failed to stream container logs: ${a.status} ${a.statusText}`);await tu(a,t)}async function vg(e,t,n={},r){let s=await jr(e),i=Ne(s,{...n,follow:!0}),a=await fetch(i,{signal:r});if(!a.ok)throw new Error(`Failed to stream serial logs: ${a.status} ${a.statusText}`);await Tr(a,t)}async function yg(e,t,n={},r){let s=await Ct(e,n.container,n.matchContainerIdPrefix??!0),i=n.text??!0,a=n.bare??!0,o=Ne(s,{...n,follow:!0,text:i,bare:a}),u=await fetch(o,{signal:r});if(!u.ok)throw new Error(`Failed to stream container logs: ${u.status} ${u.statusText}`);await eu(u,t)}async function _g(e,t,n={}){let r=await Kt(e,t),s=Ne(r,n),i=await fetch(s);if(!i.ok)throw new Error(`Failed to fetch CVM ${t} logs: ${i.status} ${i.statusText}`);return i.text()}async function wg(e,t,n,r={},s){let i=await Kt(e,t),a=Ne(i,{...r,follow:!0}),o=await fetch(a,{signal:s});if(!o.ok)throw new Error(`Failed to stream CVM ${t} logs: ${o.status} ${o.statusText}`);await Tr(o,n)}async function Cg(e){let t=await ye(),n=e.replace(/^app_/,""),r=await vt(t,{app_id:n});if(!r.success)throw new Error(r.error.message);return r.data.status}export{Zf as composeFileSchema,xr as cvmAttestationResponseSchema,Bl as dockerConfigSchema,Qf as encryptedEnvItemSchema,gg as fetchContainerLogs,hg as fetchContainerLogsEntries,_g as fetchCvmChannelLogs,fg as fetchSerialLogs,lg as getCvmAttestation,og as getCvmByAppId,dg as getCvmCreateResources,Kt as getCvmLogEndpoint,ig as getCvmNetwork,Ir as getCvmNetworkResponseSchema,Cg as getCvmStatus,Wl as imageSchema,ug as replicateCvm,Rr as replicateCvmResponseSchema,pg as resizeCvm,cg as selectCvm,yg as streamContainerLogs,bg as streamContainerLogsEntries,wg as streamCvmChannelLogs,vg as streamSerialLogs,Yf as teepodSchema,mg as upgradeCvm};
|
|
49
44
|
//# sourceMappingURL=index.js.map
|