@decaf-ts/core 0.28.1 → 0.30.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 (60) hide show
  1. package/README.md +15 -7
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/cjs/index.cjs +3 -3
  7. package/lib/cjs/migrations/MigrationService.cjs +32 -4
  8. package/lib/cjs/migrations/MigrationService.cjs.map +1 -1
  9. package/lib/cjs/migrations/SemverMigrationVersioning.cjs +15 -0
  10. package/lib/cjs/migrations/SemverMigrationVersioning.cjs.map +1 -1
  11. package/lib/cjs/migrations/StandardMigrationVersioning.cjs +11 -0
  12. package/lib/cjs/migrations/StandardMigrationVersioning.cjs.map +1 -1
  13. package/lib/cjs/tasks/TaskContext.cjs +3 -0
  14. package/lib/cjs/tasks/TaskContext.cjs.map +1 -1
  15. package/lib/cjs/tasks/TaskEngine.cjs +148 -69
  16. package/lib/cjs/tasks/TaskEngine.cjs.map +1 -1
  17. package/lib/cjs/tasks/builder.cjs +4 -0
  18. package/lib/cjs/tasks/builder.cjs.map +1 -1
  19. package/lib/cjs/tasks/constants.cjs +1 -0
  20. package/lib/cjs/tasks/constants.cjs.map +1 -1
  21. package/lib/cjs/tasks/models/TaskStepSpecModel.cjs +6 -0
  22. package/lib/cjs/tasks/models/TaskStepSpecModel.cjs.map +1 -1
  23. package/lib/esm/index.js +3 -3
  24. package/lib/esm/migrations/MigrationService.js +32 -4
  25. package/lib/esm/migrations/MigrationService.js.map +1 -1
  26. package/lib/esm/migrations/SemverMigrationVersioning.js +15 -0
  27. package/lib/esm/migrations/SemverMigrationVersioning.js.map +1 -1
  28. package/lib/esm/migrations/StandardMigrationVersioning.js +11 -0
  29. package/lib/esm/migrations/StandardMigrationVersioning.js.map +1 -1
  30. package/lib/esm/tasks/TaskContext.js +3 -0
  31. package/lib/esm/tasks/TaskContext.js.map +1 -1
  32. package/lib/esm/tasks/TaskEngine.js +148 -69
  33. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  34. package/lib/esm/tasks/builder.js +4 -0
  35. package/lib/esm/tasks/builder.js.map +1 -1
  36. package/lib/esm/tasks/constants.js +1 -0
  37. package/lib/esm/tasks/constants.js.map +1 -1
  38. package/lib/esm/tasks/models/TaskStepSpecModel.js +6 -0
  39. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
  40. package/lib/types/index.d.cts +3 -3
  41. package/lib/types/index.d.mts +3 -3
  42. package/lib/types/migrations/MigrationService.d.cts +13 -0
  43. package/lib/types/migrations/MigrationService.d.mts +13 -0
  44. package/lib/types/migrations/MigrationVersioning.d.cts +9 -0
  45. package/lib/types/migrations/MigrationVersioning.d.mts +9 -0
  46. package/lib/types/migrations/SemverMigrationVersioning.d.cts +10 -0
  47. package/lib/types/migrations/SemverMigrationVersioning.d.mts +10 -0
  48. package/lib/types/migrations/StandardMigrationVersioning.d.cts +1 -0
  49. package/lib/types/migrations/StandardMigrationVersioning.d.mts +1 -0
  50. package/lib/types/tasks/TaskContext.d.cts +2 -0
  51. package/lib/types/tasks/TaskContext.d.mts +2 -0
  52. package/lib/types/tasks/TaskEngine.d.cts +5 -0
  53. package/lib/types/tasks/TaskEngine.d.mts +5 -0
  54. package/lib/types/tasks/builder.d.cts +1 -0
  55. package/lib/types/tasks/builder.d.mts +1 -0
  56. package/lib/types/tasks/models/TaskStepSpecModel.d.cts +1 -0
  57. package/lib/types/tasks/models/TaskStepSpecModel.d.mts +1 -0
  58. package/lib/types/tasks/types.d.cts +4 -0
  59. package/lib/types/tasks/types.d.mts +4 -0
  60. package/package.json +1 -1
package/lib/cjs/index.cjs CHANGED
@@ -50,21 +50,21 @@ __exportStar(require("./persistence/index.cjs"), exports);
50
50
  * @const VERSION
51
51
  * @memberOf module:core
52
52
  */
53
- exports.VERSION = "0.28.0";
53
+ exports.VERSION = "0.29.0";
54
54
  /**
55
55
  * @description Represents the current commit hash of the module build.
56
56
  * @summary Stores the current git commit hash for the package. The build replaces
57
57
  * the placeholder with the actual commit hash at publish time.
58
58
  * @const COMMIT
59
59
  */
60
- exports.COMMIT = "19de947";
60
+ exports.COMMIT = "53430c1";
61
61
  /**
62
62
  * @description Represents the full version string of the module.
63
63
  * @summary Stores the semver version and commit hash for the package.
64
64
  * The build replaces the placeholder with the actual `<version>-<commit>` value at publish time.
65
65
  * @const FULL_VERSION
66
66
  */
67
- exports.FULL_VERSION = "0.28.0-19de947";
67
+ exports.FULL_VERSION = "0.29.0-53430c1";
68
68
  /**
69
69
  * @description Stores the current package version
70
70
  * @summary A constant representing the version of the core package
@@ -154,14 +154,40 @@ class MigrationService extends services_js_1.ClientBasedService {
154
154
  return p1.length - p2.length;
155
155
  return 0;
156
156
  }
157
+ /**
158
+ * Compare two migrations by their base version. The base version is the
159
+ * portion of the version string stripped of prerelease and build identifiers.
160
+ * If both migrations share the same base, the method returns `0` and the
161
+ * caller falls back to precedence comparison. When the versioning scheme
162
+ * cannot split a version, the full version is used as its own base.
163
+ *
164
+ * @param migration1 The first migration to compare.
165
+ * @param migration2 The second migration to compare.
166
+ * @returns Negative if `migration1` precedes `migration2`, positive if after,
167
+ * or `0` when bases are equal.
168
+ */
169
+ compareByBaseVersion(migration1, migration2) {
170
+ const base1 = this.versioning.base?.(migration1.version) ?? migration1.version;
171
+ const base2 = this.versioning.base?.(migration2.version) ?? migration2.version;
172
+ if (base1 === base2)
173
+ return 0;
174
+ return this.versioning.compare(migration1.version, migration2.version);
175
+ }
157
176
  sort(migrations) {
158
177
  const sorted = [...migrations].sort((migration1, migration2) => {
159
- const semverDelta = this.versioning.compare(migration1.version, migration2.version);
160
- if (semverDelta !== 0)
161
- return semverDelta;
178
+ const baseDelta = this.compareByBaseVersion(migration1, migration2);
179
+ if (baseDelta !== 0)
180
+ return baseDelta;
162
181
  const precedenceDelta = this.compareByPrecedence(migration1, migration2);
163
182
  if (precedenceDelta !== 0)
164
183
  return precedenceDelta;
184
+ // same base version: the versioning's own fine-grained compare stays
185
+ // as the deterministic fallback for undeclared pairs (e.g. consecutive
186
+ // prerelease ids or the legacy lexical strategy); the guard below
187
+ // rejects same-base same-flavour pairs that no resolvable precedence.
188
+ const semverDelta = this.versioning.compare(migration1.version, migration2.version);
189
+ if (semverDelta !== 0)
190
+ return semverDelta;
165
191
  const flavourDelta = migration1.flavour.localeCompare(migration2.flavour);
166
192
  if (flavourDelta !== 0)
167
193
  return flavourDelta;
@@ -172,10 +198,12 @@ class MigrationService extends services_js_1.ClientBasedService {
172
198
  const right = sorted[i + 1];
173
199
  if (!left || !right)
174
200
  continue;
175
- if (left.version !== right.version || left.flavour !== right.flavour)
201
+ if (left.flavour !== right.flavour)
176
202
  continue;
177
203
  if (this.compareByPrecedence(left, right) !== 0)
178
204
  continue;
205
+ if (this.compareByBaseVersion(left, right) !== 0)
206
+ continue;
179
207
  throw new db_decorators_1.InternalError(`Unable to deterministically sort flavour migrations for version ${left.version} and flavour ${left.flavour}: ${left.reference} vs ${right.reference}`);
180
208
  }
181
209
  return sorted;
@@ -1 +1 @@
1
- {"version":3,"file":"migrations/MigrationService.cjs","sourceRoot":"","sources":["migrations/MigrationService.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations/MigrationService.cjs","sourceRoot":"","sources":["migrations/MigrationService.js"],"names":[],"mappings":"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"}
@@ -69,6 +69,21 @@ class SemverMigrationVersioning {
69
69
  compare(a, b) {
70
70
  return semver.compare(a, b);
71
71
  }
72
+ /**
73
+ * Returns the core version (major.minor.patch) of a semver-compliant version.
74
+ * This base is used to rank declared precedence before comparing prerelease
75
+ * identifiers. Versions that are not parsable as semver return `undefined`,
76
+ * causing callers to fall back to identity semantics.
77
+ *
78
+ * @param version The full semver version string.
79
+ * @returns The core version without prerelease/build metadata, or `undefined`.
80
+ */
81
+ base(version) {
82
+ const valid = semver.valid(version);
83
+ if (!valid)
84
+ return undefined;
85
+ return valid.split(/[-+]/)[0];
86
+ }
72
87
  gt(a, b) {
73
88
  return semver.gt(a, b);
74
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrations/SemverMigrationVersioning.cjs","sourceRoot":"","sources":["migrations/SemverMigrationVersioning.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,MAAa,yBAAyB;IAClC,MAAM,CAAC,GAAG;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK;YACL,OAAO,KAAK,CAAC;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,GAAG;QACJ,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,WAAW,CAAC;aAChC,WAAW,EAAE;aACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;aAC5B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,SAAS,QAAQ,IAAI,WAAW,EAAE,CAAC;IAC9C,CAAC;IACD,aAAa,CAAC,KAAK;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,SAAS,CAAC,SAAS,EAAE,cAAc;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,cAAc;YAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAC7B,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3D,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,IAAI,YAAY,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC5D,OAAO,WAAW,CAAC;YACvB,CAAC;QACL,CAAC;QACD,OAAO,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,IAAI,WAAW,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,EAAE,CAAC,CAAC,EAAE,CAAC;QACH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,GAAG,CAAC,CAAC,EAAE,CAAC;QACJ,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;CACJ;AAxCD,8DAwCC;AACD,qDAAqD"}
1
+ {"version":3,"file":"migrations/SemverMigrationVersioning.cjs","sourceRoot":"","sources":["migrations/SemverMigrationVersioning.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AACjC,MAAa,yBAAyB;IAClC,MAAM,CAAC,GAAG;QACN,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,KAAK;YACL,OAAO,KAAK,CAAC;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,GAAG;QACJ,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,WAAW,CAAC;aAChC,WAAW,EAAE;aACb,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;aAC5B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7B,OAAO,SAAS,QAAQ,IAAI,WAAW,EAAE,CAAC;IAC9C,CAAC;IACD,aAAa,CAAC,KAAK;QACf,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,SAAS,CAAC,SAAS,EAAE,cAAc;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,cAAc;YAC9B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;YAC7B,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,WAAW,EAAE,CAAC;YACd,MAAM,YAAY,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC3D,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC5C,IAAI,CAAC,UAAU,IAAI,YAAY,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC5D,OAAO,WAAW,CAAC;YACvB,CAAC;QACL,CAAC;QACD,OAAO,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,IAAI,WAAW,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChC,CAAC;IACD;;;;;;;;OAQG;IACH,IAAI,CAAC,OAAO;QACR,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK;YACN,OAAO,SAAS,CAAC;QACrB,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,EAAE,CAAC,CAAC,EAAE,CAAC;QACH,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,CAAC;IACD,GAAG,CAAC,CAAC,EAAE,CAAC;QACJ,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;CACJ;AAvDD,8DAuDC;AACD,qDAAqD"}
@@ -20,6 +20,17 @@ class StandardMigrationVersioning {
20
20
  compare(a, b) {
21
21
  return a.localeCompare(b);
22
22
  }
23
+ base(version) {
24
+ /**
25
+ * Returns the base version for the legacy strategy, which does not split
26
+ * prerelease identifiers. The full version string is treated as its own
27
+ * base, so identical versions are considered equal.
28
+ *
29
+ * @param version The version string.
30
+ * @returns The same version string as the base.
31
+ */
32
+ return version;
33
+ }
23
34
  gt(a, b) {
24
35
  return this.compare(a, b) > 0;
25
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"migrations/StandardMigrationVersioning.cjs","sourceRoot":"","sources":["migrations/StandardMigrationVersioning.js"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,2BAA2B;IACpC,aAAa,CAAC,KAAK;QACf,OAAO,CAAC,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,SAAS,CAAC,SAAS,EAAE,cAAc;QAC/B,IAAI,cAAc;YACd,SAAS;YACT,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,KAAK,cAAc,CAAC,EAAE,CAAC;YACvE,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,OAAO,SAAS,IAAI,cAAc,IAAI,WAAW,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,EAAE,CAAC,CAAC,EAAE,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,GAAG,CAAC,CAAC,EAAE,CAAC;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ;AArBD,kEAqBC;AACD,uDAAuD"}
1
+ {"version":3,"file":"migrations/StandardMigrationVersioning.cjs","sourceRoot":"","sources":["migrations/StandardMigrationVersioning.js"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,2BAA2B;IACpC,aAAa,CAAC,KAAK;QACf,OAAO,CAAC,CAAC,KAAK,CAAC;IACnB,CAAC;IACD,SAAS,CAAC,SAAS,EAAE,cAAc;QAC/B,IAAI,cAAc;YACd,SAAS;YACT,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,SAAS,KAAK,cAAc,CAAC,EAAE,CAAC;YACvE,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,OAAO,SAAS,IAAI,cAAc,IAAI,WAAW,CAAC;IACtD,CAAC;IACD,OAAO,CAAC,CAAC,EAAE,CAAC;QACR,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,CAAC,OAAO;QACR;;;;;;;WAOG;QACH,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,EAAE,CAAC,CAAC,EAAE,CAAC;QACH,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,GAAG,CAAC,CAAC,EAAE,CAAC;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;CACJ;AAhCD,kEAgCC;AACD,uDAAuD"}
@@ -37,6 +37,9 @@ class TaskContext extends Context_js_1.Context {
37
37
  get heartbeat() {
38
38
  return this.get("heartbeat");
39
39
  }
40
+ get stepWriteLock() {
41
+ return this.get("stepWriteLock");
42
+ }
40
43
  cacheResult(taskId, payload) {
41
44
  const cache = (this.cache.has("resultCache") && this.cache.get("resultCache")) ||
42
45
  {};
@@ -1 +1 @@
1
- {"version":3,"file":"tasks/TaskContext.cjs","sourceRoot":"","sources":["tasks/TaskContext.js"],"names":[],"mappings":";;;AAAA,4DAAsD;AACtD,kEAA4D;AAC5D,iDAA4C;AAC5C,yCAA4C;AAC5C,uEAAiE;AACjE,wEAAkE;AAClE,2DAAwD;AACxD,MAAa,WAAY,SAAQ,oBAAO;IACpC,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,MAAM;QACN,OAAO,KAAK,CAAC,MAAM,CAAC;IACxB,CAAC;IACD,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,IAAI;QACR,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,IAAI;QACJ,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACD,KAAK;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,QAAQ;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IACD,WAAW,CAAC,MAAM,EAAE,OAAO;QACvB,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC1E,EAAE,CAAC;QACP,KAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IACD,WAAW,CAAC,MAAM,EAAE,OAAO;QACvB,MAAM,IAAI,8CAAoB,CAAC;YAC3B,MAAM;YACN,GAAG,OAAO;SACb,CAAC,CAAC;IACP,CAAC;IACD,MAAM,CAAC,MAAM,EAAE,OAAO;QAClB,IAAI,CAAC,WAAW,CAAC,yBAAU,CAAC,QAAQ,EAAE;YAClC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3C,CAAC,CAAC;IACP,CAAC;IACD,KAAK,CAAC,MAAM;QACR,IAAI,CAAC,WAAW,CAAC,yBAAU,CAAC,aAAa,EAAE;YACvC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;SAClC,CAAC,CAAC;IACP,CAAC;IACD,UAAU,CAAC,IAAI,EAAE,MAAM;QACnB,MAAM,WAAW,GAAG,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,yBAAU,CAAC,SAAS,EAAE;YACnC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;YAC/B,WAAW;SACd,CAAC,CAAC;IACP,CAAC;IACD,WAAW,CAAC,KAAK,EAAE,OAAO;QACtB,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO;YAClB,OAAO,SAAS,CAAC;QACrB,IAAI,KAAK,YAAY,kCAAc;YAC/B,OAAO,KAAK,CAAC;QACjB,IAAI,KAAK,YAAY,KAAK;YACtB,OAAO,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC;QACjC,OAAO,IAAI,kCAAc,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC,KAAK,IAAI,6BAA6B,CAAC;YACvD,OAAO;SACV,CAAC,CAAC;IACP,CAAC;IACD,IAAI,WAAW;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IACD,aAAa,CAAC,GAAG,KAAK;QAClB,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,wCAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,wCAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QACvH,OAAO;YACH,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,MAAM,IAAI,6BAAa,CAAC,sFAAsF,CAAC,CAAC;gBACpH,CAAC;gBACD,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;YACD,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC,CAAC;gBACrE,IAAI,CAAC,SAAS,EAAE,CAAC;oBACb,MAAM,IAAI,6BAAa,CAAC,+EAA+E,CAAC,CAAC;gBAC7G,CAAC;gBACD,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YACrC,CAAC;SACJ,CAAC;IACN,CAAC;IACD,YAAY,GAAG;QACX,KAAK,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;CACJ;AA/FD,kCA+FC;AACD,uCAAuC"}
1
+ {"version":3,"file":"tasks/TaskContext.cjs","sourceRoot":"","sources":["tasks/TaskContext.js"],"names":[],"mappings":"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"}
@@ -440,6 +440,42 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
440
440
  : undefined;
441
441
  return !(await this.hasLockConflict(task, stepIndex, ctx));
442
442
  }
443
+ getCompositeStepConcurrencyLimit() {
444
+ const limit = this.config.maxConcurrentCompositeSteps ?? -1;
445
+ if (limit === 0)
446
+ return 1;
447
+ if (limit < 0)
448
+ return Number.POSITIVE_INFINITY;
449
+ return Math.max(1, limit);
450
+ }
451
+ isConcurrentCompositeStep(step) {
452
+ return Boolean(step.allowConcurrent && step.lock);
453
+ }
454
+ createCompositeStepContext(context, stepIndex) {
455
+ return TaskEngine.createTaskContext(context, { step: stepIndex });
456
+ }
457
+ async withStepWriteLock(ctx, fn) {
458
+ const lock = ctx.stepWriteLock;
459
+ await lock.acquire();
460
+ try {
461
+ return await fn();
462
+ }
463
+ finally {
464
+ lock.release();
465
+ }
466
+ }
467
+ recalculateCompositeCurrentStep(steps, results) {
468
+ let next = 0;
469
+ while (next < steps.length) {
470
+ const result = results[next];
471
+ if (!result)
472
+ break;
473
+ if (result.status === constants_js_1.TaskStatus.FAILED && !steps[next]?.canFail)
474
+ break;
475
+ next += 1;
476
+ }
477
+ return next;
478
+ }
443
479
  // -------------------------
444
480
  // Execution
445
481
  // -------------------------
@@ -450,6 +486,7 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
450
486
  let logPipeQueue = Promise.resolve();
451
487
  const taskCtx = new TaskContext_js_1.TaskContext(ctx).accumulate({
452
488
  taskId: task.id,
489
+ stepWriteLock: new transactional_decorators_1.Lock(),
453
490
  logger: new logging_js_1.TaskLogger(log, this.config.streamBufferSize, this.config.maxLoggingBuffer),
454
491
  attempt: task.attempt,
455
492
  resultCache: { "task.attempt": task.attempt },
@@ -671,47 +708,30 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
671
708
  let steps = this.normalizeSteps(task.steps);
672
709
  let idx = task.currentStep ?? 0;
673
710
  const results = this.normalizeStepResults(task.stepResults);
711
+ const maxConcurrentSteps = this.getCompositeStepConcurrencyLimit();
712
+ const canBatchConcurrentSteps = maxConcurrentSteps > 1;
674
713
  const cacheResult = (key, value) => {
675
714
  context.cacheResult(key, value);
676
715
  if (ctx instanceof TaskContext_js_1.TaskContext && ctx !== context) {
677
716
  ctx.cacheResult(key, value);
678
717
  }
679
718
  };
680
- for (let i = 0; i < results.length; i += 1) {
681
- const existing = results[i];
682
- if (existing?.status === constants_js_1.TaskStatus.SUCCEEDED) {
683
- const prevStep = steps[i];
684
- if (!prevStep)
685
- continue;
686
- const cacheKey = `${task.id}:step:${i}`;
687
- cacheResult(prevStep.classification, existing.output);
688
- cacheResult(cacheKey, existing.output);
689
- }
690
- }
691
- while (idx < steps.length) {
692
- context.setStep(idx);
693
- const step = steps[idx];
694
- const handler = this.registry.get(step.classification);
695
- if (!handler)
696
- throw new Error(`No task handler registered for composite step: ${step.classification}`);
697
- const dependencies = this.normalizeDependencies(step.dependsOn);
698
- const dependenciesSatisfied = await this.areDependenciesSatisfied(dependencies, context);
699
- if (!dependenciesSatisfied) {
700
- context.reschedule(new Date(Date.now() + this.config.pollMsIdle), `Waiting dependencies for step ${idx} (${step.classification})`);
701
- }
702
- const lockConflict = await this.hasLockConflict(task, idx, context);
703
- if (lockConflict) {
704
- context.reschedule(new Date(Date.now() + this.config.pollMsIdle), `Waiting lock for step ${idx} (${step.classification})`);
719
+ const refreshFromTask = () => {
720
+ steps = this.normalizeSteps(task.steps);
721
+ for (let i = 0; i < results.length; i += 1) {
722
+ const existing = results[i];
723
+ if (existing?.status === constants_js_1.TaskStatus.SUCCEEDED) {
724
+ const prevStep = steps[i];
725
+ if (!prevStep)
726
+ continue;
727
+ const cacheKey = `${task.id}:step:${i}`;
728
+ cacheResult(prevStep.classification, existing.output);
729
+ cacheResult(cacheKey, existing.output);
730
+ }
705
731
  }
706
- task.currentStep = idx;
707
- const persistedCurrent = await this.tasks.update(task);
708
- Object.assign(task, persistedCurrent);
709
- await context.progress({
710
- currentStep: idx,
711
- totalSteps: steps.length,
712
- });
713
- const stepIndex = idx;
714
- context.cache.put("scheduleCompositeSteps", async (newSteps, ctx) => {
732
+ };
733
+ const scheduleCompositeSteps = (stepIndex, taskStepContext) => {
734
+ taskStepContext.cache.put("scheduleCompositeSteps", async (newSteps, ctx) => {
715
735
  const log = ctx.logger.for("scheduleSteps.afterCurrent");
716
736
  const normalizedNewSteps = this.normalizeSteps(newSteps);
717
737
  if (!normalizedNewSteps.length)
@@ -722,7 +742,7 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
722
742
  task.steps = currentSteps;
723
743
  const persisted = await this.tasks.update(task, context);
724
744
  Object.assign(task, persisted);
725
- steps = this.normalizeSteps(task.steps);
745
+ refreshFromTask();
726
746
  log.verbose(`Inserted ${normalizedNewSteps.length} steps at index ${insertionIndex}`);
727
747
  const updateEvent = await this.persistEvent(context, task.id, constants_js_1.TaskEventType.UPDATE, {
728
748
  status: "update",
@@ -735,7 +755,7 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
735
755
  });
736
756
  this.bus.emit(updateEvent, context);
737
757
  });
738
- context.cache.put("scheduleCompositeStepsAtEnd", async (newSteps, ctx) => {
758
+ taskStepContext.cache.put("scheduleCompositeStepsAtEnd", async (newSteps, ctx) => {
739
759
  const log = ctx.logger.for("scheduleSteps.atEnd");
740
760
  const normalizedNewSteps = this.normalizeSteps(newSteps);
741
761
  if (!normalizedNewSteps.length)
@@ -746,7 +766,7 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
746
766
  task.steps = currentSteps;
747
767
  const persisted = await this.tasks.update(task, context);
748
768
  Object.assign(task, persisted);
749
- steps = this.normalizeSteps(task.steps);
769
+ refreshFromTask();
750
770
  log.verbose(`Appended ${normalizedNewSteps.length} steps at tail (index ${insertionIndex})`);
751
771
  const updateEvent = await this.persistEvent(context, task.id, constants_js_1.TaskEventType.UPDATE, {
752
772
  status: "update",
@@ -759,18 +779,44 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
759
779
  });
760
780
  this.bus.emit(updateEvent, context);
761
781
  });
762
- await context.pipe([
782
+ };
783
+ const runSingleStep = async (stepIndex) => {
784
+ const step = steps[stepIndex];
785
+ const handler = this.registry.get(step.classification);
786
+ if (!handler) {
787
+ throw new Error(`No task handler registered for composite step: ${step.classification}`);
788
+ }
789
+ const taskStepContext = this.createCompositeStepContext(context, stepIndex);
790
+ scheduleCompositeSteps(stepIndex, taskStepContext);
791
+ const dependencies = this.normalizeDependencies(step.dependsOn);
792
+ const dependenciesSatisfied = await this.areDependenciesSatisfied(dependencies, taskStepContext);
793
+ if (!dependenciesSatisfied) {
794
+ taskStepContext.reschedule(new Date(Date.now() + this.config.pollMsIdle), `Waiting dependencies for step ${stepIndex} (${step.classification})`);
795
+ }
796
+ const lockConflict = await this.hasLockConflict(task, stepIndex, taskStepContext);
797
+ if (lockConflict) {
798
+ taskStepContext.reschedule(new Date(Date.now() + this.config.pollMsIdle), `Waiting lock for step ${stepIndex} (${step.classification})`);
799
+ }
800
+ await this.withStepWriteLock(taskStepContext, async () => {
801
+ task.currentStep = stepIndex;
802
+ const persistedCurrent = await this.tasks.update(task, context);
803
+ Object.assign(task, persistedCurrent);
804
+ });
805
+ await taskStepContext.progress({
806
+ currentStep: stepIndex,
807
+ totalSteps: steps.length,
808
+ });
809
+ await taskStepContext.pipe([
763
810
  logging_1.LogLevel.info,
764
- `Composite step ${idx + 1}/${steps.length}: ${step.classification}`,
811
+ `Composite step ${stepIndex + 1}/${steps.length}: ${step.classification}`,
765
812
  ]);
766
813
  const stepMaxAttempts = step.maxAttempts ?? 1;
767
814
  let stepAttempt = 0;
768
815
  let lastStepErr;
769
816
  while (stepAttempt < stepMaxAttempts) {
770
817
  try {
771
- const out = await handler.run(step.input, context);
772
- // Ensure step-tagged logs are flushed before advancing the step pointer.
773
- await context.flush();
818
+ const out = await handler.run(step.input, taskStepContext);
819
+ await taskStepContext.flush();
774
820
  const now = new Date();
775
821
  results[stepIndex] = new TaskStepResultModel_js_1.TaskStepResultModel({
776
822
  status: constants_js_1.TaskStatus.SUCCEEDED,
@@ -782,13 +828,14 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
782
828
  const cacheKey = `${task.id}:step:${stepIndex}`;
783
829
  cacheResult(step.classification, out);
784
830
  cacheResult(cacheKey, out);
785
- idx = stepIndex + 1;
786
- task.stepResults = results;
787
- task.currentStep = idx;
788
- const persisted = await this.tasks.update(task);
789
- Object.assign(task, persisted);
790
- await this.emitProgress(context, task.id, {
791
- currentStep: idx,
831
+ await this.withStepWriteLock(taskStepContext, async () => {
832
+ task.stepResults = results;
833
+ task.currentStep = this.recalculateCompositeCurrentStep(steps, results);
834
+ const persisted = await this.tasks.update(task, context);
835
+ Object.assign(task, persisted);
836
+ });
837
+ await this.emitProgress(taskStepContext, task.id, {
838
+ currentStep: task.currentStep ?? stepIndex + 1,
792
839
  totalSteps: steps.length,
793
840
  output: out,
794
841
  });
@@ -796,14 +843,14 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
796
843
  break;
797
844
  }
798
845
  catch (err) {
799
- stepAttempt++;
846
+ stepAttempt += 1;
800
847
  lastStepErr = err;
801
848
  if (stepAttempt < stepMaxAttempts) {
802
849
  const stepBackoff = this.normalizeBackoff(step.backoff ?? task.backoff);
803
850
  const delay = (0, utils_js_1.computeBackoffMs)(stepAttempt, stepBackoff);
804
- await context.pipe(logging_1.LogLevel.warn, `Composite step ${idx} attempt ${stepAttempt}/${stepMaxAttempts} failed, retrying in ${delay}ms`, { classification: step.classification, attempt: stepAttempt, delay });
851
+ await taskStepContext.pipe(logging_1.LogLevel.warn, `Composite step ${stepIndex} attempt ${stepAttempt}/${stepMaxAttempts} failed, retrying in ${delay}ms`, { classification: step.classification, attempt: stepAttempt, delay });
805
852
  await (0, utils_js_1.sleep)(delay);
806
- await context.heartbeat();
853
+ await taskStepContext.heartbeat();
807
854
  }
808
855
  }
809
856
  }
@@ -811,7 +858,7 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
811
858
  const now = new Date();
812
859
  const canFail = step.canFail === true;
813
860
  const serializedErr = (0, utils_js_1.serializeError)(lastStepErr);
814
- results[idx] = new TaskStepResultModel_js_1.TaskStepResultModel({
861
+ results[stepIndex] = new TaskStepResultModel_js_1.TaskStepResultModel({
815
862
  status: constants_js_1.TaskStatus.FAILED,
816
863
  error: serializedErr,
817
864
  attempt: stepAttempt,
@@ -820,7 +867,7 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
820
867
  });
821
868
  if (canFail) {
822
869
  try {
823
- await handler.catch?.(step.input, lastStepErr, context);
870
+ await handler.catch?.(step.input, lastStepErr, taskStepContext);
824
871
  }
825
872
  catch (catchErr) {
826
873
  ctx.logger.warn("composite step catch() hook failed", {
@@ -828,22 +875,52 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
828
875
  });
829
876
  }
830
877
  }
831
- task.stepResults = results;
832
- task.error = canFail ? undefined : serializedErr;
833
- if (canFail) {
834
- idx = stepIndex + 1;
835
- task.currentStep = idx;
836
- }
837
- else {
838
- task.currentStep = idx;
839
- }
840
- // persist composite progress before optionally continuing to the next step
841
- const persisted = await this.tasks.update(task);
842
- Object.assign(task, persisted);
878
+ await this.withStepWriteLock(taskStepContext, async () => {
879
+ task.stepResults = results;
880
+ task.error = canFail ? undefined : serializedErr;
881
+ task.currentStep = this.recalculateCompositeCurrentStep(steps, results);
882
+ const persisted = await this.tasks.update(task, context);
883
+ Object.assign(task, persisted);
884
+ });
843
885
  if (!canFail) {
844
886
  throw lastStepErr;
845
887
  }
846
888
  }
889
+ };
890
+ const runConcurrentBatch = async (indices) => {
891
+ const batch = indices.map((stepIndex) => runSingleStep(stepIndex));
892
+ const settled = await Promise.allSettled(batch);
893
+ const hardFailure = settled.find((result) => result.status === "rejected");
894
+ if (hardFailure && hardFailure.status === "rejected") {
895
+ throw hardFailure.reason;
896
+ }
897
+ };
898
+ refreshFromTask();
899
+ while (idx < steps.length) {
900
+ const step = steps[idx];
901
+ if (this.isConcurrentCompositeStep(step) && canBatchConcurrentSteps) {
902
+ const batchLock = step.lock;
903
+ const batchIndices = [idx];
904
+ for (let cursor = idx + 1; cursor < steps.length && batchIndices.length < maxConcurrentSteps; cursor += 1) {
905
+ const candidate = steps[cursor];
906
+ if (!this.isConcurrentCompositeStep(candidate))
907
+ break;
908
+ if (candidate.lock !== batchLock)
909
+ break;
910
+ if (candidate.dependsOn?.length)
911
+ break;
912
+ batchIndices.push(cursor);
913
+ }
914
+ if (batchIndices.length > 1) {
915
+ await runConcurrentBatch(batchIndices);
916
+ steps = this.normalizeSteps(task.steps);
917
+ idx = this.recalculateCompositeCurrentStep(steps, results);
918
+ continue;
919
+ }
920
+ }
921
+ await runSingleStep(idx);
922
+ steps = this.normalizeSteps(task.steps);
923
+ idx = this.recalculateCompositeCurrentStep(steps, results);
847
924
  }
848
925
  return { stepResults: results };
849
926
  }
@@ -941,10 +1018,12 @@ class TaskEngine extends ContextualLoggedClass_js_1.AbsContextual {
941
1018
  step,
942
1019
  });
943
1020
  });
944
- const nextTail = [...(task.logTail ?? []), ...entries].slice(-this.config.logTailMax);
945
- task.logTail = nextTail;
946
1021
  try {
947
- return [await this.tasks.update(task, ctx), entries];
1022
+ return await this.withStepWriteLock(ctx, async () => {
1023
+ const nextTail = [...(task.logTail ?? []), ...entries].slice(-this.config.logTailMax);
1024
+ task.logTail = nextTail;
1025
+ return [await this.tasks.update(task, ctx), entries];
1026
+ });
948
1027
  }
949
1028
  catch {
950
1029
  return [task, []];