@agent-relay/factory 0.1.50 → 0.1.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/README.md +93 -11
  2. package/dist/cli/fleet.d.ts +4 -1
  3. package/dist/cli/fleet.d.ts.map +1 -1
  4. package/dist/cli/fleet.js +87 -42
  5. package/dist/cli/fleet.js.map +1 -1
  6. package/dist/config/schema.d.ts +1671 -10
  7. package/dist/config/schema.d.ts.map +1 -1
  8. package/dist/config/schema.js +83 -0
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/dispatch/templates.d.ts +6 -0
  11. package/dist/dispatch/templates.d.ts.map +1 -1
  12. package/dist/dispatch/templates.js +16 -0
  13. package/dist/dispatch/templates.js.map +1 -1
  14. package/dist/environments/connection-registry.d.ts +617 -0
  15. package/dist/environments/connection-registry.d.ts.map +1 -0
  16. package/dist/environments/connection-registry.js +174 -0
  17. package/dist/environments/connection-registry.js.map +1 -0
  18. package/dist/environments/index.d.ts +21 -0
  19. package/dist/environments/index.d.ts.map +1 -0
  20. package/dist/environments/index.js +11 -0
  21. package/dist/environments/index.js.map +1 -0
  22. package/dist/environments/k6-job.d.ts +64 -0
  23. package/dist/environments/k6-job.d.ts.map +1 -0
  24. package/dist/environments/k6-job.js +376 -0
  25. package/dist/environments/k6-job.js.map +1 -0
  26. package/dist/environments/kubernetes-client.d.ts +72 -0
  27. package/dist/environments/kubernetes-client.d.ts.map +1 -0
  28. package/dist/environments/kubernetes-client.js +337 -0
  29. package/dist/environments/kubernetes-client.js.map +1 -0
  30. package/dist/environments/kubernetes-command.d.ts +30 -0
  31. package/dist/environments/kubernetes-command.d.ts.map +1 -0
  32. package/dist/environments/kubernetes-command.js +108 -0
  33. package/dist/environments/kubernetes-command.js.map +1 -0
  34. package/dist/environments/kubernetes-environment.d.ts +38 -0
  35. package/dist/environments/kubernetes-environment.d.ts.map +1 -0
  36. package/dist/environments/kubernetes-environment.js +333 -0
  37. package/dist/environments/kubernetes-environment.js.map +1 -0
  38. package/dist/environments/kubernetes-provider.d.ts +83 -0
  39. package/dist/environments/kubernetes-provider.d.ts.map +1 -0
  40. package/dist/environments/kubernetes-provider.js +956 -0
  41. package/dist/environments/kubernetes-provider.js.map +1 -0
  42. package/dist/environments/load-harness.d.ts +199 -0
  43. package/dist/environments/load-harness.d.ts.map +1 -0
  44. package/dist/environments/load-harness.js +259 -0
  45. package/dist/environments/load-harness.js.map +1 -0
  46. package/dist/environments/load-profile.d.ts +294 -0
  47. package/dist/environments/load-profile.d.ts.map +1 -0
  48. package/dist/environments/load-profile.js +125 -0
  49. package/dist/environments/load-profile.js.map +1 -0
  50. package/dist/environments/stack-deployer.d.ts +22 -0
  51. package/dist/environments/stack-deployer.d.ts.map +1 -0
  52. package/dist/environments/stack-deployer.js +27 -0
  53. package/dist/environments/stack-deployer.js.map +1 -0
  54. package/dist/environments/stack-descriptor.d.ts +243 -0
  55. package/dist/environments/stack-descriptor.d.ts.map +1 -0
  56. package/dist/environments/stack-descriptor.js +88 -0
  57. package/dist/environments/stack-descriptor.js.map +1 -0
  58. package/dist/environments/verification-pipeline.d.ts +117 -0
  59. package/dist/environments/verification-pipeline.d.ts.map +1 -0
  60. package/dist/environments/verification-pipeline.js +643 -0
  61. package/dist/environments/verification-pipeline.js.map +1 -0
  62. package/dist/environments/verification-stack-deployer.d.ts +73 -0
  63. package/dist/environments/verification-stack-deployer.d.ts.map +1 -0
  64. package/dist/environments/verification-stack-deployer.js +484 -0
  65. package/dist/environments/verification-stack-deployer.js.map +1 -0
  66. package/dist/environments/verification-stack-descriptor.d.ts +1134 -0
  67. package/dist/environments/verification-stack-descriptor.d.ts.map +1 -0
  68. package/dist/environments/verification-stack-descriptor.js +275 -0
  69. package/dist/environments/verification-stack-descriptor.js.map +1 -0
  70. package/dist/environments/verification-stack.d.ts +29 -0
  71. package/dist/environments/verification-stack.d.ts.map +1 -0
  72. package/dist/environments/verification-stack.js +43 -0
  73. package/dist/environments/verification-stack.js.map +1 -0
  74. package/dist/featuremap/generate.d.ts +72 -0
  75. package/dist/featuremap/generate.d.ts.map +1 -0
  76. package/dist/featuremap/generate.js +854 -0
  77. package/dist/featuremap/generate.js.map +1 -0
  78. package/dist/featuremap/index.d.ts +2 -0
  79. package/dist/featuremap/index.d.ts.map +1 -1
  80. package/dist/featuremap/index.js +1 -0
  81. package/dist/featuremap/index.js.map +1 -1
  82. package/dist/featuremap/validate.d.ts +6 -0
  83. package/dist/featuremap/validate.d.ts.map +1 -1
  84. package/dist/featuremap/validate.js +95 -13
  85. package/dist/featuremap/validate.js.map +1 -1
  86. package/dist/fleet/create-fleet.d.ts +2 -0
  87. package/dist/fleet/create-fleet.d.ts.map +1 -1
  88. package/dist/fleet/create-fleet.js +1 -0
  89. package/dist/fleet/create-fleet.js.map +1 -1
  90. package/dist/fleet/internal-fleet-client.d.ts +8 -1
  91. package/dist/fleet/internal-fleet-client.d.ts.map +1 -1
  92. package/dist/fleet/internal-fleet-client.js +31 -6
  93. package/dist/fleet/internal-fleet-client.js.map +1 -1
  94. package/dist/fleet/relay-fleet-client.d.ts +4 -1
  95. package/dist/fleet/relay-fleet-client.d.ts.map +1 -1
  96. package/dist/fleet/relay-fleet-client.js +142 -1
  97. package/dist/fleet/relay-fleet-client.js.map +1 -1
  98. package/dist/git/agent-worktree.d.ts +4 -1
  99. package/dist/git/agent-worktree.d.ts.map +1 -1
  100. package/dist/git/agent-worktree.js +151 -8
  101. package/dist/git/agent-worktree.js.map +1 -1
  102. package/dist/index.d.ts +32 -8
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +15 -3
  105. package/dist/index.js.map +1 -1
  106. package/dist/mount/local-mount-preflight.d.ts.map +1 -1
  107. package/dist/mount/local-mount-preflight.js +6 -2
  108. package/dist/mount/local-mount-preflight.js.map +1 -1
  109. package/dist/mount/relayfile-cloud-mount-client.d.ts +8 -2
  110. package/dist/mount/relayfile-cloud-mount-client.d.ts.map +1 -1
  111. package/dist/mount/relayfile-cloud-mount-client.js +11 -1
  112. package/dist/mount/relayfile-cloud-mount-client.js.map +1 -1
  113. package/dist/node/factory-node.d.ts +2 -0
  114. package/dist/node/factory-node.d.ts.map +1 -1
  115. package/dist/node/factory-node.js +107 -2
  116. package/dist/node/factory-node.js.map +1 -1
  117. package/dist/node/preview-process.d.ts +65 -0
  118. package/dist/node/preview-process.d.ts.map +1 -0
  119. package/dist/node/preview-process.js +431 -0
  120. package/dist/node/preview-process.js.map +1 -0
  121. package/dist/node/tailscale-preview.d.ts +45 -0
  122. package/dist/node/tailscale-preview.d.ts.map +1 -0
  123. package/dist/node/tailscale-preview.js +748 -0
  124. package/dist/node/tailscale-preview.js.map +1 -0
  125. package/dist/observability/events.d.ts +1838 -28
  126. package/dist/observability/events.d.ts.map +1 -1
  127. package/dist/observability/events.js +52 -0
  128. package/dist/observability/events.js.map +1 -1
  129. package/dist/orchestrator/factory.d.ts.map +1 -1
  130. package/dist/orchestrator/factory.js +1362 -65
  131. package/dist/orchestrator/factory.js.map +1 -1
  132. package/dist/orchestrator/failure-classifier.d.ts +13 -0
  133. package/dist/orchestrator/failure-classifier.d.ts.map +1 -0
  134. package/dist/orchestrator/failure-classifier.js +14 -0
  135. package/dist/orchestrator/failure-classifier.js.map +1 -0
  136. package/dist/orchestrator/index.d.ts +2 -1
  137. package/dist/orchestrator/index.d.ts.map +1 -1
  138. package/dist/orchestrator/index.js +1 -1
  139. package/dist/orchestrator/index.js.map +1 -1
  140. package/dist/orchestrator/reaper.d.ts +24 -0
  141. package/dist/orchestrator/reaper.d.ts.map +1 -1
  142. package/dist/orchestrator/reaper.js +117 -0
  143. package/dist/orchestrator/reaper.js.map +1 -1
  144. package/dist/ports/environment.d.ts +83 -0
  145. package/dist/ports/environment.d.ts.map +1 -0
  146. package/dist/ports/environment.js +2 -0
  147. package/dist/ports/environment.js.map +1 -0
  148. package/dist/ports/fleet.d.ts +68 -1
  149. package/dist/ports/fleet.d.ts.map +1 -1
  150. package/dist/ports/index.d.ts +3 -2
  151. package/dist/ports/index.d.ts.map +1 -1
  152. package/dist/ports/mount.d.ts +9 -0
  153. package/dist/ports/mount.d.ts.map +1 -1
  154. package/dist/ports/state.d.ts +17 -1
  155. package/dist/ports/state.d.ts.map +1 -1
  156. package/dist/ports/worktree.d.ts +14 -0
  157. package/dist/ports/worktree.d.ts.map +1 -1
  158. package/dist/state/file-state-store.js +28 -1
  159. package/dist/state/file-state-store.js.map +1 -1
  160. package/dist/subscriptions/index.d.ts +2 -0
  161. package/dist/subscriptions/index.d.ts.map +1 -1
  162. package/dist/subscriptions/index.js +1 -0
  163. package/dist/subscriptions/index.js.map +1 -1
  164. package/dist/subscriptions/resource-subscriptions.d.ts +77 -0
  165. package/dist/subscriptions/resource-subscriptions.d.ts.map +1 -0
  166. package/dist/subscriptions/resource-subscriptions.js +91 -0
  167. package/dist/subscriptions/resource-subscriptions.js.map +1 -0
  168. package/dist/testing/fakes.d.ts +9 -1
  169. package/dist/testing/fakes.d.ts.map +1 -1
  170. package/dist/testing/fakes.js +40 -0
  171. package/dist/testing/fakes.js.map +1 -1
  172. package/dist/triage/schema.d.ts +32 -32
  173. package/dist/types.d.ts +4 -1
  174. package/dist/types.d.ts.map +1 -1
  175. package/package.json +18 -4
  176. package/schemas/kubernetes-environment-stack.schema.json +86 -0
  177. package/schemas/verification-stack.schema.json +292 -0
@@ -0,0 +1,617 @@
1
+ import { z } from 'zod';
2
+ export declare const DEFAULT_MANAGED_FIDELITY_CAVEAT = "Managed verification runs on Factory infrastructure; Kubernetes version, CNI, IAM/IRSA, ingress, add-ons, and node types may differ from the customer cluster.";
3
+ export declare const KubernetesCredentialReferenceSchema: z.ZodObject<{
4
+ kind: z.ZodEnum<["kubeconfig", "irsa"]>;
5
+ secretRef: z.ZodEffects<z.ZodString, string, string>;
6
+ }, "strict", z.ZodTypeAny, {
7
+ kind: "kubeconfig" | "irsa";
8
+ secretRef: string;
9
+ }, {
10
+ kind: "kubeconfig" | "irsa";
11
+ secretRef: string;
12
+ }>;
13
+ export declare const KubernetesConnectionSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
14
+ id: z.ZodString;
15
+ target: z.ZodDefault<z.ZodEnum<["byoc", "managed"]>>;
16
+ customers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
17
+ repositories: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
18
+ credential: z.ZodObject<{
19
+ kind: z.ZodEnum<["kubeconfig", "irsa"]>;
20
+ secretRef: z.ZodEffects<z.ZodString, string, string>;
21
+ }, "strict", z.ZodTypeAny, {
22
+ kind: "kubeconfig" | "irsa";
23
+ secretRef: string;
24
+ }, {
25
+ kind: "kubeconfig" | "irsa";
26
+ secretRef: string;
27
+ }>;
28
+ context: z.ZodOptional<z.ZodString>;
29
+ protectedNamespaces: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
30
+ allowClusterScopedResources: z.ZodDefault<z.ZodBoolean>;
31
+ allowedClusterScopedKinds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
32
+ nodeSelector: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
33
+ tolerations: z.ZodDefault<z.ZodArray<z.ZodObject<{
34
+ key: z.ZodOptional<z.ZodString>;
35
+ operator: z.ZodOptional<z.ZodEnum<["Exists", "Equal"]>>;
36
+ value: z.ZodOptional<z.ZodString>;
37
+ effect: z.ZodOptional<z.ZodEnum<["NoSchedule", "PreferNoSchedule", "NoExecute"]>>;
38
+ tolerationSeconds: z.ZodOptional<z.ZodNumber>;
39
+ }, "strict", z.ZodTypeAny, {
40
+ key?: string | undefined;
41
+ operator?: "Exists" | "Equal" | undefined;
42
+ value?: string | undefined;
43
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
44
+ tolerationSeconds?: number | undefined;
45
+ }, {
46
+ key?: string | undefined;
47
+ operator?: "Exists" | "Equal" | undefined;
48
+ value?: string | undefined;
49
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
50
+ tolerationSeconds?: number | undefined;
51
+ }>, "many">>;
52
+ fidelityCaveat: z.ZodOptional<z.ZodString>;
53
+ }, "strict", z.ZodTypeAny, {
54
+ id: string;
55
+ target: "byoc" | "managed";
56
+ customers: string[];
57
+ repositories: string[];
58
+ credential: {
59
+ kind: "kubeconfig" | "irsa";
60
+ secretRef: string;
61
+ };
62
+ protectedNamespaces: string[];
63
+ allowClusterScopedResources: boolean;
64
+ allowedClusterScopedKinds: string[];
65
+ nodeSelector: Record<string, string>;
66
+ tolerations: {
67
+ key?: string | undefined;
68
+ operator?: "Exists" | "Equal" | undefined;
69
+ value?: string | undefined;
70
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
71
+ tolerationSeconds?: number | undefined;
72
+ }[];
73
+ context?: string | undefined;
74
+ fidelityCaveat?: string | undefined;
75
+ }, {
76
+ id: string;
77
+ credential: {
78
+ kind: "kubeconfig" | "irsa";
79
+ secretRef: string;
80
+ };
81
+ target?: "byoc" | "managed" | undefined;
82
+ customers?: string[] | undefined;
83
+ repositories?: string[] | undefined;
84
+ context?: string | undefined;
85
+ protectedNamespaces?: string[] | undefined;
86
+ allowClusterScopedResources?: boolean | undefined;
87
+ allowedClusterScopedKinds?: string[] | undefined;
88
+ nodeSelector?: Record<string, string> | undefined;
89
+ tolerations?: {
90
+ key?: string | undefined;
91
+ operator?: "Exists" | "Equal" | undefined;
92
+ value?: string | undefined;
93
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
94
+ tolerationSeconds?: number | undefined;
95
+ }[] | undefined;
96
+ fidelityCaveat?: string | undefined;
97
+ }>, {
98
+ id: string;
99
+ target: "byoc" | "managed";
100
+ customers: string[];
101
+ repositories: string[];
102
+ credential: {
103
+ kind: "kubeconfig" | "irsa";
104
+ secretRef: string;
105
+ };
106
+ protectedNamespaces: string[];
107
+ allowClusterScopedResources: boolean;
108
+ allowedClusterScopedKinds: string[];
109
+ nodeSelector: Record<string, string>;
110
+ tolerations: {
111
+ key?: string | undefined;
112
+ operator?: "Exists" | "Equal" | undefined;
113
+ value?: string | undefined;
114
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
115
+ tolerationSeconds?: number | undefined;
116
+ }[];
117
+ context?: string | undefined;
118
+ fidelityCaveat?: string | undefined;
119
+ }, {
120
+ id: string;
121
+ credential: {
122
+ kind: "kubeconfig" | "irsa";
123
+ secretRef: string;
124
+ };
125
+ target?: "byoc" | "managed" | undefined;
126
+ customers?: string[] | undefined;
127
+ repositories?: string[] | undefined;
128
+ context?: string | undefined;
129
+ protectedNamespaces?: string[] | undefined;
130
+ allowClusterScopedResources?: boolean | undefined;
131
+ allowedClusterScopedKinds?: string[] | undefined;
132
+ nodeSelector?: Record<string, string> | undefined;
133
+ tolerations?: {
134
+ key?: string | undefined;
135
+ operator?: "Exists" | "Equal" | undefined;
136
+ value?: string | undefined;
137
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
138
+ tolerationSeconds?: number | undefined;
139
+ }[] | undefined;
140
+ fidelityCaveat?: string | undefined;
141
+ }>, {
142
+ id: string;
143
+ target: "byoc" | "managed";
144
+ customers: string[];
145
+ repositories: string[];
146
+ credential: {
147
+ kind: "kubeconfig" | "irsa";
148
+ secretRef: string;
149
+ };
150
+ protectedNamespaces: string[];
151
+ allowClusterScopedResources: boolean;
152
+ allowedClusterScopedKinds: string[];
153
+ nodeSelector: Record<string, string>;
154
+ tolerations: {
155
+ key?: string | undefined;
156
+ operator?: "Exists" | "Equal" | undefined;
157
+ value?: string | undefined;
158
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
159
+ tolerationSeconds?: number | undefined;
160
+ }[];
161
+ context?: string | undefined;
162
+ fidelityCaveat?: string | undefined;
163
+ }, {
164
+ id: string;
165
+ credential: {
166
+ kind: "kubeconfig" | "irsa";
167
+ secretRef: string;
168
+ };
169
+ target?: "byoc" | "managed" | undefined;
170
+ customers?: string[] | undefined;
171
+ repositories?: string[] | undefined;
172
+ context?: string | undefined;
173
+ protectedNamespaces?: string[] | undefined;
174
+ allowClusterScopedResources?: boolean | undefined;
175
+ allowedClusterScopedKinds?: string[] | undefined;
176
+ nodeSelector?: Record<string, string> | undefined;
177
+ tolerations?: {
178
+ key?: string | undefined;
179
+ operator?: "Exists" | "Equal" | undefined;
180
+ value?: string | undefined;
181
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
182
+ tolerationSeconds?: number | undefined;
183
+ }[] | undefined;
184
+ fidelityCaveat?: string | undefined;
185
+ }>;
186
+ export declare const KubernetesGuardrailDefaultsSchema: z.ZodDefault<z.ZodObject<{
187
+ ttlMs: z.ZodDefault<z.ZodNumber>;
188
+ readinessTimeoutMs: z.ZodDefault<z.ZodNumber>;
189
+ resourceQuota: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
190
+ limitRange: z.ZodDefault<z.ZodObject<{
191
+ default: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
192
+ defaultRequest: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
193
+ max: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
194
+ }, "strip", z.ZodTypeAny, {
195
+ default: Record<string, string>;
196
+ max: Record<string, string>;
197
+ defaultRequest: Record<string, string>;
198
+ }, {
199
+ default?: Record<string, string> | undefined;
200
+ max?: Record<string, string> | undefined;
201
+ defaultRequest?: Record<string, string> | undefined;
202
+ }>>;
203
+ }, "strict", z.ZodTypeAny, {
204
+ ttlMs: number;
205
+ readinessTimeoutMs: number;
206
+ resourceQuota: Record<string, string>;
207
+ limitRange: {
208
+ default: Record<string, string>;
209
+ max: Record<string, string>;
210
+ defaultRequest: Record<string, string>;
211
+ };
212
+ }, {
213
+ ttlMs?: number | undefined;
214
+ readinessTimeoutMs?: number | undefined;
215
+ resourceQuota?: Record<string, string> | undefined;
216
+ limitRange?: {
217
+ default?: Record<string, string> | undefined;
218
+ max?: Record<string, string> | undefined;
219
+ defaultRequest?: Record<string, string> | undefined;
220
+ } | undefined;
221
+ }>>;
222
+ export declare const KubernetesEnvironmentConfigSchema: z.ZodDefault<z.ZodEffects<z.ZodObject<{
223
+ connections: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodEffects<z.ZodObject<{
224
+ id: z.ZodString;
225
+ target: z.ZodDefault<z.ZodEnum<["byoc", "managed"]>>;
226
+ customers: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
227
+ repositories: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
228
+ credential: z.ZodObject<{
229
+ kind: z.ZodEnum<["kubeconfig", "irsa"]>;
230
+ secretRef: z.ZodEffects<z.ZodString, string, string>;
231
+ }, "strict", z.ZodTypeAny, {
232
+ kind: "kubeconfig" | "irsa";
233
+ secretRef: string;
234
+ }, {
235
+ kind: "kubeconfig" | "irsa";
236
+ secretRef: string;
237
+ }>;
238
+ context: z.ZodOptional<z.ZodString>;
239
+ protectedNamespaces: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
240
+ allowClusterScopedResources: z.ZodDefault<z.ZodBoolean>;
241
+ allowedClusterScopedKinds: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
242
+ nodeSelector: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
243
+ tolerations: z.ZodDefault<z.ZodArray<z.ZodObject<{
244
+ key: z.ZodOptional<z.ZodString>;
245
+ operator: z.ZodOptional<z.ZodEnum<["Exists", "Equal"]>>;
246
+ value: z.ZodOptional<z.ZodString>;
247
+ effect: z.ZodOptional<z.ZodEnum<["NoSchedule", "PreferNoSchedule", "NoExecute"]>>;
248
+ tolerationSeconds: z.ZodOptional<z.ZodNumber>;
249
+ }, "strict", z.ZodTypeAny, {
250
+ key?: string | undefined;
251
+ operator?: "Exists" | "Equal" | undefined;
252
+ value?: string | undefined;
253
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
254
+ tolerationSeconds?: number | undefined;
255
+ }, {
256
+ key?: string | undefined;
257
+ operator?: "Exists" | "Equal" | undefined;
258
+ value?: string | undefined;
259
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
260
+ tolerationSeconds?: number | undefined;
261
+ }>, "many">>;
262
+ fidelityCaveat: z.ZodOptional<z.ZodString>;
263
+ }, "strict", z.ZodTypeAny, {
264
+ id: string;
265
+ target: "byoc" | "managed";
266
+ customers: string[];
267
+ repositories: string[];
268
+ credential: {
269
+ kind: "kubeconfig" | "irsa";
270
+ secretRef: string;
271
+ };
272
+ protectedNamespaces: string[];
273
+ allowClusterScopedResources: boolean;
274
+ allowedClusterScopedKinds: string[];
275
+ nodeSelector: Record<string, string>;
276
+ tolerations: {
277
+ key?: string | undefined;
278
+ operator?: "Exists" | "Equal" | undefined;
279
+ value?: string | undefined;
280
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
281
+ tolerationSeconds?: number | undefined;
282
+ }[];
283
+ context?: string | undefined;
284
+ fidelityCaveat?: string | undefined;
285
+ }, {
286
+ id: string;
287
+ credential: {
288
+ kind: "kubeconfig" | "irsa";
289
+ secretRef: string;
290
+ };
291
+ target?: "byoc" | "managed" | undefined;
292
+ customers?: string[] | undefined;
293
+ repositories?: string[] | undefined;
294
+ context?: string | undefined;
295
+ protectedNamespaces?: string[] | undefined;
296
+ allowClusterScopedResources?: boolean | undefined;
297
+ allowedClusterScopedKinds?: string[] | undefined;
298
+ nodeSelector?: Record<string, string> | undefined;
299
+ tolerations?: {
300
+ key?: string | undefined;
301
+ operator?: "Exists" | "Equal" | undefined;
302
+ value?: string | undefined;
303
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
304
+ tolerationSeconds?: number | undefined;
305
+ }[] | undefined;
306
+ fidelityCaveat?: string | undefined;
307
+ }>, {
308
+ id: string;
309
+ target: "byoc" | "managed";
310
+ customers: string[];
311
+ repositories: string[];
312
+ credential: {
313
+ kind: "kubeconfig" | "irsa";
314
+ secretRef: string;
315
+ };
316
+ protectedNamespaces: string[];
317
+ allowClusterScopedResources: boolean;
318
+ allowedClusterScopedKinds: string[];
319
+ nodeSelector: Record<string, string>;
320
+ tolerations: {
321
+ key?: string | undefined;
322
+ operator?: "Exists" | "Equal" | undefined;
323
+ value?: string | undefined;
324
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
325
+ tolerationSeconds?: number | undefined;
326
+ }[];
327
+ context?: string | undefined;
328
+ fidelityCaveat?: string | undefined;
329
+ }, {
330
+ id: string;
331
+ credential: {
332
+ kind: "kubeconfig" | "irsa";
333
+ secretRef: string;
334
+ };
335
+ target?: "byoc" | "managed" | undefined;
336
+ customers?: string[] | undefined;
337
+ repositories?: string[] | undefined;
338
+ context?: string | undefined;
339
+ protectedNamespaces?: string[] | undefined;
340
+ allowClusterScopedResources?: boolean | undefined;
341
+ allowedClusterScopedKinds?: string[] | undefined;
342
+ nodeSelector?: Record<string, string> | undefined;
343
+ tolerations?: {
344
+ key?: string | undefined;
345
+ operator?: "Exists" | "Equal" | undefined;
346
+ value?: string | undefined;
347
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
348
+ tolerationSeconds?: number | undefined;
349
+ }[] | undefined;
350
+ fidelityCaveat?: string | undefined;
351
+ }>, {
352
+ id: string;
353
+ target: "byoc" | "managed";
354
+ customers: string[];
355
+ repositories: string[];
356
+ credential: {
357
+ kind: "kubeconfig" | "irsa";
358
+ secretRef: string;
359
+ };
360
+ protectedNamespaces: string[];
361
+ allowClusterScopedResources: boolean;
362
+ allowedClusterScopedKinds: string[];
363
+ nodeSelector: Record<string, string>;
364
+ tolerations: {
365
+ key?: string | undefined;
366
+ operator?: "Exists" | "Equal" | undefined;
367
+ value?: string | undefined;
368
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
369
+ tolerationSeconds?: number | undefined;
370
+ }[];
371
+ context?: string | undefined;
372
+ fidelityCaveat?: string | undefined;
373
+ }, {
374
+ id: string;
375
+ credential: {
376
+ kind: "kubeconfig" | "irsa";
377
+ secretRef: string;
378
+ };
379
+ target?: "byoc" | "managed" | undefined;
380
+ customers?: string[] | undefined;
381
+ repositories?: string[] | undefined;
382
+ context?: string | undefined;
383
+ protectedNamespaces?: string[] | undefined;
384
+ allowClusterScopedResources?: boolean | undefined;
385
+ allowedClusterScopedKinds?: string[] | undefined;
386
+ nodeSelector?: Record<string, string> | undefined;
387
+ tolerations?: {
388
+ key?: string | undefined;
389
+ operator?: "Exists" | "Equal" | undefined;
390
+ value?: string | undefined;
391
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
392
+ tolerationSeconds?: number | undefined;
393
+ }[] | undefined;
394
+ fidelityCaveat?: string | undefined;
395
+ }>, "many">>;
396
+ defaults: z.ZodDefault<z.ZodObject<{
397
+ ttlMs: z.ZodDefault<z.ZodNumber>;
398
+ readinessTimeoutMs: z.ZodDefault<z.ZodNumber>;
399
+ resourceQuota: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
400
+ limitRange: z.ZodDefault<z.ZodObject<{
401
+ default: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
402
+ defaultRequest: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
403
+ max: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
404
+ }, "strip", z.ZodTypeAny, {
405
+ default: Record<string, string>;
406
+ max: Record<string, string>;
407
+ defaultRequest: Record<string, string>;
408
+ }, {
409
+ default?: Record<string, string> | undefined;
410
+ max?: Record<string, string> | undefined;
411
+ defaultRequest?: Record<string, string> | undefined;
412
+ }>>;
413
+ }, "strict", z.ZodTypeAny, {
414
+ ttlMs: number;
415
+ readinessTimeoutMs: number;
416
+ resourceQuota: Record<string, string>;
417
+ limitRange: {
418
+ default: Record<string, string>;
419
+ max: Record<string, string>;
420
+ defaultRequest: Record<string, string>;
421
+ };
422
+ }, {
423
+ ttlMs?: number | undefined;
424
+ readinessTimeoutMs?: number | undefined;
425
+ resourceQuota?: Record<string, string> | undefined;
426
+ limitRange?: {
427
+ default?: Record<string, string> | undefined;
428
+ max?: Record<string, string> | undefined;
429
+ defaultRequest?: Record<string, string> | undefined;
430
+ } | undefined;
431
+ }>>;
432
+ }, "strict", z.ZodTypeAny, {
433
+ connections: {
434
+ id: string;
435
+ target: "byoc" | "managed";
436
+ customers: string[];
437
+ repositories: string[];
438
+ credential: {
439
+ kind: "kubeconfig" | "irsa";
440
+ secretRef: string;
441
+ };
442
+ protectedNamespaces: string[];
443
+ allowClusterScopedResources: boolean;
444
+ allowedClusterScopedKinds: string[];
445
+ nodeSelector: Record<string, string>;
446
+ tolerations: {
447
+ key?: string | undefined;
448
+ operator?: "Exists" | "Equal" | undefined;
449
+ value?: string | undefined;
450
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
451
+ tolerationSeconds?: number | undefined;
452
+ }[];
453
+ context?: string | undefined;
454
+ fidelityCaveat?: string | undefined;
455
+ }[];
456
+ defaults: {
457
+ ttlMs: number;
458
+ readinessTimeoutMs: number;
459
+ resourceQuota: Record<string, string>;
460
+ limitRange: {
461
+ default: Record<string, string>;
462
+ max: Record<string, string>;
463
+ defaultRequest: Record<string, string>;
464
+ };
465
+ };
466
+ }, {
467
+ connections?: {
468
+ id: string;
469
+ credential: {
470
+ kind: "kubeconfig" | "irsa";
471
+ secretRef: string;
472
+ };
473
+ target?: "byoc" | "managed" | undefined;
474
+ customers?: string[] | undefined;
475
+ repositories?: string[] | undefined;
476
+ context?: string | undefined;
477
+ protectedNamespaces?: string[] | undefined;
478
+ allowClusterScopedResources?: boolean | undefined;
479
+ allowedClusterScopedKinds?: string[] | undefined;
480
+ nodeSelector?: Record<string, string> | undefined;
481
+ tolerations?: {
482
+ key?: string | undefined;
483
+ operator?: "Exists" | "Equal" | undefined;
484
+ value?: string | undefined;
485
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
486
+ tolerationSeconds?: number | undefined;
487
+ }[] | undefined;
488
+ fidelityCaveat?: string | undefined;
489
+ }[] | undefined;
490
+ defaults?: {
491
+ ttlMs?: number | undefined;
492
+ readinessTimeoutMs?: number | undefined;
493
+ resourceQuota?: Record<string, string> | undefined;
494
+ limitRange?: {
495
+ default?: Record<string, string> | undefined;
496
+ max?: Record<string, string> | undefined;
497
+ defaultRequest?: Record<string, string> | undefined;
498
+ } | undefined;
499
+ } | undefined;
500
+ }>, {
501
+ connections: {
502
+ id: string;
503
+ target: "byoc" | "managed";
504
+ customers: string[];
505
+ repositories: string[];
506
+ credential: {
507
+ kind: "kubeconfig" | "irsa";
508
+ secretRef: string;
509
+ };
510
+ protectedNamespaces: string[];
511
+ allowClusterScopedResources: boolean;
512
+ allowedClusterScopedKinds: string[];
513
+ nodeSelector: Record<string, string>;
514
+ tolerations: {
515
+ key?: string | undefined;
516
+ operator?: "Exists" | "Equal" | undefined;
517
+ value?: string | undefined;
518
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
519
+ tolerationSeconds?: number | undefined;
520
+ }[];
521
+ context?: string | undefined;
522
+ fidelityCaveat?: string | undefined;
523
+ }[];
524
+ defaults: {
525
+ ttlMs: number;
526
+ readinessTimeoutMs: number;
527
+ resourceQuota: Record<string, string>;
528
+ limitRange: {
529
+ default: Record<string, string>;
530
+ max: Record<string, string>;
531
+ defaultRequest: Record<string, string>;
532
+ };
533
+ };
534
+ }, {
535
+ connections?: {
536
+ id: string;
537
+ credential: {
538
+ kind: "kubeconfig" | "irsa";
539
+ secretRef: string;
540
+ };
541
+ target?: "byoc" | "managed" | undefined;
542
+ customers?: string[] | undefined;
543
+ repositories?: string[] | undefined;
544
+ context?: string | undefined;
545
+ protectedNamespaces?: string[] | undefined;
546
+ allowClusterScopedResources?: boolean | undefined;
547
+ allowedClusterScopedKinds?: string[] | undefined;
548
+ nodeSelector?: Record<string, string> | undefined;
549
+ tolerations?: {
550
+ key?: string | undefined;
551
+ operator?: "Exists" | "Equal" | undefined;
552
+ value?: string | undefined;
553
+ effect?: "NoSchedule" | "PreferNoSchedule" | "NoExecute" | undefined;
554
+ tolerationSeconds?: number | undefined;
555
+ }[] | undefined;
556
+ fidelityCaveat?: string | undefined;
557
+ }[] | undefined;
558
+ defaults?: {
559
+ ttlMs?: number | undefined;
560
+ readinessTimeoutMs?: number | undefined;
561
+ resourceQuota?: Record<string, string> | undefined;
562
+ limitRange?: {
563
+ default?: Record<string, string> | undefined;
564
+ max?: Record<string, string> | undefined;
565
+ defaultRequest?: Record<string, string> | undefined;
566
+ } | undefined;
567
+ } | undefined;
568
+ }>>;
569
+ export type KubernetesConnection = z.output<typeof KubernetesConnectionSchema>;
570
+ export type KubernetesConnectionInput = z.input<typeof KubernetesConnectionSchema>;
571
+ export type KubernetesEnvironmentConfig = z.output<typeof KubernetesEnvironmentConfigSchema>;
572
+ export type KubernetesGuardrailDefaults = z.output<typeof KubernetesGuardrailDefaultsSchema>;
573
+ export interface ResolvedKubernetesCredential {
574
+ /** Path to a short-lived/scoped kubeconfig. The credential itself never enters config. */
575
+ kubeconfigPath: string;
576
+ /** Optional hermetic process environment for an exec-based kubeconfig (for example AWS IRSA). */
577
+ environment?: NodeJS.ProcessEnv;
578
+ }
579
+ export interface KubernetesCredentialResolver {
580
+ resolve(reference: string, kind: KubernetesConnection['credential']['kind']): Promise<ResolvedKubernetesCredential>;
581
+ }
582
+ export interface ResolvedKubernetesConnection extends Omit<KubernetesConnection, 'credential'> {
583
+ credentialKind: KubernetesConnection['credential']['kind'];
584
+ kubeconfigPath: string;
585
+ environment?: NodeJS.ProcessEnv;
586
+ }
587
+ export interface ResolveKubernetesConnectionInput {
588
+ customerId: string;
589
+ repository: string;
590
+ target?: KubernetesConnection['target'];
591
+ }
592
+ export type KubernetesConnectionResolution = {
593
+ id: string;
594
+ connection: ResolvedKubernetesConnection;
595
+ error?: never;
596
+ } | {
597
+ id: string;
598
+ connection?: never;
599
+ error: unknown;
600
+ };
601
+ /** Resolve a kubeconfig path stored in an environment-backed CI secret reference. */
602
+ export declare class EnvironmentKubernetesCredentialResolver implements KubernetesCredentialResolver {
603
+ #private;
604
+ constructor(env?: NodeJS.ProcessEnv);
605
+ resolve(reference: string): Promise<ResolvedKubernetesCredential>;
606
+ }
607
+ /** Customer/repository-aware registry for BYOC and managed cluster connections. */
608
+ export declare class KubernetesConnectionRegistry {
609
+ #private;
610
+ readonly config: KubernetesEnvironmentConfig;
611
+ constructor(config: KubernetesEnvironmentConfig | z.input<typeof KubernetesEnvironmentConfigSchema>, resolver?: KubernetesCredentialResolver);
612
+ resolve(input: ResolveKubernetesConnectionInput): Promise<ResolvedKubernetesConnection>;
613
+ all(): Promise<ResolvedKubernetesConnection[]>;
614
+ /** Resolve every configured connection without letting one unavailable secret hide the others. */
615
+ resolveAll(): Promise<KubernetesConnectionResolution[]>;
616
+ }
617
+ //# sourceMappingURL=connection-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-registry.d.ts","sourceRoot":"","sources":["../../src/environments/connection-registry.ts"],"names":[],"mappings":"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"}