@jterrats/smart-deployment 1.3.1 → 1.5.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 (125) hide show
  1. package/README.md +38 -0
  2. package/lib/analysis/metadata-capability-definitions.d.ts +2 -0
  3. package/lib/analysis/metadata-capability-definitions.js +284 -0
  4. package/lib/analysis/metadata-capability-definitions.js.map +1 -0
  5. package/lib/analysis/metadata-capability-registry.d.ts +11 -0
  6. package/lib/analysis/metadata-capability-registry.js +142 -0
  7. package/lib/analysis/metadata-capability-registry.js.map +1 -0
  8. package/lib/analysis/metadata-gap-analysis-service.d.ts +51 -0
  9. package/lib/analysis/metadata-gap-analysis-service.js +277 -0
  10. package/lib/analysis/metadata-gap-analysis-service.js.map +1 -0
  11. package/lib/commands/ci/preset.js +2 -1
  12. package/lib/commands/ci/preset.js.map +1 -1
  13. package/lib/commands/ci-publish.d.ts +6 -2
  14. package/lib/commands/ci-publish.js +23 -8
  15. package/lib/commands/ci-publish.js.map +1 -1
  16. package/lib/commands/metadata/gaps.d.ts +15 -0
  17. package/lib/commands/metadata/gaps.js +84 -0
  18. package/lib/commands/metadata/gaps.js.map +1 -0
  19. package/lib/commands/resume.d.ts +7 -0
  20. package/lib/commands/resume.js +59 -6
  21. package/lib/commands/resume.js.map +1 -1
  22. package/lib/commands/start.d.ts +9 -0
  23. package/lib/commands/start.js +89 -29
  24. package/lib/commands/start.js.map +1 -1
  25. package/lib/commands/status.js +10 -4
  26. package/lib/commands/status.js.map +1 -1
  27. package/lib/commands/validate.d.ts +7 -0
  28. package/lib/commands/validate.js +26 -3
  29. package/lib/commands/validate.js.map +1 -1
  30. package/lib/config/repo-config.d.ts +3 -0
  31. package/lib/config/repo-config.js +12 -0
  32. package/lib/config/repo-config.js.map +1 -1
  33. package/lib/constants/deployment-order.js +1 -0
  34. package/lib/constants/deployment-order.js.map +1 -1
  35. package/lib/deployment/ci-preset-service.d.ts +2 -0
  36. package/lib/deployment/ci-preset-service.js +7 -0
  37. package/lib/deployment/ci-preset-service.js.map +1 -1
  38. package/lib/deployment/commit-scope-service.d.ts +7 -0
  39. package/lib/deployment/commit-scope-service.js +104 -21
  40. package/lib/deployment/commit-scope-service.js.map +1 -1
  41. package/lib/deployment/deployment-runner.d.ts +18 -4
  42. package/lib/deployment/deployment-runner.js +135 -33
  43. package/lib/deployment/deployment-runner.js.map +1 -1
  44. package/lib/deployment/deployment-state-summary.d.ts +7 -1
  45. package/lib/deployment/deployment-state-summary.js +24 -6
  46. package/lib/deployment/deployment-state-summary.js.map +1 -1
  47. package/lib/deployment/deployment-status-service.d.ts +15 -8
  48. package/lib/deployment/deployment-status-service.js +53 -28
  49. package/lib/deployment/deployment-status-service.js.map +1 -1
  50. package/lib/deployment/deployment-validation-service.d.ts +2 -0
  51. package/lib/deployment/deployment-validation-service.js +2 -0
  52. package/lib/deployment/deployment-validation-service.js.map +1 -1
  53. package/lib/deployment/resume-deployment-service.d.ts +24 -4
  54. package/lib/deployment/resume-deployment-service.js +108 -23
  55. package/lib/deployment/resume-deployment-service.js.map +1 -1
  56. package/lib/deployment/sf-cli-integration.d.ts +5 -2
  57. package/lib/deployment/sf-cli-integration.js +26 -14
  58. package/lib/deployment/sf-cli-integration.js.map +1 -1
  59. package/lib/deployment/special-deployment-plan.js +36 -49
  60. package/lib/deployment/special-deployment-plan.js.map +1 -1
  61. package/lib/deployment/start-execution-service.d.ts +11 -1
  62. package/lib/deployment/start-execution-service.js +13 -5
  63. package/lib/deployment/start-execution-service.js.map +1 -1
  64. package/lib/deployment/state-manager.d.ts +22 -0
  65. package/lib/deployment/state-manager.js +40 -5
  66. package/lib/deployment/state-manager.js.map +1 -1
  67. package/lib/presentation/release-report-presenter.d.ts +10 -0
  68. package/lib/presentation/release-report-presenter.js +35 -0
  69. package/lib/presentation/release-report-presenter.js.map +1 -0
  70. package/lib/presentation/validate-command-presenter.js +13 -0
  71. package/lib/presentation/validate-command-presenter.js.map +1 -1
  72. package/lib/reports/deployment-plan-report-service.d.ts +3 -0
  73. package/lib/reports/deployment-plan-report-service.js +9 -0
  74. package/lib/reports/deployment-plan-report-service.js.map +1 -1
  75. package/lib/reports/release-report-builder.d.ts +6 -0
  76. package/lib/reports/release-report-builder.js +115 -0
  77. package/lib/reports/release-report-builder.js.map +1 -0
  78. package/lib/reports/release-report-command-adapter.d.ts +14 -0
  79. package/lib/reports/release-report-command-adapter.js +28 -0
  80. package/lib/reports/release-report-command-adapter.js.map +1 -0
  81. package/lib/reports/release-report-facts-factory.d.ts +14 -0
  82. package/lib/reports/release-report-facts-factory.js +140 -0
  83. package/lib/reports/release-report-facts-factory.js.map +1 -0
  84. package/lib/reports/release-report-sanitizer.d.ts +5 -0
  85. package/lib/reports/release-report-sanitizer.js +120 -0
  86. package/lib/reports/release-report-sanitizer.js.map +1 -0
  87. package/lib/reports/release-report-service.d.ts +43 -0
  88. package/lib/reports/release-report-service.js +80 -0
  89. package/lib/reports/release-report-service.js.map +1 -0
  90. package/lib/reports/release-report-store.d.ts +30 -0
  91. package/lib/reports/release-report-store.js +57 -0
  92. package/lib/reports/release-report-store.js.map +1 -0
  93. package/lib/reports/start-release-report-coordinator.d.ts +15 -0
  94. package/lib/reports/start-release-report-coordinator.js +23 -0
  95. package/lib/reports/start-release-report-coordinator.js.map +1 -0
  96. package/lib/services/metadata-scanner-service.js +12 -2
  97. package/lib/services/metadata-scanner-service.js.map +1 -1
  98. package/lib/services/scanners/additional-metadata-scanner.js +37 -3
  99. package/lib/services/scanners/additional-metadata-scanner.js.map +1 -1
  100. package/lib/services/scanners/automation-ai-metadata-scanner.d.ts +2 -1
  101. package/lib/services/scanners/automation-ai-metadata-scanner.js +48 -0
  102. package/lib/services/scanners/automation-ai-metadata-scanner.js.map +1 -1
  103. package/lib/types/index.d.ts +2 -0
  104. package/lib/types/index.js +2 -0
  105. package/lib/types/index.js.map +1 -1
  106. package/lib/types/manual-checkpoint.d.ts +27 -0
  107. package/lib/types/manual-checkpoint.js +89 -0
  108. package/lib/types/manual-checkpoint.js.map +1 -0
  109. package/lib/types/metadata-capability.d.ts +39 -0
  110. package/lib/types/metadata-capability.js +2 -0
  111. package/lib/types/metadata-capability.js.map +1 -0
  112. package/lib/types/metadata.d.ts +7 -1
  113. package/lib/types/release-report.d.ts +89 -0
  114. package/lib/types/release-report.js +42 -0
  115. package/lib/types/release-report.js.map +1 -0
  116. package/lib/waves/wave-priority-policy.js +2 -25
  117. package/lib/waves/wave-priority-policy.js.map +1 -1
  118. package/messages/metadata.gaps.json +12 -0
  119. package/messages/resume.json +5 -3
  120. package/messages/start.json +2 -0
  121. package/messages/validate.json +3 -1
  122. package/npm-shrinkwrap.json +417 -901
  123. package/oclif.lock +415 -718
  124. package/oclif.manifest.json +103 -12
  125. package/package.json +18 -14
@@ -1,8 +1,9 @@
1
+ import { createDeploymentPlanFingerprint, createSourceFingerprint, validateManualCheckpoints, } from '../types/manual-checkpoint.js';
1
2
  import { TestPlanService } from './test-plan-service.js';
2
3
  import { WaveManifestService } from './wave-manifest-service.js';
3
4
  import { ForceIgnoreStagingService } from './forceignore-staging-service.js';
4
- import { formatDeploymentDiagnostics } from './deployment-error-diagnostics.js';
5
5
  import { buildPersistedWaveGraphContext } from './wave-graph-state.js';
6
+ import { formatDeploymentDiagnostics } from './deployment-error-diagnostics.js';
6
7
  export class DeploymentRunner {
7
8
  testPlanService;
8
9
  waveManifestService;
@@ -13,15 +14,44 @@ export class DeploymentRunner {
13
14
  this.forceIgnoreStagingService = dependencies.forceIgnoreStagingService ?? new ForceIgnoreStagingService();
14
15
  }
15
16
  async execute(params) {
16
- const { deploymentId, targetOrg, sourcePath, orderedWaves, dependencyGraph, componentMap, apiVersion, skipTests, testExecutor, tracker, stateManager, sfCli, aiContext, mode = 'deploy', log, } = params;
17
- await this.forEachSequentially(orderedWaves, async (wave) => {
18
- const destructive = mode === 'destructive';
17
+ const { deploymentId, targetOrg, sourcePath, orderedWaves, dependencyGraph, componentMap, apiVersion, skipTests, destructive, testExecutor, tracker, stateManager, sfCli, aiContext, log, } = params;
18
+ const checkpoints = params.checkpoints ?? [];
19
+ const approvedCheckpointIds = params.approvedCheckpointIds ?? new Set();
20
+ const startExecutionIndex = params.startExecutionIndex ?? 0;
21
+ validateManualCheckpoints(checkpoints, orderedWaves);
22
+ if (startExecutionIndex < 0 || startExecutionIndex > orderedWaves.length) {
23
+ throw new Error(`Invalid deployment start execution index: ${startExecutionIndex}`);
24
+ }
25
+ const planFingerprint = params.planFingerprint ??
26
+ createDeploymentPlanFingerprint({
27
+ waves: orderedWaves,
28
+ checkpoints,
29
+ destructive,
30
+ skipTests,
31
+ apiVersion,
32
+ sourceFingerprint: await createSourceFingerprint(componentMap),
33
+ });
34
+ const completedWaveNumbers = orderedWaves.slice(0, startExecutionIndex).map((wave) => wave.number);
35
+ let persistedDeploymentId = deploymentId;
36
+ for (let executionIndex = startExecutionIndex; executionIndex < orderedWaves.length; executionIndex += 1) {
37
+ const wave = orderedWaves[executionIndex];
38
+ const beforeCheckpoint = this.findCheckpoint(checkpoints, 'before', wave.number, approvedCheckpointIds);
39
+ if (beforeCheckpoint) {
40
+ return this.pauseAtCheckpoint({
41
+ checkpoint: beforeCheckpoint,
42
+ deploymentId: persistedDeploymentId,
43
+ executionIndex,
44
+ completedWaveNumbers,
45
+ params,
46
+ planFingerprint,
47
+ });
48
+ }
19
49
  log(`\n🌊 ${destructive ? 'Deleting' : 'Deploying'} Wave ${wave.number}/${orderedWaves.length} (${wave.components.length} components)...`);
20
50
  const workspace = await this.forceIgnoreStagingService.prepare({
21
51
  projectRoot: sourcePath ?? process.cwd(),
22
52
  });
23
53
  try {
24
- const manifest = destructive
54
+ const destructiveManifest = destructive
25
55
  ? await this.waveManifestService.generateDestructiveManifest({
26
56
  baseDir: workspace.projectRoot,
27
57
  waveNumber: wave.number,
@@ -29,40 +59,41 @@ export class DeploymentRunner {
29
59
  componentMap,
30
60
  apiVersion,
31
61
  })
32
- : {
33
- packagePath: await this.waveManifestService.generateManifest({
34
- baseDir: workspace.projectRoot,
35
- waveNumber: wave.number,
36
- components: wave.components,
37
- componentMap,
38
- apiVersion,
39
- }),
40
- destructiveChangesPath: undefined,
41
- };
42
- const testPlan = destructive
43
- ? { testLevel: 'NoTestRun', tests: [] }
44
- : this.testPlanService.resolveTestPlan(wave, skipTests, testExecutor);
62
+ : undefined;
63
+ const manifestPath = destructiveManifest?.packagePath ??
64
+ (await this.waveManifestService.generateManifest({
65
+ baseDir: workspace.projectRoot,
66
+ waveNumber: wave.number,
67
+ components: wave.components,
68
+ componentMap,
69
+ apiVersion,
70
+ }));
71
+ const destructiveChangesPath = destructiveManifest?.destructiveChangesPath;
72
+ const testPlan = this.testPlanService.resolveTestPlan(wave, destructive || skipTests, testExecutor);
45
73
  tracker.startTracking(deploymentId, wave.number, orderedWaves.length);
46
74
  const result = await sfCli.deploy({
47
- manifestPath: manifest.packagePath,
48
- postDestructiveChangesPath: manifest.destructiveChangesPath,
75
+ manifestPath,
49
76
  targetOrg,
50
77
  workingDirectory: workspace.projectRoot,
51
78
  testLevel: testPlan.testLevel,
52
79
  tests: testPlan.testLevel === 'RunSpecifiedTests' ? testPlan.tests : undefined,
80
+ destructiveChangesPath,
81
+ destructiveChangesTiming: 'post',
53
82
  });
54
83
  tracker.updateProgress(deploymentId, result);
84
+ persistedDeploymentId = result.deploymentId ?? persistedDeploymentId;
55
85
  if (!result.success) {
56
86
  const diagnostics = result.diagnostics ?? [];
57
87
  const formattedDiagnostics = formatDeploymentDiagnostics(diagnostics);
58
88
  const failureMessage = formattedDiagnostics ? `${result.output}\n\n${formattedDiagnostics}` : result.output;
59
89
  await stateManager.saveState({
60
- deploymentId,
90
+ deploymentId: persistedDeploymentId,
61
91
  targetOrg,
62
92
  timestamp: new Date().toISOString(),
63
93
  totalWaves: orderedWaves.length,
64
- completedWaves: Array.from({ length: Math.max(0, wave.number - 1) }, (_, i) => i + 1),
94
+ completedWaves: [...completedWaveNumbers],
65
95
  currentWave: wave.number,
96
+ status: 'failed',
66
97
  failedWave: {
67
98
  waveNumber: wave.number,
68
99
  error: failureMessage,
@@ -73,37 +104,115 @@ export class DeploymentRunner {
73
104
  testsRun: result.testsRun,
74
105
  testFailures: result.testFailures,
75
106
  testLevel: testPlan.testLevel,
107
+ destructive,
76
108
  diagnostics,
77
109
  waveGraphContext: buildPersistedWaveGraphContext(orderedWaves, dependencyGraph),
78
110
  ...this.buildAIMetadata(aiContext),
79
111
  },
112
+ approvedCheckpointIds: [...approvedCheckpointIds],
113
+ execution: this.buildExecutionState(params, planFingerprint, executionIndex),
80
114
  });
81
115
  throw new Error(`Wave ${wave.number} failed: ${failureMessage}`);
82
116
  }
83
117
  await stateManager.saveState({
84
- deploymentId,
118
+ deploymentId: persistedDeploymentId,
85
119
  targetOrg,
86
120
  timestamp: new Date().toISOString(),
87
121
  totalWaves: orderedWaves.length,
88
- completedWaves: Array.from({ length: wave.number }, (_, i) => i + 1),
122
+ completedWaves: [...completedWaveNumbers, wave.number],
89
123
  currentWave: wave.number,
124
+ status: 'running',
90
125
  metadata: {
91
126
  lastKnownStatus: result.status,
92
127
  testsRun: result.testsRun,
93
128
  testFailures: result.testFailures,
94
129
  testLevel: testPlan.testLevel,
130
+ destructive,
95
131
  waveGraphContext: buildPersistedWaveGraphContext(orderedWaves, dependencyGraph),
96
132
  ...this.buildAIMetadata(aiContext),
97
133
  },
134
+ approvedCheckpointIds: [...approvedCheckpointIds],
135
+ execution: this.buildExecutionState(params, planFingerprint, executionIndex + 1),
98
136
  });
99
137
  log(`✅ Wave ${wave.number} ${destructive ? 'deleted' : 'deployed'} successfully`);
100
138
  }
101
139
  finally {
102
140
  await workspace.cleanup();
103
141
  }
104
- });
142
+ completedWaveNumbers.push(wave.number);
143
+ const afterCheckpoint = this.findCheckpoint(checkpoints, 'after', wave.number, approvedCheckpointIds);
144
+ if (afterCheckpoint) {
145
+ return this.pauseAtCheckpoint({
146
+ checkpoint: afterCheckpoint,
147
+ deploymentId: persistedDeploymentId,
148
+ executionIndex: executionIndex + 1,
149
+ completedWaveNumbers,
150
+ params,
151
+ planFingerprint,
152
+ });
153
+ }
154
+ }
105
155
  await stateManager.clearState();
106
- log(`\n✅ All waves ${mode === 'destructive' ? 'deleted' : 'deployed'} successfully!`);
156
+ log(`\n✅ All waves ${params.destructive ? 'deleted' : 'deployed'} successfully!`);
157
+ return { kind: 'completed' };
158
+ }
159
+ findCheckpoint(checkpoints, phase, waveNumber, approvedCheckpointIds) {
160
+ return checkpoints.find((checkpoint) => checkpoint.phase === phase && checkpoint.waveNumber === waveNumber && !approvedCheckpointIds.has(checkpoint.id));
161
+ }
162
+ async pauseAtCheckpoint(options) {
163
+ const reachedAt = new Date().toISOString();
164
+ const reachedCheckpoint = {
165
+ ...options.checkpoint,
166
+ deploymentId: options.deploymentId,
167
+ executionIndex: options.executionIndex,
168
+ totalExecutionWaves: options.params.orderedWaves.length,
169
+ reachedAt,
170
+ planFingerprint: options.planFingerprint,
171
+ };
172
+ const nextWave = options.params.orderedWaves[options.executionIndex];
173
+ await options.params.stateManager.saveState({
174
+ deploymentId: options.deploymentId,
175
+ targetOrg: options.params.targetOrg,
176
+ timestamp: reachedAt,
177
+ totalWaves: options.params.orderedWaves.length,
178
+ completedWaves: [...options.completedWaveNumbers],
179
+ currentWave: nextWave?.number ?? options.checkpoint.waveNumber,
180
+ status: 'paused',
181
+ pausedCheckpoint: reachedCheckpoint,
182
+ approvedCheckpointIds: [...(options.params.approvedCheckpointIds ?? new Set())],
183
+ execution: {
184
+ sourcePath: options.params.sourcePath ?? process.cwd(),
185
+ orderedWaveNumbers: options.params.orderedWaves.map((wave) => wave.number),
186
+ nextExecutionIndex: options.executionIndex,
187
+ destructive: options.params.destructive,
188
+ skipTests: options.params.skipTests,
189
+ apiVersion: options.params.apiVersion,
190
+ planFingerprint: options.planFingerprint,
191
+ checkpoints: options.params.checkpoints ?? [],
192
+ contextOptions: options.params.contextOptions,
193
+ },
194
+ metadata: {
195
+ lastKnownStatus: 'Paused',
196
+ destructive: options.params.destructive,
197
+ waveGraphContext: buildPersistedWaveGraphContext(options.params.orderedWaves, options.params.dependencyGraph),
198
+ ...this.buildAIMetadata(options.params.aiContext),
199
+ },
200
+ });
201
+ options.params.log(`⏸ Deployment paused at checkpoint ${options.checkpoint.id}.`);
202
+ return { kind: 'paused', checkpoint: reachedCheckpoint };
203
+ }
204
+ buildExecutionState(params, planFingerprint, nextExecutionIndex) {
205
+ return {
206
+ sourcePath: params.sourcePath ?? process.cwd(),
207
+ orderedWaveNumbers: params.orderedWaves.map((wave) => wave.number),
208
+ nextExecutionIndex,
209
+ destructive: params.destructive,
210
+ skipTests: params.skipTests,
211
+ apiVersion: params.apiVersion,
212
+ planFingerprint,
213
+ checkpoints: params.checkpoints ?? [],
214
+ contextOptions: params.contextOptions,
215
+ };
107
216
  }
108
217
  buildAIMetadata(aiContext) {
109
218
  if (aiContext === undefined) {
@@ -119,12 +228,5 @@ export class DeploymentRunner {
119
228
  aiInferredDependencies: aiContext.inferredDependencies,
120
229
  };
121
230
  }
122
- async forEachSequentially(items, callback) {
123
- let chain = Promise.resolve();
124
- items.forEach((item, index) => {
125
- chain = chain.then(async () => callback(item, index));
126
- });
127
- await chain;
128
- }
129
231
  }
130
232
  //# sourceMappingURL=deployment-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-runner.js","sourceRoot":"","sources":["../../src/deployment/deployment-runner.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAC;AAG7E,OAAO,EAAE,2BAA2B,EAAE,MAAM,mCAAmC,CAAC;AAChF,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AA0BvE,MAAM,OAAO,gBAAgB;IACV,eAAe,CAAkB;IACjC,mBAAmB,CAAsB;IACzC,yBAAyB,CAA4B;IAEtE,YAAmB,eAA6C,EAAE;QAChE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,eAAe,IAAI,IAAI,eAAe,EAAE,CAAC;QAC7E,IAAI,CAAC,mBAAmB,GAAG,YAAY,CAAC,mBAAmB,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACzF,IAAI,CAAC,yBAAyB,GAAG,YAAY,CAAC,yBAAyB,IAAI,IAAI,yBAAyB,EAAE,CAAC;IAC7G,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,MAA8B;QACjD,MAAM,EACJ,YAAY,EACZ,SAAS,EACT,UAAU,EACV,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,UAAU,EACV,SAAS,EACT,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,KAAK,EACL,SAAS,EACT,IAAI,GAAG,QAAQ,EACf,GAAG,GACJ,GAAG,MAAM,CAAC;QAEX,MAAM,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YAC1D,MAAM,WAAW,GAAG,IAAI,KAAK,aAAa,CAAC;YAC3C,GAAG,CACD,QAAQ,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,SAAS,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,KACvF,IAAI,CAAC,UAAU,CAAC,MAClB,iBAAiB,CAClB,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC;gBAC7D,WAAW,EAAE,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE;aACzC,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,WAAW;oBAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC;wBACzD,OAAO,EAAE,SAAS,CAAC,WAAW;wBAC9B,UAAU,EAAE,IAAI,CAAC,MAAM;wBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,YAAY;wBACZ,UAAU;qBACX,CAAC;oBACJ,CAAC,CAAC;wBACE,WAAW,EAAE,MAAM,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC;4BAC3D,OAAO,EAAE,SAAS,CAAC,WAAW;4BAC9B,UAAU,EAAE,IAAI,CAAC,MAAM;4BACvB,UAAU,EAAE,IAAI,CAAC,UAAU;4BAC3B,YAAY;4BACZ,UAAU;yBACX,CAAC;wBACF,sBAAsB,EAAE,SAAS;qBAClC,CAAC;gBACN,MAAM,QAAQ,GAAG,WAAW;oBAC1B,CAAC,CAAC,EAAE,SAAS,EAAE,WAAoB,EAAE,KAAK,EAAE,EAAE,EAAE;oBAChD,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;gBAExE,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBACtE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;oBAChC,YAAY,EAAE,QAAQ,CAAC,WAAW;oBAClC,0BAA0B,EAAE,QAAQ,CAAC,sBAAsB;oBAC3D,SAAS;oBACT,gBAAgB,EAAE,SAAS,CAAC,WAAW;oBACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;oBAC7B,KAAK,EAAE,QAAQ,CAAC,SAAS,KAAK,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;iBAC/E,CAAC,CAAC;gBACH,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAE7C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;oBAC7C,MAAM,oBAAoB,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;oBACtE,MAAM,cAAc,GAAG,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,OAAO,oBAAoB,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBAE5G,MAAM,YAAY,CAAC,SAAS,CAAC;wBAC3B,YAAY;wBACZ,SAAS;wBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBACnC,UAAU,EAAE,YAAY,CAAC,MAAM;wBAC/B,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;wBACrF,WAAW,EAAE,IAAI,CAAC,MAAM;wBACxB,UAAU,EAAE;4BACV,UAAU,EAAE,IAAI,CAAC,MAAM;4BACvB,KAAK,EAAE,cAAc;4BACrB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACpC;wBACD,QAAQ,EAAE;4BACR,eAAe,EAAE,MAAM,CAAC,MAAM;4BAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;4BACzB,YAAY,EAAE,MAAM,CAAC,YAAY;4BACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;4BAC7B,WAAW;4BACX,gBAAgB,EAAE,8BAA8B,CAAC,YAAY,EAAE,eAAe,CAAC;4BAC/E,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;yBACnC;qBACF,CAAC,CAAC;oBACH,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,CAAC,MAAM,YAAY,cAAc,EAAE,CAAC,CAAC;gBACnE,CAAC;gBAED,MAAM,YAAY,CAAC,SAAS,CAAC;oBAC3B,YAAY;oBACZ,SAAS;oBACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,UAAU,EAAE,YAAY,CAAC,MAAM;oBAC/B,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;oBACpE,WAAW,EAAE,IAAI,CAAC,MAAM;oBACxB,QAAQ,EAAE;wBACR,eAAe,EAAE,MAAM,CAAC,MAAM;wBAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,gBAAgB,EAAE,8BAA8B,CAAC,YAAY,EAAE,eAAe,CAAC;wBAC/E,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;qBACnC;iBACF,CAAC,CAAC;gBAEH,GAAG,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,eAAe,CAAC,CAAC;YACpF,CAAC;oBAAS,CAAC;gBACT,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,YAAY,CAAC,UAAU,EAAE,CAAC;QAChC,GAAG,CAAC,iBAAiB,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,gBAAgB,CAAC,CAAC;IACxF,CAAC;IAEO,eAAe,CAAC,SAA+B;QACrD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,UAAU,EAAE,SAAS,CAAC,QAAQ;YAC9B,OAAO,EAAE,SAAS,CAAC,KAAK;YACxB,UAAU,EAAE,SAAS,CAAC,QAAQ;YAC9B,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,cAAc,EAAE,SAAS,CAAC,YAAY;YACtC,mBAAmB,EAAE,SAAS,CAAC,iBAAiB;YAChD,sBAAsB,EAAE,SAAS,CAAC,oBAAoB;SACvD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,KAAmB,EACnB,QAAmD;QAEnD,IAAI,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"deployment-runner.js","sourceRoot":"","sources":["../../src/deployment/deployment-runner.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export type CycleRemediationStatusSummary = {
11
11
  export type DeploymentStatusSummary = {
12
12
  deploymentId: string;
13
13
  targetOrg: string;
14
- status: 'Not Started' | 'In Progress' | 'Failed' | 'Completed';
14
+ status: 'Not Started' | 'In Progress' | 'Paused' | 'Failed' | 'Completed';
15
15
  currentWave: number;
16
16
  totalWaves: number;
17
17
  completedWaves: number[];
@@ -22,6 +22,12 @@ export type DeploymentStatusSummary = {
22
22
  lastUpdated: string;
23
23
  failedWaveNumber?: number;
24
24
  failureReason?: string;
25
+ pausedCheckpoint?: {
26
+ id: string;
27
+ phase: 'before' | 'after';
28
+ waveNumber: number;
29
+ message?: string;
30
+ };
25
31
  cycleRemediation?: CycleRemediationStatusSummary;
26
32
  ai?: {
27
33
  provider?: string;
@@ -18,7 +18,7 @@ function normalizeCompletedWaves(state) {
18
18
  const rawCompleted = [...new Set(state.completedWaves)]
19
19
  .filter((wave) => Number.isInteger(wave) && wave > 0 && wave <= state.totalWaves)
20
20
  .sort((a, b) => a - b);
21
- if (!state.failedWave) {
21
+ if (!state.failedWave || state.execution !== undefined) {
22
22
  return rawCompleted;
23
23
  }
24
24
  const inferredCompleted = Array.from({ length: Math.max(0, state.failedWave.waveNumber - 1) }, (_, index) => index + 1);
@@ -29,6 +29,9 @@ function inferCurrentWave(state, completedWaves) {
29
29
  if (state.failedWave) {
30
30
  return state.failedWave.waveNumber;
31
31
  }
32
+ if (state.pausedCheckpoint) {
33
+ return state.currentWave ?? state.pausedCheckpoint.waveNumber;
34
+ }
32
35
  if (state.currentWave && state.currentWave > 0) {
33
36
  return state.currentWave;
34
37
  }
@@ -110,17 +113,18 @@ export function summarizeDeploymentState(state, nowTimestamp = Date.now()) {
110
113
  const metadata = state.metadata ?? {};
111
114
  const completedWaves = normalizeCompletedWaves(state);
112
115
  const currentWave = inferCurrentWave(state, completedWaves);
113
- const canResume = state.failedWave !== undefined;
116
+ const canResume = state.failedWave !== undefined || state.pausedCheckpoint !== undefined;
114
117
  let status = 'In Progress';
115
- if (canResume) {
118
+ if (state.failedWave !== undefined) {
116
119
  status = 'Failed';
117
120
  }
121
+ else if (state.pausedCheckpoint !== undefined) {
122
+ status = 'Paused';
123
+ }
118
124
  else if (state.totalWaves > 0 && completedWaves.length >= state.totalWaves) {
119
125
  status = 'Completed';
120
126
  }
121
- const remainingWaves = canResume
122
- ? Math.max(0, state.totalWaves - currentWave + 1)
123
- : Math.max(0, state.totalWaves - completedWaves.length);
127
+ const remainingWaves = Math.max(0, state.totalWaves - completedWaves.length);
124
128
  const etaSeconds = calculateEtaSeconds(metadata, state, remainingWaves, completedWaves, nowTimestamp);
125
129
  const testStatus = buildTestStatus(metadata);
126
130
  const cycleRemediation = describeCycleRemediationStatus(state);
@@ -140,6 +144,14 @@ export function summarizeDeploymentState(state, nowTimestamp = Date.now()) {
140
144
  lastUpdated: state.failedWave?.timestamp ?? state.timestamp,
141
145
  failedWaveNumber: state.failedWave?.waveNumber,
142
146
  failureReason: state.failedWave?.error,
147
+ pausedCheckpoint: state.pausedCheckpoint === undefined
148
+ ? undefined
149
+ : {
150
+ id: state.pausedCheckpoint.id,
151
+ phase: state.pausedCheckpoint.phase,
152
+ waveNumber: state.pausedCheckpoint.waveNumber,
153
+ message: state.pausedCheckpoint.message,
154
+ },
143
155
  cycleRemediation,
144
156
  ai: hasAIContext ? ai : undefined,
145
157
  };
@@ -180,6 +192,12 @@ export function formatDeploymentStatus(summary) {
180
192
  if (summary.failedWaveNumber !== undefined && summary.failureReason) {
181
193
  lines.push(`Failure: Wave ${summary.failedWaveNumber} - ${summary.failureReason}`);
182
194
  }
195
+ if (summary.pausedCheckpoint) {
196
+ lines.push(`Checkpoint: ${summary.pausedCheckpoint.id} (${summary.pausedCheckpoint.phase} wave ${summary.pausedCheckpoint.waveNumber})`);
197
+ if (summary.pausedCheckpoint.message) {
198
+ lines.push(`Manual Action: ${summary.pausedCheckpoint.message}`);
199
+ }
200
+ }
183
201
  if (summary.cycleRemediation !== undefined) {
184
202
  lines.push(`Cycle Remediation: ${summary.cycleRemediation.statusText}`);
185
203
  lines.push(`Remediation Cycle: ${summary.cycleRemediation.cycleId}`);
@@ -1 +1 @@
1
- {"version":3,"file":"deployment-state-summary.js","sourceRoot":"","sources":["../../src/deployment/deployment-state-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deployment-state-summary.js","sourceRoot":"","sources":["../../src/deployment/deployment-state-summary.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { StateManager } from './state-manager.js';
4
4
  import { SfCliIntegration } from './sf-cli-integration.js';
5
5
  export type DeploymentStatusSummary = {
6
6
  hasState: boolean;
7
- status: 'not-started' | 'in-progress' | 'failed' | 'completed';
7
+ status: 'not-started' | 'in-progress' | 'paused' | 'failed' | 'completed';
8
8
  deploymentId?: string;
9
9
  targetOrg?: string;
10
10
  currentWave: number;
@@ -17,6 +17,12 @@ export type DeploymentStatusSummary = {
17
17
  testStatus: 'unknown' | 'pending' | 'not-run';
18
18
  testStatusText: string;
19
19
  cycleRemediation?: CycleRemediationStatusSummary;
20
+ pausedCheckpoint?: {
21
+ id: string;
22
+ phase: 'before' | 'after';
23
+ waveNumber: number;
24
+ message?: string;
25
+ };
20
26
  waveGraph?: WaveGraph;
21
27
  timestamp?: string;
22
28
  stateFilePath: string;
@@ -30,18 +36,19 @@ export type ResumeSummary = {
30
36
  targetOrg?: string;
31
37
  deploymentId?: string;
32
38
  };
39
+ export type DeploymentStatusOptions = {
40
+ refreshRemote?: boolean;
41
+ targetOrg?: string;
42
+ };
33
43
  export declare class DeploymentStatusService {
34
44
  private readonly stateManager;
35
45
  private readonly sfCli;
36
- constructor(stateManager?: StateManager, sfCli?: Pick<SfCliIntegration, 'checkDeploymentStatus'>);
37
- getStatus(options?: {
38
- targetOrg?: string;
39
- }): Promise<DeploymentStatusSummary>;
46
+ constructor(stateManager?: StateManager, sfCli?: SfCliIntegration);
47
+ getStatus(options?: DeploymentStatusOptions): Promise<DeploymentStatusSummary>;
40
48
  getResumeSummary(): Promise<ResumeSummary>;
41
49
  formatStatus(summary: DeploymentStatusSummary): string;
42
- private refreshRemoteState;
43
- private applyRemoteResult;
44
- private isFailedRemoteStatus;
50
+ private refreshRemoteStatus;
51
+ private applyRemoteStatus;
45
52
  private expandRemainingWaves;
46
53
  private normalizeStatus;
47
54
  private normalizeTestStatus;
@@ -12,8 +12,7 @@ export class DeploymentStatusService {
12
12
  this.sfCli = sfCli;
13
13
  }
14
14
  async getStatus(options = {}) {
15
- const loadedState = await this.stateManager.loadState();
16
- const state = loadedState && options.targetOrg ? await this.refreshRemoteState(loadedState, options.targetOrg) : loadedState;
15
+ let state = await this.stateManager.loadState();
17
16
  if (!state) {
18
17
  return {
19
18
  hasState: false,
@@ -28,6 +27,9 @@ export class DeploymentStatusService {
28
27
  stateFilePath: this.stateManager.getStateFilePath(),
29
28
  };
30
29
  }
30
+ if (options.refreshRemote && state.pausedCheckpoint === undefined) {
31
+ state = await this.refreshRemoteStatus(state, options.targetOrg);
32
+ }
31
33
  const summary = summarizeDeploymentState(state);
32
34
  logger.info('Deployment status loaded', {
33
35
  deploymentId: summary.deploymentId,
@@ -43,13 +45,15 @@ export class DeploymentStatusService {
43
45
  currentWave: summary.currentWave,
44
46
  totalWaves: summary.totalWaves,
45
47
  completedWaves: summary.completedWaves,
46
- remainingWaves: this.expandRemainingWaves(summary.currentWave, summary.remainingWaves, summary.totalWaves),
48
+ remainingWaves: state.execution?.orderedWaveNumbers.slice(state.execution.nextExecutionIndex) ??
49
+ this.expandRemainingWaves(summary.currentWave, summary.remainingWaves, summary.totalWaves),
47
50
  failedWaveNumber: summary.failedWaveNumber,
48
51
  failedWaveError: summary.failureReason,
49
52
  resumable: summary.canResume,
50
53
  testStatus: this.normalizeTestStatus(summary.testStatus),
51
54
  testStatusText: summary.testStatus,
52
55
  cycleRemediation: summary.cycleRemediation,
56
+ pausedCheckpoint: summary.pausedCheckpoint,
53
57
  waveGraph: buildWaveGraphFromState(state),
54
58
  timestamp: summary.lastUpdated,
55
59
  stateFilePath: this.stateManager.getStateFilePath(),
@@ -103,57 +107,74 @@ export class DeploymentStatusService {
103
107
  failedWaveNumber: summary.failedWaveNumber,
104
108
  failureReason: summary.failedWaveError,
105
109
  cycleRemediation: summary.cycleRemediation,
110
+ pausedCheckpoint: summary.pausedCheckpoint,
106
111
  }).join('\n');
107
112
  }
108
- async refreshRemoteState(state, targetOrg) {
109
- const remoteResult = await this.sfCli.checkDeploymentStatus(state.deploymentId, targetOrg);
110
- const updatedState = this.applyRemoteResult(state, targetOrg, remoteResult);
111
- await this.stateManager.saveState(updatedState);
112
- return updatedState;
113
+ async refreshRemoteStatus(state, requestedTargetOrg) {
114
+ const targetOrg = requestedTargetOrg ?? state.targetOrg;
115
+ if (!state.deploymentId || !targetOrg) {
116
+ return state;
117
+ }
118
+ const remoteStatus = await this.sfCli.checkDeploymentStatus(state.deploymentId, targetOrg);
119
+ const refreshed = this.applyRemoteStatus(state, remoteStatus, targetOrg);
120
+ await this.stateManager.saveState(refreshed);
121
+ return refreshed;
113
122
  }
114
- applyRemoteResult(state, targetOrg, result) {
123
+ applyRemoteStatus(state, remoteStatus, targetOrg) {
124
+ const currentWave = state.currentWave ?? state.failedWave?.waveNumber ?? state.completedWaves.at(-1) ?? 1;
125
+ const now = new Date().toISOString();
115
126
  const metadata = {
116
127
  ...(state.metadata ?? {}),
117
- lastKnownStatus: result.status,
118
- remoteStatus: result.status,
119
- remoteStatusCheckedAt: new Date().toISOString(),
120
- remoteComponentSuccesses: result.componentSuccesses,
121
- remoteComponentFailures: result.componentFailures,
122
- remoteTestsRun: result.testsRun,
123
- remoteTestFailures: result.testFailures,
128
+ lastKnownStatus: remoteStatus.status,
129
+ remoteStatus: remoteStatus.status,
130
+ testsRun: remoteStatus.testsRun,
131
+ testFailures: remoteStatus.testFailures,
132
+ remoteTestsRun: remoteStatus.testsRun,
133
+ remoteTestFailures: remoteStatus.testFailures,
134
+ remoteComponentSuccesses: remoteStatus.componentSuccesses,
135
+ remoteComponentFailures: remoteStatus.componentFailures,
136
+ remoteCheckedAt: now,
124
137
  };
125
- if (result.status === 'Succeeded' || result.status === 'Success') {
138
+ if (remoteStatus.success) {
139
+ const completedWaves = Array.from({ length: state.totalWaves }, (_, index) => index + 1);
126
140
  return {
127
141
  ...state,
142
+ deploymentId: remoteStatus.deploymentId ?? state.deploymentId,
128
143
  targetOrg,
129
- completedWaves: Array.from({ length: state.totalWaves }, (_, index) => index + 1),
144
+ timestamp: now,
145
+ completedWaves,
130
146
  currentWave: state.totalWaves,
131
147
  failedWave: undefined,
132
148
  metadata,
133
149
  };
134
150
  }
135
- if (this.isFailedRemoteStatus(result.status)) {
151
+ if (remoteStatus.status === 'InProgress' ||
152
+ remoteStatus.status === 'In Progress' ||
153
+ remoteStatus.status === 'Pending') {
136
154
  return {
137
155
  ...state,
156
+ deploymentId: remoteStatus.deploymentId ?? state.deploymentId,
138
157
  targetOrg,
139
- failedWave: state.failedWave ?? {
140
- waveNumber: state.currentWave ?? 1,
141
- error: result.output,
142
- timestamp: new Date().toISOString(),
143
- },
158
+ timestamp: now,
159
+ currentWave,
160
+ failedWave: undefined,
144
161
  metadata,
145
162
  };
146
163
  }
147
164
  return {
148
165
  ...state,
166
+ deploymentId: remoteStatus.deploymentId ?? state.deploymentId,
149
167
  targetOrg,
150
- failedWave: undefined,
168
+ timestamp: now,
169
+ currentWave,
170
+ failedWave: {
171
+ waveNumber: state.failedWave?.waveNumber ?? currentWave,
172
+ error: remoteStatus.output,
173
+ timestamp: now,
174
+ },
151
175
  metadata,
152
176
  };
153
177
  }
154
- isFailedRemoteStatus(status) {
155
- return ['Failed', 'Canceled', 'Error'].includes(status);
156
- }
157
178
  expandRemainingWaves(currentWave, remainingCount, totalWaves) {
158
179
  return Array.from({ length: remainingCount }, (_, index) => currentWave + index).filter((wave) => wave <= totalWaves);
159
180
  }
@@ -165,6 +186,8 @@ export class DeploymentStatusService {
165
186
  return 'in-progress';
166
187
  case 'Failed':
167
188
  return 'failed';
189
+ case 'Paused':
190
+ return 'paused';
168
191
  default:
169
192
  return 'completed';
170
193
  }
@@ -189,6 +212,8 @@ export class DeploymentStatusService {
189
212
  return 'In Progress';
190
213
  case 'failed':
191
214
  return 'Failed';
215
+ case 'paused':
216
+ return 'Paused';
192
217
  default:
193
218
  return 'Completed';
194
219
  }