@phala/cloud 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -45,12 +45,15 @@ __export(index_exports, {
45
45
  DeployAppAuthRequestSchema: () => DeployAppAuthRequestSchema,
46
46
  DeployAppAuthSchema: () => DeployAppAuthSchema,
47
47
  GetAppEnvEncryptPubKeySchema: () => GetAppEnvEncryptPubKeySchema,
48
- GetCvmComposeFileResultSchema: () => GetCvmComposeFileResultSchema,
49
48
  GetCvmListSchema: () => GetCvmListSchema,
50
49
  GetKmsListSchema: () => GetKmsListSchema,
50
+ InstanceTypeSchema: () => InstanceTypeSchema,
51
51
  KmsInfoSchema: () => KmsInfoSchema,
52
+ ListWorkspacesSchema: () => ListWorkspacesSchema,
52
53
  ManagedUserSchema: () => ManagedUserSchema,
53
54
  NetworkError: () => NetworkError,
55
+ PaginatedInstanceTypesSchema: () => PaginatedInstanceTypesSchema,
56
+ PaginationMetadataSchema: () => PaginationMetadataSchema,
54
57
  ProvisionCvmComposeFileUpdateRequestSchema: () => ProvisionCvmComposeFileUpdateRequestSchema,
55
58
  ProvisionCvmComposeFileUpdateResultSchema: () => ProvisionCvmComposeFileUpdateResultSchema,
56
59
  ProvisionCvmRequestSchema: () => ProvisionCvmRequestSchema,
@@ -60,6 +63,7 @@ __export(index_exports, {
60
63
  TransactionError: () => TransactionError,
61
64
  VmInfoSchema: () => VmInfoSchema,
62
65
  WalletError: () => WalletError,
66
+ WorkspaceResponseSchema: () => WorkspaceResponseSchema,
63
67
  addComposeHash: () => addComposeHash,
64
68
  addNetwork: () => addNetwork,
65
69
  asHex: () => asHex,
@@ -90,6 +94,9 @@ __export(index_exports, {
90
94
  getErrorMessage: () => getErrorMessage,
91
95
  getKmsInfo: () => getKmsInfo,
92
96
  getKmsList: () => getKmsList,
97
+ getWorkspace: () => getWorkspace,
98
+ listInstanceTypes: () => listInstanceTypes,
99
+ listWorkspaces: () => listWorkspaces,
93
100
  parseEnv: () => parseEnv,
94
101
  parseEnvVars: () => parseEnvVars,
95
102
  provisionCvm: () => provisionCvm,
@@ -106,6 +113,9 @@ __export(index_exports, {
106
113
  safeGetCvmList: () => safeGetCvmList,
107
114
  safeGetKmsInfo: () => safeGetKmsInfo,
108
115
  safeGetKmsList: () => safeGetKmsList,
116
+ safeGetWorkspace: () => safeGetWorkspace,
117
+ safeListInstanceTypes: () => safeListInstanceTypes,
118
+ safeListWorkspaces: () => safeListWorkspaces,
109
119
  safeProvisionCvm: () => safeProvisionCvm,
110
120
  safeProvisionCvmComposeFileUpdate: () => safeProvisionCvmComposeFileUpdate,
111
121
  safeValidateActionParameters: () => safeValidateActionParameters,
@@ -224,22 +234,31 @@ var Client = class {
224
234
  };
225
235
  const version = resolvedConfig.version && SUPPORTED_API_VERSIONS.includes(resolvedConfig.version) ? resolvedConfig.version : SUPPORTED_API_VERSIONS[0];
226
236
  this.config = resolvedConfig;
227
- if (!resolvedConfig.apiKey) {
237
+ if (!resolvedConfig.useCookieAuth && !resolvedConfig.apiKey) {
228
238
  throw new Error(
229
239
  "API key is required. Provide it via config.apiKey or set PHALA_CLOUD_API_KEY environment variable."
230
240
  );
231
241
  }
232
- const { apiKey, baseURL, timeout, headers, ...fetchOptions } = resolvedConfig;
242
+ const { apiKey, baseURL, timeout, headers, useCookieAuth, onResponseError, ...fetchOptions } = resolvedConfig;
233
243
  const requestHeaders = {
234
- "X-API-Key": apiKey,
235
244
  "X-Phala-Version": version,
236
- "Content-Type": "application/json",
237
- ...headers || {}
245
+ "Content-Type": "application/json"
238
246
  };
247
+ if (headers && typeof headers === "object") {
248
+ Object.entries(headers).forEach(([key, value]) => {
249
+ if (typeof value === "string") {
250
+ requestHeaders[key] = value;
251
+ }
252
+ });
253
+ }
254
+ if (!useCookieAuth && apiKey) {
255
+ requestHeaders["X-API-Key"] = apiKey;
256
+ }
239
257
  this.fetchInstance = import_ofetch.ofetch.create({
240
258
  baseURL,
241
259
  timeout: timeout || 3e4,
242
260
  headers: requestHeaders,
261
+ ...useCookieAuth ? { credentials: "include" } : {},
243
262
  ...fetchOptions,
244
263
  // Log request in cURL format
245
264
  onRequest({ request, options }) {
@@ -290,6 +309,9 @@ var Client = class {
290
309
  formatResponse(response.status, response.statusText, response.headers, response._data)
291
310
  );
292
311
  }
312
+ if (onResponseError) {
313
+ onResponseError({ request, response, options });
314
+ }
293
315
  }
294
316
  });
295
317
  }
@@ -1227,7 +1249,10 @@ var import_zod5 = require("zod");
1227
1249
  var AvailableOSImageSchema = import_zod5.z.object({
1228
1250
  name: import_zod5.z.string(),
1229
1251
  is_dev: import_zod5.z.boolean(),
1230
- version: import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()]),
1252
+ version: import_zod5.z.union([
1253
+ import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()]),
1254
+ import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()])
1255
+ ]),
1231
1256
  os_image_hash: import_zod5.z.string().nullable().optional()
1232
1257
  }).passthrough();
1233
1258
  var TeepodCapacitySchema = import_zod5.z.object({
@@ -2067,8 +2092,11 @@ async function safeAddComposeHash(request, parameters) {
2067
2092
  }
2068
2093
 
2069
2094
  // src/actions/get_cvm_compose_file.ts
2095
+ var import_zod11 = require("zod");
2096
+
2097
+ // src/types/app_compose.ts
2070
2098
  var import_zod10 = require("zod");
2071
- var GetCvmComposeFileResultSchema = import_zod10.z.object({
2099
+ var LooseAppComposeSchema = import_zod10.z.object({
2072
2100
  allowed_envs: import_zod10.z.array(import_zod10.z.string()).optional(),
2073
2101
  docker_compose_file: import_zod10.z.string(),
2074
2102
  features: import_zod10.z.array(import_zod10.z.string()).optional(),
@@ -2080,14 +2108,16 @@ var GetCvmComposeFileResultSchema = import_zod10.z.object({
2080
2108
  tproxy_enabled: import_zod10.z.boolean().optional(),
2081
2109
  pre_launch_script: import_zod10.z.string().optional()
2082
2110
  }).passthrough();
2083
- var GetCvmComposeFileRequestSchema = import_zod10.z.object({
2084
- id: import_zod10.z.string().optional(),
2085
- uuid: import_zod10.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(),
2086
- app_id: import_zod10.z.string().refine(
2111
+
2112
+ // src/actions/get_cvm_compose_file.ts
2113
+ var GetCvmComposeFileRequestSchema = import_zod11.z.object({
2114
+ id: import_zod11.z.string().optional(),
2115
+ uuid: import_zod11.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(),
2116
+ app_id: import_zod11.z.string().refine(
2087
2117
  (val) => !val.startsWith("app_") && val.length === 40,
2088
2118
  "app_id should be 40 characters without prefix"
2089
2119
  ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2090
- instance_id: import_zod10.z.string().refine(
2120
+ instance_id: import_zod11.z.string().refine(
2091
2121
  (val) => !val.startsWith("instance_") && val.length === 40,
2092
2122
  "instance_id should be 40 characters without prefix"
2093
2123
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
@@ -2104,7 +2134,7 @@ async function getCvmComposeFile(client, request, parameters) {
2104
2134
  if (parameters?.schema === false) {
2105
2135
  return response;
2106
2136
  }
2107
- const schema = parameters?.schema || GetCvmComposeFileResultSchema;
2137
+ const schema = parameters?.schema || LooseAppComposeSchema;
2108
2138
  return schema.parse(response);
2109
2139
  }
2110
2140
  async function safeGetCvmComposeFile(client, request, parameters) {
@@ -2119,44 +2149,38 @@ async function safeGetCvmComposeFile(client, request, parameters) {
2119
2149
  if (parameters?.schema === false) {
2120
2150
  return { success: true, data: httpResult.data };
2121
2151
  }
2122
- const schema = parameters?.schema || GetCvmComposeFileResultSchema;
2152
+ const schema = parameters?.schema || LooseAppComposeSchema;
2123
2153
  return schema.safeParse(httpResult.data);
2124
2154
  }
2125
2155
 
2126
2156
  // src/actions/provision_cvm_compose_file_update.ts
2127
- var import_zod11 = require("zod");
2128
- var ProvisionCvmComposeFileUpdateRequestSchema = import_zod11.z.object({
2129
- id: import_zod11.z.string().optional(),
2130
- uuid: import_zod11.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(),
2131
- app_id: import_zod11.z.string().refine(
2157
+ var import_zod12 = require("zod");
2158
+ var ProvisionCvmComposeFileUpdateRequestSchema = import_zod12.z.object({
2159
+ id: import_zod12.z.string().optional(),
2160
+ uuid: import_zod12.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(),
2161
+ app_id: import_zod12.z.string().refine(
2132
2162
  (val) => !val.startsWith("app_") && val.length === 40,
2133
2163
  "app_id should be 40 characters without prefix"
2134
2164
  ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2135
- instance_id: import_zod11.z.string().refine(
2165
+ instance_id: import_zod12.z.string().refine(
2136
2166
  (val) => !val.startsWith("instance_") && val.length === 40,
2137
2167
  "instance_id should be 40 characters without prefix"
2138
2168
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
2139
- app_compose: import_zod11.z.object({
2140
- allowed_envs: import_zod11.z.array(import_zod11.z.string()).optional(),
2141
- docker_compose_file: import_zod11.z.string().min(1, "Docker compose file is required"),
2142
- name: import_zod11.z.string(),
2143
- kms_enabled: import_zod11.z.boolean().optional(),
2144
- public_logs: import_zod11.z.boolean().optional(),
2145
- public_sysinfo: import_zod11.z.boolean().optional(),
2146
- pre_launch_script: import_zod11.z.string().optional()
2147
- })
2169
+ app_compose: LooseAppComposeSchema,
2170
+ update_env_vars: import_zod12.z.boolean().optional().nullable()
2148
2171
  }).refine(
2149
2172
  (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2150
2173
  "One of id, uuid, app_id, or instance_id must be provided"
2151
2174
  ).transform((data) => ({
2152
2175
  cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2153
2176
  request: data.app_compose,
2177
+ update_env_vars: data.update_env_vars,
2154
2178
  _raw: data
2155
2179
  }));
2156
- var ProvisionCvmComposeFileUpdateResultSchema = import_zod11.z.object({
2157
- app_id: import_zod11.z.string().nullable(),
2158
- device_id: import_zod11.z.string().nullable(),
2159
- compose_hash: import_zod11.z.string(),
2180
+ var ProvisionCvmComposeFileUpdateResultSchema = import_zod12.z.object({
2181
+ app_id: import_zod12.z.string().nullable(),
2182
+ device_id: import_zod12.z.string().nullable(),
2183
+ compose_hash: import_zod12.z.string(),
2160
2184
  kms_info: KmsInfoSchema.nullable().optional()
2161
2185
  }).passthrough();
2162
2186
  async function provisionCvmComposeFileUpdate(client, request, parameters) {
@@ -2191,21 +2215,22 @@ async function safeProvisionCvmComposeFileUpdate(client, request, parameters) {
2191
2215
  }
2192
2216
 
2193
2217
  // src/actions/commit_cvm_compose_file_update.ts
2194
- var import_zod12 = require("zod");
2195
- var CommitCvmComposeFileUpdateRequestSchema = import_zod12.z.object({
2196
- id: import_zod12.z.string().optional(),
2197
- uuid: import_zod12.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(),
2198
- app_id: import_zod12.z.string().refine(
2218
+ var import_zod13 = require("zod");
2219
+ var CommitCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
2220
+ id: import_zod13.z.string().optional(),
2221
+ 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(),
2222
+ app_id: import_zod13.z.string().refine(
2199
2223
  (val) => !val.startsWith("app_") && val.length === 40,
2200
2224
  "app_id should be 40 characters without prefix"
2201
2225
  ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2202
- instance_id: import_zod12.z.string().refine(
2226
+ instance_id: import_zod13.z.string().refine(
2203
2227
  (val) => !val.startsWith("instance_") && val.length === 40,
2204
2228
  "instance_id should be 40 characters without prefix"
2205
2229
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
2206
- compose_hash: import_zod12.z.string().min(1, "Compose hash is required"),
2207
- encrypted_env: import_zod12.z.string().optional(),
2208
- env_keys: import_zod12.z.array(import_zod12.z.string()).optional()
2230
+ compose_hash: import_zod13.z.string().min(1, "Compose hash is required"),
2231
+ encrypted_env: import_zod13.z.string().optional(),
2232
+ env_keys: import_zod13.z.array(import_zod13.z.string()).optional(),
2233
+ update_env_vars: import_zod13.z.boolean().optional().nullable()
2209
2234
  }).refine(
2210
2235
  (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2211
2236
  "One of id, uuid, app_id, or instance_id must be provided"
@@ -2214,9 +2239,10 @@ var CommitCvmComposeFileUpdateRequestSchema = import_zod12.z.object({
2214
2239
  compose_hash: data.compose_hash,
2215
2240
  encrypted_env: data.encrypted_env,
2216
2241
  env_keys: data.env_keys,
2242
+ update_env_vars: !!data.update_env_vars,
2217
2243
  _raw: data
2218
2244
  }));
2219
- var CommitCvmComposeFileUpdateSchema = import_zod12.z.any().transform(() => void 0);
2245
+ var CommitCvmComposeFileUpdateSchema = import_zod13.z.any().transform(() => void 0);
2220
2246
  async function commitCvmComposeFileUpdate(client, request, parameters) {
2221
2247
  const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
2222
2248
  const response = await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
@@ -2251,17 +2277,17 @@ async function safeCommitCvmComposeFileUpdate(client, request, parameters) {
2251
2277
  }
2252
2278
 
2253
2279
  // src/actions/get_app_env_encrypt_pubkey.ts
2254
- var import_zod13 = require("zod");
2255
- var GetAppEnvEncryptPubKeyRequestSchema = import_zod13.z.object({
2256
- kms: import_zod13.z.string().min(1, "KMS ID or slug is required"),
2257
- app_id: import_zod13.z.string().refine(
2280
+ var import_zod14 = require("zod");
2281
+ var GetAppEnvEncryptPubKeyRequestSchema = import_zod14.z.object({
2282
+ kms: import_zod14.z.string().min(1, "KMS ID or slug is required"),
2283
+ app_id: import_zod14.z.string().refine(
2258
2284
  (val) => val.length === 40 || val.startsWith("0x") && val.length === 42,
2259
2285
  "App ID must be exactly 40 characters or 42 characters with 0x prefix"
2260
2286
  )
2261
2287
  }).strict();
2262
- var GetAppEnvEncryptPubKeySchema = import_zod13.z.object({
2263
- public_key: import_zod13.z.string(),
2264
- signature: import_zod13.z.string()
2288
+ var GetAppEnvEncryptPubKeySchema = import_zod14.z.object({
2289
+ public_key: import_zod14.z.string(),
2290
+ signature: import_zod14.z.string()
2265
2291
  }).strict();
2266
2292
  var getAppEnvEncryptPubKey = async (client, payload, parameters) => {
2267
2293
  const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
@@ -2298,15 +2324,15 @@ var safeGetAppEnvEncryptPubKey = async (client, payload, parameters) => {
2298
2324
  };
2299
2325
 
2300
2326
  // src/actions/get_cvm_info.ts
2301
- var import_zod14 = require("zod");
2302
- var GetCvmInfoRequestSchema = import_zod14.z.object({
2303
- id: import_zod14.z.string().optional(),
2304
- 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(),
2305
- app_id: import_zod14.z.string().refine(
2327
+ var import_zod15 = require("zod");
2328
+ var GetCvmInfoRequestSchema = import_zod15.z.object({
2329
+ id: import_zod15.z.string().optional(),
2330
+ 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(),
2331
+ app_id: import_zod15.z.string().refine(
2306
2332
  (val) => !val.startsWith("app_") && val.length === 40,
2307
2333
  "app_id should be 40 characters without prefix"
2308
2334
  ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2309
- instance_id: import_zod14.z.string().refine(
2335
+ instance_id: import_zod15.z.string().refine(
2310
2336
  (val) => !val.startsWith("instance_") && val.length === 40,
2311
2337
  "instance_id should be 40 characters without prefix"
2312
2338
  ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
@@ -2352,18 +2378,18 @@ async function safeGetCvmInfo(client, request, parameters) {
2352
2378
  }
2353
2379
 
2354
2380
  // src/actions/get_cvm_list.ts
2355
- var import_zod15 = require("zod");
2356
- var GetCvmListRequestSchema = import_zod15.z.object({
2357
- page: import_zod15.z.number().int().min(1).optional(),
2358
- page_size: import_zod15.z.number().int().min(1).optional(),
2359
- node_id: import_zod15.z.number().int().min(1).optional()
2381
+ var import_zod16 = require("zod");
2382
+ var GetCvmListRequestSchema = import_zod16.z.object({
2383
+ page: import_zod16.z.number().int().min(1).optional(),
2384
+ page_size: import_zod16.z.number().int().min(1).optional(),
2385
+ node_id: import_zod16.z.number().int().min(1).optional()
2360
2386
  }).strict();
2361
- var GetCvmListSchema = import_zod15.z.object({
2362
- items: import_zod15.z.array(CvmInfoSchema),
2363
- total: import_zod15.z.number(),
2364
- page: import_zod15.z.number(),
2365
- page_size: import_zod15.z.number(),
2366
- pages: import_zod15.z.number()
2387
+ var GetCvmListSchema = import_zod16.z.object({
2388
+ items: import_zod16.z.array(CvmInfoSchema),
2389
+ total: import_zod16.z.number(),
2390
+ page: import_zod16.z.number(),
2391
+ page_size: import_zod16.z.number(),
2392
+ pages: import_zod16.z.number()
2367
2393
  }).strict();
2368
2394
  async function getCvmList(client, request, parameters) {
2369
2395
  const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
@@ -2400,9 +2426,9 @@ async function safeGetCvmList(client, request, parameters) {
2400
2426
  }
2401
2427
 
2402
2428
  // src/actions/get_kms_info.ts
2403
- var import_zod16 = require("zod");
2404
- var GetKmsInfoRequestSchema = import_zod16.z.object({
2405
- kms_id: import_zod16.z.string().min(1, "KMS ID is required")
2429
+ var import_zod17 = require("zod");
2430
+ var GetKmsInfoRequestSchema = import_zod17.z.object({
2431
+ kms_id: import_zod17.z.string().min(1, "KMS ID is required")
2406
2432
  });
2407
2433
  async function getKmsInfo(client, request, parameters) {
2408
2434
  const validatedRequest = GetKmsInfoRequestSchema.parse(request);
@@ -2436,18 +2462,18 @@ async function safeGetKmsInfo(client, request, parameters) {
2436
2462
  }
2437
2463
 
2438
2464
  // src/actions/get_kms_list.ts
2439
- var import_zod17 = require("zod");
2440
- var GetKmsListRequestSchema = import_zod17.z.object({
2441
- page: import_zod17.z.number().int().min(1).optional(),
2442
- page_size: import_zod17.z.number().int().min(1).optional(),
2443
- is_onchain: import_zod17.z.boolean().optional()
2465
+ var import_zod18 = require("zod");
2466
+ var GetKmsListRequestSchema = import_zod18.z.object({
2467
+ page: import_zod18.z.number().int().min(1).optional(),
2468
+ page_size: import_zod18.z.number().int().min(1).optional(),
2469
+ is_onchain: import_zod18.z.boolean().optional()
2444
2470
  }).strict();
2445
- var GetKmsListSchema = import_zod17.z.object({
2446
- items: import_zod17.z.array(KmsInfoSchema),
2447
- total: import_zod17.z.number(),
2448
- page: import_zod17.z.number(),
2449
- page_size: import_zod17.z.number(),
2450
- pages: import_zod17.z.number()
2471
+ var GetKmsListSchema = import_zod18.z.object({
2472
+ items: import_zod18.z.array(KmsInfoSchema),
2473
+ total: import_zod18.z.number(),
2474
+ page: import_zod18.z.number(),
2475
+ page_size: import_zod18.z.number(),
2476
+ pages: import_zod18.z.number()
2451
2477
  }).strict();
2452
2478
  async function getKmsList(client, request, parameters) {
2453
2479
  const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
@@ -2483,6 +2509,148 @@ async function safeGetKmsList(client, request, parameters) {
2483
2509
  return validationResult;
2484
2510
  }
2485
2511
 
2512
+ // src/actions/workspaces/list_workspaces.ts
2513
+ var import_zod19 = require("zod");
2514
+ var WorkspaceResponseSchema = import_zod19.z.object({
2515
+ id: import_zod19.z.string(),
2516
+ name: import_zod19.z.string(),
2517
+ slug: import_zod19.z.string().nullable(),
2518
+ tier: import_zod19.z.string(),
2519
+ role: import_zod19.z.string(),
2520
+ created_at: import_zod19.z.string()
2521
+ }).passthrough();
2522
+ var PaginationMetadataSchema = import_zod19.z.object({
2523
+ has_more: import_zod19.z.boolean(),
2524
+ next_cursor: import_zod19.z.string().nullable(),
2525
+ total: import_zod19.z.number().nullable()
2526
+ }).passthrough();
2527
+ var ListWorkspacesSchema = import_zod19.z.object({
2528
+ data: import_zod19.z.array(WorkspaceResponseSchema),
2529
+ pagination: PaginationMetadataSchema
2530
+ }).passthrough();
2531
+ async function listWorkspaces(client, parameters) {
2532
+ validateActionParameters(parameters);
2533
+ const queryParams = new URLSearchParams();
2534
+ if (parameters?.cursor) queryParams.append("cursor", parameters.cursor);
2535
+ if (parameters?.limit) queryParams.append("limit", parameters.limit.toString());
2536
+ const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2537
+ const response = await client.get(url);
2538
+ if (parameters?.schema === false) {
2539
+ return response;
2540
+ }
2541
+ const schema = parameters?.schema || ListWorkspacesSchema;
2542
+ return schema.parse(response);
2543
+ }
2544
+ async function safeListWorkspaces(client, parameters) {
2545
+ const parameterValidationError = safeValidateActionParameters(parameters);
2546
+ if (parameterValidationError) {
2547
+ return parameterValidationError;
2548
+ }
2549
+ const queryParams = new URLSearchParams();
2550
+ if (parameters?.cursor) queryParams.append("cursor", parameters.cursor);
2551
+ if (parameters?.limit) queryParams.append("limit", parameters.limit.toString());
2552
+ const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2553
+ const httpResult = await client.safeGet(url);
2554
+ if (!httpResult.success) {
2555
+ return httpResult;
2556
+ }
2557
+ if (parameters?.schema === false) {
2558
+ return { success: true, data: httpResult.data };
2559
+ }
2560
+ const schema = parameters?.schema || ListWorkspacesSchema;
2561
+ return schema.safeParse(httpResult.data);
2562
+ }
2563
+
2564
+ // src/actions/workspaces/get_workspace.ts
2565
+ async function getWorkspace(client, teamSlug, parameters) {
2566
+ validateActionParameters(parameters);
2567
+ const response = await client.get(`/workspaces/${teamSlug}`);
2568
+ if (parameters?.schema === false) {
2569
+ return response;
2570
+ }
2571
+ const schema = parameters?.schema || WorkspaceResponseSchema;
2572
+ return schema.parse(response);
2573
+ }
2574
+ async function safeGetWorkspace(client, teamSlug, parameters) {
2575
+ const parameterValidationError = safeValidateActionParameters(parameters);
2576
+ if (parameterValidationError) {
2577
+ return parameterValidationError;
2578
+ }
2579
+ const httpResult = await client.safeGet(`/workspaces/${teamSlug}`);
2580
+ if (!httpResult.success) {
2581
+ return httpResult;
2582
+ }
2583
+ if (parameters?.schema === false) {
2584
+ return { success: true, data: httpResult.data };
2585
+ }
2586
+ const schema = parameters?.schema || WorkspaceResponseSchema;
2587
+ return schema.safeParse(httpResult.data);
2588
+ }
2589
+
2590
+ // src/actions/list-instance-types.ts
2591
+ var import_zod20 = require("zod");
2592
+ var ListInstanceTypesRequestSchema = import_zod20.z.object({
2593
+ page: import_zod20.z.number().int().min(1).optional().default(1),
2594
+ page_size: import_zod20.z.number().int().min(1).max(1e3).optional().default(100)
2595
+ }).strict();
2596
+ var InstanceTypeSchema = import_zod20.z.object({
2597
+ id: import_zod20.z.string(),
2598
+ name: import_zod20.z.string(),
2599
+ description: import_zod20.z.string(),
2600
+ vcpu: import_zod20.z.number(),
2601
+ memory_mb: import_zod20.z.number(),
2602
+ hourly_rate: import_zod20.z.string(),
2603
+ requires_gpu: import_zod20.z.boolean(),
2604
+ public: import_zod20.z.boolean(),
2605
+ enabled: import_zod20.z.boolean()
2606
+ }).passthrough();
2607
+ var PaginatedInstanceTypesSchema = import_zod20.z.object({
2608
+ items: import_zod20.z.array(InstanceTypeSchema),
2609
+ total: import_zod20.z.number(),
2610
+ page: import_zod20.z.number(),
2611
+ page_size: import_zod20.z.number(),
2612
+ pages: import_zod20.z.number()
2613
+ }).strict();
2614
+ async function listInstanceTypes(client, request, parameters) {
2615
+ const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
2616
+ validateActionParameters(parameters);
2617
+ const queryParams = new URLSearchParams();
2618
+ queryParams.append("page", validatedRequest.page.toString());
2619
+ queryParams.append("page_size", validatedRequest.page_size.toString());
2620
+ const response = await client.get(`/api/instance-types?${queryParams.toString()}`);
2621
+ if (parameters?.schema === false) {
2622
+ return response;
2623
+ }
2624
+ const schema = parameters?.schema || PaginatedInstanceTypesSchema;
2625
+ return schema.parse(response);
2626
+ }
2627
+ async function safeListInstanceTypes(client, request, parameters) {
2628
+ const requestValidation = ListInstanceTypesRequestSchema.safeParse(request ?? {});
2629
+ if (!requestValidation.success) {
2630
+ return requestValidation;
2631
+ }
2632
+ const parameterValidationError = safeValidateActionParameters(parameters);
2633
+ if (parameterValidationError) {
2634
+ return parameterValidationError;
2635
+ }
2636
+ const queryParams = new URLSearchParams();
2637
+ queryParams.append("page", requestValidation.data.page.toString());
2638
+ queryParams.append("page_size", requestValidation.data.page_size.toString());
2639
+ const httpResult = await client.safeGet(`/api/instance-types?${queryParams.toString()}`);
2640
+ if (!httpResult.success) {
2641
+ return httpResult;
2642
+ }
2643
+ if (parameters?.schema === false) {
2644
+ return {
2645
+ success: true,
2646
+ data: httpResult.data
2647
+ };
2648
+ }
2649
+ const schema = parameters?.schema || PaginatedInstanceTypesSchema;
2650
+ const validationResult = schema.safeParse(httpResult.data);
2651
+ return validationResult;
2652
+ }
2653
+
2486
2654
  // src/parse_dotenv.ts
2487
2655
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
2488
2656
  function parseEnv(input) {
@@ -2535,12 +2703,15 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2535
2703
  DeployAppAuthRequestSchema,
2536
2704
  DeployAppAuthSchema,
2537
2705
  GetAppEnvEncryptPubKeySchema,
2538
- GetCvmComposeFileResultSchema,
2539
2706
  GetCvmListSchema,
2540
2707
  GetKmsListSchema,
2708
+ InstanceTypeSchema,
2541
2709
  KmsInfoSchema,
2710
+ ListWorkspacesSchema,
2542
2711
  ManagedUserSchema,
2543
2712
  NetworkError,
2713
+ PaginatedInstanceTypesSchema,
2714
+ PaginationMetadataSchema,
2544
2715
  ProvisionCvmComposeFileUpdateRequestSchema,
2545
2716
  ProvisionCvmComposeFileUpdateResultSchema,
2546
2717
  ProvisionCvmRequestSchema,
@@ -2550,6 +2721,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2550
2721
  TransactionError,
2551
2722
  VmInfoSchema,
2552
2723
  WalletError,
2724
+ WorkspaceResponseSchema,
2553
2725
  addComposeHash,
2554
2726
  addNetwork,
2555
2727
  asHex,
@@ -2580,6 +2752,9 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2580
2752
  getErrorMessage,
2581
2753
  getKmsInfo,
2582
2754
  getKmsList,
2755
+ getWorkspace,
2756
+ listInstanceTypes,
2757
+ listWorkspaces,
2583
2758
  parseEnv,
2584
2759
  parseEnvVars,
2585
2760
  provisionCvm,
@@ -2596,6 +2771,9 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2596
2771
  safeGetCvmList,
2597
2772
  safeGetKmsInfo,
2598
2773
  safeGetKmsList,
2774
+ safeGetWorkspace,
2775
+ safeListInstanceTypes,
2776
+ safeListWorkspaces,
2599
2777
  safeProvisionCvm,
2600
2778
  safeProvisionCvmComposeFileUpdate,
2601
2779
  safeValidateActionParameters,