@cogitator-ai/workflows 0.5.16 → 0.6.1

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 (146) hide show
  1. package/README.md +339 -772
  2. package/dist/builder.d.ts +5 -4
  3. package/dist/builder.d.ts.map +1 -1
  4. package/dist/builder.js +61 -77
  5. package/dist/builder.js.map +1 -1
  6. package/dist/checkpoint.d.ts.map +1 -1
  7. package/dist/checkpoint.js +23 -16
  8. package/dist/checkpoint.js.map +1 -1
  9. package/dist/executor.d.ts +34 -2
  10. package/dist/executor.d.ts.map +1 -1
  11. package/dist/executor.js +222 -37
  12. package/dist/executor.js.map +1 -1
  13. package/dist/human/approval-store.d.ts +0 -4
  14. package/dist/human/approval-store.d.ts.map +1 -1
  15. package/dist/human/approval-store.js +50 -38
  16. package/dist/human/approval-store.js.map +1 -1
  17. package/dist/human/human-node.d.ts.map +1 -1
  18. package/dist/human/human-node.js +6 -2
  19. package/dist/human/human-node.js.map +1 -1
  20. package/dist/human/notifiers.d.ts +0 -3
  21. package/dist/human/notifiers.d.ts.map +1 -1
  22. package/dist/human/notifiers.js +67 -25
  23. package/dist/human/notifiers.js.map +1 -1
  24. package/dist/index.d.ts +3 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/manager/scheduler.d.ts.map +1 -1
  29. package/dist/manager/scheduler.js +6 -2
  30. package/dist/manager/scheduler.js.map +1 -1
  31. package/dist/manager/workflow-manager.d.ts +11 -1
  32. package/dist/manager/workflow-manager.d.ts.map +1 -1
  33. package/dist/manager/workflow-manager.js +53 -8
  34. package/dist/manager/workflow-manager.js.map +1 -1
  35. package/dist/nodes/adapters.d.ts +60 -0
  36. package/dist/nodes/adapters.d.ts.map +1 -0
  37. package/dist/nodes/adapters.js +138 -0
  38. package/dist/nodes/adapters.js.map +1 -0
  39. package/dist/nodes/agent.d.ts +0 -15
  40. package/dist/nodes/agent.d.ts.map +1 -1
  41. package/dist/nodes/agent.js +17 -16
  42. package/dist/nodes/agent.js.map +1 -1
  43. package/dist/nodes/base.d.ts +11 -8
  44. package/dist/nodes/base.d.ts.map +1 -1
  45. package/dist/nodes/base.js +0 -3
  46. package/dist/nodes/base.js.map +1 -1
  47. package/dist/nodes/function.d.ts +0 -18
  48. package/dist/nodes/function.d.ts.map +1 -1
  49. package/dist/nodes/function.js +0 -9
  50. package/dist/nodes/function.js.map +1 -1
  51. package/dist/nodes/index.d.ts +1 -3
  52. package/dist/nodes/index.d.ts.map +1 -1
  53. package/dist/nodes/index.js +1 -3
  54. package/dist/nodes/index.js.map +1 -1
  55. package/dist/nodes/tool.d.ts +1 -12
  56. package/dist/nodes/tool.d.ts.map +1 -1
  57. package/dist/nodes/tool.js +4 -9
  58. package/dist/nodes/tool.js.map +1 -1
  59. package/dist/observability/exporters.d.ts +4 -4
  60. package/dist/observability/exporters.d.ts.map +1 -1
  61. package/dist/observability/exporters.js +25 -9
  62. package/dist/observability/exporters.js.map +1 -1
  63. package/dist/observability/index.d.ts +1 -1
  64. package/dist/observability/index.d.ts.map +1 -1
  65. package/dist/observability/index.js +1 -1
  66. package/dist/observability/index.js.map +1 -1
  67. package/dist/observability/metrics.d.ts +0 -21
  68. package/dist/observability/metrics.d.ts.map +1 -1
  69. package/dist/observability/metrics.js +22 -26
  70. package/dist/observability/metrics.js.map +1 -1
  71. package/dist/observability/tracer.d.ts +9 -69
  72. package/dist/observability/tracer.d.ts.map +1 -1
  73. package/dist/observability/tracer.js +82 -125
  74. package/dist/observability/tracer.js.map +1 -1
  75. package/dist/patterns/index.d.ts +0 -13
  76. package/dist/patterns/index.d.ts.map +1 -1
  77. package/dist/patterns/index.js +0 -13
  78. package/dist/patterns/index.js.map +1 -1
  79. package/dist/patterns/map-reduce.d.ts +0 -129
  80. package/dist/patterns/map-reduce.d.ts.map +1 -1
  81. package/dist/patterns/map-reduce.js +63 -92
  82. package/dist/patterns/map-reduce.js.map +1 -1
  83. package/dist/saga/circuit-breaker.d.ts.map +1 -1
  84. package/dist/saga/circuit-breaker.js +5 -2
  85. package/dist/saga/circuit-breaker.js.map +1 -1
  86. package/dist/saga/compensation.d.ts +5 -2
  87. package/dist/saga/compensation.d.ts.map +1 -1
  88. package/dist/saga/compensation.js +49 -44
  89. package/dist/saga/compensation.js.map +1 -1
  90. package/dist/saga/dead-letter.d.ts +3 -0
  91. package/dist/saga/dead-letter.d.ts.map +1 -1
  92. package/dist/saga/dead-letter.js +11 -5
  93. package/dist/saga/dead-letter.js.map +1 -1
  94. package/dist/saga/idempotency.d.ts +1 -1
  95. package/dist/saga/idempotency.d.ts.map +1 -1
  96. package/dist/saga/idempotency.js +46 -13
  97. package/dist/saga/idempotency.js.map +1 -1
  98. package/dist/saga/retry.d.ts +5 -0
  99. package/dist/saga/retry.d.ts.map +1 -1
  100. package/dist/saga/retry.js +48 -29
  101. package/dist/saga/retry.js.map +1 -1
  102. package/dist/scheduler.d.ts +16 -1
  103. package/dist/scheduler.d.ts.map +1 -1
  104. package/dist/scheduler.js +100 -9
  105. package/dist/scheduler.js.map +1 -1
  106. package/dist/subworkflows/index.d.ts +0 -13
  107. package/dist/subworkflows/index.d.ts.map +1 -1
  108. package/dist/subworkflows/index.js +0 -13
  109. package/dist/subworkflows/index.js.map +1 -1
  110. package/dist/subworkflows/parallel-subworkflows.d.ts +1 -77
  111. package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -1
  112. package/dist/subworkflows/parallel-subworkflows.js +12 -40
  113. package/dist/subworkflows/parallel-subworkflows.js.map +1 -1
  114. package/dist/subworkflows/subworkflow-node.d.ts +1 -82
  115. package/dist/subworkflows/subworkflow-node.d.ts.map +1 -1
  116. package/dist/subworkflows/subworkflow-node.js +42 -41
  117. package/dist/subworkflows/subworkflow-node.js.map +1 -1
  118. package/dist/timers/cron-parser.d.ts.map +1 -1
  119. package/dist/timers/cron-parser.js +32 -10
  120. package/dist/timers/cron-parser.js.map +1 -1
  121. package/dist/timers/timer-manager.d.ts +10 -0
  122. package/dist/timers/timer-manager.d.ts.map +1 -1
  123. package/dist/timers/timer-manager.js +13 -0
  124. package/dist/timers/timer-manager.js.map +1 -1
  125. package/dist/timers/timer-node.d.ts.map +1 -1
  126. package/dist/timers/timer-node.js +1 -0
  127. package/dist/timers/timer-node.js.map +1 -1
  128. package/dist/timers/timer-store.d.ts.map +1 -1
  129. package/dist/timers/timer-store.js +16 -10
  130. package/dist/timers/timer-store.js.map +1 -1
  131. package/dist/triggers/cron-trigger.d.ts +6 -5
  132. package/dist/triggers/cron-trigger.d.ts.map +1 -1
  133. package/dist/triggers/cron-trigger.js +52 -18
  134. package/dist/triggers/cron-trigger.js.map +1 -1
  135. package/dist/triggers/rate-limiter.d.ts +4 -0
  136. package/dist/triggers/rate-limiter.d.ts.map +1 -1
  137. package/dist/triggers/rate-limiter.js +10 -1
  138. package/dist/triggers/rate-limiter.js.map +1 -1
  139. package/dist/triggers/trigger-manager.d.ts.map +1 -1
  140. package/dist/triggers/trigger-manager.js +67 -40
  141. package/dist/triggers/trigger-manager.js.map +1 -1
  142. package/dist/triggers/webhook-trigger.d.ts +1 -0
  143. package/dist/triggers/webhook-trigger.d.ts.map +1 -1
  144. package/dist/triggers/webhook-trigger.js +8 -8
  145. package/dist/triggers/webhook-trigger.js.map +1 -1
  146. package/package.json +4 -4
@@ -13,38 +13,36 @@ const DEFAULT_MAX_DELAY = 30000;
13
13
  const DEFAULT_BACKOFF = 'exponential';
14
14
  const DEFAULT_MULTIPLIER = 2;
15
15
  const DEFAULT_JITTER = 0.1;
16
+ const RETRYABLE_CODES = new Set([
17
+ 'ECONNRESET',
18
+ 'ECONNREFUSED',
19
+ 'ETIMEDOUT',
20
+ 'ENOTFOUND',
21
+ 'ENETUNREACH',
22
+ 'EAI_AGAIN',
23
+ 'EPIPE',
24
+ ]);
25
+ const RETRYABLE_PATTERNS = [
26
+ /\btimeout\b/i,
27
+ /\bnetwork\b/i,
28
+ /\bconnection\s+(reset|refused|closed|aborted)\b/i,
29
+ /\bsocket\s+hang\s+up\b/i,
30
+ /\brate[\s-]?limit/i,
31
+ /\b(429|500|502|503|504)\b/,
32
+ ];
16
33
  /**
17
34
  * Default retryable error checker - retries on network/timeout errors
18
35
  */
19
36
  function defaultIsRetryable(error) {
20
- const retryableErrors = [
21
- 'ECONNRESET',
22
- 'ECONNREFUSED',
23
- 'ETIMEDOUT',
24
- 'ENOTFOUND',
25
- 'ENETUNREACH',
26
- 'EAI_AGAIN',
27
- 'EPIPE',
28
- ];
29
- const retryableMessages = [
30
- 'timeout',
31
- 'network',
32
- 'connection',
33
- 'socket',
34
- 'ETIMEDOUT',
35
- 'rate limit',
36
- '429',
37
- '500',
38
- '502',
39
- '503',
40
- '504',
41
- ];
42
37
  const errorCode = error.code;
43
- if (errorCode && retryableErrors.includes(errorCode)) {
38
+ if (errorCode && RETRYABLE_CODES.has(errorCode)) {
44
39
  return true;
45
40
  }
46
- const message = error.message.toLowerCase();
47
- return retryableMessages.some((m) => message.includes(m.toLowerCase()));
41
+ const statusCode = error.statusCode;
42
+ if (statusCode && [429, 500, 502, 503, 504].includes(statusCode)) {
43
+ return true;
44
+ }
45
+ return RETRYABLE_PATTERNS.some((p) => p.test(error.message));
48
46
  }
49
47
  /**
50
48
  * Calculate delay with jitter
@@ -69,10 +67,31 @@ function calculateDelay(attempt, config) {
69
67
  return Math.max(0, Math.round(baseDelay + jitter));
70
68
  }
71
69
  /**
72
- * Sleep for specified milliseconds
70
+ * Delay before retry number `attempt` (1-based) for a retry policy, using the same defaults
71
+ * as `executeWithRetry`.
73
72
  */
74
- function sleep(ms) {
75
- return new Promise((resolve) => setTimeout(resolve, ms));
73
+ export function computeRetryDelay(attempt, config = {}) {
74
+ return calculateDelay(attempt, {
75
+ backoff: config.backoff ?? DEFAULT_BACKOFF,
76
+ initialDelay: config.initialDelay ?? DEFAULT_INITIAL_DELAY,
77
+ maxDelay: config.maxDelay ?? DEFAULT_MAX_DELAY,
78
+ multiplier: config.multiplier ?? DEFAULT_MULTIPLIER,
79
+ jitter: config.jitter ?? DEFAULT_JITTER,
80
+ });
81
+ }
82
+ function sleep(ms, signal) {
83
+ if (signal?.aborted)
84
+ return Promise.resolve();
85
+ return new Promise((resolve) => {
86
+ const timer = setTimeout(resolve, ms);
87
+ if (signal) {
88
+ const onAbort = () => {
89
+ clearTimeout(timer);
90
+ resolve();
91
+ };
92
+ signal.addEventListener('abort', onAbort, { once: true });
93
+ }
94
+ });
76
95
  }
77
96
  /**
78
97
  * Execute function with retry logic
@@ -152,7 +171,7 @@ export async function executeWithRetry(fn, options = {}) {
152
171
  duration,
153
172
  };
154
173
  options.onRetry?.(attemptInfo);
155
- await sleep(delay);
174
+ await sleep(delay, options.abortSignal);
156
175
  }
157
176
  }
158
177
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/saga/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAC9B,MAAM,qBAAqB,GAAG,IAAI,CAAC;AACnC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAChC,MAAM,eAAe,GAAoB,aAAa,CAAC;AACvD,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAC7B,MAAM,cAAc,GAAG,GAAG,CAAC;AAa3B;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAY;IACtC,MAAM,eAAe,GAAG;QACtB,YAAY;QACZ,cAAc;QACd,WAAW;QACX,WAAW;QACX,aAAa;QACb,WAAW;QACX,OAAO;KACR,CAAC;IAEF,MAAM,iBAAiB,GAAG;QACxB,SAAS;QACT,SAAS;QACT,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,YAAY;QACZ,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;QACL,KAAK;KACN,CAAC;IAEF,MAAM,SAAS,GAAI,KAA+B,CAAC,IAAI,CAAC;IACxD,IAAI,SAAS,IAAI,eAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe,EAAE,MAAmB;IAC1D,IAAI,SAAiB,CAAC;IAEtB,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,UAAU;YACb,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;YAChC,MAAM;QAER,KAAK,QAAQ;YACX,SAAS,GAAG,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC;YAC1C,MAAM;QAER,KAAK,aAAa,CAAC;QACnB;YACE,SAAS,GAAG,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;YAC3E,MAAM;IACV,CAAC;IAED,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,WAAW,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9C,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;IAErD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAqCD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAmC,EACnC,UAA2B,EAAE;IAE7B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,eAAe,CAAC;IACnD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IACnE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAE9D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,IAAI,SAA4B,CAAC;IAEjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,GAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;QAC3D,IAAI,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;YACjC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,IAAI,KAAK,CAAC,eAAe,CAAC;gBACjC,QAAQ,EAAE,OAAO,GAAG,CAAC;gBACrB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,MAAM;aACP,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,WAAW,GAAgB;gBAC/B,OAAO;gBACP,WAAW,EAAE,UAAU,GAAG,CAAC;gBAC3B,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,YAAY;gBACvB,QAAQ,EAAE,CAAC;aACZ,CAAC;YAEF,OAAO,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC;YAEjC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;YAE3C,OAAO,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;YAE1D,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,QAAQ,EAAE,OAAO;gBACjB,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;gBACrC,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC;YAE3C,MAAM,QAAQ,GAAG,OAAO,IAAI,UAAU,IAAI,WAAW,CAAC,SAAS,CAAC,CAAC;YAEjE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,WAAW,GAAgB;oBAC/B,OAAO;oBACP,WAAW,EAAE,UAAU,GAAG,CAAC;oBAC3B,KAAK,EAAE,CAAC;oBACR,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,YAAY;oBACvB,QAAQ;iBACT,CAAC;gBACF,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAC5C,MAAM;YACR,CAAC;YAED,MAAM,KAAK,GAAG,cAAc,CAAC,OAAO,EAAE;gBACpC,OAAO;gBACP,YAAY;gBACZ,QAAQ;gBACR,UAAU;gBACV,MAAM;aACP,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,MAAM,WAAW,GAAgB;gBAC/B,OAAO;gBACP,WAAW,EAAE,UAAU,GAAG,CAAC;gBAC3B,KAAK;gBACL,KAAK,EAAE,SAAS;gBAChB,SAAS,EAAE,YAAY;gBACvB,QAAQ;aACT,CAAC;YACF,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;YAE/B,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC;QAC3B,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;QACrC,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CACvB,EAA8B,EAC9B,UAA2B,EAAE;IAE7B,OAAO,KAAK,EAAE,GAAG,IAAO,EAAc,EAAE;QACtC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,MAAM,CAAC,MAAW,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAc,UAA2B,EAAE;IAClE,OAAO,UACL,OAAgB,EAChB,YAAoB,EACpB,UAA8B;QAE9B,MAAM,cAAc,GAAG,UAAU,CAAC,KAA2C,CAAC;QAE9E,UAAU,CAAC,KAAK,GAAG,KAAK,WAA0B,GAAG,IAAe;YAClE,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;YAEvF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,MAAM,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;YAClD,CAAC;YAED,OAAO,MAAM,CAAC,MAAW,CAAC;QAC5B,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,SAA+B,EAAE;IACrE,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,mBAAmB,CAAC;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC;IAClD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACtD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAE3D,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,KAAa,CAAC;QAElB,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,UAAU;gBACb,KAAK,GAAG,YAAY,CAAC;gBACrB,MAAM;YACR,KAAK,QAAQ;gBACX,KAAK,GAAG,YAAY,GAAG,OAAO,CAAC;gBAC/B,MAAM;YACR,KAAK,aAAa,CAAC;YACnB;gBACE,KAAK,GAAG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBACzD,MAAM;QACV,CAAC;QAED,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/saga/retry.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,20 @@ export declare class WorkflowScheduler {
11
11
  * Build dependency graph from workflow edges
12
12
  */
13
13
  buildDependencyGraph<S extends WorkflowState>(workflow: Workflow<S>): DependencyGraph;
14
+ /**
15
+ * Transitive successors of every node, following all edge types (sequential, parallel,
16
+ * conditional targets and loop back/exit edges).
17
+ */
18
+ buildReachability<S extends WorkflowState>(workflow: Workflow<S>): Map<string, Set<string>>;
19
+ /**
20
+ * Split a frontier into nodes that can run now and nodes that must wait because another
21
+ * frontier node still leads to them (join barrier). Nodes on a common cycle never block
22
+ * each other.
23
+ */
24
+ splitFrontier(frontier: readonly string[], reachability: Map<string, Set<string>>): {
25
+ runnable: string[];
26
+ deferred: string[];
27
+ };
14
28
  /**
15
29
  * Get nodes ready to execute (all dependencies completed)
16
30
  */
@@ -29,7 +43,8 @@ export declare class WorkflowScheduler {
29
43
  */
30
44
  runWithConcurrency<T>(tasks: (() => Promise<T>)[], maxConcurrency: number): Promise<T[]>;
31
45
  /**
32
- * Simpler parallel execution with Promise.all and concurrency via chunking
46
+ * Run tasks with at most `maxConcurrency` in flight; results keep the task order.
47
+ * Rejects with the first failure after in-flight tasks settle.
33
48
  */
34
49
  runParallel<T>(tasks: (() => Promise<T>)[], maxConcurrency: number): Promise<T[]>;
35
50
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEnE,UAAU,eAAe;IACvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACtC;AAED,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe;IAwBrF;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAuB7F;;;OAGG;IACH,kBAAkB,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE;IA0B9E;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,aAAa,EAClC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,CAAC,GACP,MAAM,EAAE;IAgCX;;OAEG;IACG,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IA6B9F;;OAEG;IACG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAYvF;;;OAGG;IACG,uBAAuB,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAC3B,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACtD,OAAO,CAAC,CAAC,EAAE,CAAC;CA+BhB"}
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEnE,UAAU,eAAe;IACvB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACvC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACtC;AAED,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,eAAe;IAwBrF;;;OAGG;IACH,iBAAiB,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IA0C3F;;;;OAIG;IACH,aAAa,CACX,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACrC;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;IAiB7C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAuB7F;;;OAGG;IACH,kBAAkB,CAAC,CAAC,SAAS,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE;IA0B9E;;OAEG;IACH,YAAY,CAAC,CAAC,SAAS,aAAa,EAClC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,CAAC,GACP,MAAM,EAAE;IAgCX;;OAEG;IACG,kBAAkB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAmC9F;;;OAGG;IACG,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAyBvF;;;OAGG;IACG,uBAAuB,CAAC,CAAC,EAC7B,KAAK,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAC3B,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACtD,OAAO,CAAC,CAAC,EAAE,CAAC;CAwChB"}
package/dist/scheduler.js CHANGED
@@ -26,6 +26,68 @@ export class WorkflowScheduler {
26
26
  }
27
27
  return { dependencies, dependents };
28
28
  }
29
+ /**
30
+ * Transitive successors of every node, following all edge types (sequential, parallel,
31
+ * conditional targets and loop back/exit edges).
32
+ */
33
+ buildReachability(workflow) {
34
+ const successors = new Map();
35
+ for (const name of workflow.nodes.keys()) {
36
+ successors.set(name, new Set());
37
+ }
38
+ for (const edge of workflow.edges) {
39
+ const out = successors.get(edge.from);
40
+ if (!out)
41
+ continue;
42
+ switch (edge.type) {
43
+ case 'sequential':
44
+ out.add(edge.to);
45
+ break;
46
+ case 'parallel':
47
+ for (const to of edge.to)
48
+ out.add(to);
49
+ break;
50
+ case 'conditional':
51
+ for (const to of edge.targets)
52
+ out.add(to);
53
+ break;
54
+ case 'loop':
55
+ out.add(edge.back);
56
+ out.add(edge.exit);
57
+ break;
58
+ }
59
+ }
60
+ const reachability = new Map();
61
+ for (const start of successors.keys()) {
62
+ const reached = new Set();
63
+ const queue = [...(successors.get(start) ?? [])];
64
+ while (queue.length > 0) {
65
+ const next = queue.shift();
66
+ if (reached.has(next))
67
+ continue;
68
+ reached.add(next);
69
+ queue.push(...(successors.get(next) ?? []));
70
+ }
71
+ reachability.set(start, reached);
72
+ }
73
+ return reachability;
74
+ }
75
+ /**
76
+ * Split a frontier into nodes that can run now and nodes that must wait because another
77
+ * frontier node still leads to them (join barrier). Nodes on a common cycle never block
78
+ * each other.
79
+ */
80
+ splitFrontier(frontier, reachability) {
81
+ const runnable = [];
82
+ const deferred = [];
83
+ for (const node of frontier) {
84
+ const waitsForUpstream = frontier.some((other) => other !== node &&
85
+ (reachability.get(other)?.has(node) ?? false) &&
86
+ !(reachability.get(node)?.has(other) ?? false));
87
+ (waitsForUpstream ? deferred : runnable).push(node);
88
+ }
89
+ return { runnable, deferred };
90
+ }
29
91
  /**
30
92
  * Get nodes ready to execute (all dependencies completed)
31
93
  */
@@ -110,15 +172,16 @@ export class WorkflowScheduler {
110
172
  */
111
173
  async runWithConcurrency(tasks, maxConcurrency) {
112
174
  const results = [];
175
+ const errors = [];
113
176
  const executing = new Set();
114
177
  for (const task of tasks) {
115
178
  const promise = task().then((result) => {
116
179
  results.push(result);
180
+ }, (error) => {
181
+ errors.push(error instanceof Error ? error : new Error(String(error)));
117
182
  });
118
183
  const tracked = promise.then(() => {
119
184
  executing.delete(tracked);
120
- }, () => {
121
- executing.delete(tracked);
122
185
  });
123
186
  executing.add(tracked);
124
187
  if (executing.size >= maxConcurrency) {
@@ -126,17 +189,34 @@ export class WorkflowScheduler {
126
189
  }
127
190
  }
128
191
  await Promise.all(executing);
192
+ if (errors.length > 0) {
193
+ throw new AggregateError(errors, `${errors.length.toString()} task(s) failed`);
194
+ }
129
195
  return results;
130
196
  }
131
197
  /**
132
- * Simpler parallel execution with Promise.all and concurrency via chunking
198
+ * Run tasks with at most `maxConcurrency` in flight; results keep the task order.
199
+ * Rejects with the first failure after in-flight tasks settle.
133
200
  */
134
201
  async runParallel(tasks, maxConcurrency) {
135
- const results = [];
136
- for (let i = 0; i < tasks.length; i += maxConcurrency) {
137
- const chunk = tasks.slice(i, i + maxConcurrency);
138
- const chunkResults = await Promise.all(chunk.map((t) => t()));
139
- results.push(...chunkResults);
202
+ const results = new Array(tasks.length);
203
+ let nextIndex = 0;
204
+ let failure;
205
+ const worker = async () => {
206
+ while (nextIndex < tasks.length && !failure) {
207
+ const index = nextIndex++;
208
+ try {
209
+ results[index] = await tasks[index]();
210
+ }
211
+ catch (error) {
212
+ failure ??= { error };
213
+ }
214
+ }
215
+ };
216
+ const workers = Math.min(Math.max(1, maxConcurrency), tasks.length);
217
+ await Promise.all(Array.from({ length: workers }, () => worker()));
218
+ if (failure) {
219
+ throw failure.error;
140
220
  }
141
221
  return results;
142
222
  }
@@ -150,23 +230,34 @@ export class WorkflowScheduler {
150
230
  const results = new Array(tasks.length);
151
231
  let nextIndex = 0;
152
232
  let completedCount = 0;
233
+ let settled = false;
153
234
  return new Promise((resolve, reject) => {
154
235
  const startNext = () => {
236
+ if (settled)
237
+ return;
155
238
  while (nextIndex < tasks.length && nextIndex - completedCount < maxConcurrency) {
156
239
  const index = nextIndex++;
157
240
  tasks[index]()
158
241
  .then(async (result) => {
242
+ if (settled)
243
+ return;
159
244
  results[index] = result;
160
245
  await onComplete(result, index);
161
246
  completedCount++;
162
247
  if (completedCount === tasks.length) {
248
+ settled = true;
163
249
  resolve(results);
164
250
  }
165
251
  else {
166
252
  startNext();
167
253
  }
168
254
  })
169
- .catch(reject);
255
+ .catch((error) => {
256
+ if (settled)
257
+ return;
258
+ settled = true;
259
+ reject(error instanceof Error ? error : new Error(String(error)));
260
+ });
170
261
  }
171
262
  };
172
263
  startNext();
@@ -1 +1 @@
1
- {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,OAAO,iBAAiB;IAC5B;;OAEG;IACH,oBAAoB,CAA0B,QAAqB;QACjE,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QACpD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;QAElD,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACtC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1C,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1C,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;oBACzB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACrC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAA0B,QAAqB;QAC9D,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACzC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG;gBAAE,SAAS;YACnB,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;gBAClB,KAAK,YAAY;oBACf,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACjB,MAAM;gBACR,KAAK,UAAU;oBACb,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,EAAE;wBAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtC,MAAM;gBACR,KAAK,aAAa;oBAChB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,OAAO;wBAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3C,MAAM;gBACR,KAAK,MAAM;oBACT,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,MAAM;YACV,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuB,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;YAClC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC5B,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,aAAa,CACX,QAA2B,EAC3B,YAAsC;QAEtC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CACpC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,KAAK,IAAI;gBACd,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;gBAC7C,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CACjD,CAAC;YACF,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,KAAsB,EAAE,SAAsB,EAAE,OAAoB;QAChF,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI;gBAAE,SAAS;YAEpB,IAAI,gBAAgB,GAAG,IAAI,CAAC;YAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,gBAAgB,GAAG,KAAK,CAAC;oBACzB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAA0B,QAAqB;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAE/C,OAAO,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAE5D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CACb,6CAA6C,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9E,CAAC;YACJ,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACpB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,YAAY,CACV,QAAqB,EACrB,WAAmB,EACnB,KAAQ;QAER,MAAM,SAAS,GAAa,EAAE,CAAC;QAE/B,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS;YAExC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACpC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAE1D,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAClC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBACzC,IAAI,UAAU,EAAE,CAAC;oBACf,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;qBAAM,CAAC;oBACN,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAI,KAA2B,EAAE,cAAsB;QAC7E,MAAM,OAAO,GAAQ,EAAE,CAAC;QACxB,MAAM,MAAM,GAAY,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiB,CAAC;QAE3C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,CACzB,CAAC,MAAM,EAAE,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC,EACD,CAAC,KAAc,EAAE,EAAE;gBACjB,MAAM,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzE,CAAC,CACF,CAAC;YAEF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;gBAChC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAEvB,IAAI,SAAS,CAAC,IAAI,IAAI,cAAc,EAAE,CAAC;gBACrC,MAAM,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QACjF,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAI,KAA2B,EAAE,cAAsB;QACtE,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,OAAuC,CAAC;QAE5C,MAAM,MAAM,GAAG,KAAK,IAAmB,EAAE;YACvC,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACH,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,KAAK,EAAE,KAAK,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACpE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAEnE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,uBAAuB,CAC3B,KAA2B,EAC3B,cAAsB,EACtB,UAAuD;QAEvD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAElC,MAAM,OAAO,GAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,OAAO,GAAG,KAAK,CAAC;QAEpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,SAAS,GAAG,GAAG,EAAE;gBACrB,IAAI,OAAO;oBAAE,OAAO;gBAEpB,OAAO,SAAS,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,GAAG,cAAc,GAAG,cAAc,EAAE,CAAC;oBAC/E,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;oBAE1B,KAAK,CAAC,KAAK,CAAC,EAAE;yBACX,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;wBACrB,IAAI,OAAO;4BAAE,OAAO;wBACpB,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;wBACxB,MAAM,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAChC,cAAc,EAAE,CAAC;wBAEjB,IAAI,cAAc,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;4BACpC,OAAO,GAAG,IAAI,CAAC;4BACf,OAAO,CAAC,OAAO,CAAC,CAAC;wBACnB,CAAC;6BAAM,CAAC;4BACN,SAAS,EAAE,CAAC;wBACd,CAAC;oBACH,CAAC,CAAC;yBACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;wBACxB,IAAI,OAAO;4BAAE,OAAO;wBACpB,OAAO,GAAG,IAAI,CAAC;wBACf,MAAM,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpE,CAAC,CAAC,CAAC;gBACP,CAAC;YACH,CAAC,CAAC;YAEF,SAAS,EAAE,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,16 +1,3 @@
1
- /**
2
- * @cogitator-ai/workflows - Subworkflows module
3
- *
4
- * Enables nested and parallel workflow execution.
5
- *
6
- * Features:
7
- * - Single subworkflow execution
8
- * - Parallel subworkflows with concurrency control
9
- * - State mapping between parent and child
10
- * - Error handling strategies
11
- * - Depth limits to prevent infinite recursion
12
- * - Race and fallback patterns
13
- */
14
1
  export { type SubworkflowErrorStrategy, type SubworkflowRetryConfig, type SubworkflowConfig, type SubworkflowContext, type SubworkflowResult, MaxDepthExceededError, executeSubworkflow, subworkflowNode, simpleSubworkflow, nestedSubworkflow, conditionalSubworkflow, } from './subworkflow-node.js';
15
2
  export { type ParallelSubworkflowDef, type ParallelSubworkflowsConfig, type ParallelProgress, type ParallelSubworkflowsResult, executeParallelSubworkflows, parallelSubworkflows, fanOutFanIn, scatterGather, raceSubworkflows, fallbackSubworkflows, } from './parallel-subworkflows.js';
16
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/subworkflows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/subworkflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,0BAA0B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
@@ -1,16 +1,3 @@
1
- /**
2
- * @cogitator-ai/workflows - Subworkflows module
3
- *
4
- * Enables nested and parallel workflow execution.
5
- *
6
- * Features:
7
- * - Single subworkflow execution
8
- * - Parallel subworkflows with concurrency control
9
- * - State mapping between parent and child
10
- * - Error handling strategies
11
- * - Depth limits to prevent infinite recursion
12
- * - Race and fallback patterns
13
- */
14
1
  export { MaxDepthExceededError, executeSubworkflow, subworkflowNode, simpleSubworkflow, nestedSubworkflow, conditionalSubworkflow, } from './subworkflow-node.js';
15
2
  export { executeParallelSubworkflows, parallelSubworkflows, fanOutFanIn, scatterGather, raceSubworkflows, fallbackSubworkflows, } from './parallel-subworkflows.js';
16
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subworkflows/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAML,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAKL,2BAA2B,EAC3B,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/subworkflows/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAKL,2BAA2B,EAC3B,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
@@ -1,74 +1,22 @@
1
- /**
2
- * Parallel subworkflow execution
3
- *
4
- * Features:
5
- * - Execute multiple subworkflows in parallel
6
- * - Configurable concurrency
7
- * - Aggregate results
8
- * - Partial failure handling
9
- */
10
1
  import type { Workflow, WorkflowState, WorkflowResult } from '@cogitator-ai/types';
11
2
  import { type SubworkflowContext, type SubworkflowConfig, type SubworkflowResult, type SubworkflowErrorStrategy } from './subworkflow-node.js';
12
- /**
13
- * Parallel subworkflow definition
14
- */
15
3
  export interface ParallelSubworkflowDef<PS extends WorkflowState, CS extends WorkflowState> {
16
4
  id: string;
17
5
  config: SubworkflowConfig<PS, CS>;
18
6
  }
19
- /**
20
- * Parallel subworkflows configuration
21
- */
22
7
  export interface ParallelSubworkflowsConfig<S extends WorkflowState> {
23
8
  name: string;
24
- /**
25
- * Get subworkflow definitions to execute
26
- */
27
9
  subworkflows: ParallelSubworkflowDef<S, WorkflowState>[] | ((state: S) => ParallelSubworkflowDef<S, WorkflowState>[]);
28
- /**
29
- * Maximum concurrent subworkflows
30
- * @default Infinity
31
- */
32
10
  concurrency?: number;
33
- /**
34
- * Continue if some subworkflows fail
35
- * @default false
36
- */
37
11
  continueOnError?: boolean;
38
- /**
39
- * Error handling strategy for all subworkflows
40
- */
41
12
  onError?: SubworkflowErrorStrategy;
42
- /**
43
- * Aggregate results into parent state
44
- */
45
13
  aggregator: (results: Map<string, SubworkflowResult<S, WorkflowState>>, parentState: S) => S;
46
- /**
47
- * Maximum nesting depth for all subworkflows
48
- * @default 10
49
- */
50
14
  maxDepth?: number;
51
- /**
52
- * Share checkpoint store with parent
53
- * @default true
54
- */
55
15
  shareCheckpoints?: boolean;
56
- /**
57
- * Called when a subworkflow starts
58
- */
59
16
  onSubworkflowStart?: (id: string, config: SubworkflowConfig<S, WorkflowState>) => void;
60
- /**
61
- * Called when a subworkflow completes
62
- */
63
17
  onSubworkflowComplete?: (id: string, result: SubworkflowResult<S, WorkflowState>) => void;
64
- /**
65
- * Called on progress
66
- */
67
18
  onProgress?: (progress: ParallelProgress) => void;
68
19
  }
69
- /**
70
- * Progress event for parallel execution
71
- */
72
20
  export interface ParallelProgress {
73
21
  total: number;
74
22
  completed: number;
@@ -77,9 +25,6 @@ export interface ParallelProgress {
77
25
  pending: number;
78
26
  running: number;
79
27
  }
80
- /**
81
- * Parallel subworkflows result
82
- */
83
28
  export interface ParallelSubworkflowsResult<S extends WorkflowState> {
84
29
  success: boolean;
85
30
  parentState: S;
@@ -93,18 +38,8 @@ export interface ParallelSubworkflowsResult<S extends WorkflowState> {
93
38
  skipped: number;
94
39
  };
95
40
  }
96
- /**
97
- * Execute multiple subworkflows in parallel
98
- */
99
41
  export declare function executeParallelSubworkflows<S extends WorkflowState>(parentState: S, config: ParallelSubworkflowsConfig<S>, context: SubworkflowContext): Promise<ParallelSubworkflowsResult<S>>;
100
- /**
101
- * Create a parallel subworkflows node factory
102
- */
103
42
  export declare function parallelSubworkflows<S extends WorkflowState>(name: string, config: Omit<ParallelSubworkflowsConfig<S>, 'name'>): ParallelSubworkflowsConfig<S>;
104
- /**
105
- * Create a fan-out/fan-in pattern
106
- * Fans out to multiple identical subworkflows with different inputs
107
- */
108
43
  export declare function fanOutFanIn<S extends WorkflowState, CS extends WorkflowState>(name: string, config: {
109
44
  workflow: Workflow<CS>;
110
45
  getInputs: (state: S) => {
@@ -115,25 +50,14 @@ export declare function fanOutFanIn<S extends WorkflowState, CS extends Workflow
115
50
  concurrency?: number;
116
51
  continueOnError?: boolean;
117
52
  }): ParallelSubworkflowsConfig<S>;
118
- /**
119
- * Create a scatter-gather pattern
120
- * Scatters work across multiple workflows and gathers results
121
- */
122
53
  export declare function scatterGather<S extends WorkflowState, CS extends WorkflowState>(name: string, config: {
123
54
  workflows: Map<string, Workflow<CS>>;
124
55
  inputMapper: (state: S, workflowId: string) => Partial<CS>;
125
56
  outputMapper: (results: Map<string, WorkflowResult<CS>>, state: S) => S;
126
57
  concurrency?: number;
127
58
  timeout?: number;
59
+ continueOnError?: boolean;
128
60
  }): ParallelSubworkflowsConfig<S>;
129
- /**
130
- * Create a race pattern
131
- * Executes multiple subworkflows and returns the first successful result
132
- */
133
61
  export declare function raceSubworkflows<PS extends WorkflowState, CS extends WorkflowState>(parentState: PS, subworkflows: SubworkflowConfig<PS, CS>[], context: SubworkflowContext): Promise<SubworkflowResult<PS, CS> | null>;
134
- /**
135
- * Create a fallback pattern
136
- * Tries subworkflows in order until one succeeds
137
- */
138
62
  export declare function fallbackSubworkflows<PS extends WorkflowState, CS extends WorkflowState>(parentState: PS, subworkflows: SubworkflowConfig<PS, CS>[], context: SubworkflowContext): Promise<SubworkflowResult<PS, CS>>;
139
63
  //# sourceMappingURL=parallel-subworkflows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-subworkflows.d.ts","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-subworkflows.d.ts","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}