@phala/cloud 0.1.0 → 0.1.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/actions/{add_compose_hash.d.ts → blockchains/add_compose_hash.d.ts} +1 -2
  2. package/dist/actions/{deploy_app_auth.d.ts → blockchains/deploy_app_auth.d.ts} +1 -2
  3. package/dist/actions/{commit_cvm_compose_file_update.d.ts → cvms/commit_cvm_compose_file_update.d.ts} +10 -11
  4. package/dist/actions/{commit_cvm_provision.d.ts → cvms/commit_cvm_provision.d.ts} +14 -15
  5. package/dist/actions/{get_cvm_compose_file.d.ts → cvms/get_cvm_compose_file.d.ts} +74 -6
  6. package/dist/actions/cvms/get_cvm_info.d.ts +85 -0
  7. package/dist/actions/{get_cvm_list.d.ts → cvms/get_cvm_list.d.ts} +48 -49
  8. package/dist/actions/{provision_cvm.d.ts → cvms/provision_cvm.d.ts} +16 -17
  9. package/dist/actions/{provision_cvm_compose_file_update.d.ts → cvms/provision_cvm_compose_file_update.d.ts} +153 -18
  10. package/dist/actions/get_available_nodes.d.ts +0 -1
  11. package/dist/actions/get_current_user.d.ts +35 -16
  12. package/dist/actions/index.d.ts +13 -14
  13. package/dist/actions/{get_app_env_encrypt_pubkey.d.ts → kms/get_app_env_encrypt_pubkey.d.ts} +8 -9
  14. package/dist/actions/{get_kms_info.d.ts → kms/get_kms_info.d.ts} +6 -22
  15. package/dist/actions/{get_kms_list.d.ts → kms/get_kms_list.d.ts} +6 -35
  16. package/dist/actions/list-instance-types.d.ts +0 -1
  17. package/dist/actions/workspaces/get_workspace.d.ts +0 -1
  18. package/dist/actions/workspaces/list_workspaces.d.ts +0 -1
  19. package/dist/client.d.ts +0 -1
  20. package/dist/create-client.d.ts +267 -0
  21. package/dist/index.d.ts +2 -2
  22. package/dist/index.js +858 -832
  23. package/dist/index.mjs +825 -800
  24. package/dist/parse_dotenv.d.ts +0 -1
  25. package/dist/types/app_compose.d.ts +0 -1
  26. package/dist/types/client.d.ts +0 -1
  27. package/dist/types/common.d.ts +0 -1
  28. package/dist/types/cvm_info.d.ts +34 -35
  29. package/dist/types/index.d.ts +0 -1
  30. package/dist/types/kms_info.d.ts +0 -1
  31. package/dist/types/supported_chains.d.ts +0 -1
  32. package/dist/utils/as-hex.d.ts +0 -1
  33. package/dist/utils/client-factories.d.ts +0 -1
  34. package/dist/utils/define-action.d.ts +7 -8
  35. package/dist/utils/get_compose_hash.d.ts +0 -1
  36. package/dist/utils/get_error_message.d.ts +0 -1
  37. package/dist/utils/index.d.ts +0 -1
  38. package/dist/utils/network.d.ts +0 -1
  39. package/dist/utils/transaction.d.ts +0 -1
  40. package/dist/utils/validate-parameters.d.ts +0 -1
  41. package/package.json +65 -66
  42. package/dist/actions/add_compose_hash.d.ts.map +0 -1
  43. package/dist/actions/commit_cvm_compose_file_update.d.ts.map +0 -1
  44. package/dist/actions/commit_cvm_provision.d.ts.map +0 -1
  45. package/dist/actions/deploy_app_auth.d.ts.map +0 -1
  46. package/dist/actions/get_app_env_encrypt_pubkey.d.ts.map +0 -1
  47. package/dist/actions/get_available_nodes.d.ts.map +0 -1
  48. package/dist/actions/get_current_user.d.ts.map +0 -1
  49. package/dist/actions/get_cvm_compose_file.d.ts.map +0 -1
  50. package/dist/actions/get_cvm_info.d.ts +0 -172
  51. package/dist/actions/get_cvm_info.d.ts.map +0 -1
  52. package/dist/actions/get_cvm_list.d.ts.map +0 -1
  53. package/dist/actions/get_kms_info.d.ts.map +0 -1
  54. package/dist/actions/get_kms_list.d.ts.map +0 -1
  55. package/dist/actions/index.d.ts.map +0 -1
  56. package/dist/actions/list-instance-types.d.ts.map +0 -1
  57. package/dist/actions/provision_cvm.d.ts.map +0 -1
  58. package/dist/actions/provision_cvm_compose_file_update.d.ts.map +0 -1
  59. package/dist/actions/workspaces/get_workspace.d.ts.map +0 -1
  60. package/dist/actions/workspaces/list_workspaces.d.ts.map +0 -1
  61. package/dist/client.d.ts.map +0 -1
  62. package/dist/index.d.ts.map +0 -1
  63. package/dist/parse_dotenv.d.ts.map +0 -1
  64. package/dist/types/app_compose.d.ts.map +0 -1
  65. package/dist/types/client.d.ts.map +0 -1
  66. package/dist/types/common.d.ts.map +0 -1
  67. package/dist/types/cvm_info.d.ts.map +0 -1
  68. package/dist/types/index.d.ts.map +0 -1
  69. package/dist/types/kms_info.d.ts.map +0 -1
  70. package/dist/types/supported_chains.d.ts.map +0 -1
  71. package/dist/utils/as-hex.d.ts.map +0 -1
  72. package/dist/utils/client-factories.d.ts.map +0 -1
  73. package/dist/utils/define-action.d.ts.map +0 -1
  74. package/dist/utils/get_compose_hash.d.ts.map +0 -1
  75. package/dist/utils/get_error_message.d.ts.map +0 -1
  76. package/dist/utils/index.d.ts.map +0 -1
  77. package/dist/utils/network.d.ts.map +0 -1
  78. package/dist/utils/transaction.d.ts.map +0 -1
  79. package/dist/utils/validate-parameters.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -79,7 +79,8 @@ __export(index_exports, {
79
79
  checkNetworkStatus: () => checkNetworkStatus,
80
80
  commitCvmComposeFileUpdate: () => commitCvmComposeFileUpdate,
81
81
  commitCvmProvision: () => commitCvmProvision,
82
- createClient: () => createClient,
82
+ createBaseClient: () => createClient,
83
+ createClient: () => createClient2,
83
84
  createClientsFromBrowser: () => createClientsFromBrowser,
84
85
  createClientsFromPrivateKey: () => createClientsFromPrivateKey,
85
86
  createNetworkClients: () => createNetworkClients,
@@ -459,9 +460,178 @@ function createClient(config = {}) {
459
460
  return new Client(config);
460
461
  }
461
462
 
462
- // src/types/kms_info.ts
463
+ // src/actions/get_current_user.ts
463
464
  var import_zod2 = require("zod");
464
465
 
466
+ // src/utils/validate-parameters.ts
467
+ function validateActionParameters(parameters) {
468
+ if (parameters?.schema !== void 0 && parameters?.schema !== false) {
469
+ if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
470
+ throw new Error("Invalid schema: must be a Zod schema object, false, or undefined");
471
+ }
472
+ }
473
+ }
474
+ function safeValidateActionParameters(parameters) {
475
+ if (parameters?.schema !== void 0 && parameters?.schema !== false) {
476
+ if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
477
+ return {
478
+ success: false,
479
+ error: {
480
+ name: "ZodError",
481
+ message: "Invalid schema: must be a Zod schema object, false, or undefined",
482
+ issues: [
483
+ {
484
+ code: "invalid_type",
485
+ expected: "object",
486
+ received: typeof parameters.schema,
487
+ path: ["schema"],
488
+ message: "Invalid schema: must be a Zod schema object, false, or undefined"
489
+ }
490
+ ]
491
+ }
492
+ };
493
+ }
494
+ }
495
+ return void 0;
496
+ }
497
+
498
+ // src/utils/define-action.ts
499
+ function defineSimpleAction(schema, fn) {
500
+ function action(client, parameters) {
501
+ return _actionImpl(client, parameters);
502
+ }
503
+ async function _actionImpl(client, parameters) {
504
+ validateActionParameters(parameters);
505
+ const response = await fn(client);
506
+ if (parameters?.schema === false) {
507
+ return response;
508
+ }
509
+ const actualSchema = parameters?.schema || schema;
510
+ return actualSchema.parse(response);
511
+ }
512
+ function safeAction(client, parameters) {
513
+ return _safeActionImpl(client, parameters);
514
+ }
515
+ async function _safeActionImpl(client, parameters) {
516
+ const parameterValidationError = safeValidateActionParameters(parameters);
517
+ if (parameterValidationError) {
518
+ return parameterValidationError;
519
+ }
520
+ const httpResult = await (async () => {
521
+ try {
522
+ const data = await fn(client);
523
+ return { success: true, data };
524
+ } catch (error) {
525
+ if (error && typeof error === "object" && "isRequestError" in error) {
526
+ return { success: false, error };
527
+ }
528
+ if (error && typeof error === "object" && "issues" in error) {
529
+ return { success: false, error };
530
+ }
531
+ return {
532
+ success: false,
533
+ error: {
534
+ name: "Error",
535
+ message: error instanceof Error ? error.message : String(error)
536
+ }
537
+ };
538
+ }
539
+ })();
540
+ if (!httpResult.success) {
541
+ return httpResult;
542
+ }
543
+ if (parameters?.schema === false) {
544
+ return { success: true, data: httpResult.data };
545
+ }
546
+ const actualSchema = parameters?.schema || schema;
547
+ return actualSchema.safeParse(httpResult.data);
548
+ }
549
+ return {
550
+ action,
551
+ safeAction
552
+ };
553
+ }
554
+ function defineAction(schema, fn) {
555
+ function action(client, ...args) {
556
+ const [params, parameters] = args;
557
+ return _actionImpl(client, params, parameters);
558
+ }
559
+ async function _actionImpl(client, params, parameters) {
560
+ validateActionParameters(parameters);
561
+ const response = await fn(client, params);
562
+ if (parameters?.schema === false) {
563
+ return response;
564
+ }
565
+ const actualSchema = parameters?.schema || schema;
566
+ return actualSchema.parse(response);
567
+ }
568
+ function safeAction(client, ...args) {
569
+ const [params, parameters] = args;
570
+ return _safeActionImpl(client, params, parameters);
571
+ }
572
+ async function _safeActionImpl(client, params, parameters) {
573
+ const parameterValidationError = safeValidateActionParameters(parameters);
574
+ if (parameterValidationError) {
575
+ return parameterValidationError;
576
+ }
577
+ const httpResult = await (async () => {
578
+ try {
579
+ const data = await fn(client, params);
580
+ return { success: true, data };
581
+ } catch (error) {
582
+ if (error && typeof error === "object" && "isRequestError" in error) {
583
+ return { success: false, error };
584
+ }
585
+ if (error && typeof error === "object" && "issues" in error) {
586
+ return { success: false, error };
587
+ }
588
+ return {
589
+ success: false,
590
+ error: {
591
+ name: "Error",
592
+ message: error instanceof Error ? error.message : String(error)
593
+ }
594
+ };
595
+ }
596
+ })();
597
+ if (!httpResult.success) {
598
+ return httpResult;
599
+ }
600
+ if (parameters?.schema === false) {
601
+ return { success: true, data: httpResult.data };
602
+ }
603
+ const actualSchema = parameters?.schema || schema;
604
+ return actualSchema.safeParse(httpResult.data);
605
+ }
606
+ return {
607
+ action,
608
+ safeAction
609
+ };
610
+ }
611
+
612
+ // src/actions/get_current_user.ts
613
+ var CurrentUserSchema = import_zod2.z.object({
614
+ username: import_zod2.z.string(),
615
+ email: import_zod2.z.string(),
616
+ credits: import_zod2.z.number(),
617
+ granted_credits: import_zod2.z.number(),
618
+ avatar: import_zod2.z.string(),
619
+ team_name: import_zod2.z.string(),
620
+ team_tier: import_zod2.z.string()
621
+ }).passthrough();
622
+ var { action: getCurrentUser, safeAction: safeGetCurrentUser } = defineSimpleAction(
623
+ CurrentUserSchema,
624
+ async (client) => {
625
+ return await client.get("/auth/me");
626
+ }
627
+ );
628
+
629
+ // src/actions/get_available_nodes.ts
630
+ var import_zod4 = require("zod");
631
+
632
+ // src/types/kms_info.ts
633
+ var import_zod3 = require("zod");
634
+
465
635
  // src/types/supported_chains.ts
466
636
  var import_chains = require("viem/chains");
467
637
  var SUPPORTED_CHAINS = {
@@ -471,14 +641,14 @@ var SUPPORTED_CHAINS = {
471
641
  };
472
642
 
473
643
  // src/types/kms_info.ts
474
- var KmsInfoBaseSchema = import_zod2.z.object({
475
- id: import_zod2.z.string(),
476
- slug: import_zod2.z.string().nullable(),
477
- url: import_zod2.z.string(),
478
- version: import_zod2.z.string(),
479
- chain_id: import_zod2.z.number().nullable(),
480
- kms_contract_address: import_zod2.z.string().nullable().transform((val) => val),
481
- gateway_app_id: import_zod2.z.string().nullable().transform((val) => val)
644
+ var KmsInfoBaseSchema = import_zod3.z.object({
645
+ id: import_zod3.z.string(),
646
+ slug: import_zod3.z.string().nullable(),
647
+ url: import_zod3.z.string(),
648
+ version: import_zod3.z.string(),
649
+ chain_id: import_zod3.z.number().nullable(),
650
+ kms_contract_address: import_zod3.z.string().nullable().transform((val) => val),
651
+ gateway_app_id: import_zod3.z.string().nullable().transform((val) => val)
482
652
  }).passthrough();
483
653
  var KmsInfoSchema = KmsInfoBaseSchema.transform((data) => {
484
654
  if (data.chain_id != null) {
@@ -490,91 +660,591 @@ var KmsInfoSchema = KmsInfoBaseSchema.transform((data) => {
490
660
  return data;
491
661
  });
492
662
 
663
+ // src/actions/get_available_nodes.ts
664
+ var AvailableOSImageSchema = import_zod4.z.object({
665
+ name: import_zod4.z.string(),
666
+ is_dev: import_zod4.z.boolean(),
667
+ version: import_zod4.z.union([
668
+ import_zod4.z.tuple([import_zod4.z.number(), import_zod4.z.number(), import_zod4.z.number()]),
669
+ import_zod4.z.tuple([import_zod4.z.number(), import_zod4.z.number(), import_zod4.z.number(), import_zod4.z.number()])
670
+ ]),
671
+ os_image_hash: import_zod4.z.string().nullable().optional()
672
+ }).passthrough();
673
+ var TeepodCapacitySchema = import_zod4.z.object({
674
+ teepod_id: import_zod4.z.number(),
675
+ name: import_zod4.z.string(),
676
+ listed: import_zod4.z.boolean(),
677
+ resource_score: import_zod4.z.number(),
678
+ remaining_vcpu: import_zod4.z.number(),
679
+ remaining_memory: import_zod4.z.number(),
680
+ remaining_cvm_slots: import_zod4.z.number(),
681
+ images: import_zod4.z.array(AvailableOSImageSchema),
682
+ support_onchain_kms: import_zod4.z.boolean().optional(),
683
+ fmspc: import_zod4.z.string().nullable().optional(),
684
+ device_id: import_zod4.z.string().nullable().optional(),
685
+ region_identifier: import_zod4.z.string().nullable().optional(),
686
+ default_kms: import_zod4.z.string().nullable().optional(),
687
+ kms_list: import_zod4.z.array(import_zod4.z.string()).default([])
688
+ }).passthrough();
689
+ var ResourceThresholdSchema = import_zod4.z.object({
690
+ max_instances: import_zod4.z.number().nullable().optional(),
691
+ max_vcpu: import_zod4.z.number().nullable().optional(),
692
+ max_memory: import_zod4.z.number().nullable().optional(),
693
+ max_disk: import_zod4.z.number().nullable().optional()
694
+ }).passthrough();
695
+ var AvailableNodesSchema = import_zod4.z.object({
696
+ tier: import_zod4.z.string(),
697
+ // TeamTier is string enum
698
+ capacity: ResourceThresholdSchema,
699
+ nodes: import_zod4.z.array(TeepodCapacitySchema),
700
+ kms_list: import_zod4.z.array(KmsInfoSchema)
701
+ }).passthrough();
702
+ var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSimpleAction(
703
+ AvailableNodesSchema,
704
+ async (client) => {
705
+ return await client.get("/teepods/available");
706
+ }
707
+ );
708
+
709
+ // src/actions/list-instance-types.ts
710
+ var import_zod5 = require("zod");
711
+ var ListInstanceTypesRequestSchema = import_zod5.z.object({
712
+ page: import_zod5.z.number().int().min(1).optional().default(1),
713
+ page_size: import_zod5.z.number().int().min(1).max(1e3).optional().default(100)
714
+ }).strict();
715
+ var InstanceTypeSchema = import_zod5.z.object({
716
+ id: import_zod5.z.string(),
717
+ name: import_zod5.z.string(),
718
+ description: import_zod5.z.string(),
719
+ vcpu: import_zod5.z.number(),
720
+ memory_mb: import_zod5.z.number(),
721
+ hourly_rate: import_zod5.z.string(),
722
+ requires_gpu: import_zod5.z.boolean(),
723
+ public: import_zod5.z.boolean(),
724
+ enabled: import_zod5.z.boolean()
725
+ }).passthrough();
726
+ var PaginatedInstanceTypesSchema = import_zod5.z.object({
727
+ items: import_zod5.z.array(InstanceTypeSchema),
728
+ total: import_zod5.z.number(),
729
+ page: import_zod5.z.number(),
730
+ page_size: import_zod5.z.number(),
731
+ pages: import_zod5.z.number()
732
+ }).strict();
733
+ var { action: listInstanceTypes, safeAction: safeListInstanceTypes } = defineAction(PaginatedInstanceTypesSchema, async (client, request) => {
734
+ const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
735
+ const queryParams = new URLSearchParams();
736
+ queryParams.append("page", validatedRequest.page.toString());
737
+ queryParams.append("page_size", validatedRequest.page_size.toString());
738
+ return await client.get(`/api/instance-types?${queryParams.toString()}`);
739
+ });
740
+
741
+ // src/actions/workspaces/list_workspaces.ts
742
+ var import_zod6 = require("zod");
743
+ var WorkspaceResponseSchema = import_zod6.z.object({
744
+ id: import_zod6.z.string(),
745
+ name: import_zod6.z.string(),
746
+ slug: import_zod6.z.string().nullable(),
747
+ tier: import_zod6.z.string(),
748
+ role: import_zod6.z.string(),
749
+ created_at: import_zod6.z.string()
750
+ }).passthrough();
751
+ var PaginationMetadataSchema = import_zod6.z.object({
752
+ has_more: import_zod6.z.boolean(),
753
+ next_cursor: import_zod6.z.string().nullable(),
754
+ total: import_zod6.z.number().nullable()
755
+ }).passthrough();
756
+ var ListWorkspacesSchema = import_zod6.z.object({
757
+ data: import_zod6.z.array(WorkspaceResponseSchema),
758
+ pagination: PaginationMetadataSchema
759
+ }).passthrough();
760
+ var { action: listWorkspaces, safeAction: safeListWorkspaces } = defineAction(ListWorkspacesSchema, async (client, request) => {
761
+ const queryParams = new URLSearchParams();
762
+ if (request?.cursor) queryParams.append("cursor", request.cursor);
763
+ if (request?.limit) queryParams.append("limit", request.limit.toString());
764
+ const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
765
+ return await client.get(url);
766
+ });
767
+
768
+ // src/actions/workspaces/get_workspace.ts
769
+ var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(WorkspaceResponseSchema, async (client, teamSlug) => {
770
+ return await client.get(`/workspaces/${teamSlug}`);
771
+ });
772
+
773
+ // src/actions/cvms/get_cvm_info.ts
774
+ var import_zod8 = require("zod");
775
+
493
776
  // src/types/cvm_info.ts
494
- var import_zod3 = require("zod");
495
- var VmInfoSchema = import_zod3.z.object({
496
- id: import_zod3.z.string(),
497
- name: import_zod3.z.string(),
498
- status: import_zod3.z.string(),
499
- uptime: import_zod3.z.string(),
500
- app_url: import_zod3.z.string().nullable(),
501
- app_id: import_zod3.z.string(),
502
- instance_id: import_zod3.z.string().nullable(),
503
- configuration: import_zod3.z.any().optional(),
777
+ var import_zod7 = require("zod");
778
+ var VmInfoSchema = import_zod7.z.object({
779
+ id: import_zod7.z.string(),
780
+ name: import_zod7.z.string(),
781
+ status: import_zod7.z.string(),
782
+ uptime: import_zod7.z.string(),
783
+ app_url: import_zod7.z.string().nullable(),
784
+ app_id: import_zod7.z.string(),
785
+ instance_id: import_zod7.z.string().nullable(),
786
+ configuration: import_zod7.z.any().optional(),
504
787
  // TODO: add VmConfiguration schema if needed
505
- exited_at: import_zod3.z.string().nullable(),
506
- boot_progress: import_zod3.z.string().nullable(),
507
- boot_error: import_zod3.z.string().nullable(),
508
- shutdown_progress: import_zod3.z.string().nullable(),
509
- image_version: import_zod3.z.string().nullable()
788
+ exited_at: import_zod7.z.string().nullable(),
789
+ boot_progress: import_zod7.z.string().nullable(),
790
+ boot_error: import_zod7.z.string().nullable(),
791
+ shutdown_progress: import_zod7.z.string().nullable(),
792
+ image_version: import_zod7.z.string().nullable()
510
793
  });
511
- var ManagedUserSchema = import_zod3.z.object({
512
- id: import_zod3.z.number(),
513
- username: import_zod3.z.string()
794
+ var ManagedUserSchema = import_zod7.z.object({
795
+ id: import_zod7.z.number(),
796
+ username: import_zod7.z.string()
514
797
  });
515
- var CvmNodeSchema = import_zod3.z.object({
516
- id: import_zod3.z.number(),
517
- name: import_zod3.z.string(),
518
- region_identifier: import_zod3.z.string().optional()
798
+ var CvmNodeSchema = import_zod7.z.object({
799
+ id: import_zod7.z.number(),
800
+ name: import_zod7.z.string(),
801
+ region_identifier: import_zod7.z.string().optional()
519
802
  });
520
- var CvmNetworkUrlsSchema = import_zod3.z.object({
521
- app: import_zod3.z.string(),
522
- instance: import_zod3.z.string()
803
+ var CvmNetworkUrlsSchema = import_zod7.z.object({
804
+ app: import_zod7.z.string(),
805
+ instance: import_zod7.z.string()
523
806
  });
524
- var CvmInfoSchema = import_zod3.z.object({
807
+ var CvmInfoSchema = import_zod7.z.object({
525
808
  hosted: VmInfoSchema,
526
- name: import_zod3.z.string(),
809
+ name: import_zod7.z.string(),
527
810
  managed_user: ManagedUserSchema.optional().nullable(),
528
811
  node: CvmNodeSchema.optional().nullable(),
529
- listed: import_zod3.z.boolean().default(false),
530
- status: import_zod3.z.string(),
531
- in_progress: import_zod3.z.boolean().default(false),
532
- dapp_dashboard_url: import_zod3.z.string().nullable(),
533
- syslog_endpoint: import_zod3.z.string().nullable(),
534
- allow_upgrade: import_zod3.z.boolean().default(false),
535
- project_id: import_zod3.z.string().nullable(),
812
+ listed: import_zod7.z.boolean().default(false),
813
+ status: import_zod7.z.string(),
814
+ in_progress: import_zod7.z.boolean().default(false),
815
+ dapp_dashboard_url: import_zod7.z.string().nullable(),
816
+ syslog_endpoint: import_zod7.z.string().nullable(),
817
+ allow_upgrade: import_zod7.z.boolean().default(false),
818
+ project_id: import_zod7.z.string().nullable(),
536
819
  // HashedId is represented as string in JS
537
- project_type: import_zod3.z.string().nullable(),
538
- billing_period: import_zod3.z.string().nullable(),
820
+ project_type: import_zod7.z.string().nullable(),
821
+ billing_period: import_zod7.z.string().nullable(),
539
822
  kms_info: KmsInfoSchema.nullable(),
540
- vcpu: import_zod3.z.number().nullable(),
541
- memory: import_zod3.z.number().nullable(),
542
- disk_size: import_zod3.z.number().nullable(),
543
- gateway_domain: import_zod3.z.string().nullable(),
544
- public_urls: import_zod3.z.array(CvmNetworkUrlsSchema)
823
+ vcpu: import_zod7.z.number().nullable(),
824
+ memory: import_zod7.z.number().nullable(),
825
+ disk_size: import_zod7.z.number().nullable(),
826
+ gateway_domain: import_zod7.z.string().nullable(),
827
+ public_urls: import_zod7.z.array(CvmNetworkUrlsSchema)
545
828
  }).partial();
546
- var CvmLegacyDetailSchema = import_zod3.z.object({
547
- id: import_zod3.z.number(),
548
- name: import_zod3.z.string(),
549
- status: import_zod3.z.string(),
550
- in_progress: import_zod3.z.boolean(),
551
- teepod_id: import_zod3.z.number().nullable(),
829
+ var CvmLegacyDetailSchema = import_zod7.z.object({
830
+ id: import_zod7.z.number(),
831
+ name: import_zod7.z.string(),
832
+ status: import_zod7.z.string(),
833
+ in_progress: import_zod7.z.boolean(),
834
+ teepod_id: import_zod7.z.number().nullable(),
552
835
  teepod: CvmNodeSchema,
553
- app_id: import_zod3.z.string(),
554
- vm_uuid: import_zod3.z.string().nullable(),
555
- instance_id: import_zod3.z.string().nullable(),
556
- vcpu: import_zod3.z.number().nullable(),
557
- memory: import_zod3.z.number().nullable(),
558
- disk_size: import_zod3.z.number().nullable(),
559
- base_image: import_zod3.z.string(),
560
- encrypted_env_pubkey: import_zod3.z.string().nullable(),
561
- listed: import_zod3.z.boolean(),
562
- project_id: import_zod3.z.string().nullable(),
563
- project_type: import_zod3.z.string().nullable(),
564
- public_sysinfo: import_zod3.z.boolean(),
565
- public_logs: import_zod3.z.boolean(),
566
- dapp_dashboard_url: import_zod3.z.string().nullable(),
567
- syslog_endpoint: import_zod3.z.string().nullable(),
836
+ app_id: import_zod7.z.string(),
837
+ vm_uuid: import_zod7.z.string().nullable(),
838
+ instance_id: import_zod7.z.string().nullable(),
839
+ vcpu: import_zod7.z.number().nullable(),
840
+ memory: import_zod7.z.number().nullable(),
841
+ disk_size: import_zod7.z.number().nullable(),
842
+ base_image: import_zod7.z.string(),
843
+ encrypted_env_pubkey: import_zod7.z.string().nullable(),
844
+ listed: import_zod7.z.boolean(),
845
+ project_id: import_zod7.z.string().nullable(),
846
+ project_type: import_zod7.z.string().nullable(),
847
+ public_sysinfo: import_zod7.z.boolean(),
848
+ public_logs: import_zod7.z.boolean(),
849
+ dapp_dashboard_url: import_zod7.z.string().nullable(),
850
+ syslog_endpoint: import_zod7.z.string().nullable(),
568
851
  kms_info: KmsInfoSchema.nullable(),
569
- contract_address: import_zod3.z.string().nullable(),
570
- deployer_address: import_zod3.z.string().nullable(),
571
- scheduled_delete_at: import_zod3.z.string().nullable(),
572
- public_urls: import_zod3.z.array(CvmNetworkUrlsSchema),
573
- gateway_domain: import_zod3.z.string().nullable()
852
+ contract_address: import_zod7.z.string().nullable(),
853
+ deployer_address: import_zod7.z.string().nullable(),
854
+ scheduled_delete_at: import_zod7.z.string().nullable(),
855
+ public_urls: import_zod7.z.array(CvmNetworkUrlsSchema),
856
+ gateway_domain: import_zod7.z.string().nullable()
574
857
  });
575
858
 
576
- // src/actions/get_current_user.ts
577
- var import_zod4 = require("zod");
859
+ // src/actions/cvms/get_cvm_info.ts
860
+ var GetCvmInfoRequestSchema = import_zod8.z.object({
861
+ id: import_zod8.z.string().optional(),
862
+ uuid: import_zod8.z.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
863
+ app_id: import_zod8.z.string().refine(
864
+ (val) => !val.startsWith("app_") && val.length === 40,
865
+ "app_id should be 40 characters without prefix"
866
+ ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
867
+ instance_id: import_zod8.z.string().refine(
868
+ (val) => !val.startsWith("instance_") && val.length === 40,
869
+ "instance_id should be 40 characters without prefix"
870
+ ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
871
+ }).refine(
872
+ (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
873
+ "One of id, uuid, app_id, or instance_id must be provided"
874
+ ).transform((data) => ({
875
+ cvmId: data.id || data.uuid || data.app_id || data.instance_id,
876
+ _raw: data
877
+ }));
878
+ var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
879
+ const validatedRequest = GetCvmInfoRequestSchema.parse(request);
880
+ return await client.get(`/cvms/${validatedRequest.cvmId}`);
881
+ });
882
+
883
+ // src/actions/cvms/get_cvm_list.ts
884
+ var import_zod9 = require("zod");
885
+ var GetCvmListRequestSchema = import_zod9.z.object({
886
+ page: import_zod9.z.number().int().min(1).optional(),
887
+ page_size: import_zod9.z.number().int().min(1).optional(),
888
+ node_id: import_zod9.z.number().int().min(1).optional()
889
+ }).strict();
890
+ var GetCvmListSchema = import_zod9.z.object({
891
+ items: import_zod9.z.array(CvmInfoSchema),
892
+ total: import_zod9.z.number(),
893
+ page: import_zod9.z.number(),
894
+ page_size: import_zod9.z.number(),
895
+ pages: import_zod9.z.number()
896
+ }).strict();
897
+ var { action: getCvmList, safeAction: safeGetCvmList } = defineAction(GetCvmListSchema, async (client, request) => {
898
+ const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
899
+ return await client.get("/cvms/paginated", { params: validatedRequest });
900
+ });
901
+
902
+ // src/actions/cvms/provision_cvm.ts
903
+ var import_zod10 = require("zod");
904
+ var ProvisionCvmSchema = import_zod10.z.object({
905
+ app_id: import_zod10.z.string().nullable().optional(),
906
+ app_env_encrypt_pubkey: import_zod10.z.string().nullable().optional(),
907
+ compose_hash: import_zod10.z.string(),
908
+ fmspc: import_zod10.z.string().nullable().optional(),
909
+ device_id: import_zod10.z.string().nullable().optional(),
910
+ os_image_hash: import_zod10.z.string().nullable().optional(),
911
+ teepod_id: import_zod10.z.number().nullable().optional(),
912
+ // Will be transformed to node_id
913
+ node_id: import_zod10.z.number().nullable().optional(),
914
+ kms_id: import_zod10.z.string().nullable().optional()
915
+ }).passthrough().transform((data) => {
916
+ if ("teepod_id" in data && data.teepod_id !== void 0) {
917
+ const { teepod_id, ...rest } = data;
918
+ return { ...rest, node_id: teepod_id };
919
+ }
920
+ return data;
921
+ });
922
+ var ProvisionCvmRequestSchema = import_zod10.z.object({
923
+ node_id: import_zod10.z.number().optional(),
924
+ // recommended
925
+ teepod_id: import_zod10.z.number().optional(),
926
+ // deprecated, for compatibility
927
+ name: import_zod10.z.string(),
928
+ image: import_zod10.z.string(),
929
+ vcpu: import_zod10.z.number(),
930
+ memory: import_zod10.z.number(),
931
+ disk_size: import_zod10.z.number(),
932
+ compose_file: import_zod10.z.object({
933
+ allowed_envs: import_zod10.z.array(import_zod10.z.string()).optional(),
934
+ pre_launch_script: import_zod10.z.string().optional(),
935
+ docker_compose_file: import_zod10.z.string().optional(),
936
+ name: import_zod10.z.string().optional(),
937
+ kms_enabled: import_zod10.z.boolean().optional(),
938
+ public_logs: import_zod10.z.boolean().optional(),
939
+ public_sysinfo: import_zod10.z.boolean().optional(),
940
+ gateway_enabled: import_zod10.z.boolean().optional(),
941
+ // recommended
942
+ tproxy_enabled: import_zod10.z.boolean().optional()
943
+ // deprecated, for compatibility
944
+ }),
945
+ listed: import_zod10.z.boolean().optional(),
946
+ instance_type: import_zod10.z.string().nullable().optional(),
947
+ kms_id: import_zod10.z.string().optional(),
948
+ env_keys: import_zod10.z.array(import_zod10.z.string()).optional()
949
+ }).passthrough();
950
+ function autofillComposeFileName(appCompose) {
951
+ if (appCompose.compose_file && !appCompose.compose_file.name) {
952
+ return {
953
+ ...appCompose,
954
+ compose_file: {
955
+ ...appCompose.compose_file,
956
+ name: appCompose.name
957
+ }
958
+ };
959
+ }
960
+ return appCompose;
961
+ }
962
+ function handleGatewayCompatibility(appCompose) {
963
+ if (!appCompose.compose_file) {
964
+ return appCompose;
965
+ }
966
+ const composeFile = { ...appCompose.compose_file };
967
+ if (typeof composeFile.gateway_enabled === "boolean" && typeof composeFile.tproxy_enabled === "boolean") {
968
+ delete composeFile.tproxy_enabled;
969
+ } else if (typeof composeFile.tproxy_enabled === "boolean" && typeof composeFile.gateway_enabled === "undefined") {
970
+ composeFile.gateway_enabled = composeFile.tproxy_enabled;
971
+ delete composeFile.tproxy_enabled;
972
+ if (typeof window !== "undefined" ? window.console : globalThis.console) {
973
+ console.warn(
974
+ "[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration."
975
+ );
976
+ }
977
+ }
978
+ return {
979
+ ...appCompose,
980
+ compose_file: composeFile
981
+ };
982
+ }
983
+ var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(ProvisionCvmSchema, async (client, appCompose) => {
984
+ const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
985
+ let requestBody = { ...body };
986
+ if (typeof body.node_id === "number") {
987
+ requestBody = { ...body, teepod_id: body.node_id };
988
+ delete requestBody.node_id;
989
+ } else if (typeof body.teepod_id === "number") {
990
+ console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
991
+ }
992
+ return await client.post("/cvms/provision", requestBody);
993
+ });
994
+
995
+ // src/actions/cvms/commit_cvm_provision.ts
996
+ var import_zod11 = require("zod");
997
+ var CommitCvmProvisionSchema = import_zod11.z.object({
998
+ id: import_zod11.z.number(),
999
+ name: import_zod11.z.string(),
1000
+ status: import_zod11.z.string(),
1001
+ teepod_id: import_zod11.z.number(),
1002
+ teepod: import_zod11.z.object({
1003
+ id: import_zod11.z.number(),
1004
+ name: import_zod11.z.string()
1005
+ }).nullable(),
1006
+ user_id: import_zod11.z.number().nullable(),
1007
+ app_id: import_zod11.z.string().nullable(),
1008
+ vm_uuid: import_zod11.z.string().nullable(),
1009
+ instance_id: import_zod11.z.string().nullable(),
1010
+ app_url: import_zod11.z.string().nullable(),
1011
+ base_image: import_zod11.z.string().nullable(),
1012
+ vcpu: import_zod11.z.number(),
1013
+ memory: import_zod11.z.number(),
1014
+ disk_size: import_zod11.z.number(),
1015
+ manifest_version: import_zod11.z.number().nullable(),
1016
+ version: import_zod11.z.string().nullable(),
1017
+ runner: import_zod11.z.string().nullable(),
1018
+ docker_compose_file: import_zod11.z.string().nullable(),
1019
+ features: import_zod11.z.array(import_zod11.z.string()).nullable(),
1020
+ created_at: import_zod11.z.string(),
1021
+ encrypted_env_pubkey: import_zod11.z.string().nullable().optional(),
1022
+ app_auth_contract_address: import_zod11.z.string().nullable().optional(),
1023
+ deployer_address: import_zod11.z.string().nullable().optional()
1024
+ }).passthrough();
1025
+ var CommitCvmProvisionRequestSchema = import_zod11.z.object({
1026
+ encrypted_env: import_zod11.z.string().optional().nullable(),
1027
+ app_id: import_zod11.z.string(),
1028
+ compose_hash: import_zod11.z.string().optional(),
1029
+ kms_id: import_zod11.z.string().optional(),
1030
+ contract_address: import_zod11.z.string().optional(),
1031
+ deployer_address: import_zod11.z.string().optional(),
1032
+ env_keys: import_zod11.z.array(import_zod11.z.string()).optional().nullable()
1033
+ }).passthrough();
1034
+ var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineAction(CommitCvmProvisionSchema, async (client, payload) => {
1035
+ return await client.post("/cvms", payload);
1036
+ });
1037
+
1038
+ // src/actions/cvms/get_cvm_compose_file.ts
1039
+ var import_zod13 = require("zod");
1040
+
1041
+ // src/types/app_compose.ts
1042
+ var import_zod12 = require("zod");
1043
+ var LooseAppComposeSchema = import_zod12.z.object({
1044
+ allowed_envs: import_zod12.z.array(import_zod12.z.string()).optional(),
1045
+ docker_compose_file: import_zod12.z.string(),
1046
+ features: import_zod12.z.array(import_zod12.z.string()).optional(),
1047
+ name: import_zod12.z.string().optional(),
1048
+ manifest_version: import_zod12.z.number().optional(),
1049
+ kms_enabled: import_zod12.z.boolean().optional(),
1050
+ public_logs: import_zod12.z.boolean().optional(),
1051
+ public_sysinfo: import_zod12.z.boolean().optional(),
1052
+ tproxy_enabled: import_zod12.z.boolean().optional(),
1053
+ pre_launch_script: import_zod12.z.string().optional()
1054
+ }).passthrough();
1055
+
1056
+ // src/actions/cvms/get_cvm_compose_file.ts
1057
+ var GetCvmComposeFileRequestSchema = import_zod13.z.object({
1058
+ id: import_zod13.z.string().optional(),
1059
+ uuid: import_zod13.z.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
1060
+ app_id: import_zod13.z.string().refine(
1061
+ (val) => !val.startsWith("app_") && val.length === 40,
1062
+ "app_id should be 40 characters without prefix"
1063
+ ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
1064
+ instance_id: import_zod13.z.string().refine(
1065
+ (val) => !val.startsWith("instance_") && val.length === 40,
1066
+ "instance_id should be 40 characters without prefix"
1067
+ ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
1068
+ }).refine(
1069
+ (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1070
+ "One of id, uuid, app_id, or instance_id must be provided"
1071
+ ).transform((data) => ({
1072
+ cvmId: data.id || data.uuid || data.app_id || data.instance_id,
1073
+ _raw: data
1074
+ }));
1075
+ var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(LooseAppComposeSchema, async (client, request) => {
1076
+ const validatedRequest = GetCvmComposeFileRequestSchema.parse(request);
1077
+ return await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
1078
+ });
1079
+
1080
+ // src/actions/cvms/provision_cvm_compose_file_update.ts
1081
+ var import_zod14 = require("zod");
1082
+ var ProvisionCvmComposeFileUpdateRequestSchema = import_zod14.z.object({
1083
+ id: import_zod14.z.string().optional(),
1084
+ uuid: import_zod14.z.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
1085
+ app_id: import_zod14.z.string().refine(
1086
+ (val) => !val.startsWith("app_") && val.length === 40,
1087
+ "app_id should be 40 characters without prefix"
1088
+ ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
1089
+ instance_id: import_zod14.z.string().refine(
1090
+ (val) => !val.startsWith("instance_") && val.length === 40,
1091
+ "instance_id should be 40 characters without prefix"
1092
+ ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
1093
+ app_compose: LooseAppComposeSchema,
1094
+ update_env_vars: import_zod14.z.boolean().optional().nullable()
1095
+ }).refine(
1096
+ (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1097
+ "One of id, uuid, app_id, or instance_id must be provided"
1098
+ ).transform((data) => ({
1099
+ cvmId: data.id || data.uuid || data.app_id || data.instance_id,
1100
+ request: data.app_compose,
1101
+ update_env_vars: data.update_env_vars,
1102
+ _raw: data
1103
+ }));
1104
+ var ProvisionCvmComposeFileUpdateResultSchema = import_zod14.z.object({
1105
+ app_id: import_zod14.z.string().nullable(),
1106
+ device_id: import_zod14.z.string().nullable(),
1107
+ compose_hash: import_zod14.z.string(),
1108
+ kms_info: KmsInfoSchema.nullable().optional()
1109
+ }).passthrough();
1110
+ var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
1111
+ const validatedRequest = ProvisionCvmComposeFileUpdateRequestSchema.parse(request);
1112
+ return await client.post(
1113
+ `/cvms/${validatedRequest.cvmId}/compose_file/provision`,
1114
+ validatedRequest.request
1115
+ );
1116
+ });
1117
+
1118
+ // src/actions/cvms/commit_cvm_compose_file_update.ts
1119
+ var import_zod15 = require("zod");
1120
+ var CommitCvmComposeFileUpdateRequestSchema = import_zod15.z.object({
1121
+ id: import_zod15.z.string().optional(),
1122
+ uuid: import_zod15.z.string().regex(/^[0-9a-f]{8}[-]?[0-9a-f]{4}[-]?4[0-9a-f]{3}[-]?[89ab][0-9a-f]{3}[-]?[0-9a-f]{12}$/i).optional(),
1123
+ app_id: import_zod15.z.string().refine(
1124
+ (val) => !val.startsWith("app_") && val.length === 40,
1125
+ "app_id should be 40 characters without prefix"
1126
+ ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
1127
+ instance_id: import_zod15.z.string().refine(
1128
+ (val) => !val.startsWith("instance_") && val.length === 40,
1129
+ "instance_id should be 40 characters without prefix"
1130
+ ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
1131
+ compose_hash: import_zod15.z.string().min(1, "Compose hash is required"),
1132
+ encrypted_env: import_zod15.z.string().optional(),
1133
+ env_keys: import_zod15.z.array(import_zod15.z.string()).optional(),
1134
+ update_env_vars: import_zod15.z.boolean().optional().nullable()
1135
+ }).refine(
1136
+ (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
1137
+ "One of id, uuid, app_id, or instance_id must be provided"
1138
+ ).transform((data) => ({
1139
+ cvmId: data.id || data.uuid || data.app_id || data.instance_id,
1140
+ compose_hash: data.compose_hash,
1141
+ encrypted_env: data.encrypted_env,
1142
+ env_keys: data.env_keys,
1143
+ update_env_vars: !!data.update_env_vars,
1144
+ _raw: data
1145
+ }));
1146
+ var CommitCvmComposeFileUpdateSchema = import_zod15.z.any().transform(() => void 0);
1147
+ var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
1148
+ CommitCvmComposeFileUpdateSchema,
1149
+ async (client, request) => {
1150
+ const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
1151
+ return await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
1152
+ compose_hash: validatedRequest.compose_hash,
1153
+ encrypted_env: validatedRequest.encrypted_env,
1154
+ env_keys: validatedRequest.env_keys
1155
+ });
1156
+ }
1157
+ );
1158
+
1159
+ // src/actions/kms/get_kms_info.ts
1160
+ var import_zod16 = require("zod");
1161
+ var GetKmsInfoRequestSchema = import_zod16.z.object({
1162
+ kms_id: import_zod16.z.string().min(1, "KMS ID is required")
1163
+ });
1164
+ var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
1165
+ const validatedRequest = GetKmsInfoRequestSchema.parse(request);
1166
+ return await client.get(`/kms/${validatedRequest.kms_id}`);
1167
+ });
1168
+
1169
+ // src/actions/kms/get_kms_list.ts
1170
+ var import_zod17 = require("zod");
1171
+ var GetKmsListRequestSchema = import_zod17.z.object({
1172
+ page: import_zod17.z.number().int().min(1).optional(),
1173
+ page_size: import_zod17.z.number().int().min(1).optional(),
1174
+ is_onchain: import_zod17.z.boolean().optional()
1175
+ }).strict();
1176
+ var GetKmsListSchema = import_zod17.z.object({
1177
+ items: import_zod17.z.array(KmsInfoSchema),
1178
+ total: import_zod17.z.number(),
1179
+ page: import_zod17.z.number(),
1180
+ page_size: import_zod17.z.number(),
1181
+ pages: import_zod17.z.number()
1182
+ }).strict();
1183
+ var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
1184
+ const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
1185
+ return await client.get("/kms", { params: validatedRequest });
1186
+ });
1187
+
1188
+ // src/actions/kms/get_app_env_encrypt_pubkey.ts
1189
+ var import_zod18 = require("zod");
1190
+ var GetAppEnvEncryptPubKeyRequestSchema = import_zod18.z.object({
1191
+ kms: import_zod18.z.string().min(1, "KMS ID or slug is required"),
1192
+ app_id: import_zod18.z.string().refine(
1193
+ (val) => val.length === 40 || val.startsWith("0x") && val.length === 42,
1194
+ "App ID must be exactly 40 characters or 42 characters with 0x prefix"
1195
+ )
1196
+ }).strict();
1197
+ var GetAppEnvEncryptPubKeySchema = import_zod18.z.object({
1198
+ public_key: import_zod18.z.string(),
1199
+ signature: import_zod18.z.string()
1200
+ }).strict();
1201
+ var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
1202
+ const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
1203
+ return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
1204
+ });
1205
+
1206
+ // src/create-client.ts
1207
+ function createClient2(config = {}) {
1208
+ const client = createClient(config);
1209
+ const allActions = {
1210
+ getCurrentUser,
1211
+ safeGetCurrentUser,
1212
+ getAvailableNodes,
1213
+ safeGetAvailableNodes,
1214
+ listInstanceTypes,
1215
+ safeListInstanceTypes,
1216
+ listWorkspaces,
1217
+ safeListWorkspaces,
1218
+ getWorkspace,
1219
+ safeGetWorkspace,
1220
+ getCvmInfo,
1221
+ safeGetCvmInfo,
1222
+ getCvmList,
1223
+ safeGetCvmList,
1224
+ provisionCvm,
1225
+ safeProvisionCvm,
1226
+ commitCvmProvision,
1227
+ safeCommitCvmProvision,
1228
+ getCvmComposeFile,
1229
+ safeGetCvmComposeFile,
1230
+ provisionCvmComposeFileUpdate,
1231
+ safeProvisionCvmComposeFileUpdate,
1232
+ commitCvmComposeFileUpdate,
1233
+ safeCommitCvmComposeFileUpdate,
1234
+ getKmsInfo,
1235
+ safeGetKmsInfo,
1236
+ getKmsList,
1237
+ safeGetKmsList,
1238
+ getAppEnvEncryptPubKey,
1239
+ safeGetAppEnvEncryptPubKey
1240
+ };
1241
+ return client.extend(allActions);
1242
+ }
1243
+
1244
+ // src/actions/blockchains/deploy_app_auth.ts
1245
+ var import_zod19 = require("zod");
1246
+ var import_viem3 = require("viem");
1247
+ var import_accounts2 = require("viem/accounts");
578
1248
 
579
1249
  // src/utils/index.ts
580
1250
  var import_encrypt_env_vars = require("@phala/dstack-sdk/encrypt-env-vars");
@@ -589,56 +1259,24 @@ function getErrorMessage(error) {
589
1259
  return error.detail[0]?.msg || "Validation error";
590
1260
  }
591
1261
  return "Validation error";
592
- }
593
- if (typeof error.detail === "object" && error.detail !== null) {
594
- return JSON.stringify(error.detail);
595
- }
596
- return "Unknown error occurred";
597
- }
598
-
599
- // src/utils/as-hex.ts
600
- var import_viem = require("viem");
601
- function asHex(value) {
602
- if (typeof value === "string") {
603
- if (value.startsWith("0x") && (0, import_viem.isHex)(value)) {
604
- return value;
605
- } else if ((0, import_viem.isHex)(`0x${value}`)) {
606
- return `0x${value}`;
607
- }
608
- }
609
- throw new Error(`Invalid hex value: ${value}`);
610
- }
611
-
612
- // src/utils/validate-parameters.ts
613
- function validateActionParameters(parameters) {
614
- if (parameters?.schema !== void 0 && parameters?.schema !== false) {
615
- if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
616
- throw new Error("Invalid schema: must be a Zod schema object, false, or undefined");
617
- }
618
- }
619
- }
620
- function safeValidateActionParameters(parameters) {
621
- if (parameters?.schema !== void 0 && parameters?.schema !== false) {
622
- if (typeof parameters.schema !== "object" || parameters.schema === null || !("parse" in parameters.schema) || typeof parameters.schema.parse !== "function") {
623
- return {
624
- success: false,
625
- error: {
626
- name: "ZodError",
627
- message: "Invalid schema: must be a Zod schema object, false, or undefined",
628
- issues: [
629
- {
630
- code: "invalid_type",
631
- expected: "object",
632
- received: typeof parameters.schema,
633
- path: ["schema"],
634
- message: "Invalid schema: must be a Zod schema object, false, or undefined"
635
- }
636
- ]
637
- }
638
- };
1262
+ }
1263
+ if (typeof error.detail === "object" && error.detail !== null) {
1264
+ return JSON.stringify(error.detail);
1265
+ }
1266
+ return "Unknown error occurred";
1267
+ }
1268
+
1269
+ // src/utils/as-hex.ts
1270
+ var import_viem = require("viem");
1271
+ function asHex(value) {
1272
+ if (typeof value === "string") {
1273
+ if (value.startsWith("0x") && (0, import_viem.isHex)(value)) {
1274
+ return value;
1275
+ } else if ((0, import_viem.isHex)(`0x${value}`)) {
1276
+ return `0x${value}`;
639
1277
  }
640
1278
  }
641
- return void 0;
1279
+ throw new Error(`Invalid hex value: ${value}`);
642
1280
  }
643
1281
 
644
1282
  // src/utils/network.ts
@@ -1187,397 +1825,60 @@ async function switchToNetwork(provider, chainId) {
1187
1825
  const errorObj = error;
1188
1826
  if (errorObj.code === 4902) {
1189
1827
  throw new NetworkError(
1190
- `Network ${chainId} not found in wallet. Please add it manually.`,
1191
- "NETWORK_NOT_FOUND",
1192
- error
1193
- );
1194
- }
1195
- throw new NetworkError(
1196
- `Failed to switch network: ${errorObj.message || "Unknown error"}`,
1197
- "NETWORK_SWITCH_FAILED",
1198
- error
1199
- );
1200
- }
1201
- }
1202
- async function addNetwork(provider, config) {
1203
- try {
1204
- await provider.request({
1205
- method: "wallet_addEthereumChain",
1206
- params: [
1207
- {
1208
- chainId: `0x${config.chainId.toString(16)}`,
1209
- chainName: config.name,
1210
- rpcUrls: [config.rpcUrl],
1211
- blockExplorerUrls: config.blockExplorer ? [config.blockExplorer] : void 0,
1212
- nativeCurrency: {
1213
- name: "ETH",
1214
- symbol: "ETH",
1215
- decimals: 18
1216
- }
1217
- }
1218
- ]
1219
- });
1220
- } catch (error) {
1221
- const errorObj = error;
1222
- throw new NetworkError(
1223
- `Failed to add network: ${errorObj.message || "Unknown error"}`,
1224
- "NETWORK_ADD_FAILED",
1225
- error
1226
- );
1227
- }
1228
- }
1229
- async function autoCreateClients(chain, options = {}) {
1230
- const { privateKey, rpcUrl, preferBrowser = false } = options;
1231
- if (privateKey) {
1232
- return createClientsFromPrivateKey(chain, privateKey, rpcUrl);
1233
- }
1234
- if (isBrowser() && (preferBrowser || !privateKey)) {
1235
- return createClientsFromBrowser(chain, rpcUrl);
1236
- }
1237
- throw new WalletError(
1238
- "No wallet connection method available. Provide a private key for server-side usage or use in browser environment.",
1239
- "NO_CONNECTION_METHOD"
1240
- );
1241
- }
1242
-
1243
- // src/actions/get_current_user.ts
1244
- var CurrentUserSchema = import_zod4.z.object({
1245
- username: import_zod4.z.string(),
1246
- email: import_zod4.z.string(),
1247
- credits: import_zod4.z.number(),
1248
- granted_credits: import_zod4.z.number(),
1249
- avatar: import_zod4.z.string(),
1250
- team_name: import_zod4.z.string(),
1251
- team_tier: import_zod4.z.string()
1252
- }).passthrough();
1253
- async function getCurrentUser(client, parameters) {
1254
- validateActionParameters(parameters);
1255
- const response = await client.get("/auth/me");
1256
- if (parameters?.schema === false) {
1257
- return response;
1258
- }
1259
- const schema = parameters?.schema || CurrentUserSchema;
1260
- return schema.parse(response);
1261
- }
1262
- async function safeGetCurrentUser(client, parameters) {
1263
- const parameterValidationError = safeValidateActionParameters(parameters);
1264
- if (parameterValidationError) {
1265
- return parameterValidationError;
1266
- }
1267
- const httpResult = await client.safeGet("/auth/me");
1268
- if (!httpResult.success) {
1269
- return httpResult;
1270
- }
1271
- if (parameters?.schema === false) {
1272
- return { success: true, data: httpResult.data };
1273
- }
1274
- const schema = parameters?.schema || CurrentUserSchema;
1275
- return schema.safeParse(httpResult.data);
1276
- }
1277
-
1278
- // src/actions/get_available_nodes.ts
1279
- var import_zod5 = require("zod");
1280
-
1281
- // src/utils/define-action.ts
1282
- function defineSimpleAction(schema, fn) {
1283
- function action(client, parameters) {
1284
- return _actionImpl(client, parameters);
1285
- }
1286
- async function _actionImpl(client, parameters) {
1287
- validateActionParameters(parameters);
1288
- const response = await fn(client);
1289
- if (parameters?.schema === false) {
1290
- return response;
1291
- }
1292
- const actualSchema = parameters?.schema || schema;
1293
- return actualSchema.parse(response);
1294
- }
1295
- function safeAction(client, parameters) {
1296
- return _safeActionImpl(client, parameters);
1297
- }
1298
- async function _safeActionImpl(client, parameters) {
1299
- const parameterValidationError = safeValidateActionParameters(parameters);
1300
- if (parameterValidationError) {
1301
- return parameterValidationError;
1302
- }
1303
- const httpResult = await (async () => {
1304
- try {
1305
- const data = await fn(client);
1306
- return { success: true, data };
1307
- } catch (error) {
1308
- if (error && typeof error === "object" && "isRequestError" in error) {
1309
- return { success: false, error };
1310
- }
1311
- if (error && typeof error === "object" && "issues" in error) {
1312
- return { success: false, error };
1313
- }
1314
- return {
1315
- success: false,
1316
- error: {
1317
- name: "Error",
1318
- message: error instanceof Error ? error.message : String(error)
1319
- }
1320
- };
1321
- }
1322
- })();
1323
- if (!httpResult.success) {
1324
- return httpResult;
1325
- }
1326
- if (parameters?.schema === false) {
1327
- return { success: true, data: httpResult.data };
1328
- }
1329
- const actualSchema = parameters?.schema || schema;
1330
- return actualSchema.safeParse(httpResult.data);
1331
- }
1332
- return {
1333
- action,
1334
- safeAction
1335
- };
1336
- }
1337
- function defineAction(schema, fn) {
1338
- function action(client, ...args) {
1339
- const [params, parameters] = args;
1340
- return _actionImpl(client, params, parameters);
1341
- }
1342
- async function _actionImpl(client, params, parameters) {
1343
- validateActionParameters(parameters);
1344
- const response = await fn(client, params);
1345
- if (parameters?.schema === false) {
1346
- return response;
1347
- }
1348
- const actualSchema = parameters?.schema || schema;
1349
- return actualSchema.parse(response);
1350
- }
1351
- function safeAction(client, ...args) {
1352
- const [params, parameters] = args;
1353
- return _safeActionImpl(client, params, parameters);
1354
- }
1355
- async function _safeActionImpl(client, params, parameters) {
1356
- const parameterValidationError = safeValidateActionParameters(parameters);
1357
- if (parameterValidationError) {
1358
- return parameterValidationError;
1359
- }
1360
- const httpResult = await (async () => {
1361
- try {
1362
- const data = await fn(client, params);
1363
- return { success: true, data };
1364
- } catch (error) {
1365
- if (error && typeof error === "object" && "isRequestError" in error) {
1366
- return { success: false, error };
1367
- }
1368
- if (error && typeof error === "object" && "issues" in error) {
1369
- return { success: false, error };
1370
- }
1371
- return {
1372
- success: false,
1373
- error: {
1374
- name: "Error",
1375
- message: error instanceof Error ? error.message : String(error)
1376
- }
1377
- };
1378
- }
1379
- })();
1380
- if (!httpResult.success) {
1381
- return httpResult;
1382
- }
1383
- if (parameters?.schema === false) {
1384
- return { success: true, data: httpResult.data };
1385
- }
1386
- const actualSchema = parameters?.schema || schema;
1387
- return actualSchema.safeParse(httpResult.data);
1388
- }
1389
- return {
1390
- action,
1391
- safeAction
1392
- };
1393
- }
1394
-
1395
- // src/actions/get_available_nodes.ts
1396
- var AvailableOSImageSchema = import_zod5.z.object({
1397
- name: import_zod5.z.string(),
1398
- is_dev: import_zod5.z.boolean(),
1399
- version: import_zod5.z.union([
1400
- import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()]),
1401
- import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()])
1402
- ]),
1403
- os_image_hash: import_zod5.z.string().nullable().optional()
1404
- }).passthrough();
1405
- var TeepodCapacitySchema = import_zod5.z.object({
1406
- teepod_id: import_zod5.z.number(),
1407
- name: import_zod5.z.string(),
1408
- listed: import_zod5.z.boolean(),
1409
- resource_score: import_zod5.z.number(),
1410
- remaining_vcpu: import_zod5.z.number(),
1411
- remaining_memory: import_zod5.z.number(),
1412
- remaining_cvm_slots: import_zod5.z.number(),
1413
- images: import_zod5.z.array(AvailableOSImageSchema),
1414
- support_onchain_kms: import_zod5.z.boolean().optional(),
1415
- fmspc: import_zod5.z.string().nullable().optional(),
1416
- device_id: import_zod5.z.string().nullable().optional(),
1417
- region_identifier: import_zod5.z.string().nullable().optional(),
1418
- default_kms: import_zod5.z.string().nullable().optional(),
1419
- kms_list: import_zod5.z.array(import_zod5.z.string()).default([])
1420
- }).passthrough();
1421
- var ResourceThresholdSchema = import_zod5.z.object({
1422
- max_instances: import_zod5.z.number().nullable().optional(),
1423
- max_vcpu: import_zod5.z.number().nullable().optional(),
1424
- max_memory: import_zod5.z.number().nullable().optional(),
1425
- max_disk: import_zod5.z.number().nullable().optional()
1426
- }).passthrough();
1427
- var AvailableNodesSchema = import_zod5.z.object({
1428
- tier: import_zod5.z.string(),
1429
- // TeamTier is string enum
1430
- capacity: ResourceThresholdSchema,
1431
- nodes: import_zod5.z.array(TeepodCapacitySchema),
1432
- kms_list: import_zod5.z.array(KmsInfoSchema)
1433
- }).passthrough();
1434
- var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSimpleAction(
1435
- AvailableNodesSchema,
1436
- async (client) => {
1437
- return await client.get("/teepods/available");
1438
- }
1439
- );
1440
-
1441
- // src/actions/provision_cvm.ts
1442
- var import_zod6 = require("zod");
1443
- var ProvisionCvmSchema = import_zod6.z.object({
1444
- app_id: import_zod6.z.string().nullable().optional(),
1445
- app_env_encrypt_pubkey: import_zod6.z.string().nullable().optional(),
1446
- compose_hash: import_zod6.z.string(),
1447
- fmspc: import_zod6.z.string().nullable().optional(),
1448
- device_id: import_zod6.z.string().nullable().optional(),
1449
- os_image_hash: import_zod6.z.string().nullable().optional(),
1450
- teepod_id: import_zod6.z.number().nullable().optional(),
1451
- // Will be transformed to node_id
1452
- node_id: import_zod6.z.number().nullable().optional(),
1453
- kms_id: import_zod6.z.string().nullable().optional()
1454
- }).passthrough().transform((data) => {
1455
- if ("teepod_id" in data && data.teepod_id !== void 0) {
1456
- const { teepod_id, ...rest } = data;
1457
- return { ...rest, node_id: teepod_id };
1458
- }
1459
- return data;
1460
- });
1461
- var ProvisionCvmRequestSchema = import_zod6.z.object({
1462
- node_id: import_zod6.z.number().optional(),
1463
- // recommended
1464
- teepod_id: import_zod6.z.number().optional(),
1465
- // deprecated, for compatibility
1466
- name: import_zod6.z.string(),
1467
- image: import_zod6.z.string(),
1468
- vcpu: import_zod6.z.number(),
1469
- memory: import_zod6.z.number(),
1470
- disk_size: import_zod6.z.number(),
1471
- compose_file: import_zod6.z.object({
1472
- allowed_envs: import_zod6.z.array(import_zod6.z.string()).optional(),
1473
- pre_launch_script: import_zod6.z.string().optional(),
1474
- docker_compose_file: import_zod6.z.string().optional(),
1475
- name: import_zod6.z.string().optional(),
1476
- kms_enabled: import_zod6.z.boolean().optional(),
1477
- public_logs: import_zod6.z.boolean().optional(),
1478
- public_sysinfo: import_zod6.z.boolean().optional(),
1479
- gateway_enabled: import_zod6.z.boolean().optional(),
1480
- // recommended
1481
- tproxy_enabled: import_zod6.z.boolean().optional()
1482
- // deprecated, for compatibility
1483
- }),
1484
- listed: import_zod6.z.boolean().optional(),
1485
- instance_type: import_zod6.z.string().nullable().optional(),
1486
- kms_id: import_zod6.z.string().optional(),
1487
- env_keys: import_zod6.z.array(import_zod6.z.string()).optional()
1488
- }).passthrough();
1489
- function autofillComposeFileName(appCompose) {
1490
- if (appCompose.compose_file && !appCompose.compose_file.name) {
1491
- return {
1492
- ...appCompose,
1493
- compose_file: {
1494
- ...appCompose.compose_file,
1495
- name: appCompose.name
1496
- }
1497
- };
1498
- }
1499
- return appCompose;
1500
- }
1501
- function handleGatewayCompatibility(appCompose) {
1502
- if (!appCompose.compose_file) {
1503
- return appCompose;
1504
- }
1505
- const composeFile = { ...appCompose.compose_file };
1506
- if (typeof composeFile.gateway_enabled === "boolean" && typeof composeFile.tproxy_enabled === "boolean") {
1507
- delete composeFile.tproxy_enabled;
1508
- } else if (typeof composeFile.tproxy_enabled === "boolean" && typeof composeFile.gateway_enabled === "undefined") {
1509
- composeFile.gateway_enabled = composeFile.tproxy_enabled;
1510
- delete composeFile.tproxy_enabled;
1511
- if (typeof window !== "undefined" ? window.console : globalThis.console) {
1512
- console.warn(
1513
- "[phala/cloud] tproxy_enabled is deprecated, please use gateway_enabled instead. See docs for migration."
1828
+ `Network ${chainId} not found in wallet. Please add it manually.`,
1829
+ "NETWORK_NOT_FOUND",
1830
+ error
1514
1831
  );
1515
1832
  }
1833
+ throw new NetworkError(
1834
+ `Failed to switch network: ${errorObj.message || "Unknown error"}`,
1835
+ "NETWORK_SWITCH_FAILED",
1836
+ error
1837
+ );
1516
1838
  }
1517
- return {
1518
- ...appCompose,
1519
- compose_file: composeFile
1520
- };
1521
1839
  }
1522
- var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(ProvisionCvmSchema, async (client, appCompose) => {
1523
- const body = handleGatewayCompatibility(autofillComposeFileName(appCompose));
1524
- let requestBody = { ...body };
1525
- if (typeof body.node_id === "number") {
1526
- requestBody = { ...body, teepod_id: body.node_id };
1527
- delete requestBody.node_id;
1528
- } else if (typeof body.teepod_id === "number") {
1529
- console.warn("[phala/cloud] teepod_id is deprecated, please use node_id instead.");
1840
+ async function addNetwork(provider, config) {
1841
+ try {
1842
+ await provider.request({
1843
+ method: "wallet_addEthereumChain",
1844
+ params: [
1845
+ {
1846
+ chainId: `0x${config.chainId.toString(16)}`,
1847
+ chainName: config.name,
1848
+ rpcUrls: [config.rpcUrl],
1849
+ blockExplorerUrls: config.blockExplorer ? [config.blockExplorer] : void 0,
1850
+ nativeCurrency: {
1851
+ name: "ETH",
1852
+ symbol: "ETH",
1853
+ decimals: 18
1854
+ }
1855
+ }
1856
+ ]
1857
+ });
1858
+ } catch (error) {
1859
+ const errorObj = error;
1860
+ throw new NetworkError(
1861
+ `Failed to add network: ${errorObj.message || "Unknown error"}`,
1862
+ "NETWORK_ADD_FAILED",
1863
+ error
1864
+ );
1530
1865
  }
1531
- return await client.post("/cvms/provision", requestBody);
1532
- });
1533
-
1534
- // src/actions/commit_cvm_provision.ts
1535
- var import_zod7 = require("zod");
1536
- var CommitCvmProvisionSchema = import_zod7.z.object({
1537
- id: import_zod7.z.number(),
1538
- name: import_zod7.z.string(),
1539
- status: import_zod7.z.string(),
1540
- teepod_id: import_zod7.z.number(),
1541
- teepod: import_zod7.z.object({
1542
- id: import_zod7.z.number(),
1543
- name: import_zod7.z.string()
1544
- }).nullable(),
1545
- user_id: import_zod7.z.number().nullable(),
1546
- app_id: import_zod7.z.string().nullable(),
1547
- vm_uuid: import_zod7.z.string().nullable(),
1548
- instance_id: import_zod7.z.string().nullable(),
1549
- app_url: import_zod7.z.string().nullable(),
1550
- base_image: import_zod7.z.string().nullable(),
1551
- vcpu: import_zod7.z.number(),
1552
- memory: import_zod7.z.number(),
1553
- disk_size: import_zod7.z.number(),
1554
- manifest_version: import_zod7.z.number().nullable(),
1555
- version: import_zod7.z.string().nullable(),
1556
- runner: import_zod7.z.string().nullable(),
1557
- docker_compose_file: import_zod7.z.string().nullable(),
1558
- features: import_zod7.z.array(import_zod7.z.string()).nullable(),
1559
- created_at: import_zod7.z.string(),
1560
- encrypted_env_pubkey: import_zod7.z.string().nullable().optional(),
1561
- app_auth_contract_address: import_zod7.z.string().nullable().optional(),
1562
- deployer_address: import_zod7.z.string().nullable().optional()
1563
- }).passthrough();
1564
- var CommitCvmProvisionRequestSchema = import_zod7.z.object({
1565
- encrypted_env: import_zod7.z.string().optional().nullable(),
1566
- app_id: import_zod7.z.string(),
1567
- compose_hash: import_zod7.z.string().optional(),
1568
- kms_id: import_zod7.z.string().optional(),
1569
- contract_address: import_zod7.z.string().optional(),
1570
- deployer_address: import_zod7.z.string().optional(),
1571
- env_keys: import_zod7.z.array(import_zod7.z.string()).optional().nullable()
1572
- }).passthrough();
1573
- var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineAction(CommitCvmProvisionSchema, async (client, payload) => {
1574
- return await client.post("/cvms", payload);
1575
- });
1866
+ }
1867
+ async function autoCreateClients(chain, options = {}) {
1868
+ const { privateKey, rpcUrl, preferBrowser = false } = options;
1869
+ if (privateKey) {
1870
+ return createClientsFromPrivateKey(chain, privateKey, rpcUrl);
1871
+ }
1872
+ if (isBrowser() && (preferBrowser || !privateKey)) {
1873
+ return createClientsFromBrowser(chain, rpcUrl);
1874
+ }
1875
+ throw new WalletError(
1876
+ "No wallet connection method available. Provide a private key for server-side usage or use in browser environment.",
1877
+ "NO_CONNECTION_METHOD"
1878
+ );
1879
+ }
1576
1880
 
1577
- // src/actions/deploy_app_auth.ts
1578
- var import_zod8 = require("zod");
1579
- var import_viem3 = require("viem");
1580
- var import_accounts2 = require("viem/accounts");
1881
+ // src/actions/blockchains/deploy_app_auth.ts
1581
1882
  var kmsAuthAbi = [
1582
1883
  {
1583
1884
  inputs: [
@@ -1608,25 +1909,25 @@ var kmsAuthAbi = [
1608
1909
  anonymous: false
1609
1910
  }
1610
1911
  ];
1611
- var DeployAppAuthRequestBaseSchema = import_zod8.z.object({
1912
+ var DeployAppAuthRequestBaseSchema = import_zod19.z.object({
1612
1913
  // Chain configuration (conditionally required)
1613
- chain: import_zod8.z.unknown().optional(),
1614
- rpcUrl: import_zod8.z.string().optional(),
1914
+ chain: import_zod19.z.unknown().optional(),
1915
+ rpcUrl: import_zod19.z.string().optional(),
1615
1916
  // Contract configuration (required)
1616
- kmsContractAddress: import_zod8.z.string(),
1917
+ kmsContractAddress: import_zod19.z.string(),
1617
1918
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
1618
- privateKey: import_zod8.z.string().optional(),
1619
- walletClient: import_zod8.z.unknown().optional(),
1919
+ privateKey: import_zod19.z.string().optional(),
1920
+ walletClient: import_zod19.z.unknown().optional(),
1620
1921
  // Public client (optional, will create default if not provided)
1621
- publicClient: import_zod8.z.unknown().optional(),
1922
+ publicClient: import_zod19.z.unknown().optional(),
1622
1923
  // App configuration (optional)
1623
- allowAnyDevice: import_zod8.z.boolean().optional().default(false),
1624
- deviceId: import_zod8.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1625
- composeHash: import_zod8.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1626
- disableUpgrades: import_zod8.z.boolean().optional().default(false),
1924
+ allowAnyDevice: import_zod19.z.boolean().optional().default(false),
1925
+ deviceId: import_zod19.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1926
+ composeHash: import_zod19.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1927
+ disableUpgrades: import_zod19.z.boolean().optional().default(false),
1627
1928
  // Validation configuration (optional)
1628
- skipPrerequisiteChecks: import_zod8.z.boolean().optional().default(false),
1629
- minBalance: import_zod8.z.string().optional()
1929
+ skipPrerequisiteChecks: import_zod19.z.boolean().optional().default(false),
1930
+ minBalance: import_zod19.z.string().optional()
1630
1931
  // ETH amount as string, e.g., "0.01"
1631
1932
  }).passthrough();
1632
1933
  var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
@@ -1654,13 +1955,13 @@ var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
1654
1955
  path: ["chain"]
1655
1956
  }
1656
1957
  );
1657
- var DeployAppAuthSchema = import_zod8.z.object({
1658
- appId: import_zod8.z.string(),
1659
- appAuthAddress: import_zod8.z.string(),
1660
- deployer: import_zod8.z.string(),
1661
- transactionHash: import_zod8.z.string(),
1662
- blockNumber: import_zod8.z.bigint().optional(),
1663
- gasUsed: import_zod8.z.bigint().optional()
1958
+ var DeployAppAuthSchema = import_zod19.z.object({
1959
+ appId: import_zod19.z.string(),
1960
+ appAuthAddress: import_zod19.z.string(),
1961
+ deployer: import_zod19.z.string(),
1962
+ transactionHash: import_zod19.z.string(),
1963
+ blockNumber: import_zod19.z.bigint().optional(),
1964
+ gasUsed: import_zod19.z.bigint().optional()
1664
1965
  }).passthrough();
1665
1966
  function parseDeploymentResult(receipt, deployer, kmsContractAddress) {
1666
1967
  try {
@@ -1905,8 +2206,8 @@ async function safeDeployAppAuth(request, parameters) {
1905
2206
  }
1906
2207
  }
1907
2208
 
1908
- // src/actions/add_compose_hash.ts
1909
- var import_zod9 = require("zod");
2209
+ // src/actions/blockchains/add_compose_hash.ts
2210
+ var import_zod20 = require("zod");
1910
2211
  var import_viem4 = require("viem");
1911
2212
  var import_accounts3 = require("viem/accounts");
1912
2213
  var appAuthAbi = [
@@ -1924,29 +2225,29 @@ var appAuthAbi = [
1924
2225
  anonymous: false
1925
2226
  }
1926
2227
  ];
1927
- var AddComposeHashRequestSchema = import_zod9.z.object({
2228
+ var AddComposeHashRequestSchema = import_zod20.z.object({
1928
2229
  // Chain configuration (conditionally required)
1929
- chain: import_zod9.z.unknown().optional(),
1930
- rpcUrl: import_zod9.z.string().optional(),
1931
- appId: import_zod9.z.string(),
1932
- composeHash: import_zod9.z.string(),
2230
+ chain: import_zod20.z.unknown().optional(),
2231
+ rpcUrl: import_zod20.z.string().optional(),
2232
+ appId: import_zod20.z.string(),
2233
+ composeHash: import_zod20.z.string(),
1933
2234
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
1934
- privateKey: import_zod9.z.string().optional(),
1935
- walletClient: import_zod9.z.unknown().optional(),
2235
+ privateKey: import_zod20.z.string().optional(),
2236
+ walletClient: import_zod20.z.unknown().optional(),
1936
2237
  // Public client (optional, will create default if not provided)
1937
- publicClient: import_zod9.z.unknown().optional(),
2238
+ publicClient: import_zod20.z.unknown().optional(),
1938
2239
  // Validation configuration (optional)
1939
- skipPrerequisiteChecks: import_zod9.z.boolean().optional().default(false),
1940
- minBalance: import_zod9.z.string().optional(),
2240
+ skipPrerequisiteChecks: import_zod20.z.boolean().optional().default(false),
2241
+ minBalance: import_zod20.z.string().optional(),
1941
2242
  // ETH amount as string, e.g., "0.01"
1942
2243
  // Transaction control options
1943
- timeout: import_zod9.z.number().optional().default(12e4),
1944
- retryOptions: import_zod9.z.unknown().optional(),
1945
- signal: import_zod9.z.unknown().optional(),
2244
+ timeout: import_zod20.z.number().optional().default(12e4),
2245
+ retryOptions: import_zod20.z.unknown().optional(),
2246
+ signal: import_zod20.z.unknown().optional(),
1946
2247
  // Progress callbacks
1947
- onTransactionStateChange: import_zod9.z.function().optional(),
1948
- onTransactionSubmitted: import_zod9.z.function().optional(),
1949
- onTransactionConfirmed: import_zod9.z.function().optional()
2248
+ onTransactionStateChange: import_zod20.z.function().optional(),
2249
+ onTransactionSubmitted: import_zod20.z.function().optional(),
2250
+ onTransactionConfirmed: import_zod20.z.function().optional()
1950
2251
  }).passthrough().refine(
1951
2252
  (data) => {
1952
2253
  const hasPrivateKey = !!data.privateKey;
@@ -1970,12 +2271,12 @@ var AddComposeHashRequestSchema = import_zod9.z.object({
1970
2271
  path: ["chain"]
1971
2272
  }
1972
2273
  );
1973
- var AddComposeHashSchema = import_zod9.z.object({
1974
- composeHash: import_zod9.z.string(),
1975
- appId: import_zod9.z.string(),
1976
- transactionHash: import_zod9.z.string(),
1977
- blockNumber: import_zod9.z.bigint().optional(),
1978
- gasUsed: import_zod9.z.bigint().optional()
2274
+ var AddComposeHashSchema = import_zod20.z.object({
2275
+ composeHash: import_zod20.z.string(),
2276
+ appId: import_zod20.z.string(),
2277
+ transactionHash: import_zod20.z.string(),
2278
+ blockNumber: import_zod20.z.bigint().optional(),
2279
+ gasUsed: import_zod20.z.bigint().optional()
1979
2280
  }).passthrough();
1980
2281
  function parseComposeHashResult(receipt, composeHash, appAuthAddress, appId) {
1981
2282
  console.log(receipt.logs);
@@ -2166,282 +2467,6 @@ async function safeAddComposeHash(request, parameters) {
2166
2467
  }
2167
2468
  }
2168
2469
 
2169
- // src/actions/get_cvm_compose_file.ts
2170
- var import_zod11 = require("zod");
2171
-
2172
- // src/types/app_compose.ts
2173
- var import_zod10 = require("zod");
2174
- var LooseAppComposeSchema = import_zod10.z.object({
2175
- allowed_envs: import_zod10.z.array(import_zod10.z.string()).optional(),
2176
- docker_compose_file: import_zod10.z.string(),
2177
- features: import_zod10.z.array(import_zod10.z.string()).optional(),
2178
- name: import_zod10.z.string().optional(),
2179
- manifest_version: import_zod10.z.number().optional(),
2180
- kms_enabled: import_zod10.z.boolean().optional(),
2181
- public_logs: import_zod10.z.boolean().optional(),
2182
- public_sysinfo: import_zod10.z.boolean().optional(),
2183
- tproxy_enabled: import_zod10.z.boolean().optional(),
2184
- pre_launch_script: import_zod10.z.string().optional()
2185
- }).passthrough();
2186
-
2187
- // src/actions/get_cvm_compose_file.ts
2188
- var GetCvmComposeFileRequestSchema = import_zod11.z.object({
2189
- id: import_zod11.z.string().optional(),
2190
- 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(),
2191
- app_id: import_zod11.z.string().refine(
2192
- (val) => !val.startsWith("app_") && val.length === 40,
2193
- "app_id should be 40 characters without prefix"
2194
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2195
- instance_id: import_zod11.z.string().refine(
2196
- (val) => !val.startsWith("instance_") && val.length === 40,
2197
- "instance_id should be 40 characters without prefix"
2198
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
2199
- }).refine(
2200
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2201
- "One of id, uuid, app_id, or instance_id must be provided"
2202
- ).transform((data) => ({
2203
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2204
- _raw: data
2205
- }));
2206
- var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(LooseAppComposeSchema, async (client, request) => {
2207
- const validatedRequest = GetCvmComposeFileRequestSchema.parse(request);
2208
- return await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
2209
- });
2210
-
2211
- // src/actions/provision_cvm_compose_file_update.ts
2212
- var import_zod12 = require("zod");
2213
- var ProvisionCvmComposeFileUpdateRequestSchema = import_zod12.z.object({
2214
- id: import_zod12.z.string().optional(),
2215
- 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(),
2216
- app_id: import_zod12.z.string().refine(
2217
- (val) => !val.startsWith("app_") && val.length === 40,
2218
- "app_id should be 40 characters without prefix"
2219
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2220
- instance_id: import_zod12.z.string().refine(
2221
- (val) => !val.startsWith("instance_") && val.length === 40,
2222
- "instance_id should be 40 characters without prefix"
2223
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
2224
- app_compose: LooseAppComposeSchema,
2225
- update_env_vars: import_zod12.z.boolean().optional().nullable()
2226
- }).refine(
2227
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2228
- "One of id, uuid, app_id, or instance_id must be provided"
2229
- ).transform((data) => ({
2230
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2231
- request: data.app_compose,
2232
- update_env_vars: data.update_env_vars,
2233
- _raw: data
2234
- }));
2235
- var ProvisionCvmComposeFileUpdateResultSchema = import_zod12.z.object({
2236
- app_id: import_zod12.z.string().nullable(),
2237
- device_id: import_zod12.z.string().nullable(),
2238
- compose_hash: import_zod12.z.string(),
2239
- kms_info: KmsInfoSchema.nullable().optional()
2240
- }).passthrough();
2241
- var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
2242
- const validatedRequest = ProvisionCvmComposeFileUpdateRequestSchema.parse(request);
2243
- return await client.post(
2244
- `/cvms/${validatedRequest.cvmId}/compose_file/provision`,
2245
- validatedRequest.request
2246
- );
2247
- });
2248
-
2249
- // src/actions/commit_cvm_compose_file_update.ts
2250
- var import_zod13 = require("zod");
2251
- var CommitCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
2252
- id: import_zod13.z.string().optional(),
2253
- 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(),
2254
- app_id: import_zod13.z.string().refine(
2255
- (val) => !val.startsWith("app_") && val.length === 40,
2256
- "app_id should be 40 characters without prefix"
2257
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2258
- instance_id: import_zod13.z.string().refine(
2259
- (val) => !val.startsWith("instance_") && val.length === 40,
2260
- "instance_id should be 40 characters without prefix"
2261
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
2262
- compose_hash: import_zod13.z.string().min(1, "Compose hash is required"),
2263
- encrypted_env: import_zod13.z.string().optional(),
2264
- env_keys: import_zod13.z.array(import_zod13.z.string()).optional(),
2265
- update_env_vars: import_zod13.z.boolean().optional().nullable()
2266
- }).refine(
2267
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2268
- "One of id, uuid, app_id, or instance_id must be provided"
2269
- ).transform((data) => ({
2270
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2271
- compose_hash: data.compose_hash,
2272
- encrypted_env: data.encrypted_env,
2273
- env_keys: data.env_keys,
2274
- update_env_vars: !!data.update_env_vars,
2275
- _raw: data
2276
- }));
2277
- var CommitCvmComposeFileUpdateSchema = import_zod13.z.any().transform(() => void 0);
2278
- var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
2279
- CommitCvmComposeFileUpdateSchema,
2280
- async (client, request) => {
2281
- const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
2282
- return await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
2283
- compose_hash: validatedRequest.compose_hash,
2284
- encrypted_env: validatedRequest.encrypted_env,
2285
- env_keys: validatedRequest.env_keys
2286
- });
2287
- }
2288
- );
2289
-
2290
- // src/actions/get_app_env_encrypt_pubkey.ts
2291
- var import_zod14 = require("zod");
2292
- var GetAppEnvEncryptPubKeyRequestSchema = import_zod14.z.object({
2293
- kms: import_zod14.z.string().min(1, "KMS ID or slug is required"),
2294
- app_id: import_zod14.z.string().refine(
2295
- (val) => val.length === 40 || val.startsWith("0x") && val.length === 42,
2296
- "App ID must be exactly 40 characters or 42 characters with 0x prefix"
2297
- )
2298
- }).strict();
2299
- var GetAppEnvEncryptPubKeySchema = import_zod14.z.object({
2300
- public_key: import_zod14.z.string(),
2301
- signature: import_zod14.z.string()
2302
- }).strict();
2303
- var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
2304
- const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
2305
- return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
2306
- });
2307
-
2308
- // src/actions/get_cvm_info.ts
2309
- var import_zod15 = require("zod");
2310
- var GetCvmInfoRequestSchema = import_zod15.z.object({
2311
- id: import_zod15.z.string().optional(),
2312
- 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(),
2313
- app_id: import_zod15.z.string().refine(
2314
- (val) => !val.startsWith("app_") && val.length === 40,
2315
- "app_id should be 40 characters without prefix"
2316
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2317
- instance_id: import_zod15.z.string().refine(
2318
- (val) => !val.startsWith("instance_") && val.length === 40,
2319
- "instance_id should be 40 characters without prefix"
2320
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
2321
- }).refine(
2322
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2323
- "One of id, uuid, app_id, or instance_id must be provided"
2324
- ).transform((data) => ({
2325
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2326
- _raw: data
2327
- }));
2328
- var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
2329
- const validatedRequest = GetCvmInfoRequestSchema.parse(request);
2330
- return await client.get(`/cvms/${validatedRequest.cvmId}`);
2331
- });
2332
-
2333
- // src/actions/get_cvm_list.ts
2334
- var import_zod16 = require("zod");
2335
- var GetCvmListRequestSchema = import_zod16.z.object({
2336
- page: import_zod16.z.number().int().min(1).optional(),
2337
- page_size: import_zod16.z.number().int().min(1).optional(),
2338
- node_id: import_zod16.z.number().int().min(1).optional()
2339
- }).strict();
2340
- var GetCvmListSchema = import_zod16.z.object({
2341
- items: import_zod16.z.array(CvmInfoSchema),
2342
- total: import_zod16.z.number(),
2343
- page: import_zod16.z.number(),
2344
- page_size: import_zod16.z.number(),
2345
- pages: import_zod16.z.number()
2346
- }).strict();
2347
- var { action: getCvmList, safeAction: safeGetCvmList } = defineAction(GetCvmListSchema, async (client, request) => {
2348
- const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
2349
- return await client.get("/cvms/paginated", { params: validatedRequest });
2350
- });
2351
-
2352
- // src/actions/get_kms_info.ts
2353
- var import_zod17 = require("zod");
2354
- var GetKmsInfoRequestSchema = import_zod17.z.object({
2355
- kms_id: import_zod17.z.string().min(1, "KMS ID is required")
2356
- });
2357
- var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
2358
- const validatedRequest = GetKmsInfoRequestSchema.parse(request);
2359
- return await client.get(`/kms/${validatedRequest.kms_id}`);
2360
- });
2361
-
2362
- // src/actions/get_kms_list.ts
2363
- var import_zod18 = require("zod");
2364
- var GetKmsListRequestSchema = import_zod18.z.object({
2365
- page: import_zod18.z.number().int().min(1).optional(),
2366
- page_size: import_zod18.z.number().int().min(1).optional(),
2367
- is_onchain: import_zod18.z.boolean().optional()
2368
- }).strict();
2369
- var GetKmsListSchema = import_zod18.z.object({
2370
- items: import_zod18.z.array(KmsInfoSchema),
2371
- total: import_zod18.z.number(),
2372
- page: import_zod18.z.number(),
2373
- page_size: import_zod18.z.number(),
2374
- pages: import_zod18.z.number()
2375
- }).strict();
2376
- var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
2377
- const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
2378
- return await client.get("/kms", { params: validatedRequest });
2379
- });
2380
-
2381
- // src/actions/workspaces/list_workspaces.ts
2382
- var import_zod19 = require("zod");
2383
- var WorkspaceResponseSchema = import_zod19.z.object({
2384
- id: import_zod19.z.string(),
2385
- name: import_zod19.z.string(),
2386
- slug: import_zod19.z.string().nullable(),
2387
- tier: import_zod19.z.string(),
2388
- role: import_zod19.z.string(),
2389
- created_at: import_zod19.z.string()
2390
- }).passthrough();
2391
- var PaginationMetadataSchema = import_zod19.z.object({
2392
- has_more: import_zod19.z.boolean(),
2393
- next_cursor: import_zod19.z.string().nullable(),
2394
- total: import_zod19.z.number().nullable()
2395
- }).passthrough();
2396
- var ListWorkspacesSchema = import_zod19.z.object({
2397
- data: import_zod19.z.array(WorkspaceResponseSchema),
2398
- pagination: PaginationMetadataSchema
2399
- }).passthrough();
2400
- var { action: listWorkspaces, safeAction: safeListWorkspaces } = defineAction(ListWorkspacesSchema, async (client, request) => {
2401
- const queryParams = new URLSearchParams();
2402
- if (request?.cursor) queryParams.append("cursor", request.cursor);
2403
- if (request?.limit) queryParams.append("limit", request.limit.toString());
2404
- const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2405
- return await client.get(url);
2406
- });
2407
-
2408
- // src/actions/workspaces/get_workspace.ts
2409
- var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(WorkspaceResponseSchema, async (client, teamSlug) => {
2410
- return await client.get(`/workspaces/${teamSlug}`);
2411
- });
2412
-
2413
- // src/actions/list-instance-types.ts
2414
- var import_zod20 = require("zod");
2415
- var ListInstanceTypesRequestSchema = import_zod20.z.object({
2416
- page: import_zod20.z.number().int().min(1).optional().default(1),
2417
- page_size: import_zod20.z.number().int().min(1).max(1e3).optional().default(100)
2418
- }).strict();
2419
- var InstanceTypeSchema = import_zod20.z.object({
2420
- id: import_zod20.z.string(),
2421
- name: import_zod20.z.string(),
2422
- description: import_zod20.z.string(),
2423
- vcpu: import_zod20.z.number(),
2424
- memory_mb: import_zod20.z.number(),
2425
- hourly_rate: import_zod20.z.string(),
2426
- requires_gpu: import_zod20.z.boolean(),
2427
- public: import_zod20.z.boolean(),
2428
- enabled: import_zod20.z.boolean()
2429
- }).passthrough();
2430
- var PaginatedInstanceTypesSchema = import_zod20.z.object({
2431
- items: import_zod20.z.array(InstanceTypeSchema),
2432
- total: import_zod20.z.number(),
2433
- page: import_zod20.z.number(),
2434
- page_size: import_zod20.z.number(),
2435
- pages: import_zod20.z.number()
2436
- }).strict();
2437
- var { action: listInstanceTypes, safeAction: safeListInstanceTypes } = defineAction(PaginatedInstanceTypesSchema, async (client, request) => {
2438
- const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
2439
- const queryParams = new URLSearchParams();
2440
- queryParams.append("page", validatedRequest.page.toString());
2441
- queryParams.append("page_size", validatedRequest.page_size.toString());
2442
- return await client.get(`/api/instance-types?${queryParams.toString()}`);
2443
- });
2444
-
2445
2470
  // src/parse_dotenv.ts
2446
2471
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
2447
2472
  function parseEnv(input) {
@@ -2528,6 +2553,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2528
2553
  checkNetworkStatus,
2529
2554
  commitCvmComposeFileUpdate,
2530
2555
  commitCvmProvision,
2556
+ createBaseClient,
2531
2557
  createClient,
2532
2558
  createClientsFromBrowser,
2533
2559
  createClientsFromPrivateKey,