@fjall/deploy-core 2.21.0 → 2.22.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.
Files changed (82) hide show
  1. package/dist/.minified +1 -1
  2. package/dist/src/aws/AwsProvider.d.ts +9 -0
  3. package/dist/src/aws/index.d.ts +2 -0
  4. package/dist/src/aws/index.js +1 -1
  5. package/dist/src/aws/regions/regionOptStatus.d.ts +26 -0
  6. package/dist/src/aws/regions/regionOptStatus.js +1 -0
  7. package/dist/src/aws/utils/cloudformationEventHelpers.js +1 -1
  8. package/dist/src/aws/utils/cloudformationEventTypes.d.ts +6 -0
  9. package/dist/src/aws/utils/cloudformationEvents.d.ts +1 -0
  10. package/dist/src/aws/utils/cloudformationEvents.js +1 -1
  11. package/dist/src/index.d.ts +10 -2
  12. package/dist/src/index.js +1 -1
  13. package/dist/src/orchestration/application/applicationDeploy.js +1 -1
  14. package/dist/src/orchestration/application/applicationDeployHelpers.js +2 -2
  15. package/dist/src/orchestration/application/approvalGate.d.ts +44 -0
  16. package/dist/src/orchestration/application/approvalGate.js +1 -0
  17. package/dist/src/orchestration/application/buildArgResolver.d.ts +72 -0
  18. package/dist/src/orchestration/application/buildArgResolver.js +1 -0
  19. package/dist/src/orchestration/application/buildGroupValidator.d.ts +64 -0
  20. package/dist/src/orchestration/application/buildGroupValidator.js +1 -0
  21. package/dist/src/orchestration/application/buildSecretResolver.d.ts +57 -0
  22. package/dist/src/orchestration/application/buildSecretResolver.js +1 -0
  23. package/dist/src/orchestration/application/buildSecretSession.d.ts +40 -0
  24. package/dist/src/orchestration/application/buildSecretSession.js +1 -0
  25. package/dist/src/orchestration/application/codeOnlyDeploy.js +1 -1
  26. package/dist/src/orchestration/application/dockerBuildHelper.js +1 -1
  27. package/dist/src/orchestration/application/plan/approvalToken.d.ts +40 -0
  28. package/dist/src/orchestration/application/plan/approvalToken.js +1 -0
  29. package/dist/src/orchestration/application/plan/assemblyDigest.d.ts +21 -0
  30. package/dist/src/orchestration/application/plan/assemblyDigest.js +2 -0
  31. package/dist/src/orchestration/application/plan/buildDeployPlan.d.ts +14 -0
  32. package/dist/src/orchestration/application/plan/buildDeployPlan.js +1 -0
  33. package/dist/src/orchestration/application/plan/classify.d.ts +37 -0
  34. package/dist/src/orchestration/application/plan/classify.js +1 -0
  35. package/dist/src/orchestration/application/plan/computeDeployPlan.d.ts +24 -0
  36. package/dist/src/orchestration/application/plan/computeDeployPlan.js +1 -0
  37. package/dist/src/orchestration/application/plan/index.d.ts +8 -0
  38. package/dist/src/orchestration/application/plan/index.js +1 -0
  39. package/dist/src/orchestration/application/plan/renderDeployPlan.d.ts +18 -0
  40. package/dist/src/orchestration/application/plan/renderDeployPlan.js +1 -0
  41. package/dist/src/orchestration/application/plan/types.d.ts +54 -0
  42. package/dist/src/orchestration/application/plan/types.js +0 -0
  43. package/dist/src/orchestration/deploy.js +1 -1
  44. package/dist/src/orchestration/destroy.js +1 -1
  45. package/dist/src/orchestration/dockerBuildParamsKeys.d.ts +2 -0
  46. package/dist/src/orchestration/dockerBuildParamsKeys.js +1 -0
  47. package/dist/src/orchestration/dockerInterface.d.ts +34 -0
  48. package/dist/src/orchestration/index.d.ts +8 -1
  49. package/dist/src/orchestration/index.js +1 -1
  50. package/dist/src/orchestration/serviceFactory.d.ts +7 -0
  51. package/dist/src/orchestration/serviceFactory.js +1 -1
  52. package/dist/src/orchestration/stepLifecycle.d.ts +7 -1
  53. package/dist/src/orchestration/stepLifecycle.js +1 -1
  54. package/dist/src/services/infrastructure/CdkEventMonitoring.d.ts +3 -0
  55. package/dist/src/services/infrastructure/CdkEventMonitoring.js +1 -1
  56. package/dist/src/services/infrastructure/CdkProcessManager.d.ts +10 -1
  57. package/dist/src/services/infrastructure/CdkProcessManager.js +3 -3
  58. package/dist/src/services/infrastructure/CdkService.d.ts +1 -0
  59. package/dist/src/services/infrastructure/CdkService.js +2 -2
  60. package/dist/src/services/infrastructure/CdkServiceTypes.d.ts +15 -0
  61. package/dist/src/services/infrastructure/CloudFormationService.d.ts +11 -0
  62. package/dist/src/services/infrastructure/CloudFormationService.js +1 -1
  63. package/dist/src/services/infrastructure/cancelInFlightStack.d.ts +22 -0
  64. package/dist/src/services/infrastructure/cancelInFlightStack.js +3 -0
  65. package/dist/src/types/approval.d.ts +53 -0
  66. package/dist/src/types/approval.js +0 -0
  67. package/dist/src/types/callbackKeys.d.ts +1 -1
  68. package/dist/src/types/callbackKeys.js +1 -1
  69. package/dist/src/types/callbacks.d.ts +18 -4
  70. package/dist/src/types/config/entitlements.d.ts +7 -0
  71. package/dist/src/types/deployEmitter.d.ts +85 -0
  72. package/dist/src/types/deployEmitter.js +1 -0
  73. package/dist/src/types/deployEvent.d.ts +907 -0
  74. package/dist/src/types/deployEvent.js +1 -0
  75. package/dist/src/types/deployEventParse.d.ts +52 -0
  76. package/dist/src/types/deployEventParse.js +1 -0
  77. package/dist/src/types/deployEventTypeGuards.d.ts +10 -0
  78. package/dist/src/types/deployEventTypeGuards.js +1 -0
  79. package/dist/src/types/index.d.ts +6 -1
  80. package/dist/src/types/index.js +1 -1
  81. package/dist/src/types/params.d.ts +103 -0
  82. package/package.json +8 -4
@@ -0,0 +1,907 @@
1
+ /**
2
+ * The unified deploy-event contract — `fjall.deploy/1.1`.
3
+ *
4
+ * One versioned discriminated union (`DeployEvent`) is the single wire shape for
5
+ * every progress signal the deployment engine emits, replacing the positional
6
+ * `DeployCallbacks`, the forked wire schemas, and the ad-hoc TOON/Ink/metadata
7
+ * representations. Consumers parse with {@link parseDeployEvent} and switch on
8
+ * `progressKind`; producers construct via `createDeployEmitter` (the single
9
+ * masking + sequencing boundary).
10
+ *
11
+ * Naming: this is `DeployEvent` / `DeployEventSchema` (`fjall.deploy/1.1`), NOT
12
+ * the legacy `DeploymentEvent` / `DeploymentEventSchema` (the flat wire schema in
13
+ * `deploymentEventSchema.ts`, superseded in a later phase). They coexist during
14
+ * the migration; do not conflate them.
15
+ *
16
+ * Browser-safe: this module imports only Zod, pure constant tuples, and
17
+ * `@fjall/util/config` — no Node-only modules.
18
+ */
19
+ import { z } from "zod";
20
+ /** The contract marker stamped on every event this build emits. */
21
+ export declare const DEPLOY_EVENT_CONTRACT: "fjall.deploy/1.1";
22
+ /** Major version — a bump means a breaking shape change (parser rejects skew). */
23
+ export declare const DEPLOY_EVENT_CONTRACT_MAJOR = 1;
24
+ /** Minor version — additive variants/fields; a higher minor is forward-tolerated. */
25
+ export declare const DEPLOY_EVENT_CONTRACT_MINOR = 1;
26
+ /**
27
+ * Every same-major contract marker this build can parse. The envelope accepts
28
+ * any listed minor, so a 1.1 reader still validates a persisted 1.0 event as
29
+ * `ok` (backward-compatible). A future minor (1.2+) is deliberately absent here,
30
+ * so `parseDeployEvent` classifies it `unknown` — render best-effort — never
31
+ * `invalid` (forward-compatible). Add the new marker here when bumping the minor.
32
+ */
33
+ export declare const SUPPORTED_CONTRACT_MARKERS: readonly ["fjall.deploy/1.0", "fjall.deploy/1.1"];
34
+ export declare const DEPLOY_EVENT_ID_MAX = 256;
35
+ export declare const DEPLOY_EVENT_NAME_MAX = 256;
36
+ export declare const DEPLOY_EVENT_MESSAGE_MAX = 2048;
37
+ export declare const DEPLOY_EVENT_STATUS_REASON_MAX = 2048;
38
+ export declare const DEPLOY_EVENT_ERROR_MESSAGE_MAX = 4096;
39
+ export declare const DEPLOY_EVENT_TRAIL_DETAIL_MAX = 2048;
40
+ export declare const DEPLOY_EVENT_OUTPUT_MAX = 8192;
41
+ export declare const DEPLOY_EVENT_ARN_MAX = 2048;
42
+ export declare const DEPLOY_EVENT_URL_MAX = 4096;
43
+ /** Terminal status of a single deploy step. callbacks.ts `StepCompleteStatus` derives from this. */
44
+ export declare const STEP_COMPLETE_STATUSES: readonly ["completed", "skipped", "error", "cancelled"];
45
+ /** Log severity. callbacks.ts `LogLevel` (onLog) derives from this. */
46
+ export declare const LOG_LEVELS: readonly ["info", "debug", "warn"];
47
+ /**
48
+ * Failed-state stack-cleanup phases. callbacks.ts `StackCleanupPhase` derives
49
+ * from this. The "quarantine-suspected" and "retained-buckets" literals are
50
+ * consumed by `fjall unlock` and the detection rule — they must not be renamed.
51
+ */
52
+ export declare const STACK_CLEANUP_PHASES: readonly ["emptying-bucket", "deleting-stack", "waiting", "complete", "error", "quarantine-suspected", "retained-buckets"];
53
+ /** Per-account cascade phases. callbacks.ts `CascadeAccountPhase` derives from this. */
54
+ export declare const CASCADE_ACCOUNT_PHASES: readonly ["bootstrap", "synth", "deploy", "destroy"];
55
+ /**
56
+ * Granular terminal outcome of a deploy run (the `deploy.completed` event). One
57
+ * of the OTel-inspired two axes: `result` (this enum) sits beside a binary `ok`,
58
+ * with `errorType` present only when `!ok`.
59
+ */
60
+ export declare const DEPLOY_RESULTS: readonly ["success", "failure", "cancelled", "no-changes", "rejected"];
61
+ export type DeployRunResult = (typeof DEPLOY_RESULTS)[number];
62
+ /** Detection-pipeline phase boundaries (the `detection.phase` event). */
63
+ export declare const DETECTION_PHASES: readonly ["detect", "synth", "hash", "validate"];
64
+ /** started/completed — reused across the phase-boundary events in this contract. */
65
+ export declare const PHASE_STATUSES: readonly ["started", "completed"];
66
+ /** Build-pipeline kinds carried by the `build.*` events. */
67
+ export declare const BUILDERS: readonly ["docker", "buildpush", "opennext"];
68
+ /**
69
+ * Cascade per-target outcome. Mirrors the engine-side `CascadeOutcomeResult`
70
+ * (orchestration/organisation/cascadeSummary.ts); the wire ledger owns its own
71
+ * tuple so the contract has no dependency on the orchestration layer.
72
+ */
73
+ export declare const CASCADE_OUTCOME_RESULTS: readonly ["succeeded", "skipped", "failed"];
74
+ /** CloudFormation plan actions (the `plan.available` event). */
75
+ export declare const PLAN_ACTIONS: readonly ["create", "update", "replace", "delete", "read", "no-op"];
76
+ export type PlanAction = (typeof PLAN_ACTIONS)[number];
77
+ /**
78
+ * How CloudFormation will replace a resource — the replacement axis of
79
+ * `@aws-cdk/cloudformation-diff`'s `ResourceImpact` (1.1). `will` = WILL_REPLACE,
80
+ * `may` = MAY_REPLACE (a token whose value can't be evaluated until deploy),
81
+ * `conditional` = replacement depends on a condition, `none` = no replacement.
82
+ */
83
+ export declare const REPLACEMENT_MODES: readonly ["will", "may", "conditional", "none"];
84
+ export type ReplacementMode = (typeof REPLACEMENT_MODES)[number];
85
+ /** Approval-gate kinds (the `approval.awaiting` event). */
86
+ export declare const APPROVAL_KINDS: readonly ["destructive", "cost", "policy"];
87
+ export type ApprovalKind = (typeof APPROVAL_KINDS)[number];
88
+ /**
89
+ * Approval-gate decisions (the `approval.resolved` event). `expired` (the
90
+ * `expiresAt` window elapsed) and `superseded` (a re-plan invalidated a prior
91
+ * awaiting) are the 1.1 additions.
92
+ */
93
+ export declare const APPROVAL_DECISIONS: readonly ["approved", "rejected", "expired", "superseded"];
94
+ export type ApprovalDecision = (typeof APPROVAL_DECISIONS)[number];
95
+ /**
96
+ * Per-action change tally on a plan. Every action is enumerated and required —
97
+ * never derived as `total − safe` (`.claude/rules/code-quality.md § "Derived
98
+ * aggregate buckets must enumerate, not subtract"`). The compile-time guard
99
+ * below keeps the keys in lockstep with {@link PLAN_ACTIONS}.
100
+ */
101
+ export declare const ChangeCountsSchema: z.ZodObject<{
102
+ create: z.ZodNumber;
103
+ update: z.ZodNumber;
104
+ replace: z.ZodNumber;
105
+ delete: z.ZodNumber;
106
+ read: z.ZodNumber;
107
+ "no-op": z.ZodNumber;
108
+ }, z.core.$strict>;
109
+ export type ChangeCounts = z.infer<typeof ChangeCountsSchema>;
110
+ /**
111
+ * Both-or-neither step counter. A step either carries no progress at all, or
112
+ * carries BOTH a non-negative index AND a positive total — making the `{0,0}`
113
+ * footgun (lone `{index:0}`, `{index:null}`, `total:0`) unrepresentable.
114
+ */
115
+ export declare const StepProgressSchema: z.ZodObject<{
116
+ index: z.ZodNumber;
117
+ total: z.ZodNumber;
118
+ }, z.core.$strict>;
119
+ export type StepProgress = z.infer<typeof StepProgressSchema>;
120
+ /** Serialisable CloudFormation resource event (the non-Date subset of `@fjall/util` ResourceEvent, plus category). */
121
+ export declare const DeployResourceSchema: z.ZodObject<{
122
+ logicalId: z.ZodString;
123
+ resourceType: z.ZodString;
124
+ status: z.ZodString;
125
+ displayName: z.ZodOptional<z.ZodString>;
126
+ category: z.ZodOptional<z.ZodEnum<{
127
+ security: "security";
128
+ network: "network";
129
+ compute: "compute";
130
+ database: "database";
131
+ storage: "storage";
132
+ monitoring: "monitoring";
133
+ dns: "dns";
134
+ identity: "identity";
135
+ bootstrap: "bootstrap";
136
+ events: "events";
137
+ registry: "registry";
138
+ backup: "backup";
139
+ }>>;
140
+ group: z.ZodOptional<z.ZodString>;
141
+ constructPath: z.ZodOptional<z.ZodString>;
142
+ statusReason: z.ZodOptional<z.ZodString>;
143
+ physicalId: z.ZodOptional<z.ZodString>;
144
+ expectedDurationSeconds: z.ZodOptional<z.ZodNumber>;
145
+ }, z.core.$strict>;
146
+ export type DeployResource = z.infer<typeof DeployResourceSchema>;
147
+ /**
148
+ * A single changed CloudFormation property on a resource (1.1). Carries the
149
+ * property PATH and whether that change forces replacement — never the old/new
150
+ * VALUES, which can embed credentials (env vars, connection strings). The path
151
+ * is an identifier and discloses nothing exploitable, so it is not masked.
152
+ */
153
+ export declare const PlanPropertyChangeSchema: z.ZodObject<{
154
+ path: z.ZodString;
155
+ forcesReplacement: z.ZodBoolean;
156
+ }, z.core.$strict>;
157
+ export type PlanPropertyChange = z.infer<typeof PlanPropertyChangeSchema>;
158
+ /**
159
+ * A single planned CloudFormation change. `address` is the construct path /
160
+ * logicalId (Terraform's "address"). The 1.1 fields (`stack`, `replacementMode`,
161
+ * `dataLoss`, `propertyChanges`) are optional, so a 1.0 change still validates.
162
+ */
163
+ export declare const PlanChangeSchema: z.ZodObject<{
164
+ address: z.ZodString;
165
+ resourceType: z.ZodString;
166
+ action: z.ZodEnum<{
167
+ replace: "replace";
168
+ create: "create";
169
+ update: "update";
170
+ delete: "delete";
171
+ read: "read";
172
+ "no-op": "no-op";
173
+ }>;
174
+ stack: z.ZodOptional<z.ZodString>;
175
+ replacementMode: z.ZodOptional<z.ZodEnum<{
176
+ will: "will";
177
+ may: "may";
178
+ conditional: "conditional";
179
+ none: "none";
180
+ }>>;
181
+ dataLoss: z.ZodOptional<z.ZodBoolean>;
182
+ propertyChanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
183
+ path: z.ZodString;
184
+ forcesReplacement: z.ZodBoolean;
185
+ }, z.core.$strict>>>;
186
+ }, z.core.$strict>;
187
+ export type PlanChange = z.infer<typeof PlanChangeSchema>;
188
+ export declare const DeployEventSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
189
+ progressKind: z.ZodLiteral<"step.started">;
190
+ step: z.ZodObject<{
191
+ id: z.ZodString;
192
+ name: z.ZodString;
193
+ }, z.core.$strict>;
194
+ progress: z.ZodOptional<z.ZodObject<{
195
+ index: z.ZodNumber;
196
+ total: z.ZodNumber;
197
+ }, z.core.$strict>>;
198
+ contract: z.ZodEnum<{
199
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
200
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
201
+ }>;
202
+ deploymentId: z.ZodString;
203
+ seq: z.ZodNumber;
204
+ time: z.ZodString;
205
+ }, z.core.$strict>, z.ZodObject<{
206
+ progressKind: z.ZodLiteral<"step.completed">;
207
+ step: z.ZodObject<{
208
+ id: z.ZodString;
209
+ name: z.ZodString;
210
+ }, z.core.$strict>;
211
+ status: z.ZodEnum<{
212
+ error: "error";
213
+ completed: "completed";
214
+ skipped: "skipped";
215
+ cancelled: "cancelled";
216
+ }>;
217
+ progress: z.ZodOptional<z.ZodObject<{
218
+ index: z.ZodNumber;
219
+ total: z.ZodNumber;
220
+ }, z.core.$strict>>;
221
+ errorMessage: z.ZodOptional<z.ZodString>;
222
+ contract: z.ZodEnum<{
223
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
224
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
225
+ }>;
226
+ deploymentId: z.ZodString;
227
+ seq: z.ZodNumber;
228
+ time: z.ZodString;
229
+ }, z.core.$strict>, z.ZodObject<{
230
+ progressKind: z.ZodLiteral<"log">;
231
+ level: z.ZodEnum<{
232
+ info: "info";
233
+ debug: "debug";
234
+ warn: "warn";
235
+ }>;
236
+ message: z.ZodString;
237
+ contract: z.ZodEnum<{
238
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
239
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
240
+ }>;
241
+ deploymentId: z.ZodString;
242
+ seq: z.ZodNumber;
243
+ time: z.ZodString;
244
+ }, z.core.$strict>, z.ZodObject<{
245
+ progressKind: z.ZodLiteral<"output">;
246
+ chunk: z.ZodString;
247
+ contract: z.ZodEnum<{
248
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
249
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
250
+ }>;
251
+ deploymentId: z.ZodString;
252
+ seq: z.ZodNumber;
253
+ time: z.ZodString;
254
+ }, z.core.$strict>, z.ZodObject<{
255
+ progressKind: z.ZodLiteral<"resource">;
256
+ resource: z.ZodObject<{
257
+ logicalId: z.ZodString;
258
+ resourceType: z.ZodString;
259
+ status: z.ZodString;
260
+ displayName: z.ZodOptional<z.ZodString>;
261
+ category: z.ZodOptional<z.ZodEnum<{
262
+ security: "security";
263
+ network: "network";
264
+ compute: "compute";
265
+ database: "database";
266
+ storage: "storage";
267
+ monitoring: "monitoring";
268
+ dns: "dns";
269
+ identity: "identity";
270
+ bootstrap: "bootstrap";
271
+ events: "events";
272
+ registry: "registry";
273
+ backup: "backup";
274
+ }>>;
275
+ group: z.ZodOptional<z.ZodString>;
276
+ constructPath: z.ZodOptional<z.ZodString>;
277
+ statusReason: z.ZodOptional<z.ZodString>;
278
+ physicalId: z.ZodOptional<z.ZodString>;
279
+ expectedDurationSeconds: z.ZodOptional<z.ZodNumber>;
280
+ }, z.core.$strict>;
281
+ scope: z.ZodOptional<z.ZodObject<{
282
+ stack: z.ZodOptional<z.ZodString>;
283
+ operationKey: z.ZodOptional<z.ZodString>;
284
+ region: z.ZodOptional<z.ZodString>;
285
+ }, z.core.$strict>>;
286
+ contract: z.ZodEnum<{
287
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
288
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
289
+ }>;
290
+ deploymentId: z.ZodString;
291
+ seq: z.ZodNumber;
292
+ time: z.ZodString;
293
+ }, z.core.$strict>, z.ZodObject<{
294
+ progressKind: z.ZodLiteral<"phase.parallel">;
295
+ status: z.ZodEnum<{
296
+ started: "started";
297
+ completed: "completed";
298
+ }>;
299
+ stacks: z.ZodArray<z.ZodString>;
300
+ description: z.ZodOptional<z.ZodString>;
301
+ results: z.ZodOptional<z.ZodArray<z.ZodObject<{
302
+ stack: z.ZodString;
303
+ success: z.ZodBoolean;
304
+ error: z.ZodOptional<z.ZodString>;
305
+ }, z.core.$strict>>>;
306
+ contract: z.ZodEnum<{
307
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
308
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
309
+ }>;
310
+ deploymentId: z.ZodString;
311
+ seq: z.ZodNumber;
312
+ time: z.ZodString;
313
+ }, z.core.$strict>, z.ZodObject<{
314
+ progressKind: z.ZodLiteral<"build.started">;
315
+ builder: z.ZodEnum<{
316
+ docker: "docker";
317
+ buildpush: "buildpush";
318
+ opennext: "opennext";
319
+ }>;
320
+ serviceName: z.ZodOptional<z.ZodString>;
321
+ imageTag: z.ZodOptional<z.ZodString>;
322
+ ecrRepositoryUri: z.ZodOptional<z.ZodString>;
323
+ contract: z.ZodEnum<{
324
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
325
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
326
+ }>;
327
+ deploymentId: z.ZodString;
328
+ seq: z.ZodNumber;
329
+ time: z.ZodString;
330
+ }, z.core.$strict>, z.ZodObject<{
331
+ progressKind: z.ZodLiteral<"build.progress">;
332
+ builder: z.ZodEnum<{
333
+ docker: "docker";
334
+ buildpush: "buildpush";
335
+ opennext: "opennext";
336
+ }>;
337
+ message: z.ZodString;
338
+ serviceName: z.ZodOptional<z.ZodString>;
339
+ percentage: z.ZodOptional<z.ZodNumber>;
340
+ layerId: z.ZodOptional<z.ZodString>;
341
+ status: z.ZodOptional<z.ZodString>;
342
+ contract: z.ZodEnum<{
343
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
344
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
345
+ }>;
346
+ deploymentId: z.ZodString;
347
+ seq: z.ZodNumber;
348
+ time: z.ZodString;
349
+ }, z.core.$strict>, z.ZodObject<{
350
+ progressKind: z.ZodLiteral<"build.completed">;
351
+ builder: z.ZodEnum<{
352
+ docker: "docker";
353
+ buildpush: "buildpush";
354
+ opennext: "opennext";
355
+ }>;
356
+ success: z.ZodBoolean;
357
+ serviceName: z.ZodOptional<z.ZodString>;
358
+ imageTag: z.ZodOptional<z.ZodString>;
359
+ imageDigest: z.ZodOptional<z.ZodString>;
360
+ imageUri: z.ZodOptional<z.ZodString>;
361
+ ecrRepositoryArn: z.ZodOptional<z.ZodString>;
362
+ durationMs: z.ZodOptional<z.ZodNumber>;
363
+ error: z.ZodOptional<z.ZodString>;
364
+ contract: z.ZodEnum<{
365
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
366
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
367
+ }>;
368
+ deploymentId: z.ZodString;
369
+ seq: z.ZodNumber;
370
+ time: z.ZodString;
371
+ }, z.core.$strict>, z.ZodObject<{
372
+ progressKind: z.ZodLiteral<"taskdef.registered">;
373
+ serviceName: z.ZodString;
374
+ taskDefinitionArn: z.ZodString;
375
+ previousTaskDefinitionArn: z.ZodString;
376
+ revision: z.ZodNumber;
377
+ family: z.ZodString;
378
+ imageDigest: z.ZodOptional<z.ZodString>;
379
+ contract: z.ZodEnum<{
380
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
381
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
382
+ }>;
383
+ deploymentId: z.ZodString;
384
+ seq: z.ZodNumber;
385
+ time: z.ZodString;
386
+ }, z.core.$strict>, z.ZodObject<{
387
+ progressKind: z.ZodLiteral<"ecs.update">;
388
+ status: z.ZodString;
389
+ service: z.ZodOptional<z.ZodString>;
390
+ contract: z.ZodEnum<{
391
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
392
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
393
+ }>;
394
+ deploymentId: z.ZodString;
395
+ seq: z.ZodNumber;
396
+ time: z.ZodString;
397
+ }, z.core.$strict>, z.ZodObject<{
398
+ progressKind: z.ZodLiteral<"ecs.progress">;
399
+ message: z.ZodString;
400
+ percentage: z.ZodOptional<z.ZodNumber>;
401
+ contract: z.ZodEnum<{
402
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
403
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
404
+ }>;
405
+ deploymentId: z.ZodString;
406
+ seq: z.ZodNumber;
407
+ time: z.ZodString;
408
+ }, z.core.$strict>, z.ZodObject<{
409
+ progressKind: z.ZodLiteral<"ecs.completed">;
410
+ serviceName: z.ZodString;
411
+ serviceArn: z.ZodString;
412
+ success: z.ZodBoolean;
413
+ taskDefinitionArn: z.ZodString;
414
+ durationMs: z.ZodNumber;
415
+ reason: z.ZodOptional<z.ZodString>;
416
+ finalRunningCount: z.ZodOptional<z.ZodNumber>;
417
+ finalDesiredCount: z.ZodOptional<z.ZodNumber>;
418
+ contract: z.ZodEnum<{
419
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
420
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
421
+ }>;
422
+ deploymentId: z.ZodString;
423
+ seq: z.ZodNumber;
424
+ time: z.ZodString;
425
+ }, z.core.$strict>, z.ZodObject<{
426
+ progressKind: z.ZodLiteral<"migrations.started">;
427
+ family: z.ZodString;
428
+ taskDefinitionArn: z.ZodString;
429
+ imageDigest: z.ZodString;
430
+ contract: z.ZodEnum<{
431
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
432
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
433
+ }>;
434
+ deploymentId: z.ZodString;
435
+ seq: z.ZodNumber;
436
+ time: z.ZodString;
437
+ }, z.core.$strict>, z.ZodObject<{
438
+ progressKind: z.ZodLiteral<"migrations.completed">;
439
+ family: z.ZodString;
440
+ taskDefinitionArn: z.ZodString;
441
+ success: z.ZodBoolean;
442
+ durationMs: z.ZodNumber;
443
+ exitCode: z.ZodOptional<z.ZodNumber>;
444
+ reason: z.ZodOptional<z.ZodString>;
445
+ contract: z.ZodEnum<{
446
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
447
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
448
+ }>;
449
+ deploymentId: z.ZodString;
450
+ seq: z.ZodNumber;
451
+ time: z.ZodString;
452
+ }, z.core.$strict>, z.ZodObject<{
453
+ progressKind: z.ZodLiteral<"cdk.bootstrap">;
454
+ status: z.ZodString;
455
+ contract: z.ZodEnum<{
456
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
457
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
458
+ }>;
459
+ deploymentId: z.ZodString;
460
+ seq: z.ZodNumber;
461
+ time: z.ZodString;
462
+ }, z.core.$strict>, z.ZodObject<{
463
+ progressKind: z.ZodLiteral<"cdk.output">;
464
+ outputType: z.ZodEnum<{
465
+ synth: "synth";
466
+ diff: "diff";
467
+ }>;
468
+ output: z.ZodString;
469
+ contract: z.ZodEnum<{
470
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
471
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
472
+ }>;
473
+ deploymentId: z.ZodString;
474
+ seq: z.ZodNumber;
475
+ time: z.ZodString;
476
+ }, z.core.$strict>, z.ZodObject<{
477
+ progressKind: z.ZodLiteral<"detection.completed">;
478
+ detection: z.ZodObject<{
479
+ pattern: z.ZodNullable<z.ZodString>;
480
+ hasDockerfile: z.ZodBoolean;
481
+ hasDifferences: z.ZodBoolean;
482
+ resources: z.ZodObject<{
483
+ hasNetwork: z.ZodBoolean;
484
+ hasCompute: z.ZodBoolean;
485
+ hasDatabase: z.ZodBoolean;
486
+ hasStorage: z.ZodBoolean;
487
+ hasMessaging: z.ZodBoolean;
488
+ hasCdn: z.ZodBoolean;
489
+ }, z.core.$strict>;
490
+ requiredSecrets: z.ZodOptional<z.ZodArray<z.ZodString>>;
491
+ }, z.core.$strict>;
492
+ contract: z.ZodEnum<{
493
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
494
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
495
+ }>;
496
+ deploymentId: z.ZodString;
497
+ seq: z.ZodNumber;
498
+ time: z.ZodString;
499
+ }, z.core.$strict>, z.ZodObject<{
500
+ progressKind: z.ZodLiteral<"detection.phase">;
501
+ phase: z.ZodEnum<{
502
+ synth: "synth";
503
+ detect: "detect";
504
+ hash: "hash";
505
+ validate: "validate";
506
+ }>;
507
+ status: z.ZodEnum<{
508
+ started: "started";
509
+ completed: "completed";
510
+ }>;
511
+ contract: z.ZodEnum<{
512
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
513
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
514
+ }>;
515
+ deploymentId: z.ZodString;
516
+ seq: z.ZodNumber;
517
+ time: z.ZodString;
518
+ }, z.core.$strict>, z.ZodObject<{
519
+ progressKind: z.ZodLiteral<"cascade.started">;
520
+ contract: z.ZodEnum<{
521
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
522
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
523
+ }>;
524
+ deploymentId: z.ZodString;
525
+ seq: z.ZodNumber;
526
+ time: z.ZodString;
527
+ }, z.core.$strict>, z.ZodObject<{
528
+ progressKind: z.ZodLiteral<"cascade.accountsReconciled">;
529
+ hasPlatformAccount: z.ZodBoolean;
530
+ hasMemberAccounts: z.ZodBoolean;
531
+ contract: z.ZodEnum<{
532
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
533
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
534
+ }>;
535
+ deploymentId: z.ZodString;
536
+ seq: z.ZodNumber;
537
+ time: z.ZodString;
538
+ }, z.core.$strict>, z.ZodObject<{
539
+ progressKind: z.ZodLiteral<"cascade.orgChanges">;
540
+ hasOrgChanges: z.ZodBoolean;
541
+ contract: z.ZodEnum<{
542
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
543
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
544
+ }>;
545
+ deploymentId: z.ZodString;
546
+ seq: z.ZodNumber;
547
+ time: z.ZodString;
548
+ }, z.core.$strict>, z.ZodObject<{
549
+ progressKind: z.ZodLiteral<"cascade.missingAccounts">;
550
+ accountNames: z.ZodArray<z.ZodString>;
551
+ contract: z.ZodEnum<{
552
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
553
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
554
+ }>;
555
+ deploymentId: z.ZodString;
556
+ seq: z.ZodNumber;
557
+ time: z.ZodString;
558
+ }, z.core.$strict>, z.ZodObject<{
559
+ progressKind: z.ZodLiteral<"cascade.phase">;
560
+ phase: z.ZodEnum<{
561
+ platform: "platform";
562
+ domains: "domains";
563
+ accounts: "accounts";
564
+ }>;
565
+ status: z.ZodEnum<{
566
+ started: "started";
567
+ completed: "completed";
568
+ }>;
569
+ contract: z.ZodEnum<{
570
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
571
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
572
+ }>;
573
+ deploymentId: z.ZodString;
574
+ seq: z.ZodNumber;
575
+ time: z.ZodString;
576
+ }, z.core.$strict>, z.ZodObject<{
577
+ progressKind: z.ZodLiteral<"cascade.account.started">;
578
+ operationKey: z.ZodString;
579
+ accountId: z.ZodString;
580
+ region: z.ZodString;
581
+ deployType: z.ZodOptional<z.ZodString>;
582
+ contract: z.ZodEnum<{
583
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
584
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
585
+ }>;
586
+ deploymentId: z.ZodString;
587
+ seq: z.ZodNumber;
588
+ time: z.ZodString;
589
+ }, z.core.$strict>, z.ZodObject<{
590
+ progressKind: z.ZodLiteral<"cascade.account.phase">;
591
+ operationKey: z.ZodString;
592
+ phase: z.ZodEnum<{
593
+ bootstrap: "bootstrap";
594
+ synth: "synth";
595
+ deploy: "deploy";
596
+ destroy: "destroy";
597
+ }>;
598
+ region: z.ZodOptional<z.ZodString>;
599
+ contract: z.ZodEnum<{
600
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
601
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
602
+ }>;
603
+ deploymentId: z.ZodString;
604
+ seq: z.ZodNumber;
605
+ time: z.ZodString;
606
+ }, z.core.$strict>, z.ZodObject<{
607
+ progressKind: z.ZodLiteral<"cascade.account.completed">;
608
+ operationKey: z.ZodString;
609
+ success: z.ZodBoolean;
610
+ error: z.ZodOptional<z.ZodString>;
611
+ region: z.ZodOptional<z.ZodString>;
612
+ outputs: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
613
+ skipped: z.ZodOptional<z.ZodBoolean>;
614
+ contract: z.ZodEnum<{
615
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
616
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
617
+ }>;
618
+ deploymentId: z.ZodString;
619
+ seq: z.ZodNumber;
620
+ time: z.ZodString;
621
+ }, z.core.$strict>, z.ZodObject<{
622
+ progressKind: z.ZodLiteral<"cascade.completed">;
623
+ result: z.ZodObject<{
624
+ platformDeployed: z.ZodBoolean;
625
+ platformSkipped: z.ZodBoolean;
626
+ platformFailed: z.ZodBoolean;
627
+ domainsDeployed: z.ZodBoolean;
628
+ accountsDeployed: z.ZodNumber;
629
+ accountsSkipped: z.ZodNumber;
630
+ accountsFailed: z.ZodNumber;
631
+ errors: z.ZodArray<z.ZodObject<{
632
+ accountId: z.ZodString;
633
+ error: z.ZodString;
634
+ }, z.core.$strict>>;
635
+ }, z.core.$strict>;
636
+ contract: z.ZodEnum<{
637
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
638
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
639
+ }>;
640
+ deploymentId: z.ZodString;
641
+ seq: z.ZodNumber;
642
+ time: z.ZodString;
643
+ }, z.core.$strict>, z.ZodObject<{
644
+ progressKind: z.ZodLiteral<"cascade.ledger">;
645
+ ledger: z.ZodObject<{
646
+ members: z.ZodArray<z.ZodObject<{
647
+ accountId: z.ZodString;
648
+ accountName: z.ZodString;
649
+ region: z.ZodString;
650
+ result: z.ZodEnum<{
651
+ failed: "failed";
652
+ succeeded: "succeeded";
653
+ skipped: "skipped";
654
+ }>;
655
+ durationMs: z.ZodNumber;
656
+ error: z.ZodOptional<z.ZodString>;
657
+ }, z.core.$strict>>;
658
+ platform: z.ZodOptional<z.ZodObject<{
659
+ accountId: z.ZodString;
660
+ result: z.ZodEnum<{
661
+ failed: "failed";
662
+ succeeded: "succeeded";
663
+ skipped: "skipped";
664
+ }>;
665
+ durationMs: z.ZodNumber;
666
+ error: z.ZodOptional<z.ZodString>;
667
+ }, z.core.$strict>>;
668
+ domainsDeployed: z.ZodBoolean;
669
+ errors: z.ZodArray<z.ZodObject<{
670
+ accountId: z.ZodString;
671
+ error: z.ZodString;
672
+ }, z.core.$strict>>;
673
+ totalDurationMs: z.ZodNumber;
674
+ }, z.core.$strict>;
675
+ contract: z.ZodEnum<{
676
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
677
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
678
+ }>;
679
+ deploymentId: z.ZodString;
680
+ seq: z.ZodNumber;
681
+ time: z.ZodString;
682
+ }, z.core.$strict>, z.ZodObject<{
683
+ progressKind: z.ZodLiteral<"trail.phase">;
684
+ accountId: z.ZodString;
685
+ accountName: z.ZodString;
686
+ phase: z.ZodEnum<{
687
+ "verify-delivery": "verify-delivery";
688
+ decommission: "decommission";
689
+ }>;
690
+ status: z.ZodEnum<{
691
+ started: "started";
692
+ completed: "completed";
693
+ blocked: "blocked";
694
+ failed: "failed";
695
+ }>;
696
+ detail: z.ZodOptional<z.ZodString>;
697
+ contract: z.ZodEnum<{
698
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
699
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
700
+ }>;
701
+ deploymentId: z.ZodString;
702
+ seq: z.ZodNumber;
703
+ time: z.ZodString;
704
+ }, z.core.$strict>, z.ZodObject<{
705
+ progressKind: z.ZodLiteral<"trail.lifecycle">;
706
+ accountId: z.ZodString;
707
+ to: z.ZodEnum<{
708
+ account: "account";
709
+ draining: "draining";
710
+ org: "org";
711
+ }>;
712
+ from: z.ZodOptional<z.ZodEnum<{
713
+ account: "account";
714
+ draining: "draining";
715
+ org: "org";
716
+ }>>;
717
+ contract: z.ZodEnum<{
718
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
719
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
720
+ }>;
721
+ deploymentId: z.ZodString;
722
+ seq: z.ZodNumber;
723
+ time: z.ZodString;
724
+ }, z.core.$strict>, z.ZodObject<{
725
+ progressKind: z.ZodLiteral<"cleanup.progress">;
726
+ stackName: z.ZodString;
727
+ phase: z.ZodEnum<{
728
+ error: "error";
729
+ complete: "complete";
730
+ "emptying-bucket": "emptying-bucket";
731
+ "deleting-stack": "deleting-stack";
732
+ waiting: "waiting";
733
+ "quarantine-suspected": "quarantine-suspected";
734
+ "retained-buckets": "retained-buckets";
735
+ }>;
736
+ detail: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
737
+ bucketName: z.ZodString;
738
+ accountId: z.ZodOptional<z.ZodString>;
739
+ }, z.core.$strict>, z.ZodObject<{
740
+ retainedBuckets: z.ZodArray<z.ZodString>;
741
+ message: z.ZodString;
742
+ }, z.core.$strict>]>>;
743
+ contract: z.ZodEnum<{
744
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
745
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
746
+ }>;
747
+ deploymentId: z.ZodString;
748
+ seq: z.ZodNumber;
749
+ time: z.ZodString;
750
+ }, z.core.$strict>, z.ZodObject<{
751
+ progressKind: z.ZodLiteral<"auth.ssoUrl">;
752
+ url: z.ZodNullable<z.ZodString>;
753
+ contract: z.ZodEnum<{
754
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
755
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
756
+ }>;
757
+ deploymentId: z.ZodString;
758
+ seq: z.ZodNumber;
759
+ time: z.ZodString;
760
+ }, z.core.$strict>, z.ZodObject<{
761
+ progressKind: z.ZodLiteral<"auth.completed">;
762
+ result: z.ZodNullable<z.ZodObject<{
763
+ accountId: z.ZodString;
764
+ region: z.ZodString;
765
+ profileName: z.ZodOptional<z.ZodString>;
766
+ }, z.core.$strict>>;
767
+ contract: z.ZodEnum<{
768
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
769
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
770
+ }>;
771
+ deploymentId: z.ZodString;
772
+ seq: z.ZodNumber;
773
+ time: z.ZodString;
774
+ }, z.core.$strict>, z.ZodObject<{
775
+ progressKind: z.ZodLiteral<"error">;
776
+ message: z.ZodString;
777
+ name: z.ZodOptional<z.ZodString>;
778
+ contract: z.ZodEnum<{
779
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
780
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
781
+ }>;
782
+ deploymentId: z.ZodString;
783
+ seq: z.ZodNumber;
784
+ time: z.ZodString;
785
+ }, z.core.$strict>, z.ZodObject<{
786
+ progressKind: z.ZodLiteral<"deploy.completed">;
787
+ result: z.ZodEnum<{
788
+ success: "success";
789
+ cancelled: "cancelled";
790
+ failure: "failure";
791
+ "no-changes": "no-changes";
792
+ rejected: "rejected";
793
+ }>;
794
+ ok: z.ZodBoolean;
795
+ errorType: z.ZodOptional<z.ZodString>;
796
+ message: z.ZodString;
797
+ contract: z.ZodEnum<{
798
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
799
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
800
+ }>;
801
+ deploymentId: z.ZodString;
802
+ seq: z.ZodNumber;
803
+ time: z.ZodString;
804
+ }, z.core.$strict>, z.ZodObject<{
805
+ progressKind: z.ZodLiteral<"plan.available">;
806
+ plan: z.ZodObject<{
807
+ summary: z.ZodString;
808
+ changeCount: z.ZodNumber;
809
+ hasDestructiveChanges: z.ZodBoolean;
810
+ changes: z.ZodOptional<z.ZodArray<z.ZodObject<{
811
+ address: z.ZodString;
812
+ resourceType: z.ZodString;
813
+ action: z.ZodEnum<{
814
+ replace: "replace";
815
+ create: "create";
816
+ update: "update";
817
+ delete: "delete";
818
+ read: "read";
819
+ "no-op": "no-op";
820
+ }>;
821
+ stack: z.ZodOptional<z.ZodString>;
822
+ replacementMode: z.ZodOptional<z.ZodEnum<{
823
+ will: "will";
824
+ may: "may";
825
+ conditional: "conditional";
826
+ none: "none";
827
+ }>>;
828
+ dataLoss: z.ZodOptional<z.ZodBoolean>;
829
+ propertyChanges: z.ZodOptional<z.ZodArray<z.ZodObject<{
830
+ path: z.ZodString;
831
+ forcesReplacement: z.ZodBoolean;
832
+ }, z.core.$strict>>>;
833
+ }, z.core.$strict>>>;
834
+ diffRef: z.ZodOptional<z.ZodString>;
835
+ iamBroadening: z.ZodOptional<z.ZodBoolean>;
836
+ securityGroupBroadening: z.ZodOptional<z.ZodBoolean>;
837
+ changeCountsByAction: z.ZodOptional<z.ZodObject<{
838
+ create: z.ZodNumber;
839
+ update: z.ZodNumber;
840
+ replace: z.ZodNumber;
841
+ delete: z.ZodNumber;
842
+ read: z.ZodNumber;
843
+ "no-op": z.ZodNumber;
844
+ }, z.core.$strict>>;
845
+ }, z.core.$strict>;
846
+ contract: z.ZodEnum<{
847
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
848
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
849
+ }>;
850
+ deploymentId: z.ZodString;
851
+ seq: z.ZodNumber;
852
+ time: z.ZodString;
853
+ }, z.core.$strict>, z.ZodObject<{
854
+ progressKind: z.ZodLiteral<"approval.awaiting">;
855
+ approval: z.ZodObject<{
856
+ token: z.ZodString;
857
+ kind: z.ZodEnum<{
858
+ destructive: "destructive";
859
+ cost: "cost";
860
+ policy: "policy";
861
+ }>;
862
+ reason: z.ZodString;
863
+ expiresAt: z.ZodString;
864
+ assemblyDigest: z.ZodOptional<z.ZodString>;
865
+ changeCounts: z.ZodOptional<z.ZodObject<{
866
+ create: z.ZodNumber;
867
+ update: z.ZodNumber;
868
+ replace: z.ZodNumber;
869
+ delete: z.ZodNumber;
870
+ read: z.ZodNumber;
871
+ "no-op": z.ZodNumber;
872
+ }, z.core.$strict>>;
873
+ approvalClass: z.ZodOptional<z.ZodString>;
874
+ requiredApprovers: z.ZodOptional<z.ZodArray<z.ZodString>>;
875
+ }, z.core.$strict>;
876
+ contract: z.ZodEnum<{
877
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
878
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
879
+ }>;
880
+ deploymentId: z.ZodString;
881
+ seq: z.ZodNumber;
882
+ time: z.ZodString;
883
+ }, z.core.$strict>, z.ZodObject<{
884
+ progressKind: z.ZodLiteral<"approval.resolved">;
885
+ approval: z.ZodObject<{
886
+ token: z.ZodString;
887
+ decision: z.ZodEnum<{
888
+ rejected: "rejected";
889
+ approved: "approved";
890
+ expired: "expired";
891
+ superseded: "superseded";
892
+ }>;
893
+ actor: z.ZodOptional<z.ZodString>;
894
+ }, z.core.$strict>;
895
+ contract: z.ZodEnum<{
896
+ "fjall.deploy/1.1": "fjall.deploy/1.1";
897
+ "fjall.deploy/1.0": "fjall.deploy/1.0";
898
+ }>;
899
+ deploymentId: z.ZodString;
900
+ seq: z.ZodNumber;
901
+ time: z.ZodString;
902
+ }, z.core.$strict>], "progressKind">;
903
+ export type DeployEvent = z.infer<typeof DeployEventSchema>;
904
+ /** The discriminant — every variant's `progressKind`. */
905
+ export type ProgressKind = DeployEvent["progressKind"];
906
+ /** Every {@link ProgressKind}, derived from the type-checked presence map. */
907
+ export declare const ALL_PROGRESS_KINDS: ProgressKind[];