@calmo/task-runner 3.4.1 → 3.6.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.
- package/.github/ISSUE_TEMPLATE/bug_report.yml +35 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +25 -0
- package/.github/workflows/ci.yml +1 -1
- package/.github/workflows/codeql.yml +101 -0
- package/.github/workflows/release.yml +2 -2
- package/AGENTS.md +15 -16
- package/CHANGELOG.md +27 -0
- package/README.md +89 -82
- package/coverage/coverage-final.json +4 -4
- package/coverage/index.html +9 -9
- package/coverage/lcov-report/index.html +9 -9
- package/coverage/lcov-report/src/EventBus.ts.html +4 -4
- package/coverage/lcov-report/src/TaskGraphValidationError.ts.html +1 -1
- package/coverage/lcov-report/src/TaskGraphValidator.ts.html +1 -1
- package/coverage/lcov-report/src/TaskRunner.ts.html +1 -1
- package/coverage/lcov-report/src/TaskRunnerBuilder.ts.html +1 -1
- package/coverage/lcov-report/src/TaskRunnerExecutionConfig.ts.html +1 -1
- package/coverage/lcov-report/src/TaskStateManager.ts.html +82 -52
- package/coverage/lcov-report/src/WorkflowExecutor.ts.html +197 -62
- package/coverage/lcov-report/src/contracts/RunnerEvents.ts.html +1 -1
- package/coverage/lcov-report/src/contracts/index.html +1 -1
- package/coverage/lcov-report/src/index.html +12 -12
- package/coverage/lcov-report/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/RetryingExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/StandardExecutionStrategy.ts.html +3 -3
- package/coverage/lcov-report/src/strategies/index.html +1 -1
- package/coverage/lcov.info +202 -163
- package/coverage/src/EventBus.ts.html +4 -4
- package/coverage/src/TaskGraphValidationError.ts.html +1 -1
- package/coverage/src/TaskGraphValidator.ts.html +1 -1
- package/coverage/src/TaskRunner.ts.html +1 -1
- package/coverage/src/TaskRunnerBuilder.ts.html +1 -1
- package/coverage/src/TaskRunnerExecutionConfig.ts.html +1 -1
- package/coverage/src/TaskStateManager.ts.html +82 -52
- package/coverage/src/WorkflowExecutor.ts.html +197 -62
- package/coverage/src/contracts/RunnerEvents.ts.html +1 -1
- package/coverage/src/contracts/index.html +1 -1
- package/coverage/src/index.html +12 -12
- package/coverage/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/RetryingExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/StandardExecutionStrategy.ts.html +3 -3
- package/coverage/src/strategies/index.html +1 -1
- package/dist/TaskStateManager.d.ts +6 -0
- package/dist/TaskStateManager.js +11 -2
- package/dist/TaskStateManager.js.map +1 -1
- package/dist/TaskStep.d.ts +5 -0
- package/dist/WorkflowExecutor.js +49 -8
- package/dist/WorkflowExecutor.js.map +1 -1
- package/openspec/changes/archive/2026-01-18-feat-conditional-execution/proposal.md +35 -0
- package/openspec/changes/archive/2026-01-18-feat-conditional-execution/tasks.md +32 -0
- package/package.json +2 -1
- package/src/TaskStateManager.ts +12 -2
- package/src/TaskStep.ts +6 -0
- package/src/WorkflowExecutor.ts +57 -12
- package/test-report.xml +132 -108
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>64/64</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>31/31</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>7/7</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>64/64</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -206,7 +206,52 @@
|
|
|
206
206
|
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
207
|
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
208
|
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
-
<a name='L144'></a><a href='#L144'>144</a
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
210
255
|
<span class="cline-any cline-neutral"> </span>
|
|
211
256
|
<span class="cline-any cline-neutral"> </span>
|
|
212
257
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -217,7 +262,7 @@
|
|
|
217
262
|
<span class="cline-any cline-neutral"> </span>
|
|
218
263
|
<span class="cline-any cline-neutral"> </span>
|
|
219
264
|
<span class="cline-any cline-neutral"> </span>
|
|
220
|
-
<span class="cline-any cline-yes">
|
|
265
|
+
<span class="cline-any cline-yes">58x</span>
|
|
221
266
|
<span class="cline-any cline-neutral"> </span>
|
|
222
267
|
<span class="cline-any cline-neutral"> </span>
|
|
223
268
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -227,11 +272,11 @@
|
|
|
227
272
|
<span class="cline-any cline-neutral"> </span>
|
|
228
273
|
<span class="cline-any cline-neutral"> </span>
|
|
229
274
|
<span class="cline-any cline-neutral"> </span>
|
|
230
|
-
<span class="cline-any cline-yes">
|
|
231
|
-
<span class="cline-any cline-yes">
|
|
232
|
-
<span class="cline-any cline-yes">
|
|
233
|
-
<span class="cline-any cline-yes">
|
|
234
|
-
<span class="cline-any cline-yes">
|
|
275
|
+
<span class="cline-any cline-yes">58x</span>
|
|
276
|
+
<span class="cline-any cline-yes">58x</span>
|
|
277
|
+
<span class="cline-any cline-yes">58x</span>
|
|
278
|
+
<span class="cline-any cline-yes">58x</span>
|
|
279
|
+
<span class="cline-any cline-yes">58x</span>
|
|
235
280
|
<span class="cline-any cline-neutral"> </span>
|
|
236
281
|
<span class="cline-any cline-neutral"> </span>
|
|
237
282
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -244,108 +289,153 @@
|
|
|
244
289
|
<span class="cline-any cline-neutral"> </span>
|
|
245
290
|
<span class="cline-any cline-neutral"> </span>
|
|
246
291
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
292
|
+
<span class="cline-any cline-yes">58x</span>
|
|
293
|
+
<span class="cline-any cline-yes">58x</span>
|
|
249
294
|
<span class="cline-any cline-neutral"> </span>
|
|
250
295
|
<span class="cline-any cline-neutral"> </span>
|
|
251
|
-
<span class="cline-any cline-yes">
|
|
252
|
-
<span class="cline-any cline-yes">
|
|
296
|
+
<span class="cline-any cline-yes">58x</span>
|
|
297
|
+
<span class="cline-any cline-yes">3x</span>
|
|
253
298
|
<span class="cline-any cline-neutral"> </span>
|
|
254
299
|
<span class="cline-any cline-neutral"> </span>
|
|
255
|
-
<span class="cline-any cline-yes">
|
|
256
|
-
<span class="cline-any cline-yes">
|
|
300
|
+
<span class="cline-any cline-yes">3x</span>
|
|
301
|
+
<span class="cline-any cline-yes">3x</span>
|
|
302
|
+
<span class="cline-any cline-yes">3x</span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-yes">55x</span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-yes">55x</span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-yes">11x</span>
|
|
310
|
+
<span class="cline-any cline-neutral"> </span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-yes">55x</span>
|
|
313
|
+
<span class="cline-any cline-yes">11x</span>
|
|
314
|
+
<span class="cline-any cline-neutral"> </span>
|
|
315
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
|
+
<span class="cline-any cline-yes">55x</span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-yes">55x</span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-yes">55x</span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-neutral"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-neutral"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-yes">102x</span>
|
|
257
329
|
<span class="cline-any cline-yes">2x</span>
|
|
258
330
|
<span class="cline-any cline-neutral"> </span>
|
|
259
331
|
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-yes">
|
|
332
|
+
<span class="cline-any cline-yes">100x</span>
|
|
261
333
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-yes">45x</span>
|
|
263
334
|
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-yes">
|
|
335
|
+
<span class="cline-any cline-yes">100x</span>
|
|
336
|
+
<span class="cline-any cline-yes">11x</span>
|
|
265
337
|
<span class="cline-any cline-neutral"> </span>
|
|
266
338
|
<span class="cline-any cline-neutral"> </span>
|
|
267
|
-
<span class="cline-any cline-yes">
|
|
268
|
-
<span class="cline-any cline-yes">9x</span>
|
|
339
|
+
<span class="cline-any cline-yes">89x</span>
|
|
269
340
|
<span class="cline-any cline-neutral"> </span>
|
|
270
341
|
<span class="cline-any cline-neutral"> </span>
|
|
271
|
-
<span class="cline-any cline-yes">45x</span>
|
|
272
342
|
<span class="cline-any cline-neutral"> </span>
|
|
273
|
-
<span class="cline-any cline-yes">45x</span>
|
|
274
343
|
<span class="cline-any cline-neutral"> </span>
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
344
|
+
<span class="cline-any cline-yes">55x</span>
|
|
276
345
|
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-yes">55x</span>
|
|
347
|
+
<span class="cline-any cline-yes">55x</span>
|
|
348
|
+
<span class="cline-any cline-yes">55x</span>
|
|
277
349
|
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-yes">55x</span>
|
|
351
|
+
<span class="cline-any cline-yes">11x</span>
|
|
278
352
|
<span class="cline-any cline-neutral"> </span>
|
|
279
353
|
<span class="cline-any cline-neutral"> </span>
|
|
280
354
|
<span class="cline-any cline-neutral"> </span>
|
|
281
355
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-yes">79x</span>
|
|
283
|
-
<span class="cline-any cline-yes">1x</span>
|
|
284
356
|
<span class="cline-any cline-neutral"> </span>
|
|
285
357
|
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-yes">78x</span>
|
|
287
358
|
<span class="cline-any cline-neutral"> </span>
|
|
288
359
|
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-yes">78x</span>
|
|
290
|
-
<span class="cline-any cline-yes">9x</span>
|
|
291
360
|
<span class="cline-any cline-neutral"> </span>
|
|
292
361
|
<span class="cline-any cline-neutral"> </span>
|
|
293
|
-
<span class="cline-any cline-yes">69x</span>
|
|
294
362
|
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-yes">273x</span>
|
|
295
364
|
<span class="cline-any cline-neutral"> </span>
|
|
296
365
|
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-yes">273x</span>
|
|
367
|
+
<span class="cline-any cline-yes">129x</span>
|
|
297
368
|
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">45x</span>
|
|
299
369
|
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-yes">45x</span>
|
|
301
|
-
<span class="cline-any cline-yes">45x</span>
|
|
302
|
-
<span class="cline-any cline-yes">45x</span>
|
|
303
370
|
<span class="cline-any cline-neutral"> </span>
|
|
304
|
-
<span class="cline-any cline-yes">
|
|
305
|
-
<span class="cline-any cline-yes">
|
|
371
|
+
<span class="cline-any cline-yes">273x</span>
|
|
372
|
+
<span class="cline-any cline-yes">141x</span>
|
|
306
373
|
<span class="cline-any cline-neutral"> </span>
|
|
307
374
|
<span class="cline-any cline-neutral"> </span>
|
|
308
375
|
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-yes">12x</span>
|
|
309
377
|
<span class="cline-any cline-neutral"> </span>
|
|
310
378
|
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-yes">129x</span>
|
|
311
380
|
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-yes">129x</span>
|
|
382
|
+
<span class="cline-any cline-yes">129x</span>
|
|
383
|
+
<span class="cline-any cline-yes">129x</span>
|
|
384
|
+
<span class="cline-any cline-yes">7x</span>
|
|
385
|
+
<span class="cline-any cline-yes">7x</span>
|
|
312
386
|
<span class="cline-any cline-neutral"> </span>
|
|
387
|
+
<span class="cline-any cline-yes">7x</span>
|
|
388
|
+
<span class="cline-any cline-yes">1x</span>
|
|
313
389
|
<span class="cline-any cline-neutral"> </span>
|
|
314
390
|
<span class="cline-any cline-neutral"> </span>
|
|
315
391
|
<span class="cline-any cline-neutral"> </span>
|
|
392
|
+
<span class="cline-any cline-yes">1x</span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
316
394
|
<span class="cline-any cline-neutral"> </span>
|
|
317
|
-
<span class="cline-any cline-yes">
|
|
395
|
+
<span class="cline-any cline-yes">4x</span>
|
|
396
|
+
<span class="cline-any cline-yes">3x</span>
|
|
318
397
|
<span class="cline-any cline-neutral"> </span>
|
|
319
398
|
<span class="cline-any cline-neutral"> </span>
|
|
320
|
-
<span class="cline-any cline-yes">233x</span>
|
|
321
|
-
<span class="cline-any cline-yes">119x</span>
|
|
322
399
|
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-yes">3x</span>
|
|
401
|
+
<span class="cline-any cline-yes">3x</span>
|
|
323
402
|
<span class="cline-any cline-neutral"> </span>
|
|
324
403
|
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-yes">233x</span>
|
|
326
|
-
<span class="cline-any cline-yes">130x</span>
|
|
327
404
|
<span class="cline-any cline-neutral"> </span>
|
|
405
|
+
<span class="cline-any cline-yes">2x</span>
|
|
328
406
|
<span class="cline-any cline-neutral"> </span>
|
|
329
407
|
<span class="cline-any cline-neutral"> </span>
|
|
330
|
-
<span class="cline-any cline-yes">11x</span>
|
|
331
408
|
<span class="cline-any cline-neutral"> </span>
|
|
332
409
|
<span class="cline-any cline-neutral"> </span>
|
|
333
|
-
<span class="cline-any cline-yes">119x</span>
|
|
334
410
|
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-yes">119x</span>
|
|
336
411
|
<span class="cline-any cline-neutral"> </span>
|
|
337
|
-
<span class="cline-any cline-yes">119x</span>
|
|
338
412
|
<span class="cline-any cline-neutral"> </span>
|
|
413
|
+
<span class="cline-any cline-yes">2x</span>
|
|
414
|
+
<span class="cline-any cline-yes">2x</span>
|
|
415
|
+
<span class="cline-any cline-neutral"> </span>
|
|
416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
417
|
+
<span class="cline-any cline-yes">123x</span>
|
|
418
|
+
<span class="cline-any cline-yes">1x</span>
|
|
419
|
+
<span class="cline-any cline-neutral"> </span>
|
|
420
|
+
<span class="cline-any cline-neutral"> </span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-yes">1x</span>
|
|
339
423
|
<span class="cline-any cline-neutral"> </span>
|
|
340
|
-
<span class="cline-any cline-yes">119x</span>
|
|
341
424
|
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-yes">122x</span>
|
|
342
426
|
<span class="cline-any cline-neutral"> </span>
|
|
343
|
-
<span class="cline-any cline-yes">
|
|
427
|
+
<span class="cline-any cline-yes">122x</span>
|
|
344
428
|
<span class="cline-any cline-neutral"> </span>
|
|
345
|
-
<span class="cline-any cline-yes">119x</span>
|
|
346
429
|
<span class="cline-any cline-neutral"> </span>
|
|
430
|
+
<span class="cline-any cline-yes">122x</span>
|
|
347
431
|
<span class="cline-any cline-neutral"> </span>
|
|
348
|
-
<span class="cline-any cline-
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
433
|
+
<span class="cline-any cline-yes">129x</span>
|
|
434
|
+
<span class="cline-any cline-neutral"> </span>
|
|
435
|
+
<span class="cline-any cline-yes">129x</span>
|
|
436
|
+
<span class="cline-any cline-neutral"> </span>
|
|
437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
438
|
+
<span class="cline-any cline-yes">129x</span>
|
|
349
439
|
<span class="cline-any cline-neutral"> </span>
|
|
350
440
|
<span class="cline-any cline-neutral"> </span>
|
|
351
441
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -417,7 +507,8 @@ export class WorkflowExecutor<TContext> {
|
|
|
417
507
|
|
|
418
508
|
while (
|
|
419
509
|
this.stateManager.hasPendingTasks() ||
|
|
420
|
-
this.stateManager.hasRunningTasks()
|
|
510
|
+
this.stateManager.hasRunningTasks() ||
|
|
511
|
+
executingPromises.size > 0
|
|
421
512
|
) {
|
|
422
513
|
// Safety check: if no tasks are running and we still have pending tasks,
|
|
423
514
|
// it means we are stuck (e.g. cycle or unhandled dependency).
|
|
@@ -475,18 +566,62 @@ export class WorkflowExecutor<TContext> {
|
|
|
475
566
|
|
|
476
567
|
const step = this.readyQueue.shift()!;
|
|
477
568
|
|
|
478
|
-
|
|
569
|
+
const taskPromise = (async () => {
|
|
570
|
+
try {
|
|
571
|
+
if (step.condition) {
|
|
572
|
+
const check = step.condition(this.context);
|
|
573
|
+
const shouldRun = check instanceof Promise ? await check : check;
|
|
574
|
+
|
|
575
|
+
if (signal?.aborted) {
|
|
576
|
+
this.stateManager.markCompleted(step, {
|
|
577
|
+
status: "cancelled",
|
|
578
|
+
message: "Cancelled during condition evaluation.",
|
|
579
|
+
});
|
|
580
|
+
return;
|
|
581
|
+
}
|
|
479
582
|
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
583
|
+
if (!shouldRun) {
|
|
584
|
+
const result: TaskResult = {
|
|
585
|
+
status: "skipped",
|
|
586
|
+
message: "Skipped by condition evaluation.",
|
|
587
|
+
};
|
|
588
|
+
this.stateManager.markSkipped(step, result);
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
} catch (error) {
|
|
593
|
+
const result: TaskResult = {
|
|
594
|
+
status: "failure",
|
|
595
|
+
message:
|
|
596
|
+
error instanceof Error
|
|
597
|
+
? error.message
|
|
598
|
+
: "Condition evaluation failed",
|
|
599
|
+
error: error instanceof Error ? error.message : String(error),
|
|
600
|
+
};
|
|
483
601
|
this.stateManager.markCompleted(step, result);
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
this.
|
|
489
|
-
|
|
602
|
+
return;
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
if (signal?.aborted) {
|
|
606
|
+
this.stateManager.markCompleted(step, {
|
|
607
|
+
status: "cancelled",
|
|
608
|
+
message: "Cancelled before execution started.",
|
|
609
|
+
});
|
|
610
|
+
return;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
this.stateManager.markRunning(step);
|
|
614
|
+
|
|
615
|
+
await this.strategy
|
|
616
|
+
.execute(step, this.context, signal)
|
|
617
|
+
.then((result) => {
|
|
618
|
+
this.stateManager.markCompleted(step, result);
|
|
619
|
+
});
|
|
620
|
+
})().finally(() => {
|
|
621
|
+
executingPromises.delete(taskPromise);
|
|
622
|
+
// When a task finishes, we try to run more
|
|
623
|
+
this.processLoop(executingPromises, signal);
|
|
624
|
+
});
|
|
490
625
|
|
|
491
626
|
executingPromises.add(taskPromise);
|
|
492
627
|
}
|
|
@@ -499,7 +634,7 @@ export class WorkflowExecutor<TContext> {
|
|
|
499
634
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
500
635
|
Code coverage generated by
|
|
501
636
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
502
|
-
at 2026-01-
|
|
637
|
+
at 2026-01-19T00:52:24.654Z
|
|
503
638
|
</div>
|
|
504
639
|
<script src="../prettify.js"></script>
|
|
505
640
|
<script>
|
|
@@ -202,7 +202,7 @@ export type ListenerMap<TContext> = {
|
|
|
202
202
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
203
203
|
Code coverage generated by
|
|
204
204
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
205
|
-
at 2026-01-
|
|
205
|
+
at 2026-01-19T00:52:24.654Z
|
|
206
206
|
</div>
|
|
207
207
|
<script src="../../prettify.js"></script>
|
|
208
208
|
<script>
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
102
102
|
Code coverage generated by
|
|
103
103
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
104
|
-
at 2026-01-
|
|
104
|
+
at 2026-01-19T00:52:24.654Z
|
|
105
105
|
</div>
|
|
106
106
|
<script src="../../prettify.js"></script>
|
|
107
107
|
<script>
|
|
@@ -25,28 +25,28 @@
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
26
|
<span class="strong">100% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>251/251</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">100% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>93/93</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>46/46</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
47
|
<span class="strong">100% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>248/248</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -174,13 +174,13 @@
|
|
|
174
174
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
175
175
|
</td>
|
|
176
176
|
<td data-value="100" class="pct high">100%</td>
|
|
177
|
-
<td data-value="
|
|
177
|
+
<td data-value="47" class="abs high">47/47</td>
|
|
178
178
|
<td data-value="100" class="pct high">100%</td>
|
|
179
179
|
<td data-value="16" class="abs high">16/16</td>
|
|
180
180
|
<td data-value="100" class="pct high">100%</td>
|
|
181
|
-
<td data-value="
|
|
181
|
+
<td data-value="10" class="abs high">10/10</td>
|
|
182
182
|
<td data-value="100" class="pct high">100%</td>
|
|
183
|
-
<td data-value="
|
|
183
|
+
<td data-value="47" class="abs high">47/47</td>
|
|
184
184
|
</tr>
|
|
185
185
|
|
|
186
186
|
<tr>
|
|
@@ -189,13 +189,13 @@
|
|
|
189
189
|
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
190
190
|
</td>
|
|
191
191
|
<td data-value="100" class="pct high">100%</td>
|
|
192
|
-
<td data-value="
|
|
192
|
+
<td data-value="64" class="abs high">64/64</td>
|
|
193
193
|
<td data-value="100" class="pct high">100%</td>
|
|
194
|
-
<td data-value="
|
|
194
|
+
<td data-value="31" class="abs high">31/31</td>
|
|
195
195
|
<td data-value="100" class="pct high">100%</td>
|
|
196
|
-
<td data-value="
|
|
196
|
+
<td data-value="7" class="abs high">7/7</td>
|
|
197
197
|
<td data-value="100" class="pct high">100%</td>
|
|
198
|
-
<td data-value="
|
|
198
|
+
<td data-value="64" class="abs high">64/64</td>
|
|
199
199
|
</tr>
|
|
200
200
|
|
|
201
201
|
</tbody>
|
|
@@ -206,7 +206,7 @@
|
|
|
206
206
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
207
207
|
Code coverage generated by
|
|
208
208
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
209
|
-
at 2026-01-
|
|
209
|
+
at 2026-01-19T00:52:24.654Z
|
|
210
210
|
</div>
|
|
211
211
|
<script src="../prettify.js"></script>
|
|
212
212
|
<script>
|
|
@@ -163,7 +163,7 @@ export class DryRunExecutionStrategy<
|
|
|
163
163
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
164
164
|
Code coverage generated by
|
|
165
165
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
166
|
-
at 2026-01-
|
|
166
|
+
at 2026-01-19T00:52:24.654Z
|
|
167
167
|
</div>
|
|
168
168
|
<script src="../../prettify.js"></script>
|
|
169
169
|
<script>
|
|
@@ -358,7 +358,7 @@ export class RetryingExecutionStrategy<
|
|
|
358
358
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
359
359
|
Code coverage generated by
|
|
360
360
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
361
|
-
at 2026-01-
|
|
361
|
+
at 2026-01-19T00:52:24.654Z
|
|
362
362
|
</div>
|
|
363
363
|
<script src="../../prettify.js"></script>
|
|
364
364
|
<script>
|
|
@@ -113,8 +113,8 @@
|
|
|
113
113
|
<span class="cline-any cline-neutral"> </span>
|
|
114
114
|
<span class="cline-any cline-neutral"> </span>
|
|
115
115
|
<span class="cline-any cline-neutral"> </span>
|
|
116
|
-
<span class="cline-any cline-yes">
|
|
117
|
-
<span class="cline-any cline-yes">
|
|
116
|
+
<span class="cline-any cline-yes">131x</span>
|
|
117
|
+
<span class="cline-any cline-yes">131x</span>
|
|
118
118
|
<span class="cline-any cline-neutral"> </span>
|
|
119
119
|
<span class="cline-any cline-neutral"> </span>
|
|
120
120
|
<span class="cline-any cline-yes">10x</span>
|
|
@@ -175,7 +175,7 @@ export class StandardExecutionStrategy<
|
|
|
175
175
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
176
176
|
Code coverage generated by
|
|
177
177
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
178
|
-
at 2026-01-
|
|
178
|
+
at 2026-01-19T00:52:24.654Z
|
|
179
179
|
</div>
|
|
180
180
|
<script src="../../prettify.js"></script>
|
|
181
181
|
<script>
|
|
@@ -131,7 +131,7 @@
|
|
|
131
131
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
132
132
|
Code coverage generated by
|
|
133
133
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
134
|
-
at 2026-01-
|
|
134
|
+
at 2026-01-19T00:52:24.654Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|