@vm0/cli 9.86.10 → 9.87.0

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.
@@ -47,7 +47,7 @@ if (DSN) {
47
47
  Sentry.init({
48
48
  dsn: DSN,
49
49
  environment: process.env.SENTRY_ENVIRONMENT ?? "production",
50
- release: "9.86.10",
50
+ release: "9.87.0",
51
51
  sendDefaultPii: false,
52
52
  tracesSampleRate: 0,
53
53
  shutdownTimeout: 500,
@@ -66,7 +66,7 @@ if (DSN) {
66
66
  }
67
67
  });
68
68
  Sentry.setContext("cli", {
69
- version: "9.86.10",
69
+ version: "9.87.0",
70
70
  command: process.argv.slice(2).join(" ")
71
71
  });
72
72
  Sentry.setContext("runtime", {
@@ -735,21 +735,55 @@ var composesInstructionsContract = c.router({
735
735
  });
736
736
 
737
737
  // ../../packages/core/src/contracts/runs.ts
738
- import { z as z7 } from "zod";
738
+ import { z as z8 } from "zod";
739
739
 
740
- // ../../packages/core/src/contracts/logs.ts
740
+ // ../../packages/core/src/contracts/firewalls.ts
741
741
  import { z as z4 } from "zod";
742
- var paginationSchema = z4.object({
743
- hasMore: z4.boolean(),
744
- nextCursor: z4.string().nullable(),
745
- totalPages: z4.number()
742
+ var firewallPermissionSchema = z4.object({
743
+ name: z4.string(),
744
+ description: z4.string().optional(),
745
+ rules: z4.array(z4.string())
746
+ });
747
+ var firewallApiSchema = z4.object({
748
+ base: z4.string(),
749
+ auth: z4.object({
750
+ headers: z4.record(z4.string(), z4.string())
751
+ }),
752
+ permissions: z4.array(firewallPermissionSchema).optional()
753
+ });
754
+ var firewallSchema = z4.object({
755
+ name: z4.string(),
756
+ ref: z4.string(),
757
+ apis: z4.array(firewallApiSchema)
758
+ });
759
+ var experimentalFirewallsSchema = z4.array(firewallSchema);
760
+ var firewallConfigSchema = z4.object({
761
+ name: z4.string().min(1, "Firewall name is required"),
762
+ description: z4.string().optional(),
763
+ apis: z4.array(firewallApiSchema).min(1, "Firewall must have at least one API entry"),
764
+ placeholders: z4.record(z4.string(), z4.string()).optional()
765
+ });
766
+ var firewallPolicyValueSchema = z4.enum(["allow", "deny", "ask"]);
767
+ var firewallPoliciesSchema = z4.record(
768
+ z4.string(),
769
+ z4.record(z4.string(), firewallPolicyValueSchema)
770
+ );
771
+ var BASE_URL_VARS_PATTERN = /\$\{\{\s*vars\.([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/;
772
+ var BASE_URL_VARS_PATTERN_G = new RegExp(BASE_URL_VARS_PATTERN.source, "g");
773
+
774
+ // ../../packages/core/src/contracts/logs.ts
775
+ import { z as z5 } from "zod";
776
+ var paginationSchema = z5.object({
777
+ hasMore: z5.boolean(),
778
+ nextCursor: z5.string().nullable(),
779
+ totalPages: z5.number()
746
780
  });
747
- var listQuerySchema = z4.object({
748
- cursor: z4.string().optional(),
749
- limit: z4.coerce.number().min(1).max(100).default(20)
781
+ var listQuerySchema = z5.object({
782
+ cursor: z5.string().optional(),
783
+ limit: z5.coerce.number().min(1).max(100).default(20)
750
784
  });
751
785
  var c2 = initContract();
752
- var logStatusSchema = z4.enum([
786
+ var logStatusSchema = z5.enum([
753
787
  "queued",
754
788
  "pending",
755
789
  "running",
@@ -758,7 +792,7 @@ var logStatusSchema = z4.enum([
758
792
  "timeout",
759
793
  "cancelled"
760
794
  ]);
761
- var triggerSourceSchema = z4.enum([
795
+ var triggerSourceSchema = z5.enum([
762
796
  "schedule",
763
797
  "web",
764
798
  "slack",
@@ -768,50 +802,50 @@ var triggerSourceSchema = z4.enum([
768
802
  "cli",
769
803
  "agent"
770
804
  ]);
771
- var logEntrySchema = z4.object({
772
- id: z4.uuid(),
773
- sessionId: z4.string().nullable(),
774
- agentId: z4.string().nullable(),
775
- displayName: z4.string().nullable(),
776
- orgSlug: z4.string().nullable(),
777
- framework: z4.string().nullable(),
805
+ var logEntrySchema = z5.object({
806
+ id: z5.uuid(),
807
+ sessionId: z5.string().nullable(),
808
+ agentId: z5.string().nullable(),
809
+ displayName: z5.string().nullable(),
810
+ orgSlug: z5.string().nullable(),
811
+ framework: z5.string().nullable(),
778
812
  triggerSource: triggerSourceSchema.nullable(),
779
- scheduleId: z4.string().nullable(),
813
+ scheduleId: z5.string().nullable(),
780
814
  status: logStatusSchema,
781
- createdAt: z4.string(),
782
- startedAt: z4.string().nullable(),
783
- completedAt: z4.string().nullable()
815
+ createdAt: z5.string(),
816
+ startedAt: z5.string().nullable(),
817
+ completedAt: z5.string().nullable()
784
818
  });
785
- var logsFiltersSchema = z4.object({
786
- statuses: z4.array(logStatusSchema),
787
- sources: z4.array(triggerSourceSchema),
788
- agents: z4.array(z4.string())
819
+ var logsFiltersSchema = z5.object({
820
+ statuses: z5.array(logStatusSchema),
821
+ sources: z5.array(triggerSourceSchema),
822
+ agents: z5.array(z5.string())
789
823
  });
790
- var logsListResponseSchema = z4.object({
791
- data: z4.array(logEntrySchema),
824
+ var logsListResponseSchema = z5.object({
825
+ data: z5.array(logEntrySchema),
792
826
  pagination: paginationSchema,
793
827
  filters: logsFiltersSchema
794
828
  });
795
- var artifactSchema = z4.object({
796
- name: z4.string().nullable(),
797
- version: z4.string().nullable()
798
- });
799
- var logDetailSchema = z4.object({
800
- id: z4.uuid(),
801
- sessionId: z4.string().nullable(),
802
- agentId: z4.string().nullable(),
803
- displayName: z4.string().nullable(),
804
- framework: z4.string().nullable(),
805
- modelProvider: z4.string().nullable(),
829
+ var artifactSchema = z5.object({
830
+ name: z5.string().nullable(),
831
+ version: z5.string().nullable()
832
+ });
833
+ var logDetailSchema = z5.object({
834
+ id: z5.uuid(),
835
+ sessionId: z5.string().nullable(),
836
+ agentId: z5.string().nullable(),
837
+ displayName: z5.string().nullable(),
838
+ framework: z5.string().nullable(),
839
+ modelProvider: z5.string().nullable(),
806
840
  triggerSource: triggerSourceSchema.nullable(),
807
- scheduleId: z4.string().nullable(),
841
+ scheduleId: z5.string().nullable(),
808
842
  status: logStatusSchema,
809
- prompt: z4.string(),
810
- appendSystemPrompt: z4.string().nullable(),
811
- error: z4.string().nullable(),
812
- createdAt: z4.string(),
813
- startedAt: z4.string().nullable(),
814
- completedAt: z4.string().nullable(),
843
+ prompt: z5.string(),
844
+ appendSystemPrompt: z5.string().nullable(),
845
+ error: z5.string().nullable(),
846
+ createdAt: z5.string(),
847
+ startedAt: z5.string().nullable(),
848
+ completedAt: z5.string().nullable(),
815
849
  artifact: artifactSchema
816
850
  });
817
851
  var logsListContract = c2.router({
@@ -819,13 +853,13 @@ var logsListContract = c2.router({
819
853
  method: "GET",
820
854
  path: "/api/zero/logs",
821
855
  query: listQuerySchema.extend({
822
- search: z4.string().optional(),
823
- agent: z4.string().optional(),
824
- name: z4.string().optional(),
825
- org: z4.string().optional(),
856
+ search: z5.string().optional(),
857
+ agent: z5.string().optional(),
858
+ name: z5.string().optional(),
859
+ org: z5.string().optional(),
826
860
  status: logStatusSchema.optional(),
827
861
  triggerSource: triggerSourceSchema.optional(),
828
- scheduleId: z4.string().uuid().optional()
862
+ scheduleId: z5.string().uuid().optional()
829
863
  }),
830
864
  responses: {
831
865
  200: logsListResponseSchema,
@@ -839,8 +873,8 @@ var logsByIdContract = c2.router({
839
873
  method: "GET",
840
874
  path: "/api/zero/logs/:id",
841
875
  headers: authHeadersSchema,
842
- pathParams: z4.object({
843
- id: z4.string().uuid("Invalid log ID")
876
+ pathParams: z5.object({
877
+ id: z5.string().uuid("Invalid log ID")
844
878
  }),
845
879
  responses: {
846
880
  200: logDetailSchema,
@@ -852,110 +886,110 @@ var logsByIdContract = c2.router({
852
886
  });
853
887
 
854
888
  // ../../packages/core/src/contracts/orgs.ts
855
- import { z as z6 } from "zod";
889
+ import { z as z7 } from "zod";
856
890
 
857
891
  // ../../packages/core/src/contracts/org-members.ts
858
- import { z as z5 } from "zod";
859
- var orgRoleSchema = z5.enum(["admin", "member"]);
860
- var orgMemberSchema = z5.object({
861
- userId: z5.string(),
862
- email: z5.string(),
863
- firstName: z5.string().nullable(),
864
- lastName: z5.string().nullable(),
865
- imageUrl: z5.string(),
892
+ import { z as z6 } from "zod";
893
+ var orgRoleSchema = z6.enum(["admin", "member"]);
894
+ var orgMemberSchema = z6.object({
895
+ userId: z6.string(),
896
+ email: z6.string(),
897
+ firstName: z6.string().nullable(),
898
+ lastName: z6.string().nullable(),
899
+ imageUrl: z6.string(),
866
900
  role: orgRoleSchema,
867
- joinedAt: z5.string()
901
+ joinedAt: z6.string()
868
902
  });
869
- var orgPendingInvitationSchema = z5.object({
870
- id: z5.string(),
871
- email: z5.string(),
903
+ var orgPendingInvitationSchema = z6.object({
904
+ id: z6.string(),
905
+ email: z6.string(),
872
906
  role: orgRoleSchema,
873
- createdAt: z5.string()
907
+ createdAt: z6.string()
874
908
  });
875
- var orgMembershipRequestSchema = z5.object({
876
- id: z5.string(),
877
- userId: z5.string(),
878
- email: z5.string(),
879
- firstName: z5.string().nullable(),
880
- lastName: z5.string().nullable(),
881
- imageUrl: z5.string(),
882
- createdAt: z5.string()
909
+ var orgMembershipRequestSchema = z6.object({
910
+ id: z6.string(),
911
+ userId: z6.string(),
912
+ email: z6.string(),
913
+ firstName: z6.string().nullable(),
914
+ lastName: z6.string().nullable(),
915
+ imageUrl: z6.string(),
916
+ createdAt: z6.string()
883
917
  });
884
- var revokeInvitationRequestSchema = z5.object({
885
- invitationId: z5.string()
918
+ var revokeInvitationRequestSchema = z6.object({
919
+ invitationId: z6.string()
886
920
  });
887
- var membershipRequestActionSchema = z5.object({
888
- requestId: z5.string()
921
+ var membershipRequestActionSchema = z6.object({
922
+ requestId: z6.string()
889
923
  });
890
- var orgMembersResponseSchema = z5.object({
891
- slug: z5.string(),
924
+ var orgMembersResponseSchema = z6.object({
925
+ slug: z6.string(),
892
926
  role: orgRoleSchema,
893
- members: z5.array(orgMemberSchema),
894
- pendingInvitations: z5.array(orgPendingInvitationSchema).optional(),
895
- membershipRequests: z5.array(orgMembershipRequestSchema).optional(),
896
- createdAt: z5.string()
927
+ members: z6.array(orgMemberSchema),
928
+ pendingInvitations: z6.array(orgPendingInvitationSchema).optional(),
929
+ membershipRequests: z6.array(orgMembershipRequestSchema).optional(),
930
+ createdAt: z6.string()
897
931
  });
898
- var inviteOrgMemberRequestSchema = z5.object({
899
- email: z5.string().email()
932
+ var inviteOrgMemberRequestSchema = z6.object({
933
+ email: z6.string().email()
900
934
  });
901
- var removeOrgMemberRequestSchema = z5.object({
902
- email: z5.string().email()
935
+ var removeOrgMemberRequestSchema = z6.object({
936
+ email: z6.string().email()
903
937
  });
904
- var updateOrgMemberRoleRequestSchema = z5.object({
905
- email: z5.string().email(),
938
+ var updateOrgMemberRoleRequestSchema = z6.object({
939
+ email: z6.string().email(),
906
940
  role: orgRoleSchema
907
941
  });
908
- var orgDomainSchema = z5.object({
909
- id: z5.string(),
910
- name: z5.string(),
911
- enrollmentMode: z5.string(),
912
- verification: z5.object({
913
- status: z5.string(),
914
- strategy: z5.string()
942
+ var orgDomainSchema = z6.object({
943
+ id: z6.string(),
944
+ name: z6.string(),
945
+ enrollmentMode: z6.string(),
946
+ verification: z6.object({
947
+ status: z6.string(),
948
+ strategy: z6.string()
915
949
  }),
916
- createdAt: z5.string()
950
+ createdAt: z6.string()
917
951
  });
918
- var orgDomainsResponseSchema = z5.object({
919
- domains: z5.array(orgDomainSchema)
952
+ var orgDomainsResponseSchema = z6.object({
953
+ domains: z6.array(orgDomainSchema)
920
954
  });
921
- var orgEnrollmentModeSchema = z5.enum([
955
+ var orgEnrollmentModeSchema = z6.enum([
922
956
  "manual_invitation",
923
957
  "automatic_invitation",
924
958
  "automatic_suggestion"
925
959
  ]);
926
- var addDomainRequestSchema = z5.object({
927
- name: z5.string(),
960
+ var addDomainRequestSchema = z6.object({
961
+ name: z6.string(),
928
962
  enrollmentMode: orgEnrollmentModeSchema
929
963
  });
930
- var domainActionRequestSchema = z5.object({
931
- domainId: z5.string()
964
+ var domainActionRequestSchema = z6.object({
965
+ domainId: z6.string()
932
966
  });
933
- var domainVerifyRequestSchema = z5.object({
934
- domainId: z5.string(),
935
- verified: z5.boolean()
967
+ var domainVerifyRequestSchema = z6.object({
968
+ domainId: z6.string(),
969
+ verified: z6.boolean()
936
970
  });
937
- var orgMessageResponseSchema = z5.object({
938
- message: z5.string()
971
+ var orgMessageResponseSchema = z6.object({
972
+ message: z6.string()
939
973
  });
940
974
 
941
975
  // ../../packages/core/src/contracts/orgs.ts
942
976
  var c3 = initContract();
943
- var orgTierSchema = z6.enum(["free", "pro", "team"]);
944
- var orgSlugSchema = z6.string().min(3, "Org slug must be at least 3 characters").max(64, "Org slug must be at most 64 characters").regex(
977
+ var orgTierSchema = z7.enum(["free", "pro", "team"]);
978
+ var orgSlugSchema = z7.string().min(3, "Org slug must be at least 3 characters").max(64, "Org slug must be at most 64 characters").regex(
945
979
  /^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]{1,2}$/,
946
980
  "Org slug must contain only lowercase letters, numbers, and hyphens, and must start and end with an alphanumeric character"
947
981
  ).transform((s) => s.toLowerCase());
948
- var orgResponseSchema = z6.object({
949
- id: z6.string(),
950
- slug: z6.string(),
951
- name: z6.string(),
952
- tier: z6.string().optional(),
982
+ var orgResponseSchema = z7.object({
983
+ id: z7.string(),
984
+ slug: z7.string(),
985
+ name: z7.string(),
986
+ tier: z7.string().optional(),
953
987
  role: orgRoleSchema.optional()
954
988
  });
955
- var updateOrgRequestSchema = z6.object({
989
+ var updateOrgRequestSchema = z7.object({
956
990
  slug: orgSlugSchema.optional(),
957
- name: z6.string().min(1).max(128).optional(),
958
- force: z6.boolean().optional().default(false)
991
+ name: z7.string().min(1).max(128).optional(),
992
+ force: z7.boolean().optional().default(false)
959
993
  });
960
994
  var orgDefaultAgentContract = c3.router({
961
995
  /**
@@ -968,15 +1002,15 @@ var orgDefaultAgentContract = c3.router({
968
1002
  method: "PUT",
969
1003
  path: "/api/zero/default-agent",
970
1004
  headers: authHeadersSchema,
971
- query: z6.object({
972
- org: z6.string().optional()
1005
+ query: z7.object({
1006
+ org: z7.string().optional()
973
1007
  }),
974
- body: z6.object({
975
- agentId: z6.uuid().nullable()
1008
+ body: z7.object({
1009
+ agentId: z7.uuid().nullable()
976
1010
  }),
977
1011
  responses: {
978
- 200: z6.object({
979
- agentId: z6.uuid().nullable()
1012
+ 200: z7.object({
1013
+ agentId: z7.uuid().nullable()
980
1014
  }),
981
1015
  400: apiErrorSchema,
982
1016
  401: apiErrorSchema,
@@ -999,107 +1033,109 @@ var ALL_RUN_STATUSES = [
999
1033
  "timeout",
1000
1034
  "cancelled"
1001
1035
  ];
1002
- var runStatusSchema = z7.enum(ALL_RUN_STATUSES);
1003
- var unifiedRunRequestSchema = z7.object({
1036
+ var runStatusSchema = z8.enum(ALL_RUN_STATUSES);
1037
+ var unifiedRunRequestSchema = z8.object({
1004
1038
  // High-level shortcuts (mutually exclusive with each other)
1005
- checkpointId: z7.string().optional(),
1006
- sessionId: z7.string().optional(),
1039
+ checkpointId: z8.string().optional(),
1040
+ sessionId: z8.string().optional(),
1007
1041
  // Base parameters (can be used directly or overridden after shortcut expansion)
1008
- agentComposeId: z7.string().optional(),
1009
- agentComposeVersionId: z7.string().optional(),
1010
- conversationId: z7.string().optional(),
1011
- artifactName: z7.string().optional(),
1012
- artifactVersion: z7.string().optional(),
1013
- vars: z7.record(z7.string(), z7.string()).optional(),
1014
- secrets: z7.record(z7.string(), z7.string()).optional(),
1015
- volumeVersions: z7.record(z7.string(), z7.string()).optional(),
1016
- memoryName: z7.string().optional(),
1042
+ agentComposeId: z8.string().optional(),
1043
+ agentComposeVersionId: z8.string().optional(),
1044
+ conversationId: z8.string().optional(),
1045
+ artifactName: z8.string().optional(),
1046
+ artifactVersion: z8.string().optional(),
1047
+ vars: z8.record(z8.string(), z8.string()).optional(),
1048
+ secrets: z8.record(z8.string(), z8.string()).optional(),
1049
+ volumeVersions: z8.record(z8.string(), z8.string()).optional(),
1050
+ memoryName: z8.string().optional(),
1017
1051
  // Debug flag to force real Claude in mock environments (internal use only)
1018
- debugNoMockClaude: z7.boolean().optional(),
1052
+ debugNoMockClaude: z8.boolean().optional(),
1019
1053
  // Model provider for automatic secret injection
1020
- modelProvider: z7.string().optional(),
1054
+ modelProvider: z8.string().optional(),
1021
1055
  // Environment validation flag - when true, validates secrets/vars before running
1022
- checkEnv: z7.boolean().optional(),
1056
+ checkEnv: z8.boolean().optional(),
1023
1057
  // Required
1024
- prompt: z7.string().min(1, "Missing prompt"),
1058
+ prompt: z8.string().min(1, "Missing prompt"),
1025
1059
  // Optional system prompt to append to the agent's system prompt
1026
- appendSystemPrompt: z7.string().optional(),
1060
+ appendSystemPrompt: z8.string().optional(),
1027
1061
  // Optional list of tools to disable in Claude CLI (passed as --disallowed-tools)
1028
- disallowedTools: z7.array(z7.string()).optional(),
1062
+ disallowedTools: z8.array(z8.string()).optional(),
1029
1063
  // Optional list of tools to make available in Claude CLI (passed as --tools)
1030
- tools: z7.array(z7.string()).optional(),
1064
+ tools: z8.array(z8.string()).optional(),
1031
1065
  // Settings JSON to pass to Claude CLI (passed as --settings)
1032
- settings: z7.string().optional(),
1066
+ settings: z8.string().optional(),
1033
1067
  // How the run was triggered (defaults to "cli" on the server if not provided)
1034
- triggerSource: triggerSourceSchema.optional()
1068
+ triggerSource: triggerSourceSchema.optional(),
1069
+ // Per-permission firewall policies (e.g., { "github": { "actions:read": "allow" } })
1070
+ firewallPolicies: firewallPoliciesSchema.optional()
1035
1071
  });
1036
- var createRunResponseSchema = z7.object({
1037
- runId: z7.string(),
1072
+ var createRunResponseSchema = z8.object({
1073
+ runId: z8.string(),
1038
1074
  status: runStatusSchema,
1039
- sandboxId: z7.string().optional(),
1040
- output: z7.string().optional(),
1041
- error: z7.string().optional(),
1042
- executionTimeMs: z7.number().optional(),
1043
- createdAt: z7.string()
1044
- });
1045
- var getRunResponseSchema = z7.object({
1046
- runId: z7.string(),
1047
- agentComposeVersionId: z7.string().nullable(),
1075
+ sandboxId: z8.string().optional(),
1076
+ output: z8.string().optional(),
1077
+ error: z8.string().optional(),
1078
+ executionTimeMs: z8.number().optional(),
1079
+ createdAt: z8.string()
1080
+ });
1081
+ var getRunResponseSchema = z8.object({
1082
+ runId: z8.string(),
1083
+ agentComposeVersionId: z8.string().nullable(),
1048
1084
  status: runStatusSchema,
1049
- prompt: z7.string(),
1050
- appendSystemPrompt: z7.string().nullable(),
1051
- vars: z7.record(z7.string(), z7.string()).optional(),
1052
- sandboxId: z7.string().optional(),
1053
- result: z7.object({
1054
- output: z7.string().optional(),
1055
- executionTimeMs: z7.number().optional(),
1056
- agentSessionId: z7.string().optional(),
1057
- checkpointId: z7.string().optional(),
1058
- conversationId: z7.string().optional()
1085
+ prompt: z8.string(),
1086
+ appendSystemPrompt: z8.string().nullable(),
1087
+ vars: z8.record(z8.string(), z8.string()).optional(),
1088
+ sandboxId: z8.string().optional(),
1089
+ result: z8.object({
1090
+ output: z8.string().optional(),
1091
+ executionTimeMs: z8.number().optional(),
1092
+ agentSessionId: z8.string().optional(),
1093
+ checkpointId: z8.string().optional(),
1094
+ conversationId: z8.string().optional()
1059
1095
  }).passthrough().optional(),
1060
- error: z7.string().optional(),
1061
- createdAt: z7.string(),
1062
- startedAt: z7.string().optional(),
1063
- completedAt: z7.string().optional()
1064
- });
1065
- var runEventSchema = z7.object({
1066
- sequenceNumber: z7.number(),
1067
- eventType: z7.string(),
1068
- eventData: z7.unknown(),
1069
- createdAt: z7.string()
1070
- });
1071
- var runResultSchema = z7.object({
1072
- checkpointId: z7.string(),
1073
- agentSessionId: z7.string(),
1074
- conversationId: z7.string(),
1075
- artifact: z7.record(z7.string(), z7.string()).optional(),
1096
+ error: z8.string().optional(),
1097
+ createdAt: z8.string(),
1098
+ startedAt: z8.string().optional(),
1099
+ completedAt: z8.string().optional()
1100
+ });
1101
+ var runEventSchema = z8.object({
1102
+ sequenceNumber: z8.number(),
1103
+ eventType: z8.string(),
1104
+ eventData: z8.unknown(),
1105
+ createdAt: z8.string()
1106
+ });
1107
+ var runResultSchema = z8.object({
1108
+ checkpointId: z8.string(),
1109
+ agentSessionId: z8.string(),
1110
+ conversationId: z8.string(),
1111
+ artifact: z8.record(z8.string(), z8.string()).optional(),
1076
1112
  // optional when run has no artifact
1077
- volumes: z7.record(z7.string(), z7.string()).optional(),
1078
- memory: z7.record(z7.string(), z7.string()).optional()
1113
+ volumes: z8.record(z8.string(), z8.string()).optional(),
1114
+ memory: z8.record(z8.string(), z8.string()).optional()
1079
1115
  });
1080
- var runStateSchema = z7.object({
1116
+ var runStateSchema = z8.object({
1081
1117
  status: runStatusSchema,
1082
1118
  result: runResultSchema.optional(),
1083
- error: z7.string().optional()
1119
+ error: z8.string().optional()
1084
1120
  });
1085
- var eventsResponseSchema = z7.object({
1086
- events: z7.array(runEventSchema),
1087
- hasMore: z7.boolean(),
1088
- nextSequence: z7.number(),
1121
+ var eventsResponseSchema = z8.object({
1122
+ events: z8.array(runEventSchema),
1123
+ hasMore: z8.boolean(),
1124
+ nextSequence: z8.number(),
1089
1125
  run: runStateSchema,
1090
- framework: z7.string()
1126
+ framework: z8.string()
1091
1127
  });
1092
- var runListItemSchema = z7.object({
1093
- id: z7.string(),
1094
- agentName: z7.string(),
1128
+ var runListItemSchema = z8.object({
1129
+ id: z8.string(),
1130
+ agentName: z8.string(),
1095
1131
  status: runStatusSchema,
1096
- prompt: z7.string(),
1097
- appendSystemPrompt: z7.string().nullable(),
1098
- createdAt: z7.string(),
1099
- startedAt: z7.string().nullable()
1132
+ prompt: z8.string(),
1133
+ appendSystemPrompt: z8.string().nullable(),
1134
+ createdAt: z8.string(),
1135
+ startedAt: z8.string().nullable()
1100
1136
  });
1101
- var runsListResponseSchema = z7.object({
1102
- runs: z7.array(runListItemSchema)
1137
+ var runsListResponseSchema = z8.object({
1138
+ runs: z8.array(runListItemSchema)
1103
1139
  });
1104
1140
  var runsMainContract = c4.router({
1105
1141
  /**
@@ -1110,16 +1146,16 @@ var runsMainContract = c4.router({
1110
1146
  method: "GET",
1111
1147
  path: "/api/agent/runs",
1112
1148
  headers: authHeadersSchema,
1113
- query: z7.object({
1114
- status: z7.string().optional(),
1149
+ query: z8.object({
1150
+ status: z8.string().optional(),
1115
1151
  // comma-separated: "pending,running"
1116
- agent: z7.string().optional(),
1152
+ agent: z8.string().optional(),
1117
1153
  // agent name filter
1118
- since: z7.string().optional(),
1154
+ since: z8.string().optional(),
1119
1155
  // ISO timestamp
1120
- until: z7.string().optional(),
1156
+ until: z8.string().optional(),
1121
1157
  // ISO timestamp
1122
- limit: z7.coerce.number().min(1).max(100).default(50)
1158
+ limit: z8.coerce.number().min(1).max(100).default(50)
1123
1159
  }),
1124
1160
  responses: {
1125
1161
  200: runsListResponseSchema,
@@ -1160,8 +1196,8 @@ var runsByIdContract = c4.router({
1160
1196
  method: "GET",
1161
1197
  path: "/api/agent/runs/:id",
1162
1198
  headers: authHeadersSchema,
1163
- pathParams: z7.object({
1164
- id: z7.string().min(1, "Run ID is required")
1199
+ pathParams: z8.object({
1200
+ id: z8.string().min(1, "Run ID is required")
1165
1201
  }),
1166
1202
  responses: {
1167
1203
  200: getRunResponseSchema,
@@ -1172,10 +1208,10 @@ var runsByIdContract = c4.router({
1172
1208
  summary: "Get agent run by ID"
1173
1209
  }
1174
1210
  });
1175
- var cancelRunResponseSchema = z7.object({
1176
- id: z7.string(),
1177
- status: z7.literal("cancelled"),
1178
- message: z7.string()
1211
+ var cancelRunResponseSchema = z8.object({
1212
+ id: z8.string(),
1213
+ status: z8.literal("cancelled"),
1214
+ message: z8.string()
1179
1215
  });
1180
1216
  var runsCancelContract = c4.router({
1181
1217
  /**
@@ -1186,10 +1222,10 @@ var runsCancelContract = c4.router({
1186
1222
  method: "POST",
1187
1223
  path: "/api/agent/runs/:id/cancel",
1188
1224
  headers: authHeadersSchema,
1189
- pathParams: z7.object({
1190
- id: z7.string().min(1, "Run ID is required")
1225
+ pathParams: z8.object({
1226
+ id: z8.string().min(1, "Run ID is required")
1191
1227
  }),
1192
- body: z7.undefined(),
1228
+ body: z8.undefined(),
1193
1229
  responses: {
1194
1230
  200: cancelRunResponseSchema,
1195
1231
  400: apiErrorSchema,
@@ -1209,12 +1245,12 @@ var runEventsContract = c4.router({
1209
1245
  method: "GET",
1210
1246
  path: "/api/agent/runs/:id/events",
1211
1247
  headers: authHeadersSchema,
1212
- pathParams: z7.object({
1213
- id: z7.string().min(1, "Run ID is required")
1248
+ pathParams: z8.object({
1249
+ id: z8.string().min(1, "Run ID is required")
1214
1250
  }),
1215
- query: z7.object({
1216
- since: z7.coerce.number().default(-1),
1217
- limit: z7.coerce.number().default(100)
1251
+ query: z8.object({
1252
+ since: z8.coerce.number().default(-1),
1253
+ limit: z8.coerce.number().default(100)
1218
1254
  }),
1219
1255
  responses: {
1220
1256
  200: eventsResponseSchema,
@@ -1224,55 +1260,55 @@ var runEventsContract = c4.router({
1224
1260
  summary: "Get agent run events"
1225
1261
  }
1226
1262
  });
1227
- var telemetryMetricSchema = z7.object({
1228
- ts: z7.string(),
1229
- cpu: z7.number(),
1230
- mem_used: z7.number(),
1231
- mem_total: z7.number(),
1232
- disk_used: z7.number(),
1233
- disk_total: z7.number()
1234
- });
1235
- var systemLogResponseSchema = z7.object({
1236
- systemLog: z7.string(),
1237
- hasMore: z7.boolean()
1238
- });
1239
- var metricsResponseSchema = z7.object({
1240
- metrics: z7.array(telemetryMetricSchema),
1241
- hasMore: z7.boolean()
1242
- });
1243
- var agentEventsResponseSchema = z7.object({
1244
- events: z7.array(runEventSchema),
1245
- hasMore: z7.boolean(),
1246
- framework: z7.string()
1247
- });
1248
- var networkLogEntrySchema = z7.object({
1249
- timestamp: z7.string(),
1250
- type: z7.string().optional(),
1251
- action: z7.enum(["ALLOW", "DENY"]).optional(),
1252
- host: z7.string().optional(),
1253
- port: z7.number().optional(),
1254
- method: z7.string().optional(),
1255
- url: z7.string().optional(),
1256
- status: z7.number().optional(),
1257
- latency_ms: z7.number().optional(),
1258
- request_size: z7.number().optional(),
1259
- response_size: z7.number().optional(),
1260
- firewall_base: z7.string().optional(),
1261
- firewall_name: z7.string().optional(),
1262
- firewall_ref: z7.string().optional(),
1263
- firewall_permission: z7.string().optional(),
1264
- firewall_rule_match: z7.string().optional(),
1265
- firewall_params: z7.record(z7.string(), z7.string()).optional(),
1266
- firewall_error: z7.string().optional(),
1267
- error: z7.string().optional()
1268
- });
1269
- var networkLogsResponseSchema = z7.object({
1270
- networkLogs: z7.array(networkLogEntrySchema),
1271
- hasMore: z7.boolean()
1272
- });
1273
- var telemetryResponseSchema = z7.object({
1274
- systemLog: z7.string(),
1275
- metrics: z7.array(telemetryMetricSchema)
1263
+ var telemetryMetricSchema = z8.object({
1264
+ ts: z8.string(),
1265
+ cpu: z8.number(),
1266
+ mem_used: z8.number(),
1267
+ mem_total: z8.number(),
1268
+ disk_used: z8.number(),
1269
+ disk_total: z8.number()
1270
+ });
1271
+ var systemLogResponseSchema = z8.object({
1272
+ systemLog: z8.string(),
1273
+ hasMore: z8.boolean()
1274
+ });
1275
+ var metricsResponseSchema = z8.object({
1276
+ metrics: z8.array(telemetryMetricSchema),
1277
+ hasMore: z8.boolean()
1278
+ });
1279
+ var agentEventsResponseSchema = z8.object({
1280
+ events: z8.array(runEventSchema),
1281
+ hasMore: z8.boolean(),
1282
+ framework: z8.string()
1283
+ });
1284
+ var networkLogEntrySchema = z8.object({
1285
+ timestamp: z8.string(),
1286
+ type: z8.string().optional(),
1287
+ action: z8.enum(["ALLOW", "DENY"]).optional(),
1288
+ host: z8.string().optional(),
1289
+ port: z8.number().optional(),
1290
+ method: z8.string().optional(),
1291
+ url: z8.string().optional(),
1292
+ status: z8.number().optional(),
1293
+ latency_ms: z8.number().optional(),
1294
+ request_size: z8.number().optional(),
1295
+ response_size: z8.number().optional(),
1296
+ firewall_base: z8.string().optional(),
1297
+ firewall_name: z8.string().optional(),
1298
+ firewall_ref: z8.string().optional(),
1299
+ firewall_permission: z8.string().optional(),
1300
+ firewall_rule_match: z8.string().optional(),
1301
+ firewall_params: z8.record(z8.string(), z8.string()).optional(),
1302
+ firewall_error: z8.string().optional(),
1303
+ error: z8.string().optional()
1304
+ });
1305
+ var networkLogsResponseSchema = z8.object({
1306
+ networkLogs: z8.array(networkLogEntrySchema),
1307
+ hasMore: z8.boolean()
1308
+ });
1309
+ var telemetryResponseSchema = z8.object({
1310
+ systemLog: z8.string(),
1311
+ metrics: z8.array(telemetryMetricSchema)
1276
1312
  });
1277
1313
  var runTelemetryContract = c4.router({
1278
1314
  /**
@@ -1283,8 +1319,8 @@ var runTelemetryContract = c4.router({
1283
1319
  method: "GET",
1284
1320
  path: "/api/agent/runs/:id/telemetry",
1285
1321
  headers: authHeadersSchema,
1286
- pathParams: z7.object({
1287
- id: z7.string().min(1, "Run ID is required")
1322
+ pathParams: z8.object({
1323
+ id: z8.string().min(1, "Run ID is required")
1288
1324
  }),
1289
1325
  responses: {
1290
1326
  200: telemetryResponseSchema,
@@ -1303,13 +1339,13 @@ var runSystemLogContract = c4.router({
1303
1339
  method: "GET",
1304
1340
  path: "/api/agent/runs/:id/telemetry/system-log",
1305
1341
  headers: authHeadersSchema,
1306
- pathParams: z7.object({
1307
- id: z7.string().min(1, "Run ID is required")
1342
+ pathParams: z8.object({
1343
+ id: z8.string().min(1, "Run ID is required")
1308
1344
  }),
1309
- query: z7.object({
1310
- since: z7.coerce.number().optional(),
1311
- limit: z7.coerce.number().min(1).max(100).default(5),
1312
- order: z7.enum(["asc", "desc"]).default("desc")
1345
+ query: z8.object({
1346
+ since: z8.coerce.number().optional(),
1347
+ limit: z8.coerce.number().min(1).max(100).default(5),
1348
+ order: z8.enum(["asc", "desc"]).default("desc")
1313
1349
  }),
1314
1350
  responses: {
1315
1351
  200: systemLogResponseSchema,
@@ -1328,13 +1364,13 @@ var runMetricsContract = c4.router({
1328
1364
  method: "GET",
1329
1365
  path: "/api/agent/runs/:id/telemetry/metrics",
1330
1366
  headers: authHeadersSchema,
1331
- pathParams: z7.object({
1332
- id: z7.string().min(1, "Run ID is required")
1367
+ pathParams: z8.object({
1368
+ id: z8.string().min(1, "Run ID is required")
1333
1369
  }),
1334
- query: z7.object({
1335
- since: z7.coerce.number().optional(),
1336
- limit: z7.coerce.number().min(1).max(100).default(5),
1337
- order: z7.enum(["asc", "desc"]).default("desc")
1370
+ query: z8.object({
1371
+ since: z8.coerce.number().optional(),
1372
+ limit: z8.coerce.number().min(1).max(100).default(5),
1373
+ order: z8.enum(["asc", "desc"]).default("desc")
1338
1374
  }),
1339
1375
  responses: {
1340
1376
  200: metricsResponseSchema,
@@ -1353,13 +1389,13 @@ var runAgentEventsContract = c4.router({
1353
1389
  method: "GET",
1354
1390
  path: "/api/agent/runs/:id/telemetry/agent",
1355
1391
  headers: authHeadersSchema,
1356
- pathParams: z7.object({
1357
- id: z7.string().min(1, "Run ID is required")
1392
+ pathParams: z8.object({
1393
+ id: z8.string().min(1, "Run ID is required")
1358
1394
  }),
1359
- query: z7.object({
1360
- since: z7.coerce.number().optional(),
1361
- limit: z7.coerce.number().min(1).max(100).default(5),
1362
- order: z7.enum(["asc", "desc"]).default("desc")
1395
+ query: z8.object({
1396
+ since: z8.coerce.number().optional(),
1397
+ limit: z8.coerce.number().min(1).max(100).default(5),
1398
+ order: z8.enum(["asc", "desc"]).default("desc")
1363
1399
  }),
1364
1400
  responses: {
1365
1401
  200: agentEventsResponseSchema,
@@ -1378,13 +1414,13 @@ var runNetworkLogsContract = c4.router({
1378
1414
  method: "GET",
1379
1415
  path: "/api/agent/runs/:id/telemetry/network",
1380
1416
  headers: authHeadersSchema,
1381
- pathParams: z7.object({
1382
- id: z7.string().min(1, "Run ID is required")
1417
+ pathParams: z8.object({
1418
+ id: z8.string().min(1, "Run ID is required")
1383
1419
  }),
1384
- query: z7.object({
1385
- since: z7.coerce.number().optional(),
1386
- limit: z7.coerce.number().min(1).max(100).default(5),
1387
- order: z7.enum(["asc", "desc"]).default("desc")
1420
+ query: z8.object({
1421
+ since: z8.coerce.number().optional(),
1422
+ limit: z8.coerce.number().min(1).max(100).default(5),
1423
+ order: z8.enum(["asc", "desc"]).default("desc")
1388
1424
  }),
1389
1425
  responses: {
1390
1426
  200: networkLogsResponseSchema,
@@ -1394,16 +1430,16 @@ var runNetworkLogsContract = c4.router({
1394
1430
  summary: "Get network logs with pagination"
1395
1431
  }
1396
1432
  });
1397
- var searchResultSchema = z7.object({
1398
- runId: z7.string(),
1399
- agentName: z7.string(),
1433
+ var searchResultSchema = z8.object({
1434
+ runId: z8.string(),
1435
+ agentName: z8.string(),
1400
1436
  matchedEvent: runEventSchema,
1401
- contextBefore: z7.array(runEventSchema),
1402
- contextAfter: z7.array(runEventSchema)
1437
+ contextBefore: z8.array(runEventSchema),
1438
+ contextAfter: z8.array(runEventSchema)
1403
1439
  });
1404
- var logsSearchResponseSchema = z7.object({
1405
- results: z7.array(searchResultSchema),
1406
- hasMore: z7.boolean()
1440
+ var logsSearchResponseSchema = z8.object({
1441
+ results: z8.array(searchResultSchema),
1442
+ hasMore: z8.boolean()
1407
1443
  });
1408
1444
  var logsSearchContract = c4.router({
1409
1445
  /**
@@ -1414,14 +1450,14 @@ var logsSearchContract = c4.router({
1414
1450
  method: "GET",
1415
1451
  path: "/api/logs/search",
1416
1452
  headers: authHeadersSchema,
1417
- query: z7.object({
1418
- keyword: z7.string().min(1),
1419
- agent: z7.string().optional(),
1420
- runId: z7.string().optional(),
1421
- since: z7.coerce.number().optional(),
1422
- limit: z7.coerce.number().min(1).max(50).default(20),
1423
- before: z7.coerce.number().min(0).max(10).default(0),
1424
- after: z7.coerce.number().min(0).max(10).default(0)
1453
+ query: z8.object({
1454
+ keyword: z8.string().min(1),
1455
+ agent: z8.string().optional(),
1456
+ runId: z8.string().optional(),
1457
+ since: z8.coerce.number().optional(),
1458
+ limit: z8.coerce.number().min(1).max(50).default(20),
1459
+ before: z8.coerce.number().min(0).max(10).default(0),
1460
+ after: z8.coerce.number().min(0).max(10).default(0)
1425
1461
  }),
1426
1462
  responses: {
1427
1463
  200: logsSearchResponseSchema,
@@ -1430,37 +1466,37 @@ var logsSearchContract = c4.router({
1430
1466
  summary: "Search agent events across runs"
1431
1467
  }
1432
1468
  });
1433
- var queueEntrySchema = z7.object({
1434
- position: z7.number(),
1435
- agentName: z7.string().nullable(),
1436
- agentDisplayName: z7.string().nullable(),
1437
- userEmail: z7.string().nullable(),
1438
- createdAt: z7.string(),
1439
- isOwner: z7.boolean(),
1440
- runId: z7.string().nullable(),
1441
- prompt: z7.string().nullable(),
1469
+ var queueEntrySchema = z8.object({
1470
+ position: z8.number(),
1471
+ agentName: z8.string().nullable(),
1472
+ agentDisplayName: z8.string().nullable(),
1473
+ userEmail: z8.string().nullable(),
1474
+ createdAt: z8.string(),
1475
+ isOwner: z8.boolean(),
1476
+ runId: z8.string().nullable(),
1477
+ prompt: z8.string().nullable(),
1442
1478
  triggerSource: triggerSourceSchema.nullable(),
1443
- sessionLink: z7.string().nullable()
1479
+ sessionLink: z8.string().nullable()
1444
1480
  });
1445
- var runningTaskSchema = z7.object({
1446
- runId: z7.string().nullable(),
1447
- agentName: z7.string(),
1448
- agentDisplayName: z7.string().nullable(),
1449
- userEmail: z7.string(),
1450
- startedAt: z7.string().nullable(),
1451
- isOwner: z7.boolean()
1481
+ var runningTaskSchema = z8.object({
1482
+ runId: z8.string().nullable(),
1483
+ agentName: z8.string(),
1484
+ agentDisplayName: z8.string().nullable(),
1485
+ userEmail: z8.string(),
1486
+ startedAt: z8.string().nullable(),
1487
+ isOwner: z8.boolean()
1452
1488
  });
1453
- var concurrencyInfoSchema = z7.object({
1489
+ var concurrencyInfoSchema = z8.object({
1454
1490
  tier: orgTierSchema,
1455
- limit: z7.number(),
1456
- active: z7.number(),
1457
- available: z7.number()
1491
+ limit: z8.number(),
1492
+ active: z8.number(),
1493
+ available: z8.number()
1458
1494
  });
1459
- var queueResponseSchema = z7.object({
1495
+ var queueResponseSchema = z8.object({
1460
1496
  concurrency: concurrencyInfoSchema,
1461
- queue: z7.array(queueEntrySchema),
1462
- runningTasks: z7.array(runningTaskSchema),
1463
- estimatedTimePerRun: z7.number().nullable()
1497
+ queue: z8.array(queueEntrySchema),
1498
+ runningTasks: z8.array(runningTaskSchema),
1499
+ estimatedTimePerRun: z8.number().nullable()
1464
1500
  });
1465
1501
  var runsQueueContract = c4.router({
1466
1502
  /**
@@ -1481,17 +1517,17 @@ var runsQueueContract = c4.router({
1481
1517
  });
1482
1518
 
1483
1519
  // ../../packages/core/src/contracts/storages.ts
1484
- import { z as z8 } from "zod";
1520
+ import { z as z9 } from "zod";
1485
1521
  var c5 = initContract();
1486
- var storageTypeSchema = z8.enum(["volume", "artifact", "memory"]);
1487
- var versionQuerySchema = z8.string().regex(/^[a-f0-9]{8,64}$/i, "Version must be 8-64 hex characters").optional();
1488
- var uploadStorageResponseSchema = z8.object({
1489
- name: z8.string(),
1490
- versionId: z8.string(),
1491
- size: z8.number(),
1492
- fileCount: z8.number(),
1522
+ var storageTypeSchema = z9.enum(["volume", "artifact", "memory"]);
1523
+ var versionQuerySchema = z9.string().regex(/^[a-f0-9]{8,64}$/i, "Version must be 8-64 hex characters").optional();
1524
+ var uploadStorageResponseSchema = z9.object({
1525
+ name: z9.string(),
1526
+ versionId: z9.string(),
1527
+ size: z9.number(),
1528
+ fileCount: z9.number(),
1493
1529
  type: storageTypeSchema,
1494
- deduplicated: z8.boolean()
1530
+ deduplicated: z9.boolean()
1495
1531
  });
1496
1532
  var storagesContract = c5.router({
1497
1533
  /**
@@ -1533,8 +1569,8 @@ var storagesContract = c5.router({
1533
1569
  method: "GET",
1534
1570
  path: "/api/storages",
1535
1571
  headers: authHeadersSchema,
1536
- query: z8.object({
1537
- name: z8.string().min(1, "Storage name is required"),
1572
+ query: z9.object({
1573
+ name: z9.string().min(1, "Storage name is required"),
1538
1574
  version: versionQuerySchema
1539
1575
  }),
1540
1576
  responses: {
@@ -1552,41 +1588,41 @@ var storagesContract = c5.router({
1552
1588
  }
1553
1589
  });
1554
1590
  var MAX_FILE_SIZE_BYTES = 104857600;
1555
- var fileEntryWithHashSchema = z8.object({
1556
- path: z8.string().min(1, "File path is required"),
1557
- hash: z8.string().length(64, "Hash must be SHA-256 (64 hex chars)"),
1558
- size: z8.number().int().min(0, "Size must be non-negative").max(MAX_FILE_SIZE_BYTES, "File size exceeds 100MB limit")
1591
+ var fileEntryWithHashSchema = z9.object({
1592
+ path: z9.string().min(1, "File path is required"),
1593
+ hash: z9.string().length(64, "Hash must be SHA-256 (64 hex chars)"),
1594
+ size: z9.number().int().min(0, "Size must be non-negative").max(MAX_FILE_SIZE_BYTES, "File size exceeds 100MB limit")
1559
1595
  });
1560
- var storageChangesSchema = z8.object({
1561
- added: z8.array(z8.string()),
1562
- modified: z8.array(z8.string()),
1563
- deleted: z8.array(z8.string())
1596
+ var storageChangesSchema = z9.object({
1597
+ added: z9.array(z9.string()),
1598
+ modified: z9.array(z9.string()),
1599
+ deleted: z9.array(z9.string())
1564
1600
  });
1565
- var presignedUploadSchema = z8.object({
1566
- key: z8.string(),
1567
- presignedUrl: z8.url()
1601
+ var presignedUploadSchema = z9.object({
1602
+ key: z9.string(),
1603
+ presignedUrl: z9.url()
1568
1604
  });
1569
1605
  var storagesPrepareContract = c5.router({
1570
1606
  prepare: {
1571
1607
  method: "POST",
1572
1608
  path: "/api/storages/prepare",
1573
1609
  headers: authHeadersSchema,
1574
- body: z8.object({
1575
- storageName: z8.string().min(1, "Storage name is required"),
1610
+ body: z9.object({
1611
+ storageName: z9.string().min(1, "Storage name is required"),
1576
1612
  storageType: storageTypeSchema,
1577
- files: z8.array(fileEntryWithHashSchema),
1578
- force: z8.boolean().optional(),
1579
- runId: z8.string().optional(),
1613
+ files: z9.array(fileEntryWithHashSchema),
1614
+ force: z9.boolean().optional(),
1615
+ runId: z9.string().optional(),
1580
1616
  // For sandbox auth
1581
- baseVersion: z8.string().optional(),
1617
+ baseVersion: z9.string().optional(),
1582
1618
  // For incremental uploads
1583
1619
  changes: storageChangesSchema.optional()
1584
1620
  }),
1585
1621
  responses: {
1586
- 200: z8.object({
1587
- versionId: z8.string(),
1588
- existing: z8.boolean(),
1589
- uploads: z8.object({
1622
+ 200: z9.object({
1623
+ versionId: z9.string(),
1624
+ existing: z9.boolean(),
1625
+ uploads: z9.object({
1590
1626
  archive: presignedUploadSchema,
1591
1627
  manifest: presignedUploadSchema
1592
1628
  }).optional()
@@ -1606,22 +1642,22 @@ var storagesCommitContract = c5.router({
1606
1642
  method: "POST",
1607
1643
  path: "/api/storages/commit",
1608
1644
  headers: authHeadersSchema,
1609
- body: z8.object({
1610
- storageName: z8.string().min(1, "Storage name is required"),
1645
+ body: z9.object({
1646
+ storageName: z9.string().min(1, "Storage name is required"),
1611
1647
  storageType: storageTypeSchema,
1612
- versionId: z8.string().min(1, "Version ID is required"),
1613
- files: z8.array(fileEntryWithHashSchema),
1614
- runId: z8.string().optional(),
1615
- message: z8.string().optional()
1648
+ versionId: z9.string().min(1, "Version ID is required"),
1649
+ files: z9.array(fileEntryWithHashSchema),
1650
+ runId: z9.string().optional(),
1651
+ message: z9.string().optional()
1616
1652
  }),
1617
1653
  responses: {
1618
- 200: z8.object({
1619
- success: z8.literal(true),
1620
- versionId: z8.string(),
1621
- storageName: z8.string(),
1622
- size: z8.number(),
1623
- fileCount: z8.number(),
1624
- deduplicated: z8.boolean().optional()
1654
+ 200: z9.object({
1655
+ success: z9.literal(true),
1656
+ versionId: z9.string(),
1657
+ storageName: z9.string(),
1658
+ size: z9.number(),
1659
+ fileCount: z9.number(),
1660
+ deduplicated: z9.boolean().optional()
1625
1661
  }),
1626
1662
  400: apiErrorSchema,
1627
1663
  401: apiErrorSchema,
@@ -1640,26 +1676,26 @@ var storagesDownloadContract = c5.router({
1640
1676
  method: "GET",
1641
1677
  path: "/api/storages/download",
1642
1678
  headers: authHeadersSchema,
1643
- query: z8.object({
1644
- name: z8.string().min(1, "Storage name is required"),
1679
+ query: z9.object({
1680
+ name: z9.string().min(1, "Storage name is required"),
1645
1681
  type: storageTypeSchema,
1646
1682
  version: versionQuerySchema
1647
1683
  }),
1648
1684
  responses: {
1649
1685
  // Normal response with presigned URL
1650
- 200: z8.union([
1651
- z8.object({
1652
- url: z8.url(),
1653
- versionId: z8.string(),
1654
- fileCount: z8.number(),
1655
- size: z8.number()
1686
+ 200: z9.union([
1687
+ z9.object({
1688
+ url: z9.url(),
1689
+ versionId: z9.string(),
1690
+ fileCount: z9.number(),
1691
+ size: z9.number()
1656
1692
  }),
1657
1693
  // Empty artifact response
1658
- z8.object({
1659
- empty: z8.literal(true),
1660
- versionId: z8.string(),
1661
- fileCount: z8.literal(0),
1662
- size: z8.literal(0)
1694
+ z9.object({
1695
+ empty: z9.literal(true),
1696
+ versionId: z9.string(),
1697
+ fileCount: z9.literal(0),
1698
+ size: z9.literal(0)
1663
1699
  })
1664
1700
  ]),
1665
1701
  400: apiErrorSchema,
@@ -1676,16 +1712,16 @@ var storagesListContract = c5.router({
1676
1712
  method: "GET",
1677
1713
  path: "/api/storages/list",
1678
1714
  headers: authHeadersSchema,
1679
- query: z8.object({
1715
+ query: z9.object({
1680
1716
  type: storageTypeSchema
1681
1717
  }),
1682
1718
  responses: {
1683
- 200: z8.array(
1684
- z8.object({
1685
- name: z8.string(),
1686
- size: z8.number(),
1687
- fileCount: z8.number(),
1688
- updatedAt: z8.string()
1719
+ 200: z9.array(
1720
+ z9.object({
1721
+ name: z9.string(),
1722
+ size: z9.number(),
1723
+ fileCount: z9.number(),
1724
+ updatedAt: z9.string()
1689
1725
  })
1690
1726
  ),
1691
1727
  401: apiErrorSchema,
@@ -1697,22 +1733,22 @@ var storagesListContract = c5.router({
1697
1733
  });
1698
1734
 
1699
1735
  // ../../packages/core/src/contracts/webhooks.ts
1700
- import { z as z9 } from "zod";
1736
+ import { z as z10 } from "zod";
1701
1737
  var c6 = initContract();
1702
- var agentEventSchema = z9.object({
1703
- type: z9.string(),
1704
- sequenceNumber: z9.number().int().nonnegative()
1738
+ var agentEventSchema = z10.object({
1739
+ type: z10.string(),
1740
+ sequenceNumber: z10.number().int().nonnegative()
1705
1741
  }).passthrough();
1706
- var artifactSnapshotSchema = z9.object({
1707
- artifactName: z9.string(),
1708
- artifactVersion: z9.string()
1742
+ var artifactSnapshotSchema = z10.object({
1743
+ artifactName: z10.string(),
1744
+ artifactVersion: z10.string()
1709
1745
  });
1710
- var memorySnapshotSchema = z9.object({
1711
- memoryName: z9.string(),
1712
- memoryVersion: z9.string()
1746
+ var memorySnapshotSchema = z10.object({
1747
+ memoryName: z10.string(),
1748
+ memoryVersion: z10.string()
1713
1749
  });
1714
- var volumeVersionsSnapshotSchema = z9.object({
1715
- versions: z9.record(z9.string(), z9.string())
1750
+ var volumeVersionsSnapshotSchema = z10.object({
1751
+ versions: z10.record(z10.string(), z10.string())
1716
1752
  });
1717
1753
  var webhookEventsContract = c6.router({
1718
1754
  /**
@@ -1723,15 +1759,15 @@ var webhookEventsContract = c6.router({
1723
1759
  method: "POST",
1724
1760
  path: "/api/webhooks/agent/events",
1725
1761
  headers: authHeadersSchema,
1726
- body: z9.object({
1727
- runId: z9.string().min(1, "runId is required"),
1728
- events: z9.array(agentEventSchema).min(1, "events array cannot be empty")
1762
+ body: z10.object({
1763
+ runId: z10.string().min(1, "runId is required"),
1764
+ events: z10.array(agentEventSchema).min(1, "events array cannot be empty")
1729
1765
  }),
1730
1766
  responses: {
1731
- 200: z9.object({
1732
- received: z9.number(),
1733
- firstSequence: z9.number(),
1734
- lastSequence: z9.number()
1767
+ 200: z10.object({
1768
+ received: z10.number(),
1769
+ firstSequence: z10.number(),
1770
+ lastSequence: z10.number()
1735
1771
  }),
1736
1772
  400: apiErrorSchema,
1737
1773
  401: apiErrorSchema,
@@ -1750,15 +1786,15 @@ var webhookCompleteContract = c6.router({
1750
1786
  method: "POST",
1751
1787
  path: "/api/webhooks/agent/complete",
1752
1788
  headers: authHeadersSchema,
1753
- body: z9.object({
1754
- runId: z9.string().min(1, "runId is required"),
1755
- exitCode: z9.number(),
1756
- error: z9.string().optional()
1789
+ body: z10.object({
1790
+ runId: z10.string().min(1, "runId is required"),
1791
+ exitCode: z10.number(),
1792
+ error: z10.string().optional()
1757
1793
  }),
1758
1794
  responses: {
1759
- 200: z9.object({
1760
- success: z9.boolean(),
1761
- status: z9.enum(["completed", "failed"])
1795
+ 200: z10.object({
1796
+ success: z10.boolean(),
1797
+ status: z10.enum(["completed", "failed"])
1762
1798
  }),
1763
1799
  400: apiErrorSchema,
1764
1800
  401: apiErrorSchema,
@@ -1777,23 +1813,23 @@ var webhookCheckpointsContract = c6.router({
1777
1813
  method: "POST",
1778
1814
  path: "/api/webhooks/agent/checkpoints",
1779
1815
  headers: authHeadersSchema,
1780
- body: z9.object({
1781
- runId: z9.string().min(1, "runId is required"),
1782
- cliAgentType: z9.string().min(1, "cliAgentType is required"),
1783
- cliAgentSessionId: z9.string().min(1, "cliAgentSessionId is required"),
1784
- cliAgentSessionHistory: z9.string().min(1, "cliAgentSessionHistory is required"),
1816
+ body: z10.object({
1817
+ runId: z10.string().min(1, "runId is required"),
1818
+ cliAgentType: z10.string().min(1, "cliAgentType is required"),
1819
+ cliAgentSessionId: z10.string().min(1, "cliAgentSessionId is required"),
1820
+ cliAgentSessionHistory: z10.string().min(1, "cliAgentSessionHistory is required"),
1785
1821
  artifactSnapshot: artifactSnapshotSchema.optional(),
1786
1822
  memorySnapshot: memorySnapshotSchema.optional(),
1787
1823
  volumeVersionsSnapshot: volumeVersionsSnapshotSchema.optional()
1788
1824
  }),
1789
1825
  responses: {
1790
- 200: z9.object({
1791
- checkpointId: z9.string(),
1792
- agentSessionId: z9.string(),
1793
- conversationId: z9.string(),
1826
+ 200: z10.object({
1827
+ checkpointId: z10.string(),
1828
+ agentSessionId: z10.string(),
1829
+ conversationId: z10.string(),
1794
1830
  artifact: artifactSnapshotSchema.optional(),
1795
1831
  memory: memorySnapshotSchema.optional(),
1796
- volumes: z9.record(z9.string(), z9.string()).optional()
1832
+ volumes: z10.record(z10.string(), z10.string()).optional()
1797
1833
  }),
1798
1834
  400: apiErrorSchema,
1799
1835
  401: apiErrorSchema,
@@ -1812,12 +1848,12 @@ var webhookHeartbeatContract = c6.router({
1812
1848
  method: "POST",
1813
1849
  path: "/api/webhooks/agent/heartbeat",
1814
1850
  headers: authHeadersSchema,
1815
- body: z9.object({
1816
- runId: z9.string().min(1, "runId is required")
1851
+ body: z10.object({
1852
+ runId: z10.string().min(1, "runId is required")
1817
1853
  }),
1818
1854
  responses: {
1819
- 200: z9.object({
1820
- ok: z9.boolean()
1855
+ 200: z10.object({
1856
+ ok: z10.boolean()
1821
1857
  }),
1822
1858
  400: apiErrorSchema,
1823
1859
  401: apiErrorSchema,
@@ -1845,11 +1881,11 @@ var webhookStoragesContract = c6.router({
1845
1881
  contentType: "multipart/form-data",
1846
1882
  body: c6.type(),
1847
1883
  responses: {
1848
- 200: z9.object({
1849
- versionId: z9.string(),
1850
- storageName: z9.string(),
1851
- size: z9.number(),
1852
- fileCount: z9.number()
1884
+ 200: z10.object({
1885
+ versionId: z10.string(),
1886
+ storageName: z10.string(),
1887
+ size: z10.number(),
1888
+ fileCount: z10.number()
1853
1889
  }),
1854
1890
  400: apiErrorSchema,
1855
1891
  401: apiErrorSchema,
@@ -1879,17 +1915,17 @@ var webhookStoragesIncrementalContract = c6.router({
1879
1915
  contentType: "multipart/form-data",
1880
1916
  body: c6.type(),
1881
1917
  responses: {
1882
- 200: z9.object({
1883
- versionId: z9.string(),
1884
- storageName: z9.string(),
1885
- size: z9.number(),
1886
- fileCount: z9.number(),
1887
- incrementalStats: z9.object({
1888
- addedFiles: z9.number(),
1889
- modifiedFiles: z9.number(),
1890
- deletedFiles: z9.number(),
1891
- unchangedFiles: z9.number(),
1892
- bytesUploaded: z9.number()
1918
+ 200: z10.object({
1919
+ versionId: z10.string(),
1920
+ storageName: z10.string(),
1921
+ size: z10.number(),
1922
+ fileCount: z10.number(),
1923
+ incrementalStats: z10.object({
1924
+ addedFiles: z10.number(),
1925
+ modifiedFiles: z10.number(),
1926
+ deletedFiles: z10.number(),
1927
+ unchangedFiles: z10.number(),
1928
+ bytesUploaded: z10.number()
1893
1929
  }).optional()
1894
1930
  }),
1895
1931
  400: apiErrorSchema,
@@ -1900,41 +1936,41 @@ var webhookStoragesIncrementalContract = c6.router({
1900
1936
  summary: "Upload storage version incrementally from sandbox"
1901
1937
  }
1902
1938
  });
1903
- var metricDataSchema = z9.object({
1904
- ts: z9.string(),
1905
- cpu: z9.number(),
1906
- mem_used: z9.number(),
1907
- mem_total: z9.number(),
1908
- disk_used: z9.number(),
1909
- disk_total: z9.number()
1910
- });
1911
- var sandboxOperationSchema = z9.object({
1912
- ts: z9.string(),
1913
- action_type: z9.string(),
1914
- duration_ms: z9.number(),
1915
- success: z9.boolean(),
1916
- error: z9.string().optional()
1917
- });
1918
- var networkLogSchema = z9.object({
1919
- timestamp: z9.string(),
1920
- type: z9.string().optional(),
1921
- action: z9.enum(["ALLOW", "DENY"]).optional(),
1922
- host: z9.string().optional(),
1923
- port: z9.number().optional(),
1924
- method: z9.string().optional(),
1925
- url: z9.string().optional(),
1926
- status: z9.number().optional(),
1927
- latency_ms: z9.number().optional(),
1928
- request_size: z9.number().optional(),
1929
- response_size: z9.number().optional(),
1930
- firewall_base: z9.string().optional(),
1931
- firewall_name: z9.string().optional(),
1932
- firewall_ref: z9.string().optional(),
1933
- firewall_permission: z9.string().optional(),
1934
- firewall_rule_match: z9.string().optional(),
1935
- firewall_params: z9.record(z9.string(), z9.string()).optional(),
1936
- firewall_error: z9.string().optional(),
1937
- error: z9.string().optional()
1939
+ var metricDataSchema = z10.object({
1940
+ ts: z10.string(),
1941
+ cpu: z10.number(),
1942
+ mem_used: z10.number(),
1943
+ mem_total: z10.number(),
1944
+ disk_used: z10.number(),
1945
+ disk_total: z10.number()
1946
+ });
1947
+ var sandboxOperationSchema = z10.object({
1948
+ ts: z10.string(),
1949
+ action_type: z10.string(),
1950
+ duration_ms: z10.number(),
1951
+ success: z10.boolean(),
1952
+ error: z10.string().optional()
1953
+ });
1954
+ var networkLogSchema = z10.object({
1955
+ timestamp: z10.string(),
1956
+ type: z10.string().optional(),
1957
+ action: z10.enum(["ALLOW", "DENY"]).optional(),
1958
+ host: z10.string().optional(),
1959
+ port: z10.number().optional(),
1960
+ method: z10.string().optional(),
1961
+ url: z10.string().optional(),
1962
+ status: z10.number().optional(),
1963
+ latency_ms: z10.number().optional(),
1964
+ request_size: z10.number().optional(),
1965
+ response_size: z10.number().optional(),
1966
+ firewall_base: z10.string().optional(),
1967
+ firewall_name: z10.string().optional(),
1968
+ firewall_ref: z10.string().optional(),
1969
+ firewall_permission: z10.string().optional(),
1970
+ firewall_rule_match: z10.string().optional(),
1971
+ firewall_params: z10.record(z10.string(), z10.string()).optional(),
1972
+ firewall_error: z10.string().optional(),
1973
+ error: z10.string().optional()
1938
1974
  });
1939
1975
  var webhookTelemetryContract = c6.router({
1940
1976
  /**
@@ -1945,17 +1981,17 @@ var webhookTelemetryContract = c6.router({
1945
1981
  method: "POST",
1946
1982
  path: "/api/webhooks/agent/telemetry",
1947
1983
  headers: authHeadersSchema,
1948
- body: z9.object({
1949
- runId: z9.string().min(1, "runId is required"),
1950
- systemLog: z9.string().optional(),
1951
- metrics: z9.array(metricDataSchema).optional(),
1952
- networkLogs: z9.array(networkLogSchema).optional(),
1953
- sandboxOperations: z9.array(sandboxOperationSchema).optional()
1984
+ body: z10.object({
1985
+ runId: z10.string().min(1, "runId is required"),
1986
+ systemLog: z10.string().optional(),
1987
+ metrics: z10.array(metricDataSchema).optional(),
1988
+ networkLogs: z10.array(networkLogSchema).optional(),
1989
+ sandboxOperations: z10.array(sandboxOperationSchema).optional()
1954
1990
  }),
1955
1991
  responses: {
1956
- 200: z9.object({
1957
- success: z9.boolean(),
1958
- id: z9.string()
1992
+ 200: z10.object({
1993
+ success: z10.boolean(),
1994
+ id: z10.string()
1959
1995
  }),
1960
1996
  400: apiErrorSchema,
1961
1997
  401: apiErrorSchema,
@@ -1970,22 +2006,22 @@ var webhookStoragesPrepareContract = c6.router({
1970
2006
  method: "POST",
1971
2007
  path: "/api/webhooks/agent/storages/prepare",
1972
2008
  headers: authHeadersSchema,
1973
- body: z9.object({
1974
- runId: z9.string().min(1, "runId is required"),
2009
+ body: z10.object({
2010
+ runId: z10.string().min(1, "runId is required"),
1975
2011
  // Required for webhook auth
1976
- storageName: z9.string().min(1, "Storage name is required"),
2012
+ storageName: z10.string().min(1, "Storage name is required"),
1977
2013
  storageType: storageTypeSchema,
1978
- files: z9.array(fileEntryWithHashSchema),
1979
- parentVersionId: z9.string().optional(),
1980
- force: z9.boolean().optional(),
1981
- baseVersion: z9.string().optional(),
2014
+ files: z10.array(fileEntryWithHashSchema),
2015
+ parentVersionId: z10.string().optional(),
2016
+ force: z10.boolean().optional(),
2017
+ baseVersion: z10.string().optional(),
1982
2018
  changes: storageChangesSchema.optional()
1983
2019
  }),
1984
2020
  responses: {
1985
- 200: z9.object({
1986
- versionId: z9.string(),
1987
- existing: z9.boolean(),
1988
- uploads: z9.object({
2021
+ 200: z10.object({
2022
+ versionId: z10.string(),
2023
+ existing: z10.boolean(),
2024
+ uploads: z10.object({
1989
2025
  archive: presignedUploadSchema,
1990
2026
  manifest: presignedUploadSchema
1991
2027
  }).optional()
@@ -2004,24 +2040,24 @@ var webhookStoragesCommitContract = c6.router({
2004
2040
  method: "POST",
2005
2041
  path: "/api/webhooks/agent/storages/commit",
2006
2042
  headers: authHeadersSchema,
2007
- body: z9.object({
2008
- runId: z9.string().min(1, "runId is required"),
2043
+ body: z10.object({
2044
+ runId: z10.string().min(1, "runId is required"),
2009
2045
  // Required for webhook auth
2010
- storageName: z9.string().min(1, "Storage name is required"),
2046
+ storageName: z10.string().min(1, "Storage name is required"),
2011
2047
  storageType: storageTypeSchema,
2012
- versionId: z9.string().min(1, "Version ID is required"),
2013
- parentVersionId: z9.string().optional(),
2014
- files: z9.array(fileEntryWithHashSchema),
2015
- message: z9.string().optional()
2048
+ versionId: z10.string().min(1, "Version ID is required"),
2049
+ parentVersionId: z10.string().optional(),
2050
+ files: z10.array(fileEntryWithHashSchema),
2051
+ message: z10.string().optional()
2016
2052
  }),
2017
2053
  responses: {
2018
- 200: z9.object({
2019
- success: z9.literal(true),
2020
- versionId: z9.string(),
2021
- storageName: z9.string(),
2022
- size: z9.number(),
2023
- fileCount: z9.number(),
2024
- deduplicated: z9.boolean().optional()
2054
+ 200: z10.object({
2055
+ success: z10.literal(true),
2056
+ versionId: z10.string(),
2057
+ storageName: z10.string(),
2058
+ size: z10.number(),
2059
+ fileCount: z10.number(),
2060
+ deduplicated: z10.boolean().optional()
2025
2061
  }),
2026
2062
  400: apiErrorSchema,
2027
2063
  401: apiErrorSchema,
@@ -2036,11 +2072,11 @@ var webhookStoragesCommitContract = c6.router({
2036
2072
  });
2037
2073
 
2038
2074
  // ../../packages/core/src/contracts/cli-auth.ts
2039
- import { z as z10 } from "zod";
2075
+ import { z as z11 } from "zod";
2040
2076
  var c7 = initContract();
2041
- var oauthErrorSchema = z10.object({
2042
- error: z10.string(),
2043
- error_description: z10.string()
2077
+ var oauthErrorSchema = z11.object({
2078
+ error: z11.string(),
2079
+ error_description: z11.string()
2044
2080
  });
2045
2081
  var cliAuthDeviceContract = c7.router({
2046
2082
  /**
@@ -2050,14 +2086,14 @@ var cliAuthDeviceContract = c7.router({
2050
2086
  create: {
2051
2087
  method: "POST",
2052
2088
  path: "/api/cli/auth/device",
2053
- body: z10.object({}).optional(),
2089
+ body: z11.object({}).optional(),
2054
2090
  responses: {
2055
- 200: z10.object({
2056
- device_code: z10.string(),
2057
- user_code: z10.string(),
2058
- verification_path: z10.string(),
2059
- expires_in: z10.number(),
2060
- interval: z10.number()
2091
+ 200: z11.object({
2092
+ device_code: z11.string(),
2093
+ user_code: z11.string(),
2094
+ verification_path: z11.string(),
2095
+ expires_in: z11.number(),
2096
+ interval: z11.number()
2061
2097
  }),
2062
2098
  500: oauthErrorSchema
2063
2099
  },
@@ -2072,16 +2108,16 @@ var cliAuthTokenContract = c7.router({
2072
2108
  exchange: {
2073
2109
  method: "POST",
2074
2110
  path: "/api/cli/auth/token",
2075
- body: z10.object({
2076
- device_code: z10.string().min(1, "device_code is required")
2111
+ body: z11.object({
2112
+ device_code: z11.string().min(1, "device_code is required")
2077
2113
  }),
2078
2114
  responses: {
2079
2115
  // Success - token issued
2080
- 200: z10.object({
2081
- access_token: z10.string(),
2082
- token_type: z10.literal("Bearer"),
2083
- expires_in: z10.number(),
2084
- org_slug: z10.string().optional()
2116
+ 200: z11.object({
2117
+ access_token: z11.string(),
2118
+ token_type: z11.literal("Bearer"),
2119
+ expires_in: z11.number(),
2120
+ org_slug: z11.string().optional()
2085
2121
  }),
2086
2122
  // Authorization pending
2087
2123
  202: oauthErrorSchema,
@@ -2092,8 +2128,8 @@ var cliAuthTokenContract = c7.router({
2092
2128
  summary: "Exchange device code for access token"
2093
2129
  }
2094
2130
  });
2095
- var apiErrorResponseSchema = z10.object({
2096
- error: z10.object({ message: z10.string(), code: z10.string() })
2131
+ var apiErrorResponseSchema = z11.object({
2132
+ error: z11.object({ message: z11.string(), code: z11.string() })
2097
2133
  });
2098
2134
  var cliAuthOrgContract = c7.router({
2099
2135
  /**
@@ -2104,13 +2140,13 @@ var cliAuthOrgContract = c7.router({
2104
2140
  method: "POST",
2105
2141
  path: "/api/cli/auth/org",
2106
2142
  headers: authHeadersSchema,
2107
- body: z10.object({ slug: z10.string().min(1) }),
2143
+ body: z11.object({ slug: z11.string().min(1) }),
2108
2144
  responses: {
2109
- 200: z10.object({
2110
- access_token: z10.string(),
2111
- token_type: z10.literal("Bearer"),
2112
- expires_in: z10.number(),
2113
- org_slug: z10.string()
2145
+ 200: z11.object({
2146
+ access_token: z11.string(),
2147
+ token_type: z11.literal("Bearer"),
2148
+ expires_in: z11.number(),
2149
+ org_slug: z11.string()
2114
2150
  }),
2115
2151
  400: oauthErrorSchema,
2116
2152
  401: apiErrorResponseSchema,
@@ -2122,7 +2158,7 @@ var cliAuthOrgContract = c7.router({
2122
2158
  });
2123
2159
 
2124
2160
  // ../../packages/core/src/contracts/auth.ts
2125
- import { z as z11 } from "zod";
2161
+ import { z as z12 } from "zod";
2126
2162
  var c8 = initContract();
2127
2163
  var authContract = c8.router({
2128
2164
  /**
@@ -2134,9 +2170,9 @@ var authContract = c8.router({
2134
2170
  path: "/api/auth/me",
2135
2171
  headers: authHeadersSchema,
2136
2172
  responses: {
2137
- 200: z11.object({
2138
- userId: z11.string(),
2139
- email: z11.string()
2173
+ 200: z12.object({
2174
+ userId: z12.string(),
2175
+ email: z12.string()
2140
2176
  }),
2141
2177
  401: apiErrorSchema,
2142
2178
  403: apiErrorSchema,
@@ -2148,19 +2184,19 @@ var authContract = c8.router({
2148
2184
  });
2149
2185
 
2150
2186
  // ../../packages/core/src/contracts/cron.ts
2151
- import { z as z12 } from "zod";
2187
+ import { z as z13 } from "zod";
2152
2188
  var c9 = initContract();
2153
- var cleanupResultSchema = z12.object({
2154
- runId: z12.string(),
2155
- sandboxId: z12.string().nullable(),
2156
- status: z12.enum(["cleaned", "error"]),
2157
- error: z12.string().optional(),
2158
- reason: z12.string().optional()
2159
- });
2160
- var cleanupResponseSchema = z12.object({
2161
- cleaned: z12.number(),
2162
- errors: z12.number(),
2163
- results: z12.array(cleanupResultSchema)
2189
+ var cleanupResultSchema = z13.object({
2190
+ runId: z13.string(),
2191
+ sandboxId: z13.string().nullable(),
2192
+ status: z13.enum(["cleaned", "error"]),
2193
+ error: z13.string().optional(),
2194
+ reason: z13.string().optional()
2195
+ });
2196
+ var cleanupResponseSchema = z13.object({
2197
+ cleaned: z13.number(),
2198
+ errors: z13.number(),
2199
+ results: z13.array(cleanupResultSchema)
2164
2200
  });
2165
2201
  var cronCleanupSandboxesContract = c9.router({
2166
2202
  /**
@@ -2181,54 +2217,54 @@ var cronCleanupSandboxesContract = c9.router({
2181
2217
  });
2182
2218
 
2183
2219
  // ../../packages/core/src/contracts/secrets.ts
2184
- import { z as z13 } from "zod";
2185
- var secretNameSchema = z13.string().min(1, "Secret name is required").max(255, "Secret name must be at most 255 characters").regex(
2220
+ import { z as z14 } from "zod";
2221
+ var secretNameSchema = z14.string().min(1, "Secret name is required").max(255, "Secret name must be at most 255 characters").regex(
2186
2222
  /^[A-Z][A-Z0-9_]*$/,
2187
2223
  "Secret name must contain only uppercase letters, numbers, and underscores, and must start with a letter (e.g., MY_API_KEY)"
2188
2224
  );
2189
- var secretTypeSchema = z13.enum(["user", "model-provider", "connector"]);
2190
- var secretResponseSchema = z13.object({
2191
- id: z13.uuid(),
2192
- name: z13.string(),
2193
- description: z13.string().nullable(),
2225
+ var secretTypeSchema = z14.enum(["user", "model-provider", "connector"]);
2226
+ var secretResponseSchema = z14.object({
2227
+ id: z14.uuid(),
2228
+ name: z14.string(),
2229
+ description: z14.string().nullable(),
2194
2230
  type: secretTypeSchema,
2195
- createdAt: z13.string(),
2196
- updatedAt: z13.string()
2231
+ createdAt: z14.string(),
2232
+ updatedAt: z14.string()
2197
2233
  });
2198
- var secretListResponseSchema = z13.object({
2199
- secrets: z13.array(secretResponseSchema)
2234
+ var secretListResponseSchema = z14.object({
2235
+ secrets: z14.array(secretResponseSchema)
2200
2236
  });
2201
- var setSecretRequestSchema = z13.object({
2237
+ var setSecretRequestSchema = z14.object({
2202
2238
  name: secretNameSchema,
2203
- value: z13.string().min(1, "Secret value is required"),
2204
- description: z13.string().max(1e3).optional()
2239
+ value: z14.string().min(1, "Secret value is required"),
2240
+ description: z14.string().max(1e3).optional()
2205
2241
  });
2206
2242
 
2207
2243
  // ../../packages/core/src/contracts/variables.ts
2208
- import { z as z14 } from "zod";
2209
- var variableNameSchema = z14.string().min(1, "Variable name is required").max(255, "Variable name must be at most 255 characters").regex(
2244
+ import { z as z15 } from "zod";
2245
+ var variableNameSchema = z15.string().min(1, "Variable name is required").max(255, "Variable name must be at most 255 characters").regex(
2210
2246
  /^[A-Z][A-Z0-9_]*$/,
2211
2247
  "Variable name must contain only uppercase letters, numbers, and underscores, and must start with a letter (e.g., MY_VAR)"
2212
2248
  );
2213
- var variableResponseSchema = z14.object({
2214
- id: z14.uuid(),
2215
- name: z14.string(),
2216
- value: z14.string(),
2217
- description: z14.string().nullable(),
2218
- createdAt: z14.string(),
2219
- updatedAt: z14.string()
2249
+ var variableResponseSchema = z15.object({
2250
+ id: z15.uuid(),
2251
+ name: z15.string(),
2252
+ value: z15.string(),
2253
+ description: z15.string().nullable(),
2254
+ createdAt: z15.string(),
2255
+ updatedAt: z15.string()
2220
2256
  });
2221
- var variableListResponseSchema = z14.object({
2222
- variables: z14.array(variableResponseSchema)
2257
+ var variableListResponseSchema = z15.object({
2258
+ variables: z15.array(variableResponseSchema)
2223
2259
  });
2224
- var setVariableRequestSchema = z14.object({
2260
+ var setVariableRequestSchema = z15.object({
2225
2261
  name: variableNameSchema,
2226
- value: z14.string().min(1, "Variable value is required"),
2227
- description: z14.string().max(1e3).optional()
2262
+ value: z15.string().min(1, "Variable value is required"),
2263
+ description: z15.string().max(1e3).optional()
2228
2264
  });
2229
2265
 
2230
2266
  // ../../packages/core/src/contracts/model-providers.ts
2231
- import { z as z15 } from "zod";
2267
+ import { z as z16 } from "zod";
2232
2268
  var VM0_MODEL_TO_PROVIDER = {
2233
2269
  "claude-sonnet-4.6": {
2234
2270
  concreteType: "anthropic-api-key",
@@ -2590,7 +2626,7 @@ var MODEL_PROVIDER_FIREWALL_CONFIGS = {
2590
2626
  "sk-vm0placeholder000000000000000000"
2591
2627
  )
2592
2628
  };
2593
- var modelProviderTypeSchema = z15.enum([
2629
+ var modelProviderTypeSchema = z16.enum([
2594
2630
  "claude-code-oauth-token",
2595
2631
  "anthropic-api-key",
2596
2632
  "openrouter-api-key",
@@ -2603,7 +2639,7 @@ var modelProviderTypeSchema = z15.enum([
2603
2639
  "aws-bedrock",
2604
2640
  "vm0"
2605
2641
  ]);
2606
- var modelProviderFrameworkSchema = z15.enum(["claude-code"]);
2642
+ var modelProviderFrameworkSchema = z16.enum(["claude-code"]);
2607
2643
  function hasAuthMethods(type) {
2608
2644
  const config = MODEL_PROVIDER_TYPES[type];
2609
2645
  return "authMethods" in config;
@@ -2648,108 +2684,108 @@ function getCustomModelPlaceholder(type) {
2648
2684
  const config = MODEL_PROVIDER_TYPES[type];
2649
2685
  return "customModelPlaceholder" in config ? config.customModelPlaceholder : void 0;
2650
2686
  }
2651
- var modelProviderResponseSchema = z15.object({
2652
- id: z15.uuid(),
2687
+ var modelProviderResponseSchema = z16.object({
2688
+ id: z16.uuid(),
2653
2689
  type: modelProviderTypeSchema,
2654
2690
  framework: modelProviderFrameworkSchema,
2655
- secretName: z15.string().nullable(),
2691
+ secretName: z16.string().nullable(),
2656
2692
  // Legacy single-secret (deprecated for multi-auth)
2657
- authMethod: z15.string().nullable(),
2693
+ authMethod: z16.string().nullable(),
2658
2694
  // For multi-auth providers
2659
- secretNames: z15.array(z15.string()).nullable(),
2695
+ secretNames: z16.array(z16.string()).nullable(),
2660
2696
  // For multi-auth providers
2661
- isDefault: z15.boolean(),
2662
- selectedModel: z15.string().nullable(),
2663
- createdAt: z15.string(),
2664
- updatedAt: z15.string()
2697
+ isDefault: z16.boolean(),
2698
+ selectedModel: z16.string().nullable(),
2699
+ createdAt: z16.string(),
2700
+ updatedAt: z16.string()
2665
2701
  });
2666
- var modelProviderListResponseSchema = z15.object({
2667
- modelProviders: z15.array(modelProviderResponseSchema)
2702
+ var modelProviderListResponseSchema = z16.object({
2703
+ modelProviders: z16.array(modelProviderResponseSchema)
2668
2704
  });
2669
- var upsertModelProviderRequestSchema = z15.object({
2705
+ var upsertModelProviderRequestSchema = z16.object({
2670
2706
  type: modelProviderTypeSchema,
2671
- secret: z15.string().min(1).optional(),
2707
+ secret: z16.string().min(1).optional(),
2672
2708
  // Legacy single secret
2673
- authMethod: z15.string().optional(),
2709
+ authMethod: z16.string().optional(),
2674
2710
  // For multi-auth providers
2675
- secrets: z15.record(z15.string(), z15.string()).optional(),
2711
+ secrets: z16.record(z16.string(), z16.string()).optional(),
2676
2712
  // For multi-auth providers
2677
- selectedModel: z15.string().optional()
2713
+ selectedModel: z16.string().optional()
2678
2714
  });
2679
- var upsertModelProviderResponseSchema = z15.object({
2715
+ var upsertModelProviderResponseSchema = z16.object({
2680
2716
  provider: modelProviderResponseSchema,
2681
- created: z15.boolean()
2717
+ created: z16.boolean()
2682
2718
  });
2683
- var updateModelRequestSchema = z15.object({
2684
- selectedModel: z15.string().optional()
2719
+ var updateModelRequestSchema = z16.object({
2720
+ selectedModel: z16.string().optional()
2685
2721
  });
2686
2722
 
2687
2723
  // ../../packages/core/src/contracts/sessions.ts
2688
- import { z as z17 } from "zod";
2724
+ import { z as z18 } from "zod";
2689
2725
 
2690
2726
  // ../../packages/core/src/contracts/chat-threads.ts
2691
- import { z as z16 } from "zod";
2727
+ import { z as z17 } from "zod";
2692
2728
  var c10 = initContract();
2693
- var chatThreadListItemSchema = z16.object({
2694
- id: z16.string(),
2695
- title: z16.string().nullable(),
2696
- preview: z16.string().nullable(),
2697
- agentId: z16.string(),
2698
- createdAt: z16.string(),
2699
- updatedAt: z16.string()
2729
+ var chatThreadListItemSchema = z17.object({
2730
+ id: z17.string(),
2731
+ title: z17.string().nullable(),
2732
+ preview: z17.string().nullable(),
2733
+ agentId: z17.string(),
2734
+ createdAt: z17.string(),
2735
+ updatedAt: z17.string()
2700
2736
  });
2701
- var toolSummaryEntrySchema = z16.object({
2702
- kind: z16.literal("tool"),
2703
- name: z16.string(),
2704
- input: z16.record(z16.string(), z16.unknown()).optional()
2737
+ var toolSummaryEntrySchema = z17.object({
2738
+ kind: z17.literal("tool"),
2739
+ name: z17.string(),
2740
+ input: z17.record(z17.string(), z17.unknown()).optional()
2705
2741
  });
2706
- var textSummaryEntrySchema = z16.object({
2707
- kind: z16.literal("text"),
2708
- text: z16.string()
2742
+ var textSummaryEntrySchema = z17.object({
2743
+ kind: z17.literal("text"),
2744
+ text: z17.string()
2709
2745
  });
2710
- var summaryEntrySchema = z16.union([
2711
- z16.string(),
2746
+ var summaryEntrySchema = z17.union([
2747
+ z17.string(),
2712
2748
  toolSummaryEntrySchema,
2713
2749
  textSummaryEntrySchema
2714
2750
  ]);
2715
- var storedChatMessageSchema = z16.object({
2716
- role: z16.enum(["user", "assistant"]),
2717
- content: z16.string(),
2718
- runId: z16.string().optional(),
2719
- error: z16.string().optional(),
2720
- summaries: z16.array(summaryEntrySchema).optional(),
2721
- createdAt: z16.string()
2722
- });
2723
- var unsavedRunSchema = z16.object({
2724
- runId: z16.string(),
2725
- status: z16.string(),
2726
- prompt: z16.string(),
2727
- error: z16.string().nullable()
2728
- });
2729
- var chatThreadDetailSchema = z16.object({
2730
- id: z16.string(),
2731
- title: z16.string().nullable(),
2732
- agentId: z16.string(),
2733
- chatMessages: z16.array(storedChatMessageSchema),
2734
- latestSessionId: z16.string().nullable(),
2735
- unsavedRuns: z16.array(unsavedRunSchema),
2736
- createdAt: z16.string(),
2737
- updatedAt: z16.string()
2751
+ var storedChatMessageSchema = z17.object({
2752
+ role: z17.enum(["user", "assistant"]),
2753
+ content: z17.string(),
2754
+ runId: z17.string().optional(),
2755
+ error: z17.string().optional(),
2756
+ summaries: z17.array(summaryEntrySchema).optional(),
2757
+ createdAt: z17.string()
2758
+ });
2759
+ var unsavedRunSchema = z17.object({
2760
+ runId: z17.string(),
2761
+ status: z17.string(),
2762
+ prompt: z17.string(),
2763
+ error: z17.string().nullable()
2764
+ });
2765
+ var chatThreadDetailSchema = z17.object({
2766
+ id: z17.string(),
2767
+ title: z17.string().nullable(),
2768
+ agentId: z17.string(),
2769
+ chatMessages: z17.array(storedChatMessageSchema),
2770
+ latestSessionId: z17.string().nullable(),
2771
+ unsavedRuns: z17.array(unsavedRunSchema),
2772
+ createdAt: z17.string(),
2773
+ updatedAt: z17.string()
2738
2774
  });
2739
2775
  var chatThreadsContract = c10.router({
2740
2776
  create: {
2741
2777
  method: "POST",
2742
2778
  path: "/api/zero/chat-threads",
2743
2779
  headers: authHeadersSchema,
2744
- body: z16.object({
2745
- agentId: z16.string().min(1),
2746
- title: z16.string().optional()
2780
+ body: z17.object({
2781
+ agentId: z17.string().min(1),
2782
+ title: z17.string().optional()
2747
2783
  }),
2748
2784
  responses: {
2749
- 201: z16.object({
2750
- id: z16.string(),
2751
- title: z16.string().nullable(),
2752
- createdAt: z16.string()
2785
+ 201: z17.object({
2786
+ id: z17.string(),
2787
+ title: z17.string().nullable(),
2788
+ createdAt: z17.string()
2753
2789
  }),
2754
2790
  401: apiErrorSchema
2755
2791
  },
@@ -2759,11 +2795,11 @@ var chatThreadsContract = c10.router({
2759
2795
  method: "GET",
2760
2796
  path: "/api/zero/chat-threads",
2761
2797
  headers: authHeadersSchema,
2762
- query: z16.object({
2763
- agentId: z16.string().min(1, "agentId is required")
2798
+ query: z17.object({
2799
+ agentId: z17.string().min(1, "agentId is required")
2764
2800
  }),
2765
2801
  responses: {
2766
- 200: z16.object({ threads: z16.array(chatThreadListItemSchema) }),
2802
+ 200: z17.object({ threads: z17.array(chatThreadListItemSchema) }),
2767
2803
  401: apiErrorSchema
2768
2804
  },
2769
2805
  summary: "List chat threads for an agent"
@@ -2774,7 +2810,7 @@ var chatThreadByIdContract = c10.router({
2774
2810
  method: "GET",
2775
2811
  path: "/api/zero/chat-threads/:id",
2776
2812
  headers: authHeadersSchema,
2777
- pathParams: z16.object({ id: z16.string() }),
2813
+ pathParams: z17.object({ id: z17.string() }),
2778
2814
  responses: {
2779
2815
  200: chatThreadDetailSchema,
2780
2816
  401: apiErrorSchema,
@@ -2788,9 +2824,9 @@ var chatThreadRunsContract = c10.router({
2788
2824
  method: "POST",
2789
2825
  path: "/api/zero/chat-threads/:id/runs",
2790
2826
  headers: authHeadersSchema,
2791
- pathParams: z16.object({ id: z16.string() }),
2792
- body: z16.object({
2793
- runId: z16.string().min(1)
2827
+ pathParams: z17.object({ id: z17.string() }),
2828
+ body: z17.object({
2829
+ runId: z17.string().min(1)
2794
2830
  }),
2795
2831
  responses: {
2796
2832
  204: c10.noBody(),
@@ -2805,18 +2841,18 @@ var chatMessagesContract = c10.router({
2805
2841
  method: "POST",
2806
2842
  path: "/api/zero/chat/messages",
2807
2843
  headers: authHeadersSchema,
2808
- body: z16.object({
2809
- agentId: z16.string().min(1),
2810
- prompt: z16.string().min(1),
2811
- threadId: z16.string().optional(),
2812
- modelProvider: z16.string().optional()
2844
+ body: z17.object({
2845
+ agentId: z17.string().min(1),
2846
+ prompt: z17.string().min(1),
2847
+ threadId: z17.string().optional(),
2848
+ modelProvider: z17.string().optional()
2813
2849
  }),
2814
2850
  responses: {
2815
- 201: z16.object({
2816
- runId: z16.string(),
2817
- threadId: z16.string(),
2851
+ 201: z17.object({
2852
+ runId: z17.string(),
2853
+ threadId: z17.string(),
2818
2854
  status: runStatusSchema,
2819
- createdAt: z16.string()
2855
+ createdAt: z17.string()
2820
2856
  }),
2821
2857
  400: apiErrorSchema,
2822
2858
  401: apiErrorSchema,
@@ -2829,50 +2865,50 @@ var chatMessagesContract = c10.router({
2829
2865
 
2830
2866
  // ../../packages/core/src/contracts/sessions.ts
2831
2867
  var c11 = initContract();
2832
- var storedChatMessageSchema2 = z17.object({
2833
- role: z17.enum(["user", "assistant"]),
2834
- content: z17.string(),
2835
- runId: z17.string().optional(),
2836
- summaries: z17.array(summaryEntrySchema).optional(),
2837
- createdAt: z17.string()
2838
- });
2839
- var sessionResponseSchema = z17.object({
2840
- id: z17.string(),
2841
- agentComposeId: z17.string(),
2842
- conversationId: z17.string().nullable(),
2843
- artifactName: z17.string().nullable(),
2844
- secretNames: z17.array(z17.string()).nullable(),
2845
- chatMessages: z17.array(storedChatMessageSchema2).optional(),
2846
- createdAt: z17.string(),
2847
- updatedAt: z17.string()
2848
- });
2849
- var sessionListItemSchema = z17.object({
2850
- id: z17.string(),
2851
- createdAt: z17.string(),
2852
- updatedAt: z17.string(),
2853
- messageCount: z17.number(),
2854
- preview: z17.string().nullable()
2855
- });
2856
- var agentComposeSnapshotSchema = z17.object({
2857
- agentComposeVersionId: z17.string(),
2858
- vars: z17.record(z17.string(), z17.string()).optional(),
2859
- secretNames: z17.array(z17.string()).optional()
2860
- });
2861
- var artifactSnapshotSchema2 = z17.object({
2862
- artifactName: z17.string(),
2863
- artifactVersion: z17.string()
2864
- });
2865
- var volumeVersionsSnapshotSchema2 = z17.object({
2866
- versions: z17.record(z17.string(), z17.string())
2867
- });
2868
- var checkpointResponseSchema = z17.object({
2869
- id: z17.string(),
2870
- runId: z17.string(),
2871
- conversationId: z17.string(),
2868
+ var storedChatMessageSchema2 = z18.object({
2869
+ role: z18.enum(["user", "assistant"]),
2870
+ content: z18.string(),
2871
+ runId: z18.string().optional(),
2872
+ summaries: z18.array(summaryEntrySchema).optional(),
2873
+ createdAt: z18.string()
2874
+ });
2875
+ var sessionResponseSchema = z18.object({
2876
+ id: z18.string(),
2877
+ agentComposeId: z18.string(),
2878
+ conversationId: z18.string().nullable(),
2879
+ artifactName: z18.string().nullable(),
2880
+ secretNames: z18.array(z18.string()).nullable(),
2881
+ chatMessages: z18.array(storedChatMessageSchema2).optional(),
2882
+ createdAt: z18.string(),
2883
+ updatedAt: z18.string()
2884
+ });
2885
+ var sessionListItemSchema = z18.object({
2886
+ id: z18.string(),
2887
+ createdAt: z18.string(),
2888
+ updatedAt: z18.string(),
2889
+ messageCount: z18.number(),
2890
+ preview: z18.string().nullable()
2891
+ });
2892
+ var agentComposeSnapshotSchema = z18.object({
2893
+ agentComposeVersionId: z18.string(),
2894
+ vars: z18.record(z18.string(), z18.string()).optional(),
2895
+ secretNames: z18.array(z18.string()).optional()
2896
+ });
2897
+ var artifactSnapshotSchema2 = z18.object({
2898
+ artifactName: z18.string(),
2899
+ artifactVersion: z18.string()
2900
+ });
2901
+ var volumeVersionsSnapshotSchema2 = z18.object({
2902
+ versions: z18.record(z18.string(), z18.string())
2903
+ });
2904
+ var checkpointResponseSchema = z18.object({
2905
+ id: z18.string(),
2906
+ runId: z18.string(),
2907
+ conversationId: z18.string(),
2872
2908
  agentComposeSnapshot: agentComposeSnapshotSchema,
2873
2909
  artifactSnapshot: artifactSnapshotSchema2.nullable(),
2874
2910
  volumeVersionsSnapshot: volumeVersionsSnapshotSchema2.nullable(),
2875
- createdAt: z17.string()
2911
+ createdAt: z18.string()
2876
2912
  });
2877
2913
  var sessionsContract = c11.router({
2878
2914
  /**
@@ -2883,11 +2919,11 @@ var sessionsContract = c11.router({
2883
2919
  method: "GET",
2884
2920
  path: "/api/agent/sessions",
2885
2921
  headers: authHeadersSchema,
2886
- query: z17.object({
2887
- agentComposeId: z17.string().min(1, "agentComposeId is required")
2922
+ query: z18.object({
2923
+ agentComposeId: z18.string().min(1, "agentComposeId is required")
2888
2924
  }),
2889
2925
  responses: {
2890
- 200: z17.object({ sessions: z17.array(sessionListItemSchema) }),
2926
+ 200: z18.object({ sessions: z18.array(sessionListItemSchema) }),
2891
2927
  401: apiErrorSchema
2892
2928
  },
2893
2929
  summary: "List chat sessions for an agent"
@@ -2902,8 +2938,8 @@ var sessionsByIdContract = c11.router({
2902
2938
  method: "GET",
2903
2939
  path: "/api/agent/sessions/:id",
2904
2940
  headers: authHeadersSchema,
2905
- pathParams: z17.object({
2906
- id: z17.string().min(1, "Session ID is required")
2941
+ pathParams: z18.object({
2942
+ id: z18.string().min(1, "Session ID is required")
2907
2943
  }),
2908
2944
  responses: {
2909
2945
  200: sessionResponseSchema,
@@ -2923,20 +2959,20 @@ var sessionMessagesContract = c11.router({
2923
2959
  method: "POST",
2924
2960
  path: "/api/agent/sessions/:id/messages",
2925
2961
  headers: authHeadersSchema,
2926
- pathParams: z17.object({
2927
- id: z17.string().min(1, "Session ID is required")
2962
+ pathParams: z18.object({
2963
+ id: z18.string().min(1, "Session ID is required")
2928
2964
  }),
2929
- body: z17.object({
2930
- messages: z17.array(
2931
- z17.object({
2932
- role: z17.enum(["user", "assistant"]),
2933
- content: z17.string(),
2934
- runId: z17.string().optional()
2965
+ body: z18.object({
2966
+ messages: z18.array(
2967
+ z18.object({
2968
+ role: z18.enum(["user", "assistant"]),
2969
+ content: z18.string(),
2970
+ runId: z18.string().optional()
2935
2971
  })
2936
2972
  )
2937
2973
  }),
2938
2974
  responses: {
2939
- 200: z17.object({ success: z17.literal(true) }),
2975
+ 200: z18.object({ success: z18.literal(true) }),
2940
2976
  401: apiErrorSchema,
2941
2977
  403: apiErrorSchema,
2942
2978
  404: apiErrorSchema
@@ -2953,8 +2989,8 @@ var checkpointsByIdContract = c11.router({
2953
2989
  method: "GET",
2954
2990
  path: "/api/agent/checkpoints/:id",
2955
2991
  headers: authHeadersSchema,
2956
- pathParams: z17.object({
2957
- id: z17.string().min(1, "Checkpoint ID is required")
2992
+ pathParams: z18.object({
2993
+ id: z18.string().min(1, "Checkpoint ID is required")
2958
2994
  }),
2959
2995
  responses: {
2960
2996
  200: checkpointResponseSchema,
@@ -2968,42 +3004,6 @@ var checkpointsByIdContract = c11.router({
2968
3004
 
2969
3005
  // ../../packages/core/src/contracts/runners.ts
2970
3006
  import { z as z19 } from "zod";
2971
-
2972
- // ../../packages/core/src/contracts/firewalls.ts
2973
- import { z as z18 } from "zod";
2974
- var firewallPermissionSchema = z18.object({
2975
- name: z18.string(),
2976
- description: z18.string().optional(),
2977
- rules: z18.array(z18.string())
2978
- });
2979
- var firewallApiSchema = z18.object({
2980
- base: z18.string(),
2981
- auth: z18.object({
2982
- headers: z18.record(z18.string(), z18.string())
2983
- }),
2984
- permissions: z18.array(firewallPermissionSchema).optional()
2985
- });
2986
- var firewallSchema = z18.object({
2987
- name: z18.string(),
2988
- ref: z18.string(),
2989
- apis: z18.array(firewallApiSchema)
2990
- });
2991
- var experimentalFirewallsSchema = z18.array(firewallSchema);
2992
- var firewallConfigSchema = z18.object({
2993
- name: z18.string().min(1, "Firewall name is required"),
2994
- description: z18.string().optional(),
2995
- apis: z18.array(firewallApiSchema).min(1, "Firewall must have at least one API entry"),
2996
- placeholders: z18.record(z18.string(), z18.string()).optional()
2997
- });
2998
- var firewallPolicyValueSchema = z18.enum(["allow", "deny", "ask"]);
2999
- var firewallPoliciesSchema = z18.record(
3000
- z18.string(),
3001
- z18.record(z18.string(), firewallPolicyValueSchema)
3002
- );
3003
- var BASE_URL_VARS_PATTERN = /\$\{\{\s*vars\.([a-zA-Z_][a-zA-Z0-9_]*)\s*\}\}/;
3004
- var BASE_URL_VARS_PATTERN_G = new RegExp(BASE_URL_VARS_PATTERN.source, "g");
3005
-
3006
- // ../../packages/core/src/contracts/runners.ts
3007
3007
  var c12 = initContract();
3008
3008
  var runnerGroupSchema = z19.string().regex(
3009
3009
  /^[a-z0-9-]+\/[a-z0-9-]+$/,
@@ -20124,6 +20124,25 @@ function collectVolumeVersions(value, previous) {
20124
20124
  }
20125
20125
  return { ...previous, [volumeName]: version };
20126
20126
  }
20127
+ function parseFirewallPolicies(json) {
20128
+ if (!json) return void 0;
20129
+ let parsed;
20130
+ try {
20131
+ parsed = JSON.parse(json);
20132
+ } catch {
20133
+ throw new Error(
20134
+ `Invalid --firewall-policies JSON: ${json}
20135
+ Expected format: '{"ref": {"permission": "allow|deny|ask"}}'`
20136
+ );
20137
+ }
20138
+ const result = firewallPoliciesSchema.safeParse(parsed);
20139
+ if (!result.success) {
20140
+ throw new Error(
20141
+ `Invalid --firewall-policies: ${result.error.issues.map((i) => i.message).join(", ")}`
20142
+ );
20143
+ }
20144
+ return result.data;
20145
+ }
20127
20146
  function isUUID(str) {
20128
20147
  return /^[0-9a-f-]{36}$/i.test(str);
20129
20148
  }
@@ -20397,6 +20416,7 @@ export {
20397
20416
  EventRenderer,
20398
20417
  collectKeyValue,
20399
20418
  collectVolumeVersions,
20419
+ parseFirewallPolicies,
20400
20420
  isUUID,
20401
20421
  extractVarNames,
20402
20422
  extractSecretNames,
@@ -20406,4 +20426,4 @@ export {
20406
20426
  pollEvents,
20407
20427
  showNextSteps
20408
20428
  };
20409
- //# sourceMappingURL=chunk-BB3ODMCC.js.map
20429
+ //# sourceMappingURL=chunk-JOVCRTRX.js.map