@phala/cloud 0.1.2 → 0.2.1-beta.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
@@ -31,6 +31,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
31
31
  var index_exports = {};
32
32
  __export(index_exports, {
33
33
  AddComposeHashSchema: () => AddComposeHashSchema,
34
+ AllFamiliesResponseSchema: () => AllFamiliesResponseSchema,
34
35
  ApiErrorSchema: () => ApiErrorSchema,
35
36
  AuthError: () => AuthError,
36
37
  AvailableNodesSchema: () => AvailableNodesSchema,
@@ -50,12 +51,17 @@ __export(index_exports, {
50
51
  CvmNetworkSchema: () => CvmNetworkSchema,
51
52
  CvmNetworkUrlsSchema: () => CvmNetworkUrlsSchema,
52
53
  CvmNodeSchema: () => CvmNodeSchema,
54
+ CvmStateSchema: () => CvmStateSchema,
53
55
  CvmSystemInfoSchema: () => CvmSystemInfoSchema,
54
56
  DeleteCvmRequestSchema: () => DeleteCvmRequestSchema,
55
57
  DeployAppAuthRequestSchema: () => DeployAppAuthRequestSchema,
56
58
  DeployAppAuthSchema: () => DeployAppAuthSchema,
59
+ FamilyGroupSchema: () => FamilyGroupSchema,
60
+ FamilyInstanceTypesResponseSchema: () => FamilyInstanceTypesResponseSchema,
57
61
  GetAppEnvEncryptPubKeyRequestSchema: () => GetAppEnvEncryptPubKeyRequestSchema,
58
62
  GetAppEnvEncryptPubKeySchema: () => GetAppEnvEncryptPubKeySchema,
63
+ GetAvailableOSImagesRequestSchema: () => GetAvailableOSImagesRequestSchema,
64
+ GetAvailableOSImagesResponseSchema: () => GetAvailableOSImagesResponseSchema,
59
65
  GetCvmAttestationRequestSchema: () => GetCvmAttestationRequestSchema,
60
66
  GetCvmComposeFileRequestSchema: () => GetCvmComposeFileRequestSchema,
61
67
  GetCvmContainersStatsRequestSchema: () => GetCvmContainersStatsRequestSchema,
@@ -64,17 +70,21 @@ __export(index_exports, {
64
70
  GetCvmListRequestSchema: () => GetCvmListRequestSchema,
65
71
  GetCvmListSchema: () => GetCvmListSchema,
66
72
  GetCvmNetworkRequestSchema: () => GetCvmNetworkRequestSchema,
73
+ GetCvmStateRequestSchema: () => GetCvmStateRequestSchema,
67
74
  GetCvmStatsRequestSchema: () => GetCvmStatsRequestSchema,
68
75
  GetKmsInfoRequestSchema: () => GetKmsInfoRequestSchema,
69
76
  GetKmsListRequestSchema: () => GetKmsListRequestSchema,
70
77
  GetKmsListSchema: () => GetKmsListSchema,
71
78
  InstanceTypeSchema: () => InstanceTypeSchema,
72
79
  KmsInfoSchema: () => KmsInfoSchema,
73
- ListInstanceTypesRequestSchema: () => ListInstanceTypesRequestSchema,
80
+ ListFamilyInstanceTypesRequestSchema: () => ListFamilyInstanceTypesRequestSchema,
74
81
  ListWorkspacesSchema: () => ListWorkspacesSchema,
75
82
  ManagedUserSchema: () => ManagedUserSchema,
83
+ MaxRetriesExceededError: () => MaxRetriesExceededError,
76
84
  NetworkError: () => NetworkError,
77
- PaginatedInstanceTypesSchema: () => PaginatedInstanceTypesSchema,
85
+ NextAppIdsRequestSchema: () => NextAppIdsRequestSchema,
86
+ NextAppIdsSchema: () => NextAppIdsSchema,
87
+ OSImageVariantSchema: () => OSImageVariantSchema,
78
88
  PaginationMetadataSchema: () => PaginationMetadataSchema,
79
89
  PhalaCloudError: () => PhalaCloudError,
80
90
  ProvisionCvmComposeFileUpdateRequestSchema: () => ProvisionCvmComposeFileUpdateRequestSchema,
@@ -82,6 +92,7 @@ __export(index_exports, {
82
92
  ProvisionCvmRequestSchema: () => ProvisionCvmRequestSchema,
83
93
  ProvisionCvmSchema: () => ProvisionCvmSchema,
84
94
  RequestError: () => RequestError,
95
+ ResourceError: () => ResourceError,
85
96
  RestartCvmRequestSchema: () => RestartCvmRequestSchema,
86
97
  SUPPORTED_CHAINS: () => SUPPORTED_CHAINS,
87
98
  ServerError: () => ServerError,
@@ -92,10 +103,13 @@ __export(index_exports, {
92
103
  UnknownError: () => UnknownError,
93
104
  UpdateCvmResourcesRequestSchema: () => UpdateCvmResourcesRequestSchema,
94
105
  UpdateCvmVisibilityRequestSchema: () => UpdateCvmVisibilityRequestSchema,
106
+ UpdateOsImageRequestSchema: () => UpdateOsImageRequestSchema,
95
107
  VMSchema: () => VMSchema,
96
108
  ValidationError: () => ValidationError,
97
109
  VmInfoSchema: () => VmInfoSchema,
98
110
  WalletError: () => WalletError,
111
+ WatchAbortedError: () => WatchAbortedError,
112
+ WatchCvmStateRequestSchema: () => WatchCvmStateRequestSchema,
99
113
  WorkspaceResponseSchema: () => WorkspaceResponseSchema,
100
114
  addComposeHash: () => addComposeHash,
101
115
  addNetwork: () => addNetwork,
@@ -123,9 +137,11 @@ __export(index_exports, {
123
137
  executeTransactionWithRetry: () => executeTransactionWithRetry,
124
138
  extractNetworkClients: () => extractNetworkClients,
125
139
  formatErrorMessage: () => formatErrorMessage,
140
+ formatStructuredError: () => formatStructuredError,
126
141
  formatValidationErrors: () => formatValidationErrors,
127
142
  getAppEnvEncryptPubKey: () => getAppEnvEncryptPubKey,
128
143
  getAvailableNodes: () => getAvailableNodes,
144
+ getAvailableOsImages: () => getAvailableOsImages,
129
145
  getComposeHash: () => import_get_compose_hash3.getComposeHash,
130
146
  getCurrentUser: () => getCurrentUser,
131
147
  getCvmAttestation: () => getCvmAttestation,
@@ -135,14 +151,17 @@ __export(index_exports, {
135
151
  getCvmInfo: () => getCvmInfo,
136
152
  getCvmList: () => getCvmList,
137
153
  getCvmNetwork: () => getCvmNetwork,
154
+ getCvmState: () => getCvmState,
138
155
  getCvmStats: () => getCvmStats,
139
156
  getErrorMessage: () => getErrorMessage,
140
157
  getKmsInfo: () => getKmsInfo,
141
158
  getKmsList: () => getKmsList,
142
159
  getValidationFields: () => getValidationFields,
143
160
  getWorkspace: () => getWorkspace,
144
- listInstanceTypes: () => listInstanceTypes,
161
+ listAllInstanceTypeFamilies: () => listAllInstanceTypeFamilies,
162
+ listFamilyInstanceTypes: () => listFamilyInstanceTypes,
145
163
  listWorkspaces: () => listWorkspaces,
164
+ nextAppIds: () => nextAppIds,
146
165
  parseApiError: () => parseApiError,
147
166
  parseEnv: () => parseEnv,
148
167
  parseEnvVars: () => parseEnvVars,
@@ -158,6 +177,7 @@ __export(index_exports, {
158
177
  safeDeployAppAuth: () => safeDeployAppAuth,
159
178
  safeGetAppEnvEncryptPubKey: () => safeGetAppEnvEncryptPubKey,
160
179
  safeGetAvailableNodes: () => safeGetAvailableNodes,
180
+ safeGetAvailableOsImages: () => safeGetAvailableOsImages,
161
181
  safeGetCurrentUser: () => safeGetCurrentUser,
162
182
  safeGetCvmAttestation: () => safeGetCvmAttestation,
163
183
  safeGetCvmComposeFile: () => safeGetCvmComposeFile,
@@ -166,12 +186,15 @@ __export(index_exports, {
166
186
  safeGetCvmInfo: () => safeGetCvmInfo,
167
187
  safeGetCvmList: () => safeGetCvmList,
168
188
  safeGetCvmNetwork: () => safeGetCvmNetwork,
189
+ safeGetCvmState: () => safeGetCvmState,
169
190
  safeGetCvmStats: () => safeGetCvmStats,
170
191
  safeGetKmsInfo: () => safeGetKmsInfo,
171
192
  safeGetKmsList: () => safeGetKmsList,
172
193
  safeGetWorkspace: () => safeGetWorkspace,
173
- safeListInstanceTypes: () => safeListInstanceTypes,
194
+ safeListAllInstanceTypeFamilies: () => safeListAllInstanceTypeFamilies,
195
+ safeListFamilyInstanceTypes: () => safeListFamilyInstanceTypes,
174
196
  safeListWorkspaces: () => safeListWorkspaces,
197
+ safeNextAppIds: () => safeNextAppIds,
175
198
  safeProvisionCvm: () => safeProvisionCvm,
176
199
  safeProvisionCvmComposeFileUpdate: () => safeProvisionCvmComposeFileUpdate,
177
200
  safeRestartCvm: () => safeRestartCvm,
@@ -180,6 +203,7 @@ __export(index_exports, {
180
203
  safeStopCvm: () => safeStopCvm,
181
204
  safeUpdateCvmResources: () => safeUpdateCvmResources,
182
205
  safeUpdateCvmVisibility: () => safeUpdateCvmVisibility,
206
+ safeUpdateOsImage: () => safeUpdateOsImage,
183
207
  safeValidateActionParameters: () => safeValidateActionParameters,
184
208
  shutdownCvm: () => shutdownCvm,
185
209
  sortObject: () => sortObject,
@@ -188,10 +212,12 @@ __export(index_exports, {
188
212
  switchToNetwork: () => switchToNetwork,
189
213
  updateCvmResources: () => updateCvmResources,
190
214
  updateCvmVisibility: () => updateCvmVisibility,
215
+ updateOsImage: () => updateOsImage,
191
216
  validateActionParameters: () => validateActionParameters,
192
217
  validateNetworkPrerequisites: () => validateNetworkPrerequisites,
193
218
  verifyEnvEncryptPublicKey: () => import_verify_env_encrypt_public_key.verifyEnvEncryptPublicKey,
194
219
  waitForTransactionReceipt: () => waitForTransactionReceipt,
220
+ watchCvmState: () => watchCvmState,
195
221
  withComposeMethods: () => withComposeMethods
196
222
  });
197
223
  module.exports = __toCommonJS(index_exports);
@@ -210,8 +236,11 @@ var ApiErrorSchema = import_zod.z.object({
210
236
  import_zod.z.object({
211
237
  msg: import_zod.z.string(),
212
238
  type: import_zod.z.string().optional(),
213
- ctx: import_zod.z.record(import_zod.z.unknown()).optional()
214
- })
239
+ ctx: import_zod.z.record(import_zod.z.unknown()).optional(),
240
+ loc: import_zod.z.array(import_zod.z.union([import_zod.z.string(), import_zod.z.number()])).optional(),
241
+ input: import_zod.z.unknown().optional()
242
+ }).passthrough()
243
+ // Allow additional fields
215
244
  ),
216
245
  import_zod.z.record(import_zod.z.unknown())
217
246
  ]).optional(),
@@ -314,6 +343,9 @@ var UnknownError = class extends PhalaCloudError {
314
343
  }
315
344
  };
316
345
  function extractFieldPath(loc) {
346
+ if (!loc || !Array.isArray(loc)) {
347
+ return "unknown";
348
+ }
317
349
  const filtered = loc.filter((part) => {
318
350
  if (typeof part === "string") {
319
351
  return !["body", "query", "path", "header"].includes(part);
@@ -329,12 +361,21 @@ function parseValidationErrors(detail) {
329
361
  message: typeof detail === "string" ? detail : "Validation error"
330
362
  };
331
363
  }
332
- const errors = detail.map((item) => ({
333
- field: extractFieldPath(item.loc),
334
- message: item.msg,
335
- type: item.type,
336
- context: item.ctx
337
- }));
364
+ const errors = detail.map(
365
+ (item, index) => {
366
+ const field = extractFieldPath(item.loc);
367
+ let displayField = field;
368
+ if (field === "unknown" && item.type) {
369
+ displayField = item.type === "missing" ? "required field" : item.type;
370
+ }
371
+ return {
372
+ field: displayField,
373
+ message: item.msg,
374
+ type: item.type,
375
+ context: item.ctx
376
+ };
377
+ }
378
+ );
338
379
  const count = errors.length;
339
380
  const message = count === 1 ? `Validation failed: ${errors[0].message}` : `Validation failed (${count} issue${count > 1 ? "s" : ""})`;
340
381
  return { errors, message };
@@ -377,13 +418,21 @@ function parseApiError(requestError) {
377
418
  const status = requestError.status ?? 0;
378
419
  const statusText = requestError.statusText ?? "Unknown Error";
379
420
  const detail = requestError.detail;
421
+ const structured = parseStructuredError(detail);
422
+ if (structured) {
423
+ return new ResourceError(structured.message, {
424
+ status,
425
+ statusText,
426
+ detail,
427
+ errorCode: structured.error_code,
428
+ structuredDetails: structured.details,
429
+ suggestions: structured.suggestions,
430
+ links: structured.links
431
+ });
432
+ }
380
433
  const errorType = categorizeErrorType(status);
381
434
  const message = extractPrimaryMessage(status, detail, requestError.message);
382
- const commonData = {
383
- status,
384
- statusText,
385
- detail
386
- };
435
+ const commonData = { status, statusText, detail };
387
436
  if (errorType === "validation" && Array.isArray(detail)) {
388
437
  const { errors } = parseValidationErrors(detail);
389
438
  return new ValidationError(message, {
@@ -445,6 +494,67 @@ function getErrorMessage(error) {
445
494
  }
446
495
  return "Unknown error occurred";
447
496
  }
497
+ var ResourceError = class extends BusinessError {
498
+ constructor(message, data) {
499
+ super(message, data);
500
+ this.isResourceError = true;
501
+ this.errorCode = data.errorCode;
502
+ this.structuredDetails = data.structuredDetails;
503
+ this.suggestions = data.suggestions;
504
+ this.links = data.links;
505
+ }
506
+ };
507
+ function parseStructuredError(detail) {
508
+ if (!detail || typeof detail !== "object") {
509
+ return null;
510
+ }
511
+ const obj = detail;
512
+ if (obj.error_code && typeof obj.error_code === "string" && obj.message && typeof obj.message === "string") {
513
+ return {
514
+ error_code: obj.error_code,
515
+ message: obj.message,
516
+ details: obj.details,
517
+ suggestions: obj.suggestions,
518
+ links: obj.links
519
+ };
520
+ }
521
+ return null;
522
+ }
523
+ function formatStructuredError(error, options) {
524
+ const { showErrorCode = true, showSuggestions = true, showLinks = true } = options ?? {};
525
+ const parts = [];
526
+ if (showErrorCode && error.errorCode) {
527
+ parts.push(`Error [${error.errorCode}]: ${error.message}`);
528
+ } else {
529
+ parts.push(error.message);
530
+ }
531
+ if (error.structuredDetails && error.structuredDetails.length > 0) {
532
+ parts.push("");
533
+ parts.push("Details:");
534
+ error.structuredDetails.forEach((d) => {
535
+ if (d.message) {
536
+ parts.push(` - ${d.message}`);
537
+ } else if (d.field && d.value !== void 0) {
538
+ parts.push(` - ${d.field}: ${d.value}`);
539
+ }
540
+ });
541
+ }
542
+ if (showSuggestions && error.suggestions && error.suggestions.length > 0) {
543
+ parts.push("");
544
+ parts.push("Suggestions:");
545
+ error.suggestions.forEach((s) => {
546
+ parts.push(` - ${s}`);
547
+ });
548
+ }
549
+ if (showLinks && error.links && error.links.length > 0) {
550
+ parts.push("");
551
+ parts.push("Learn more:");
552
+ error.links.forEach((link) => {
553
+ parts.push(` - ${link.label}: ${link.url}`);
554
+ });
555
+ }
556
+ return parts.join("\n");
557
+ }
448
558
 
449
559
  // src/client.ts
450
560
  var SUPPORTED_API_VERSIONS = ["2025-05-31", "2025-10-28"];
@@ -1002,10 +1112,6 @@ var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSim
1002
1112
 
1003
1113
  // src/actions/list-instance-types.ts
1004
1114
  var import_zod5 = require("zod");
1005
- var ListInstanceTypesRequestSchema = import_zod5.z.object({
1006
- page: import_zod5.z.number().int().min(1).optional().default(1),
1007
- page_size: import_zod5.z.number().int().min(1).max(1e3).optional().default(100)
1008
- }).strict();
1009
1115
  var InstanceTypeSchema = import_zod5.z.object({
1010
1116
  id: import_zod5.z.string(),
1011
1117
  name: import_zod5.z.string(),
@@ -1014,22 +1120,34 @@ var InstanceTypeSchema = import_zod5.z.object({
1014
1120
  memory_mb: import_zod5.z.number(),
1015
1121
  hourly_rate: import_zod5.z.string(),
1016
1122
  requires_gpu: import_zod5.z.boolean(),
1017
- public: import_zod5.z.boolean(),
1018
- enabled: import_zod5.z.boolean()
1123
+ default_disk_size_gb: import_zod5.z.number().default(20),
1124
+ family: import_zod5.z.string().nullable()
1019
1125
  }).passthrough();
1020
- var PaginatedInstanceTypesSchema = import_zod5.z.object({
1126
+ var FamilyGroupSchema = import_zod5.z.object({
1127
+ name: import_zod5.z.string(),
1128
+ items: import_zod5.z.array(InstanceTypeSchema),
1129
+ total: import_zod5.z.number()
1130
+ }).strict();
1131
+ var AllFamiliesResponseSchema = import_zod5.z.object({
1132
+ result: import_zod5.z.array(FamilyGroupSchema)
1133
+ }).strict();
1134
+ var FamilyInstanceTypesResponseSchema = import_zod5.z.object({
1021
1135
  items: import_zod5.z.array(InstanceTypeSchema),
1022
1136
  total: import_zod5.z.number(),
1023
- page: import_zod5.z.number(),
1024
- page_size: import_zod5.z.number(),
1025
- pages: import_zod5.z.number()
1137
+ family: import_zod5.z.string()
1026
1138
  }).strict();
1027
- var { action: listInstanceTypes, safeAction: safeListInstanceTypes } = defineAction(PaginatedInstanceTypesSchema, async (client, request) => {
1028
- const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
1029
- const queryParams = new URLSearchParams();
1030
- queryParams.append("page", validatedRequest.page.toString());
1031
- queryParams.append("page_size", validatedRequest.page_size.toString());
1032
- return await client.get(`/api/instance-types?${queryParams.toString()}`);
1139
+ var ListFamilyInstanceTypesRequestSchema = import_zod5.z.object({
1140
+ family: import_zod5.z.string()
1141
+ }).strict();
1142
+ var { action: listAllInstanceTypeFamilies, safeAction: safeListAllInstanceTypeFamilies } = defineAction(
1143
+ AllFamiliesResponseSchema,
1144
+ async (client) => {
1145
+ return await client.get("/instance-types");
1146
+ }
1147
+ );
1148
+ var { action: listFamilyInstanceTypes, safeAction: safeListFamilyInstanceTypes } = defineAction(FamilyInstanceTypesResponseSchema, async (client, request) => {
1149
+ const validated = ListFamilyInstanceTypesRequestSchema.parse(request);
1150
+ return await client.get(`/instance-types/${validated.family}`);
1033
1151
  });
1034
1152
 
1035
1153
  // src/actions/workspaces/list_workspaces.ts
@@ -1249,6 +1367,7 @@ var ProvisionCvmSchema = import_zod10.z.object({
1249
1367
  fmspc: import_zod10.z.string().nullable().optional(),
1250
1368
  device_id: import_zod10.z.string().nullable().optional(),
1251
1369
  os_image_hash: import_zod10.z.string().nullable().optional(),
1370
+ instance_type: import_zod10.z.string().nullable().optional(),
1252
1371
  teepod_id: import_zod10.z.number().nullable().optional(),
1253
1372
  // Will be transformed to node_id
1254
1373
  node_id: import_zod10.z.number().nullable().optional(),
@@ -1262,19 +1381,24 @@ var ProvisionCvmSchema = import_zod10.z.object({
1262
1381
  });
1263
1382
  var ProvisionCvmRequestSchema = import_zod10.z.object({
1264
1383
  node_id: import_zod10.z.number().optional(),
1265
- // recommended
1384
+ // recommended - optional, system auto-selects if not specified
1266
1385
  teepod_id: import_zod10.z.number().optional(),
1267
1386
  // deprecated, for compatibility
1387
+ region: import_zod10.z.string().optional(),
1388
+ // optional - region filter for auto-selection
1268
1389
  name: import_zod10.z.string(),
1269
- image: import_zod10.z.string(),
1270
- vcpu: import_zod10.z.number(),
1271
- memory: import_zod10.z.number(),
1272
- disk_size: import_zod10.z.number(),
1390
+ instance_type: import_zod10.z.string().default("tdx.small"),
1391
+ // defaults to "tdx.small"
1392
+ image: import_zod10.z.string().optional(),
1393
+ vcpu: import_zod10.z.number().optional(),
1394
+ memory: import_zod10.z.number().optional(),
1395
+ disk_size: import_zod10.z.number().optional(),
1273
1396
  compose_file: import_zod10.z.object({
1274
1397
  allowed_envs: import_zod10.z.array(import_zod10.z.string()).optional(),
1275
1398
  pre_launch_script: import_zod10.z.string().optional(),
1276
1399
  docker_compose_file: import_zod10.z.string().optional(),
1277
- name: import_zod10.z.string().optional(),
1400
+ name: import_zod10.z.string().optional().default(""),
1401
+ // optional with default empty string
1278
1402
  kms_enabled: import_zod10.z.boolean().optional(),
1279
1403
  public_logs: import_zod10.z.boolean().optional(),
1280
1404
  public_sysinfo: import_zod10.z.boolean().optional(),
@@ -1284,8 +1408,11 @@ var ProvisionCvmRequestSchema = import_zod10.z.object({
1284
1408
  // deprecated, for compatibility
1285
1409
  }),
1286
1410
  listed: import_zod10.z.boolean().optional(),
1287
- instance_type: import_zod10.z.string().nullable().optional(),
1288
1411
  kms_id: import_zod10.z.string().optional(),
1412
+ kms: import_zod10.z.enum(["PHALA", "ETHEREUM", "BASE"]).optional(),
1413
+ // KMS type selection (defaults to PHALA)
1414
+ kms_contract: import_zod10.z.string().optional(),
1415
+ // KMS contract address for on-chain KMS
1289
1416
  env_keys: import_zod10.z.array(import_zod10.z.string()).optional()
1290
1417
  }).passthrough();
1291
1418
  function handleGatewayCompatibility(appCompose) {
@@ -1310,7 +1437,8 @@ function handleGatewayCompatibility(appCompose) {
1310
1437
  };
1311
1438
  }
1312
1439
  var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(ProvisionCvmSchema, async (client, appCompose) => {
1313
- const body = handleGatewayCompatibility(appCompose);
1440
+ const validated = ProvisionCvmRequestSchema.parse(appCompose);
1441
+ const body = handleGatewayCompatibility(validated);
1314
1442
  let requestBody = { ...body };
1315
1443
  if (typeof body.node_id === "number") {
1316
1444
  requestBody = { ...body, teepod_id: body.node_id };
@@ -1354,7 +1482,7 @@ var CommitCvmProvisionSchema = import_zod11.z.object({
1354
1482
  var CommitCvmProvisionRequestSchema = import_zod11.z.object({
1355
1483
  encrypted_env: import_zod11.z.string().optional().nullable(),
1356
1484
  app_id: import_zod11.z.string(),
1357
- compose_hash: import_zod11.z.string().optional(),
1485
+ compose_hash: import_zod11.z.string(),
1358
1486
  kms_id: import_zod11.z.string().optional(),
1359
1487
  contract_address: import_zod11.z.string().optional(),
1360
1488
  deployer_address: import_zod11.z.string().optional(),
@@ -1567,6 +1695,26 @@ var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } =
1567
1695
  return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
1568
1696
  });
1569
1697
 
1698
+ // src/actions/kms/next_app_ids.ts
1699
+ var import_zod18 = require("zod");
1700
+ var NextAppIdsRequestSchema = import_zod18.z.object({
1701
+ counts: import_zod18.z.number().int().min(1).max(20).optional().default(1)
1702
+ }).strict();
1703
+ var NextAppIdsSchema = import_zod18.z.object({
1704
+ app_ids: import_zod18.z.array(
1705
+ import_zod18.z.object({
1706
+ app_id: import_zod18.z.string(),
1707
+ nonce: import_zod18.z.number().int().min(0)
1708
+ })
1709
+ )
1710
+ }).strict();
1711
+ var { action: nextAppIds, safeAction: safeNextAppIds } = defineAction(NextAppIdsSchema, async (client, payload) => {
1712
+ const validatedRequest = NextAppIdsRequestSchema.parse(payload ?? {});
1713
+ const params = new URLSearchParams();
1714
+ params.append("counts", validatedRequest.counts.toString());
1715
+ return await client.get(`/kms/phala/next_app_id?${params.toString()}`);
1716
+ });
1717
+
1570
1718
  // src/actions/cvms/start_cvm.ts
1571
1719
  var StartCvmRequestSchema = CvmIdSchema;
1572
1720
  var { action: startCvm, safeAction: safeStartCvm } = defineAction(VMSchema, async (client, request) => {
@@ -1592,10 +1740,10 @@ var { action: shutdownCvm, safeAction: safeShutdownCvm } = defineAction(VMSchema
1592
1740
  });
1593
1741
 
1594
1742
  // src/actions/cvms/restart_cvm.ts
1595
- var import_zod18 = require("zod");
1743
+ var import_zod19 = require("zod");
1596
1744
  var RestartCvmRequestSchema = refineCvmId(
1597
1745
  CvmIdObjectSchema.extend({
1598
- force: import_zod18.z.boolean().optional()
1746
+ force: import_zod19.z.boolean().optional()
1599
1747
  })
1600
1748
  );
1601
1749
  var { action: restartCvm, safeAction: safeRestartCvm } = defineAction(VMSchema, async (client, request) => {
@@ -1606,10 +1754,10 @@ var { action: restartCvm, safeAction: safeRestartCvm } = defineAction(VMSchema,
1606
1754
  });
1607
1755
 
1608
1756
  // src/actions/cvms/delete_cvm.ts
1609
- var import_zod19 = require("zod");
1757
+ var import_zod20 = require("zod");
1610
1758
  var DeleteCvmRequestSchema = CvmIdSchema;
1611
1759
  var { action: deleteCvm, safeAction: safeDeleteCvm } = defineAction(
1612
- import_zod19.z.void(),
1760
+ import_zod20.z.void(),
1613
1761
  async (client, request) => {
1614
1762
  const { cvmId } = DeleteCvmRequestSchema.parse(request);
1615
1763
  await client.delete(`/cvms/${cvmId}`);
@@ -1618,41 +1766,41 @@ var { action: deleteCvm, safeAction: safeDeleteCvm } = defineAction(
1618
1766
  );
1619
1767
 
1620
1768
  // src/actions/cvms/get_cvm_stats.ts
1621
- var import_zod20 = require("zod");
1622
- var DiskInfoSchema = import_zod20.z.object({
1623
- name: import_zod20.z.string(),
1624
- mount_point: import_zod20.z.string(),
1625
- total_size: import_zod20.z.number(),
1626
- free_size: import_zod20.z.number()
1769
+ var import_zod21 = require("zod");
1770
+ var DiskInfoSchema = import_zod21.z.object({
1771
+ name: import_zod21.z.string(),
1772
+ mount_point: import_zod21.z.string(),
1773
+ total_size: import_zod21.z.number(),
1774
+ free_size: import_zod21.z.number()
1627
1775
  });
1628
- var SystemInfoSchema = import_zod20.z.object({
1629
- os_name: import_zod20.z.string(),
1630
- os_version: import_zod20.z.string(),
1631
- kernel_version: import_zod20.z.string(),
1632
- cpu_model: import_zod20.z.string(),
1633
- num_cpus: import_zod20.z.number(),
1634
- total_memory: import_zod20.z.number(),
1635
- available_memory: import_zod20.z.number(),
1636
- used_memory: import_zod20.z.number(),
1637
- free_memory: import_zod20.z.number(),
1638
- total_swap: import_zod20.z.number(),
1639
- used_swap: import_zod20.z.number(),
1640
- free_swap: import_zod20.z.number(),
1641
- uptime: import_zod20.z.number(),
1642
- loadavg_one: import_zod20.z.number(),
1643
- loadavg_five: import_zod20.z.number(),
1644
- loadavg_fifteen: import_zod20.z.number(),
1645
- disks: import_zod20.z.array(DiskInfoSchema)
1776
+ var SystemInfoSchema = import_zod21.z.object({
1777
+ os_name: import_zod21.z.string(),
1778
+ os_version: import_zod21.z.string(),
1779
+ kernel_version: import_zod21.z.string(),
1780
+ cpu_model: import_zod21.z.string(),
1781
+ num_cpus: import_zod21.z.number(),
1782
+ total_memory: import_zod21.z.number(),
1783
+ available_memory: import_zod21.z.number(),
1784
+ used_memory: import_zod21.z.number(),
1785
+ free_memory: import_zod21.z.number(),
1786
+ total_swap: import_zod21.z.number(),
1787
+ used_swap: import_zod21.z.number(),
1788
+ free_swap: import_zod21.z.number(),
1789
+ uptime: import_zod21.z.number(),
1790
+ loadavg_one: import_zod21.z.number(),
1791
+ loadavg_five: import_zod21.z.number(),
1792
+ loadavg_fifteen: import_zod21.z.number(),
1793
+ disks: import_zod21.z.array(DiskInfoSchema)
1646
1794
  });
1647
- var CvmSystemInfoSchema = import_zod20.z.object({
1648
- is_online: import_zod20.z.boolean(),
1649
- is_public: import_zod20.z.boolean().default(false),
1650
- error: import_zod20.z.string().nullable(),
1795
+ var CvmSystemInfoSchema = import_zod21.z.object({
1796
+ is_online: import_zod21.z.boolean(),
1797
+ is_public: import_zod21.z.boolean().default(false),
1798
+ error: import_zod21.z.string().nullable(),
1651
1799
  sysinfo: SystemInfoSchema.nullable(),
1652
- status: import_zod20.z.string().nullable(),
1653
- in_progress: import_zod20.z.boolean().default(false),
1654
- boot_progress: import_zod20.z.string().nullable(),
1655
- boot_error: import_zod20.z.string().nullable()
1800
+ status: import_zod21.z.string().nullable(),
1801
+ in_progress: import_zod21.z.boolean().default(false),
1802
+ boot_progress: import_zod21.z.string().nullable(),
1803
+ boot_error: import_zod21.z.string().nullable()
1656
1804
  });
1657
1805
  var GetCvmStatsRequestSchema = CvmIdSchema;
1658
1806
  var { action: getCvmStats, safeAction: safeGetCvmStats } = defineAction(CvmSystemInfoSchema, async (client, request) => {
@@ -1661,18 +1809,18 @@ var { action: getCvmStats, safeAction: safeGetCvmStats } = defineAction(CvmSyste
1661
1809
  });
1662
1810
 
1663
1811
  // src/actions/cvms/get_cvm_network.ts
1664
- var import_zod21 = require("zod");
1665
- var CvmNetworkUrlsSchema2 = import_zod21.z.object({
1666
- app: import_zod21.z.string(),
1667
- instance: import_zod21.z.string()
1812
+ var import_zod22 = require("zod");
1813
+ var CvmNetworkUrlsSchema2 = import_zod22.z.object({
1814
+ app: import_zod22.z.string(),
1815
+ instance: import_zod22.z.string()
1668
1816
  });
1669
- var CvmNetworkSchema = import_zod21.z.object({
1670
- is_online: import_zod21.z.boolean(),
1671
- is_public: import_zod21.z.boolean().default(true),
1672
- error: import_zod21.z.string().nullable(),
1673
- internal_ip: import_zod21.z.string().nullable(),
1674
- latest_handshake: import_zod21.z.string().nullable(),
1675
- public_urls: import_zod21.z.array(CvmNetworkUrlsSchema2).nullable()
1817
+ var CvmNetworkSchema = import_zod22.z.object({
1818
+ is_online: import_zod22.z.boolean(),
1819
+ is_public: import_zod22.z.boolean().default(true),
1820
+ error: import_zod22.z.string().nullable(),
1821
+ internal_ip: import_zod22.z.string().nullable(),
1822
+ latest_handshake: import_zod22.z.string().nullable(),
1823
+ public_urls: import_zod22.z.array(CvmNetworkUrlsSchema2).nullable()
1676
1824
  });
1677
1825
  var GetCvmNetworkRequestSchema = CvmIdSchema;
1678
1826
  var { action: getCvmNetwork, safeAction: safeGetCvmNetwork } = defineAction(CvmNetworkSchema, async (client, request) => {
@@ -1681,36 +1829,36 @@ var { action: getCvmNetwork, safeAction: safeGetCvmNetwork } = defineAction(CvmN
1681
1829
  });
1682
1830
 
1683
1831
  // src/actions/cvms/get_cvm_docker_compose.ts
1684
- var import_zod22 = require("zod");
1832
+ var import_zod23 = require("zod");
1685
1833
  var GetCvmDockerComposeRequestSchema = CvmIdSchema;
1686
- var { action: getCvmDockerCompose, safeAction: safeGetCvmDockerCompose } = defineAction(import_zod22.z.string(), async (client, request) => {
1834
+ var { action: getCvmDockerCompose, safeAction: safeGetCvmDockerCompose } = defineAction(import_zod23.z.string(), async (client, request) => {
1687
1835
  const { cvmId } = GetCvmDockerComposeRequestSchema.parse(request);
1688
1836
  return await client.get(`/cvms/${cvmId}/docker-compose.yml`);
1689
1837
  });
1690
1838
 
1691
1839
  // src/actions/cvms/get_cvm_containers_stats.ts
1692
- var import_zod23 = require("zod");
1693
- var ContainerInfoSchema = import_zod23.z.object({
1694
- id: import_zod23.z.string(),
1695
- names: import_zod23.z.array(import_zod23.z.string()),
1696
- image: import_zod23.z.string(),
1697
- image_id: import_zod23.z.string(),
1698
- command: import_zod23.z.string().nullable().optional(),
1699
- created: import_zod23.z.number(),
1700
- state: import_zod23.z.string(),
1701
- status: import_zod23.z.string(),
1702
- log_endpoint: import_zod23.z.string().nullable()
1840
+ var import_zod24 = require("zod");
1841
+ var ContainerInfoSchema = import_zod24.z.object({
1842
+ id: import_zod24.z.string(),
1843
+ names: import_zod24.z.array(import_zod24.z.string()),
1844
+ image: import_zod24.z.string(),
1845
+ image_id: import_zod24.z.string(),
1846
+ command: import_zod24.z.string().nullable().optional(),
1847
+ created: import_zod24.z.number(),
1848
+ state: import_zod24.z.string(),
1849
+ status: import_zod24.z.string(),
1850
+ log_endpoint: import_zod24.z.string().nullable()
1703
1851
  });
1704
- var CvmContainersStatsSchema = import_zod23.z.object({
1705
- is_online: import_zod23.z.boolean(),
1706
- is_public: import_zod23.z.boolean().default(true),
1707
- error: import_zod23.z.string().nullable(),
1708
- docker_compose_file: import_zod23.z.string().nullable(),
1709
- manifest_version: import_zod23.z.number().nullable(),
1710
- version: import_zod23.z.string().nullable(),
1711
- runner: import_zod23.z.string().nullable(),
1712
- features: import_zod23.z.array(import_zod23.z.string()).nullable(),
1713
- containers: import_zod23.z.array(ContainerInfoSchema).nullable()
1852
+ var CvmContainersStatsSchema = import_zod24.z.object({
1853
+ is_online: import_zod24.z.boolean(),
1854
+ is_public: import_zod24.z.boolean().default(true),
1855
+ error: import_zod24.z.string().nullable(),
1856
+ docker_compose_file: import_zod24.z.string().nullable(),
1857
+ manifest_version: import_zod24.z.number().nullable(),
1858
+ version: import_zod24.z.string().nullable(),
1859
+ runner: import_zod24.z.string().nullable(),
1860
+ features: import_zod24.z.array(import_zod24.z.string()).nullable(),
1861
+ containers: import_zod24.z.array(ContainerInfoSchema).nullable()
1714
1862
  });
1715
1863
  var GetCvmContainersStatsRequestSchema = CvmIdSchema;
1716
1864
  var { action: getCvmContainersStats, safeAction: safeGetCvmContainersStats } = defineAction(CvmContainersStatsSchema, async (client, request) => {
@@ -1719,62 +1867,62 @@ var { action: getCvmContainersStats, safeAction: safeGetCvmContainersStats } = d
1719
1867
  });
1720
1868
 
1721
1869
  // src/actions/cvms/get_cvm_attestation.ts
1722
- var import_zod24 = require("zod");
1723
- var CertificateSubjectSchema = import_zod24.z.object({
1724
- common_name: import_zod24.z.string().nullable(),
1725
- organization: import_zod24.z.string().nullable(),
1726
- country: import_zod24.z.string().nullable(),
1727
- state: import_zod24.z.string().nullable(),
1728
- locality: import_zod24.z.string().nullable()
1870
+ var import_zod25 = require("zod");
1871
+ var CertificateSubjectSchema = import_zod25.z.object({
1872
+ common_name: import_zod25.z.string().nullable(),
1873
+ organization: import_zod25.z.string().nullable(),
1874
+ country: import_zod25.z.string().nullable(),
1875
+ state: import_zod25.z.string().nullable(),
1876
+ locality: import_zod25.z.string().nullable()
1729
1877
  });
1730
- var CertificateIssuerSchema = import_zod24.z.object({
1731
- common_name: import_zod24.z.string().nullable(),
1732
- organization: import_zod24.z.string().nullable(),
1733
- country: import_zod24.z.string().nullable()
1878
+ var CertificateIssuerSchema = import_zod25.z.object({
1879
+ common_name: import_zod25.z.string().nullable(),
1880
+ organization: import_zod25.z.string().nullable(),
1881
+ country: import_zod25.z.string().nullable()
1734
1882
  });
1735
- var CertificateSchema = import_zod24.z.object({
1883
+ var CertificateSchema = import_zod25.z.object({
1736
1884
  subject: CertificateSubjectSchema,
1737
1885
  issuer: CertificateIssuerSchema,
1738
- serial_number: import_zod24.z.string(),
1739
- not_before: import_zod24.z.string(),
1886
+ serial_number: import_zod25.z.string(),
1887
+ not_before: import_zod25.z.string(),
1740
1888
  // datetime serialized as ISO string
1741
- not_after: import_zod24.z.string(),
1889
+ not_after: import_zod25.z.string(),
1742
1890
  // datetime serialized as ISO string
1743
- version: import_zod24.z.string(),
1744
- fingerprint: import_zod24.z.string(),
1745
- signature_algorithm: import_zod24.z.string(),
1746
- sans: import_zod24.z.array(import_zod24.z.string()).nullable(),
1747
- is_ca: import_zod24.z.boolean(),
1748
- position_in_chain: import_zod24.z.number().nullable(),
1749
- quote: import_zod24.z.string().nullable(),
1750
- app_id: import_zod24.z.string().nullable().optional(),
1751
- cert_usage: import_zod24.z.string().nullable().optional()
1891
+ version: import_zod25.z.string(),
1892
+ fingerprint: import_zod25.z.string(),
1893
+ signature_algorithm: import_zod25.z.string(),
1894
+ sans: import_zod25.z.array(import_zod25.z.string()).nullable(),
1895
+ is_ca: import_zod25.z.boolean(),
1896
+ position_in_chain: import_zod25.z.number().nullable(),
1897
+ quote: import_zod25.z.string().nullable(),
1898
+ app_id: import_zod25.z.string().nullable().optional(),
1899
+ cert_usage: import_zod25.z.string().nullable().optional()
1752
1900
  });
1753
- var EventLogSchema = import_zod24.z.object({
1754
- imr: import_zod24.z.number(),
1755
- event_type: import_zod24.z.number(),
1756
- digest: import_zod24.z.string(),
1757
- event: import_zod24.z.string(),
1758
- event_payload: import_zod24.z.string()
1901
+ var EventLogSchema = import_zod25.z.object({
1902
+ imr: import_zod25.z.number(),
1903
+ event_type: import_zod25.z.number(),
1904
+ digest: import_zod25.z.string(),
1905
+ event: import_zod25.z.string(),
1906
+ event_payload: import_zod25.z.string()
1759
1907
  });
1760
- var TcbInfoSchema = import_zod24.z.object({
1761
- mrtd: import_zod24.z.string(),
1762
- rootfs_hash: import_zod24.z.string().nullable().optional(),
1763
- rtmr0: import_zod24.z.string(),
1764
- rtmr1: import_zod24.z.string(),
1765
- rtmr2: import_zod24.z.string(),
1766
- rtmr3: import_zod24.z.string(),
1767
- event_log: import_zod24.z.array(EventLogSchema),
1768
- app_compose: import_zod24.z.string()
1908
+ var TcbInfoSchema = import_zod25.z.object({
1909
+ mrtd: import_zod25.z.string(),
1910
+ rootfs_hash: import_zod25.z.string().nullable().optional(),
1911
+ rtmr0: import_zod25.z.string(),
1912
+ rtmr1: import_zod25.z.string(),
1913
+ rtmr2: import_zod25.z.string(),
1914
+ rtmr3: import_zod25.z.string(),
1915
+ event_log: import_zod25.z.array(EventLogSchema),
1916
+ app_compose: import_zod25.z.string()
1769
1917
  });
1770
- var CvmAttestationSchema = import_zod24.z.object({
1771
- name: import_zod24.z.string().nullable(),
1772
- is_online: import_zod24.z.boolean(),
1773
- is_public: import_zod24.z.boolean().default(true),
1774
- error: import_zod24.z.string().nullable(),
1775
- app_certificates: import_zod24.z.array(CertificateSchema).nullable(),
1918
+ var CvmAttestationSchema = import_zod25.z.object({
1919
+ name: import_zod25.z.string().nullable(),
1920
+ is_online: import_zod25.z.boolean(),
1921
+ is_public: import_zod25.z.boolean().default(true),
1922
+ error: import_zod25.z.string().nullable(),
1923
+ app_certificates: import_zod25.z.array(CertificateSchema).nullable(),
1776
1924
  tcb_info: TcbInfoSchema.nullable(),
1777
- compose_file: import_zod24.z.string().nullable()
1925
+ compose_file: import_zod25.z.string().nullable()
1778
1926
  });
1779
1927
  var GetCvmAttestationRequestSchema = CvmIdSchema;
1780
1928
  var { action: getCvmAttestation, safeAction: safeGetCvmAttestation } = defineAction(CvmAttestationSchema, async (client, request) => {
@@ -1783,17 +1931,17 @@ var { action: getCvmAttestation, safeAction: safeGetCvmAttestation } = defineAct
1783
1931
  });
1784
1932
 
1785
1933
  // src/actions/cvms/update_cvm_resources.ts
1786
- var import_zod25 = require("zod");
1934
+ var import_zod26 = require("zod");
1787
1935
  var UpdateCvmResourcesRequestSchema = refineCvmId(
1788
1936
  CvmIdObjectSchema.extend({
1789
- vcpu: import_zod25.z.number().optional(),
1790
- memory: import_zod25.z.number().optional(),
1791
- disk_size: import_zod25.z.number().optional(),
1792
- instance_type: import_zod25.z.string().optional(),
1793
- allow_restart: import_zod25.z.boolean().optional()
1937
+ vcpu: import_zod26.z.number().optional(),
1938
+ memory: import_zod26.z.number().optional(),
1939
+ disk_size: import_zod26.z.number().optional(),
1940
+ instance_type: import_zod26.z.string().optional(),
1941
+ allow_restart: import_zod26.z.boolean().optional()
1794
1942
  })
1795
1943
  );
1796
- var { action: updateCvmResources, safeAction: safeUpdateCvmResources } = defineAction(import_zod25.z.void(), async (client, request) => {
1944
+ var { action: updateCvmResources, safeAction: safeUpdateCvmResources } = defineAction(import_zod26.z.void(), async (client, request) => {
1797
1945
  const parsed = UpdateCvmResourcesRequestSchema.parse(request);
1798
1946
  const { cvmId } = CvmIdSchema.parse(parsed);
1799
1947
  const { ...body } = parsed;
@@ -1802,11 +1950,11 @@ var { action: updateCvmResources, safeAction: safeUpdateCvmResources } = defineA
1802
1950
  });
1803
1951
 
1804
1952
  // src/actions/cvms/update_cvm_visibility.ts
1805
- var import_zod26 = require("zod");
1953
+ var import_zod27 = require("zod");
1806
1954
  var UpdateCvmVisibilityRequestSchema = refineCvmId(
1807
1955
  CvmIdObjectSchema.extend({
1808
- public_sysinfo: import_zod26.z.boolean(),
1809
- public_logs: import_zod26.z.boolean()
1956
+ public_sysinfo: import_zod27.z.boolean(),
1957
+ public_logs: import_zod27.z.boolean()
1810
1958
  })
1811
1959
  );
1812
1960
  var { action: updateCvmVisibility, safeAction: safeUpdateCvmVisibility } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
@@ -1816,6 +1964,59 @@ var { action: updateCvmVisibility, safeAction: safeUpdateCvmVisibility } = defin
1816
1964
  return await client.patch(`/cvms/${cvmId}/visibility`, { public_sysinfo, public_logs });
1817
1965
  });
1818
1966
 
1967
+ // src/actions/cvms/get_available_os_images.ts
1968
+ var import_zod28 = require("zod");
1969
+ var OSImageVariantSchema = import_zod28.z.object({
1970
+ name: import_zod28.z.string(),
1971
+ os_image_hash: import_zod28.z.string().nullable(),
1972
+ is_current: import_zod28.z.boolean()
1973
+ });
1974
+ var AvailableOSImageSchema2 = import_zod28.z.object({
1975
+ version: import_zod28.z.union([
1976
+ import_zod28.z.tuple([import_zod28.z.number(), import_zod28.z.number(), import_zod28.z.number(), import_zod28.z.number()]),
1977
+ import_zod28.z.tuple([import_zod28.z.number(), import_zod28.z.number(), import_zod28.z.number()])
1978
+ ]),
1979
+ prod: OSImageVariantSchema.nullable(),
1980
+ dev: OSImageVariantSchema.nullable()
1981
+ });
1982
+ var GetAvailableOSImagesResponseSchema = import_zod28.z.array(AvailableOSImageSchema2);
1983
+ var GetAvailableOSImagesRequestSchema = CvmIdSchema;
1984
+ var { action: getAvailableOsImages, safeAction: safeGetAvailableOsImages } = defineAction(GetAvailableOSImagesResponseSchema, async (client, request) => {
1985
+ const { cvmId } = GetAvailableOSImagesRequestSchema.parse(request);
1986
+ return await client.get(`/cvms/${cvmId}/available-os-images`);
1987
+ });
1988
+
1989
+ // src/actions/cvms/update_os_image.ts
1990
+ var import_zod29 = require("zod");
1991
+ var UpdateOsImageRequestSchema = refineCvmId(
1992
+ CvmIdObjectSchema.extend({
1993
+ os_image_name: import_zod29.z.string().min(1, "OS image name is required")
1994
+ })
1995
+ );
1996
+ var { action: updateOsImage, safeAction: safeUpdateOsImage } = defineAction(import_zod29.z.void(), async (client, request) => {
1997
+ const parsed = UpdateOsImageRequestSchema.parse(request);
1998
+ const { cvmId } = CvmIdSchema.parse(parsed);
1999
+ const { os_image_name } = parsed;
2000
+ await client.patch(`/cvms/${cvmId}/os-image`, { os_image_name });
2001
+ return void 0;
2002
+ });
2003
+
2004
+ // src/actions/cvms/get_cvm_state.ts
2005
+ var import_zod30 = require("zod");
2006
+ var CvmStateSchema = import_zod30.z.object({
2007
+ status: import_zod30.z.string(),
2008
+ derived_status: import_zod30.z.string().optional(),
2009
+ vm_uuid: import_zod30.z.string().optional(),
2010
+ instance_id: import_zod30.z.string().optional(),
2011
+ uptime: import_zod30.z.string().optional()
2012
+ // Add other state fields as needed
2013
+ });
2014
+ var GetCvmStateRequestSchema = CvmIdSchema;
2015
+ var { action: getCvmState, safeAction: safeGetCvmState } = defineAction(CvmStateSchema, async (client, request) => {
2016
+ const { cvmId } = GetCvmStateRequestSchema.parse(request);
2017
+ return await client.get(`/cvms/${cvmId}/state`);
2018
+ });
2019
+
1819
2020
  // src/create-client.ts
1820
2021
  function createClient2(config = {}) {
1821
2022
  const client = createClient(config);
@@ -1824,8 +2025,10 @@ function createClient2(config = {}) {
1824
2025
  safeGetCurrentUser,
1825
2026
  getAvailableNodes,
1826
2027
  safeGetAvailableNodes,
1827
- listInstanceTypes,
1828
- safeListInstanceTypes,
2028
+ listAllInstanceTypeFamilies,
2029
+ safeListAllInstanceTypeFamilies,
2030
+ listFamilyInstanceTypes,
2031
+ safeListFamilyInstanceTypes,
1829
2032
  listWorkspaces,
1830
2033
  safeListWorkspaces,
1831
2034
  getWorkspace,
@@ -1868,18 +2071,26 @@ function createClient2(config = {}) {
1868
2071
  safeUpdateCvmResources,
1869
2072
  updateCvmVisibility,
1870
2073
  safeUpdateCvmVisibility,
2074
+ getAvailableOsImages,
2075
+ safeGetAvailableOsImages,
2076
+ updateOsImage,
2077
+ safeUpdateOsImage,
1871
2078
  getKmsInfo,
1872
2079
  safeGetKmsInfo,
1873
2080
  getKmsList,
1874
2081
  safeGetKmsList,
1875
2082
  getAppEnvEncryptPubKey,
1876
- safeGetAppEnvEncryptPubKey
2083
+ safeGetAppEnvEncryptPubKey,
2084
+ nextAppIds,
2085
+ safeNextAppIds,
2086
+ getCvmState,
2087
+ safeGetCvmState
1877
2088
  };
1878
2089
  return client.extend(allActions);
1879
2090
  }
1880
2091
 
1881
2092
  // src/actions/blockchains/deploy_app_auth.ts
1882
- var import_zod27 = require("zod");
2093
+ var import_zod31 = require("zod");
1883
2094
  var import_viem3 = require("viem");
1884
2095
  var import_accounts2 = require("viem/accounts");
1885
2096
 
@@ -2529,25 +2740,25 @@ var kmsAuthAbi = [
2529
2740
  anonymous: false
2530
2741
  }
2531
2742
  ];
2532
- var DeployAppAuthRequestBaseSchema = import_zod27.z.object({
2743
+ var DeployAppAuthRequestBaseSchema = import_zod31.z.object({
2533
2744
  // Chain configuration (conditionally required)
2534
- chain: import_zod27.z.unknown().optional(),
2535
- rpcUrl: import_zod27.z.string().optional(),
2745
+ chain: import_zod31.z.unknown().optional(),
2746
+ rpcUrl: import_zod31.z.string().optional(),
2536
2747
  // Contract configuration (required)
2537
- kmsContractAddress: import_zod27.z.string(),
2748
+ kmsContractAddress: import_zod31.z.string(),
2538
2749
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
2539
- privateKey: import_zod27.z.string().optional(),
2540
- walletClient: import_zod27.z.unknown().optional(),
2750
+ privateKey: import_zod31.z.string().optional(),
2751
+ walletClient: import_zod31.z.unknown().optional(),
2541
2752
  // Public client (optional, will create default if not provided)
2542
- publicClient: import_zod27.z.unknown().optional(),
2753
+ publicClient: import_zod31.z.unknown().optional(),
2543
2754
  // App configuration (optional)
2544
- allowAnyDevice: import_zod27.z.boolean().optional().default(false),
2545
- deviceId: import_zod27.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2546
- composeHash: import_zod27.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2547
- disableUpgrades: import_zod27.z.boolean().optional().default(false),
2755
+ allowAnyDevice: import_zod31.z.boolean().optional().default(false),
2756
+ deviceId: import_zod31.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2757
+ composeHash: import_zod31.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2758
+ disableUpgrades: import_zod31.z.boolean().optional().default(false),
2548
2759
  // Validation configuration (optional)
2549
- skipPrerequisiteChecks: import_zod27.z.boolean().optional().default(false),
2550
- minBalance: import_zod27.z.string().optional()
2760
+ skipPrerequisiteChecks: import_zod31.z.boolean().optional().default(false),
2761
+ minBalance: import_zod31.z.string().optional()
2551
2762
  // ETH amount as string, e.g., "0.01"
2552
2763
  }).passthrough();
2553
2764
  var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
@@ -2575,13 +2786,13 @@ var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
2575
2786
  path: ["chain"]
2576
2787
  }
2577
2788
  );
2578
- var DeployAppAuthSchema = import_zod27.z.object({
2579
- appId: import_zod27.z.string(),
2580
- appAuthAddress: import_zod27.z.string(),
2581
- deployer: import_zod27.z.string(),
2582
- transactionHash: import_zod27.z.string(),
2583
- blockNumber: import_zod27.z.bigint().optional(),
2584
- gasUsed: import_zod27.z.bigint().optional()
2789
+ var DeployAppAuthSchema = import_zod31.z.object({
2790
+ appId: import_zod31.z.string(),
2791
+ appAuthAddress: import_zod31.z.string(),
2792
+ deployer: import_zod31.z.string(),
2793
+ transactionHash: import_zod31.z.string(),
2794
+ blockNumber: import_zod31.z.bigint().optional(),
2795
+ gasUsed: import_zod31.z.bigint().optional()
2585
2796
  }).passthrough();
2586
2797
  function parseDeploymentResult(receipt, deployer, kmsContractAddress) {
2587
2798
  try {
@@ -2827,7 +3038,7 @@ async function safeDeployAppAuth(request, parameters) {
2827
3038
  }
2828
3039
 
2829
3040
  // src/actions/blockchains/add_compose_hash.ts
2830
- var import_zod28 = require("zod");
3041
+ var import_zod32 = require("zod");
2831
3042
  var import_viem4 = require("viem");
2832
3043
  var import_accounts3 = require("viem/accounts");
2833
3044
  var appAuthAbi = [
@@ -2845,29 +3056,29 @@ var appAuthAbi = [
2845
3056
  anonymous: false
2846
3057
  }
2847
3058
  ];
2848
- var AddComposeHashRequestSchema = import_zod28.z.object({
3059
+ var AddComposeHashRequestSchema = import_zod32.z.object({
2849
3060
  // Chain configuration (conditionally required)
2850
- chain: import_zod28.z.unknown().optional(),
2851
- rpcUrl: import_zod28.z.string().optional(),
2852
- appId: import_zod28.z.string(),
2853
- composeHash: import_zod28.z.string(),
3061
+ chain: import_zod32.z.unknown().optional(),
3062
+ rpcUrl: import_zod32.z.string().optional(),
3063
+ appId: import_zod32.z.string(),
3064
+ composeHash: import_zod32.z.string(),
2854
3065
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
2855
- privateKey: import_zod28.z.string().optional(),
2856
- walletClient: import_zod28.z.unknown().optional(),
3066
+ privateKey: import_zod32.z.string().optional(),
3067
+ walletClient: import_zod32.z.unknown().optional(),
2857
3068
  // Public client (optional, will create default if not provided)
2858
- publicClient: import_zod28.z.unknown().optional(),
3069
+ publicClient: import_zod32.z.unknown().optional(),
2859
3070
  // Validation configuration (optional)
2860
- skipPrerequisiteChecks: import_zod28.z.boolean().optional().default(false),
2861
- minBalance: import_zod28.z.string().optional(),
3071
+ skipPrerequisiteChecks: import_zod32.z.boolean().optional().default(false),
3072
+ minBalance: import_zod32.z.string().optional(),
2862
3073
  // ETH amount as string, e.g., "0.01"
2863
3074
  // Transaction control options
2864
- timeout: import_zod28.z.number().optional().default(12e4),
2865
- retryOptions: import_zod28.z.unknown().optional(),
2866
- signal: import_zod28.z.unknown().optional(),
3075
+ timeout: import_zod32.z.number().optional().default(12e4),
3076
+ retryOptions: import_zod32.z.unknown().optional(),
3077
+ signal: import_zod32.z.unknown().optional(),
2867
3078
  // Progress callbacks
2868
- onTransactionStateChange: import_zod28.z.function().optional(),
2869
- onTransactionSubmitted: import_zod28.z.function().optional(),
2870
- onTransactionConfirmed: import_zod28.z.function().optional()
3079
+ onTransactionStateChange: import_zod32.z.function().optional(),
3080
+ onTransactionSubmitted: import_zod32.z.function().optional(),
3081
+ onTransactionConfirmed: import_zod32.z.function().optional()
2871
3082
  }).passthrough().refine(
2872
3083
  (data) => {
2873
3084
  const hasPrivateKey = !!data.privateKey;
@@ -2891,12 +3102,12 @@ var AddComposeHashRequestSchema = import_zod28.z.object({
2891
3102
  path: ["chain"]
2892
3103
  }
2893
3104
  );
2894
- var AddComposeHashSchema = import_zod28.z.object({
2895
- composeHash: import_zod28.z.string(),
2896
- appId: import_zod28.z.string(),
2897
- transactionHash: import_zod28.z.string(),
2898
- blockNumber: import_zod28.z.bigint().optional(),
2899
- gasUsed: import_zod28.z.bigint().optional()
3105
+ var AddComposeHashSchema = import_zod32.z.object({
3106
+ composeHash: import_zod32.z.string(),
3107
+ appId: import_zod32.z.string(),
3108
+ transactionHash: import_zod32.z.string(),
3109
+ blockNumber: import_zod32.z.bigint().optional(),
3110
+ gasUsed: import_zod32.z.bigint().optional()
2900
3111
  }).passthrough();
2901
3112
  function parseComposeHashResult(receipt, composeHash, appAuthAddress, appId) {
2902
3113
  console.log(receipt.logs);
@@ -3087,6 +3298,200 @@ async function safeAddComposeHash(request, parameters) {
3087
3298
  }
3088
3299
  }
3089
3300
 
3301
+ // src/actions/cvms/watch_cvm_state.ts
3302
+ var import_zod33 = require("zod");
3303
+ var WatchCvmStateParamsSchema = import_zod33.z.object({
3304
+ target: import_zod33.z.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),
3305
+ interval: import_zod33.z.number().min(5).max(30).default(5).describe("Polling interval in seconds"),
3306
+ timeout: import_zod33.z.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),
3307
+ maxRetries: import_zod33.z.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),
3308
+ retryDelay: import_zod33.z.number().min(0).default(5e3).describe("Delay between retries in milliseconds")
3309
+ });
3310
+ var WatchCvmStateRequestSchema = WatchCvmStateParamsSchema;
3311
+ var WatchAbortedError = class extends Error {
3312
+ constructor() {
3313
+ super("Watch operation was aborted");
3314
+ this.name = "WatchAbortedError";
3315
+ }
3316
+ };
3317
+ var MaxRetriesExceededError = class extends Error {
3318
+ constructor(attempts) {
3319
+ super(`Maximum retry attempts (${attempts}) exceeded`);
3320
+ this.attempts = attempts;
3321
+ this.name = "MaxRetriesExceededError";
3322
+ }
3323
+ };
3324
+ function parseSSEEvent(eventType, data) {
3325
+ try {
3326
+ const parsed = JSON.parse(data);
3327
+ return { type: eventType, data: parsed };
3328
+ } catch {
3329
+ return { type: "error", data: { error: "Failed to parse SSE event" } };
3330
+ }
3331
+ }
3332
+ async function watchCvmState(client, request, options = {}) {
3333
+ const { cvmId } = CvmIdSchema.parse(request);
3334
+ const { target, interval, timeout, maxRetries, retryDelay } = WatchCvmStateParamsSchema.parse(request);
3335
+ const { signal, onEvent } = options;
3336
+ let attempt = 0;
3337
+ while (attempt < maxRetries) {
3338
+ if (signal?.aborted) {
3339
+ throw new WatchAbortedError();
3340
+ }
3341
+ attempt++;
3342
+ try {
3343
+ const result = await watchSingleAttempt(
3344
+ client,
3345
+ cvmId,
3346
+ target,
3347
+ interval,
3348
+ timeout,
3349
+ signal,
3350
+ onEvent
3351
+ );
3352
+ if (result) {
3353
+ return result;
3354
+ }
3355
+ if (attempt >= maxRetries) {
3356
+ throw new MaxRetriesExceededError(attempt);
3357
+ }
3358
+ await sleep(retryDelay, signal);
3359
+ } catch (error) {
3360
+ if (signal?.aborted) {
3361
+ throw new WatchAbortedError();
3362
+ }
3363
+ if (error instanceof WatchAbortedError || error instanceof MaxRetriesExceededError) {
3364
+ throw error;
3365
+ }
3366
+ if (attempt >= maxRetries) {
3367
+ throw error;
3368
+ }
3369
+ if (onEvent) {
3370
+ onEvent({
3371
+ type: "error",
3372
+ data: { error: error instanceof Error ? error.message : String(error) }
3373
+ });
3374
+ }
3375
+ await sleep(retryDelay, signal);
3376
+ }
3377
+ }
3378
+ throw new MaxRetriesExceededError(attempt);
3379
+ }
3380
+ async function watchSingleAttempt(client, cvmId, target, interval, timeout, signal, onEvent) {
3381
+ const params = new URLSearchParams({
3382
+ target,
3383
+ interval: String(interval),
3384
+ timeout: String(timeout)
3385
+ });
3386
+ const baseURL = client.config.baseURL || "";
3387
+ const fullUrl = `${baseURL}/cvms/${cvmId}/state?${params.toString()}`;
3388
+ const headers = {
3389
+ Accept: "text/event-stream",
3390
+ "Cache-Control": "no-cache"
3391
+ };
3392
+ if (!client.config.useCookieAuth && client.config.apiKey) {
3393
+ headers["X-API-Key"] = client.config.apiKey;
3394
+ }
3395
+ if (client.config.headers) {
3396
+ Object.entries(client.config.headers).forEach(([key, value]) => {
3397
+ if (typeof value === "string") {
3398
+ headers[key] = value;
3399
+ }
3400
+ });
3401
+ }
3402
+ const response = await client.raw.native(fullUrl, {
3403
+ method: "GET",
3404
+ headers,
3405
+ signal,
3406
+ ...client.config.useCookieAuth ? { credentials: "include" } : {}
3407
+ });
3408
+ if (!response.ok) {
3409
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
3410
+ }
3411
+ if (!response.body) {
3412
+ throw new Error("Response body is null");
3413
+ }
3414
+ return parseSSEStream(response.body, signal, onEvent);
3415
+ }
3416
+ async function parseSSEStream(stream, signal, onEvent) {
3417
+ const reader = stream.getReader();
3418
+ const decoder = new TextDecoder();
3419
+ let buffer = "";
3420
+ let finalState = null;
3421
+ let currentEvent = "";
3422
+ let currentData = "";
3423
+ const processLine = (line) => {
3424
+ if (line.startsWith("event:")) {
3425
+ currentEvent = line.slice(6).trim();
3426
+ } else if (line.startsWith("data:")) {
3427
+ currentData = line.slice(5).trim();
3428
+ } else if (line === "") {
3429
+ if (currentEvent && currentData) {
3430
+ const event = parseSSEEvent(currentEvent, currentData);
3431
+ if (event.type === "state") {
3432
+ finalState = event.data;
3433
+ }
3434
+ onEvent?.(event);
3435
+ if (event.type === "complete") {
3436
+ return "complete";
3437
+ }
3438
+ if (event.type === "timeout") {
3439
+ return "timeout";
3440
+ }
3441
+ }
3442
+ currentEvent = "";
3443
+ currentData = "";
3444
+ }
3445
+ return null;
3446
+ };
3447
+ try {
3448
+ while (true) {
3449
+ if (signal?.aborted) {
3450
+ throw new WatchAbortedError();
3451
+ }
3452
+ const { done, value } = await reader.read();
3453
+ if (done) {
3454
+ break;
3455
+ }
3456
+ buffer += decoder.decode(value, { stream: true });
3457
+ const lines = buffer.split("\n");
3458
+ buffer = lines.pop() || "";
3459
+ for (const line of lines) {
3460
+ const result = processLine(line.trim());
3461
+ if (result === "complete") {
3462
+ return finalState;
3463
+ }
3464
+ if (result === "timeout") {
3465
+ return null;
3466
+ }
3467
+ }
3468
+ }
3469
+ return finalState;
3470
+ } catch (error) {
3471
+ if (error instanceof WatchAbortedError) {
3472
+ throw error;
3473
+ }
3474
+ throw new Error(`SSE stream error: ${error instanceof Error ? error.message : String(error)}`);
3475
+ } finally {
3476
+ reader.releaseLock();
3477
+ }
3478
+ }
3479
+ function sleep(ms, signal) {
3480
+ return new Promise((resolve, reject) => {
3481
+ if (signal?.aborted) {
3482
+ reject(new WatchAbortedError());
3483
+ return;
3484
+ }
3485
+ const timer = setTimeout(resolve, ms);
3486
+ if (signal) {
3487
+ signal.addEventListener("abort", () => {
3488
+ clearTimeout(timer);
3489
+ reject(new WatchAbortedError());
3490
+ });
3491
+ }
3492
+ });
3493
+ }
3494
+
3090
3495
  // src/parse_dotenv.ts
3091
3496
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
3092
3497
  function parseEnv(input) {
@@ -3125,6 +3530,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3125
3530
  // Annotate the CommonJS export names for ESM import in node:
3126
3531
  0 && (module.exports = {
3127
3532
  AddComposeHashSchema,
3533
+ AllFamiliesResponseSchema,
3128
3534
  ApiErrorSchema,
3129
3535
  AuthError,
3130
3536
  AvailableNodesSchema,
@@ -3144,12 +3550,17 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3144
3550
  CvmNetworkSchema,
3145
3551
  CvmNetworkUrlsSchema,
3146
3552
  CvmNodeSchema,
3553
+ CvmStateSchema,
3147
3554
  CvmSystemInfoSchema,
3148
3555
  DeleteCvmRequestSchema,
3149
3556
  DeployAppAuthRequestSchema,
3150
3557
  DeployAppAuthSchema,
3558
+ FamilyGroupSchema,
3559
+ FamilyInstanceTypesResponseSchema,
3151
3560
  GetAppEnvEncryptPubKeyRequestSchema,
3152
3561
  GetAppEnvEncryptPubKeySchema,
3562
+ GetAvailableOSImagesRequestSchema,
3563
+ GetAvailableOSImagesResponseSchema,
3153
3564
  GetCvmAttestationRequestSchema,
3154
3565
  GetCvmComposeFileRequestSchema,
3155
3566
  GetCvmContainersStatsRequestSchema,
@@ -3158,17 +3569,21 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3158
3569
  GetCvmListRequestSchema,
3159
3570
  GetCvmListSchema,
3160
3571
  GetCvmNetworkRequestSchema,
3572
+ GetCvmStateRequestSchema,
3161
3573
  GetCvmStatsRequestSchema,
3162
3574
  GetKmsInfoRequestSchema,
3163
3575
  GetKmsListRequestSchema,
3164
3576
  GetKmsListSchema,
3165
3577
  InstanceTypeSchema,
3166
3578
  KmsInfoSchema,
3167
- ListInstanceTypesRequestSchema,
3579
+ ListFamilyInstanceTypesRequestSchema,
3168
3580
  ListWorkspacesSchema,
3169
3581
  ManagedUserSchema,
3582
+ MaxRetriesExceededError,
3170
3583
  NetworkError,
3171
- PaginatedInstanceTypesSchema,
3584
+ NextAppIdsRequestSchema,
3585
+ NextAppIdsSchema,
3586
+ OSImageVariantSchema,
3172
3587
  PaginationMetadataSchema,
3173
3588
  PhalaCloudError,
3174
3589
  ProvisionCvmComposeFileUpdateRequestSchema,
@@ -3176,6 +3591,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3176
3591
  ProvisionCvmRequestSchema,
3177
3592
  ProvisionCvmSchema,
3178
3593
  RequestError,
3594
+ ResourceError,
3179
3595
  RestartCvmRequestSchema,
3180
3596
  SUPPORTED_CHAINS,
3181
3597
  ServerError,
@@ -3186,10 +3602,13 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3186
3602
  UnknownError,
3187
3603
  UpdateCvmResourcesRequestSchema,
3188
3604
  UpdateCvmVisibilityRequestSchema,
3605
+ UpdateOsImageRequestSchema,
3189
3606
  VMSchema,
3190
3607
  ValidationError,
3191
3608
  VmInfoSchema,
3192
3609
  WalletError,
3610
+ WatchAbortedError,
3611
+ WatchCvmStateRequestSchema,
3193
3612
  WorkspaceResponseSchema,
3194
3613
  addComposeHash,
3195
3614
  addNetwork,
@@ -3217,9 +3636,11 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3217
3636
  executeTransactionWithRetry,
3218
3637
  extractNetworkClients,
3219
3638
  formatErrorMessage,
3639
+ formatStructuredError,
3220
3640
  formatValidationErrors,
3221
3641
  getAppEnvEncryptPubKey,
3222
3642
  getAvailableNodes,
3643
+ getAvailableOsImages,
3223
3644
  getComposeHash,
3224
3645
  getCurrentUser,
3225
3646
  getCvmAttestation,
@@ -3229,14 +3650,17 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3229
3650
  getCvmInfo,
3230
3651
  getCvmList,
3231
3652
  getCvmNetwork,
3653
+ getCvmState,
3232
3654
  getCvmStats,
3233
3655
  getErrorMessage,
3234
3656
  getKmsInfo,
3235
3657
  getKmsList,
3236
3658
  getValidationFields,
3237
3659
  getWorkspace,
3238
- listInstanceTypes,
3660
+ listAllInstanceTypeFamilies,
3661
+ listFamilyInstanceTypes,
3239
3662
  listWorkspaces,
3663
+ nextAppIds,
3240
3664
  parseApiError,
3241
3665
  parseEnv,
3242
3666
  parseEnvVars,
@@ -3252,6 +3676,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3252
3676
  safeDeployAppAuth,
3253
3677
  safeGetAppEnvEncryptPubKey,
3254
3678
  safeGetAvailableNodes,
3679
+ safeGetAvailableOsImages,
3255
3680
  safeGetCurrentUser,
3256
3681
  safeGetCvmAttestation,
3257
3682
  safeGetCvmComposeFile,
@@ -3260,12 +3685,15 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3260
3685
  safeGetCvmInfo,
3261
3686
  safeGetCvmList,
3262
3687
  safeGetCvmNetwork,
3688
+ safeGetCvmState,
3263
3689
  safeGetCvmStats,
3264
3690
  safeGetKmsInfo,
3265
3691
  safeGetKmsList,
3266
3692
  safeGetWorkspace,
3267
- safeListInstanceTypes,
3693
+ safeListAllInstanceTypeFamilies,
3694
+ safeListFamilyInstanceTypes,
3268
3695
  safeListWorkspaces,
3696
+ safeNextAppIds,
3269
3697
  safeProvisionCvm,
3270
3698
  safeProvisionCvmComposeFileUpdate,
3271
3699
  safeRestartCvm,
@@ -3274,6 +3702,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3274
3702
  safeStopCvm,
3275
3703
  safeUpdateCvmResources,
3276
3704
  safeUpdateCvmVisibility,
3705
+ safeUpdateOsImage,
3277
3706
  safeValidateActionParameters,
3278
3707
  shutdownCvm,
3279
3708
  sortObject,
@@ -3282,9 +3711,11 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3282
3711
  switchToNetwork,
3283
3712
  updateCvmResources,
3284
3713
  updateCvmVisibility,
3714
+ updateOsImage,
3285
3715
  validateActionParameters,
3286
3716
  validateNetworkPrerequisites,
3287
3717
  verifyEnvEncryptPublicKey,
3288
3718
  waitForTransactionReceipt,
3719
+ watchCvmState,
3289
3720
  withComposeMethods
3290
3721
  });