@calmo/task-runner 3.3.0 → 3.4.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/.jules/backlog_maniac.md +3 -0
- package/CHANGELOG.md +10 -0
- package/coverage/coverage-final.json +5 -4
- package/coverage/index.html +7 -7
- package/coverage/lcov-report/index.html +7 -7
- package/coverage/lcov-report/src/EventBus.ts.html +2 -2
- package/coverage/lcov-report/src/TaskGraphValidationError.ts.html +121 -0
- package/coverage/lcov-report/src/TaskGraphValidator.ts.html +15 -15
- package/coverage/lcov-report/src/TaskRunner.ts.html +25 -13
- 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 +1 -1
- package/coverage/lcov-report/src/WorkflowExecutor.ts.html +1 -1
- 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 +19 -4
- package/coverage/lcov-report/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/RetryingExecutionStrategy.ts.html +2 -2
- package/coverage/lcov-report/src/strategies/StandardExecutionStrategy.ts.html +1 -1
- package/coverage/lcov-report/src/strategies/index.html +1 -1
- package/coverage/lcov.info +112 -98
- package/coverage/src/EventBus.ts.html +2 -2
- package/coverage/src/TaskGraphValidationError.ts.html +121 -0
- package/coverage/src/TaskGraphValidator.ts.html +15 -15
- package/coverage/src/TaskRunner.ts.html +25 -13
- package/coverage/src/TaskRunnerBuilder.ts.html +1 -1
- package/coverage/src/TaskRunnerExecutionConfig.ts.html +1 -1
- package/coverage/src/TaskStateManager.ts.html +1 -1
- package/coverage/src/WorkflowExecutor.ts.html +1 -1
- package/coverage/src/contracts/RunnerEvents.ts.html +1 -1
- package/coverage/src/contracts/index.html +1 -1
- package/coverage/src/index.html +19 -4
- package/coverage/src/strategies/DryRunExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/RetryingExecutionStrategy.ts.html +2 -2
- package/coverage/src/strategies/StandardExecutionStrategy.ts.html +1 -1
- package/coverage/src/strategies/index.html +1 -1
- package/dist/TaskGraphValidationError.d.ts +9 -0
- package/dist/TaskGraphValidationError.js +13 -0
- package/dist/TaskGraphValidationError.js.map +1 -0
- package/dist/TaskRunner.js +2 -1
- package/dist/TaskRunner.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/openspec/changes/archive/2026-01-18-add-concurrency-control/tasks.md +9 -0
- package/package.json +1 -1
- package/src/TaskGraphValidationError.ts +12 -0
- package/src/TaskRunner.ts +5 -1
- package/src/index.ts +1 -0
- package/test-report.xml +109 -107
- package/openspec/changes/add-concurrency-control/tasks.md +0 -9
- /package/openspec/changes/{add-concurrency-control → archive/2026-01-18-add-concurrency-control}/proposal.md +0 -0
package/coverage/src/index.html
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
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'>230/230</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -39,14 +39,14 @@
|
|
|
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'>43/43</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'>226/226</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -93,6 +93,21 @@
|
|
|
93
93
|
<td data-value="15" class="abs high">15/15</td>
|
|
94
94
|
</tr>
|
|
95
95
|
|
|
96
|
+
<tr>
|
|
97
|
+
<td class="file high" data-value="TaskGraphValidationError.ts"><a href="TaskGraphValidationError.ts.html">TaskGraphValidationError.ts</a></td>
|
|
98
|
+
<td data-value="100" class="pic high">
|
|
99
|
+
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
|
100
|
+
</td>
|
|
101
|
+
<td data-value="100" class="pct high">100%</td>
|
|
102
|
+
<td data-value="3" class="abs high">3/3</td>
|
|
103
|
+
<td data-value="100" class="pct high">100%</td>
|
|
104
|
+
<td data-value="0" class="abs high">0/0</td>
|
|
105
|
+
<td data-value="100" class="pct high">100%</td>
|
|
106
|
+
<td data-value="1" class="abs high">1/1</td>
|
|
107
|
+
<td data-value="100" class="pct high">100%</td>
|
|
108
|
+
<td data-value="3" class="abs high">3/3</td>
|
|
109
|
+
</tr>
|
|
110
|
+
|
|
96
111
|
<tr>
|
|
97
112
|
<td class="file high" data-value="TaskGraphValidator.ts"><a href="TaskGraphValidator.ts.html">TaskGraphValidator.ts</a></td>
|
|
98
113
|
<td data-value="100" class="pic high">
|
|
@@ -191,7 +206,7 @@
|
|
|
191
206
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
192
207
|
Code coverage generated by
|
|
193
208
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
194
|
-
at 2026-01-18T20:
|
|
209
|
+
at 2026-01-18T20:19:46.875Z
|
|
195
210
|
</div>
|
|
196
211
|
<script src="../prettify.js"></script>
|
|
197
212
|
<script>
|
|
@@ -163,7 +163,7 @@ export class DryRunExecutionStrategy<TContext>
|
|
|
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-18T20:
|
|
166
|
+
at 2026-01-18T20:19:46.875Z
|
|
167
167
|
</div>
|
|
168
168
|
<script src="../../prettify.js"></script>
|
|
169
169
|
<script>
|
|
@@ -161,7 +161,7 @@
|
|
|
161
161
|
<span class="cline-any cline-neutral"> </span>
|
|
162
162
|
<span class="cline-any cline-neutral"> </span>
|
|
163
163
|
<span class="cline-any cline-neutral"> </span>
|
|
164
|
-
<span class="cline-any cline-yes">
|
|
164
|
+
<span class="cline-any cline-yes">67x</span>
|
|
165
165
|
<span class="cline-any cline-neutral"> </span>
|
|
166
166
|
<span class="cline-any cline-neutral"> </span>
|
|
167
167
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -340,7 +340,7 @@ export class RetryingExecutionStrategy<TContext> implements IExecutionStra
|
|
|
340
340
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
341
341
|
Code coverage generated by
|
|
342
342
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
343
|
-
at 2026-01-18T20:
|
|
343
|
+
at 2026-01-18T20:19:46.875Z
|
|
344
344
|
</div>
|
|
345
345
|
<script src="../../prettify.js"></script>
|
|
346
346
|
<script>
|
|
@@ -175,7 +175,7 @@ export class StandardExecutionStrategy<TContext>
|
|
|
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-18T20:
|
|
178
|
+
at 2026-01-18T20:19:46.875Z
|
|
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-18T20:
|
|
134
|
+
at 2026-01-18T20:19:46.875Z
|
|
135
135
|
</div>
|
|
136
136
|
<script src="../../prettify.js"></script>
|
|
137
137
|
<script>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ValidationResult } from "./contracts/ValidationResult.js";
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when a task graph fails validation.
|
|
4
|
+
* Contains the validation result with detailed error information.
|
|
5
|
+
*/
|
|
6
|
+
export declare class TaskGraphValidationError extends Error {
|
|
7
|
+
result: ValidationResult;
|
|
8
|
+
constructor(result: ValidationResult, message: string);
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a task graph fails validation.
|
|
3
|
+
* Contains the validation result with detailed error information.
|
|
4
|
+
*/
|
|
5
|
+
export class TaskGraphValidationError extends Error {
|
|
6
|
+
result;
|
|
7
|
+
constructor(result, message) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.result = result;
|
|
10
|
+
this.name = "TaskGraphValidationError";
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=TaskGraphValidationError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskGraphValidationError.js","sourceRoot":"","sources":["../src/TaskGraphValidationError.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC9B;IAAnB,YAAmB,MAAwB,EAAE,OAAe;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,WAAM,GAAN,MAAM,CAAkB;QAEzC,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF"}
|
package/dist/TaskRunner.js
CHANGED
|
@@ -2,6 +2,7 @@ import { TaskGraphValidator } from "./TaskGraphValidator.js";
|
|
|
2
2
|
import { EventBus } from "./EventBus.js";
|
|
3
3
|
import { WorkflowExecutor } from "./WorkflowExecutor.js";
|
|
4
4
|
import { TaskStateManager } from "./TaskStateManager.js";
|
|
5
|
+
import { TaskGraphValidationError } from "./TaskGraphValidationError.js";
|
|
5
6
|
import { StandardExecutionStrategy } from "./strategies/StandardExecutionStrategy.js";
|
|
6
7
|
import { RetryingExecutionStrategy } from "./strategies/RetryingExecutionStrategy.js";
|
|
7
8
|
import { DryRunExecutionStrategy } from "./strategies/DryRunExecutionStrategy.js";
|
|
@@ -105,7 +106,7 @@ export class TaskRunner {
|
|
|
105
106
|
};
|
|
106
107
|
const validationResult = this.validator.validate(taskGraph);
|
|
107
108
|
if (!validationResult.isValid) {
|
|
108
|
-
throw new
|
|
109
|
+
throw new TaskGraphValidationError(validationResult, this.validator.createErrorMessage(validationResult));
|
|
109
110
|
}
|
|
110
111
|
const stateManager = new TaskStateManager(this.eventBus);
|
|
111
112
|
let strategy = this.executionStrategy;
|
package/dist/TaskRunner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../src/TaskRunner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskRunner.js","sourceRoot":"","sources":["../src/TaskRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { TaskRunner } from "./TaskRunner.js";
|
|
2
2
|
export { TaskRunnerBuilder } from "./TaskRunnerBuilder.js";
|
|
3
3
|
export { TaskStateManager } from "./TaskStateManager.js";
|
|
4
|
+
export { TaskGraphValidationError } from "./TaskGraphValidationError.js";
|
|
4
5
|
export { StandardExecutionStrategy } from "./strategies/StandardExecutionStrategy.js";
|
|
5
6
|
export { RetryingExecutionStrategy } from "./strategies/RetryingExecutionStrategy.js";
|
|
6
7
|
export type { IExecutionStrategy } from "./strategies/IExecutionStrategy.js";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { TaskRunner } from "./TaskRunner.js";
|
|
2
2
|
export { TaskRunnerBuilder } from "./TaskRunnerBuilder.js";
|
|
3
3
|
export { TaskStateManager } from "./TaskStateManager.js";
|
|
4
|
+
export { TaskGraphValidationError } from "./TaskGraphValidationError.js";
|
|
4
5
|
export { StandardExecutionStrategy } from "./strategies/StandardExecutionStrategy.js";
|
|
5
6
|
export { RetryingExecutionStrategy } from "./strategies/RetryingExecutionStrategy.js";
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## Implementation
|
|
2
|
+
- [x] 1.1 Update `TaskRunnerExecutionConfig` to include an optional `concurrency` property.
|
|
3
|
+
- [x] 1.2 Update `WorkflowExecutor` to accept the `concurrency` limit.
|
|
4
|
+
- [x] 1.3 Implement a task queueing mechanism in `WorkflowExecutor` to manage pending tasks.
|
|
5
|
+
- [x] 1.4 Update execution logic to check available concurrency slots before starting a task.
|
|
6
|
+
- [x] 1.5 Ensure task completion triggers the execution of queued tasks.
|
|
7
|
+
- [x] 1.6 Verify that unlimited concurrency (default behavior) is preserved when no limit is set.
|
|
8
|
+
- [x] 1.7 Add unit tests for concurrency limits (e.g., ensure no more than N tasks run at once).
|
|
9
|
+
- [x] 1.8 Add integration tests with mixed dependencies and concurrency limits.
|
package/package.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ValidationResult } from "./contracts/ValidationResult.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Error thrown when a task graph fails validation.
|
|
5
|
+
* Contains the validation result with detailed error information.
|
|
6
|
+
*/
|
|
7
|
+
export class TaskGraphValidationError extends Error {
|
|
8
|
+
constructor(public result: ValidationResult, message: string) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = "TaskGraphValidationError";
|
|
11
|
+
}
|
|
12
|
+
}
|
package/src/TaskRunner.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { EventBus } from "./EventBus.js";
|
|
|
7
7
|
import { WorkflowExecutor } from "./WorkflowExecutor.js";
|
|
8
8
|
import { TaskRunnerExecutionConfig } from "./TaskRunnerExecutionConfig.js";
|
|
9
9
|
import { TaskStateManager } from "./TaskStateManager.js";
|
|
10
|
+
import { TaskGraphValidationError } from "./TaskGraphValidationError.js";
|
|
10
11
|
import { IExecutionStrategy } from "./strategies/IExecutionStrategy.js";
|
|
11
12
|
import { StandardExecutionStrategy } from "./strategies/StandardExecutionStrategy.js";
|
|
12
13
|
import { RetryingExecutionStrategy } from "./strategies/RetryingExecutionStrategy.js";
|
|
@@ -138,7 +139,10 @@ export class TaskRunner<TContext> {
|
|
|
138
139
|
|
|
139
140
|
const validationResult = this.validator.validate(taskGraph);
|
|
140
141
|
if (!validationResult.isValid) {
|
|
141
|
-
throw new
|
|
142
|
+
throw new TaskGraphValidationError(
|
|
143
|
+
validationResult,
|
|
144
|
+
this.validator.createErrorMessage(validationResult)
|
|
145
|
+
);
|
|
142
146
|
}
|
|
143
147
|
|
|
144
148
|
const stateManager = new TaskStateManager(this.eventBus);
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export { TaskRunner } from "./TaskRunner.js";
|
|
2
2
|
export { TaskRunnerBuilder } from "./TaskRunnerBuilder.js";
|
|
3
3
|
export { TaskStateManager } from "./TaskStateManager.js";
|
|
4
|
+
export { TaskGraphValidationError } from "./TaskGraphValidationError.js";
|
|
4
5
|
export { StandardExecutionStrategy } from "./strategies/StandardExecutionStrategy.js";
|
|
5
6
|
export { RetryingExecutionStrategy } from "./strategies/RetryingExecutionStrategy.js";
|
|
6
7
|
export type { IExecutionStrategy } from "./strategies/IExecutionStrategy.js";
|