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