@phala/cloud 0.1.1-beta.1 → 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.
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,122 +460,8 @@ function createClient(config = {}) {
459
460
  return new Client(config);
460
461
  }
461
462
 
462
- // src/types/kms_info.ts
463
- var import_zod2 = require("zod");
464
-
465
- // src/types/supported_chains.ts
466
- var import_chains = require("viem/chains");
467
- var SUPPORTED_CHAINS = {
468
- [import_chains.mainnet.id]: import_chains.mainnet,
469
- [import_chains.base.id]: import_chains.base,
470
- [import_chains.anvil.id]: import_chains.anvil
471
- };
472
-
473
- // 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)
482
- }).passthrough();
483
- var KmsInfoSchema = KmsInfoBaseSchema.transform((data) => {
484
- if (data.chain_id != null) {
485
- const chain = SUPPORTED_CHAINS[data.chain_id];
486
- if (chain) {
487
- return { ...data, chain };
488
- }
489
- }
490
- return data;
491
- });
492
-
493
- // 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(),
504
- // 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()
510
- });
511
- var ManagedUserSchema = import_zod3.z.object({
512
- id: import_zod3.z.number(),
513
- username: import_zod3.z.string()
514
- });
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()
519
- });
520
- var CvmNetworkUrlsSchema = import_zod3.z.object({
521
- app: import_zod3.z.string(),
522
- instance: import_zod3.z.string()
523
- });
524
- var CvmInfoSchema = import_zod3.z.object({
525
- hosted: VmInfoSchema,
526
- name: import_zod3.z.string(),
527
- managed_user: ManagedUserSchema.optional().nullable(),
528
- 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(),
536
- // HashedId is represented as string in JS
537
- project_type: import_zod3.z.string().nullable(),
538
- billing_period: import_zod3.z.string().nullable(),
539
- 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)
545
- }).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(),
552
- 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(),
568
- 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()
574
- });
575
-
576
463
  // src/actions/get_current_user.ts
577
- var import_zod4 = require("zod");
464
+ var import_zod2 = require("zod");
578
465
 
579
466
  // src/utils/validate-parameters.ts
580
467
  function validateActionParameters(parameters) {
@@ -723,14 +610,14 @@ function defineAction(schema, fn) {
723
610
  }
724
611
 
725
612
  // src/actions/get_current_user.ts
726
- var CurrentUserSchema = import_zod4.z.object({
727
- username: import_zod4.z.string(),
728
- email: import_zod4.z.string(),
729
- credits: import_zod4.z.number(),
730
- granted_credits: import_zod4.z.number(),
731
- avatar: import_zod4.z.string(),
732
- team_name: import_zod4.z.string(),
733
- team_tier: import_zod4.z.string()
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()
734
621
  }).passthrough();
735
622
  var { action: getCurrentUser, safeAction: safeGetCurrentUser } = defineSimpleAction(
736
623
  CurrentUserSchema,
@@ -740,44 +627,77 @@ var { action: getCurrentUser, safeAction: safeGetCurrentUser } = defineSimpleAct
740
627
  );
741
628
 
742
629
  // src/actions/get_available_nodes.ts
743
- var import_zod5 = require("zod");
744
- var AvailableOSImageSchema = import_zod5.z.object({
745
- name: import_zod5.z.string(),
746
- is_dev: import_zod5.z.boolean(),
747
- version: import_zod5.z.union([
748
- import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()]),
749
- import_zod5.z.tuple([import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number(), import_zod5.z.number()])
630
+ var import_zod4 = require("zod");
631
+
632
+ // src/types/kms_info.ts
633
+ var import_zod3 = require("zod");
634
+
635
+ // src/types/supported_chains.ts
636
+ var import_chains = require("viem/chains");
637
+ var SUPPORTED_CHAINS = {
638
+ [import_chains.mainnet.id]: import_chains.mainnet,
639
+ [import_chains.base.id]: import_chains.base,
640
+ [import_chains.anvil.id]: import_chains.anvil
641
+ };
642
+
643
+ // src/types/kms_info.ts
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)
652
+ }).passthrough();
653
+ var KmsInfoSchema = KmsInfoBaseSchema.transform((data) => {
654
+ if (data.chain_id != null) {
655
+ const chain = SUPPORTED_CHAINS[data.chain_id];
656
+ if (chain) {
657
+ return { ...data, chain };
658
+ }
659
+ }
660
+ return data;
661
+ });
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()])
750
670
  ]),
751
- os_image_hash: import_zod5.z.string().nullable().optional()
671
+ os_image_hash: import_zod4.z.string().nullable().optional()
752
672
  }).passthrough();
753
- var TeepodCapacitySchema = import_zod5.z.object({
754
- teepod_id: import_zod5.z.number(),
755
- name: import_zod5.z.string(),
756
- listed: import_zod5.z.boolean(),
757
- resource_score: import_zod5.z.number(),
758
- remaining_vcpu: import_zod5.z.number(),
759
- remaining_memory: import_zod5.z.number(),
760
- remaining_cvm_slots: import_zod5.z.number(),
761
- images: import_zod5.z.array(AvailableOSImageSchema),
762
- support_onchain_kms: import_zod5.z.boolean().optional(),
763
- fmspc: import_zod5.z.string().nullable().optional(),
764
- device_id: import_zod5.z.string().nullable().optional(),
765
- region_identifier: import_zod5.z.string().nullable().optional(),
766
- default_kms: import_zod5.z.string().nullable().optional(),
767
- kms_list: import_zod5.z.array(import_zod5.z.string()).default([])
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([])
768
688
  }).passthrough();
769
- var ResourceThresholdSchema = import_zod5.z.object({
770
- max_instances: import_zod5.z.number().nullable().optional(),
771
- max_vcpu: import_zod5.z.number().nullable().optional(),
772
- max_memory: import_zod5.z.number().nullable().optional(),
773
- max_disk: import_zod5.z.number().nullable().optional()
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()
774
694
  }).passthrough();
775
- var AvailableNodesSchema = import_zod5.z.object({
776
- tier: import_zod5.z.string(),
695
+ var AvailableNodesSchema = import_zod4.z.object({
696
+ tier: import_zod4.z.string(),
777
697
  // TeamTier is string enum
778
698
  capacity: ResourceThresholdSchema,
779
- nodes: import_zod5.z.array(TeepodCapacitySchema),
780
- kms_list: import_zod5.z.array(KmsInfoSchema)
699
+ nodes: import_zod4.z.array(TeepodCapacitySchema),
700
+ kms_list: import_zod4.z.array(KmsInfoSchema)
781
701
  }).passthrough();
782
702
  var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSimpleAction(
783
703
  AvailableNodesSchema,
@@ -786,19 +706,212 @@ var { action: getAvailableNodes, safeAction: safeGetAvailableNodes } = defineSim
786
706
  }
787
707
  );
788
708
 
789
- // src/actions/cvms/provision_cvm.ts
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
790
742
  var import_zod6 = require("zod");
791
- var ProvisionCvmSchema = import_zod6.z.object({
792
- app_id: import_zod6.z.string().nullable().optional(),
793
- app_env_encrypt_pubkey: import_zod6.z.string().nullable().optional(),
794
- compose_hash: import_zod6.z.string(),
795
- fmspc: import_zod6.z.string().nullable().optional(),
796
- device_id: import_zod6.z.string().nullable().optional(),
797
- os_image_hash: import_zod6.z.string().nullable().optional(),
798
- teepod_id: import_zod6.z.number().nullable().optional(),
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
+
776
+ // src/types/cvm_info.ts
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(),
787
+ // TODO: add VmConfiguration schema if needed
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()
793
+ });
794
+ var ManagedUserSchema = import_zod7.z.object({
795
+ id: import_zod7.z.number(),
796
+ username: import_zod7.z.string()
797
+ });
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()
802
+ });
803
+ var CvmNetworkUrlsSchema = import_zod7.z.object({
804
+ app: import_zod7.z.string(),
805
+ instance: import_zod7.z.string()
806
+ });
807
+ var CvmInfoSchema = import_zod7.z.object({
808
+ hosted: VmInfoSchema,
809
+ name: import_zod7.z.string(),
810
+ managed_user: ManagedUserSchema.optional().nullable(),
811
+ node: CvmNodeSchema.optional().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(),
819
+ // HashedId is represented as string in JS
820
+ project_type: import_zod7.z.string().nullable(),
821
+ billing_period: import_zod7.z.string().nullable(),
822
+ kms_info: KmsInfoSchema.nullable(),
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)
828
+ }).partial();
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(),
835
+ teepod: CvmNodeSchema,
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(),
851
+ kms_info: KmsInfoSchema.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()
857
+ });
858
+
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(),
799
912
  // Will be transformed to node_id
800
- node_id: import_zod6.z.number().nullable().optional(),
801
- kms_id: import_zod6.z.string().nullable().optional()
913
+ node_id: import_zod10.z.number().nullable().optional(),
914
+ kms_id: import_zod10.z.string().nullable().optional()
802
915
  }).passthrough().transform((data) => {
803
916
  if ("teepod_id" in data && data.teepod_id !== void 0) {
804
917
  const { teepod_id, ...rest } = data;
@@ -806,33 +919,33 @@ var ProvisionCvmSchema = import_zod6.z.object({
806
919
  }
807
920
  return data;
808
921
  });
809
- var ProvisionCvmRequestSchema = import_zod6.z.object({
810
- node_id: import_zod6.z.number().optional(),
922
+ var ProvisionCvmRequestSchema = import_zod10.z.object({
923
+ node_id: import_zod10.z.number().optional(),
811
924
  // recommended
812
- teepod_id: import_zod6.z.number().optional(),
925
+ teepod_id: import_zod10.z.number().optional(),
813
926
  // deprecated, for compatibility
814
- name: import_zod6.z.string(),
815
- image: import_zod6.z.string(),
816
- vcpu: import_zod6.z.number(),
817
- memory: import_zod6.z.number(),
818
- disk_size: import_zod6.z.number(),
819
- compose_file: import_zod6.z.object({
820
- allowed_envs: import_zod6.z.array(import_zod6.z.string()).optional(),
821
- pre_launch_script: import_zod6.z.string().optional(),
822
- docker_compose_file: import_zod6.z.string().optional(),
823
- name: import_zod6.z.string().optional(),
824
- kms_enabled: import_zod6.z.boolean().optional(),
825
- public_logs: import_zod6.z.boolean().optional(),
826
- public_sysinfo: import_zod6.z.boolean().optional(),
827
- gateway_enabled: import_zod6.z.boolean().optional(),
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(),
828
941
  // recommended
829
- tproxy_enabled: import_zod6.z.boolean().optional()
942
+ tproxy_enabled: import_zod10.z.boolean().optional()
830
943
  // deprecated, for compatibility
831
944
  }),
832
- listed: import_zod6.z.boolean().optional(),
833
- instance_type: import_zod6.z.string().nullable().optional(),
834
- kms_id: import_zod6.z.string().optional(),
835
- env_keys: import_zod6.z.array(import_zod6.z.string()).optional()
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()
836
949
  }).passthrough();
837
950
  function autofillComposeFileName(appCompose) {
838
951
  if (appCompose.compose_file && !appCompose.compose_file.name) {
@@ -880,50 +993,256 @@ var { action: provisionCvm, safeAction: safeProvisionCvm } = defineAction(Provis
880
993
  });
881
994
 
882
995
  // src/actions/cvms/commit_cvm_provision.ts
883
- var import_zod7 = require("zod");
884
- var CommitCvmProvisionSchema = import_zod7.z.object({
885
- id: import_zod7.z.number(),
886
- name: import_zod7.z.string(),
887
- status: import_zod7.z.string(),
888
- teepod_id: import_zod7.z.number(),
889
- teepod: import_zod7.z.object({
890
- id: import_zod7.z.number(),
891
- name: import_zod7.z.string()
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()
892
1005
  }).nullable(),
893
- user_id: import_zod7.z.number().nullable(),
894
- app_id: import_zod7.z.string().nullable(),
895
- vm_uuid: import_zod7.z.string().nullable(),
896
- instance_id: import_zod7.z.string().nullable(),
897
- app_url: import_zod7.z.string().nullable(),
898
- base_image: import_zod7.z.string().nullable(),
899
- vcpu: import_zod7.z.number(),
900
- memory: import_zod7.z.number(),
901
- disk_size: import_zod7.z.number(),
902
- manifest_version: import_zod7.z.number().nullable(),
903
- version: import_zod7.z.string().nullable(),
904
- runner: import_zod7.z.string().nullable(),
905
- docker_compose_file: import_zod7.z.string().nullable(),
906
- features: import_zod7.z.array(import_zod7.z.string()).nullable(),
907
- created_at: import_zod7.z.string(),
908
- encrypted_env_pubkey: import_zod7.z.string().nullable().optional(),
909
- app_auth_contract_address: import_zod7.z.string().nullable().optional(),
910
- deployer_address: import_zod7.z.string().nullable().optional()
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()
911
1024
  }).passthrough();
912
- var CommitCvmProvisionRequestSchema = import_zod7.z.object({
913
- encrypted_env: import_zod7.z.string().optional().nullable(),
914
- app_id: import_zod7.z.string(),
915
- compose_hash: import_zod7.z.string().optional(),
916
- kms_id: import_zod7.z.string().optional(),
917
- contract_address: import_zod7.z.string().optional(),
918
- deployer_address: import_zod7.z.string().optional(),
919
- env_keys: import_zod7.z.array(import_zod7.z.string()).optional().nullable()
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()
920
1033
  }).passthrough();
921
1034
  var { action: commitCvmProvision, safeAction: safeCommitCvmProvision } = defineAction(CommitCvmProvisionSchema, async (client, payload) => {
922
1035
  return await client.post("/cvms", payload);
923
1036
  });
924
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
+
925
1244
  // src/actions/blockchains/deploy_app_auth.ts
926
- var import_zod8 = require("zod");
1245
+ var import_zod19 = require("zod");
927
1246
  var import_viem3 = require("viem");
928
1247
  var import_accounts2 = require("viem/accounts");
929
1248
 
@@ -1590,25 +1909,25 @@ var kmsAuthAbi = [
1590
1909
  anonymous: false
1591
1910
  }
1592
1911
  ];
1593
- var DeployAppAuthRequestBaseSchema = import_zod8.z.object({
1912
+ var DeployAppAuthRequestBaseSchema = import_zod19.z.object({
1594
1913
  // Chain configuration (conditionally required)
1595
- chain: import_zod8.z.unknown().optional(),
1596
- rpcUrl: import_zod8.z.string().optional(),
1914
+ chain: import_zod19.z.unknown().optional(),
1915
+ rpcUrl: import_zod19.z.string().optional(),
1597
1916
  // Contract configuration (required)
1598
- kmsContractAddress: import_zod8.z.string(),
1917
+ kmsContractAddress: import_zod19.z.string(),
1599
1918
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
1600
- privateKey: import_zod8.z.string().optional(),
1601
- walletClient: import_zod8.z.unknown().optional(),
1919
+ privateKey: import_zod19.z.string().optional(),
1920
+ walletClient: import_zod19.z.unknown().optional(),
1602
1921
  // Public client (optional, will create default if not provided)
1603
- publicClient: import_zod8.z.unknown().optional(),
1922
+ publicClient: import_zod19.z.unknown().optional(),
1604
1923
  // App configuration (optional)
1605
- allowAnyDevice: import_zod8.z.boolean().optional().default(false),
1606
- deviceId: import_zod8.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1607
- composeHash: import_zod8.z.string().optional().default("0000000000000000000000000000000000000000000000000000000000000000"),
1608
- 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),
1609
1928
  // Validation configuration (optional)
1610
- skipPrerequisiteChecks: import_zod8.z.boolean().optional().default(false),
1611
- minBalance: import_zod8.z.string().optional()
1929
+ skipPrerequisiteChecks: import_zod19.z.boolean().optional().default(false),
1930
+ minBalance: import_zod19.z.string().optional()
1612
1931
  // ETH amount as string, e.g., "0.01"
1613
1932
  }).passthrough();
1614
1933
  var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
@@ -1636,13 +1955,13 @@ var DeployAppAuthRequestSchema = DeployAppAuthRequestBaseSchema.refine(
1636
1955
  path: ["chain"]
1637
1956
  }
1638
1957
  );
1639
- var DeployAppAuthSchema = import_zod8.z.object({
1640
- appId: import_zod8.z.string(),
1641
- appAuthAddress: import_zod8.z.string(),
1642
- deployer: import_zod8.z.string(),
1643
- transactionHash: import_zod8.z.string(),
1644
- blockNumber: import_zod8.z.bigint().optional(),
1645
- 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()
1646
1965
  }).passthrough();
1647
1966
  function parseDeploymentResult(receipt, deployer, kmsContractAddress) {
1648
1967
  try {
@@ -1888,7 +2207,7 @@ async function safeDeployAppAuth(request, parameters) {
1888
2207
  }
1889
2208
 
1890
2209
  // src/actions/blockchains/add_compose_hash.ts
1891
- var import_zod9 = require("zod");
2210
+ var import_zod20 = require("zod");
1892
2211
  var import_viem4 = require("viem");
1893
2212
  var import_accounts3 = require("viem/accounts");
1894
2213
  var appAuthAbi = [
@@ -1906,29 +2225,29 @@ var appAuthAbi = [
1906
2225
  anonymous: false
1907
2226
  }
1908
2227
  ];
1909
- var AddComposeHashRequestSchema = import_zod9.z.object({
2228
+ var AddComposeHashRequestSchema = import_zod20.z.object({
1910
2229
  // Chain configuration (conditionally required)
1911
- chain: import_zod9.z.unknown().optional(),
1912
- rpcUrl: import_zod9.z.string().optional(),
1913
- appId: import_zod9.z.string(),
1914
- 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(),
1915
2234
  // Authentication mode: either privateKey OR walletClient (required, mutually exclusive)
1916
- privateKey: import_zod9.z.string().optional(),
1917
- walletClient: import_zod9.z.unknown().optional(),
2235
+ privateKey: import_zod20.z.string().optional(),
2236
+ walletClient: import_zod20.z.unknown().optional(),
1918
2237
  // Public client (optional, will create default if not provided)
1919
- publicClient: import_zod9.z.unknown().optional(),
2238
+ publicClient: import_zod20.z.unknown().optional(),
1920
2239
  // Validation configuration (optional)
1921
- skipPrerequisiteChecks: import_zod9.z.boolean().optional().default(false),
1922
- minBalance: import_zod9.z.string().optional(),
2240
+ skipPrerequisiteChecks: import_zod20.z.boolean().optional().default(false),
2241
+ minBalance: import_zod20.z.string().optional(),
1923
2242
  // ETH amount as string, e.g., "0.01"
1924
2243
  // Transaction control options
1925
- timeout: import_zod9.z.number().optional().default(12e4),
1926
- retryOptions: import_zod9.z.unknown().optional(),
1927
- 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(),
1928
2247
  // Progress callbacks
1929
- onTransactionStateChange: import_zod9.z.function().optional(),
1930
- onTransactionSubmitted: import_zod9.z.function().optional(),
1931
- 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()
1932
2251
  }).passthrough().refine(
1933
2252
  (data) => {
1934
2253
  const hasPrivateKey = !!data.privateKey;
@@ -1952,12 +2271,12 @@ var AddComposeHashRequestSchema = import_zod9.z.object({
1952
2271
  path: ["chain"]
1953
2272
  }
1954
2273
  );
1955
- var AddComposeHashSchema = import_zod9.z.object({
1956
- composeHash: import_zod9.z.string(),
1957
- appId: import_zod9.z.string(),
1958
- transactionHash: import_zod9.z.string(),
1959
- blockNumber: import_zod9.z.bigint().optional(),
1960
- 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()
1961
2280
  }).passthrough();
1962
2281
  function parseComposeHashResult(receipt, composeHash, appAuthAddress, appId) {
1963
2282
  console.log(receipt.logs);
@@ -2148,282 +2467,6 @@ async function safeAddComposeHash(request, parameters) {
2148
2467
  }
2149
2468
  }
2150
2469
 
2151
- // src/actions/cvms/get_cvm_compose_file.ts
2152
- var import_zod11 = require("zod");
2153
-
2154
- // src/types/app_compose.ts
2155
- var import_zod10 = require("zod");
2156
- var LooseAppComposeSchema = import_zod10.z.object({
2157
- allowed_envs: import_zod10.z.array(import_zod10.z.string()).optional(),
2158
- docker_compose_file: import_zod10.z.string(),
2159
- features: import_zod10.z.array(import_zod10.z.string()).optional(),
2160
- name: import_zod10.z.string().optional(),
2161
- manifest_version: import_zod10.z.number().optional(),
2162
- kms_enabled: import_zod10.z.boolean().optional(),
2163
- public_logs: import_zod10.z.boolean().optional(),
2164
- public_sysinfo: import_zod10.z.boolean().optional(),
2165
- tproxy_enabled: import_zod10.z.boolean().optional(),
2166
- pre_launch_script: import_zod10.z.string().optional()
2167
- }).passthrough();
2168
-
2169
- // src/actions/cvms/get_cvm_compose_file.ts
2170
- var GetCvmComposeFileRequestSchema = import_zod11.z.object({
2171
- id: import_zod11.z.string().optional(),
2172
- 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(),
2173
- app_id: import_zod11.z.string().refine(
2174
- (val) => !val.startsWith("app_") && val.length === 40,
2175
- "app_id should be 40 characters without prefix"
2176
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2177
- instance_id: import_zod11.z.string().refine(
2178
- (val) => !val.startsWith("instance_") && val.length === 40,
2179
- "instance_id should be 40 characters without prefix"
2180
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
2181
- }).refine(
2182
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2183
- "One of id, uuid, app_id, or instance_id must be provided"
2184
- ).transform((data) => ({
2185
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2186
- _raw: data
2187
- }));
2188
- var { action: getCvmComposeFile, safeAction: safeGetCvmComposeFile } = defineAction(LooseAppComposeSchema, async (client, request) => {
2189
- const validatedRequest = GetCvmComposeFileRequestSchema.parse(request);
2190
- return await client.get(`/cvms/${validatedRequest.cvmId}/compose_file`);
2191
- });
2192
-
2193
- // src/actions/cvms/provision_cvm_compose_file_update.ts
2194
- var import_zod12 = require("zod");
2195
- var ProvisionCvmComposeFileUpdateRequestSchema = 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(
2199
- (val) => !val.startsWith("app_") && val.length === 40,
2200
- "app_id should be 40 characters without prefix"
2201
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2202
- instance_id: import_zod12.z.string().refine(
2203
- (val) => !val.startsWith("instance_") && val.length === 40,
2204
- "instance_id should be 40 characters without prefix"
2205
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
2206
- app_compose: LooseAppComposeSchema,
2207
- update_env_vars: import_zod12.z.boolean().optional().nullable()
2208
- }).refine(
2209
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2210
- "One of id, uuid, app_id, or instance_id must be provided"
2211
- ).transform((data) => ({
2212
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2213
- request: data.app_compose,
2214
- update_env_vars: data.update_env_vars,
2215
- _raw: data
2216
- }));
2217
- var ProvisionCvmComposeFileUpdateResultSchema = import_zod12.z.object({
2218
- app_id: import_zod12.z.string().nullable(),
2219
- device_id: import_zod12.z.string().nullable(),
2220
- compose_hash: import_zod12.z.string(),
2221
- kms_info: KmsInfoSchema.nullable().optional()
2222
- }).passthrough();
2223
- var { action: provisionCvmComposeFileUpdate, safeAction: safeProvisionCvmComposeFileUpdate } = defineAction(ProvisionCvmComposeFileUpdateResultSchema, async (client, request) => {
2224
- const validatedRequest = ProvisionCvmComposeFileUpdateRequestSchema.parse(request);
2225
- return await client.post(
2226
- `/cvms/${validatedRequest.cvmId}/compose_file/provision`,
2227
- validatedRequest.request
2228
- );
2229
- });
2230
-
2231
- // src/actions/cvms/commit_cvm_compose_file_update.ts
2232
- var import_zod13 = require("zod");
2233
- var CommitCvmComposeFileUpdateRequestSchema = import_zod13.z.object({
2234
- id: import_zod13.z.string().optional(),
2235
- 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(),
2236
- app_id: import_zod13.z.string().refine(
2237
- (val) => !val.startsWith("app_") && val.length === 40,
2238
- "app_id should be 40 characters without prefix"
2239
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2240
- instance_id: import_zod13.z.string().refine(
2241
- (val) => !val.startsWith("instance_") && val.length === 40,
2242
- "instance_id should be 40 characters without prefix"
2243
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional(),
2244
- compose_hash: import_zod13.z.string().min(1, "Compose hash is required"),
2245
- encrypted_env: import_zod13.z.string().optional(),
2246
- env_keys: import_zod13.z.array(import_zod13.z.string()).optional(),
2247
- update_env_vars: import_zod13.z.boolean().optional().nullable()
2248
- }).refine(
2249
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2250
- "One of id, uuid, app_id, or instance_id must be provided"
2251
- ).transform((data) => ({
2252
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2253
- compose_hash: data.compose_hash,
2254
- encrypted_env: data.encrypted_env,
2255
- env_keys: data.env_keys,
2256
- update_env_vars: !!data.update_env_vars,
2257
- _raw: data
2258
- }));
2259
- var CommitCvmComposeFileUpdateSchema = import_zod13.z.any().transform(() => void 0);
2260
- var { action: commitCvmComposeFileUpdate, safeAction: safeCommitCvmComposeFileUpdate } = defineAction(
2261
- CommitCvmComposeFileUpdateSchema,
2262
- async (client, request) => {
2263
- const validatedRequest = CommitCvmComposeFileUpdateRequestSchema.parse(request);
2264
- return await client.patch(`/cvms/${validatedRequest.cvmId}/compose_file`, {
2265
- compose_hash: validatedRequest.compose_hash,
2266
- encrypted_env: validatedRequest.encrypted_env,
2267
- env_keys: validatedRequest.env_keys
2268
- });
2269
- }
2270
- );
2271
-
2272
- // src/actions/kms/get_app_env_encrypt_pubkey.ts
2273
- var import_zod14 = require("zod");
2274
- var GetAppEnvEncryptPubKeyRequestSchema = import_zod14.z.object({
2275
- kms: import_zod14.z.string().min(1, "KMS ID or slug is required"),
2276
- app_id: import_zod14.z.string().refine(
2277
- (val) => val.length === 40 || val.startsWith("0x") && val.length === 42,
2278
- "App ID must be exactly 40 characters or 42 characters with 0x prefix"
2279
- )
2280
- }).strict();
2281
- var GetAppEnvEncryptPubKeySchema = import_zod14.z.object({
2282
- public_key: import_zod14.z.string(),
2283
- signature: import_zod14.z.string()
2284
- }).strict();
2285
- var { action: getAppEnvEncryptPubKey, safeAction: safeGetAppEnvEncryptPubKey } = defineAction(GetAppEnvEncryptPubKeySchema, async (client, payload) => {
2286
- const validatedRequest = GetAppEnvEncryptPubKeyRequestSchema.parse(payload);
2287
- return await client.get(`/kms/${validatedRequest.kms}/pubkey/${validatedRequest.app_id}`);
2288
- });
2289
-
2290
- // src/actions/cvms/get_cvm_info.ts
2291
- var import_zod15 = require("zod");
2292
- var GetCvmInfoRequestSchema = import_zod15.z.object({
2293
- id: import_zod15.z.string().optional(),
2294
- 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(),
2295
- app_id: import_zod15.z.string().refine(
2296
- (val) => !val.startsWith("app_") && val.length === 40,
2297
- "app_id should be 40 characters without prefix"
2298
- ).transform((val) => val.startsWith("app_") ? val : `app_${val}`).optional(),
2299
- instance_id: import_zod15.z.string().refine(
2300
- (val) => !val.startsWith("instance_") && val.length === 40,
2301
- "instance_id should be 40 characters without prefix"
2302
- ).transform((val) => val.startsWith("instance_") ? val : `instance_${val}`).optional()
2303
- }).refine(
2304
- (data) => !!(data.id || data.uuid || data.app_id || data.instance_id),
2305
- "One of id, uuid, app_id, or instance_id must be provided"
2306
- ).transform((data) => ({
2307
- cvmId: data.id || data.uuid || data.app_id || data.instance_id,
2308
- _raw: data
2309
- }));
2310
- var { action: getCvmInfo, safeAction: safeGetCvmInfo } = defineAction(CvmLegacyDetailSchema, async (client, request) => {
2311
- const validatedRequest = GetCvmInfoRequestSchema.parse(request);
2312
- return await client.get(`/cvms/${validatedRequest.cvmId}`);
2313
- });
2314
-
2315
- // src/actions/cvms/get_cvm_list.ts
2316
- var import_zod16 = require("zod");
2317
- var GetCvmListRequestSchema = import_zod16.z.object({
2318
- page: import_zod16.z.number().int().min(1).optional(),
2319
- page_size: import_zod16.z.number().int().min(1).optional(),
2320
- node_id: import_zod16.z.number().int().min(1).optional()
2321
- }).strict();
2322
- var GetCvmListSchema = import_zod16.z.object({
2323
- items: import_zod16.z.array(CvmInfoSchema),
2324
- total: import_zod16.z.number(),
2325
- page: import_zod16.z.number(),
2326
- page_size: import_zod16.z.number(),
2327
- pages: import_zod16.z.number()
2328
- }).strict();
2329
- var { action: getCvmList, safeAction: safeGetCvmList } = defineAction(GetCvmListSchema, async (client, request) => {
2330
- const validatedRequest = GetCvmListRequestSchema.parse(request ?? {});
2331
- return await client.get("/cvms/paginated", { params: validatedRequest });
2332
- });
2333
-
2334
- // src/actions/kms/get_kms_info.ts
2335
- var import_zod17 = require("zod");
2336
- var GetKmsInfoRequestSchema = import_zod17.z.object({
2337
- kms_id: import_zod17.z.string().min(1, "KMS ID is required")
2338
- });
2339
- var { action: getKmsInfo, safeAction: safeGetKmsInfo } = defineAction(KmsInfoSchema, async (client, request) => {
2340
- const validatedRequest = GetKmsInfoRequestSchema.parse(request);
2341
- return await client.get(`/kms/${validatedRequest.kms_id}`);
2342
- });
2343
-
2344
- // src/actions/kms/get_kms_list.ts
2345
- var import_zod18 = require("zod");
2346
- var GetKmsListRequestSchema = import_zod18.z.object({
2347
- page: import_zod18.z.number().int().min(1).optional(),
2348
- page_size: import_zod18.z.number().int().min(1).optional(),
2349
- is_onchain: import_zod18.z.boolean().optional()
2350
- }).strict();
2351
- var GetKmsListSchema = import_zod18.z.object({
2352
- items: import_zod18.z.array(KmsInfoSchema),
2353
- total: import_zod18.z.number(),
2354
- page: import_zod18.z.number(),
2355
- page_size: import_zod18.z.number(),
2356
- pages: import_zod18.z.number()
2357
- }).strict();
2358
- var { action: getKmsList, safeAction: safeGetKmsList } = defineAction(GetKmsListSchema, async (client, request) => {
2359
- const validatedRequest = GetKmsListRequestSchema.parse(request ?? {});
2360
- return await client.get("/kms", { params: validatedRequest });
2361
- });
2362
-
2363
- // src/actions/workspaces/list_workspaces.ts
2364
- var import_zod19 = require("zod");
2365
- var WorkspaceResponseSchema = import_zod19.z.object({
2366
- id: import_zod19.z.string(),
2367
- name: import_zod19.z.string(),
2368
- slug: import_zod19.z.string().nullable(),
2369
- tier: import_zod19.z.string(),
2370
- role: import_zod19.z.string(),
2371
- created_at: import_zod19.z.string()
2372
- }).passthrough();
2373
- var PaginationMetadataSchema = import_zod19.z.object({
2374
- has_more: import_zod19.z.boolean(),
2375
- next_cursor: import_zod19.z.string().nullable(),
2376
- total: import_zod19.z.number().nullable()
2377
- }).passthrough();
2378
- var ListWorkspacesSchema = import_zod19.z.object({
2379
- data: import_zod19.z.array(WorkspaceResponseSchema),
2380
- pagination: PaginationMetadataSchema
2381
- }).passthrough();
2382
- var { action: listWorkspaces, safeAction: safeListWorkspaces } = defineAction(ListWorkspacesSchema, async (client, request) => {
2383
- const queryParams = new URLSearchParams();
2384
- if (request?.cursor) queryParams.append("cursor", request.cursor);
2385
- if (request?.limit) queryParams.append("limit", request.limit.toString());
2386
- const url = queryParams.toString() ? `/workspaces?${queryParams.toString()}` : "/workspaces";
2387
- return await client.get(url);
2388
- });
2389
-
2390
- // src/actions/workspaces/get_workspace.ts
2391
- var { action: getWorkspace, safeAction: safeGetWorkspace } = defineAction(WorkspaceResponseSchema, async (client, teamSlug) => {
2392
- return await client.get(`/workspaces/${teamSlug}`);
2393
- });
2394
-
2395
- // src/actions/list-instance-types.ts
2396
- var import_zod20 = require("zod");
2397
- var ListInstanceTypesRequestSchema = import_zod20.z.object({
2398
- page: import_zod20.z.number().int().min(1).optional().default(1),
2399
- page_size: import_zod20.z.number().int().min(1).max(1e3).optional().default(100)
2400
- }).strict();
2401
- var InstanceTypeSchema = import_zod20.z.object({
2402
- id: import_zod20.z.string(),
2403
- name: import_zod20.z.string(),
2404
- description: import_zod20.z.string(),
2405
- vcpu: import_zod20.z.number(),
2406
- memory_mb: import_zod20.z.number(),
2407
- hourly_rate: import_zod20.z.string(),
2408
- requires_gpu: import_zod20.z.boolean(),
2409
- public: import_zod20.z.boolean(),
2410
- enabled: import_zod20.z.boolean()
2411
- }).passthrough();
2412
- var PaginatedInstanceTypesSchema = import_zod20.z.object({
2413
- items: import_zod20.z.array(InstanceTypeSchema),
2414
- total: import_zod20.z.number(),
2415
- page: import_zod20.z.number(),
2416
- page_size: import_zod20.z.number(),
2417
- pages: import_zod20.z.number()
2418
- }).strict();
2419
- var { action: listInstanceTypes, safeAction: safeListInstanceTypes } = defineAction(PaginatedInstanceTypesSchema, async (client, request) => {
2420
- const validatedRequest = ListInstanceTypesRequestSchema.parse(request ?? {});
2421
- const queryParams = new URLSearchParams();
2422
- queryParams.append("page", validatedRequest.page.toString());
2423
- queryParams.append("page_size", validatedRequest.page_size.toString());
2424
- return await client.get(`/api/instance-types?${queryParams.toString()}`);
2425
- });
2426
-
2427
2470
  // src/parse_dotenv.ts
2428
2471
  var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;
2429
2472
  function parseEnv(input) {
@@ -2510,6 +2553,7 @@ var import_verify_env_encrypt_public_key = require("@phala/dstack-sdk/verify-env
2510
2553
  checkNetworkStatus,
2511
2554
  commitCvmComposeFileUpdate,
2512
2555
  commitCvmProvision,
2556
+ createBaseClient,
2513
2557
  createClient,
2514
2558
  createClientsFromBrowser,
2515
2559
  createClientsFromPrivateKey,