@cogitator-ai/workflows 0.5.16 → 0.5.17
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/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +2 -1
- package/dist/builder.js.map +1 -1
- package/dist/checkpoint.d.ts.map +1 -1
- package/dist/checkpoint.js +16 -13
- package/dist/checkpoint.js.map +1 -1
- package/dist/executor.d.ts +4 -1
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +6 -2
- package/dist/executor.js.map +1 -1
- package/dist/human/approval-store.d.ts +0 -4
- package/dist/human/approval-store.d.ts.map +1 -1
- package/dist/human/approval-store.js +50 -38
- package/dist/human/approval-store.js.map +1 -1
- package/dist/human/human-node.d.ts.map +1 -1
- package/dist/human/human-node.js +6 -2
- package/dist/human/human-node.js.map +1 -1
- package/dist/human/notifiers.d.ts +0 -3
- package/dist/human/notifiers.d.ts.map +1 -1
- package/dist/human/notifiers.js +67 -25
- package/dist/human/notifiers.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/manager/scheduler.d.ts.map +1 -1
- package/dist/manager/scheduler.js +6 -2
- package/dist/manager/scheduler.js.map +1 -1
- package/dist/manager/workflow-manager.d.ts +1 -1
- package/dist/manager/workflow-manager.d.ts.map +1 -1
- package/dist/manager/workflow-manager.js +21 -7
- package/dist/manager/workflow-manager.js.map +1 -1
- package/dist/nodes/agent.d.ts +0 -15
- package/dist/nodes/agent.d.ts.map +1 -1
- package/dist/nodes/agent.js +16 -16
- package/dist/nodes/agent.js.map +1 -1
- package/dist/nodes/base.d.ts +2 -7
- package/dist/nodes/base.d.ts.map +1 -1
- package/dist/nodes/base.js +0 -3
- package/dist/nodes/base.js.map +1 -1
- package/dist/nodes/function.d.ts +0 -18
- package/dist/nodes/function.d.ts.map +1 -1
- package/dist/nodes/function.js +0 -9
- package/dist/nodes/function.js.map +1 -1
- package/dist/nodes/index.d.ts +0 -3
- package/dist/nodes/index.d.ts.map +1 -1
- package/dist/nodes/index.js +0 -3
- package/dist/nodes/index.js.map +1 -1
- package/dist/nodes/tool.d.ts +1 -12
- package/dist/nodes/tool.d.ts.map +1 -1
- package/dist/nodes/tool.js +2 -9
- package/dist/nodes/tool.js.map +1 -1
- package/dist/observability/exporters.d.ts +4 -4
- package/dist/observability/exporters.d.ts.map +1 -1
- package/dist/observability/exporters.js +25 -9
- package/dist/observability/exporters.js.map +1 -1
- package/dist/observability/index.d.ts +1 -1
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +1 -1
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/metrics.d.ts +0 -21
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +22 -26
- package/dist/observability/metrics.js.map +1 -1
- package/dist/observability/tracer.d.ts +9 -69
- package/dist/observability/tracer.d.ts.map +1 -1
- package/dist/observability/tracer.js +82 -125
- package/dist/observability/tracer.js.map +1 -1
- package/dist/patterns/index.d.ts +0 -13
- package/dist/patterns/index.d.ts.map +1 -1
- package/dist/patterns/index.js +0 -13
- package/dist/patterns/index.js.map +1 -1
- package/dist/patterns/map-reduce.d.ts +0 -129
- package/dist/patterns/map-reduce.d.ts.map +1 -1
- package/dist/patterns/map-reduce.js +63 -92
- package/dist/patterns/map-reduce.js.map +1 -1
- package/dist/saga/circuit-breaker.d.ts.map +1 -1
- package/dist/saga/circuit-breaker.js +5 -2
- package/dist/saga/circuit-breaker.js.map +1 -1
- package/dist/saga/compensation.d.ts +5 -2
- package/dist/saga/compensation.d.ts.map +1 -1
- package/dist/saga/compensation.js +49 -44
- package/dist/saga/compensation.js.map +1 -1
- package/dist/saga/dead-letter.d.ts +3 -0
- package/dist/saga/dead-letter.d.ts.map +1 -1
- package/dist/saga/dead-letter.js +11 -5
- package/dist/saga/dead-letter.js.map +1 -1
- package/dist/saga/idempotency.d.ts +1 -1
- package/dist/saga/idempotency.d.ts.map +1 -1
- package/dist/saga/idempotency.js +46 -13
- package/dist/saga/idempotency.js.map +1 -1
- package/dist/saga/retry.d.ts.map +1 -1
- package/dist/saga/retry.js +37 -31
- package/dist/saga/retry.js.map +1 -1
- package/dist/scheduler.d.ts.map +1 -1
- package/dist/scheduler.js +18 -3
- package/dist/scheduler.js.map +1 -1
- package/dist/subworkflows/index.d.ts +0 -13
- package/dist/subworkflows/index.d.ts.map +1 -1
- package/dist/subworkflows/index.js +0 -13
- package/dist/subworkflows/index.js.map +1 -1
- package/dist/subworkflows/parallel-subworkflows.d.ts +1 -77
- package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -1
- package/dist/subworkflows/parallel-subworkflows.js +12 -40
- package/dist/subworkflows/parallel-subworkflows.js.map +1 -1
- package/dist/subworkflows/subworkflow-node.d.ts +1 -82
- package/dist/subworkflows/subworkflow-node.d.ts.map +1 -1
- package/dist/subworkflows/subworkflow-node.js +20 -36
- package/dist/subworkflows/subworkflow-node.js.map +1 -1
- package/dist/timers/cron-parser.d.ts.map +1 -1
- package/dist/timers/cron-parser.js +32 -10
- package/dist/timers/cron-parser.js.map +1 -1
- package/dist/timers/timer-manager.d.ts +10 -0
- package/dist/timers/timer-manager.d.ts.map +1 -1
- package/dist/timers/timer-manager.js +13 -0
- package/dist/timers/timer-manager.js.map +1 -1
- package/dist/timers/timer-node.d.ts.map +1 -1
- package/dist/timers/timer-node.js +1 -0
- package/dist/timers/timer-node.js.map +1 -1
- package/dist/timers/timer-store.d.ts.map +1 -1
- package/dist/timers/timer-store.js +16 -10
- package/dist/timers/timer-store.js.map +1 -1
- package/dist/triggers/cron-trigger.d.ts +6 -5
- package/dist/triggers/cron-trigger.d.ts.map +1 -1
- package/dist/triggers/cron-trigger.js +52 -18
- package/dist/triggers/cron-trigger.js.map +1 -1
- package/dist/triggers/rate-limiter.d.ts +4 -0
- package/dist/triggers/rate-limiter.d.ts.map +1 -1
- package/dist/triggers/rate-limiter.js +10 -1
- package/dist/triggers/rate-limiter.js.map +1 -1
- package/dist/triggers/trigger-manager.d.ts.map +1 -1
- package/dist/triggers/trigger-manager.js +55 -38
- package/dist/triggers/trigger-manager.js.map +1 -1
- package/dist/triggers/webhook-trigger.d.ts +1 -0
- package/dist/triggers/webhook-trigger.d.ts.map +1 -1
- package/dist/triggers/webhook-trigger.js +8 -8
- package/dist/triggers/webhook-trigger.js.map +1 -1
- package/package.json +3 -3
package/dist/saga/retry.js
CHANGED
|
@@ -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 &&
|
|
38
|
+
if (errorCode && RETRYABLE_CODES.has(errorCode)) {
|
|
44
39
|
return true;
|
|
45
40
|
}
|
|
46
|
-
const
|
|
47
|
-
|
|
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
|
|
@@ -68,11 +66,19 @@ function calculateDelay(attempt, config) {
|
|
|
68
66
|
const jitter = (Math.random() * 2 - 1) * jitterRange;
|
|
69
67
|
return Math.max(0, Math.round(baseDelay + jitter));
|
|
70
68
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
69
|
+
function sleep(ms, signal) {
|
|
70
|
+
if (signal?.aborted)
|
|
71
|
+
return Promise.resolve();
|
|
72
|
+
return new Promise((resolve) => {
|
|
73
|
+
const timer = setTimeout(resolve, ms);
|
|
74
|
+
if (signal) {
|
|
75
|
+
const onAbort = () => {
|
|
76
|
+
clearTimeout(timer);
|
|
77
|
+
resolve();
|
|
78
|
+
};
|
|
79
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
80
|
+
}
|
|
81
|
+
});
|
|
76
82
|
}
|
|
77
83
|
/**
|
|
78
84
|
* Execute function with retry logic
|
|
@@ -152,7 +158,7 @@ export async function executeWithRetry(fn, options = {}) {
|
|
|
152
158
|
duration,
|
|
153
159
|
};
|
|
154
160
|
options.onRetry?.(attemptInfo);
|
|
155
|
-
await sleep(delay);
|
|
161
|
+
await sleep(delay, options.abortSignal);
|
|
156
162
|
}
|
|
157
163
|
}
|
|
158
164
|
return {
|
package/dist/saga/retry.js.map
CHANGED
|
@@ -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
|
|
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,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,YAAY;IACZ,cAAc;IACd,WAAW;IACX,WAAW;IACX,aAAa;IACb,WAAW;IACX,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,kBAAkB,GAAa;IACnC,cAAc;IACd,cAAc;IACd,kDAAkD;IAClD,yBAAyB;IACzB,oBAAoB;IACpB,2BAA2B;CAC5B,CAAC;AAEF;;GAEG;AACH,SAAS,kBAAkB,CAAC,KAAY;IACtC,MAAM,SAAS,GAAI,KAA+B,CAAC,IAAI,CAAC;IACxD,IAAI,SAAS,IAAI,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAI,KAAiC,CAAC,UAAU,CAAC;IACjE,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/D,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,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,IAAI,MAAM,EAAE,OAAO;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC,CAAC,CAAC;AACL,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,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QAC1C,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"}
|
package/dist/scheduler.d.ts.map
CHANGED
|
@@ -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;
|
|
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;IAmC9F;;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;CAwChB"}
|
package/dist/scheduler.js
CHANGED
|
@@ -110,15 +110,16 @@ export class WorkflowScheduler {
|
|
|
110
110
|
*/
|
|
111
111
|
async runWithConcurrency(tasks, maxConcurrency) {
|
|
112
112
|
const results = [];
|
|
113
|
+
const errors = [];
|
|
113
114
|
const executing = new Set();
|
|
114
115
|
for (const task of tasks) {
|
|
115
116
|
const promise = task().then((result) => {
|
|
116
117
|
results.push(result);
|
|
118
|
+
}, (error) => {
|
|
119
|
+
errors.push(error instanceof Error ? error : new Error(String(error)));
|
|
117
120
|
});
|
|
118
121
|
const tracked = promise.then(() => {
|
|
119
122
|
executing.delete(tracked);
|
|
120
|
-
}, () => {
|
|
121
|
-
executing.delete(tracked);
|
|
122
123
|
});
|
|
123
124
|
executing.add(tracked);
|
|
124
125
|
if (executing.size >= maxConcurrency) {
|
|
@@ -126,6 +127,9 @@ export class WorkflowScheduler {
|
|
|
126
127
|
}
|
|
127
128
|
}
|
|
128
129
|
await Promise.all(executing);
|
|
130
|
+
if (errors.length > 0) {
|
|
131
|
+
throw new AggregateError(errors, `${errors.length.toString()} task(s) failed`);
|
|
132
|
+
}
|
|
129
133
|
return results;
|
|
130
134
|
}
|
|
131
135
|
/**
|
|
@@ -150,23 +154,34 @@ export class WorkflowScheduler {
|
|
|
150
154
|
const results = new Array(tasks.length);
|
|
151
155
|
let nextIndex = 0;
|
|
152
156
|
let completedCount = 0;
|
|
157
|
+
let settled = false;
|
|
153
158
|
return new Promise((resolve, reject) => {
|
|
154
159
|
const startNext = () => {
|
|
160
|
+
if (settled)
|
|
161
|
+
return;
|
|
155
162
|
while (nextIndex < tasks.length && nextIndex - completedCount < maxConcurrency) {
|
|
156
163
|
const index = nextIndex++;
|
|
157
164
|
tasks[index]()
|
|
158
165
|
.then(async (result) => {
|
|
166
|
+
if (settled)
|
|
167
|
+
return;
|
|
159
168
|
results[index] = result;
|
|
160
169
|
await onComplete(result, index);
|
|
161
170
|
completedCount++;
|
|
162
171
|
if (completedCount === tasks.length) {
|
|
172
|
+
settled = true;
|
|
163
173
|
resolve(results);
|
|
164
174
|
}
|
|
165
175
|
else {
|
|
166
176
|
startNext();
|
|
167
177
|
}
|
|
168
178
|
})
|
|
169
|
-
.catch(
|
|
179
|
+
.catch((error) => {
|
|
180
|
+
if (settled)
|
|
181
|
+
return;
|
|
182
|
+
settled = true;
|
|
183
|
+
reject(error instanceof Error ? error : new Error(String(error)));
|
|
184
|
+
});
|
|
170
185
|
}
|
|
171
186
|
};
|
|
172
187
|
startNext();
|
package/dist/scheduler.js.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -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
|
|
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
|
|
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":"AAAA
|
|
1
|
+
{"version":3,"file":"parallel-subworkflows.d.ts","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,10 @@
|
|
|
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 { executeSubworkflow, } from './subworkflow-node.js';
|
|
11
|
-
/**
|
|
12
|
-
* Execute subworkflows with concurrency limit
|
|
13
|
-
*/
|
|
14
2
|
async function executeWithConcurrency(items, concurrency, continueOnError, onComplete) {
|
|
15
3
|
const results = new Map();
|
|
16
4
|
const pending = [];
|
|
17
5
|
let nextIndex = 0;
|
|
18
6
|
let stopExecution = false;
|
|
7
|
+
let firstError;
|
|
19
8
|
const executeNext = async () => {
|
|
20
9
|
if (stopExecution)
|
|
21
10
|
return;
|
|
@@ -33,7 +22,11 @@ async function executeWithConcurrency(items, concurrency, continueOnError, onCom
|
|
|
33
22
|
results.set(item.id, { error: err });
|
|
34
23
|
if (!continueOnError) {
|
|
35
24
|
stopExecution = true;
|
|
36
|
-
|
|
25
|
+
if (!firstError) {
|
|
26
|
+
firstError = err;
|
|
27
|
+
}
|
|
28
|
+
onComplete?.(item.id, undefined, err);
|
|
29
|
+
return;
|
|
37
30
|
}
|
|
38
31
|
onComplete?.(item.id, undefined, err);
|
|
39
32
|
}
|
|
@@ -43,15 +36,12 @@ async function executeWithConcurrency(items, concurrency, continueOnError, onCom
|
|
|
43
36
|
for (let i = 0; i < initialBatch; i++) {
|
|
44
37
|
pending.push(executeNext());
|
|
45
38
|
}
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
await Promise.all(pending);
|
|
40
|
+
if (firstError) {
|
|
41
|
+
throw firstError;
|
|
48
42
|
}
|
|
49
|
-
catch { }
|
|
50
43
|
return results;
|
|
51
44
|
}
|
|
52
|
-
/**
|
|
53
|
-
* Execute multiple subworkflows in parallel
|
|
54
|
-
*/
|
|
55
45
|
export async function executeParallelSubworkflows(parentState, config, context) {
|
|
56
46
|
const startTime = Date.now();
|
|
57
47
|
const definitions = typeof config.subworkflows === 'function'
|
|
@@ -123,7 +113,7 @@ export async function executeParallelSubworkflows(parentState, config, context)
|
|
|
123
113
|
}
|
|
124
114
|
}
|
|
125
115
|
}
|
|
126
|
-
const overallSuccess = failed === 0 || continueOnError;
|
|
116
|
+
const overallSuccess = failed === 0 || (continueOnError && successful > 0);
|
|
127
117
|
const newParentState = overallSuccess ? config.aggregator(results, parentState) : parentState;
|
|
128
118
|
return {
|
|
129
119
|
success: overallSuccess,
|
|
@@ -139,16 +129,9 @@ export async function executeParallelSubworkflows(parentState, config, context)
|
|
|
139
129
|
},
|
|
140
130
|
};
|
|
141
131
|
}
|
|
142
|
-
/**
|
|
143
|
-
* Create a parallel subworkflows node factory
|
|
144
|
-
*/
|
|
145
132
|
export function parallelSubworkflows(name, config) {
|
|
146
133
|
return { name, ...config };
|
|
147
134
|
}
|
|
148
|
-
/**
|
|
149
|
-
* Create a fan-out/fan-in pattern
|
|
150
|
-
* Fans out to multiple identical subworkflows with different inputs
|
|
151
|
-
*/
|
|
152
135
|
export function fanOutFanIn(name, config) {
|
|
153
136
|
return {
|
|
154
137
|
name,
|
|
@@ -174,10 +157,6 @@ export function fanOutFanIn(name, config) {
|
|
|
174
157
|
},
|
|
175
158
|
};
|
|
176
159
|
}
|
|
177
|
-
/**
|
|
178
|
-
* Create a scatter-gather pattern
|
|
179
|
-
* Scatters work across multiple workflows and gathers results
|
|
180
|
-
*/
|
|
181
160
|
export function scatterGather(name, config) {
|
|
182
161
|
const subworkflows = [];
|
|
183
162
|
for (const [id, workflow] of config.workflows) {
|
|
@@ -196,7 +175,7 @@ export function scatterGather(name, config) {
|
|
|
196
175
|
name,
|
|
197
176
|
subworkflows,
|
|
198
177
|
concurrency: config.concurrency,
|
|
199
|
-
continueOnError: true,
|
|
178
|
+
continueOnError: config.continueOnError ?? true,
|
|
200
179
|
aggregator: (results, state) => {
|
|
201
180
|
const workflowResults = new Map();
|
|
202
181
|
for (const [id, result] of results) {
|
|
@@ -208,10 +187,6 @@ export function scatterGather(name, config) {
|
|
|
208
187
|
},
|
|
209
188
|
};
|
|
210
189
|
}
|
|
211
|
-
/**
|
|
212
|
-
* Create a race pattern
|
|
213
|
-
* Executes multiple subworkflows and returns the first successful result
|
|
214
|
-
*/
|
|
215
190
|
export async function raceSubworkflows(parentState, subworkflows, context) {
|
|
216
191
|
const controller = new AbortController();
|
|
217
192
|
const { signal } = controller;
|
|
@@ -222,6 +197,7 @@ export async function raceSubworkflows(parentState, subworkflows, context) {
|
|
|
222
197
|
const result = await executeSubworkflow(parentState, config, {
|
|
223
198
|
...context,
|
|
224
199
|
depth: context.depth + 1,
|
|
200
|
+
signal,
|
|
225
201
|
});
|
|
226
202
|
if (signal.aborted) {
|
|
227
203
|
throw new Error('Race cancelled');
|
|
@@ -240,10 +216,6 @@ export async function raceSubworkflows(parentState, subworkflows, context) {
|
|
|
240
216
|
return null;
|
|
241
217
|
}
|
|
242
218
|
}
|
|
243
|
-
/**
|
|
244
|
-
* Create a fallback pattern
|
|
245
|
-
* Tries subworkflows in order until one succeeds
|
|
246
|
-
*/
|
|
247
219
|
export async function fallbackSubworkflows(parentState, subworkflows, context) {
|
|
248
220
|
let lastResult;
|
|
249
221
|
let lastError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel-subworkflows.js","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parallel-subworkflows.js","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}
|