@phala/cloud 0.2.1-beta.3 → 0.2.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.
Files changed (69) hide show
  1. package/LICENSE +201 -0
  2. package/dist/actions/apps/get_app_cvms.d.ts +30 -0
  3. package/dist/actions/apps/get_app_info.d.ts +30 -0
  4. package/dist/actions/apps/get_app_list.d.ts +74 -0
  5. package/dist/actions/apps/get_app_revision_detail.d.ts +48 -0
  6. package/dist/actions/apps/get_app_revisions.d.ts +42 -0
  7. package/dist/actions/cvms/commit_cvm_compose_file_update.d.ts +7 -7
  8. package/dist/actions/cvms/commit_cvm_provision.d.ts +31 -31
  9. package/dist/actions/cvms/delete_cvm.d.ts +10 -7
  10. package/dist/actions/cvms/get_available_os_images.d.ts +10 -7
  11. package/dist/actions/cvms/get_cvm_attestation.d.ts +10 -7
  12. package/dist/actions/cvms/get_cvm_compose_file.d.ts +18 -15
  13. package/dist/actions/cvms/get_cvm_containers_stats.d.ts +14 -11
  14. package/dist/actions/cvms/get_cvm_docker_compose.d.ts +10 -7
  15. package/dist/actions/cvms/get_cvm_info.d.ts +19 -35
  16. package/dist/actions/cvms/get_cvm_list.d.ts +11 -537
  17. package/dist/actions/cvms/get_cvm_network.d.ts +10 -7
  18. package/dist/actions/cvms/get_cvm_prelaunch_script.d.ts +42 -0
  19. package/dist/actions/cvms/get_cvm_state.d.ts +10 -7
  20. package/dist/actions/cvms/get_cvm_stats.d.ts +10 -7
  21. package/dist/actions/cvms/get_cvm_status_batch.d.ts +167 -0
  22. package/dist/actions/cvms/provision_cvm.d.ts +404 -21
  23. package/dist/actions/cvms/provision_cvm_compose_file_update.d.ts +32 -32
  24. package/dist/actions/cvms/restart_cvm.d.ts +17 -14
  25. package/dist/actions/cvms/shutdown_cvm.d.ts +18 -15
  26. package/dist/actions/cvms/start_cvm.d.ts +18 -15
  27. package/dist/actions/cvms/stop_cvm.d.ts +18 -15
  28. package/dist/actions/cvms/update_cvm_envs.d.ts +426 -0
  29. package/dist/actions/cvms/update_cvm_resources.d.ts +13 -10
  30. package/dist/actions/cvms/update_cvm_visibility.d.ts +33 -14
  31. package/dist/actions/cvms/update_docker_compose.d.ts +420 -0
  32. package/dist/actions/cvms/update_os_image.d.ts +9 -6
  33. package/dist/actions/cvms/update_prelaunch_script.d.ts +417 -0
  34. package/dist/actions/cvms/watch_cvm_state.d.ts +1 -1
  35. package/dist/actions/get_available_nodes.d.ts +6 -6
  36. package/dist/actions/get_current_user.d.ts +36 -89
  37. package/dist/actions/index.d.ts +14 -2
  38. package/dist/actions/kms/get_app_env_encrypt_pubkey.d.ts +6 -6
  39. package/dist/actions/kms/get_kms_info.d.ts +6 -6
  40. package/dist/actions/kms/get_kms_list.d.ts +6 -6
  41. package/dist/actions/kms/next_app_ids.d.ts +6 -6
  42. package/dist/actions/list-instance-types.d.ts +16 -16
  43. package/dist/actions/workspaces/get_workspace.d.ts +6 -6
  44. package/dist/actions/workspaces/get_workspace_nodes.d.ts +266 -0
  45. package/dist/actions/workspaces/get_workspace_quotas.d.ts +1169 -0
  46. package/dist/actions/workspaces/list_workspaces.d.ts +6 -6
  47. package/dist/client.d.ts +49 -9
  48. package/dist/create-client.d.ts +87 -36
  49. package/dist/credentials/current_user_v20251028.d.ts +30 -0
  50. package/dist/credentials/current_user_v20260121.d.ts +276 -0
  51. package/dist/credentials/index.d.ts +4 -0
  52. package/dist/index.d.ts +1 -0
  53. package/dist/index.js +1782 -633
  54. package/dist/index.mjs +1693 -626
  55. package/dist/types/app_info_v20251028.d.ts +1266 -0
  56. package/dist/types/app_info_v20260121.d.ts +3293 -0
  57. package/dist/types/app_revision.d.ts +453 -0
  58. package/dist/types/client.d.ts +40 -2
  59. package/dist/types/cvm_id.d.ts +45 -10
  60. package/dist/types/cvm_info.d.ts +16 -502
  61. package/dist/types/cvm_info_v20251028.d.ts +988 -0
  62. package/dist/types/cvm_info_v20260121.d.ts +1264 -0
  63. package/dist/types/index.d.ts +6 -0
  64. package/dist/types/version-mappings.d.ts +38 -0
  65. package/dist/utils/define-action.d.ts +15 -14
  66. package/dist/utils/errors.d.ts +2 -2
  67. package/dist/utils/hostname.d.ts +77 -0
  68. package/dist/utils/index.d.ts +1 -0
  69. package/package.json +2 -2
package/dist/index.js CHANGED
@@ -33,33 +33,65 @@ __export(index_exports, {
33
33
  AddComposeHashSchema: () => AddComposeHashSchema,
34
34
  AllFamiliesResponseSchema: () => AllFamiliesResponseSchema,
35
35
  ApiErrorSchema: () => ApiErrorSchema,
36
+ AppRevisionDetailResponseSchema: () => AppRevisionDetailResponseSchema,
37
+ AppRevisionResponseSchema: () => AppRevisionResponseSchema,
38
+ AppRevisionsResponseSchema: () => AppRevisionsResponseSchema,
36
39
  AuthError: () => AuthError,
40
+ AuthResponseSchema: () => CurrentUserV20260121Schema,
37
41
  AvailableNodesSchema: () => AvailableNodesSchema,
42
+ BillingPeriodSchema: () => BillingPeriodSchema,
38
43
  BusinessError: () => BusinessError,
39
44
  CommitCvmComposeFileUpdateRequestSchema: () => CommitCvmComposeFileUpdateRequestSchema,
40
45
  CommitCvmComposeFileUpdateSchema: () => CommitCvmComposeFileUpdateSchema,
41
46
  CommitCvmProvisionRequestSchema: () => CommitCvmProvisionRequestSchema,
42
47
  CommitCvmProvisionSchema: () => CommitCvmProvisionSchema,
43
- CurrentUserSchema: () => CurrentUserSchema,
48
+ CreditsInfoSchema: () => CreditsInfoSchema,
49
+ CurrentUserSchema: () => CurrentUserV20251028Schema,
50
+ CurrentUserV20251028Schema: () => CurrentUserV20251028Schema,
51
+ CurrentUserV20260121Schema: () => CurrentUserV20260121Schema,
44
52
  CvmAttestationSchema: () => CvmAttestationSchema,
53
+ CvmBasicInfoV20251028Schema: () => CvmBasicInfoV20251028Schema,
45
54
  CvmContainersStatsSchema: () => CvmContainersStatsSchema,
55
+ CvmDetailV20251028Schema: () => CvmDetailV20251028Schema,
56
+ CvmGatewayInfoV20260121Schema: () => CvmGatewayInfoV20260121Schema,
46
57
  CvmIdBaseSchema: () => CvmIdBaseSchema,
47
58
  CvmIdObjectSchema: () => CvmIdObjectSchema,
48
59
  CvmIdSchema: () => CvmIdSchema,
49
- CvmInfoSchema: () => CvmInfoSchema,
50
- CvmLegacyDetailSchema: () => CvmLegacyDetailSchema,
60
+ CvmInfoDetailV20260121Schema: () => CvmInfoDetailV20260121Schema,
61
+ CvmInfoV20251028Schema: () => CvmInfoV20251028Schema,
62
+ CvmInfoV20260121Schema: () => CvmInfoV20260121Schema,
63
+ CvmKmsInfoV20260121Schema: () => CvmKmsInfoV20260121Schema,
51
64
  CvmNetworkSchema: () => CvmNetworkSchema,
52
- CvmNetworkUrlsSchema: () => CvmNetworkUrlsSchema,
53
- CvmNodeSchema: () => CvmNodeSchema,
65
+ CvmNetworkUrlsV20251028Schema: () => CvmNetworkUrlsV20251028Schema,
66
+ CvmNodeInfoV20260121Schema: () => CvmNodeInfoV20260121Schema,
67
+ CvmNodeV20251028Schema: () => CvmNodeV20251028Schema,
68
+ CvmOsInfoV20260121Schema: () => CvmOsInfoV20260121Schema,
69
+ CvmProgressInfoV20260121Schema: () => CvmProgressInfoV20260121Schema,
70
+ CvmRefSchema: () => CvmRefSchema,
71
+ CvmResourceInfoV20260121Schema: () => CvmResourceInfoV20260121Schema,
54
72
  CvmStateSchema: () => CvmStateSchema,
73
+ CvmStatusSchema: () => CvmStatusSchema,
55
74
  CvmSystemInfoSchema: () => CvmSystemInfoSchema,
56
75
  DeleteCvmRequestSchema: () => DeleteCvmRequestSchema,
57
76
  DeployAppAuthRequestSchema: () => DeployAppAuthRequestSchema,
58
77
  DeployAppAuthSchema: () => DeployAppAuthSchema,
78
+ DstackAppFullResponseV20251028Schema: () => DstackAppFullResponseV20251028Schema,
79
+ DstackAppFullResponseV20260121Schema: () => DstackAppFullResponseV20260121Schema,
80
+ DstackAppListResponseV20251028Schema: () => DstackAppListResponseV20251028Schema,
81
+ DstackAppListResponseV20260121Schema: () => DstackAppListResponseV20260121Schema,
82
+ DstackAppMinimalResponseV20251028Schema: () => DstackAppMinimalResponseV20251028Schema,
83
+ DstackAppMinimalResponseV20260121Schema: () => DstackAppMinimalResponseV20260121Schema,
84
+ DstackAppWithCvmResponseV20251028Schema: () => DstackAppWithCvmResponseV20251028Schema,
85
+ DstackAppWithCvmResponseV20260121Schema: () => DstackAppWithCvmResponseV20260121Schema,
59
86
  FamilyGroupSchema: () => FamilyGroupSchema,
60
87
  FamilyInstanceTypesResponseSchema: () => FamilyInstanceTypesResponseSchema,
88
+ GetAppCvmsRequestSchema: () => GetAppCvmsRequestSchema,
61
89
  GetAppEnvEncryptPubKeyRequestSchema: () => GetAppEnvEncryptPubKeyRequestSchema,
62
90
  GetAppEnvEncryptPubKeySchema: () => GetAppEnvEncryptPubKeySchema,
91
+ GetAppInfoRequestSchema: () => GetAppInfoRequestSchema,
92
+ GetAppListRequestSchema: () => GetAppListRequestSchema,
93
+ GetAppRevisionDetailRequestSchema: () => GetAppRevisionDetailRequestSchema,
94
+ GetAppRevisionsRequestSchema: () => GetAppRevisionsRequestSchema,
63
95
  GetAvailableOSImagesRequestSchema: () => GetAvailableOSImagesRequestSchema,
64
96
  GetAvailableOSImagesResponseSchema: () => GetAvailableOSImagesResponseSchema,
65
97
  GetCvmAttestationRequestSchema: () => GetCvmAttestationRequestSchema,
@@ -68,29 +100,39 @@ __export(index_exports, {
68
100
  GetCvmDockerComposeRequestSchema: () => GetCvmDockerComposeRequestSchema,
69
101
  GetCvmInfoRequestSchema: () => GetCvmInfoRequestSchema,
70
102
  GetCvmListRequestSchema: () => GetCvmListRequestSchema,
71
- GetCvmListSchema: () => GetCvmListSchema,
72
103
  GetCvmNetworkRequestSchema: () => GetCvmNetworkRequestSchema,
104
+ GetCvmPreLaunchScriptRequestSchema: () => GetCvmPreLaunchScriptRequestSchema,
73
105
  GetCvmStateRequestSchema: () => GetCvmStateRequestSchema,
74
106
  GetCvmStatsRequestSchema: () => GetCvmStatsRequestSchema,
107
+ GetCvmStatusBatchRequestSchema: () => GetCvmStatusBatchRequestSchema,
108
+ GetCvmStatusBatchResponseSchema: () => GetCvmStatusBatchResponseSchema,
75
109
  GetKmsInfoRequestSchema: () => GetKmsInfoRequestSchema,
76
110
  GetKmsListRequestSchema: () => GetKmsListRequestSchema,
77
111
  GetKmsListSchema: () => GetKmsListSchema,
112
+ GetWorkspaceNodesSchema: () => GetWorkspaceNodesSchema,
113
+ GetWorkspaceQuotasSchema: () => GetWorkspaceQuotasSchema,
78
114
  InstanceTypeSchema: () => InstanceTypeSchema,
79
115
  KmsInfoSchema: () => KmsInfoSchema,
116
+ KmsTypeSchema: () => KmsTypeSchema,
80
117
  ListFamilyInstanceTypesRequestSchema: () => ListFamilyInstanceTypesRequestSchema,
81
118
  ListWorkspacesSchema: () => ListWorkspacesSchema,
82
- ManagedUserSchema: () => ManagedUserSchema,
119
+ MachineInfoV20251028Schema: () => MachineInfoV20251028Schema,
120
+ ManagedUserV20251028Schema: () => ManagedUserV20251028Schema,
83
121
  MaxRetriesExceededError: () => MaxRetriesExceededError,
84
122
  NetworkError: () => NetworkError,
85
123
  NextAppIdsRequestSchema: () => NextAppIdsRequestSchema,
86
124
  NextAppIdsSchema: () => NextAppIdsSchema,
125
+ NodeInfoSchema: () => NodeInfoSchema,
87
126
  OSImageVariantSchema: () => OSImageVariantSchema,
127
+ PaginatedCvmInfosV20251028Schema: () => PaginatedCvmInfosV20251028Schema,
128
+ PaginatedCvmInfosV20260121Schema: () => PaginatedCvmInfosV20260121Schema,
88
129
  PaginationMetadataSchema: () => PaginationMetadataSchema,
89
130
  PhalaCloudError: () => PhalaCloudError,
90
131
  ProvisionCvmComposeFileUpdateRequestSchema: () => ProvisionCvmComposeFileUpdateRequestSchema,
91
132
  ProvisionCvmComposeFileUpdateResultSchema: () => ProvisionCvmComposeFileUpdateResultSchema,
92
133
  ProvisionCvmRequestSchema: () => ProvisionCvmRequestSchema,
93
134
  ProvisionCvmSchema: () => ProvisionCvmSchema,
135
+ QuotaMetricSchema: () => QuotaMetricSchema,
94
136
  RequestError: () => RequestError,
95
137
  ResourceError: () => ResourceError,
96
138
  RestartCvmRequestSchema: () => RestartCvmRequestSchema,
@@ -102,15 +144,27 @@ __export(index_exports, {
102
144
  StopCvmRequestSchema: () => StopCvmRequestSchema,
103
145
  TransactionError: () => TransactionError,
104
146
  UnknownError: () => UnknownError,
147
+ UpdateCvmEnvsRequestSchema: () => UpdateCvmEnvsRequestSchema,
148
+ UpdateCvmEnvsResultSchema: () => UpdateCvmEnvsResultSchema,
105
149
  UpdateCvmResourcesRequestSchema: () => UpdateCvmResourcesRequestSchema,
106
150
  UpdateCvmVisibilityRequestSchema: () => UpdateCvmVisibilityRequestSchema,
151
+ UpdateDockerComposeRequestSchema: () => UpdateDockerComposeRequestSchema,
152
+ UpdateDockerComposeResultSchema: () => UpdateDockerComposeResultSchema,
107
153
  UpdateOsImageRequestSchema: () => UpdateOsImageRequestSchema,
154
+ UpdatePreLaunchScriptRequestSchema: () => UpdatePreLaunchScriptRequestSchema,
155
+ UpdatePreLaunchScriptResultSchema: () => UpdatePreLaunchScriptResultSchema,
156
+ UserInfoSchema: () => UserInfoSchema,
157
+ UserRefSchema: () => UserRefSchema,
108
158
  VMSchema: () => VMSchema,
109
159
  ValidationError: () => ValidationError,
110
- VmInfoSchema: () => VmInfoSchema,
160
+ VmInfoV20251028Schema: () => VmInfoV20251028Schema,
111
161
  WalletError: () => WalletError,
112
162
  WatchAbortedError: () => WatchAbortedError,
113
163
  WatchCvmStateRequestSchema: () => WatchCvmStateRequestSchema,
164
+ WorkspaceInfoSchema: () => WorkspaceInfoSchema,
165
+ WorkspaceQuotasSchema: () => WorkspaceQuotasSchema,
166
+ WorkspaceRefSchema: () => WorkspaceRefSchema,
167
+ WorkspaceReservedGpuQuotaSchema: () => WorkspaceReservedGpuQuotaSchema,
114
168
  WorkspaceResponseSchema: () => WorkspaceResponseSchema,
115
169
  addComposeHash: () => addComposeHash,
116
170
  addNetwork: () => addNetwork,
@@ -120,6 +174,7 @@ __export(index_exports, {
120
174
  checkNetworkStatus: () => checkNetworkStatus,
121
175
  commitCvmComposeFileUpdate: () => commitCvmComposeFileUpdate,
122
176
  commitCvmProvision: () => commitCvmProvision,
177
+ convertToHostname: () => convertToHostname,
123
178
  createBaseClient: () => createClient,
124
179
  createClient: () => createClient2,
125
180
  createClientsFromBrowser: () => createClientsFromBrowser,
@@ -140,7 +195,14 @@ __export(index_exports, {
140
195
  formatErrorMessage: () => formatErrorMessage,
141
196
  formatStructuredError: () => formatStructuredError,
142
197
  formatValidationErrors: () => formatValidationErrors,
198
+ generateDefaultCvmName: () => generateDefaultCvmName,
199
+ generateFallbackHostname: () => generateFallbackHostname,
200
+ getAppCvms: () => getAppCvms,
143
201
  getAppEnvEncryptPubKey: () => getAppEnvEncryptPubKey,
202
+ getAppInfo: () => getAppInfo,
203
+ getAppList: () => getAppList,
204
+ getAppRevisionDetail: () => getAppRevisionDetail,
205
+ getAppRevisions: () => getAppRevisions,
144
206
  getAvailableNodes: () => getAvailableNodes,
145
207
  getAvailableOsImages: () => getAvailableOsImages,
146
208
  getComposeHash: () => import_get_compose_hash3.getComposeHash,
@@ -152,13 +214,18 @@ __export(index_exports, {
152
214
  getCvmInfo: () => getCvmInfo,
153
215
  getCvmList: () => getCvmList,
154
216
  getCvmNetwork: () => getCvmNetwork,
217
+ getCvmPreLaunchScript: () => getCvmPreLaunchScript,
155
218
  getCvmState: () => getCvmState,
156
219
  getCvmStats: () => getCvmStats,
220
+ getCvmStatusBatch: () => getCvmStatusBatch,
157
221
  getErrorMessage: () => getErrorMessage,
158
222
  getKmsInfo: () => getKmsInfo,
159
223
  getKmsList: () => getKmsList,
160
224
  getValidationFields: () => getValidationFields,
161
225
  getWorkspace: () => getWorkspace,
226
+ getWorkspaceNodes: () => getWorkspaceNodes,
227
+ getWorkspaceQuotas: () => getWorkspaceQuotas,
228
+ isValidHostname: () => isValidHostname,
162
229
  listAllInstanceTypeFamilies: () => listAllInstanceTypeFamilies,
163
230
  listFamilyInstanceTypes: () => listFamilyInstanceTypes,
164
231
  listWorkspaces: () => listWorkspaces,
@@ -176,7 +243,12 @@ __export(index_exports, {
176
243
  safeCommitCvmProvision: () => safeCommitCvmProvision,
177
244
  safeDeleteCvm: () => safeDeleteCvm,
178
245
  safeDeployAppAuth: () => safeDeployAppAuth,
246
+ safeGetAppCvms: () => safeGetAppCvms,
179
247
  safeGetAppEnvEncryptPubKey: () => safeGetAppEnvEncryptPubKey,
248
+ safeGetAppInfo: () => safeGetAppInfo,
249
+ safeGetAppList: () => safeGetAppList,
250
+ safeGetAppRevisionDetail: () => safeGetAppRevisionDetail,
251
+ safeGetAppRevisions: () => safeGetAppRevisions,
180
252
  safeGetAvailableNodes: () => safeGetAvailableNodes,
181
253
  safeGetAvailableOsImages: () => safeGetAvailableOsImages,
182
254
  safeGetCurrentUser: () => safeGetCurrentUser,
@@ -187,11 +259,15 @@ __export(index_exports, {
187
259
  safeGetCvmInfo: () => safeGetCvmInfo,
188
260
  safeGetCvmList: () => safeGetCvmList,
189
261
  safeGetCvmNetwork: () => safeGetCvmNetwork,
262
+ safeGetCvmPreLaunchScript: () => safeGetCvmPreLaunchScript,
190
263
  safeGetCvmState: () => safeGetCvmState,
191
264
  safeGetCvmStats: () => safeGetCvmStats,
265
+ safeGetCvmStatusBatch: () => safeGetCvmStatusBatch,
192
266
  safeGetKmsInfo: () => safeGetKmsInfo,
193
267
  safeGetKmsList: () => safeGetKmsList,
194
268
  safeGetWorkspace: () => safeGetWorkspace,
269
+ safeGetWorkspaceNodes: () => safeGetWorkspaceNodes,
270
+ safeGetWorkspaceQuotas: () => safeGetWorkspaceQuotas,
195
271
  safeListAllInstanceTypeFamilies: () => safeListAllInstanceTypeFamilies,
196
272
  safeListFamilyInstanceTypes: () => safeListFamilyInstanceTypes,
197
273
  safeListWorkspaces: () => safeListWorkspaces,
@@ -202,18 +278,24 @@ __export(index_exports, {
202
278
  safeShutdownCvm: () => safeShutdownCvm,
203
279
  safeStartCvm: () => safeStartCvm,
204
280
  safeStopCvm: () => safeStopCvm,
281
+ safeUpdateCvmEnvs: () => safeUpdateCvmEnvs,
205
282
  safeUpdateCvmResources: () => safeUpdateCvmResources,
206
283
  safeUpdateCvmVisibility: () => safeUpdateCvmVisibility,
284
+ safeUpdateDockerCompose: () => safeUpdateDockerCompose,
207
285
  safeUpdateOsImage: () => safeUpdateOsImage,
286
+ safeUpdatePreLaunchScript: () => safeUpdatePreLaunchScript,
208
287
  safeValidateActionParameters: () => safeValidateActionParameters,
209
288
  shutdownCvm: () => shutdownCvm,
210
289
  sortObject: () => sortObject,
211
290
  startCvm: () => startCvm,
212
291
  stopCvm: () => stopCvm,
213
292
  switchToNetwork: () => switchToNetwork,
293
+ updateCvmEnvs: () => updateCvmEnvs,
214
294
  updateCvmResources: () => updateCvmResources,
215
295
  updateCvmVisibility: () => updateCvmVisibility,
296
+ updateDockerCompose: () => updateDockerCompose,
216
297
  updateOsImage: () => updateOsImage,
298
+ updatePreLaunchScript: () => updatePreLaunchScript,
217
299
  validateActionParameters: () => validateActionParameters,
218
300
  validateNetworkPrerequisites: () => validateNetworkPrerequisites,
219
301
  verifyEnvEncryptPublicKey: () => import_verify_env_encrypt_public_key.verifyEnvEncryptPublicKey,
@@ -558,7 +640,11 @@ function formatStructuredError(error, options) {
558
640
  }
559
641
 
560
642
  // src/client.ts
561
- var SUPPORTED_API_VERSIONS = ["2025-05-31", "2025-10-28"];
643
+ var SUPPORTED_API_VERSIONS = [
644
+ "2025-10-28",
645
+ "2026-01-21"
646
+ ];
647
+ var DEFAULT_API_VERSION = "2026-01-21";
562
648
  var logger = (0, import_debug.default)("phala::api-client");
563
649
  function formatHeaders(headers) {
564
650
  return Object.entries(headers).map(([key, value]) => ` -H "${key}: ${value}"`).join("\n");
@@ -582,17 +668,19 @@ function formatResponse(status, statusText, headers, body) {
582
668
  bodyStr
583
669
  ].filter(Boolean).join("\n");
584
670
  }
585
- var Client = class {
671
+ var Client = class _Client {
586
672
  constructor(config = {}) {
587
673
  this.emitter = (0, import_mitt.default)();
588
- const resolvedConfig = {
674
+ const resolvedApiKey = config.apiKey || process?.env?.PHALA_CLOUD_API_KEY;
675
+ const resolvedBaseURL = config.baseURL || process?.env?.PHALA_CLOUD_API_PREFIX || "https://cloud-api.phala.network/api/v1";
676
+ const version = config.version && SUPPORTED_API_VERSIONS.includes(config.version) ? config.version : DEFAULT_API_VERSION;
677
+ this.config = {
589
678
  ...config,
590
- apiKey: config.apiKey || process?.env?.PHALA_CLOUD_API_KEY,
591
- baseURL: config.baseURL || process?.env?.PHALA_CLOUD_API_PREFIX || "https://cloud-api.phala.network/api/v1"
679
+ apiKey: resolvedApiKey,
680
+ baseURL: resolvedBaseURL,
681
+ version
592
682
  };
593
- const version = resolvedConfig.version && SUPPORTED_API_VERSIONS.includes(resolvedConfig.version) ? resolvedConfig.version : SUPPORTED_API_VERSIONS[SUPPORTED_API_VERSIONS.length - 1];
594
- this.config = resolvedConfig;
595
- const { apiKey, baseURL, timeout, headers, useCookieAuth, onResponseError, ...fetchOptions } = resolvedConfig;
683
+ const { apiKey, baseURL, timeout, headers, useCookieAuth, onResponseError, ...fetchOptions } = this.config;
596
684
  const requestHeaders = {
597
685
  "X-Phala-Version": version,
598
686
  "Content-Type": "application/json"
@@ -651,8 +739,8 @@ var Client = class {
651
739
  },
652
740
  // Generic handlers for response error (similar to request.ts)
653
741
  onResponseError: ({ request, response, options }) => {
654
- console.warn(`HTTP ${response.status}: ${response.url}`);
655
742
  if (logger.enabled) {
743
+ console.warn(`HTTP ${response.status}: ${response.url}`);
656
744
  const method = options.method || "GET";
657
745
  const url = typeof request === "string" ? request : request.url;
658
746
  logger(
@@ -688,6 +776,49 @@ var Client = class {
688
776
  this.emitter.on(type, wrappedHandler);
689
777
  }
690
778
  // ===== Direct methods (throw on error) =====
779
+ /**
780
+ * Generic request method (throws PhalaCloudError on error)
781
+ */
782
+ async request(url, options) {
783
+ try {
784
+ const method = options?.method || "GET";
785
+ return await this.fetchInstance(url, {
786
+ ...options,
787
+ method
788
+ });
789
+ } catch (error) {
790
+ const requestError = this.convertToRequestError(error);
791
+ const phalaCloudError = this.emitError(requestError);
792
+ throw phalaCloudError;
793
+ }
794
+ }
795
+ /**
796
+ * Generic request method that returns the full response (status + headers + data)
797
+ *
798
+ * Unlike other direct methods, this does NOT throw for non-2xx HTTP statuses.
799
+ * It only throws for network/transport/unexpected errors.
800
+ */
801
+ async requestFull(url, options) {
802
+ try {
803
+ const method = options?.method || "GET";
804
+ const response = await this.fetchInstance.raw(url, {
805
+ ...options,
806
+ method,
807
+ ignoreResponseError: true
808
+ });
809
+ return {
810
+ status: response.status,
811
+ statusText: response.statusText,
812
+ headers: response.headers,
813
+ data: response._data,
814
+ ok: response.ok
815
+ };
816
+ } catch (error) {
817
+ const requestError = this.convertToRequestError(error);
818
+ const phalaCloudError = this.emitError(requestError);
819
+ throw phalaCloudError;
820
+ }
821
+ }
691
822
  /**
692
823
  * Perform GET request (throws PhalaCloudError on error)
693
824
  */
@@ -838,6 +969,34 @@ var Client = class {
838
969
  async safeDelete(request, options) {
839
970
  return this.safeRequest(() => this.delete(request, options));
840
971
  }
972
+ /**
973
+ * Safe wrapper around the generic request method (returns SafeResult)
974
+ */
975
+ async safeRequestMethod(url, options) {
976
+ return this.safeRequest(() => this.request(url, options));
977
+ }
978
+ /**
979
+ * Safe wrapper around requestFull (returns SafeResult)
980
+ */
981
+ async safeRequestFull(url, options) {
982
+ return this.safeRequest(() => this.requestFull(url, options));
983
+ }
984
+ /**
985
+ * Create a new client with a different API version
986
+ *
987
+ * @example
988
+ * ```typescript
989
+ * const client = createClient(); // defaults to 2026-01-21
990
+ * const legacyClient = client.withVersion("2025-10-28");
991
+ * const data = await getCvmInfo(legacyClient, { id: "xxx" });
992
+ * ```
993
+ */
994
+ withVersion(version) {
995
+ return new _Client({
996
+ ...this.config,
997
+ version
998
+ });
999
+ }
841
1000
  /**
842
1001
  * Extend client with additional actions
843
1002
  *
@@ -865,8 +1024,113 @@ function createClient(config = {}) {
865
1024
  return new Client(config);
866
1025
  }
867
1026
 
868
- // src/actions/get_current_user.ts
1027
+ // src/credentials/current_user_v20260121.ts
869
1028
  var import_zod2 = require("zod");
1029
+ var UserInfoSchema = import_zod2.z.object({
1030
+ username: import_zod2.z.string(),
1031
+ email: import_zod2.z.string(),
1032
+ role: import_zod2.z.enum(["admin", "user"]),
1033
+ avatar: import_zod2.z.string(),
1034
+ email_verified: import_zod2.z.boolean(),
1035
+ totp_enabled: import_zod2.z.boolean(),
1036
+ has_backup_codes: import_zod2.z.boolean(),
1037
+ flag_has_password: import_zod2.z.boolean()
1038
+ }).passthrough();
1039
+ var WorkspaceInfoSchema = import_zod2.z.object({
1040
+ id: import_zod2.z.string(),
1041
+ name: import_zod2.z.string(),
1042
+ slug: import_zod2.z.string().nullable(),
1043
+ tier: import_zod2.z.string(),
1044
+ role: import_zod2.z.string(),
1045
+ avatar: import_zod2.z.string().nullable().optional()
1046
+ }).passthrough();
1047
+ var CreditsInfoSchema = import_zod2.z.object({
1048
+ balance: import_zod2.z.string().or(import_zod2.z.number()),
1049
+ granted_balance: import_zod2.z.string().or(import_zod2.z.number()),
1050
+ is_post_paid: import_zod2.z.boolean(),
1051
+ outstanding_amount: import_zod2.z.string().or(import_zod2.z.number()).nullable()
1052
+ }).passthrough();
1053
+ var CurrentUserV20260121Schema = import_zod2.z.object({
1054
+ user: UserInfoSchema,
1055
+ workspace: WorkspaceInfoSchema,
1056
+ credits: CreditsInfoSchema
1057
+ }).passthrough();
1058
+
1059
+ // src/credentials/current_user_v20251028.ts
1060
+ var import_zod3 = require("zod");
1061
+ var CurrentUserV20251028Schema = import_zod3.z.object({
1062
+ username: import_zod3.z.string(),
1063
+ email: import_zod3.z.string(),
1064
+ credits: import_zod3.z.number(),
1065
+ granted_credits: import_zod3.z.number(),
1066
+ avatar: import_zod3.z.string(),
1067
+ team_name: import_zod3.z.string(),
1068
+ team_tier: import_zod3.z.string()
1069
+ }).passthrough();
1070
+
1071
+ // src/actions/get_current_user.ts
1072
+ function getSchemaForVersion(version) {
1073
+ return version === "2025-10-28" ? CurrentUserV20251028Schema : CurrentUserV20260121Schema;
1074
+ }
1075
+ async function getCurrentUser(client, parameters) {
1076
+ const response = await client.get("/auth/me");
1077
+ if (parameters?.schema === false) {
1078
+ return response;
1079
+ }
1080
+ const schema = parameters?.schema || getSchemaForVersion(client.config.version);
1081
+ return schema.parse(response);
1082
+ }
1083
+ async function safeGetCurrentUser(client, parameters) {
1084
+ try {
1085
+ const data = await getCurrentUser(client, parameters);
1086
+ return { success: true, data };
1087
+ } catch (error) {
1088
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
1089
+ return { success: false, error };
1090
+ }
1091
+ return {
1092
+ success: false,
1093
+ error: {
1094
+ name: "Error",
1095
+ message: error instanceof Error ? error.message : String(error)
1096
+ }
1097
+ };
1098
+ }
1099
+ }
1100
+
1101
+ // src/actions/get_available_nodes.ts
1102
+ var import_zod5 = require("zod");
1103
+
1104
+ // src/types/kms_info.ts
1105
+ var import_zod4 = require("zod");
1106
+
1107
+ // src/types/supported_chains.ts
1108
+ var import_chains = require("viem/chains");
1109
+ var SUPPORTED_CHAINS = {
1110
+ [import_chains.mainnet.id]: import_chains.mainnet,
1111
+ [import_chains.base.id]: import_chains.base,
1112
+ [import_chains.anvil.id]: import_chains.anvil
1113
+ };
1114
+
1115
+ // src/types/kms_info.ts
1116
+ var KmsInfoBaseSchema = import_zod4.z.object({
1117
+ id: import_zod4.z.string(),
1118
+ slug: import_zod4.z.string().nullable(),
1119
+ url: import_zod4.z.string(),
1120
+ version: import_zod4.z.string(),
1121
+ chain_id: import_zod4.z.number().nullable(),
1122
+ kms_contract_address: import_zod4.z.string().nullable().transform((val) => val),
1123
+ gateway_app_id: import_zod4.z.string().nullable().transform((val) => val)
1124
+ }).passthrough();
1125
+ var KmsInfoSchema = KmsInfoBaseSchema.transform((data) => {
1126
+ if (data.chain_id != null) {
1127
+ const chain = SUPPORTED_CHAINS[data.chain_id];
1128
+ if (chain) {
1129
+ return { ...data, chain };
1130
+ }
1131
+ }
1132
+ return data;
1133
+ });
870
1134
 
871
1135
  // src/utils/validate-parameters.ts
872
1136
  function validateActionParameters(parameters) {
@@ -1014,95 +1278,44 @@ function defineAction(schema, fn) {
1014
1278
  };
1015
1279
  }
1016
1280
 
1017
- // src/actions/get_current_user.ts
1018
- var CurrentUserSchema = import_zod2.z.object({
1019
- username: import_zod2.z.string(),
1020
- email: import_zod2.z.string(),
1021
- credits: import_zod2.z.number(),
1022
- granted_credits: import_zod2.z.number(),
1023
- avatar: import_zod2.z.string(),
1024
- team_name: import_zod2.z.string(),
1025
- team_tier: import_zod2.z.string()
1026
- }).passthrough();
1027
- var { action: getCurrentUser, safeAction: safeGetCurrentUser } = defineSimpleAction(
1028
- CurrentUserSchema,
1029
- async (client) => {
1030
- return await client.get("/auth/me");
1031
- }
1032
- );
1033
-
1034
1281
  // src/actions/get_available_nodes.ts
1035
- var import_zod4 = require("zod");
1036
-
1037
- // src/types/kms_info.ts
1038
- var import_zod3 = require("zod");
1039
-
1040
- // src/types/supported_chains.ts
1041
- var import_chains = require("viem/chains");
1042
- var SUPPORTED_CHAINS = {
1043
- [import_chains.mainnet.id]: import_chains.mainnet,
1044
- [import_chains.base.id]: import_chains.base,
1045
- [import_chains.anvil.id]: import_chains.anvil
1046
- };
1047
-
1048
- // src/types/kms_info.ts
1049
- var KmsInfoBaseSchema = import_zod3.z.object({
1050
- id: import_zod3.z.string(),
1051
- slug: import_zod3.z.string().nullable(),
1052
- url: import_zod3.z.string(),
1053
- version: import_zod3.z.string(),
1054
- chain_id: import_zod3.z.number().nullable(),
1055
- kms_contract_address: import_zod3.z.string().nullable().transform((val) => val),
1056
- gateway_app_id: import_zod3.z.string().nullable().transform((val) => val)
1057
- }).passthrough();
1058
- var KmsInfoSchema = KmsInfoBaseSchema.transform((data) => {
1059
- if (data.chain_id != null) {
1060
- const chain = SUPPORTED_CHAINS[data.chain_id];
1061
- if (chain) {
1062
- return { ...data, chain };
1063
- }
1064
- }
1065
- return data;
1066
- });
1067
-
1068
- // src/actions/get_available_nodes.ts
1069
- var AvailableOSImageSchema = import_zod4.z.object({
1070
- name: import_zod4.z.string(),
1071
- is_dev: import_zod4.z.boolean(),
1072
- version: import_zod4.z.union([
1073
- import_zod4.z.tuple([import_zod4.z.number(), import_zod4.z.number(), import_zod4.z.number()]),
1074
- import_zod4.z.tuple([import_zod4.z.number(), import_zod4.z.number(), import_zod4.z.number(), import_zod4.z.number()])
1282
+ var AvailableOSImageSchema = import_zod5.z.object({
1283
+ name: import_zod5.z.string(),
1284
+ is_dev: import_zod5.z.boolean(),
1285
+ version: import_zod5.z.union([
1286
+ import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()]),
1287
+ import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()])
1075
1288
  ]),
1076
- os_image_hash: import_zod4.z.string().nullable().optional()
1289
+ os_image_hash: import_zod5.z.string().nullable().optional()
1077
1290
  }).passthrough();
1078
- var TeepodCapacitySchema = import_zod4.z.object({
1079
- teepod_id: import_zod4.z.number(),
1080
- name: import_zod4.z.string(),
1081
- listed: import_zod4.z.boolean(),
1082
- resource_score: import_zod4.z.number(),
1083
- remaining_vcpu: import_zod4.z.number(),
1084
- remaining_memory: import_zod4.z.number(),
1085
- remaining_cvm_slots: import_zod4.z.number(),
1086
- images: import_zod4.z.array(AvailableOSImageSchema),
1087
- support_onchain_kms: import_zod4.z.boolean().optional(),
1088
- fmspc: import_zod4.z.string().nullable().optional(),
1089
- device_id: import_zod4.z.string().nullable().optional(),
1090
- region_identifier: import_zod4.z.string().nullable().optional(),
1091
- default_kms: import_zod4.z.string().nullable().optional(),
1092
- kms_list: import_zod4.z.array(import_zod4.z.string()).default([])
1291
+ var TeepodCapacitySchema = import_zod5.z.object({
1292
+ teepod_id: import_zod5.z.number(),
1293
+ name: import_zod5.z.string(),
1294
+ listed: import_zod5.z.boolean(),
1295
+ resource_score: import_zod5.z.number(),
1296
+ remaining_vcpu: import_zod5.z.number(),
1297
+ remaining_memory: import_zod5.z.number(),
1298
+ remaining_cvm_slots: import_zod5.z.number(),
1299
+ images: import_zod5.z.array(AvailableOSImageSchema),
1300
+ support_onchain_kms: import_zod5.z.boolean().optional(),
1301
+ fmspc: import_zod5.z.string().nullable().optional(),
1302
+ device_id: import_zod5.z.string().nullable().optional(),
1303
+ region_identifier: import_zod5.z.string().nullable().optional(),
1304
+ default_kms: import_zod5.z.string().nullable().optional(),
1305
+ kms_list: import_zod5.z.array(import_zod5.z.string()).default([])
1093
1306
  }).passthrough();
1094
- var ResourceThresholdSchema = import_zod4.z.object({
1095
- max_instances: import_zod4.z.number().nullable().optional(),
1096
- max_vcpu: import_zod4.z.number().nullable().optional(),
1097
- max_memory: import_zod4.z.number().nullable().optional(),
1098
- max_disk: import_zod4.z.number().nullable().optional()
1307
+ var ResourceThresholdSchema = import_zod5.z.object({
1308
+ max_instances: import_zod5.z.number().nullable().optional(),
1309
+ max_vcpu: import_zod5.z.number().nullable().optional(),
1310
+ max_memory: import_zod5.z.number().nullable().optional(),
1311
+ max_disk: import_zod5.z.number().nullable().optional()
1099
1312
  }).passthrough();
1100
- var AvailableNodesSchema = import_zod4.z.object({
1101
- tier: import_zod4.z.string(),
1313
+ var AvailableNodesSchema = import_zod5.z.object({
1314
+ tier: import_zod5.z.string(),
1102
1315
  // TeamTier is string enum
1103
1316
  capacity: ResourceThresholdSchema,
1104
- nodes: import_zod4.z.array(TeepodCapacitySchema),
1105
- kms_list: import_zod4.z.array(KmsInfoSchema)
1317
+ nodes: import_zod5.z.array(TeepodCapacitySchema),
1318
+ kms_list: import_zod5.z.array(KmsInfoSchema)
1106
1319
  }).passthrough();
1107
1320
  var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSimpleAction(
1108
1321
  AvailableNodesSchema,
@@ -1112,33 +1325,33 @@ var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSim
1112
1325
  );
1113
1326
 
1114
1327
  // src/actions/list-instance-types.ts
1115
- var import_zod5 = require("zod");
1116
- var InstanceTypeSchema = import_zod5.z.object({
1117
- id: import_zod5.z.string(),
1118
- name: import_zod5.z.string(),
1119
- description: import_zod5.z.string(),
1120
- vcpu: import_zod5.z.number(),
1121
- memory_mb: import_zod5.z.number(),
1122
- hourly_rate: import_zod5.z.string(),
1123
- requires_gpu: import_zod5.z.boolean(),
1124
- default_disk_size_gb: import_zod5.z.number().default(20),
1125
- family: import_zod5.z.string().nullable()
1328
+ var import_zod6 = require("zod");
1329
+ var InstanceTypeSchema = import_zod6.z.object({
1330
+ id: import_zod6.z.string(),
1331
+ name: import_zod6.z.string(),
1332
+ description: import_zod6.z.string(),
1333
+ vcpu: import_zod6.z.number(),
1334
+ memory_mb: import_zod6.z.number(),
1335
+ hourly_rate: import_zod6.z.string(),
1336
+ requires_gpu: import_zod6.z.boolean(),
1337
+ default_disk_size_gb: import_zod6.z.number().default(20),
1338
+ family: import_zod6.z.string().nullable()
1126
1339
  }).passthrough();
1127
- var FamilyGroupSchema = import_zod5.z.object({
1128
- name: import_zod5.z.string(),
1129
- items: import_zod5.z.array(InstanceTypeSchema),
1130
- total: import_zod5.z.number()
1340
+ var FamilyGroupSchema = import_zod6.z.object({
1341
+ name: import_zod6.z.string(),
1342
+ items: import_zod6.z.array(InstanceTypeSchema),
1343
+ total: import_zod6.z.number()
1131
1344
  }).strict();
1132
- var AllFamiliesResponseSchema = import_zod5.z.object({
1133
- result: import_zod5.z.array(FamilyGroupSchema)
1345
+ var AllFamiliesResponseSchema = import_zod6.z.object({
1346
+ result: import_zod6.z.array(FamilyGroupSchema)
1134
1347
  }).strict();
1135
- var FamilyInstanceTypesResponseSchema = import_zod5.z.object({
1136
- items: import_zod5.z.array(InstanceTypeSchema),
1137
- total: import_zod5.z.number(),
1138
- family: import_zod5.z.string()
1348
+ var FamilyInstanceTypesResponseSchema = import_zod6.z.object({
1349
+ items: import_zod6.z.array(InstanceTypeSchema),
1350
+ total: import_zod6.z.number(),
1351
+ family: import_zod6.z.string()
1139
1352
  }).strict();
1140
- var ListFamilyInstanceTypesRequestSchema = import_zod5.z.object({
1141
- family: import_zod5.z.string()
1353
+ var ListFamilyInstanceTypesRequestSchema = import_zod6.z.object({
1354
+ family: import_zod6.z.string()
1142
1355
  }).strict();
1143
1356
  var { action: listAllInstanceTypeFamilies, safeAction: safeListAllInstanceTypeFamilies } = defineAction(
1144
1357
  AllFamiliesResponseSchema,
@@ -1152,22 +1365,22 @@ var { action: listFamilyInstanceTypes, safeAction: safeListFamilyInstanceTypes }
1152
1365
  });
1153
1366
 
1154
1367
  // src/actions/workspaces/list_workspaces.ts
1155
- var import_zod6 = require("zod");
1156
- var WorkspaceResponseSchema = import_zod6.z.object({
1157
- id: import_zod6.z.string(),
1158
- name: import_zod6.z.string(),
1159
- slug: import_zod6.z.string().nullable(),
1160
- tier: import_zod6.z.string(),
1161
- role: import_zod6.z.string(),
1162
- created_at: import_zod6.z.string()
1368
+ var import_zod7 = require("zod");
1369
+ var WorkspaceResponseSchema = import_zod7.z.object({
1370
+ id: import_zod7.z.string(),
1371
+ name: import_zod7.z.string(),
1372
+ slug: import_zod7.z.string().nullable(),
1373
+ tier: import_zod7.z.string(),
1374
+ role: import_zod7.z.string(),
1375
+ created_at: import_zod7.z.string()
1163
1376
  }).passthrough();
1164
- var PaginationMetadataSchema = import_zod6.z.object({
1165
- has_more: import_zod6.z.boolean(),
1166
- next_cursor: import_zod6.z.string().nullable(),
1167
- total: import_zod6.z.number().nullable()
1377
+ var PaginationMetadataSchema = import_zod7.z.object({
1378
+ has_more: import_zod7.z.boolean(),
1379
+ next_cursor: import_zod7.z.string().nullable(),
1380
+ total: import_zod7.z.number().nullable()
1168
1381
  }).passthrough();
1169
- var ListWorkspacesSchema = import_zod6.z.object({
1170
- data: import_zod6.z.array(WorkspaceResponseSchema),
1382
+ var ListWorkspacesSchema = import_zod7.z.object({
1383
+ data: import_zod7.z.array(WorkspaceResponseSchema),
1171
1384
  pagination: PaginationMetadataSchema
1172
1385
  }).passthrough();
1173
1386
  var { action: listWorkspaces, safeAction: safeListWorkspaces } = defineAction(ListWorkspacesSchema, async (client, request) => {
@@ -1183,196 +1396,393 @@ var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(Worksp
1183
1396
  return await client.get(`/workspaces/${teamSlug}`);
1184
1397
  });
1185
1398
 
1186
- // src/types/cvm_info.ts
1187
- var import_zod7 = require("zod");
1188
- var VmInfoSchema = import_zod7.z.object({
1189
- id: import_zod7.z.string(),
1190
- name: import_zod7.z.string(),
1191
- status: import_zod7.z.string(),
1192
- uptime: import_zod7.z.string(),
1193
- app_url: import_zod7.z.string().nullable(),
1194
- app_id: import_zod7.z.string(),
1195
- instance_id: import_zod7.z.string().nullable(),
1196
- configuration: import_zod7.z.any().optional(),
1197
- // TODO: add VmConfiguration schema if needed
1198
- exited_at: import_zod7.z.string().nullable(),
1199
- boot_progress: import_zod7.z.string().nullable(),
1200
- boot_error: import_zod7.z.string().nullable(),
1201
- shutdown_progress: import_zod7.z.string().nullable(),
1202
- image_version: import_zod7.z.string().nullable()
1203
- });
1204
- var ManagedUserSchema = import_zod7.z.object({
1205
- id: import_zod7.z.number(),
1206
- username: import_zod7.z.string()
1207
- });
1208
- var CvmNodeSchema = import_zod7.z.object({
1209
- id: import_zod7.z.number(),
1210
- name: import_zod7.z.string(),
1211
- region_identifier: import_zod7.z.string().nullable().optional()
1399
+ // src/types/cvm_info_v20251028.ts
1400
+ var import_zod8 = require("zod");
1401
+ var VmInfoV20251028Schema = import_zod8.z.object({
1402
+ id: import_zod8.z.string(),
1403
+ name: import_zod8.z.string(),
1404
+ status: import_zod8.z.string(),
1405
+ uptime: import_zod8.z.string(),
1406
+ app_url: import_zod8.z.string().nullable(),
1407
+ app_id: import_zod8.z.string(),
1408
+ instance_id: import_zod8.z.string().nullable(),
1409
+ configuration: import_zod8.z.any().optional(),
1410
+ exited_at: import_zod8.z.string().nullable(),
1411
+ boot_progress: import_zod8.z.string().nullable(),
1412
+ boot_error: import_zod8.z.string().nullable(),
1413
+ shutdown_progress: import_zod8.z.string().nullable(),
1414
+ image_version: import_zod8.z.string().nullable()
1212
1415
  });
1213
- var CvmNetworkUrlsSchema = import_zod7.z.object({
1214
- app: import_zod7.z.string(),
1215
- instance: import_zod7.z.string()
1416
+ var ManagedUserV20251028Schema = import_zod8.z.object({
1417
+ id: import_zod8.z.number(),
1418
+ username: import_zod8.z.string()
1216
1419
  });
1217
- var CvmInfoSchema = import_zod7.z.object({
1218
- hosted: VmInfoSchema,
1219
- name: import_zod7.z.string(),
1220
- managed_user: ManagedUserSchema.nullable(),
1221
- node: CvmNodeSchema.nullable(),
1222
- listed: import_zod7.z.boolean().default(false),
1223
- status: import_zod7.z.string(),
1224
- in_progress: import_zod7.z.boolean().default(false),
1225
- dapp_dashboard_url: import_zod7.z.string().nullable(),
1226
- syslog_endpoint: import_zod7.z.string().nullable(),
1227
- allow_upgrade: import_zod7.z.boolean().default(false),
1228
- project_id: import_zod7.z.string().nullable(),
1229
- // HashedId is represented as string in JS
1230
- project_type: import_zod7.z.string().nullable(),
1231
- billing_period: import_zod7.z.string().nullable(),
1420
+ var CvmNodeV20251028Schema = import_zod8.z.object({
1421
+ id: import_zod8.z.number(),
1422
+ name: import_zod8.z.string(),
1423
+ region_identifier: import_zod8.z.string().nullable().optional()
1424
+ });
1425
+ var MachineInfoV20251028Schema = import_zod8.z.object({
1426
+ vcpu: import_zod8.z.number(),
1427
+ memory: import_zod8.z.number(),
1428
+ disk_size: import_zod8.z.number(),
1429
+ gpu_count: import_zod8.z.number().default(0)
1430
+ });
1431
+ var CvmNetworkUrlsV20251028Schema = import_zod8.z.object({
1432
+ app: import_zod8.z.string(),
1433
+ instance: import_zod8.z.string()
1434
+ });
1435
+ var CvmInfoV20251028Schema = import_zod8.z.object({
1436
+ hosted: VmInfoV20251028Schema,
1437
+ name: import_zod8.z.string(),
1438
+ managed_user: ManagedUserV20251028Schema.nullable(),
1439
+ node: CvmNodeV20251028Schema.nullable(),
1440
+ listed: import_zod8.z.boolean().default(false),
1441
+ status: import_zod8.z.string(),
1442
+ in_progress: import_zod8.z.boolean().default(false),
1443
+ dapp_dashboard_url: import_zod8.z.string().nullable(),
1444
+ syslog_endpoint: import_zod8.z.string().nullable(),
1445
+ allow_upgrade: import_zod8.z.boolean().default(false),
1446
+ project_id: import_zod8.z.string().nullable(),
1447
+ project_type: import_zod8.z.string().nullable(),
1448
+ billing_period: import_zod8.z.string().nullable(),
1232
1449
  kms_info: KmsInfoSchema.nullable(),
1233
- vcpu: import_zod7.z.number().nullable(),
1234
- memory: import_zod7.z.number().nullable(),
1235
- disk_size: import_zod7.z.number().nullable(),
1236
- gateway_domain: import_zod7.z.string().nullable(),
1237
- public_urls: import_zod7.z.array(CvmNetworkUrlsSchema)
1238
- });
1239
- var CvmLegacyDetailSchema = import_zod7.z.object({
1240
- id: import_zod7.z.number(),
1241
- name: import_zod7.z.string(),
1242
- status: import_zod7.z.string(),
1243
- in_progress: import_zod7.z.boolean().optional().default(false),
1244
- teepod_id: import_zod7.z.number().nullable(),
1245
- teepod: CvmNodeSchema.optional().nullable(),
1246
- app_id: import_zod7.z.string(),
1247
- vm_uuid: import_zod7.z.string().nullable(),
1248
- instance_id: import_zod7.z.string().nullable(),
1249
- vcpu: import_zod7.z.number(),
1250
- memory: import_zod7.z.number(),
1251
- disk_size: import_zod7.z.number(),
1252
- base_image: import_zod7.z.string().nullable(),
1253
- encrypted_env_pubkey: import_zod7.z.string().nullable(),
1254
- listed: import_zod7.z.boolean().optional().default(false),
1255
- project_id: import_zod7.z.string().optional().nullable(),
1256
- project_type: import_zod7.z.string().optional().nullable(),
1257
- public_sysinfo: import_zod7.z.boolean().optional().default(false),
1258
- public_logs: import_zod7.z.boolean().optional().default(false),
1259
- dapp_dashboard_url: import_zod7.z.string().optional().nullable(),
1260
- syslog_endpoint: import_zod7.z.string().optional().nullable(),
1450
+ vcpu: import_zod8.z.number().nullable(),
1451
+ memory: import_zod8.z.number().nullable(),
1452
+ disk_size: import_zod8.z.number().nullable(),
1453
+ gateway_domain: import_zod8.z.string().nullable(),
1454
+ public_urls: import_zod8.z.array(CvmNetworkUrlsV20251028Schema),
1455
+ machine_info: MachineInfoV20251028Schema.nullable().optional(),
1456
+ updated_at: import_zod8.z.string().nullable().optional()
1457
+ });
1458
+ var CvmDetailV20251028Schema = import_zod8.z.object({
1459
+ id: import_zod8.z.number(),
1460
+ name: import_zod8.z.string(),
1461
+ status: import_zod8.z.string(),
1462
+ in_progress: import_zod8.z.boolean().optional().default(false),
1463
+ teepod_id: import_zod8.z.number().nullable(),
1464
+ teepod: CvmNodeV20251028Schema.optional().nullable(),
1465
+ app_id: import_zod8.z.string(),
1466
+ vm_uuid: import_zod8.z.string().nullable(),
1467
+ instance_id: import_zod8.z.string().nullable(),
1468
+ vcpu: import_zod8.z.number(),
1469
+ memory: import_zod8.z.number(),
1470
+ disk_size: import_zod8.z.number(),
1471
+ base_image: import_zod8.z.string().nullable(),
1472
+ encrypted_env_pubkey: import_zod8.z.string().nullable(),
1473
+ listed: import_zod8.z.boolean().optional().default(false),
1474
+ project_id: import_zod8.z.string().optional().nullable(),
1475
+ project_type: import_zod8.z.string().optional().nullable(),
1476
+ instance_type: import_zod8.z.string().optional().nullable(),
1477
+ public_sysinfo: import_zod8.z.boolean().optional().default(false),
1478
+ public_logs: import_zod8.z.boolean().optional().default(false),
1479
+ dapp_dashboard_url: import_zod8.z.string().optional().nullable(),
1480
+ syslog_endpoint: import_zod8.z.string().optional().nullable(),
1261
1481
  kms_info: KmsInfoSchema.optional().nullable(),
1262
- contract_address: import_zod7.z.string().optional().nullable(),
1263
- deployer_address: import_zod7.z.string().optional().nullable(),
1264
- scheduled_delete_at: import_zod7.z.string().optional().nullable(),
1265
- public_urls: import_zod7.z.array(CvmNetworkUrlsSchema).optional().default([]),
1266
- gateway_domain: import_zod7.z.string().optional().nullable()
1267
- });
1268
- var VMSchema = import_zod7.z.object({
1269
- id: import_zod7.z.number(),
1270
- name: import_zod7.z.string(),
1271
- status: import_zod7.z.string(),
1272
- teepod_id: import_zod7.z.number(),
1273
- teepod: CvmNodeSchema.optional().nullable(),
1274
- user_id: import_zod7.z.number().optional().nullable(),
1275
- app_id: import_zod7.z.string(),
1276
- vm_uuid: import_zod7.z.string().nullable(),
1277
- instance_id: import_zod7.z.string().nullable(),
1278
- app_url: import_zod7.z.string().optional().nullable(),
1279
- base_image: import_zod7.z.string().nullable(),
1280
- vcpu: import_zod7.z.number(),
1281
- memory: import_zod7.z.number(),
1282
- disk_size: import_zod7.z.number(),
1283
- manifest_version: import_zod7.z.number().optional().nullable(),
1284
- version: import_zod7.z.string().optional().nullable(),
1285
- runner: import_zod7.z.string().optional().nullable(),
1286
- docker_compose_file: import_zod7.z.string().optional().nullable(),
1287
- features: import_zod7.z.array(import_zod7.z.string()).optional().nullable(),
1288
- created_at: import_zod7.z.string(),
1289
- // datetime serialized as ISO string
1290
- encrypted_env_pubkey: import_zod7.z.string().nullable()
1482
+ contract_address: import_zod8.z.string().optional().nullable(),
1483
+ deployer_address: import_zod8.z.string().optional().nullable(),
1484
+ scheduled_delete_at: import_zod8.z.string().optional().nullable(),
1485
+ public_urls: import_zod8.z.array(CvmNetworkUrlsV20251028Schema).optional().default([]),
1486
+ gateway_domain: import_zod8.z.string().optional().nullable(),
1487
+ machine_info: MachineInfoV20251028Schema.optional().nullable(),
1488
+ updated_at: import_zod8.z.string().optional().nullable()
1489
+ });
1490
+ var PaginatedCvmInfosV20251028Schema = import_zod8.z.object({
1491
+ items: import_zod8.z.array(CvmInfoV20251028Schema),
1492
+ total: import_zod8.z.number(),
1493
+ page: import_zod8.z.number(),
1494
+ page_size: import_zod8.z.number(),
1495
+ pages: import_zod8.z.number()
1496
+ });
1497
+
1498
+ // src/types/cvm_info_v20260121.ts
1499
+ var import_zod9 = require("zod");
1500
+ var BillingPeriodSchema = import_zod9.z.enum(["skip", "hourly", "monthly"]);
1501
+ var KmsTypeSchema = import_zod9.z.enum(["phala", "ethereum", "base", "legacy"]);
1502
+ var UserRefSchema = import_zod9.z.object({
1503
+ object_type: import_zod9.z.literal("user"),
1504
+ id: import_zod9.z.string().nullable().optional(),
1505
+ username: import_zod9.z.string().nullable().optional(),
1506
+ avatar_url: import_zod9.z.string().nullable().optional()
1507
+ });
1508
+ var WorkspaceRefSchema = import_zod9.z.object({
1509
+ object_type: import_zod9.z.literal("workspace"),
1510
+ id: import_zod9.z.string(),
1511
+ name: import_zod9.z.string(),
1512
+ slug: import_zod9.z.string().nullable().optional(),
1513
+ avatar_url: import_zod9.z.string().nullable().optional()
1514
+ });
1515
+ var CvmResourceInfoV20260121Schema = import_zod9.z.object({
1516
+ instance_type: import_zod9.z.string().nullable().optional(),
1517
+ vcpu: import_zod9.z.number().int().nullable().optional(),
1518
+ memory_in_gb: import_zod9.z.number().nullable().optional(),
1519
+ disk_in_gb: import_zod9.z.number().int().nullable().optional(),
1520
+ gpus: import_zod9.z.number().int().nullable().optional(),
1521
+ compute_billing_price: import_zod9.z.string().nullable().optional(),
1522
+ billing_period: BillingPeriodSchema.nullable().optional()
1523
+ });
1524
+ var CvmOsInfoV20260121Schema = import_zod9.z.object({
1525
+ name: import_zod9.z.string().nullable().optional(),
1526
+ version: import_zod9.z.string().nullable().optional(),
1527
+ is_dev: import_zod9.z.boolean().nullable().optional(),
1528
+ os_image_hash: import_zod9.z.string().nullable().optional()
1529
+ });
1530
+ var CvmKmsInfoV20260121Schema = import_zod9.z.object({
1531
+ chain_id: import_zod9.z.number().int().nullable().optional(),
1532
+ dstack_kms_address: import_zod9.z.string().nullable().optional(),
1533
+ dstack_app_address: import_zod9.z.string().nullable().optional(),
1534
+ deployer_address: import_zod9.z.string().nullable().optional(),
1535
+ rpc_endpoint: import_zod9.z.string().nullable().optional(),
1536
+ encrypted_env_pubkey: import_zod9.z.string().nullable().optional()
1537
+ });
1538
+ var CvmProgressInfoV20260121Schema = import_zod9.z.object({
1539
+ target: import_zod9.z.string().nullable().optional(),
1540
+ started_at: import_zod9.z.string().nullable().optional(),
1541
+ correlation_id: import_zod9.z.string().nullable().optional()
1542
+ });
1543
+ var CvmGatewayInfoV20260121Schema = import_zod9.z.object({
1544
+ base_domain: import_zod9.z.string().nullable().optional(),
1545
+ cname: import_zod9.z.string().nullable().optional()
1546
+ });
1547
+ var CvmNodeInfoV20260121Schema = import_zod9.z.object({
1548
+ name: import_zod9.z.string().nullable().optional(),
1549
+ region: import_zod9.z.string().nullable().optional(),
1550
+ device_id: import_zod9.z.string().nullable().optional(),
1551
+ ppid: import_zod9.z.string().nullable().optional(),
1552
+ status: import_zod9.z.string().nullable().optional(),
1553
+ version: import_zod9.z.string().nullable().optional()
1554
+ });
1555
+ var CvmInfoV20260121Schema = import_zod9.z.object({
1556
+ id: import_zod9.z.string(),
1557
+ // hashed CvmId
1558
+ name: import_zod9.z.string(),
1559
+ app_id: import_zod9.z.string().nullable().optional(),
1560
+ vm_uuid: import_zod9.z.string().nullable().optional(),
1561
+ resource: CvmResourceInfoV20260121Schema,
1562
+ node_info: CvmNodeInfoV20260121Schema.nullable().optional(),
1563
+ os: CvmOsInfoV20260121Schema.nullable().optional(),
1564
+ kms_type: KmsTypeSchema.nullable().optional(),
1565
+ kms_info: CvmKmsInfoV20260121Schema.nullable().optional(),
1566
+ status: import_zod9.z.string(),
1567
+ progress: CvmProgressInfoV20260121Schema.nullable().optional(),
1568
+ compose_hash: import_zod9.z.string().nullable().optional(),
1569
+ gateway: CvmGatewayInfoV20260121Schema,
1570
+ services: import_zod9.z.array(import_zod9.z.record(import_zod9.z.any())).optional().default([]),
1571
+ endpoints: import_zod9.z.array(CvmNetworkUrlsV20251028Schema).nullable().optional(),
1572
+ public_logs: import_zod9.z.boolean().optional(),
1573
+ public_sysinfo: import_zod9.z.boolean().optional(),
1574
+ public_tcbinfo: import_zod9.z.boolean().optional(),
1575
+ gateway_enabled: import_zod9.z.boolean().optional(),
1576
+ secure_time: import_zod9.z.boolean().optional(),
1577
+ storage_fs: import_zod9.z.string().optional(),
1578
+ workspace: WorkspaceRefSchema.nullable().optional(),
1579
+ creator: UserRefSchema.nullable().optional()
1580
+ });
1581
+ var CvmInfoDetailV20260121Schema = CvmInfoV20260121Schema.extend({
1582
+ compose_file: import_zod9.z.union([import_zod9.z.record(import_zod9.z.any()), import_zod9.z.string()]).nullable().optional()
1583
+ });
1584
+ var PaginatedCvmInfosV20260121Schema = import_zod9.z.object({
1585
+ items: import_zod9.z.array(CvmInfoV20260121Schema),
1586
+ total: import_zod9.z.number(),
1587
+ page: import_zod9.z.number(),
1588
+ page_size: import_zod9.z.number(),
1589
+ pages: import_zod9.z.number()
1291
1590
  });
1292
1591
 
1293
1592
  // src/types/cvm_id.ts
1294
- var import_zod8 = require("zod");
1295
- var CvmIdObjectSchema = import_zod8.z.object({
1296
- /** Direct CVM ID (any format) */
1297
- id: import_zod8.z.string().optional(),
1593
+ var import_zod10 = require("zod");
1594
+
1595
+ // src/utils/hostname.ts
1596
+ function isValidHostname(name) {
1597
+ if (typeof name !== "string" || name.length < 5 || name.length > 63) {
1598
+ return false;
1599
+ }
1600
+ return /^[a-zA-Z](?!.*--)([a-zA-Z0-9-]*[a-zA-Z0-9])?$/.test(name);
1601
+ }
1602
+ function convertToHostname(input) {
1603
+ if (typeof input !== "string") {
1604
+ return generateFallbackHostname();
1605
+ }
1606
+ let result = input;
1607
+ result = result.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
1608
+ result = result.replace(/_/g, "-");
1609
+ result = result.replace(/[^a-z0-9\s-]/gi, "-").replace(/\s+/g, "-");
1610
+ result = result.replace(/-+/g, "-").replace(/^-+/, "").replace(/-+$/, "");
1611
+ if (result.length === 0) {
1612
+ return generateFallbackHostname();
1613
+ }
1614
+ if (/^\d/.test(result)) {
1615
+ result = `dstack-app-${result}`;
1616
+ }
1617
+ if (result.length < 5) {
1618
+ result = `dstack-app-${result}`;
1619
+ }
1620
+ result = result.slice(0, 63).replace(/-+$/, "");
1621
+ if (result.length === 0) {
1622
+ return generateFallbackHostname();
1623
+ }
1624
+ if (!isValidHostname(result)) {
1625
+ return generateFallbackHostname();
1626
+ }
1627
+ return result;
1628
+ }
1629
+ function generateFallbackHostname() {
1630
+ const timestamp = Date.now().toString(36);
1631
+ const random = Math.random().toString(36).substring(2, 6);
1632
+ return `dstack-app-${timestamp}-${random}`;
1633
+ }
1634
+ function generateDefaultCvmName(prefix = "dstack-app") {
1635
+ const random = Array.from(
1636
+ { length: 5 },
1637
+ () => "abcdefghijklmnopqrstuvwxyz0123456789"[Math.floor(Math.random() * 36)]
1638
+ ).join("");
1639
+ const result = `${prefix}-${random}`;
1640
+ if (result.length > 63) {
1641
+ const shortRandom = Array.from(
1642
+ { length: 3 },
1643
+ () => "abcdefghijklmnopqrstuvwxyz0123456789"[Math.floor(Math.random() * 36)]
1644
+ ).join("");
1645
+ return `${prefix.slice(0, 55)}-${shortRandom}`;
1646
+ }
1647
+ return result;
1648
+ }
1649
+
1650
+ // src/types/cvm_id.ts
1651
+ var CvmIdObjectSchema = import_zod10.z.object({
1652
+ /** Direct CVM ID (any format) - accepts any string including names */
1653
+ id: import_zod10.z.string().optional(),
1298
1654
  /** UUID format (with or without dashes) */
1299
- uuid: import_zod8.z.string().regex(
1655
+ uuid: import_zod10.z.string().regex(
1300
1656
  /^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i,
1301
1657
  "Invalid UUID format"
1302
1658
  ).optional(),
1303
1659
  /** App ID (40 characters, optionally prefixed with 'app_id_') */
1304
- app_id: import_zod8.z.string().optional(),
1660
+ app_id: import_zod10.z.string().optional(),
1305
1661
  /** Instance ID (40 characters, optionally prefixed with 'instance_') */
1306
- instance_id: import_zod8.z.string().optional()
1662
+ instance_id: import_zod10.z.string().optional(),
1663
+ /** CVM name (RFC 1123 hostname format: 5-63 chars, starts with letter, alphanumeric + hyphens) */
1664
+ name: import_zod10.z.string().refine(isValidHostname, {
1665
+ message: "Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens"
1666
+ }).optional()
1307
1667
  });
1308
1668
  var refineCvmId = (schema) => schema.refine(
1309
1669
  (data) => {
1310
1670
  const obj = data;
1311
- return !!(obj.id || obj.uuid || obj.app_id || obj.instance_id);
1671
+ return !!(obj.id || obj.uuid || obj.app_id || obj.instance_id || obj.name);
1312
1672
  },
1313
1673
  {
1314
- message: "One of id, uuid, app_id, or instance_id must be provided"
1674
+ message: "One of id, uuid, app_id, instance_id, or name must be provided"
1315
1675
  }
1316
1676
  );
1317
1677
  var CvmIdBaseSchema = refineCvmId(CvmIdObjectSchema);
1318
1678
  var CvmIdSchema = CvmIdBaseSchema.transform((data) => {
1319
- let cvmId;
1679
+ let rawValue;
1320
1680
  if (data.id) {
1321
- cvmId = data.id;
1681
+ rawValue = data.id;
1322
1682
  } else if (data.uuid) {
1323
- cvmId = data.uuid.replace(/-/g, "");
1683
+ rawValue = data.uuid;
1324
1684
  } else if (data.app_id) {
1325
- cvmId = data.app_id.startsWith("app_") ? data.app_id : `app_${data.app_id}`;
1685
+ rawValue = data.app_id;
1326
1686
  } else if (data.instance_id) {
1327
- cvmId = data.instance_id.startsWith("instance_") ? data.instance_id : `instance_${data.instance_id}`;
1687
+ rawValue = data.instance_id;
1688
+ } else if (data.name) {
1689
+ return { cvmId: data.name };
1328
1690
  } else {
1329
1691
  throw new Error("No valid identifier provided");
1330
1692
  }
1693
+ const uuidRegex = /^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i;
1694
+ const appIdRegex = /^[0-9a-f]{40}$/i;
1695
+ let cvmId;
1696
+ if (uuidRegex.test(rawValue)) {
1697
+ cvmId = rawValue.replace(/-/g, "");
1698
+ } else if (appIdRegex.test(rawValue)) {
1699
+ cvmId = `app_${rawValue}`;
1700
+ } else {
1701
+ cvmId = rawValue;
1702
+ }
1331
1703
  return { cvmId };
1332
1704
  });
1333
1705
 
1334
1706
  // src/actions/cvms/get_cvm_info.ts
1335
1707
  var GetCvmInfoRequestSchema = CvmIdSchema;
1336
- var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
1708
+ function getSchemaForVersion2(version) {
1709
+ return version === "2025-10-28" ? CvmDetailV20251028Schema : CvmInfoDetailV20260121Schema;
1710
+ }
1711
+ async function getCvmInfo(client, request) {
1337
1712
  const { cvmId } = GetCvmInfoRequestSchema.parse(request);
1338
- return await client.get(`/cvms/${cvmId}`);
1339
- });
1713
+ const response = await client.get(`/cvms/${cvmId}`);
1714
+ const schema = getSchemaForVersion2(client.config.version);
1715
+ return schema.parse(response);
1716
+ }
1717
+ async function safeGetCvmInfo(client, request) {
1718
+ try {
1719
+ const data = await getCvmInfo(client, request);
1720
+ return { success: true, data };
1721
+ } catch (error) {
1722
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
1723
+ return { success: false, error };
1724
+ }
1725
+ return {
1726
+ success: false,
1727
+ error: {
1728
+ name: "Error",
1729
+ message: error instanceof Error ? error.message : String(error)
1730
+ }
1731
+ };
1732
+ }
1733
+ }
1340
1734
 
1341
1735
  // src/actions/cvms/get_cvm_list.ts
1342
- var import_zod9 = require("zod");
1343
- var GetCvmListRequestSchema = import_zod9.z.object({
1344
- page: import_zod9.z.number().int().min(1).optional(),
1345
- page_size: import_zod9.z.number().int().min(1).optional(),
1346
- node_id: import_zod9.z.number().int().min(1).optional(),
1347
- teepod_id: import_zod9.z.number().int().min(1).optional(),
1348
- user_id: import_zod9.z.string().optional()
1349
- }).strict();
1350
- var GetCvmListSchema = import_zod9.z.object({
1351
- items: import_zod9.z.array(CvmInfoSchema),
1352
- total: import_zod9.z.number(),
1353
- page: import_zod9.z.number(),
1354
- page_size: import_zod9.z.number(),
1355
- pages: import_zod9.z.number()
1736
+ var import_zod11 = require("zod");
1737
+ var GetCvmListRequestSchema = import_zod11.z.object({
1738
+ page: import_zod11.z.number().int().min(1).optional(),
1739
+ page_size: import_zod11.z.number().int().min(1).optional(),
1740
+ node_id: import_zod11.z.number().int().min(1).optional(),
1741
+ teepod_id: import_zod11.z.number().int().min(1).optional(),
1742
+ user_id: import_zod11.z.string().optional()
1356
1743
  }).strict();
1357
- var { action: getCvmList, safeAction: safeGetCvmList } = defineAction(GetCvmListSchema, async (client, request) => {
1744
+ function getSchemaForVersion3(version) {
1745
+ return version === "2025-10-28" ? PaginatedCvmInfosV20251028Schema : PaginatedCvmInfosV20260121Schema;
1746
+ }
1747
+ async function getCvmList(client, request) {
1358
1748
  const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
1359
- return await client.get("/cvms/paginated", { params: validatedRequest });
1360
- });
1749
+ const response = await client.get("/cvms/paginated", { params: validatedRequest });
1750
+ const schema = getSchemaForVersion3(client.config.version);
1751
+ return schema.parse(response);
1752
+ }
1753
+ async function safeGetCvmList(client, request) {
1754
+ try {
1755
+ const data = await getCvmList(client, request);
1756
+ return { success: true, data };
1757
+ } catch (error) {
1758
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
1759
+ return { success: false, error };
1760
+ }
1761
+ return {
1762
+ success: false,
1763
+ error: {
1764
+ name: "Error",
1765
+ message: error instanceof Error ? error.message : String(error)
1766
+ }
1767
+ };
1768
+ }
1769
+ }
1361
1770
 
1362
1771
  // src/actions/cvms/provision_cvm.ts
1363
- var import_zod10 = require("zod");
1364
- var ProvisionCvmSchema = import_zod10.z.object({
1365
- app_id: import_zod10.z.string().nullable().optional(),
1366
- app_env_encrypt_pubkey: import_zod10.z.string().nullable().optional(),
1367
- compose_hash: import_zod10.z.string(),
1368
- fmspc: import_zod10.z.string().nullable().optional(),
1369
- device_id: import_zod10.z.string().nullable().optional(),
1370
- os_image_hash: import_zod10.z.string().nullable().optional(),
1371
- instance_type: import_zod10.z.string().nullable().optional(),
1372
- teepod_id: import_zod10.z.number().nullable().optional(),
1772
+ var import_zod12 = require("zod");
1773
+ var ProvisionCvmSchema = import_zod12.z.object({
1774
+ app_id: import_zod12.z.string().nullable().optional(),
1775
+ app_env_encrypt_pubkey: import_zod12.z.string().nullable().optional(),
1776
+ compose_hash: import_zod12.z.string(),
1777
+ kms_info: KmsInfoSchema.nullable().optional(),
1778
+ fmspc: import_zod12.z.string().nullable().optional(),
1779
+ device_id: import_zod12.z.string().nullable().optional(),
1780
+ os_image_hash: import_zod12.z.string().nullable().optional(),
1781
+ instance_type: import_zod12.z.string().nullable().optional(),
1782
+ teepod_id: import_zod12.z.number().nullable().optional(),
1373
1783
  // Will be transformed to node_id
1374
- node_id: import_zod10.z.number().nullable().optional(),
1375
- kms_id: import_zod10.z.string().nullable().optional()
1784
+ node_id: import_zod12.z.number().nullable().optional(),
1785
+ kms_id: import_zod12.z.string().nullable().optional()
1376
1786
  }).passthrough().transform((data) => {
1377
1787
  if ("teepod_id" in data && data.teepod_id !== void 0) {
1378
1788
  const { teepod_id, ...rest } = data;
@@ -1380,47 +1790,55 @@ var ProvisionCvmSchema = import_zod10.z.object({
1380
1790
  }
1381
1791
  return data;
1382
1792
  });
1383
- var ProvisionCvmRequestSchema = import_zod10.z.object({
1384
- node_id: import_zod10.z.number().optional(),
1793
+ var NAME_VALIDATION_MESSAGE = "Name must be 5-63 characters, start with letter, and contain only letters/numbers/hyphens";
1794
+ var ProvisionCvmRequestSchema = import_zod12.z.object({
1795
+ node_id: import_zod12.z.number().optional(),
1385
1796
  // recommended - optional, system auto-selects if not specified
1386
- teepod_id: import_zod10.z.number().optional(),
1797
+ teepod_id: import_zod12.z.number().optional(),
1387
1798
  // deprecated, for compatibility
1388
- region: import_zod10.z.string().optional(),
1799
+ region: import_zod12.z.string().optional(),
1389
1800
  // optional - region filter for auto-selection
1390
- name: import_zod10.z.string(),
1391
- instance_type: import_zod10.z.string().default("tdx.small"),
1392
- // defaults to "tdx.small"
1393
- image: import_zod10.z.string().optional(),
1394
- vcpu: import_zod10.z.number().optional(),
1395
- memory: import_zod10.z.number().optional(),
1396
- disk_size: import_zod10.z.number().optional(),
1397
- compose_file: import_zod10.z.object({
1398
- allowed_envs: import_zod10.z.array(import_zod10.z.string()).optional(),
1399
- pre_launch_script: import_zod10.z.string().optional(),
1400
- docker_compose_file: import_zod10.z.string().optional(),
1401
- name: import_zod10.z.string().optional().default(""),
1801
+ name: import_zod12.z.string().min(5, NAME_VALIDATION_MESSAGE).max(63, NAME_VALIDATION_MESSAGE).refine((val) => isValidHostname(val), NAME_VALIDATION_MESSAGE),
1802
+ instance_type: import_zod12.z.string().optional(),
1803
+ // optional, defaults to "tdx.small" when no resource params specified
1804
+ image: import_zod12.z.string().optional(),
1805
+ vcpu: import_zod12.z.number().optional(),
1806
+ // deprecated, use instance_type instead
1807
+ memory: import_zod12.z.number().optional(),
1808
+ // deprecated, use instance_type instead
1809
+ disk_size: import_zod12.z.number().optional(),
1810
+ compose_file: import_zod12.z.object({
1811
+ allowed_envs: import_zod12.z.array(import_zod12.z.string()).optional(),
1812
+ pre_launch_script: import_zod12.z.string().optional(),
1813
+ docker_compose_file: import_zod12.z.string().optional(),
1814
+ name: import_zod12.z.string().optional().default(""),
1402
1815
  // optional with default empty string
1403
- kms_enabled: import_zod10.z.boolean().optional(),
1404
- public_logs: import_zod10.z.boolean().optional(),
1405
- public_sysinfo: import_zod10.z.boolean().optional(),
1406
- gateway_enabled: import_zod10.z.boolean().optional(),
1816
+ kms_enabled: import_zod12.z.boolean().optional(),
1817
+ public_logs: import_zod12.z.boolean().optional(),
1818
+ public_sysinfo: import_zod12.z.boolean().optional(),
1819
+ gateway_enabled: import_zod12.z.boolean().optional(),
1407
1820
  // recommended
1408
- tproxy_enabled: import_zod10.z.boolean().optional()
1821
+ tproxy_enabled: import_zod12.z.boolean().optional()
1409
1822
  // deprecated, for compatibility
1410
1823
  }),
1411
- listed: import_zod10.z.boolean().optional(),
1412
- kms_id: import_zod10.z.string().optional(),
1413
- kms: import_zod10.z.enum(["PHALA", "ETHEREUM", "BASE"]).optional(),
1824
+ listed: import_zod12.z.boolean().optional(),
1825
+ kms_id: import_zod12.z.string().optional(),
1826
+ kms: import_zod12.z.enum(["PHALA", "ETHEREUM", "BASE"]).optional(),
1414
1827
  // KMS type selection (defaults to PHALA)
1415
- kms_contract: import_zod10.z.string().optional(),
1828
+ kms_contract: import_zod12.z.string().optional(),
1416
1829
  // KMS contract address for on-chain KMS
1417
- env_keys: import_zod10.z.array(import_zod10.z.string()).optional(),
1830
+ env_keys: import_zod12.z.array(import_zod12.z.string()).optional(),
1418
1831
  // Manual nonce specification (Advanced - PHALA KMS only)
1419
- nonce: import_zod10.z.number().optional(),
1832
+ nonce: import_zod12.z.number().optional(),
1420
1833
  // User-specified nonce for deterministic app_id generation
1421
- app_id: import_zod10.z.string().optional()
1834
+ app_id: import_zod12.z.string().optional()
1422
1835
  // Expected app_id (must match calculated app_id from nonce)
1423
- }).passthrough();
1836
+ }).passthrough().transform((data) => {
1837
+ if (!data.instance_type && !data.vcpu && !data.memory) {
1838
+ return { ...data, instance_type: "tdx.small" };
1839
+ }
1840
+ return data;
1841
+ });
1424
1842
  function handleGatewayCompatibility(appCompose) {
1425
1843
  if (!appCompose.compose_file) {
1426
1844
  return appCompose;
@@ -1456,63 +1874,64 @@ var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(Provis
1456
1874
  });
1457
1875
 
1458
1876
  // src/actions/cvms/commit_cvm_provision.ts
1459
- var import_zod11 = require("zod");
1460
- var CommitCvmProvisionSchema = import_zod11.z.object({
1461
- id: import_zod11.z.number(),
1462
- name: import_zod11.z.string(),
1463
- status: import_zod11.z.string(),
1464
- teepod_id: import_zod11.z.number(),
1465
- teepod: import_zod11.z.object({
1466
- id: import_zod11.z.number(),
1467
- name: import_zod11.z.string()
1877
+ var import_zod13 = require("zod");
1878
+ var CommitCvmProvisionSchema = import_zod13.z.object({
1879
+ id: import_zod13.z.number(),
1880
+ name: import_zod13.z.string(),
1881
+ status: import_zod13.z.string(),
1882
+ teepod_id: import_zod13.z.number(),
1883
+ teepod: import_zod13.z.object({
1884
+ id: import_zod13.z.number(),
1885
+ name: import_zod13.z.string()
1468
1886
  }).nullable(),
1469
- user_id: import_zod11.z.number().nullable(),
1470
- app_id: import_zod11.z.string().nullable(),
1471
- vm_uuid: import_zod11.z.string().nullable(),
1472
- instance_id: import_zod11.z.string().nullable(),
1473
- app_url: import_zod11.z.string().nullable(),
1474
- base_image: import_zod11.z.string().nullable(),
1475
- vcpu: import_zod11.z.number(),
1476
- memory: import_zod11.z.number(),
1477
- disk_size: import_zod11.z.number(),
1478
- manifest_version: import_zod11.z.number().nullable(),
1479
- version: import_zod11.z.string().nullable(),
1480
- runner: import_zod11.z.string().nullable(),
1481
- docker_compose_file: import_zod11.z.string().nullable(),
1482
- features: import_zod11.z.array(import_zod11.z.string()).nullable(),
1483
- created_at: import_zod11.z.string(),
1484
- encrypted_env_pubkey: import_zod11.z.string().nullable().optional(),
1485
- app_auth_contract_address: import_zod11.z.string().nullable().optional(),
1486
- deployer_address: import_zod11.z.string().nullable().optional()
1887
+ user_id: import_zod13.z.number().nullable(),
1888
+ app_id: import_zod13.z.string().nullable(),
1889
+ vm_uuid: import_zod13.z.string().nullable(),
1890
+ instance_id: import_zod13.z.string().nullable(),
1891
+ // Deprecated fields - will be removed in next API version
1892
+ app_url: import_zod13.z.string().nullable().default(null),
1893
+ base_image: import_zod13.z.string().nullable(),
1894
+ vcpu: import_zod13.z.number(),
1895
+ memory: import_zod13.z.number(),
1896
+ disk_size: import_zod13.z.number(),
1897
+ manifest_version: import_zod13.z.number().nullable().default(2),
1898
+ version: import_zod13.z.string().nullable().default("1.0.0"),
1899
+ runner: import_zod13.z.string().nullable().default("docker-compose"),
1900
+ docker_compose_file: import_zod13.z.string().nullable(),
1901
+ features: import_zod13.z.array(import_zod13.z.string()).nullable().default(["kms", "tproxy-net"]),
1902
+ created_at: import_zod13.z.string(),
1903
+ encrypted_env_pubkey: import_zod13.z.string().nullable().optional(),
1904
+ app_auth_contract_address: import_zod13.z.string().nullable().optional(),
1905
+ deployer_address: import_zod13.z.string().nullable().optional()
1487
1906
  }).passthrough();
1488
- var CommitCvmProvisionRequestSchema = import_zod11.z.object({
1489
- encrypted_env: import_zod11.z.string().optional().nullable(),
1490
- app_id: import_zod11.z.string(),
1491
- compose_hash: import_zod11.z.string(),
1492
- kms_id: import_zod11.z.string().optional(),
1493
- contract_address: import_zod11.z.string().optional(),
1494
- deployer_address: import_zod11.z.string().optional(),
1495
- env_keys: import_zod11.z.array(import_zod11.z.string()).optional().nullable()
1907
+ var CommitCvmProvisionRequestSchema = import_zod13.z.object({
1908
+ encrypted_env: import_zod13.z.string().optional().nullable(),
1909
+ app_id: import_zod13.z.string(),
1910
+ compose_hash: import_zod13.z.string(),
1911
+ kms_id: import_zod13.z.string().optional(),
1912
+ contract_address: import_zod13.z.string().optional(),
1913
+ deployer_address: import_zod13.z.string().optional(),
1914
+ env_keys: import_zod13.z.array(import_zod13.z.string()).optional().nullable()
1496
1915
  }).passthrough();
1497
1916
  var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineAction(CommitCvmProvisionSchema, async (client, payload) => {
1498
1917
  return await client.post("/cvms", payload);
1499
1918
  });
1500
1919
 
1501
1920
  // src/types/app_compose.ts
1502
- var import_zod12 = require("zod");
1503
- var LooseAppComposeSchema = import_zod12.z.object({
1504
- allowed_envs: import_zod12.z.array(import_zod12.z.string()).optional(),
1505
- docker_compose_file: import_zod12.z.string(),
1506
- features: import_zod12.z.array(import_zod12.z.string()).optional(),
1507
- name: import_zod12.z.string().optional(),
1508
- manifest_version: import_zod12.z.number().optional(),
1509
- kms_enabled: import_zod12.z.boolean().optional(),
1510
- public_logs: import_zod12.z.boolean().optional(),
1511
- public_sysinfo: import_zod12.z.boolean().optional(),
1512
- tproxy_enabled: import_zod12.z.boolean().optional(),
1513
- pre_launch_script: import_zod12.z.string().optional(),
1514
- env_pubkey: import_zod12.z.string().optional(),
1515
- salt: import_zod12.z.string().optional().nullable()
1921
+ var import_zod14 = require("zod");
1922
+ var LooseAppComposeSchema = import_zod14.z.object({
1923
+ allowed_envs: import_zod14.z.array(import_zod14.z.string()).optional(),
1924
+ docker_compose_file: import_zod14.z.string(),
1925
+ features: import_zod14.z.array(import_zod14.z.string()).optional(),
1926
+ name: import_zod14.z.string().optional(),
1927
+ manifest_version: import_zod14.z.number().optional(),
1928
+ kms_enabled: import_zod14.z.boolean().optional(),
1929
+ public_logs: import_zod14.z.boolean().optional(),
1930
+ public_sysinfo: import_zod14.z.boolean().optional(),
1931
+ tproxy_enabled: import_zod14.z.boolean().optional(),
1932
+ pre_launch_script: import_zod14.z.string().optional(),
1933
+ env_pubkey: import_zod14.z.string().optional(),
1934
+ salt: import_zod14.z.string().optional().nullable()
1516
1935
  }).passthrough();
1517
1936
 
1518
1937
  // src/utils/get_compose_hash.ts
@@ -1575,20 +1994,20 @@ var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAct
1575
1994
  });
1576
1995
 
1577
1996
  // src/actions/cvms/provision_cvm_compose_file_update.ts
1578
- var import_zod13 = require("zod");
1579
- var ProvisionCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
1580
- id: import_zod13.z.string().optional(),
1581
- 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(),
1582
- app_id: import_zod13.z.string().refine(
1997
+ var import_zod15 = require("zod");
1998
+ var ProvisionCvmComposeFileUpdateRequestSchema = import_zod15.z.object({
1999
+ id: import_zod15.z.string().optional(),
2000
+ 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(),
2001
+ app_id: import_zod15.z.string().refine(
1583
2002
  (val) => !val.startsWith("app_") && val.length === 40,
1584
2003
  "app_id should be 40 characters without prefix"
1585
2004
  ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
1586
- instance_id: import_zod13.z.string().refine(
2005
+ instance_id: import_zod15.z.string().refine(
1587
2006
  (val) => !val.startsWith("instance_") && val.length === 40,
1588
2007
  "instance_id should be 40 characters without prefix"
1589
2008
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
1590
2009
  app_compose: LooseAppComposeSchema,
1591
- update_env_vars: import_zod13.z.boolean().optional().nullable()
2010
+ update_env_vars: import_zod15.z.boolean().optional().nullable()
1592
2011
  }).refine(
1593
2012
  (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1594
2013
  "One of id, uuid, app_id, or instance_id must be provided"
@@ -1599,10 +2018,10 @@ var ProvisionCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
1599
2018
  _raw: data
1600
2019
  };
1601
2020
  });
1602
- var ProvisionCvmComposeFileUpdateResultSchema = import_zod13.z.object({
1603
- app_id: import_zod13.z.string().nullable(),
1604
- device_id: import_zod13.z.string().nullable(),
1605
- compose_hash: import_zod13.z.string(),
2021
+ var ProvisionCvmComposeFileUpdateResultSchema = import_zod15.z.object({
2022
+ app_id: import_zod15.z.string().nullable(),
2023
+ device_id: import_zod15.z.string().nullable(),
2024
+ compose_hash: import_zod15.z.string(),
1606
2025
  kms_info: KmsInfoSchema.nullable().optional()
1607
2026
  }).passthrough();
1608
2027
  var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
@@ -1614,22 +2033,22 @@ var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmCompose
1614
2033
  });
1615
2034
 
1616
2035
  // src/actions/cvms/commit_cvm_compose_file_update.ts
1617
- var import_zod14 = require("zod");
1618
- var CommitCvmComposeFileUpdateRequestSchema = import_zod14.z.object({
1619
- id: import_zod14.z.string().optional(),
1620
- 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(),
1621
- app_id: import_zod14.z.string().refine(
2036
+ var import_zod16 = require("zod");
2037
+ var CommitCvmComposeFileUpdateRequestSchema = import_zod16.z.object({
2038
+ id: import_zod16.z.string().optional(),
2039
+ uuid: import_zod16.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(),
2040
+ app_id: import_zod16.z.string().refine(
1622
2041
  (val) => !val.startsWith("app_") && val.length === 40,
1623
2042
  "app_id should be 40 characters without prefix"
1624
2043
  ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
1625
- instance_id: import_zod14.z.string().refine(
2044
+ instance_id: import_zod16.z.string().refine(
1626
2045
  (val) => !val.startsWith("instance_") && val.length === 40,
1627
2046
  "instance_id should be 40 characters without prefix"
1628
2047
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
1629
- compose_hash: import_zod14.z.string().min(1, "Compose hash is required"),
1630
- encrypted_env: import_zod14.z.string().optional(),
1631
- env_keys: import_zod14.z.array(import_zod14.z.string()).optional(),
1632
- update_env_vars: import_zod14.z.boolean().optional().nullable()
2048
+ compose_hash: import_zod16.z.string().min(1, "Compose hash is required"),
2049
+ encrypted_env: import_zod16.z.string().optional(),
2050
+ env_keys: import_zod16.z.array(import_zod16.z.string()).optional(),
2051
+ update_env_vars: import_zod16.z.boolean().optional().nullable()
1633
2052
  }).refine(
1634
2053
  (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1635
2054
  "One of id, uuid, app_id, or instance_id must be provided"
@@ -1638,10 +2057,10 @@ var CommitCvmComposeFileUpdateRequestSchema = import_zod14.z.object({
1638
2057
  compose_hash: data.compose_hash,
1639
2058
  encrypted_env: data.encrypted_env,
1640
2059
  env_keys: data.env_keys,
1641
- update_env_vars: !!data.update_env_vars,
2060
+ update_env_vars: data.update_env_vars ?? void 0,
1642
2061
  _raw: data
1643
2062
  }));
1644
- var CommitCvmComposeFileUpdateSchema = import_zod14.z.any().transform(() => void 0);
2063
+ var CommitCvmComposeFileUpdateSchema = import_zod16.z.any().transform(() => void 0);
1645
2064
  var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
1646
2065
  CommitCvmComposeFileUpdateSchema,
1647
2066
  async (client, request) => {
@@ -1649,15 +2068,241 @@ var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUp
1649
2068
  return await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
1650
2069
  compose_hash: validatedRequest.compose_hash,
1651
2070
  encrypted_env: validatedRequest.encrypted_env,
1652
- env_keys: validatedRequest.env_keys
2071
+ env_keys: validatedRequest.env_keys,
2072
+ update_env_vars: validatedRequest.update_env_vars
1653
2073
  });
1654
2074
  }
1655
2075
  );
1656
2076
 
2077
+ // src/actions/cvms/update_cvm_envs.ts
2078
+ var import_zod17 = require("zod");
2079
+ var UpdateCvmEnvsRequestSchema = refineCvmId(
2080
+ CvmIdObjectSchema.extend({
2081
+ encrypted_env: import_zod17.z.string().describe("Encrypted environment variables (hex string)"),
2082
+ env_keys: import_zod17.z.array(import_zod17.z.string()).optional().describe("List of allowed environment variable keys"),
2083
+ compose_hash: import_zod17.z.string().optional().describe("Compose hash for verification (Phase 2, required when env_keys changes)"),
2084
+ transaction_hash: import_zod17.z.string().optional().describe(
2085
+ "On-chain transaction hash for verification (Phase 2, required when env_keys changes)"
2086
+ )
2087
+ })
2088
+ ).transform((data) => {
2089
+ const { cvmId } = CvmIdSchema.parse(data);
2090
+ return {
2091
+ cvmId,
2092
+ request: {
2093
+ encrypted_env: data.encrypted_env,
2094
+ env_keys: data.env_keys,
2095
+ compose_hash: data.compose_hash,
2096
+ transaction_hash: data.transaction_hash
2097
+ },
2098
+ _raw: data
2099
+ };
2100
+ });
2101
+ var UpdateCvmEnvsInProgressSchema = import_zod17.z.object({
2102
+ status: import_zod17.z.literal("in_progress"),
2103
+ message: import_zod17.z.string(),
2104
+ correlation_id: import_zod17.z.string(),
2105
+ allowed_envs_changed: import_zod17.z.boolean()
2106
+ });
2107
+ var UpdateCvmEnvsPreconditionRequiredSchema = import_zod17.z.object({
2108
+ status: import_zod17.z.literal("precondition_required"),
2109
+ message: import_zod17.z.string(),
2110
+ compose_hash: import_zod17.z.string(),
2111
+ app_id: import_zod17.z.string(),
2112
+ device_id: import_zod17.z.string(),
2113
+ kms_info: KmsInfoSchema
2114
+ });
2115
+ var UpdateCvmEnvsResultSchema = import_zod17.z.union([
2116
+ UpdateCvmEnvsInProgressSchema,
2117
+ UpdateCvmEnvsPreconditionRequiredSchema
2118
+ ]);
2119
+ var { action: updateCvmEnvs, safeAction: safeUpdateCvmEnvs } = defineAction(UpdateCvmEnvsResultSchema, async (client, request) => {
2120
+ const validatedRequest = UpdateCvmEnvsRequestSchema.parse(request);
2121
+ try {
2122
+ const response = await client.patch(
2123
+ `/cvms/${validatedRequest.cvmId}/envs`,
2124
+ validatedRequest.request
2125
+ );
2126
+ return response;
2127
+ } catch (error) {
2128
+ if (error instanceof PhalaCloudError && error.status === 465) {
2129
+ const detail = error.detail;
2130
+ if (detail && typeof detail === "object") {
2131
+ const detailObj = detail;
2132
+ return {
2133
+ status: "precondition_required",
2134
+ message: detailObj.message || "Compose hash verification required",
2135
+ compose_hash: detailObj.compose_hash,
2136
+ app_id: detailObj.app_id,
2137
+ device_id: detailObj.device_id,
2138
+ kms_info: detailObj.kms_info
2139
+ };
2140
+ }
2141
+ }
2142
+ throw error;
2143
+ }
2144
+ });
2145
+
2146
+ // src/actions/cvms/update_docker_compose.ts
2147
+ var import_zod18 = require("zod");
2148
+ var UpdateDockerComposeRequestSchema = refineCvmId(
2149
+ CvmIdObjectSchema.extend({
2150
+ docker_compose_file: import_zod18.z.string().describe("Docker Compose YAML content"),
2151
+ compose_hash: import_zod18.z.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),
2152
+ transaction_hash: import_zod18.z.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")
2153
+ })
2154
+ ).transform((data) => {
2155
+ const { cvmId } = CvmIdSchema.parse(data);
2156
+ return {
2157
+ cvmId,
2158
+ request: {
2159
+ docker_compose_file: data.docker_compose_file,
2160
+ compose_hash: data.compose_hash,
2161
+ transaction_hash: data.transaction_hash
2162
+ },
2163
+ _raw: data
2164
+ };
2165
+ });
2166
+ var UpdateDockerComposeInProgressSchema = import_zod18.z.object({
2167
+ status: import_zod18.z.literal("in_progress"),
2168
+ message: import_zod18.z.string(),
2169
+ correlation_id: import_zod18.z.string()
2170
+ });
2171
+ var UpdateDockerComposePreconditionRequiredSchema = import_zod18.z.object({
2172
+ status: import_zod18.z.literal("precondition_required"),
2173
+ message: import_zod18.z.string(),
2174
+ compose_hash: import_zod18.z.string(),
2175
+ app_id: import_zod18.z.string(),
2176
+ device_id: import_zod18.z.string(),
2177
+ kms_info: KmsInfoSchema
2178
+ });
2179
+ var UpdateDockerComposeResultSchema = import_zod18.z.union([
2180
+ UpdateDockerComposeInProgressSchema,
2181
+ UpdateDockerComposePreconditionRequiredSchema
2182
+ ]);
2183
+ var { action: updateDockerCompose, safeAction: safeUpdateDockerCompose } = defineAction(UpdateDockerComposeResultSchema, async (client, request) => {
2184
+ const validatedRequest = UpdateDockerComposeRequestSchema.parse(request);
2185
+ const headers = {
2186
+ "Content-Type": "text/yaml"
2187
+ };
2188
+ if (validatedRequest.request.compose_hash) {
2189
+ headers["X-Compose-Hash"] = validatedRequest.request.compose_hash;
2190
+ }
2191
+ if (validatedRequest.request.transaction_hash) {
2192
+ headers["X-Transaction-Hash"] = validatedRequest.request.transaction_hash;
2193
+ }
2194
+ try {
2195
+ const response = await client.patch(
2196
+ `/cvms/${validatedRequest.cvmId}/docker-compose`,
2197
+ validatedRequest.request.docker_compose_file,
2198
+ { headers }
2199
+ );
2200
+ return response;
2201
+ } catch (error) {
2202
+ if (error instanceof PhalaCloudError && error.status === 465) {
2203
+ const detail = error.detail;
2204
+ if (detail && typeof detail === "object") {
2205
+ const detailObj = detail;
2206
+ return {
2207
+ status: "precondition_required",
2208
+ message: detailObj.message || "Compose hash verification required",
2209
+ compose_hash: detailObj.compose_hash,
2210
+ app_id: detailObj.app_id,
2211
+ device_id: detailObj.device_id,
2212
+ kms_info: detailObj.kms_info
2213
+ };
2214
+ }
2215
+ }
2216
+ throw error;
2217
+ }
2218
+ });
2219
+
2220
+ // src/actions/cvms/update_prelaunch_script.ts
2221
+ var import_zod19 = require("zod");
2222
+ var UpdatePreLaunchScriptRequestSchema = refineCvmId(
2223
+ CvmIdObjectSchema.extend({
2224
+ pre_launch_script: import_zod19.z.string().describe("Pre-launch script content (shell script)"),
2225
+ compose_hash: import_zod19.z.string().optional().describe("Compose hash for verification (Phase 2, contract-owned KMS only)"),
2226
+ transaction_hash: import_zod19.z.string().optional().describe("On-chain transaction hash for verification (Phase 2, contract-owned KMS only)")
2227
+ })
2228
+ ).transform((data) => {
2229
+ const { cvmId } = CvmIdSchema.parse(data);
2230
+ return {
2231
+ cvmId,
2232
+ request: {
2233
+ pre_launch_script: data.pre_launch_script,
2234
+ compose_hash: data.compose_hash,
2235
+ transaction_hash: data.transaction_hash
2236
+ },
2237
+ _raw: data
2238
+ };
2239
+ });
2240
+ var UpdatePreLaunchScriptInProgressSchema = import_zod19.z.object({
2241
+ status: import_zod19.z.literal("in_progress"),
2242
+ message: import_zod19.z.string(),
2243
+ correlation_id: import_zod19.z.string()
2244
+ });
2245
+ var UpdatePreLaunchScriptPreconditionRequiredSchema = import_zod19.z.object({
2246
+ status: import_zod19.z.literal("precondition_required"),
2247
+ message: import_zod19.z.string(),
2248
+ compose_hash: import_zod19.z.string(),
2249
+ app_id: import_zod19.z.string(),
2250
+ device_id: import_zod19.z.string(),
2251
+ kms_info: KmsInfoSchema
2252
+ });
2253
+ var UpdatePreLaunchScriptResultSchema = import_zod19.z.union([
2254
+ UpdatePreLaunchScriptInProgressSchema,
2255
+ UpdatePreLaunchScriptPreconditionRequiredSchema
2256
+ ]);
2257
+ var { action: updatePreLaunchScript, safeAction: safeUpdatePreLaunchScript } = defineAction(UpdatePreLaunchScriptResultSchema, async (client, request) => {
2258
+ const validatedRequest = UpdatePreLaunchScriptRequestSchema.parse(request);
2259
+ const headers = {
2260
+ "Content-Type": "text/plain"
2261
+ };
2262
+ if (validatedRequest.request.compose_hash) {
2263
+ headers["X-Compose-Hash"] = validatedRequest.request.compose_hash;
2264
+ }
2265
+ if (validatedRequest.request.transaction_hash) {
2266
+ headers["X-Transaction-Hash"] = validatedRequest.request.transaction_hash;
2267
+ }
2268
+ try {
2269
+ const response = await client.patch(
2270
+ `/cvms/${validatedRequest.cvmId}/pre-launch-script`,
2271
+ validatedRequest.request.pre_launch_script,
2272
+ { headers }
2273
+ );
2274
+ return response;
2275
+ } catch (error) {
2276
+ if (error instanceof PhalaCloudError && error.status === 465) {
2277
+ const detail = error.detail;
2278
+ if (detail && typeof detail === "object") {
2279
+ const detailObj = detail;
2280
+ return {
2281
+ status: "precondition_required",
2282
+ message: detailObj.message || "Compose hash verification required",
2283
+ compose_hash: detailObj.compose_hash,
2284
+ app_id: detailObj.app_id,
2285
+ device_id: detailObj.device_id,
2286
+ kms_info: detailObj.kms_info
2287
+ };
2288
+ }
2289
+ }
2290
+ throw error;
2291
+ }
2292
+ });
2293
+
2294
+ // src/actions/cvms/get_cvm_prelaunch_script.ts
2295
+ var import_zod20 = require("zod");
2296
+ var GetCvmPreLaunchScriptRequestSchema = CvmIdSchema;
2297
+ var { action: getCvmPreLaunchScript, safeAction: safeGetCvmPreLaunchScript } = defineAction(import_zod20.z.string(), async (client, request) => {
2298
+ const { cvmId } = GetCvmPreLaunchScriptRequestSchema.parse(request);
2299
+ return await client.get(`/cvms/${cvmId}/pre-launch-script`);
2300
+ });
2301
+
1657
2302
  // src/actions/kms/get_kms_info.ts
1658
- var import_zod15 = require("zod");
1659
- var GetKmsInfoRequestSchema = import_zod15.z.object({
1660
- kms_id: import_zod15.z.string().min(1, "KMS ID is required")
2303
+ var import_zod21 = require("zod");
2304
+ var GetKmsInfoRequestSchema = import_zod21.z.object({
2305
+ kms_id: import_zod21.z.string().min(1, "KMS ID is required")
1661
2306
  });
1662
2307
  var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
1663
2308
  const validatedRequest = GetKmsInfoRequestSchema.parse(request);
@@ -1665,18 +2310,18 @@ var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSch
1665
2310
  });
1666
2311
 
1667
2312
  // src/actions/kms/get_kms_list.ts
1668
- var import_zod16 = require("zod");
1669
- var GetKmsListRequestSchema = import_zod16.z.object({
1670
- page: import_zod16.z.number().int().min(1).optional(),
1671
- page_size: import_zod16.z.number().int().min(1).optional(),
1672
- is_onchain: import_zod16.z.boolean().optional()
2313
+ var import_zod22 = require("zod");
2314
+ var GetKmsListRequestSchema = import_zod22.z.object({
2315
+ page: import_zod22.z.number().int().min(1).optional(),
2316
+ page_size: import_zod22.z.number().int().min(1).optional(),
2317
+ is_onchain: import_zod22.z.boolean().optional()
1673
2318
  }).strict();
1674
- var GetKmsListSchema = import_zod16.z.object({
1675
- items: import_zod16.z.array(KmsInfoSchema),
1676
- total: import_zod16.z.number(),
1677
- page: import_zod16.z.number(),
1678
- page_size: import_zod16.z.number(),
1679
- pages: import_zod16.z.number()
2319
+ var GetKmsListSchema = import_zod22.z.object({
2320
+ items: import_zod22.z.array(KmsInfoSchema),
2321
+ total: import_zod22.z.number(),
2322
+ page: import_zod22.z.number(),
2323
+ page_size: import_zod22.z.number(),
2324
+ pages: import_zod22.z.number()
1680
2325
  }).strict();
1681
2326
  var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
1682
2327
  const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
@@ -1684,17 +2329,17 @@ var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsList
1684
2329
  });
1685
2330
 
1686
2331
  // src/actions/kms/get_app_env_encrypt_pubkey.ts
1687
- var import_zod17 = require("zod");
1688
- var GetAppEnvEncryptPubKeyRequestSchema = import_zod17.z.object({
1689
- kms: import_zod17.z.string().min(1, "KMS ID or slug is required"),
1690
- app_id: import_zod17.z.string().refine(
2332
+ var import_zod23 = require("zod");
2333
+ var GetAppEnvEncryptPubKeyRequestSchema = import_zod23.z.object({
2334
+ kms: import_zod23.z.string().min(1, "KMS ID or slug is required"),
2335
+ app_id: import_zod23.z.string().refine(
1691
2336
  (val) => val.length === 40 || val.startsWith("0x") && val.length === 42,
1692
2337
  "App ID must be exactly 40 characters or 42 characters with 0x prefix"
1693
2338
  )
1694
2339
  }).strict();
1695
- var GetAppEnvEncryptPubKeySchema = import_zod17.z.object({
1696
- public_key: import_zod17.z.string(),
1697
- signature: import_zod17.z.string()
2340
+ var GetAppEnvEncryptPubKeySchema = import_zod23.z.object({
2341
+ public_key: import_zod23.z.string(),
2342
+ signature: import_zod23.z.string()
1698
2343
  }).strict();
1699
2344
  var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
1700
2345
  const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
@@ -1702,15 +2347,15 @@ var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } =
1702
2347
  });
1703
2348
 
1704
2349
  // src/actions/kms/next_app_ids.ts
1705
- var import_zod18 = require("zod");
1706
- var NextAppIdsRequestSchema = import_zod18.z.object({
1707
- counts: import_zod18.z.number().int().min(1).max(20).optional().default(1)
2350
+ var import_zod24 = require("zod");
2351
+ var NextAppIdsRequestSchema = import_zod24.z.object({
2352
+ counts: import_zod24.z.number().int().min(1).max(20).optional().default(1)
1708
2353
  }).strict();
1709
- var NextAppIdsSchema = import_zod18.z.object({
1710
- app_ids: import_zod18.z.array(
1711
- import_zod18.z.object({
1712
- app_id: import_zod18.z.string(),
1713
- nonce: import_zod18.z.number().int().min(0)
2354
+ var NextAppIdsSchema = import_zod24.z.object({
2355
+ app_ids: import_zod24.z.array(
2356
+ import_zod24.z.object({
2357
+ app_id: import_zod24.z.string(),
2358
+ nonce: import_zod24.z.number().int().min(0)
1714
2359
  })
1715
2360
  )
1716
2361
  }).strict();
@@ -1721,6 +2366,36 @@ var { action: nextAppIds, safeAction: safeNextAppIds } = defineAction(NextAppIds
1721
2366
  return await client.get(`/kms/phala/next_app_id?${params.toString()}`);
1722
2367
  });
1723
2368
 
2369
+ // src/types/cvm_info.ts
2370
+ var import_zod25 = require("zod");
2371
+ var VMSchema = import_zod25.z.object({
2372
+ id: import_zod25.z.number(),
2373
+ name: import_zod25.z.string(),
2374
+ status: import_zod25.z.string(),
2375
+ teepod_id: import_zod25.z.number(),
2376
+ teepod: import_zod25.z.object({
2377
+ id: import_zod25.z.number(),
2378
+ name: import_zod25.z.string(),
2379
+ region_identifier: import_zod25.z.string().nullable().optional()
2380
+ }).optional().nullable(),
2381
+ user_id: import_zod25.z.number().optional().nullable(),
2382
+ app_id: import_zod25.z.string(),
2383
+ vm_uuid: import_zod25.z.string().nullable(),
2384
+ instance_id: import_zod25.z.string().nullable(),
2385
+ app_url: import_zod25.z.string().optional().nullable(),
2386
+ base_image: import_zod25.z.string().nullable(),
2387
+ vcpu: import_zod25.z.number(),
2388
+ memory: import_zod25.z.number(),
2389
+ disk_size: import_zod25.z.number(),
2390
+ manifest_version: import_zod25.z.number().optional().nullable(),
2391
+ version: import_zod25.z.string().optional().nullable(),
2392
+ runner: import_zod25.z.string().optional().nullable(),
2393
+ docker_compose_file: import_zod25.z.string().optional().nullable(),
2394
+ features: import_zod25.z.array(import_zod25.z.string()).optional().nullable(),
2395
+ created_at: import_zod25.z.string(),
2396
+ encrypted_env_pubkey: import_zod25.z.string().nullable()
2397
+ });
2398
+
1724
2399
  // src/actions/cvms/start_cvm.ts
1725
2400
  var StartCvmRequestSchema = CvmIdSchema;
1726
2401
  var { action: startCvm, safeAction: safeStartCvm } = defineAction(VMSchema, async (client, request) => {
@@ -1746,10 +2421,10 @@ var { action: shutdownCvm, safeAction: safeShutdownCvm } = defineAction(VMSchema
1746
2421
  });
1747
2422
 
1748
2423
  // src/actions/cvms/restart_cvm.ts
1749
- var import_zod19 = require("zod");
2424
+ var import_zod26 = require("zod");
1750
2425
  var RestartCvmRequestSchema = refineCvmId(
1751
2426
  CvmIdObjectSchema.extend({
1752
- force: import_zod19.z.boolean().optional()
2427
+ force: import_zod26.z.boolean().optional()
1753
2428
  })
1754
2429
  );
1755
2430
  var { action: restartCvm, safeAction: safeRestartCvm } = defineAction(VMSchema, async (client, request) => {
@@ -1760,10 +2435,10 @@ var { action: restartCvm, safeAction: safeRestartCvm } = defineAction(VMSchema,
1760
2435
  });
1761
2436
 
1762
2437
  // src/actions/cvms/delete_cvm.ts
1763
- var import_zod20 = require("zod");
2438
+ var import_zod27 = require("zod");
1764
2439
  var DeleteCvmRequestSchema = CvmIdSchema;
1765
2440
  var { action: deleteCvm, safeAction: safeDeleteCvm } = defineAction(
1766
- import_zod20.z.void(),
2441
+ import_zod27.z.void(),
1767
2442
  async (client, request) => {
1768
2443
  const { cvmId } = DeleteCvmRequestSchema.parse(request);
1769
2444
  await client.delete(`/cvms/${cvmId}`);
@@ -1772,41 +2447,41 @@ var { action: deleteCvm, safeAction: safeDeleteCvm } = defineAction(
1772
2447
  );
1773
2448
 
1774
2449
  // src/actions/cvms/get_cvm_stats.ts
1775
- var import_zod21 = require("zod");
1776
- var DiskInfoSchema = import_zod21.z.object({
1777
- name: import_zod21.z.string(),
1778
- mount_point: import_zod21.z.string(),
1779
- total_size: import_zod21.z.number(),
1780
- free_size: import_zod21.z.number()
1781
- });
1782
- var SystemInfoSchema = import_zod21.z.object({
1783
- os_name: import_zod21.z.string(),
1784
- os_version: import_zod21.z.string(),
1785
- kernel_version: import_zod21.z.string(),
1786
- cpu_model: import_zod21.z.string(),
1787
- num_cpus: import_zod21.z.number(),
1788
- total_memory: import_zod21.z.number(),
1789
- available_memory: import_zod21.z.number(),
1790
- used_memory: import_zod21.z.number(),
1791
- free_memory: import_zod21.z.number(),
1792
- total_swap: import_zod21.z.number(),
1793
- used_swap: import_zod21.z.number(),
1794
- free_swap: import_zod21.z.number(),
1795
- uptime: import_zod21.z.number(),
1796
- loadavg_one: import_zod21.z.number(),
1797
- loadavg_five: import_zod21.z.number(),
1798
- loadavg_fifteen: import_zod21.z.number(),
1799
- disks: import_zod21.z.array(DiskInfoSchema)
1800
- });
1801
- var CvmSystemInfoSchema = import_zod21.z.object({
1802
- is_online: import_zod21.z.boolean(),
1803
- is_public: import_zod21.z.boolean().default(false),
1804
- error: import_zod21.z.string().nullable(),
2450
+ var import_zod28 = require("zod");
2451
+ var DiskInfoSchema = import_zod28.z.object({
2452
+ name: import_zod28.z.string(),
2453
+ mount_point: import_zod28.z.string(),
2454
+ total_size: import_zod28.z.number(),
2455
+ free_size: import_zod28.z.number()
2456
+ });
2457
+ var SystemInfoSchema = import_zod28.z.object({
2458
+ os_name: import_zod28.z.string(),
2459
+ os_version: import_zod28.z.string(),
2460
+ kernel_version: import_zod28.z.string(),
2461
+ cpu_model: import_zod28.z.string(),
2462
+ num_cpus: import_zod28.z.number(),
2463
+ total_memory: import_zod28.z.number(),
2464
+ available_memory: import_zod28.z.number(),
2465
+ used_memory: import_zod28.z.number(),
2466
+ free_memory: import_zod28.z.number(),
2467
+ total_swap: import_zod28.z.number(),
2468
+ used_swap: import_zod28.z.number(),
2469
+ free_swap: import_zod28.z.number(),
2470
+ uptime: import_zod28.z.number(),
2471
+ loadavg_one: import_zod28.z.number(),
2472
+ loadavg_five: import_zod28.z.number(),
2473
+ loadavg_fifteen: import_zod28.z.number(),
2474
+ disks: import_zod28.z.array(DiskInfoSchema)
2475
+ });
2476
+ var CvmSystemInfoSchema = import_zod28.z.object({
2477
+ is_online: import_zod28.z.boolean(),
2478
+ is_public: import_zod28.z.boolean().default(false),
2479
+ error: import_zod28.z.string().nullable(),
1805
2480
  sysinfo: SystemInfoSchema.nullable(),
1806
- status: import_zod21.z.string().nullable(),
1807
- in_progress: import_zod21.z.boolean().default(false),
1808
- boot_progress: import_zod21.z.string().nullable(),
1809
- boot_error: import_zod21.z.string().nullable()
2481
+ status: import_zod28.z.string().nullable(),
2482
+ in_progress: import_zod28.z.boolean().default(false),
2483
+ boot_progress: import_zod28.z.string().nullable(),
2484
+ boot_error: import_zod28.z.string().nullable()
1810
2485
  });
1811
2486
  var GetCvmStatsRequestSchema = CvmIdSchema;
1812
2487
  var { action: getCvmStats, safeAction: safeGetCvmStats } = defineAction(CvmSystemInfoSchema, async (client, request) => {
@@ -1815,18 +2490,18 @@ var { action: getCvmStats, safeAction: safeGetCvmStats } = defineAction(CvmSyste
1815
2490
  });
1816
2491
 
1817
2492
  // src/actions/cvms/get_cvm_network.ts
1818
- var import_zod22 = require("zod");
1819
- var CvmNetworkUrlsSchema2 = import_zod22.z.object({
1820
- app: import_zod22.z.string(),
1821
- instance: import_zod22.z.string()
1822
- });
1823
- var CvmNetworkSchema = import_zod22.z.object({
1824
- is_online: import_zod22.z.boolean(),
1825
- is_public: import_zod22.z.boolean().default(true),
1826
- error: import_zod22.z.string().nullable(),
1827
- internal_ip: import_zod22.z.string().nullable(),
1828
- latest_handshake: import_zod22.z.string().nullable(),
1829
- public_urls: import_zod22.z.array(CvmNetworkUrlsSchema2).nullable()
2493
+ var import_zod29 = require("zod");
2494
+ var CvmNetworkUrlsSchema = import_zod29.z.object({
2495
+ app: import_zod29.z.string(),
2496
+ instance: import_zod29.z.string()
2497
+ });
2498
+ var CvmNetworkSchema = import_zod29.z.object({
2499
+ is_online: import_zod29.z.boolean(),
2500
+ is_public: import_zod29.z.boolean().default(true),
2501
+ error: import_zod29.z.string().nullable(),
2502
+ internal_ip: import_zod29.z.string().nullable(),
2503
+ latest_handshake: import_zod29.z.string().nullable(),
2504
+ public_urls: import_zod29.z.array(CvmNetworkUrlsSchema).nullable()
1830
2505
  });
1831
2506
  var GetCvmNetworkRequestSchema = CvmIdSchema;
1832
2507
  var { action: getCvmNetwork, safeAction: safeGetCvmNetwork } = defineAction(CvmNetworkSchema, async (client, request) => {
@@ -1835,36 +2510,36 @@ var { action: getCvmNetwork, safeAction: safeGetCvmNetwork } = defineAction(CvmN
1835
2510
  });
1836
2511
 
1837
2512
  // src/actions/cvms/get_cvm_docker_compose.ts
1838
- var import_zod23 = require("zod");
2513
+ var import_zod30 = require("zod");
1839
2514
  var GetCvmDockerComposeRequestSchema = CvmIdSchema;
1840
- var { action: getCvmDockerCompose, safeAction: safeGetCvmDockerCompose } = defineAction(import_zod23.z.string(), async (client, request) => {
2515
+ var { action: getCvmDockerCompose, safeAction: safeGetCvmDockerCompose } = defineAction(import_zod30.z.string(), async (client, request) => {
1841
2516
  const { cvmId } = GetCvmDockerComposeRequestSchema.parse(request);
1842
2517
  return await client.get(`/cvms/${cvmId}/docker-compose.yml`);
1843
2518
  });
1844
2519
 
1845
2520
  // src/actions/cvms/get_cvm_containers_stats.ts
1846
- var import_zod24 = require("zod");
1847
- var ContainerInfoSchema = import_zod24.z.object({
1848
- id: import_zod24.z.string(),
1849
- names: import_zod24.z.array(import_zod24.z.string()),
1850
- image: import_zod24.z.string(),
1851
- image_id: import_zod24.z.string(),
1852
- command: import_zod24.z.string().nullable().optional(),
1853
- created: import_zod24.z.number(),
1854
- state: import_zod24.z.string(),
1855
- status: import_zod24.z.string(),
1856
- log_endpoint: import_zod24.z.string().nullable()
1857
- });
1858
- var CvmContainersStatsSchema = import_zod24.z.object({
1859
- is_online: import_zod24.z.boolean(),
1860
- is_public: import_zod24.z.boolean().default(true),
1861
- error: import_zod24.z.string().nullable(),
1862
- docker_compose_file: import_zod24.z.string().nullable(),
1863
- manifest_version: import_zod24.z.number().nullable(),
1864
- version: import_zod24.z.string().nullable(),
1865
- runner: import_zod24.z.string().nullable(),
1866
- features: import_zod24.z.array(import_zod24.z.string()).nullable(),
1867
- containers: import_zod24.z.array(ContainerInfoSchema).nullable()
2521
+ var import_zod31 = require("zod");
2522
+ var ContainerInfoSchema = import_zod31.z.object({
2523
+ id: import_zod31.z.string(),
2524
+ names: import_zod31.z.array(import_zod31.z.string()),
2525
+ image: import_zod31.z.string(),
2526
+ image_id: import_zod31.z.string(),
2527
+ command: import_zod31.z.string().nullable().optional(),
2528
+ created: import_zod31.z.number(),
2529
+ state: import_zod31.z.string(),
2530
+ status: import_zod31.z.string(),
2531
+ log_endpoint: import_zod31.z.string().nullable()
2532
+ });
2533
+ var CvmContainersStatsSchema = import_zod31.z.object({
2534
+ is_online: import_zod31.z.boolean(),
2535
+ is_public: import_zod31.z.boolean().default(true),
2536
+ error: import_zod31.z.string().nullable(),
2537
+ docker_compose_file: import_zod31.z.string().nullable(),
2538
+ manifest_version: import_zod31.z.number().nullable(),
2539
+ version: import_zod31.z.string().nullable(),
2540
+ runner: import_zod31.z.string().nullable(),
2541
+ features: import_zod31.z.array(import_zod31.z.string()).nullable(),
2542
+ containers: import_zod31.z.array(ContainerInfoSchema).nullable()
1868
2543
  });
1869
2544
  var GetCvmContainersStatsRequestSchema = CvmIdSchema;
1870
2545
  var { action: getCvmContainersStats, safeAction: safeGetCvmContainersStats } = defineAction(CvmContainersStatsSchema, async (client, request) => {
@@ -1873,62 +2548,62 @@ var { action: getCvmContainersStats, safeAction: safeGetCvmContainersStats } = d
1873
2548
  });
1874
2549
 
1875
2550
  // src/actions/cvms/get_cvm_attestation.ts
1876
- var import_zod25 = require("zod");
1877
- var CertificateSubjectSchema = import_zod25.z.object({
1878
- common_name: import_zod25.z.string().nullable(),
1879
- organization: import_zod25.z.string().nullable(),
1880
- country: import_zod25.z.string().nullable(),
1881
- state: import_zod25.z.string().nullable(),
1882
- locality: import_zod25.z.string().nullable()
1883
- });
1884
- var CertificateIssuerSchema = import_zod25.z.object({
1885
- common_name: import_zod25.z.string().nullable(),
1886
- organization: import_zod25.z.string().nullable(),
1887
- country: import_zod25.z.string().nullable()
1888
- });
1889
- var CertificateSchema = import_zod25.z.object({
2551
+ var import_zod32 = require("zod");
2552
+ var CertificateSubjectSchema = import_zod32.z.object({
2553
+ common_name: import_zod32.z.string().nullable(),
2554
+ organization: import_zod32.z.string().nullable(),
2555
+ country: import_zod32.z.string().nullable(),
2556
+ state: import_zod32.z.string().nullable(),
2557
+ locality: import_zod32.z.string().nullable()
2558
+ });
2559
+ var CertificateIssuerSchema = import_zod32.z.object({
2560
+ common_name: import_zod32.z.string().nullable(),
2561
+ organization: import_zod32.z.string().nullable(),
2562
+ country: import_zod32.z.string().nullable()
2563
+ });
2564
+ var CertificateSchema = import_zod32.z.object({
1890
2565
  subject: CertificateSubjectSchema,
1891
2566
  issuer: CertificateIssuerSchema,
1892
- serial_number: import_zod25.z.string(),
1893
- not_before: import_zod25.z.string(),
2567
+ serial_number: import_zod32.z.string(),
2568
+ not_before: import_zod32.z.string(),
1894
2569
  // datetime serialized as ISO string
1895
- not_after: import_zod25.z.string(),
2570
+ not_after: import_zod32.z.string(),
1896
2571
  // datetime serialized as ISO string
1897
- version: import_zod25.z.string(),
1898
- fingerprint: import_zod25.z.string(),
1899
- signature_algorithm: import_zod25.z.string(),
1900
- sans: import_zod25.z.array(import_zod25.z.string()).nullable(),
1901
- is_ca: import_zod25.z.boolean(),
1902
- position_in_chain: import_zod25.z.number().nullable(),
1903
- quote: import_zod25.z.string().nullable(),
1904
- app_id: import_zod25.z.string().nullable().optional(),
1905
- cert_usage: import_zod25.z.string().nullable().optional()
1906
- });
1907
- var EventLogSchema = import_zod25.z.object({
1908
- imr: import_zod25.z.number(),
1909
- event_type: import_zod25.z.number(),
1910
- digest: import_zod25.z.string(),
1911
- event: import_zod25.z.string(),
1912
- event_payload: import_zod25.z.string()
1913
- });
1914
- var TcbInfoSchema = import_zod25.z.object({
1915
- mrtd: import_zod25.z.string(),
1916
- rootfs_hash: import_zod25.z.string().nullable().optional(),
1917
- rtmr0: import_zod25.z.string(),
1918
- rtmr1: import_zod25.z.string(),
1919
- rtmr2: import_zod25.z.string(),
1920
- rtmr3: import_zod25.z.string(),
1921
- event_log: import_zod25.z.array(EventLogSchema),
1922
- app_compose: import_zod25.z.string()
1923
- });
1924
- var CvmAttestationSchema = import_zod25.z.object({
1925
- name: import_zod25.z.string().nullable(),
1926
- is_online: import_zod25.z.boolean(),
1927
- is_public: import_zod25.z.boolean().default(true),
1928
- error: import_zod25.z.string().nullable(),
1929
- app_certificates: import_zod25.z.array(CertificateSchema).nullable(),
2572
+ version: import_zod32.z.string(),
2573
+ fingerprint: import_zod32.z.string(),
2574
+ signature_algorithm: import_zod32.z.string(),
2575
+ sans: import_zod32.z.array(import_zod32.z.string()).nullable(),
2576
+ is_ca: import_zod32.z.boolean(),
2577
+ position_in_chain: import_zod32.z.number().nullable(),
2578
+ quote: import_zod32.z.string().nullable(),
2579
+ app_id: import_zod32.z.string().nullable().optional(),
2580
+ cert_usage: import_zod32.z.string().nullable().optional()
2581
+ });
2582
+ var EventLogSchema = import_zod32.z.object({
2583
+ imr: import_zod32.z.number(),
2584
+ event_type: import_zod32.z.number(),
2585
+ digest: import_zod32.z.string(),
2586
+ event: import_zod32.z.string(),
2587
+ event_payload: import_zod32.z.string()
2588
+ });
2589
+ var TcbInfoSchema = import_zod32.z.object({
2590
+ mrtd: import_zod32.z.string(),
2591
+ rootfs_hash: import_zod32.z.string().nullable().optional(),
2592
+ rtmr0: import_zod32.z.string(),
2593
+ rtmr1: import_zod32.z.string(),
2594
+ rtmr2: import_zod32.z.string(),
2595
+ rtmr3: import_zod32.z.string(),
2596
+ event_log: import_zod32.z.array(EventLogSchema),
2597
+ app_compose: import_zod32.z.string()
2598
+ });
2599
+ var CvmAttestationSchema = import_zod32.z.object({
2600
+ name: import_zod32.z.string().nullable(),
2601
+ is_online: import_zod32.z.boolean(),
2602
+ is_public: import_zod32.z.boolean().default(true),
2603
+ error: import_zod32.z.string().nullable(),
2604
+ app_certificates: import_zod32.z.array(CertificateSchema).nullable(),
1930
2605
  tcb_info: TcbInfoSchema.nullable(),
1931
- compose_file: import_zod25.z.string().nullable()
2606
+ compose_file: import_zod32.z.string().nullable()
1932
2607
  });
1933
2608
  var GetCvmAttestationRequestSchema = CvmIdSchema;
1934
2609
  var { action: getCvmAttestation, safeAction: safeGetCvmAttestation } = defineAction(CvmAttestationSchema, async (client, request) => {
@@ -1937,17 +2612,17 @@ var { action: getCvmAttestation, safeAction: safeGetCvmAttestation } = defineAct
1937
2612
  });
1938
2613
 
1939
2614
  // src/actions/cvms/update_cvm_resources.ts
1940
- var import_zod26 = require("zod");
2615
+ var import_zod33 = require("zod");
1941
2616
  var UpdateCvmResourcesRequestSchema = refineCvmId(
1942
2617
  CvmIdObjectSchema.extend({
1943
- vcpu: import_zod26.z.number().optional(),
1944
- memory: import_zod26.z.number().optional(),
1945
- disk_size: import_zod26.z.number().optional(),
1946
- instance_type: import_zod26.z.string().optional(),
1947
- allow_restart: import_zod26.z.boolean().optional()
2618
+ vcpu: import_zod33.z.number().optional(),
2619
+ memory: import_zod33.z.number().optional(),
2620
+ disk_size: import_zod33.z.number().optional(),
2621
+ instance_type: import_zod33.z.string().optional(),
2622
+ allow_restart: import_zod33.z.boolean().optional()
1948
2623
  })
1949
2624
  );
1950
- var { action: updateCvmResources, safeAction: safeUpdateCvmResources } = defineAction(import_zod26.z.void(), async (client, request) => {
2625
+ var { action: updateCvmResources, safeAction: safeUpdateCvmResources } = defineAction(import_zod33.z.void(), async (client, request) => {
1951
2626
  const parsed = UpdateCvmResourcesRequestSchema.parse(request);
1952
2627
  const { cvmId } = CvmIdSchema.parse(parsed);
1953
2628
  const { ...body } = parsed;
@@ -1956,14 +2631,14 @@ var { action: updateCvmResources, safeAction: safeUpdateCvmResources } = defineA
1956
2631
  });
1957
2632
 
1958
2633
  // src/actions/cvms/update_cvm_visibility.ts
1959
- var import_zod27 = require("zod");
2634
+ var import_zod34 = require("zod");
1960
2635
  var UpdateCvmVisibilityRequestSchema = refineCvmId(
1961
2636
  CvmIdObjectSchema.extend({
1962
- public_sysinfo: import_zod27.z.boolean(),
1963
- public_logs: import_zod27.z.boolean()
2637
+ public_sysinfo: import_zod34.z.boolean(),
2638
+ public_logs: import_zod34.z.boolean()
1964
2639
  })
1965
2640
  );
1966
- var { action: updateCvmVisibility, safeAction: safeUpdateCvmVisibility } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
2641
+ var { action: updateCvmVisibility, safeAction: safeUpdateCvmVisibility } = defineAction(CvmDetailV20251028Schema, async (client, request) => {
1967
2642
  const parsed = UpdateCvmVisibilityRequestSchema.parse(request);
1968
2643
  const { cvmId } = CvmIdSchema.parse(parsed);
1969
2644
  const { public_sysinfo, public_logs } = parsed;
@@ -1971,21 +2646,21 @@ var { action: updateCvmVisibility, safeAction: safeUpdateCvmVisibility } = defin
1971
2646
  });
1972
2647
 
1973
2648
  // src/actions/cvms/get_available_os_images.ts
1974
- var import_zod28 = require("zod");
1975
- var OSImageVariantSchema = import_zod28.z.object({
1976
- name: import_zod28.z.string(),
1977
- os_image_hash: import_zod28.z.string().nullable(),
1978
- is_current: import_zod28.z.boolean()
2649
+ var import_zod35 = require("zod");
2650
+ var OSImageVariantSchema = import_zod35.z.object({
2651
+ name: import_zod35.z.string(),
2652
+ os_image_hash: import_zod35.z.string().nullable(),
2653
+ is_current: import_zod35.z.boolean()
1979
2654
  });
1980
- var AvailableOSImageSchema2 = import_zod28.z.object({
1981
- version: import_zod28.z.union([
1982
- import_zod28.z.tuple([import_zod28.z.number(), import_zod28.z.number(), import_zod28.z.number(), import_zod28.z.number()]),
1983
- import_zod28.z.tuple([import_zod28.z.number(), import_zod28.z.number(), import_zod28.z.number()])
2655
+ var AvailableOSImageSchema2 = import_zod35.z.object({
2656
+ version: import_zod35.z.union([
2657
+ import_zod35.z.tuple([import_zod35.z.number(), import_zod35.z.number(), import_zod35.z.number(), import_zod35.z.number()]),
2658
+ import_zod35.z.tuple([import_zod35.z.number(), import_zod35.z.number(), import_zod35.z.number()])
1984
2659
  ]),
1985
2660
  prod: OSImageVariantSchema.nullable(),
1986
2661
  dev: OSImageVariantSchema.nullable()
1987
2662
  });
1988
- var GetAvailableOSImagesResponseSchema = import_zod28.z.array(AvailableOSImageSchema2);
2663
+ var GetAvailableOSImagesResponseSchema = import_zod35.z.array(AvailableOSImageSchema2);
1989
2664
  var GetAvailableOSImagesRequestSchema = CvmIdSchema;
1990
2665
  var { action: getAvailableOsImages, safeAction: safeGetAvailableOsImages } = defineAction(GetAvailableOSImagesResponseSchema, async (client, request) => {
1991
2666
  const { cvmId } = GetAvailableOSImagesRequestSchema.parse(request);
@@ -1993,13 +2668,13 @@ var { action: getAvailableOsImages, safeAction: safeGetAvailableOsImages } = def
1993
2668
  });
1994
2669
 
1995
2670
  // src/actions/cvms/update_os_image.ts
1996
- var import_zod29 = require("zod");
2671
+ var import_zod36 = require("zod");
1997
2672
  var UpdateOsImageRequestSchema = refineCvmId(
1998
2673
  CvmIdObjectSchema.extend({
1999
- os_image_name: import_zod29.z.string().min(1, "OS image name is required")
2674
+ os_image_name: import_zod36.z.string().min(1, "OS image name is required")
2000
2675
  })
2001
2676
  );
2002
- var { action: updateOsImage, safeAction: safeUpdateOsImage } = defineAction(import_zod29.z.void(), async (client, request) => {
2677
+ var { action: updateOsImage, safeAction: safeUpdateOsImage } = defineAction(import_zod36.z.void(), async (client, request) => {
2003
2678
  const parsed = UpdateOsImageRequestSchema.parse(request);
2004
2679
  const { cvmId } = CvmIdSchema.parse(parsed);
2005
2680
  const { os_image_name } = parsed;
@@ -2008,17 +2683,17 @@ var { action: updateOsImage, safeAction: safeUpdateOsImage } = defineAction(impo
2008
2683
  });
2009
2684
 
2010
2685
  // src/actions/cvms/get_cvm_state.ts
2011
- var import_zod30 = require("zod");
2012
- var CvmStateSchema = import_zod30.z.object({
2013
- id: import_zod30.z.string().optional(),
2014
- instance_id: import_zod30.z.string().optional(),
2015
- name: import_zod30.z.string(),
2016
- status: import_zod30.z.string(),
2017
- uptime: import_zod30.z.string().optional(),
2018
- exited_at: import_zod30.z.string().optional(),
2019
- boot_progress: import_zod30.z.string().optional(),
2020
- boot_error: import_zod30.z.string().optional(),
2021
- shutdown_progress: import_zod30.z.string().optional()
2686
+ var import_zod37 = require("zod");
2687
+ var CvmStateSchema = import_zod37.z.object({
2688
+ id: import_zod37.z.string().optional(),
2689
+ instance_id: import_zod37.z.string().optional(),
2690
+ name: import_zod37.z.string(),
2691
+ status: import_zod37.z.string(),
2692
+ uptime: import_zod37.z.string().optional(),
2693
+ exited_at: import_zod37.z.string().optional(),
2694
+ boot_progress: import_zod37.z.string().optional(),
2695
+ boot_error: import_zod37.z.string().optional(),
2696
+ shutdown_progress: import_zod37.z.string().optional()
2022
2697
  });
2023
2698
  var GetCvmStateRequestSchema = CvmIdSchema;
2024
2699
  var { action: getCvmState, safeAction: safeGetCvmState } = defineAction(CvmStateSchema, async (client, request) => {
@@ -2056,6 +2731,14 @@ function createClient2(config = {}) {
2056
2731
  safeProvisionCvmComposeFileUpdate,
2057
2732
  commitCvmComposeFileUpdate,
2058
2733
  safeCommitCvmComposeFileUpdate,
2734
+ updateCvmEnvs,
2735
+ safeUpdateCvmEnvs,
2736
+ updateDockerCompose,
2737
+ safeUpdateDockerCompose,
2738
+ updatePreLaunchScript,
2739
+ safeUpdatePreLaunchScript,
2740
+ getCvmPreLaunchScript,
2741
+ safeGetCvmPreLaunchScript,
2059
2742
  startCvm,
2060
2743
  safeStartCvm,
2061
2744
  stopCvm,
@@ -2098,8 +2781,147 @@ function createClient2(config = {}) {
2098
2781
  return client.extend(allActions);
2099
2782
  }
2100
2783
 
2784
+ // src/types/app_info_v20251028.ts
2785
+ var import_zod38 = require("zod");
2786
+ var CvmBasicInfoV20251028Schema = import_zod38.z.object({
2787
+ vm_uuid: import_zod38.z.string().nullable(),
2788
+ app_id: import_zod38.z.string(),
2789
+ name: import_zod38.z.string().default(""),
2790
+ status: import_zod38.z.string(),
2791
+ vcpu: import_zod38.z.number().int(),
2792
+ memory: import_zod38.z.number().int(),
2793
+ disk_size: import_zod38.z.number().int(),
2794
+ teepod_id: import_zod38.z.number().int(),
2795
+ teepod_name: import_zod38.z.string(),
2796
+ region_identifier: import_zod38.z.string().nullable().optional(),
2797
+ kms_type: import_zod38.z.string().nullable().optional(),
2798
+ instance_type: import_zod38.z.string().nullable().optional(),
2799
+ listed: import_zod38.z.boolean().nullable().optional(),
2800
+ base_image: import_zod38.z.string().nullable().optional(),
2801
+ kms_slug: import_zod38.z.string().nullable().optional(),
2802
+ kms_id: import_zod38.z.string().nullable().optional(),
2803
+ instance_id: import_zod38.z.string().nullable().optional(),
2804
+ machine_info: MachineInfoV20251028Schema.nullable().optional(),
2805
+ updated_at: import_zod38.z.string().nullable().optional()
2806
+ });
2807
+ var DstackAppFullResponseV20251028Schema = import_zod38.z.object({
2808
+ id: import_zod38.z.string(),
2809
+ name: import_zod38.z.string(),
2810
+ app_id: import_zod38.z.string(),
2811
+ app_provision_type: import_zod38.z.string().nullable().optional(),
2812
+ app_icon_url: import_zod38.z.string().nullable().optional(),
2813
+ created_at: import_zod38.z.string(),
2814
+ kms_type: import_zod38.z.string(),
2815
+ current_cvm: CvmBasicInfoV20251028Schema.nullable().optional(),
2816
+ cvms: import_zod38.z.array(CvmBasicInfoV20251028Schema).default([]),
2817
+ cvm_count: import_zod38.z.number().int().default(0)
2818
+ });
2819
+ var DstackAppMinimalResponseV20251028Schema = import_zod38.z.object({
2820
+ id: import_zod38.z.null().optional(),
2821
+ app_id: import_zod38.z.string(),
2822
+ name: import_zod38.z.null().optional(),
2823
+ app_provision_type: import_zod38.z.null().optional(),
2824
+ app_icon_url: import_zod38.z.null().optional(),
2825
+ created_at: import_zod38.z.null().optional(),
2826
+ kms_type: import_zod38.z.null().optional(),
2827
+ current_cvm: import_zod38.z.null().optional(),
2828
+ cvms: import_zod38.z.null().optional(),
2829
+ cvm_count: import_zod38.z.null().optional()
2830
+ });
2831
+ var DstackAppWithCvmResponseV20251028Schema = import_zod38.z.union([
2832
+ DstackAppFullResponseV20251028Schema,
2833
+ DstackAppMinimalResponseV20251028Schema
2834
+ ]);
2835
+ var DstackAppListResponseV20251028Schema = import_zod38.z.object({
2836
+ dstack_apps: import_zod38.z.array(DstackAppWithCvmResponseV20251028Schema),
2837
+ page: import_zod38.z.number().int(),
2838
+ page_size: import_zod38.z.number().int(),
2839
+ total: import_zod38.z.number().int(),
2840
+ total_pages: import_zod38.z.number().int()
2841
+ });
2842
+
2843
+ // src/types/app_info_v20260121.ts
2844
+ var import_zod39 = require("zod");
2845
+ var DstackAppFullResponseV20260121Schema = import_zod39.z.object({
2846
+ id: import_zod39.z.string(),
2847
+ name: import_zod39.z.string(),
2848
+ app_id: import_zod39.z.string(),
2849
+ app_provision_type: import_zod39.z.string().nullable().optional(),
2850
+ app_icon_url: import_zod39.z.string().nullable().optional(),
2851
+ created_at: import_zod39.z.string(),
2852
+ kms_type: import_zod39.z.string(),
2853
+ current_cvm: CvmInfoV20260121Schema.nullable().optional(),
2854
+ cvms: import_zod39.z.array(CvmInfoV20260121Schema).default([]),
2855
+ cvm_count: import_zod39.z.number().int().default(0)
2856
+ });
2857
+ var DstackAppMinimalResponseV20260121Schema = import_zod39.z.object({
2858
+ id: import_zod39.z.null().optional(),
2859
+ app_id: import_zod39.z.string(),
2860
+ name: import_zod39.z.null().optional(),
2861
+ app_provision_type: import_zod39.z.null().optional(),
2862
+ app_icon_url: import_zod39.z.null().optional(),
2863
+ created_at: import_zod39.z.null().optional(),
2864
+ kms_type: import_zod39.z.null().optional(),
2865
+ current_cvm: import_zod39.z.null().optional(),
2866
+ cvms: import_zod39.z.null().optional(),
2867
+ cvm_count: import_zod39.z.null().optional()
2868
+ });
2869
+ var DstackAppWithCvmResponseV20260121Schema = import_zod39.z.union([
2870
+ DstackAppFullResponseV20260121Schema,
2871
+ DstackAppMinimalResponseV20260121Schema
2872
+ ]);
2873
+ var DstackAppListResponseV20260121Schema = import_zod39.z.object({
2874
+ dstack_apps: import_zod39.z.array(DstackAppWithCvmResponseV20260121Schema),
2875
+ page: import_zod39.z.number().int(),
2876
+ page_size: import_zod39.z.number().int(),
2877
+ total: import_zod39.z.number().int(),
2878
+ total_pages: import_zod39.z.number().int()
2879
+ });
2880
+
2881
+ // src/types/app_revision.ts
2882
+ var import_zod40 = require("zod");
2883
+ var CvmRefSchema = import_zod40.z.object({
2884
+ object_type: import_zod40.z.literal("cvm"),
2885
+ id: import_zod40.z.string().nullable().optional(),
2886
+ name: import_zod40.z.string().nullable().optional(),
2887
+ app_id: import_zod40.z.string().nullable().optional(),
2888
+ vm_uuid: import_zod40.z.string().nullable().optional()
2889
+ });
2890
+ var AppRevisionResponseSchema = import_zod40.z.object({
2891
+ app_id: import_zod40.z.string(),
2892
+ vm_uuid: import_zod40.z.string(),
2893
+ compose_hash: import_zod40.z.string(),
2894
+ created_at: import_zod40.z.string(),
2895
+ trace_id: import_zod40.z.string().nullable().optional(),
2896
+ operation_type: import_zod40.z.string(),
2897
+ triggered_by: UserRefSchema.nullable().optional(),
2898
+ cvm: CvmRefSchema.nullable().optional(),
2899
+ workspace: WorkspaceRefSchema.nullable().optional()
2900
+ });
2901
+ var AppRevisionDetailResponseSchema = import_zod40.z.object({
2902
+ app_id: import_zod40.z.string(),
2903
+ vm_uuid: import_zod40.z.string(),
2904
+ compose_hash: import_zod40.z.string(),
2905
+ compose_file: import_zod40.z.union([import_zod40.z.record(import_zod40.z.any()), import_zod40.z.string()]).nullable().optional(),
2906
+ encrypted_env: import_zod40.z.string(),
2907
+ user_config: import_zod40.z.string(),
2908
+ created_at: import_zod40.z.string(),
2909
+ trace_id: import_zod40.z.string().nullable().optional(),
2910
+ operation_type: import_zod40.z.string(),
2911
+ triggered_by: UserRefSchema.nullable().optional(),
2912
+ cvm: CvmRefSchema.nullable().optional(),
2913
+ workspace: WorkspaceRefSchema.nullable().optional()
2914
+ });
2915
+ var AppRevisionsResponseSchema = import_zod40.z.object({
2916
+ revisions: import_zod40.z.array(AppRevisionResponseSchema),
2917
+ total: import_zod40.z.number().int(),
2918
+ page: import_zod40.z.number().int(),
2919
+ page_size: import_zod40.z.number().int(),
2920
+ total_pages: import_zod40.z.number().int()
2921
+ });
2922
+
2101
2923
  // src/actions/blockchains/deploy_app_auth.ts
2102
- var import_zod31 = require("zod");
2924
+ var import_zod41 = require("zod");
2103
2925
  var import_viem3 = require("viem");
2104
2926
  var import_accounts2 = require("viem/accounts");
2105
2927
 
@@ -2749,25 +3571,25 @@ var kmsAuthAbi = [
2749
3571
  anonymous: false
2750
3572
  }
2751
3573
  ];
2752
- var DeployAppAuthRequestBaseSchema = import_zod31.z.object({
3574
+ var DeployAppAuthRequestBaseSchema = import_zod41.z.object({
2753
3575
  // Chain configuration (conditionally required)
2754
- chain: import_zod31.z.unknown().optional(),
2755
- rpcUrl: import_zod31.z.string().optional(),
3576
+ chain: import_zod41.z.unknown().optional(),
3577
+ rpcUrl: import_zod41.z.string().optional(),
2756
3578
  // Contract configuration (required)
2757
- kmsContractAddress: import_zod31.z.string(),
3579
+ kmsContractAddress: import_zod41.z.string(),
2758
3580
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
2759
- privateKey: import_zod31.z.string().optional(),
2760
- walletClient: import_zod31.z.unknown().optional(),
3581
+ privateKey: import_zod41.z.string().optional(),
3582
+ walletClient: import_zod41.z.unknown().optional(),
2761
3583
  // Public client (optional, will create default if not provided)
2762
- publicClient: import_zod31.z.unknown().optional(),
3584
+ publicClient: import_zod41.z.unknown().optional(),
2763
3585
  // App configuration (optional)
2764
- allowAnyDevice: import_zod31.z.boolean().optional().default(false),
2765
- deviceId: import_zod31.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2766
- composeHash: import_zod31.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
2767
- disableUpgrades: import_zod31.z.boolean().optional().default(false),
3586
+ allowAnyDevice: import_zod41.z.boolean().optional().default(false),
3587
+ deviceId: import_zod41.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
3588
+ composeHash: import_zod41.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
3589
+ disableUpgrades: import_zod41.z.boolean().optional().default(false),
2768
3590
  // Validation configuration (optional)
2769
- skipPrerequisiteChecks: import_zod31.z.boolean().optional().default(false),
2770
- minBalance: import_zod31.z.string().optional()
3591
+ skipPrerequisiteChecks: import_zod41.z.boolean().optional().default(false),
3592
+ minBalance: import_zod41.z.string().optional()
2771
3593
  // ETH amount as string, e.g., "0.01"
2772
3594
  }).passthrough();
2773
3595
  var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
@@ -2795,13 +3617,13 @@ var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
2795
3617
  path: ["chain"]
2796
3618
  }
2797
3619
  );
2798
- var DeployAppAuthSchema = import_zod31.z.object({
2799
- appId: import_zod31.z.string(),
2800
- appAuthAddress: import_zod31.z.string(),
2801
- deployer: import_zod31.z.string(),
2802
- transactionHash: import_zod31.z.string(),
2803
- blockNumber: import_zod31.z.bigint().optional(),
2804
- gasUsed: import_zod31.z.bigint().optional()
3620
+ var DeployAppAuthSchema = import_zod41.z.object({
3621
+ appId: import_zod41.z.string(),
3622
+ appAuthAddress: import_zod41.z.string(),
3623
+ deployer: import_zod41.z.string(),
3624
+ transactionHash: import_zod41.z.string(),
3625
+ blockNumber: import_zod41.z.bigint().optional(),
3626
+ gasUsed: import_zod41.z.bigint().optional()
2805
3627
  }).passthrough();
2806
3628
  function parseDeploymentResult(receipt, deployer, kmsContractAddress) {
2807
3629
  try {
@@ -3047,7 +3869,7 @@ async function safeDeployAppAuth(request, parameters) {
3047
3869
  }
3048
3870
 
3049
3871
  // src/actions/blockchains/add_compose_hash.ts
3050
- var import_zod32 = require("zod");
3872
+ var import_zod42 = require("zod");
3051
3873
  var import_viem4 = require("viem");
3052
3874
  var import_accounts3 = require("viem/accounts");
3053
3875
  var appAuthAbi = [
@@ -3065,29 +3887,29 @@ var appAuthAbi = [
3065
3887
  anonymous: false
3066
3888
  }
3067
3889
  ];
3068
- var AddComposeHashRequestSchema = import_zod32.z.object({
3890
+ var AddComposeHashRequestSchema = import_zod42.z.object({
3069
3891
  // Chain configuration (conditionally required)
3070
- chain: import_zod32.z.unknown().optional(),
3071
- rpcUrl: import_zod32.z.string().optional(),
3072
- appId: import_zod32.z.string(),
3073
- composeHash: import_zod32.z.string(),
3892
+ chain: import_zod42.z.unknown().optional(),
3893
+ rpcUrl: import_zod42.z.string().optional(),
3894
+ appId: import_zod42.z.string(),
3895
+ composeHash: import_zod42.z.string(),
3074
3896
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
3075
- privateKey: import_zod32.z.string().optional(),
3076
- walletClient: import_zod32.z.unknown().optional(),
3897
+ privateKey: import_zod42.z.string().optional(),
3898
+ walletClient: import_zod42.z.unknown().optional(),
3077
3899
  // Public client (optional, will create default if not provided)
3078
- publicClient: import_zod32.z.unknown().optional(),
3900
+ publicClient: import_zod42.z.unknown().optional(),
3079
3901
  // Validation configuration (optional)
3080
- skipPrerequisiteChecks: import_zod32.z.boolean().optional().default(false),
3081
- minBalance: import_zod32.z.string().optional(),
3902
+ skipPrerequisiteChecks: import_zod42.z.boolean().optional().default(false),
3903
+ minBalance: import_zod42.z.string().optional(),
3082
3904
  // ETH amount as string, e.g., "0.01"
3083
3905
  // Transaction control options
3084
- timeout: import_zod32.z.number().optional().default(12e4),
3085
- retryOptions: import_zod32.z.unknown().optional(),
3086
- signal: import_zod32.z.unknown().optional(),
3906
+ timeout: import_zod42.z.number().optional().default(12e4),
3907
+ retryOptions: import_zod42.z.unknown().optional(),
3908
+ signal: import_zod42.z.unknown().optional(),
3087
3909
  // Progress callbacks
3088
- onTransactionStateChange: import_zod32.z.function().optional(),
3089
- onTransactionSubmitted: import_zod32.z.function().optional(),
3090
- onTransactionConfirmed: import_zod32.z.function().optional()
3910
+ onTransactionStateChange: import_zod42.z.function().optional(),
3911
+ onTransactionSubmitted: import_zod42.z.function().optional(),
3912
+ onTransactionConfirmed: import_zod42.z.function().optional()
3091
3913
  }).passthrough().refine(
3092
3914
  (data) => {
3093
3915
  const hasPrivateKey = !!data.privateKey;
@@ -3111,12 +3933,12 @@ var AddComposeHashRequestSchema = import_zod32.z.object({
3111
3933
  path: ["chain"]
3112
3934
  }
3113
3935
  );
3114
- var AddComposeHashSchema = import_zod32.z.object({
3115
- composeHash: import_zod32.z.string(),
3116
- appId: import_zod32.z.string(),
3117
- transactionHash: import_zod32.z.string(),
3118
- blockNumber: import_zod32.z.bigint().optional(),
3119
- gasUsed: import_zod32.z.bigint().optional()
3936
+ var AddComposeHashSchema = import_zod42.z.object({
3937
+ composeHash: import_zod42.z.string(),
3938
+ appId: import_zod42.z.string(),
3939
+ transactionHash: import_zod42.z.string(),
3940
+ blockNumber: import_zod42.z.bigint().optional(),
3941
+ gasUsed: import_zod42.z.bigint().optional()
3120
3942
  }).passthrough();
3121
3943
  function parseComposeHashResult(receipt, composeHash, appAuthAddress, appId) {
3122
3944
  console.log(receipt.logs);
@@ -3307,14 +4129,70 @@ async function safeAddComposeHash(request, parameters) {
3307
4129
  }
3308
4130
  }
3309
4131
 
4132
+ // src/actions/workspaces/get_workspace_nodes.ts
4133
+ var import_zod43 = require("zod");
4134
+ var NodeInfoSchema = import_zod43.z.object({
4135
+ id: import_zod43.z.number().nullable(),
4136
+ name: import_zod43.z.string().nullable(),
4137
+ region: import_zod43.z.string().nullable(),
4138
+ device_id: import_zod43.z.string().nullable(),
4139
+ ppid: import_zod43.z.string().nullable(),
4140
+ status: import_zod43.z.string().nullable(),
4141
+ version: import_zod43.z.string().nullable()
4142
+ }).passthrough();
4143
+ var GetWorkspaceNodesSchema = import_zod43.z.object({
4144
+ items: import_zod43.z.array(NodeInfoSchema),
4145
+ total: import_zod43.z.number(),
4146
+ page: import_zod43.z.number(),
4147
+ page_size: import_zod43.z.number(),
4148
+ pages: import_zod43.z.number()
4149
+ }).passthrough();
4150
+ var { action: getWorkspaceNodes, safeAction: safeGetWorkspaceNodes } = defineAction(GetWorkspaceNodesSchema, async (client, request) => {
4151
+ const { teamSlug, page, pageSize } = request;
4152
+ const queryParams = new URLSearchParams();
4153
+ if (page !== void 0) queryParams.append("page", page.toString());
4154
+ if (pageSize !== void 0) queryParams.append("page_size", pageSize.toString());
4155
+ const url = queryParams.toString() ? `/workspaces/${teamSlug}/nodes?${queryParams.toString()}` : `/workspaces/${teamSlug}/nodes`;
4156
+ return await client.get(url);
4157
+ });
4158
+
4159
+ // src/actions/workspaces/get_workspace_quotas.ts
4160
+ var import_zod44 = require("zod");
4161
+ var QuotaMetricSchema = import_zod44.z.object({
4162
+ limit: import_zod44.z.number(),
4163
+ remaining: import_zod44.z.number()
4164
+ }).passthrough();
4165
+ var WorkspaceQuotasSchema = import_zod44.z.object({
4166
+ vm_slots: QuotaMetricSchema,
4167
+ vcpu: QuotaMetricSchema,
4168
+ memory_mb: QuotaMetricSchema,
4169
+ disk_gb: QuotaMetricSchema
4170
+ }).passthrough();
4171
+ var WorkspaceReservedGpuQuotaSchema = import_zod44.z.object({
4172
+ gpus: QuotaMetricSchema,
4173
+ in_use: import_zod44.z.number(),
4174
+ misconfigured: import_zod44.z.number()
4175
+ }).passthrough();
4176
+ var GetWorkspaceQuotasSchema = import_zod44.z.object({
4177
+ team_slug: import_zod44.z.string(),
4178
+ tier: import_zod44.z.string(),
4179
+ quotas: WorkspaceQuotasSchema,
4180
+ reserved_nodes: QuotaMetricSchema,
4181
+ reserved_gpu: WorkspaceReservedGpuQuotaSchema,
4182
+ as_of: import_zod44.z.string()
4183
+ }).passthrough();
4184
+ var { action: getWorkspaceQuotas, safeAction: safeGetWorkspaceQuotas } = defineAction(GetWorkspaceQuotasSchema, async (client, request) => {
4185
+ return await client.get(`/workspaces/${request.teamSlug}/quotas`);
4186
+ });
4187
+
3310
4188
  // src/actions/cvms/watch_cvm_state.ts
3311
- var import_zod33 = require("zod");
3312
- var WatchCvmStateParamsSchema = import_zod33.z.object({
3313
- target: import_zod33.z.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),
3314
- interval: import_zod33.z.number().min(5).max(30).default(5).describe("Polling interval in seconds"),
3315
- timeout: import_zod33.z.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),
3316
- maxRetries: import_zod33.z.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),
3317
- retryDelay: import_zod33.z.number().min(0).default(5e3).describe("Delay between retries in milliseconds")
4189
+ var import_zod45 = require("zod");
4190
+ var WatchCvmStateParamsSchema = import_zod45.z.object({
4191
+ target: import_zod45.z.string().describe("Target status to wait for (e.g., 'running', 'stopped')"),
4192
+ interval: import_zod45.z.number().min(5).max(30).default(5).describe("Polling interval in seconds"),
4193
+ timeout: import_zod45.z.number().min(10).max(600).default(300).describe("Timeout per attempt in seconds"),
4194
+ maxRetries: import_zod45.z.number().min(0).default(Number.POSITIVE_INFINITY).describe("Maximum number of retry attempts (Infinity for unlimited)"),
4195
+ retryDelay: import_zod45.z.number().min(0).default(5e3).describe("Delay between retries in milliseconds")
3318
4196
  });
3319
4197
  var WatchCvmStateRequestSchema = WatchCvmStateParamsSchema;
3320
4198
  var WatchAbortedError = class extends Error {
@@ -3501,6 +4379,195 @@ function sleep(ms, signal) {
3501
4379
  });
3502
4380
  }
3503
4381
 
4382
+ // src/actions/cvms/get_cvm_status_batch.ts
4383
+ var import_zod46 = require("zod");
4384
+ var CvmStatusSchema = import_zod46.z.object({
4385
+ vm_uuid: import_zod46.z.string(),
4386
+ status: import_zod46.z.string(),
4387
+ uptime: import_zod46.z.string().nullable().optional(),
4388
+ in_progress: import_zod46.z.boolean(),
4389
+ boot_progress: import_zod46.z.string().nullable().optional(),
4390
+ boot_error: import_zod46.z.string().nullable().optional(),
4391
+ operation_type: import_zod46.z.string().nullable().optional(),
4392
+ operation_started_at: import_zod46.z.string().nullable().optional(),
4393
+ correlation_id: import_zod46.z.string().nullable().optional()
4394
+ });
4395
+ var GetCvmStatusBatchResponseSchema = import_zod46.z.record(import_zod46.z.string(), CvmStatusSchema);
4396
+ var GetCvmStatusBatchRequestSchema = import_zod46.z.object({
4397
+ vmUuids: import_zod46.z.array(import_zod46.z.string())
4398
+ });
4399
+ var { action: getCvmStatusBatch, safeAction: safeGetCvmStatusBatch } = defineAction(GetCvmStatusBatchResponseSchema, async (client, request) => {
4400
+ const { vmUuids } = GetCvmStatusBatchRequestSchema.parse(request);
4401
+ return await client.post("/status/batch", { vm_uuids: vmUuids });
4402
+ });
4403
+
4404
+ // src/actions/apps/get_app_list.ts
4405
+ var import_zod47 = require("zod");
4406
+ var GetAppListRequestSchema = import_zod47.z.object({
4407
+ page: import_zod47.z.number().int().min(1).optional(),
4408
+ page_size: import_zod47.z.number().int().min(1).max(100).optional(),
4409
+ search: import_zod47.z.string().optional(),
4410
+ status: import_zod47.z.array(import_zod47.z.string()).optional(),
4411
+ listed: import_zod47.z.boolean().optional(),
4412
+ base_image: import_zod47.z.string().optional(),
4413
+ instance_type: import_zod47.z.string().optional(),
4414
+ kms_slug: import_zod47.z.string().optional(),
4415
+ kms_type: import_zod47.z.string().optional(),
4416
+ teepod_name: import_zod47.z.string().optional(),
4417
+ region: import_zod47.z.string().optional()
4418
+ }).strict();
4419
+ function getSchemaForVersion4(version) {
4420
+ return version === "2025-10-28" ? DstackAppListResponseV20251028Schema : DstackAppListResponseV20260121Schema;
4421
+ }
4422
+ async function getAppList(client, request) {
4423
+ const validatedRequest = GetAppListRequestSchema.parse(request ?? {});
4424
+ const response = await client.get("/apps", { params: validatedRequest });
4425
+ const schema = getSchemaForVersion4(client.config.version);
4426
+ return schema.parse(response);
4427
+ }
4428
+ async function safeGetAppList(client, request) {
4429
+ try {
4430
+ const data = await getAppList(client, request);
4431
+ return { success: true, data };
4432
+ } catch (error) {
4433
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
4434
+ return { success: false, error };
4435
+ }
4436
+ return {
4437
+ success: false,
4438
+ error: {
4439
+ name: "Error",
4440
+ message: error instanceof Error ? error.message : String(error)
4441
+ }
4442
+ };
4443
+ }
4444
+ }
4445
+
4446
+ // src/actions/apps/get_app_info.ts
4447
+ var import_zod48 = require("zod");
4448
+ var GetAppInfoRequestSchema = import_zod48.z.object({
4449
+ appId: import_zod48.z.string().min(1)
4450
+ }).strict();
4451
+ function getSchemaForVersion5(version) {
4452
+ return version === "2025-10-28" ? DstackAppWithCvmResponseV20251028Schema : DstackAppWithCvmResponseV20260121Schema;
4453
+ }
4454
+ async function getAppInfo(client, request) {
4455
+ const { appId } = GetAppInfoRequestSchema.parse(request);
4456
+ const response = await client.get(`/apps/${appId}`);
4457
+ const schema = getSchemaForVersion5(client.config.version);
4458
+ return schema.parse(response);
4459
+ }
4460
+ async function safeGetAppInfo(client, request) {
4461
+ try {
4462
+ const data = await getAppInfo(client, request);
4463
+ return { success: true, data };
4464
+ } catch (error) {
4465
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
4466
+ return { success: false, error };
4467
+ }
4468
+ return {
4469
+ success: false,
4470
+ error: {
4471
+ name: "Error",
4472
+ message: error instanceof Error ? error.message : String(error)
4473
+ }
4474
+ };
4475
+ }
4476
+ }
4477
+
4478
+ // src/actions/apps/get_app_cvms.ts
4479
+ var import_zod49 = require("zod");
4480
+ var GetAppCvmsRequestSchema = import_zod49.z.object({
4481
+ appId: import_zod49.z.string().min(1)
4482
+ }).strict();
4483
+ function getSchemaForVersion6(version) {
4484
+ return version === "2025-10-28" ? import_zod49.z.array(CvmInfoV20251028Schema) : import_zod49.z.array(CvmInfoV20260121Schema);
4485
+ }
4486
+ async function getAppCvms(client, request) {
4487
+ const { appId } = GetAppCvmsRequestSchema.parse(request);
4488
+ const response = await client.get(`/apps/${appId}/cvms`);
4489
+ const schema = getSchemaForVersion6(client.config.version);
4490
+ return schema.parse(response);
4491
+ }
4492
+ async function safeGetAppCvms(client, request) {
4493
+ try {
4494
+ const data = await getAppCvms(client, request);
4495
+ return { success: true, data };
4496
+ } catch (error) {
4497
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
4498
+ return { success: false, error };
4499
+ }
4500
+ return {
4501
+ success: false,
4502
+ error: {
4503
+ name: "Error",
4504
+ message: error instanceof Error ? error.message : String(error)
4505
+ }
4506
+ };
4507
+ }
4508
+ }
4509
+
4510
+ // src/actions/apps/get_app_revisions.ts
4511
+ var import_zod50 = require("zod");
4512
+ var GetAppRevisionsRequestSchema = import_zod50.z.object({
4513
+ appId: import_zod50.z.string().min(1),
4514
+ page: import_zod50.z.number().int().min(1).optional(),
4515
+ page_size: import_zod50.z.number().int().min(1).max(1e3).optional()
4516
+ }).strict();
4517
+ async function getAppRevisions(client, request) {
4518
+ const { appId, ...params } = GetAppRevisionsRequestSchema.parse(request);
4519
+ const response = await client.get(`/apps/${appId}/revisions`, { params });
4520
+ return AppRevisionsResponseSchema.parse(response);
4521
+ }
4522
+ async function safeGetAppRevisions(client, request) {
4523
+ try {
4524
+ const data = await getAppRevisions(client, request);
4525
+ return { success: true, data };
4526
+ } catch (error) {
4527
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
4528
+ return { success: false, error };
4529
+ }
4530
+ return {
4531
+ success: false,
4532
+ error: {
4533
+ name: "Error",
4534
+ message: error instanceof Error ? error.message : String(error)
4535
+ }
4536
+ };
4537
+ }
4538
+ }
4539
+
4540
+ // src/actions/apps/get_app_revision_detail.ts
4541
+ var import_zod51 = require("zod");
4542
+ var GetAppRevisionDetailRequestSchema = import_zod51.z.object({
4543
+ appId: import_zod51.z.string().min(1),
4544
+ composeHash: import_zod51.z.string().min(1),
4545
+ rawComposeFile: import_zod51.z.boolean().optional()
4546
+ }).strict();
4547
+ async function getAppRevisionDetail(client, request) {
4548
+ const { appId, composeHash, rawComposeFile } = GetAppRevisionDetailRequestSchema.parse(request);
4549
+ const params = rawComposeFile !== void 0 ? { raw_compose_file: rawComposeFile } : void 0;
4550
+ const response = await client.get(`/apps/${appId}/revisions/${composeHash}`, { params });
4551
+ return AppRevisionDetailResponseSchema.parse(response);
4552
+ }
4553
+ async function safeGetAppRevisionDetail(client, request) {
4554
+ try {
4555
+ const data = await getAppRevisionDetail(client, request);
4556
+ return { success: true, data };
4557
+ } catch (error) {
4558
+ if (error && typeof error === "object" && ("status" in error || "issues" in error)) {
4559
+ return { success: false, error };
4560
+ }
4561
+ return {
4562
+ success: false,
4563
+ error: {
4564
+ name: "Error",
4565
+ message: error instanceof Error ? error.message : String(error)
4566
+ }
4567
+ };
4568
+ }
4569
+ }
4570
+
3504
4571
  // src/parse_dotenv.ts
3505
4572
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
3506
4573
  function parseEnv(input) {
@@ -3541,33 +4608,65 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3541
4608
  AddComposeHashSchema,
3542
4609
  AllFamiliesResponseSchema,
3543
4610
  ApiErrorSchema,
4611
+ AppRevisionDetailResponseSchema,
4612
+ AppRevisionResponseSchema,
4613
+ AppRevisionsResponseSchema,
3544
4614
  AuthError,
4615
+ AuthResponseSchema,
3545
4616
  AvailableNodesSchema,
4617
+ BillingPeriodSchema,
3546
4618
  BusinessError,
3547
4619
  CommitCvmComposeFileUpdateRequestSchema,
3548
4620
  CommitCvmComposeFileUpdateSchema,
3549
4621
  CommitCvmProvisionRequestSchema,
3550
4622
  CommitCvmProvisionSchema,
4623
+ CreditsInfoSchema,
3551
4624
  CurrentUserSchema,
4625
+ CurrentUserV20251028Schema,
4626
+ CurrentUserV20260121Schema,
3552
4627
  CvmAttestationSchema,
4628
+ CvmBasicInfoV20251028Schema,
3553
4629
  CvmContainersStatsSchema,
4630
+ CvmDetailV20251028Schema,
4631
+ CvmGatewayInfoV20260121Schema,
3554
4632
  CvmIdBaseSchema,
3555
4633
  CvmIdObjectSchema,
3556
4634
  CvmIdSchema,
3557
- CvmInfoSchema,
3558
- CvmLegacyDetailSchema,
4635
+ CvmInfoDetailV20260121Schema,
4636
+ CvmInfoV20251028Schema,
4637
+ CvmInfoV20260121Schema,
4638
+ CvmKmsInfoV20260121Schema,
3559
4639
  CvmNetworkSchema,
3560
- CvmNetworkUrlsSchema,
3561
- CvmNodeSchema,
4640
+ CvmNetworkUrlsV20251028Schema,
4641
+ CvmNodeInfoV20260121Schema,
4642
+ CvmNodeV20251028Schema,
4643
+ CvmOsInfoV20260121Schema,
4644
+ CvmProgressInfoV20260121Schema,
4645
+ CvmRefSchema,
4646
+ CvmResourceInfoV20260121Schema,
3562
4647
  CvmStateSchema,
4648
+ CvmStatusSchema,
3563
4649
  CvmSystemInfoSchema,
3564
4650
  DeleteCvmRequestSchema,
3565
4651
  DeployAppAuthRequestSchema,
3566
4652
  DeployAppAuthSchema,
4653
+ DstackAppFullResponseV20251028Schema,
4654
+ DstackAppFullResponseV20260121Schema,
4655
+ DstackAppListResponseV20251028Schema,
4656
+ DstackAppListResponseV20260121Schema,
4657
+ DstackAppMinimalResponseV20251028Schema,
4658
+ DstackAppMinimalResponseV20260121Schema,
4659
+ DstackAppWithCvmResponseV20251028Schema,
4660
+ DstackAppWithCvmResponseV20260121Schema,
3567
4661
  FamilyGroupSchema,
3568
4662
  FamilyInstanceTypesResponseSchema,
4663
+ GetAppCvmsRequestSchema,
3569
4664
  GetAppEnvEncryptPubKeyRequestSchema,
3570
4665
  GetAppEnvEncryptPubKeySchema,
4666
+ GetAppInfoRequestSchema,
4667
+ GetAppListRequestSchema,
4668
+ GetAppRevisionDetailRequestSchema,
4669
+ GetAppRevisionsRequestSchema,
3571
4670
  GetAvailableOSImagesRequestSchema,
3572
4671
  GetAvailableOSImagesResponseSchema,
3573
4672
  GetCvmAttestationRequestSchema,
@@ -3576,29 +4675,39 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3576
4675
  GetCvmDockerComposeRequestSchema,
3577
4676
  GetCvmInfoRequestSchema,
3578
4677
  GetCvmListRequestSchema,
3579
- GetCvmListSchema,
3580
4678
  GetCvmNetworkRequestSchema,
4679
+ GetCvmPreLaunchScriptRequestSchema,
3581
4680
  GetCvmStateRequestSchema,
3582
4681
  GetCvmStatsRequestSchema,
4682
+ GetCvmStatusBatchRequestSchema,
4683
+ GetCvmStatusBatchResponseSchema,
3583
4684
  GetKmsInfoRequestSchema,
3584
4685
  GetKmsListRequestSchema,
3585
4686
  GetKmsListSchema,
4687
+ GetWorkspaceNodesSchema,
4688
+ GetWorkspaceQuotasSchema,
3586
4689
  InstanceTypeSchema,
3587
4690
  KmsInfoSchema,
4691
+ KmsTypeSchema,
3588
4692
  ListFamilyInstanceTypesRequestSchema,
3589
4693
  ListWorkspacesSchema,
3590
- ManagedUserSchema,
4694
+ MachineInfoV20251028Schema,
4695
+ ManagedUserV20251028Schema,
3591
4696
  MaxRetriesExceededError,
3592
4697
  NetworkError,
3593
4698
  NextAppIdsRequestSchema,
3594
4699
  NextAppIdsSchema,
4700
+ NodeInfoSchema,
3595
4701
  OSImageVariantSchema,
4702
+ PaginatedCvmInfosV20251028Schema,
4703
+ PaginatedCvmInfosV20260121Schema,
3596
4704
  PaginationMetadataSchema,
3597
4705
  PhalaCloudError,
3598
4706
  ProvisionCvmComposeFileUpdateRequestSchema,
3599
4707
  ProvisionCvmComposeFileUpdateResultSchema,
3600
4708
  ProvisionCvmRequestSchema,
3601
4709
  ProvisionCvmSchema,
4710
+ QuotaMetricSchema,
3602
4711
  RequestError,
3603
4712
  ResourceError,
3604
4713
  RestartCvmRequestSchema,
@@ -3610,15 +4719,27 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3610
4719
  StopCvmRequestSchema,
3611
4720
  TransactionError,
3612
4721
  UnknownError,
4722
+ UpdateCvmEnvsRequestSchema,
4723
+ UpdateCvmEnvsResultSchema,
3613
4724
  UpdateCvmResourcesRequestSchema,
3614
4725
  UpdateCvmVisibilityRequestSchema,
4726
+ UpdateDockerComposeRequestSchema,
4727
+ UpdateDockerComposeResultSchema,
3615
4728
  UpdateOsImageRequestSchema,
4729
+ UpdatePreLaunchScriptRequestSchema,
4730
+ UpdatePreLaunchScriptResultSchema,
4731
+ UserInfoSchema,
4732
+ UserRefSchema,
3616
4733
  VMSchema,
3617
4734
  ValidationError,
3618
- VmInfoSchema,
4735
+ VmInfoV20251028Schema,
3619
4736
  WalletError,
3620
4737
  WatchAbortedError,
3621
4738
  WatchCvmStateRequestSchema,
4739
+ WorkspaceInfoSchema,
4740
+ WorkspaceQuotasSchema,
4741
+ WorkspaceRefSchema,
4742
+ WorkspaceReservedGpuQuotaSchema,
3622
4743
  WorkspaceResponseSchema,
3623
4744
  addComposeHash,
3624
4745
  addNetwork,
@@ -3628,6 +4749,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3628
4749
  checkNetworkStatus,
3629
4750
  commitCvmComposeFileUpdate,
3630
4751
  commitCvmProvision,
4752
+ convertToHostname,
3631
4753
  createBaseClient,
3632
4754
  createClient,
3633
4755
  createClientsFromBrowser,
@@ -3648,7 +4770,14 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3648
4770
  formatErrorMessage,
3649
4771
  formatStructuredError,
3650
4772
  formatValidationErrors,
4773
+ generateDefaultCvmName,
4774
+ generateFallbackHostname,
4775
+ getAppCvms,
3651
4776
  getAppEnvEncryptPubKey,
4777
+ getAppInfo,
4778
+ getAppList,
4779
+ getAppRevisionDetail,
4780
+ getAppRevisions,
3652
4781
  getAvailableNodes,
3653
4782
  getAvailableOsImages,
3654
4783
  getComposeHash,
@@ -3660,13 +4789,18 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3660
4789
  getCvmInfo,
3661
4790
  getCvmList,
3662
4791
  getCvmNetwork,
4792
+ getCvmPreLaunchScript,
3663
4793
  getCvmState,
3664
4794
  getCvmStats,
4795
+ getCvmStatusBatch,
3665
4796
  getErrorMessage,
3666
4797
  getKmsInfo,
3667
4798
  getKmsList,
3668
4799
  getValidationFields,
3669
4800
  getWorkspace,
4801
+ getWorkspaceNodes,
4802
+ getWorkspaceQuotas,
4803
+ isValidHostname,
3670
4804
  listAllInstanceTypeFamilies,
3671
4805
  listFamilyInstanceTypes,
3672
4806
  listWorkspaces,
@@ -3684,7 +4818,12 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3684
4818
  safeCommitCvmProvision,
3685
4819
  safeDeleteCvm,
3686
4820
  safeDeployAppAuth,
4821
+ safeGetAppCvms,
3687
4822
  safeGetAppEnvEncryptPubKey,
4823
+ safeGetAppInfo,
4824
+ safeGetAppList,
4825
+ safeGetAppRevisionDetail,
4826
+ safeGetAppRevisions,
3688
4827
  safeGetAvailableNodes,
3689
4828
  safeGetAvailableOsImages,
3690
4829
  safeGetCurrentUser,
@@ -3695,11 +4834,15 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3695
4834
  safeGetCvmInfo,
3696
4835
  safeGetCvmList,
3697
4836
  safeGetCvmNetwork,
4837
+ safeGetCvmPreLaunchScript,
3698
4838
  safeGetCvmState,
3699
4839
  safeGetCvmStats,
4840
+ safeGetCvmStatusBatch,
3700
4841
  safeGetKmsInfo,
3701
4842
  safeGetKmsList,
3702
4843
  safeGetWorkspace,
4844
+ safeGetWorkspaceNodes,
4845
+ safeGetWorkspaceQuotas,
3703
4846
  safeListAllInstanceTypeFamilies,
3704
4847
  safeListFamilyInstanceTypes,
3705
4848
  safeListWorkspaces,
@@ -3710,18 +4853,24 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
3710
4853
  safeShutdownCvm,
3711
4854
  safeStartCvm,
3712
4855
  safeStopCvm,
4856
+ safeUpdateCvmEnvs,
3713
4857
  safeUpdateCvmResources,
3714
4858
  safeUpdateCvmVisibility,
4859
+ safeUpdateDockerCompose,
3715
4860
  safeUpdateOsImage,
4861
+ safeUpdatePreLaunchScript,
3716
4862
  safeValidateActionParameters,
3717
4863
  shutdownCvm,
3718
4864
  sortObject,
3719
4865
  startCvm,
3720
4866
  stopCvm,
3721
4867
  switchToNetwork,
4868
+ updateCvmEnvs,
3722
4869
  updateCvmResources,
3723
4870
  updateCvmVisibility,
4871
+ updateDockerCompose,
3724
4872
  updateOsImage,
4873
+ updatePreLaunchScript,
3725
4874
  validateActionParameters,
3726
4875
  validateNetworkPrerequisites,
3727
4876
  verifyEnvEncryptPublicKey,