@phala/cloud 0.1.1-beta.2 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -38,18 +38,31 @@ __export(index_exports, {
38
38
  CommitCvmProvisionRequestSchema: () => CommitCvmProvisionRequestSchema,
39
39
  CommitCvmProvisionSchema: () => CommitCvmProvisionSchema,
40
40
  CurrentUserSchema: () => CurrentUserSchema,
41
+ CvmAttestationSchema: () => CvmAttestationSchema,
42
+ CvmContainersStatsSchema: () => CvmContainersStatsSchema,
43
+ CvmIdBaseSchema: () => CvmIdBaseSchema,
44
+ CvmIdObjectSchema: () => CvmIdObjectSchema,
45
+ CvmIdSchema: () => CvmIdSchema,
41
46
  CvmInfoSchema: () => CvmInfoSchema,
42
47
  CvmLegacyDetailSchema: () => CvmLegacyDetailSchema,
48
+ CvmNetworkSchema: () => CvmNetworkSchema,
43
49
  CvmNetworkUrlsSchema: () => CvmNetworkUrlsSchema,
44
50
  CvmNodeSchema: () => CvmNodeSchema,
51
+ CvmSystemInfoSchema: () => CvmSystemInfoSchema,
52
+ DeleteCvmRequestSchema: () => DeleteCvmRequestSchema,
45
53
  DeployAppAuthRequestSchema: () => DeployAppAuthRequestSchema,
46
54
  DeployAppAuthSchema: () => DeployAppAuthSchema,
47
55
  GetAppEnvEncryptPubKeyRequestSchema: () => GetAppEnvEncryptPubKeyRequestSchema,
48
56
  GetAppEnvEncryptPubKeySchema: () => GetAppEnvEncryptPubKeySchema,
57
+ GetCvmAttestationRequestSchema: () => GetCvmAttestationRequestSchema,
49
58
  GetCvmComposeFileRequestSchema: () => GetCvmComposeFileRequestSchema,
59
+ GetCvmContainersStatsRequestSchema: () => GetCvmContainersStatsRequestSchema,
60
+ GetCvmDockerComposeRequestSchema: () => GetCvmDockerComposeRequestSchema,
50
61
  GetCvmInfoRequestSchema: () => GetCvmInfoRequestSchema,
51
62
  GetCvmListRequestSchema: () => GetCvmListRequestSchema,
52
63
  GetCvmListSchema: () => GetCvmListSchema,
64
+ GetCvmNetworkRequestSchema: () => GetCvmNetworkRequestSchema,
65
+ GetCvmStatsRequestSchema: () => GetCvmStatsRequestSchema,
53
66
  GetKmsInfoRequestSchema: () => GetKmsInfoRequestSchema,
54
67
  GetKmsListRequestSchema: () => GetKmsListRequestSchema,
55
68
  GetKmsListSchema: () => GetKmsListSchema,
@@ -66,8 +79,15 @@ __export(index_exports, {
66
79
  ProvisionCvmRequestSchema: () => ProvisionCvmRequestSchema,
67
80
  ProvisionCvmSchema: () => ProvisionCvmSchema,
68
81
  RequestError: () => RequestError,
82
+ RestartCvmRequestSchema: () => RestartCvmRequestSchema,
69
83
  SUPPORTED_CHAINS: () => SUPPORTED_CHAINS,
84
+ ShutdownCvmRequestSchema: () => ShutdownCvmRequestSchema,
85
+ StartCvmRequestSchema: () => StartCvmRequestSchema,
86
+ StopCvmRequestSchema: () => StopCvmRequestSchema,
70
87
  TransactionError: () => TransactionError,
88
+ UpdateCvmResourcesRequestSchema: () => UpdateCvmResourcesRequestSchema,
89
+ UpdateCvmVisibilityRequestSchema: () => UpdateCvmVisibilityRequestSchema,
90
+ VMSchema: () => VMSchema,
71
91
  VmInfoSchema: () => VmInfoSchema,
72
92
  WalletError: () => WalletError,
73
93
  WorkspaceResponseSchema: () => WorkspaceResponseSchema,
@@ -87,7 +107,9 @@ __export(index_exports, {
87
107
  createTransactionTracker: () => createTransactionTracker,
88
108
  defineAction: () => defineAction,
89
109
  defineSimpleAction: () => defineSimpleAction,
110
+ deleteCvm: () => deleteCvm,
90
111
  deployAppAuth: () => deployAppAuth,
112
+ dumpAppCompose: () => dumpAppCompose,
91
113
  encryptEnvVars: () => import_encrypt_env_vars2.encryptEnvVars,
92
114
  estimateTransactionGas: () => estimateTransactionGas,
93
115
  executeBatchTransactions: () => executeBatchTransactions,
@@ -96,11 +118,16 @@ __export(index_exports, {
96
118
  extractNetworkClients: () => extractNetworkClients,
97
119
  getAppEnvEncryptPubKey: () => getAppEnvEncryptPubKey,
98
120
  getAvailableNodes: () => getAvailableNodes,
99
- getComposeHash: () => import_get_compose_hash2.getComposeHash,
121
+ getComposeHash: () => import_get_compose_hash3.getComposeHash,
100
122
  getCurrentUser: () => getCurrentUser,
123
+ getCvmAttestation: () => getCvmAttestation,
101
124
  getCvmComposeFile: () => getCvmComposeFile,
125
+ getCvmContainersStats: () => getCvmContainersStats,
126
+ getCvmDockerCompose: () => getCvmDockerCompose,
102
127
  getCvmInfo: () => getCvmInfo,
103
128
  getCvmList: () => getCvmList,
129
+ getCvmNetwork: () => getCvmNetwork,
130
+ getCvmStats: () => getCvmStats,
104
131
  getErrorMessage: () => getErrorMessage,
105
132
  getKmsInfo: () => getKmsInfo,
106
133
  getKmsList: () => getKmsList,
@@ -109,18 +136,27 @@ __export(index_exports, {
109
136
  listWorkspaces: () => listWorkspaces,
110
137
  parseEnv: () => parseEnv,
111
138
  parseEnvVars: () => parseEnvVars,
139
+ preprocessAppCompose: () => preprocessAppCompose,
112
140
  provisionCvm: () => provisionCvm,
113
141
  provisionCvmComposeFileUpdate: () => provisionCvmComposeFileUpdate,
142
+ refineCvmId: () => refineCvmId,
143
+ restartCvm: () => restartCvm,
114
144
  safeAddComposeHash: () => safeAddComposeHash,
115
145
  safeCommitCvmComposeFileUpdate: () => safeCommitCvmComposeFileUpdate,
116
146
  safeCommitCvmProvision: () => safeCommitCvmProvision,
147
+ safeDeleteCvm: () => safeDeleteCvm,
117
148
  safeDeployAppAuth: () => safeDeployAppAuth,
118
149
  safeGetAppEnvEncryptPubKey: () => safeGetAppEnvEncryptPubKey,
119
150
  safeGetAvailableNodes: () => safeGetAvailableNodes,
120
151
  safeGetCurrentUser: () => safeGetCurrentUser,
152
+ safeGetCvmAttestation: () => safeGetCvmAttestation,
121
153
  safeGetCvmComposeFile: () => safeGetCvmComposeFile,
154
+ safeGetCvmContainersStats: () => safeGetCvmContainersStats,
155
+ safeGetCvmDockerCompose: () => safeGetCvmDockerCompose,
122
156
  safeGetCvmInfo: () => safeGetCvmInfo,
123
157
  safeGetCvmList: () => safeGetCvmList,
158
+ safeGetCvmNetwork: () => safeGetCvmNetwork,
159
+ safeGetCvmStats: () => safeGetCvmStats,
124
160
  safeGetKmsInfo: () => safeGetKmsInfo,
125
161
  safeGetKmsList: () => safeGetKmsList,
126
162
  safeGetWorkspace: () => safeGetWorkspace,
@@ -128,12 +164,25 @@ __export(index_exports, {
128
164
  safeListWorkspaces: () => safeListWorkspaces,
129
165
  safeProvisionCvm: () => safeProvisionCvm,
130
166
  safeProvisionCvmComposeFileUpdate: () => safeProvisionCvmComposeFileUpdate,
167
+ safeRestartCvm: () => safeRestartCvm,
168
+ safeShutdownCvm: () => safeShutdownCvm,
169
+ safeStartCvm: () => safeStartCvm,
170
+ safeStopCvm: () => safeStopCvm,
171
+ safeUpdateCvmResources: () => safeUpdateCvmResources,
172
+ safeUpdateCvmVisibility: () => safeUpdateCvmVisibility,
131
173
  safeValidateActionParameters: () => safeValidateActionParameters,
174
+ shutdownCvm: () => shutdownCvm,
175
+ sortObject: () => sortObject,
176
+ startCvm: () => startCvm,
177
+ stopCvm: () => stopCvm,
132
178
  switchToNetwork: () => switchToNetwork,
179
+ updateCvmResources: () => updateCvmResources,
180
+ updateCvmVisibility: () => updateCvmVisibility,
133
181
  validateActionParameters: () => validateActionParameters,
134
182
  validateNetworkPrerequisites: () => validateNetworkPrerequisites,
135
183
  verifyEnvEncryptPublicKey: () => import_verify_env_encrypt_public_key.verifyEnvEncryptPublicKey,
136
- waitForTransactionReceipt: () => waitForTransactionReceipt
184
+ waitForTransactionReceipt: () => waitForTransactionReceipt,
185
+ withComposeMethods: () => withComposeMethods
137
186
  });
138
187
  module.exports = __toCommonJS(index_exports);
139
188
 
@@ -770,9 +819,6 @@ var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(Worksp
770
819
  return await client.get(`/workspaces/${teamSlug}`);
771
820
  });
772
821
 
773
- // src/actions/cvms/get_cvm_info.ts
774
- var import_zod8 = require("zod");
775
-
776
822
  // src/types/cvm_info.ts
777
823
  var import_zod7 = require("zod");
778
824
  var VmInfoSchema = import_zod7.z.object({
@@ -798,7 +844,7 @@ var ManagedUserSchema = import_zod7.z.object({
798
844
  var CvmNodeSchema = import_zod7.z.object({
799
845
  id: import_zod7.z.number(),
800
846
  name: import_zod7.z.string(),
801
- region_identifier: import_zod7.z.string().optional()
847
+ region_identifier: import_zod7.z.string().nullable().optional()
802
848
  });
803
849
  var CvmNetworkUrlsSchema = import_zod7.z.object({
804
850
  app: import_zod7.z.string(),
@@ -807,8 +853,8 @@ var CvmNetworkUrlsSchema = import_zod7.z.object({
807
853
  var CvmInfoSchema = import_zod7.z.object({
808
854
  hosted: VmInfoSchema,
809
855
  name: import_zod7.z.string(),
810
- managed_user: ManagedUserSchema.optional().nullable(),
811
- node: CvmNodeSchema.optional().nullable(),
856
+ managed_user: ManagedUserSchema.nullable(),
857
+ node: CvmNodeSchema.nullable(),
812
858
  listed: import_zod7.z.boolean().default(false),
813
859
  status: import_zod7.z.string(),
814
860
  in_progress: import_zod7.z.boolean().default(false),
@@ -825,59 +871,107 @@ var CvmInfoSchema = import_zod7.z.object({
825
871
  disk_size: import_zod7.z.number().nullable(),
826
872
  gateway_domain: import_zod7.z.string().nullable(),
827
873
  public_urls: import_zod7.z.array(CvmNetworkUrlsSchema)
828
- }).partial();
874
+ });
829
875
  var CvmLegacyDetailSchema = import_zod7.z.object({
830
876
  id: import_zod7.z.number(),
831
877
  name: import_zod7.z.string(),
832
878
  status: import_zod7.z.string(),
833
- in_progress: import_zod7.z.boolean(),
879
+ in_progress: import_zod7.z.boolean().optional().default(false),
834
880
  teepod_id: import_zod7.z.number().nullable(),
835
- teepod: CvmNodeSchema,
881
+ teepod: CvmNodeSchema.optional().nullable(),
836
882
  app_id: import_zod7.z.string(),
837
883
  vm_uuid: import_zod7.z.string().nullable(),
838
884
  instance_id: import_zod7.z.string().nullable(),
839
- vcpu: import_zod7.z.number().nullable(),
840
- memory: import_zod7.z.number().nullable(),
841
- disk_size: import_zod7.z.number().nullable(),
842
- base_image: import_zod7.z.string(),
885
+ vcpu: import_zod7.z.number(),
886
+ memory: import_zod7.z.number(),
887
+ disk_size: import_zod7.z.number(),
888
+ base_image: import_zod7.z.string().nullable(),
843
889
  encrypted_env_pubkey: import_zod7.z.string().nullable(),
844
- listed: import_zod7.z.boolean(),
845
- project_id: import_zod7.z.string().nullable(),
846
- project_type: import_zod7.z.string().nullable(),
847
- public_sysinfo: import_zod7.z.boolean(),
848
- public_logs: import_zod7.z.boolean(),
849
- dapp_dashboard_url: import_zod7.z.string().nullable(),
850
- syslog_endpoint: import_zod7.z.string().nullable(),
851
- kms_info: KmsInfoSchema.nullable(),
852
- contract_address: import_zod7.z.string().nullable(),
853
- deployer_address: import_zod7.z.string().nullable(),
854
- scheduled_delete_at: import_zod7.z.string().nullable(),
855
- public_urls: import_zod7.z.array(CvmNetworkUrlsSchema),
856
- gateway_domain: import_zod7.z.string().nullable()
890
+ listed: import_zod7.z.boolean().optional().default(false),
891
+ project_id: import_zod7.z.string().optional().nullable(),
892
+ project_type: import_zod7.z.string().optional().nullable(),
893
+ public_sysinfo: import_zod7.z.boolean().optional().default(false),
894
+ public_logs: import_zod7.z.boolean().optional().default(false),
895
+ dapp_dashboard_url: import_zod7.z.string().optional().nullable(),
896
+ syslog_endpoint: import_zod7.z.string().optional().nullable(),
897
+ kms_info: KmsInfoSchema.optional().nullable(),
898
+ contract_address: import_zod7.z.string().optional().nullable(),
899
+ deployer_address: import_zod7.z.string().optional().nullable(),
900
+ scheduled_delete_at: import_zod7.z.string().optional().nullable(),
901
+ public_urls: import_zod7.z.array(CvmNetworkUrlsSchema).optional().default([]),
902
+ gateway_domain: import_zod7.z.string().optional().nullable()
903
+ });
904
+ var VMSchema = import_zod7.z.object({
905
+ id: import_zod7.z.number(),
906
+ name: import_zod7.z.string(),
907
+ status: import_zod7.z.string(),
908
+ teepod_id: import_zod7.z.number(),
909
+ teepod: CvmNodeSchema.optional().nullable(),
910
+ user_id: import_zod7.z.number().optional().nullable(),
911
+ app_id: import_zod7.z.string(),
912
+ vm_uuid: import_zod7.z.string().nullable(),
913
+ instance_id: import_zod7.z.string().nullable(),
914
+ app_url: import_zod7.z.string().optional().nullable(),
915
+ base_image: import_zod7.z.string().nullable(),
916
+ vcpu: import_zod7.z.number(),
917
+ memory: import_zod7.z.number(),
918
+ disk_size: import_zod7.z.number(),
919
+ manifest_version: import_zod7.z.number().optional().nullable(),
920
+ version: import_zod7.z.string().optional().nullable(),
921
+ runner: import_zod7.z.string().optional().nullable(),
922
+ docker_compose_file: import_zod7.z.string().optional().nullable(),
923
+ features: import_zod7.z.array(import_zod7.z.string()).optional().nullable(),
924
+ created_at: import_zod7.z.string(),
925
+ // datetime serialized as ISO string
926
+ encrypted_env_pubkey: import_zod7.z.string().nullable()
857
927
  });
858
928
 
859
- // src/actions/cvms/get_cvm_info.ts
860
- var GetCvmInfoRequestSchema = import_zod8.z.object({
929
+ // src/types/cvm_id.ts
930
+ var import_zod8 = require("zod");
931
+ var CvmIdObjectSchema = import_zod8.z.object({
932
+ /** Direct CVM ID (any format) */
861
933
  id: import_zod8.z.string().optional(),
862
- uuid: import_zod8.z.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(),
863
- app_id: import_zod8.z.string().refine(
864
- (val) => !val.startsWith("app_") && val.length === 40,
865
- "app_id should be 40 characters without prefix"
866
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
867
- instance_id: import_zod8.z.string().refine(
868
- (val) => !val.startsWith("instance_") && val.length === 40,
869
- "instance_id should be 40 characters without prefix"
870
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
871
- }).refine(
872
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
873
- "One of id, uuid, app_id, or instance_id must be provided"
874
- ).transform((data) => ({
875
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
876
- _raw: data
877
- }));
934
+ /** UUID format (with or without dashes) */
935
+ uuid: import_zod8.z.string().regex(
936
+ /^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,
937
+ "Invalid UUID format"
938
+ ).optional(),
939
+ /** App ID (40 characters, optionally prefixed with 'app_id_') */
940
+ app_id: import_zod8.z.string().optional(),
941
+ /** Instance ID (40 characters, optionally prefixed with 'instance_') */
942
+ instance_id: import_zod8.z.string().optional()
943
+ });
944
+ var refineCvmId = (schema) => schema.refine(
945
+ (data) => {
946
+ const obj = data;
947
+ return !!(obj.id || obj.uuid || obj.app_id || obj.instance_id);
948
+ },
949
+ {
950
+ message: "One of id, uuid, app_id, or instance_id must be provided"
951
+ }
952
+ );
953
+ var CvmIdBaseSchema = refineCvmId(CvmIdObjectSchema);
954
+ var CvmIdSchema = CvmIdBaseSchema.transform((data) => {
955
+ let cvmId;
956
+ if (data.id) {
957
+ cvmId = data.id;
958
+ } else if (data.uuid) {
959
+ cvmId = data.uuid.replace(/-/g, "");
960
+ } else if (data.app_id) {
961
+ cvmId = data.app_id.startsWith("app_") ? data.app_id : `app_${data.app_id}`;
962
+ } else if (data.instance_id) {
963
+ cvmId = data.instance_id.startsWith("instance_") ? data.instance_id : `instance_${data.instance_id}`;
964
+ } else {
965
+ throw new Error("No valid identifier provided");
966
+ }
967
+ return { cvmId };
968
+ });
969
+
970
+ // src/actions/cvms/get_cvm_info.ts
971
+ var GetCvmInfoRequestSchema = CvmIdSchema;
878
972
  var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
879
- const validatedRequest = GetCvmInfoRequestSchema.parse(request);
880
- return await client.get(`/cvms/${validatedRequest.cvmId}`);
973
+ const { cvmId } = GetCvmInfoRequestSchema.parse(request);
974
+ return await client.get(`/cvms/${cvmId}`);
881
975
  });
882
976
 
883
977
  // src/actions/cvms/get_cvm_list.ts
@@ -885,7 +979,9 @@ var import_zod9 = require("zod");
885
979
  var GetCvmListRequestSchema = import_zod9.z.object({
886
980
  page: import_zod9.z.number().int().min(1).optional(),
887
981
  page_size: import_zod9.z.number().int().min(1).optional(),
888
- node_id: import_zod9.z.number().int().min(1).optional()
982
+ node_id: import_zod9.z.number().int().min(1).optional(),
983
+ teepod_id: import_zod9.z.number().int().min(1).optional(),
984
+ user_id: import_zod9.z.string().optional()
889
985
  }).strict();
890
986
  var GetCvmListSchema = import_zod9.z.object({
891
987
  items: import_zod9.z.array(CvmInfoSchema),
@@ -947,18 +1043,6 @@ var ProvisionCvmRequestSchema = import_zod10.z.object({
947
1043
  kms_id: import_zod10.z.string().optional(),
948
1044
  env_keys: import_zod10.z.array(import_zod10.z.string()).optional()
949
1045
  }).passthrough();
950
- function autofillComposeFileName(appCompose) {
951
- if (appCompose.compose_file && !appCompose.compose_file.name) {
952
- return {
953
- ...appCompose,
954
- compose_file: {
955
- ...appCompose.compose_file,
956
- name: appCompose.name
957
- }
958
- };
959
- }
960
- return appCompose;
961
- }
962
1046
  function handleGatewayCompatibility(appCompose) {
963
1047
  if (!appCompose.compose_file) {
964
1048
  return appCompose;
@@ -981,7 +1065,7 @@ function handleGatewayCompatibility(appCompose) {
981
1065
  };
982
1066
  }
983
1067
  var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(ProvisionCvmSchema, async (client, appCompose) => {
984
- const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
1068
+ const body = handleGatewayCompatibility(appCompose);
985
1069
  let requestBody = { ...body };
986
1070
  if (typeof body.node_id === "number") {
987
1071
  requestBody = { ...body, teepod_id: body.node_id };
@@ -1035,9 +1119,6 @@ var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineA
1035
1119
  return await client.post("/cvms", payload);
1036
1120
  });
1037
1121
 
1038
- // src/actions/cvms/get_cvm_compose_file.ts
1039
- var import_zod13 = require("zod");
1040
-
1041
1122
  // src/types/app_compose.ts
1042
1123
  var import_zod12 = require("zod");
1043
1124
  var LooseAppComposeSchema = import_zod12.z.object({
@@ -1050,11 +1131,73 @@ var LooseAppComposeSchema = import_zod12.z.object({
1050
1131
  public_logs: import_zod12.z.boolean().optional(),
1051
1132
  public_sysinfo: import_zod12.z.boolean().optional(),
1052
1133
  tproxy_enabled: import_zod12.z.boolean().optional(),
1053
- pre_launch_script: import_zod12.z.string().optional()
1134
+ pre_launch_script: import_zod12.z.string().optional(),
1135
+ env_pubkey: import_zod12.z.string().optional(),
1136
+ salt: import_zod12.z.string().optional().nullable()
1054
1137
  }).passthrough();
1055
1138
 
1139
+ // src/utils/get_compose_hash.ts
1140
+ var import_crypto = __toESM(require("crypto"));
1141
+ function sortObject(obj) {
1142
+ if (obj === void 0 || obj === null) {
1143
+ return obj;
1144
+ }
1145
+ if (Array.isArray(obj)) {
1146
+ return obj.map(sortObject);
1147
+ } else if (obj && typeof obj === "object" && obj.constructor === Object) {
1148
+ return Object.keys(obj).sort().reduce((result, key) => {
1149
+ const value = obj[key];
1150
+ result[key] = sortObject(value);
1151
+ return result;
1152
+ }, {});
1153
+ }
1154
+ return obj;
1155
+ }
1156
+ function preprocessAppCompose(dic) {
1157
+ const obj = { ...dic };
1158
+ if (obj.runner === "bash" && "docker_compose_file" in obj) {
1159
+ delete obj.docker_compose_file;
1160
+ } else if (obj.runner === "docker-compose" && "bash_script" in obj) {
1161
+ delete obj.bash_script;
1162
+ }
1163
+ if ("pre_launch_script" in obj && !obj.pre_launch_script) {
1164
+ delete obj.pre_launch_script;
1165
+ }
1166
+ return obj;
1167
+ }
1168
+ function dumpAppCompose(dic) {
1169
+ const ordered = sortObject(dic);
1170
+ let json = JSON.stringify(ordered, null, 4);
1171
+ json = json.replace(/": /g, '":');
1172
+ return json;
1173
+ }
1174
+ function getComposeHash(app_compose) {
1175
+ const preprocessed = preprocessAppCompose(app_compose);
1176
+ const manifest_str = dumpAppCompose(preprocessed);
1177
+ return import_crypto.default.createHash("sha256").update(manifest_str, "utf8").digest("hex");
1178
+ }
1179
+ function withComposeMethods(compose) {
1180
+ const appCompose = compose;
1181
+ return {
1182
+ ...compose,
1183
+ getHash: () => getComposeHash(appCompose),
1184
+ toString: () => dumpAppCompose(preprocessAppCompose(appCompose))
1185
+ };
1186
+ }
1187
+
1056
1188
  // src/actions/cvms/get_cvm_compose_file.ts
1057
- var GetCvmComposeFileRequestSchema = import_zod13.z.object({
1189
+ var GetCvmComposeFileResultSchema = LooseAppComposeSchema.transform(
1190
+ (data) => withComposeMethods(data)
1191
+ );
1192
+ var GetCvmComposeFileRequestSchema = CvmIdSchema;
1193
+ var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(GetCvmComposeFileResultSchema, async (client, request) => {
1194
+ const { cvmId } = GetCvmComposeFileRequestSchema.parse(request);
1195
+ return await client.get(`/cvms/${cvmId}/compose_file`);
1196
+ });
1197
+
1198
+ // src/actions/cvms/provision_cvm_compose_file_update.ts
1199
+ var import_zod13 = require("zod");
1200
+ var ProvisionCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
1058
1201
  id: import_zod13.z.string().optional(),
1059
1202
  uuid: import_zod13.z.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(),
1060
1203
  app_id: import_zod13.z.string().refine(
@@ -1064,34 +1207,9 @@ var GetCvmComposeFileRequestSchema = import_zod13.z.object({
1064
1207
  instance_id: import_zod13.z.string().refine(
1065
1208
  (val) => !val.startsWith("instance_") && val.length === 40,
1066
1209
  "instance_id should be 40 characters without prefix"
1067
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
1068
- }).refine(
1069
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1070
- "One of id, uuid, app_id, or instance_id must be provided"
1071
- ).transform((data) => ({
1072
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
1073
- _raw: data
1074
- }));
1075
- var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(LooseAppComposeSchema, async (client, request) => {
1076
- const validatedRequest = GetCvmComposeFileRequestSchema.parse(request);
1077
- return await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
1078
- });
1079
-
1080
- // src/actions/cvms/provision_cvm_compose_file_update.ts
1081
- var import_zod14 = require("zod");
1082
- var ProvisionCvmComposeFileUpdateRequestSchema = import_zod14.z.object({
1083
- id: import_zod14.z.string().optional(),
1084
- uuid: import_zod14.z.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(),
1085
- app_id: import_zod14.z.string().refine(
1086
- (val) => !val.startsWith("app_") && val.length === 40,
1087
- "app_id should be 40 characters without prefix"
1088
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
1089
- instance_id: import_zod14.z.string().refine(
1090
- (val) => !val.startsWith("instance_") && val.length === 40,
1091
- "instance_id should be 40 characters without prefix"
1092
1210
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
1093
1211
  app_compose: LooseAppComposeSchema,
1094
- update_env_vars: import_zod14.z.boolean().optional().nullable()
1212
+ update_env_vars: import_zod13.z.boolean().optional().nullable()
1095
1213
  }).refine(
1096
1214
  (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1097
1215
  "One of id, uuid, app_id, or instance_id must be provided"
@@ -1101,10 +1219,10 @@ var ProvisionCvmComposeFileUpdateRequestSchema = import_zod14.z.object({
1101
1219
  update_env_vars: data.update_env_vars,
1102
1220
  _raw: data
1103
1221
  }));
1104
- var ProvisionCvmComposeFileUpdateResultSchema = import_zod14.z.object({
1105
- app_id: import_zod14.z.string().nullable(),
1106
- device_id: import_zod14.z.string().nullable(),
1107
- compose_hash: import_zod14.z.string(),
1222
+ var ProvisionCvmComposeFileUpdateResultSchema = import_zod13.z.object({
1223
+ app_id: import_zod13.z.string().nullable(),
1224
+ device_id: import_zod13.z.string().nullable(),
1225
+ compose_hash: import_zod13.z.string(),
1108
1226
  kms_info: KmsInfoSchema.nullable().optional()
1109
1227
  }).passthrough();
1110
1228
  var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
@@ -1116,22 +1234,22 @@ var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmCompose
1116
1234
  });
1117
1235
 
1118
1236
  // src/actions/cvms/commit_cvm_compose_file_update.ts
1119
- var import_zod15 = require("zod");
1120
- var CommitCvmComposeFileUpdateRequestSchema = import_zod15.z.object({
1121
- id: import_zod15.z.string().optional(),
1122
- uuid: import_zod15.z.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(),
1123
- app_id: import_zod15.z.string().refine(
1237
+ var import_zod14 = require("zod");
1238
+ var CommitCvmComposeFileUpdateRequestSchema = import_zod14.z.object({
1239
+ id: import_zod14.z.string().optional(),
1240
+ uuid: import_zod14.z.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(),
1241
+ app_id: import_zod14.z.string().refine(
1124
1242
  (val) => !val.startsWith("app_") && val.length === 40,
1125
1243
  "app_id should be 40 characters without prefix"
1126
1244
  ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
1127
- instance_id: import_zod15.z.string().refine(
1245
+ instance_id: import_zod14.z.string().refine(
1128
1246
  (val) => !val.startsWith("instance_") && val.length === 40,
1129
1247
  "instance_id should be 40 characters without prefix"
1130
1248
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
1131
- compose_hash: import_zod15.z.string().min(1, "Compose hash is required"),
1132
- encrypted_env: import_zod15.z.string().optional(),
1133
- env_keys: import_zod15.z.array(import_zod15.z.string()).optional(),
1134
- update_env_vars: import_zod15.z.boolean().optional().nullable()
1249
+ compose_hash: import_zod14.z.string().min(1, "Compose hash is required"),
1250
+ encrypted_env: import_zod14.z.string().optional(),
1251
+ env_keys: import_zod14.z.array(import_zod14.z.string()).optional(),
1252
+ update_env_vars: import_zod14.z.boolean().optional().nullable()
1135
1253
  }).refine(
1136
1254
  (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1137
1255
  "One of id, uuid, app_id, or instance_id must be provided"
@@ -1143,7 +1261,7 @@ var CommitCvmComposeFileUpdateRequestSchema = import_zod15.z.object({
1143
1261
  update_env_vars: !!data.update_env_vars,
1144
1262
  _raw: data
1145
1263
  }));
1146
- var CommitCvmComposeFileUpdateSchema = import_zod15.z.any().transform(() => void 0);
1264
+ var CommitCvmComposeFileUpdateSchema = import_zod14.z.any().transform(() => void 0);
1147
1265
  var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
1148
1266
  CommitCvmComposeFileUpdateSchema,
1149
1267
  async (client, request) => {
@@ -1157,9 +1275,9 @@ var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUp
1157
1275
  );
1158
1276
 
1159
1277
  // src/actions/kms/get_kms_info.ts
1160
- var import_zod16 = require("zod");
1161
- var GetKmsInfoRequestSchema = import_zod16.z.object({
1162
- kms_id: import_zod16.z.string().min(1, "KMS ID is required")
1278
+ var import_zod15 = require("zod");
1279
+ var GetKmsInfoRequestSchema = import_zod15.z.object({
1280
+ kms_id: import_zod15.z.string().min(1, "KMS ID is required")
1163
1281
  });
1164
1282
  var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
1165
1283
  const validatedRequest = GetKmsInfoRequestSchema.parse(request);
@@ -1167,18 +1285,18 @@ var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSch
1167
1285
  });
1168
1286
 
1169
1287
  // src/actions/kms/get_kms_list.ts
1170
- var import_zod17 = require("zod");
1171
- var GetKmsListRequestSchema = import_zod17.z.object({
1172
- page: import_zod17.z.number().int().min(1).optional(),
1173
- page_size: import_zod17.z.number().int().min(1).optional(),
1174
- is_onchain: import_zod17.z.boolean().optional()
1288
+ var import_zod16 = require("zod");
1289
+ var GetKmsListRequestSchema = import_zod16.z.object({
1290
+ page: import_zod16.z.number().int().min(1).optional(),
1291
+ page_size: import_zod16.z.number().int().min(1).optional(),
1292
+ is_onchain: import_zod16.z.boolean().optional()
1175
1293
  }).strict();
1176
- var GetKmsListSchema = import_zod17.z.object({
1177
- items: import_zod17.z.array(KmsInfoSchema),
1178
- total: import_zod17.z.number(),
1179
- page: import_zod17.z.number(),
1180
- page_size: import_zod17.z.number(),
1181
- pages: import_zod17.z.number()
1294
+ var GetKmsListSchema = import_zod16.z.object({
1295
+ items: import_zod16.z.array(KmsInfoSchema),
1296
+ total: import_zod16.z.number(),
1297
+ page: import_zod16.z.number(),
1298
+ page_size: import_zod16.z.number(),
1299
+ pages: import_zod16.z.number()
1182
1300
  }).strict();
1183
1301
  var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
1184
1302
  const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
@@ -1186,23 +1304,272 @@ var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsList
1186
1304
  });
1187
1305
 
1188
1306
  // src/actions/kms/get_app_env_encrypt_pubkey.ts
1189
- var import_zod18 = require("zod");
1190
- var GetAppEnvEncryptPubKeyRequestSchema = import_zod18.z.object({
1191
- kms: import_zod18.z.string().min(1, "KMS ID or slug is required"),
1192
- app_id: import_zod18.z.string().refine(
1307
+ var import_zod17 = require("zod");
1308
+ var GetAppEnvEncryptPubKeyRequestSchema = import_zod17.z.object({
1309
+ kms: import_zod17.z.string().min(1, "KMS ID or slug is required"),
1310
+ app_id: import_zod17.z.string().refine(
1193
1311
  (val) => val.length === 40 || val.startsWith("0x") && val.length === 42,
1194
1312
  "App ID must be exactly 40 characters or 42 characters with 0x prefix"
1195
1313
  )
1196
1314
  }).strict();
1197
- var GetAppEnvEncryptPubKeySchema = import_zod18.z.object({
1198
- public_key: import_zod18.z.string(),
1199
- signature: import_zod18.z.string()
1315
+ var GetAppEnvEncryptPubKeySchema = import_zod17.z.object({
1316
+ public_key: import_zod17.z.string(),
1317
+ signature: import_zod17.z.string()
1200
1318
  }).strict();
1201
1319
  var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
1202
1320
  const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
1203
1321
  return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
1204
1322
  });
1205
1323
 
1324
+ // src/actions/cvms/start_cvm.ts
1325
+ var StartCvmRequestSchema = CvmIdSchema;
1326
+ var { action: startCvm, safeAction: safeStartCvm } = defineAction(VMSchema, async (client, request) => {
1327
+ const { cvmId } = StartCvmRequestSchema.parse(request);
1328
+ return await client.post(`/cvms/${cvmId}/start`);
1329
+ });
1330
+
1331
+ // src/actions/cvms/stop_cvm.ts
1332
+ var StopCvmRequestSchema = CvmIdSchema;
1333
+ var { action: stopCvm, safeAction: safeStopCvm } = defineAction(
1334
+ VMSchema,
1335
+ async (client, request) => {
1336
+ const { cvmId } = StopCvmRequestSchema.parse(request);
1337
+ return await client.post(`/cvms/${cvmId}/stop`);
1338
+ }
1339
+ );
1340
+
1341
+ // src/actions/cvms/shutdown_cvm.ts
1342
+ var ShutdownCvmRequestSchema = CvmIdSchema;
1343
+ var { action: shutdownCvm, safeAction: safeShutdownCvm } = defineAction(VMSchema, async (client, request) => {
1344
+ const { cvmId } = ShutdownCvmRequestSchema.parse(request);
1345
+ return await client.post(`/cvms/${cvmId}/shutdown`);
1346
+ });
1347
+
1348
+ // src/actions/cvms/restart_cvm.ts
1349
+ var import_zod18 = require("zod");
1350
+ var RestartCvmRequestSchema = refineCvmId(
1351
+ CvmIdObjectSchema.extend({
1352
+ force: import_zod18.z.boolean().optional()
1353
+ })
1354
+ );
1355
+ var { action: restartCvm, safeAction: safeRestartCvm } = defineAction(VMSchema, async (client, request) => {
1356
+ const parsed = RestartCvmRequestSchema.parse(request);
1357
+ const { cvmId } = CvmIdSchema.parse(parsed);
1358
+ const { force = false } = parsed;
1359
+ return await client.post(`/cvms/${cvmId}/restart`, { force });
1360
+ });
1361
+
1362
+ // src/actions/cvms/delete_cvm.ts
1363
+ var import_zod19 = require("zod");
1364
+ var DeleteCvmRequestSchema = CvmIdSchema;
1365
+ var { action: deleteCvm, safeAction: safeDeleteCvm } = defineAction(
1366
+ import_zod19.z.void(),
1367
+ async (client, request) => {
1368
+ const { cvmId } = DeleteCvmRequestSchema.parse(request);
1369
+ await client.delete(`/cvms/${cvmId}`);
1370
+ return void 0;
1371
+ }
1372
+ );
1373
+
1374
+ // src/actions/cvms/get_cvm_stats.ts
1375
+ var import_zod20 = require("zod");
1376
+ var DiskInfoSchema = import_zod20.z.object({
1377
+ name: import_zod20.z.string(),
1378
+ mount_point: import_zod20.z.string(),
1379
+ total_size: import_zod20.z.number(),
1380
+ free_size: import_zod20.z.number()
1381
+ });
1382
+ var SystemInfoSchema = import_zod20.z.object({
1383
+ os_name: import_zod20.z.string(),
1384
+ os_version: import_zod20.z.string(),
1385
+ kernel_version: import_zod20.z.string(),
1386
+ cpu_model: import_zod20.z.string(),
1387
+ num_cpus: import_zod20.z.number(),
1388
+ total_memory: import_zod20.z.number(),
1389
+ available_memory: import_zod20.z.number(),
1390
+ used_memory: import_zod20.z.number(),
1391
+ free_memory: import_zod20.z.number(),
1392
+ total_swap: import_zod20.z.number(),
1393
+ used_swap: import_zod20.z.number(),
1394
+ free_swap: import_zod20.z.number(),
1395
+ uptime: import_zod20.z.number(),
1396
+ loadavg_one: import_zod20.z.number(),
1397
+ loadavg_five: import_zod20.z.number(),
1398
+ loadavg_fifteen: import_zod20.z.number(),
1399
+ disks: import_zod20.z.array(DiskInfoSchema)
1400
+ });
1401
+ var CvmSystemInfoSchema = import_zod20.z.object({
1402
+ is_online: import_zod20.z.boolean(),
1403
+ is_public: import_zod20.z.boolean().default(false),
1404
+ error: import_zod20.z.string().nullable(),
1405
+ sysinfo: SystemInfoSchema.nullable(),
1406
+ status: import_zod20.z.string().nullable(),
1407
+ in_progress: import_zod20.z.boolean().default(false),
1408
+ boot_progress: import_zod20.z.string().nullable(),
1409
+ boot_error: import_zod20.z.string().nullable()
1410
+ });
1411
+ var GetCvmStatsRequestSchema = CvmIdSchema;
1412
+ var { action: getCvmStats, safeAction: safeGetCvmStats } = defineAction(CvmSystemInfoSchema, async (client, request) => {
1413
+ const { cvmId } = GetCvmStatsRequestSchema.parse(request);
1414
+ return await client.get(`/cvms/${cvmId}/stats`);
1415
+ });
1416
+
1417
+ // src/actions/cvms/get_cvm_network.ts
1418
+ var import_zod21 = require("zod");
1419
+ var CvmNetworkUrlsSchema2 = import_zod21.z.object({
1420
+ app: import_zod21.z.string(),
1421
+ instance: import_zod21.z.string()
1422
+ });
1423
+ var CvmNetworkSchema = import_zod21.z.object({
1424
+ is_online: import_zod21.z.boolean(),
1425
+ is_public: import_zod21.z.boolean().default(true),
1426
+ error: import_zod21.z.string().nullable(),
1427
+ internal_ip: import_zod21.z.string().nullable(),
1428
+ latest_handshake: import_zod21.z.string().nullable(),
1429
+ public_urls: import_zod21.z.array(CvmNetworkUrlsSchema2).nullable()
1430
+ });
1431
+ var GetCvmNetworkRequestSchema = CvmIdSchema;
1432
+ var { action: getCvmNetwork, safeAction: safeGetCvmNetwork } = defineAction(CvmNetworkSchema, async (client, request) => {
1433
+ const { cvmId } = GetCvmNetworkRequestSchema.parse(request);
1434
+ return await client.get(`/cvms/${cvmId}/network`);
1435
+ });
1436
+
1437
+ // src/actions/cvms/get_cvm_docker_compose.ts
1438
+ var import_zod22 = require("zod");
1439
+ var GetCvmDockerComposeRequestSchema = CvmIdSchema;
1440
+ var { action: getCvmDockerCompose, safeAction: safeGetCvmDockerCompose } = defineAction(import_zod22.z.string(), async (client, request) => {
1441
+ const { cvmId } = GetCvmDockerComposeRequestSchema.parse(request);
1442
+ return await client.get(`/cvms/${cvmId}/docker-compose.yml`);
1443
+ });
1444
+
1445
+ // src/actions/cvms/get_cvm_containers_stats.ts
1446
+ var import_zod23 = require("zod");
1447
+ var ContainerInfoSchema = import_zod23.z.object({
1448
+ id: import_zod23.z.string(),
1449
+ names: import_zod23.z.array(import_zod23.z.string()),
1450
+ image: import_zod23.z.string(),
1451
+ image_id: import_zod23.z.string(),
1452
+ command: import_zod23.z.string().nullable().optional(),
1453
+ created: import_zod23.z.number(),
1454
+ state: import_zod23.z.string(),
1455
+ status: import_zod23.z.string(),
1456
+ log_endpoint: import_zod23.z.string().nullable()
1457
+ });
1458
+ var CvmContainersStatsSchema = import_zod23.z.object({
1459
+ is_online: import_zod23.z.boolean(),
1460
+ is_public: import_zod23.z.boolean().default(true),
1461
+ error: import_zod23.z.string().nullable(),
1462
+ docker_compose_file: import_zod23.z.string().nullable(),
1463
+ manifest_version: import_zod23.z.number().nullable(),
1464
+ version: import_zod23.z.string().nullable(),
1465
+ runner: import_zod23.z.string().nullable(),
1466
+ features: import_zod23.z.array(import_zod23.z.string()).nullable(),
1467
+ containers: import_zod23.z.array(ContainerInfoSchema).nullable()
1468
+ });
1469
+ var GetCvmContainersStatsRequestSchema = CvmIdSchema;
1470
+ var { action: getCvmContainersStats, safeAction: safeGetCvmContainersStats } = defineAction(CvmContainersStatsSchema, async (client, request) => {
1471
+ const { cvmId } = GetCvmContainersStatsRequestSchema.parse(request);
1472
+ return await client.get(`/cvms/${cvmId}/composition`);
1473
+ });
1474
+
1475
+ // src/actions/cvms/get_cvm_attestation.ts
1476
+ var import_zod24 = require("zod");
1477
+ var CertificateSubjectSchema = import_zod24.z.object({
1478
+ common_name: import_zod24.z.string().nullable(),
1479
+ organization: import_zod24.z.string().nullable(),
1480
+ country: import_zod24.z.string().nullable(),
1481
+ state: import_zod24.z.string().nullable(),
1482
+ locality: import_zod24.z.string().nullable()
1483
+ });
1484
+ var CertificateIssuerSchema = import_zod24.z.object({
1485
+ common_name: import_zod24.z.string().nullable(),
1486
+ organization: import_zod24.z.string().nullable(),
1487
+ country: import_zod24.z.string().nullable()
1488
+ });
1489
+ var CertificateSchema = import_zod24.z.object({
1490
+ subject: CertificateSubjectSchema,
1491
+ issuer: CertificateIssuerSchema,
1492
+ serial_number: import_zod24.z.string(),
1493
+ not_before: import_zod24.z.string(),
1494
+ // datetime serialized as ISO string
1495
+ not_after: import_zod24.z.string(),
1496
+ // datetime serialized as ISO string
1497
+ version: import_zod24.z.string(),
1498
+ fingerprint: import_zod24.z.string(),
1499
+ signature_algorithm: import_zod24.z.string(),
1500
+ sans: import_zod24.z.array(import_zod24.z.string()).nullable(),
1501
+ is_ca: import_zod24.z.boolean(),
1502
+ position_in_chain: import_zod24.z.number().nullable(),
1503
+ quote: import_zod24.z.string().nullable(),
1504
+ app_id: import_zod24.z.string().nullable().optional(),
1505
+ cert_usage: import_zod24.z.string().nullable().optional()
1506
+ });
1507
+ var EventLogSchema = import_zod24.z.object({
1508
+ imr: import_zod24.z.number(),
1509
+ event_type: import_zod24.z.number(),
1510
+ digest: import_zod24.z.string(),
1511
+ event: import_zod24.z.string(),
1512
+ event_payload: import_zod24.z.string()
1513
+ });
1514
+ var TcbInfoSchema = import_zod24.z.object({
1515
+ mrtd: import_zod24.z.string(),
1516
+ rootfs_hash: import_zod24.z.string().nullable().optional(),
1517
+ rtmr0: import_zod24.z.string(),
1518
+ rtmr1: import_zod24.z.string(),
1519
+ rtmr2: import_zod24.z.string(),
1520
+ rtmr3: import_zod24.z.string(),
1521
+ event_log: import_zod24.z.array(EventLogSchema),
1522
+ app_compose: import_zod24.z.string()
1523
+ });
1524
+ var CvmAttestationSchema = import_zod24.z.object({
1525
+ name: import_zod24.z.string().nullable(),
1526
+ is_online: import_zod24.z.boolean(),
1527
+ is_public: import_zod24.z.boolean().default(true),
1528
+ error: import_zod24.z.string().nullable(),
1529
+ app_certificates: import_zod24.z.array(CertificateSchema).nullable(),
1530
+ tcb_info: TcbInfoSchema.nullable(),
1531
+ compose_file: import_zod24.z.string().nullable()
1532
+ });
1533
+ var GetCvmAttestationRequestSchema = CvmIdSchema;
1534
+ var { action: getCvmAttestation, safeAction: safeGetCvmAttestation } = defineAction(CvmAttestationSchema, async (client, request) => {
1535
+ const { cvmId } = GetCvmAttestationRequestSchema.parse(request);
1536
+ return await client.get(`/cvms/${cvmId}/attestation`);
1537
+ });
1538
+
1539
+ // src/actions/cvms/update_cvm_resources.ts
1540
+ var import_zod25 = require("zod");
1541
+ var UpdateCvmResourcesRequestSchema = refineCvmId(
1542
+ CvmIdObjectSchema.extend({
1543
+ vcpu: import_zod25.z.number().optional(),
1544
+ memory: import_zod25.z.number().optional(),
1545
+ disk_size: import_zod25.z.number().optional(),
1546
+ instance_type: import_zod25.z.string().optional(),
1547
+ allow_restart: import_zod25.z.boolean().optional()
1548
+ })
1549
+ );
1550
+ var { action: updateCvmResources, safeAction: safeUpdateCvmResources } = defineAction(import_zod25.z.void(), async (client, request) => {
1551
+ const parsed = UpdateCvmResourcesRequestSchema.parse(request);
1552
+ const { cvmId } = CvmIdSchema.parse(parsed);
1553
+ const { ...body } = parsed;
1554
+ await client.patch(`/cvms/${cvmId}/resources`, body);
1555
+ return void 0;
1556
+ });
1557
+
1558
+ // src/actions/cvms/update_cvm_visibility.ts
1559
+ var import_zod26 = require("zod");
1560
+ var UpdateCvmVisibilityRequestSchema = refineCvmId(
1561
+ CvmIdObjectSchema.extend({
1562
+ public_sysinfo: import_zod26.z.boolean(),
1563
+ public_logs: import_zod26.z.boolean()
1564
+ })
1565
+ );
1566
+ var { action: updateCvmVisibility, safeAction: safeUpdateCvmVisibility } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
1567
+ const parsed = UpdateCvmVisibilityRequestSchema.parse(request);
1568
+ const { cvmId } = CvmIdSchema.parse(parsed);
1569
+ const { public_sysinfo, public_logs } = parsed;
1570
+ return await client.patch(`/cvms/${cvmId}/visibility`, { public_sysinfo, public_logs });
1571
+ });
1572
+
1206
1573
  // src/create-client.ts
1207
1574
  function createClient2(config = {}) {
1208
1575
  const client = createClient(config);
@@ -1231,6 +1598,30 @@ function createClient2(config = {}) {
1231
1598
  safeProvisionCvmComposeFileUpdate,
1232
1599
  commitCvmComposeFileUpdate,
1233
1600
  safeCommitCvmComposeFileUpdate,
1601
+ startCvm,
1602
+ safeStartCvm,
1603
+ stopCvm,
1604
+ safeStopCvm,
1605
+ shutdownCvm,
1606
+ safeShutdownCvm,
1607
+ restartCvm,
1608
+ safeRestartCvm,
1609
+ deleteCvm,
1610
+ safeDeleteCvm,
1611
+ getCvmStats,
1612
+ safeGetCvmStats,
1613
+ getCvmNetwork,
1614
+ safeGetCvmNetwork,
1615
+ getCvmDockerCompose,
1616
+ safeGetCvmDockerCompose,
1617
+ getCvmContainersStats,
1618
+ safeGetCvmContainersStats,
1619
+ getCvmAttestation,
1620
+ safeGetCvmAttestation,
1621
+ updateCvmResources,
1622
+ safeUpdateCvmResources,
1623
+ updateCvmVisibility,
1624
+ safeUpdateCvmVisibility,
1234
1625
  getKmsInfo,
1235
1626
  safeGetKmsInfo,
1236
1627
  getKmsList,
@@ -1242,7 +1633,7 @@ function createClient2(config = {}) {
1242
1633
  }
1243
1634
 
1244
1635
  // src/actions/blockchains/deploy_app_auth.ts
1245
- var import_zod19 = require("zod");
1636
+ var import_zod27 = require("zod");
1246
1637
  var import_viem3 = require("viem");
1247
1638
  var import_accounts2 = require("viem/accounts");
1248
1639
 
@@ -1909,25 +2300,25 @@ var kmsAuthAbi = [
1909
2300
  anonymous: false
1910
2301
  }
1911
2302
  ];
1912
- var DeployAppAuthRequestBaseSchema = import_zod19.z.object({
2303
+ var DeployAppAuthRequestBaseSchema = import_zod27.z.object({
1913
2304
  // Chain configuration (conditionally required)
1914
- chain: import_zod19.z.unknown().optional(),
1915
- rpcUrl: import_zod19.z.string().optional(),
2305
+ chain: import_zod27.z.unknown().optional(),
2306
+ rpcUrl: import_zod27.z.string().optional(),
1916
2307
  // Contract configuration (required)
1917
- kmsContractAddress: import_zod19.z.string(),
2308
+ kmsContractAddress: import_zod27.z.string(),
1918
2309
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
1919
- privateKey: import_zod19.z.string().optional(),
1920
- walletClient: import_zod19.z.unknown().optional(),
2310
+ privateKey: import_zod27.z.string().optional(),
2311
+ walletClient: import_zod27.z.unknown().optional(),
1921
2312
  // Public client (optional, will create default if not provided)
1922
- publicClient: import_zod19.z.unknown().optional(),
2313
+ publicClient: import_zod27.z.unknown().optional(),
1923
2314
  // App configuration (optional)
1924
- allowAnyDevice: import_zod19.z.boolean().optional().default(false),
1925
- deviceId: import_zod19.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1926
- composeHash: import_zod19.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1927
- disableUpgrades: import_zod19.z.boolean().optional().default(false),
2315
+ allowAnyDevice: import_zod27.z.boolean().optional().default(false),
2316
+ deviceId: import_zod27.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2317
+ composeHash: import_zod27.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2318
+ disableUpgrades: import_zod27.z.boolean().optional().default(false),
1928
2319
  // Validation configuration (optional)
1929
- skipPrerequisiteChecks: import_zod19.z.boolean().optional().default(false),
1930
- minBalance: import_zod19.z.string().optional()
2320
+ skipPrerequisiteChecks: import_zod27.z.boolean().optional().default(false),
2321
+ minBalance: import_zod27.z.string().optional()
1931
2322
  // ETH amount as string, e.g., "0.01"
1932
2323
  }).passthrough();
1933
2324
  var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
@@ -1955,13 +2346,13 @@ var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
1955
2346
  path: ["chain"]
1956
2347
  }
1957
2348
  );
1958
- var DeployAppAuthSchema = import_zod19.z.object({
1959
- appId: import_zod19.z.string(),
1960
- appAuthAddress: import_zod19.z.string(),
1961
- deployer: import_zod19.z.string(),
1962
- transactionHash: import_zod19.z.string(),
1963
- blockNumber: import_zod19.z.bigint().optional(),
1964
- gasUsed: import_zod19.z.bigint().optional()
2349
+ var DeployAppAuthSchema = import_zod27.z.object({
2350
+ appId: import_zod27.z.string(),
2351
+ appAuthAddress: import_zod27.z.string(),
2352
+ deployer: import_zod27.z.string(),
2353
+ transactionHash: import_zod27.z.string(),
2354
+ blockNumber: import_zod27.z.bigint().optional(),
2355
+ gasUsed: import_zod27.z.bigint().optional()
1965
2356
  }).passthrough();
1966
2357
  function parseDeploymentResult(receipt, deployer, kmsContractAddress) {
1967
2358
  try {
@@ -2207,7 +2598,7 @@ async function safeDeployAppAuth(request, parameters) {
2207
2598
  }
2208
2599
 
2209
2600
  // src/actions/blockchains/add_compose_hash.ts
2210
- var import_zod20 = require("zod");
2601
+ var import_zod28 = require("zod");
2211
2602
  var import_viem4 = require("viem");
2212
2603
  var import_accounts3 = require("viem/accounts");
2213
2604
  var appAuthAbi = [
@@ -2225,29 +2616,29 @@ var appAuthAbi = [
2225
2616
  anonymous: false
2226
2617
  }
2227
2618
  ];
2228
- var AddComposeHashRequestSchema = import_zod20.z.object({
2619
+ var AddComposeHashRequestSchema = import_zod28.z.object({
2229
2620
  // Chain configuration (conditionally required)
2230
- chain: import_zod20.z.unknown().optional(),
2231
- rpcUrl: import_zod20.z.string().optional(),
2232
- appId: import_zod20.z.string(),
2233
- composeHash: import_zod20.z.string(),
2621
+ chain: import_zod28.z.unknown().optional(),
2622
+ rpcUrl: import_zod28.z.string().optional(),
2623
+ appId: import_zod28.z.string(),
2624
+ composeHash: import_zod28.z.string(),
2234
2625
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
2235
- privateKey: import_zod20.z.string().optional(),
2236
- walletClient: import_zod20.z.unknown().optional(),
2626
+ privateKey: import_zod28.z.string().optional(),
2627
+ walletClient: import_zod28.z.unknown().optional(),
2237
2628
  // Public client (optional, will create default if not provided)
2238
- publicClient: import_zod20.z.unknown().optional(),
2629
+ publicClient: import_zod28.z.unknown().optional(),
2239
2630
  // Validation configuration (optional)
2240
- skipPrerequisiteChecks: import_zod20.z.boolean().optional().default(false),
2241
- minBalance: import_zod20.z.string().optional(),
2631
+ skipPrerequisiteChecks: import_zod28.z.boolean().optional().default(false),
2632
+ minBalance: import_zod28.z.string().optional(),
2242
2633
  // ETH amount as string, e.g., "0.01"
2243
2634
  // Transaction control options
2244
- timeout: import_zod20.z.number().optional().default(12e4),
2245
- retryOptions: import_zod20.z.unknown().optional(),
2246
- signal: import_zod20.z.unknown().optional(),
2635
+ timeout: import_zod28.z.number().optional().default(12e4),
2636
+ retryOptions: import_zod28.z.unknown().optional(),
2637
+ signal: import_zod28.z.unknown().optional(),
2247
2638
  // Progress callbacks
2248
- onTransactionStateChange: import_zod20.z.function().optional(),
2249
- onTransactionSubmitted: import_zod20.z.function().optional(),
2250
- onTransactionConfirmed: import_zod20.z.function().optional()
2639
+ onTransactionStateChange: import_zod28.z.function().optional(),
2640
+ onTransactionSubmitted: import_zod28.z.function().optional(),
2641
+ onTransactionConfirmed: import_zod28.z.function().optional()
2251
2642
  }).passthrough().refine(
2252
2643
  (data) => {
2253
2644
  const hasPrivateKey = !!data.privateKey;
@@ -2271,12 +2662,12 @@ var AddComposeHashRequestSchema = import_zod20.z.object({
2271
2662
  path: ["chain"]
2272
2663
  }
2273
2664
  );
2274
- var AddComposeHashSchema = import_zod20.z.object({
2275
- composeHash: import_zod20.z.string(),
2276
- appId: import_zod20.z.string(),
2277
- transactionHash: import_zod20.z.string(),
2278
- blockNumber: import_zod20.z.bigint().optional(),
2279
- gasUsed: import_zod20.z.bigint().optional()
2665
+ var AddComposeHashSchema = import_zod28.z.object({
2666
+ composeHash: import_zod28.z.string(),
2667
+ appId: import_zod28.z.string(),
2668
+ transactionHash: import_zod28.z.string(),
2669
+ blockNumber: import_zod28.z.bigint().optional(),
2670
+ gasUsed: import_zod28.z.bigint().optional()
2280
2671
  }).passthrough();
2281
2672
  function parseComposeHashResult(receipt, composeHash, appAuthAddress, appId) {
2282
2673
  console.log(receipt.logs);
@@ -2500,7 +2891,7 @@ function parseEnvVars(input) {
2500
2891
 
2501
2892
  // src/index.ts
2502
2893
  var import_encrypt_env_vars2 = require("@phala/dstack-sdk/encrypt-env-vars");
2503
- var import_get_compose_hash2 = require("@phala/dstack-sdk/get-compose-hash");
2894
+ var import_get_compose_hash3 = require("@phala/dstack-sdk/get-compose-hash");
2504
2895
  var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env-encrypt-public-key");
2505
2896
  // Annotate the CommonJS export names for ESM import in node:
2506
2897
  0 && (module.exports = {
@@ -2512,18 +2903,31 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2512
2903
  CommitCvmProvisionRequestSchema,
2513
2904
  CommitCvmProvisionSchema,
2514
2905
  CurrentUserSchema,
2906
+ CvmAttestationSchema,
2907
+ CvmContainersStatsSchema,
2908
+ CvmIdBaseSchema,
2909
+ CvmIdObjectSchema,
2910
+ CvmIdSchema,
2515
2911
  CvmInfoSchema,
2516
2912
  CvmLegacyDetailSchema,
2913
+ CvmNetworkSchema,
2517
2914
  CvmNetworkUrlsSchema,
2518
2915
  CvmNodeSchema,
2916
+ CvmSystemInfoSchema,
2917
+ DeleteCvmRequestSchema,
2519
2918
  DeployAppAuthRequestSchema,
2520
2919
  DeployAppAuthSchema,
2521
2920
  GetAppEnvEncryptPubKeyRequestSchema,
2522
2921
  GetAppEnvEncryptPubKeySchema,
2922
+ GetCvmAttestationRequestSchema,
2523
2923
  GetCvmComposeFileRequestSchema,
2924
+ GetCvmContainersStatsRequestSchema,
2925
+ GetCvmDockerComposeRequestSchema,
2524
2926
  GetCvmInfoRequestSchema,
2525
2927
  GetCvmListRequestSchema,
2526
2928
  GetCvmListSchema,
2929
+ GetCvmNetworkRequestSchema,
2930
+ GetCvmStatsRequestSchema,
2527
2931
  GetKmsInfoRequestSchema,
2528
2932
  GetKmsListRequestSchema,
2529
2933
  GetKmsListSchema,
@@ -2540,8 +2944,15 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2540
2944
  ProvisionCvmRequestSchema,
2541
2945
  ProvisionCvmSchema,
2542
2946
  RequestError,
2947
+ RestartCvmRequestSchema,
2543
2948
  SUPPORTED_CHAINS,
2949
+ ShutdownCvmRequestSchema,
2950
+ StartCvmRequestSchema,
2951
+ StopCvmRequestSchema,
2544
2952
  TransactionError,
2953
+ UpdateCvmResourcesRequestSchema,
2954
+ UpdateCvmVisibilityRequestSchema,
2955
+ VMSchema,
2545
2956
  VmInfoSchema,
2546
2957
  WalletError,
2547
2958
  WorkspaceResponseSchema,
@@ -2561,7 +2972,9 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2561
2972
  createTransactionTracker,
2562
2973
  defineAction,
2563
2974
  defineSimpleAction,
2975
+ deleteCvm,
2564
2976
  deployAppAuth,
2977
+ dumpAppCompose,
2565
2978
  encryptEnvVars,
2566
2979
  estimateTransactionGas,
2567
2980
  executeBatchTransactions,
@@ -2572,9 +2985,14 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2572
2985
  getAvailableNodes,
2573
2986
  getComposeHash,
2574
2987
  getCurrentUser,
2988
+ getCvmAttestation,
2575
2989
  getCvmComposeFile,
2990
+ getCvmContainersStats,
2991
+ getCvmDockerCompose,
2576
2992
  getCvmInfo,
2577
2993
  getCvmList,
2994
+ getCvmNetwork,
2995
+ getCvmStats,
2578
2996
  getErrorMessage,
2579
2997
  getKmsInfo,
2580
2998
  getKmsList,
@@ -2583,18 +3001,27 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2583
3001
  listWorkspaces,
2584
3002
  parseEnv,
2585
3003
  parseEnvVars,
3004
+ preprocessAppCompose,
2586
3005
  provisionCvm,
2587
3006
  provisionCvmComposeFileUpdate,
3007
+ refineCvmId,
3008
+ restartCvm,
2588
3009
  safeAddComposeHash,
2589
3010
  safeCommitCvmComposeFileUpdate,
2590
3011
  safeCommitCvmProvision,
3012
+ safeDeleteCvm,
2591
3013
  safeDeployAppAuth,
2592
3014
  safeGetAppEnvEncryptPubKey,
2593
3015
  safeGetAvailableNodes,
2594
3016
  safeGetCurrentUser,
3017
+ safeGetCvmAttestation,
2595
3018
  safeGetCvmComposeFile,
3019
+ safeGetCvmContainersStats,
3020
+ safeGetCvmDockerCompose,
2596
3021
  safeGetCvmInfo,
2597
3022
  safeGetCvmList,
3023
+ safeGetCvmNetwork,
3024
+ safeGetCvmStats,
2598
3025
  safeGetKmsInfo,
2599
3026
  safeGetKmsList,
2600
3027
  safeGetWorkspace,
@@ -2602,10 +3029,23 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2602
3029
  safeListWorkspaces,
2603
3030
  safeProvisionCvm,
2604
3031
  safeProvisionCvmComposeFileUpdate,
3032
+ safeRestartCvm,
3033
+ safeShutdownCvm,
3034
+ safeStartCvm,
3035
+ safeStopCvm,
3036
+ safeUpdateCvmResources,
3037
+ safeUpdateCvmVisibility,
2605
3038
  safeValidateActionParameters,
3039
+ shutdownCvm,
3040
+ sortObject,
3041
+ startCvm,
3042
+ stopCvm,
2606
3043
  switchToNetwork,
3044
+ updateCvmResources,
3045
+ updateCvmVisibility,
2607
3046
  validateActionParameters,
2608
3047
  validateNetworkPrerequisites,
2609
3048
  verifyEnvEncryptPublicKey,
2610
- waitForTransactionReceipt
3049
+ waitForTransactionReceipt,
3050
+ withComposeMethods
2611
3051
  });