@fluidgrids/workflows 2026.1028.2 → 2026.1030.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.
- package/README.md +181 -11
- package/dist/{activation-BBh1p82z.d.cts → activation-DqUfpHzk.d.cts} +1 -1
- package/dist/{activation-DnhG7SmF.d.ts → activation-xpx1oWuo.d.ts} +1 -1
- package/dist/{chunk-VRHHBPT6.js → chunk-2D3MYIIF.js} +1212 -128
- package/dist/chunk-3U2NU7YC.cjs +124 -0
- package/dist/{chunk-NEIUQASE.cjs → chunk-4QKB4ARC.cjs} +3 -3
- package/dist/{chunk-GBQ33SIZ.cjs → chunk-54FLQNUM.cjs} +12 -1
- package/dist/chunk-5HIVIV53.js +330 -0
- package/dist/chunk-5MFVJM76.js +1222 -0
- package/dist/{chunk-JD2VQIDZ.cjs → chunk-672KMMBK.cjs} +2 -2
- package/dist/{chunk-C5OLWZ42.js → chunk-6A2FGSUS.js} +22 -14
- package/dist/{chunk-XKJA7KX3.js → chunk-6OLN6BMB.js} +52 -3
- package/dist/{chunk-6FSHT5IL.js → chunk-7EZIANC7.js} +1 -1
- package/dist/{chunk-2J6TF7YI.cjs → chunk-A5SXCA62.cjs} +10 -3
- package/dist/{chunk-BO6OVILK.js → chunk-AC6ZEXVR.js} +10 -4
- package/dist/{chunk-ABFZWYHT.js → chunk-AE5Q6ZAJ.js} +315 -50
- package/dist/chunk-C4F5KJTI.js +293 -0
- package/dist/{chunk-IISBRUWJ.js → chunk-G5H32GIG.js} +1 -1
- package/dist/chunk-GEQDGUGB.cjs +2719 -0
- package/dist/{chunk-XHXIDVEC.js → chunk-HCM7ZC7Q.js} +1 -1
- package/dist/chunk-HMZUGSMU.cjs +1554 -0
- package/dist/{chunk-SAOBPYYJ.cjs → chunk-IQPXHQQQ.cjs} +8 -4
- package/dist/{chunk-P6TA5EZT.cjs → chunk-ISOIA7NV.cjs} +335 -58
- package/dist/chunk-JSC75O5C.cjs +167 -0
- package/dist/chunk-M272AHEX.js +25 -0
- package/dist/{chunk-BD7ZPG53.js → chunk-NWQ5WRLE.js} +10 -2
- package/dist/chunk-ODZ2IAR2.cjs +1247 -0
- package/dist/chunk-Q4MWQNJK.cjs +28 -0
- package/dist/{chunk-HWJZVOG7.js → chunk-SR7TR5KX.js} +6 -2
- package/dist/{chunk-FEW3JBYA.cjs → chunk-TCTE7DX5.cjs} +3 -3
- package/dist/{chunk-623FVQSN.cjs → chunk-TYF56RGB.cjs} +123 -0
- package/dist/chunk-VA4OFR72.cjs +324 -0
- package/dist/chunk-VU5S5A7V.js +150 -0
- package/dist/chunk-YEHR4NNE.js +1522 -0
- package/dist/{chunk-FMSW2HDF.cjs → chunk-ZCGKGDCL.cjs} +23 -15
- package/dist/codegen/index.d.cts +2 -2
- package/dist/codegen/index.d.ts +2 -2
- package/dist/collect-6NIEufHd.d.ts +103 -0
- package/dist/collect-CcTCKqx6.d.cts +103 -0
- package/dist/{file-BOoHZgoQ.d.cts → file-BxYpwjRQ.d.cts} +1007 -21
- package/dist/{file-yuPCFU5b.d.ts → file-CFdPQJI9.d.ts} +1007 -21
- package/dist/history/index.cjs +375 -86
- package/dist/history/index.d.cts +590 -12
- package/dist/history/index.d.ts +590 -12
- package/dist/history/index.js +50 -4
- package/dist/index.cjs +156 -50
- package/dist/index.d.cts +38 -58
- package/dist/index.d.ts +38 -58
- package/dist/index.js +6 -4
- package/dist/interceptors-CNcr2dlk.d.ts +159 -0
- package/dist/interceptors-CqkNZVfI.d.cts +159 -0
- package/dist/ir/index.cjs +362 -38
- package/dist/ir/index.d.cts +282 -7
- package/dist/ir/index.d.ts +282 -7
- package/dist/ir/index.js +329 -23
- package/dist/{lower-BzmUz0sq.d.cts → lower-BtRfIW2A.d.cts} +56 -8
- package/dist/{lower-_-iT4HYs.d.ts → lower-CpsMFOFX.d.ts} +56 -8
- package/dist/{manifest-C8N6HDYl.d.ts → manifest-D-I_twys.d.ts} +1 -1
- package/dist/{manifest-0OLw0i7k.d.cts → manifest-DahBQVM8.d.cts} +1 -1
- package/dist/node-evaluator-DGQDPSPI.cjs +24 -0
- package/dist/node-evaluator-LEEVD7H7.js +14 -0
- package/dist/payload-fields-BVRQn2yH.d.cts +122 -0
- package/dist/payload-fields-oOBWxDiG.d.ts +122 -0
- package/dist/quickjs/index.cjs +28 -27
- package/dist/quickjs/index.d.cts +6 -6
- package/dist/quickjs/index.d.ts +6 -6
- package/dist/quickjs/index.js +10 -9
- package/dist/roundtrip/index.cjs +259 -51
- package/dist/roundtrip/index.d.cts +100 -9
- package/dist/roundtrip/index.d.ts +100 -9
- package/dist/roundtrip/index.js +177 -11
- package/dist/runtime/index.cjs +21 -20
- package/dist/runtime/index.d.cts +184 -15
- package/dist/runtime/index.d.ts +184 -15
- package/dist/runtime/index.js +8 -7
- package/dist/testing/index.cjs +1122 -115
- package/dist/testing/index.d.cts +294 -13
- package/dist/testing/index.d.ts +294 -13
- package/dist/testing/index.js +1086 -84
- package/dist/{types-DV-HX_Gt.d.ts → types-Bv2i4cBX.d.cts} +244 -33
- package/dist/{types-CpBBjaGX.d.cts → types-DGx-b9eq.d.ts} +244 -33
- package/dist/{types-BGoPzgcl.d.ts → types-V7jEEUaL.d.cts} +20 -1
- package/dist/{types-BGoPzgcl.d.cts → types-V7jEEUaL.d.ts} +20 -1
- package/dist/{workflow-Bpr3vnA_.d.ts → workflow-B18OeF7g.d.ts} +2 -2
- package/dist/workflow-BGnv8SS6.d.ts +803 -0
- package/dist/{workflow-FXUkpIBc.d.cts → workflow-BJPFv3cp.d.cts} +2 -2
- package/dist/workflow-DS32Gtws.d.cts +803 -0
- package/fixtures/histories/activity-options-updated.history.json +159 -0
- package/fixtures/histories/activity-paused-unpaused.history.json +160 -0
- package/fixtures/histories/auto-upgrade-patched.history.json +276 -0
- package/fixtures/histories/benign-failure.history.json +146 -0
- package/fixtures/histories/cancel-activity-try-cancel.history.json +150 -0
- package/fixtures/histories/child-cancel-wait-requested.history.json +217 -0
- package/fixtures/histories/child-options-roundtrip.history.json +192 -0
- package/fixtures/histories/codec-opaque.history.json +229 -0
- package/fixtures/histories/continue-as-new-last-result.history.json +86 -0
- package/fixtures/histories/continue-as-new-options.history.json +99 -0
- package/fixtures/histories/continue-as-new-r1-long-task-queue.history.json +78 -0
- package/fixtures/histories/continue-as-new-r1-retry-options.history.json +83 -0
- package/fixtures/histories/dynamic-workflow.history.json +150 -0
- package/fixtures/histories/execution-timeout-chain.history.json +98 -0
- package/fixtures/histories/external-cancel-resolved.history.json +123 -0
- package/fixtures/histories/external-cancel-unknown-target.history.json +127 -0
- package/fixtures/histories/failure-error-types-fails-run.history.json +144 -0
- package/fixtures/histories/handler-drain-warn.history.json +222 -0
- package/fixtures/histories/heartbeat-details-on-retry.history.json +145 -0
- package/fixtures/histories/interceptor-headers.history.json +339 -0
- package/fixtures/histories/local-activity-abandoned-at-completion.history.json +73 -0
- package/fixtures/histories/local-activity-cancelled-in-scope.history.json +118 -0
- package/fixtures/histories/local-activity-completed.history.json +157 -0
- package/fixtures/histories/local-activity-failed.history.json +93 -0
- package/fixtures/histories/local-activity-retry-in-task.history.json +88 -0
- package/fixtures/histories/query-custom.history.json +213 -0
- package/fixtures/histories/query-default-handler.history.json +120 -0
- package/fixtures/histories/reset-forked-reapplied-signals.history.json +239 -0
- package/fixtures/histories/reset-reapplied-update-admitted.history.json +228 -0
- package/fixtures/histories/run-retry-last-failure.history.json +90 -0
- package/fixtures/histories/run-timeout.history.json +159 -0
- package/fixtures/histories/schedule-to-start-timeout.history.json +132 -0
- package/fixtures/histories/search-attributes-upserted.history.json +177 -0
- package/fixtures/histories/start-delay-signal-ends-delay.history.json +155 -0
- package/fixtures/histories/typeerror-task-retry-100.history.json +137 -0
- package/fixtures/histories/update-accepted-completed.history.json +45 -30
- package/fixtures/histories/update-default-handler.history.json +246 -0
- package/fixtures/histories/update-handler-awaits-activity.history.json +196 -0
- package/fixtures/histories/update-not-handled.history.json +138 -0
- package/fixtures/histories/update-rejected-no-event.history.json +190 -0
- package/fixtures/histories/update-with-start-admitted.history.json +150 -0
- package/fixtures/histories/user-activity-cancel.history.json +149 -0
- package/fixtures/histories/user-activity-retry.history.json +143 -0
- package/fixtures/histories/user-activity.history.json +149 -0
- package/package.json +1 -1
- package/schema/bridge-v2.schema.json +1062 -0
- package/schema/history-file.schema.json +538 -83
- package/schema/ir-v2.schema.json +290 -0
- package/schema/payload-fields.json +162 -0
- package/schema/run-event.schema.json +503 -82
- package/schema/workflow-command.schema.json +372 -69
- package/schema/workflow-task.schema.json +924 -171
- package/dist/assemble-BLqQ8lSu.d.cts +0 -39
- package/dist/assemble-DWgaXHd-.d.ts +0 -39
- package/dist/chunk-DHTLALBL.cjs +0 -80
- package/dist/chunk-DJYMDLV5.js +0 -227
- package/dist/chunk-I5LR3D2K.js +0 -869
- package/dist/chunk-M4BBAERY.cjs +0 -1635
- package/dist/chunk-N23SKIG4.js +0 -73
- package/dist/chunk-PZCVF76Q.cjs +0 -868
- package/dist/chunk-QQ6ULXHI.cjs +0 -885
- package/dist/chunk-UK3WM7YZ.cjs +0 -75
- package/dist/chunk-VOKMAAJP.js +0 -848
- package/dist/node-evaluator-4MSDKWOG.cjs +0 -22
- package/dist/node-evaluator-SX4LEYQC.js +0 -12
- package/dist/workflow-C2a05WUJ.d.ts +0 -444
- package/dist/workflow-J-yYixny.d.cts +0 -444
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkIQPXHQQQ_cjs = require('./chunk-IQPXHQQQ.cjs');
|
|
4
|
+
var chunkGVTZMA5C_cjs = require('./chunk-GVTZMA5C.cjs');
|
|
5
|
+
var chunkSAENRNBJ_cjs = require('./chunk-SAENRNBJ.cjs');
|
|
6
|
+
var chunkVA4OFR72_cjs = require('./chunk-VA4OFR72.cjs');
|
|
7
|
+
|
|
8
|
+
// src/builder/collect.ts
|
|
9
|
+
var COLLECTION_FORMAT = "fluidgrids.tier1-collection";
|
|
10
|
+
function configDuration(value) {
|
|
11
|
+
return typeof value === "string" ? value : chunkVA4OFR72_cjs.toMs(value) / 1e3;
|
|
12
|
+
}
|
|
13
|
+
function runSettingsOf(options) {
|
|
14
|
+
const config = {};
|
|
15
|
+
const features = [];
|
|
16
|
+
if (options.runTimeout !== void 0) config.timeout = chunkVA4OFR72_cjs.toMs(options.runTimeout) / 1e3;
|
|
17
|
+
if (options.executionTimeout !== void 0)
|
|
18
|
+
config.executionTimeout = configDuration(options.executionTimeout);
|
|
19
|
+
if (options.workflowTaskTimeout !== void 0)
|
|
20
|
+
config.workflowTaskTimeout = configDuration(options.workflowTaskTimeout);
|
|
21
|
+
if (options.runTimeout !== void 0 || options.executionTimeout !== void 0 || options.workflowTaskTimeout !== void 0)
|
|
22
|
+
features.push("timeouts");
|
|
23
|
+
if (options.versioningBehavior !== void 0) {
|
|
24
|
+
config.versioningBehavior = options.versioningBehavior;
|
|
25
|
+
if (options.versioningBehavior === "AUTO_UPGRADE") features.push("autoUpgrade");
|
|
26
|
+
}
|
|
27
|
+
if (options.retry !== void 0) {
|
|
28
|
+
const retry = {};
|
|
29
|
+
if (options.retry.maxAttempts !== void 0) retry.maxAttempts = options.retry.maxAttempts;
|
|
30
|
+
if (options.retry.initialDelay !== void 0)
|
|
31
|
+
retry.initialDelay = configDuration(options.retry.initialDelay);
|
|
32
|
+
if (options.retry.backoffMultiplier !== void 0)
|
|
33
|
+
retry.backoffMultiplier = options.retry.backoffMultiplier;
|
|
34
|
+
if (options.retry.maxDelay !== void 0)
|
|
35
|
+
retry.maxDelay = configDuration(options.retry.maxDelay);
|
|
36
|
+
if (options.retry.nonRetryableErrorTypes !== void 0)
|
|
37
|
+
retry.nonRetryableErrorTypes = [...options.retry.nonRetryableErrorTypes];
|
|
38
|
+
config.retry = retry;
|
|
39
|
+
features.push("runRetry");
|
|
40
|
+
}
|
|
41
|
+
return { config, features };
|
|
42
|
+
}
|
|
43
|
+
function triggerOf(spec, where) {
|
|
44
|
+
if (spec === void 0) return void 0;
|
|
45
|
+
const operation = chunkIQPXHQQQ_cjs.isOperation(spec) ? spec : chunkSAENRNBJ_cjs.isRecord(spec) ? spec.operation : void 0;
|
|
46
|
+
if (!chunkIQPXHQQQ_cjs.isOperation(operation))
|
|
47
|
+
throw new chunkGVTZMA5C_cjs.BuilderError(`${where}: trigger must be a trigger operation`);
|
|
48
|
+
const out = { nodeType: operation.nodeType };
|
|
49
|
+
if (operation.version !== void 0) out.version = operation.version;
|
|
50
|
+
if (operation.operation !== void 0) out.operation = operation.operation;
|
|
51
|
+
if (!chunkIQPXHQQQ_cjs.isOperation(spec)) {
|
|
52
|
+
if (spec.args !== void 0) out.args = spec.args;
|
|
53
|
+
if (spec.id !== void 0) out.id = spec.id;
|
|
54
|
+
}
|
|
55
|
+
return out;
|
|
56
|
+
}
|
|
57
|
+
function collectWorkflowExports(modules) {
|
|
58
|
+
const exportNames = /* @__PURE__ */ new Map();
|
|
59
|
+
const durable = [];
|
|
60
|
+
const implementations = [];
|
|
61
|
+
const interceptorModules = [];
|
|
62
|
+
for (const [module, namespace] of modules) {
|
|
63
|
+
if (Object.hasOwn(namespace, "interceptors")) interceptorModules.push(module);
|
|
64
|
+
for (const exportName of Object.keys(namespace).sort()) {
|
|
65
|
+
const value = namespace[exportName];
|
|
66
|
+
if (chunkVA4OFR72_cjs.isActivityImplementation(value)) {
|
|
67
|
+
implementations.push({ module, exportName, name: value.name });
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
if (!chunkVA4OFR72_cjs.isDurableWorkflow(value) || exportNames.has(value)) continue;
|
|
71
|
+
exportNames.set(value, exportName);
|
|
72
|
+
const options = value.options;
|
|
73
|
+
const entry = {
|
|
74
|
+
module,
|
|
75
|
+
exportName,
|
|
76
|
+
name: value.name,
|
|
77
|
+
taskQueue: options.taskQueue ?? "managed",
|
|
78
|
+
interface: chunkVA4OFR72_cjs.interfaceOf(value)
|
|
79
|
+
};
|
|
80
|
+
if (options.title !== void 0) entry.title = options.title;
|
|
81
|
+
if (options.description !== void 0) entry.description = options.description;
|
|
82
|
+
if (options.standalone !== void 0) entry.standalone = options.standalone;
|
|
83
|
+
const trigger = triggerOf(options.trigger, `workflow("${value.name}")`);
|
|
84
|
+
if (trigger) entry.trigger = trigger;
|
|
85
|
+
const settings = runSettingsOf(options);
|
|
86
|
+
if (value.dynamic === true) {
|
|
87
|
+
entry.dynamic = true;
|
|
88
|
+
settings.features.push("dynamic");
|
|
89
|
+
}
|
|
90
|
+
if (Object.keys(settings.config).length > 0) entry.config = settings.config;
|
|
91
|
+
if (settings.features.length > 0) entry.features = settings.features;
|
|
92
|
+
durable.push(entry);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
const workflows = [];
|
|
96
|
+
for (const [module, namespace] of modules) {
|
|
97
|
+
for (const exportName of Object.keys(namespace).sort()) {
|
|
98
|
+
const value = namespace[exportName];
|
|
99
|
+
if (!chunkIQPXHQQQ_cjs.isTier1Workflow(value)) continue;
|
|
100
|
+
for (const ref of value.durableRefs ?? []) {
|
|
101
|
+
const resolved = exportNames.get(ref.definition);
|
|
102
|
+
if (resolved === void 0)
|
|
103
|
+
throw new chunkGVTZMA5C_cjs.BuilderError(
|
|
104
|
+
`${value.key}: wf.codeWorkflow node "${ref.nodeId}" uses workflow("${ref.definition.name}"), which no module exports`
|
|
105
|
+
);
|
|
106
|
+
const recorded = value.recording.nodes.find((entry) => entry.node.id === ref.nodeId);
|
|
107
|
+
const state = recorded?.node.args?.state;
|
|
108
|
+
if (chunkSAENRNBJ_cjs.isRecord(state)) chunkSAENRNBJ_cjs.setOwn(state, "workflowFn", resolved);
|
|
109
|
+
}
|
|
110
|
+
workflows.push({ module, exportName, recording: value.recording });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const collection = {
|
|
114
|
+
format: COLLECTION_FORMAT,
|
|
115
|
+
workflows,
|
|
116
|
+
...durable.length > 0 ? { durable } : {},
|
|
117
|
+
...implementations.length > 0 ? { activityImplementations: implementations } : {},
|
|
118
|
+
...interceptorModules.length > 0 ? { interceptorModules } : {}
|
|
119
|
+
};
|
|
120
|
+
return JSON.stringify(collection);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
exports.COLLECTION_FORMAT = COLLECTION_FORMAT;
|
|
124
|
+
exports.collectWorkflowExports = collectWorkflowExports;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk54FLQNUM_cjs = require('./chunk-54FLQNUM.cjs');
|
|
4
4
|
var chunkSAENRNBJ_cjs = require('./chunk-SAENRNBJ.cjs');
|
|
5
5
|
|
|
6
6
|
// src/ir/diff.ts
|
|
@@ -53,8 +53,8 @@ function diffCollection(before, after, path, out) {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
function diffDefinitions(before, after) {
|
|
56
|
-
const left =
|
|
57
|
-
const right =
|
|
56
|
+
const left = chunk54FLQNUM_cjs.hashedProjection(before);
|
|
57
|
+
const right = chunk54FLQNUM_cjs.hashedProjection(after);
|
|
58
58
|
const out = [];
|
|
59
59
|
if (!chunkSAENRNBJ_cjs.isRecord(left) || !chunkSAENRNBJ_cjs.isRecord(right)) {
|
|
60
60
|
diffValues(left, right, "", out);
|
|
@@ -49,9 +49,17 @@ var EXECUTOR_INTERNAL_TYPES = /* @__PURE__ */ new Set([
|
|
|
49
49
|
]);
|
|
50
50
|
var CODE_WORKFLOW_NODE_TYPE = "internal:code-workflow";
|
|
51
51
|
var WAIT_FOR_SIGNAL_NODE_TYPE = "internal:wait-for-signal";
|
|
52
|
+
var SIGNAL_RUN_NODE_TYPE = "internal:signal-run";
|
|
53
|
+
var SET_SEARCH_ATTRIBUTES_NODE_TYPE = "internal:set-search-attributes";
|
|
52
54
|
var V2_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
53
55
|
CODE_WORKFLOW_NODE_TYPE,
|
|
54
|
-
WAIT_FOR_SIGNAL_NODE_TYPE
|
|
56
|
+
WAIT_FOR_SIGNAL_NODE_TYPE,
|
|
57
|
+
SIGNAL_RUN_NODE_TYPE,
|
|
58
|
+
SET_SEARCH_ATTRIBUTES_NODE_TYPE
|
|
59
|
+
]);
|
|
60
|
+
var PHASE_C_NODE_TYPES = /* @__PURE__ */ new Set([
|
|
61
|
+
SIGNAL_RUN_NODE_TYPE,
|
|
62
|
+
SET_SEARCH_ATTRIBUTES_NODE_TYPE
|
|
55
63
|
]);
|
|
56
64
|
var INTERNAL_TRIGGER_TYPES = /* @__PURE__ */ new Set([
|
|
57
65
|
"internal:api",
|
|
@@ -264,6 +272,9 @@ function buildIdOf(bundle) {
|
|
|
264
272
|
|
|
265
273
|
exports.CODE_WORKFLOW_NODE_TYPE = CODE_WORKFLOW_NODE_TYPE;
|
|
266
274
|
exports.INTERNAL_TRIGGER_TYPES = INTERNAL_TRIGGER_TYPES;
|
|
275
|
+
exports.PHASE_C_NODE_TYPES = PHASE_C_NODE_TYPES;
|
|
276
|
+
exports.SET_SEARCH_ATTRIBUTES_NODE_TYPE = SET_SEARCH_ATTRIBUTES_NODE_TYPE;
|
|
277
|
+
exports.SIGNAL_RUN_NODE_TYPE = SIGNAL_RUN_NODE_TYPE;
|
|
267
278
|
exports.V2_NODE_TYPES = V2_NODE_TYPES;
|
|
268
279
|
exports.WAIT_FOR_SIGNAL_NODE_TYPE = WAIT_FOR_SIGNAL_NODE_TYPE;
|
|
269
280
|
exports.buildIdOf = buildIdOf;
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
// src/history/retry.ts
|
|
2
|
+
var DEFAULT_ACTIVITY_RETRY = Object.freeze({
|
|
3
|
+
retryDelay: 1e3,
|
|
4
|
+
backoffMultiplier: 2,
|
|
5
|
+
maxDelay: 1e5
|
|
6
|
+
});
|
|
7
|
+
var FINAL_TIMEOUTS = /* @__PURE__ */ new Set(["SCHEDULE_TO_START", "SCHEDULE_TO_CLOSE"]);
|
|
8
|
+
function computeRetryDelay(policy, attempt, failure) {
|
|
9
|
+
if (failure?.nonRetryable === true) return { retry: false, reason: "nonRetryable" };
|
|
10
|
+
if (failure?.timeoutType !== void 0 && FINAL_TIMEOUTS.has(failure.timeoutType))
|
|
11
|
+
return { retry: false, reason: "finalTimeout" };
|
|
12
|
+
if (failure?.type !== void 0 && policy.nonRetryableErrorTypes !== void 0 && policy.nonRetryableErrorTypes.includes(failure.type))
|
|
13
|
+
return { retry: false, reason: "typeDenied" };
|
|
14
|
+
if (failure !== void 0 && policy.retryOnErrorTypes !== void 0 && policy.retryOnErrorTypes.length > 0 && !policy.retryOnErrorTypes.includes(failure.errorType))
|
|
15
|
+
return { retry: false, reason: "errorTypeNotListed" };
|
|
16
|
+
if (policy.maxRetries !== void 0 && attempt > policy.maxRetries)
|
|
17
|
+
return { retry: false, reason: "maxRetries" };
|
|
18
|
+
if (failure?.nextRetryDelayMs !== void 0)
|
|
19
|
+
return { retry: true, delayMs: Math.max(0, Math.round(failure.nextRetryDelayMs)) };
|
|
20
|
+
const base = Math.max(0, policy.retryDelay);
|
|
21
|
+
const multiplier = policy.backoffMultiplier ?? 2;
|
|
22
|
+
const cap = policy.maxDelay ?? base * 100;
|
|
23
|
+
const exponent = Math.max(0, attempt - 1);
|
|
24
|
+
const delay = Math.min(base * Math.pow(multiplier, exponent), cap);
|
|
25
|
+
return { retry: true, delayMs: Math.round(Number.isFinite(delay) ? delay : cap) };
|
|
26
|
+
}
|
|
27
|
+
function explicitRetryPolicy(policy) {
|
|
28
|
+
const retryDelay = policy?.retryDelay ?? DEFAULT_ACTIVITY_RETRY.retryDelay;
|
|
29
|
+
const out = {
|
|
30
|
+
retryDelay,
|
|
31
|
+
backoffMultiplier: policy?.backoffMultiplier ?? DEFAULT_ACTIVITY_RETRY.backoffMultiplier ?? 2,
|
|
32
|
+
maxDelay: policy?.maxDelay ?? (policy?.retryDelay === void 0 ? 1e5 : Math.max(retryDelay, retryDelay * 100))
|
|
33
|
+
};
|
|
34
|
+
if (policy?.maxRetries !== void 0) out.maxRetries = policy.maxRetries;
|
|
35
|
+
if (policy?.retryOnErrorTypes !== void 0)
|
|
36
|
+
out.retryOnErrorTypes = [...policy.retryOnErrorTypes];
|
|
37
|
+
if (policy?.nonRetryableErrorTypes !== void 0)
|
|
38
|
+
out.nonRetryableErrorTypes = [...policy.nonRetryableErrorTypes];
|
|
39
|
+
return out;
|
|
40
|
+
}
|
|
41
|
+
function computeRunRetryDelay(policy, attempt, failure) {
|
|
42
|
+
if (policy === void 0) return { retry: false, reason: "noPolicy" };
|
|
43
|
+
if (failure.timeoutType === "WORKFLOW_EXECUTION")
|
|
44
|
+
return { retry: false, reason: "executionTimeout" };
|
|
45
|
+
if (policy.maxAttempts !== void 0 && attempt >= policy.maxAttempts)
|
|
46
|
+
return { retry: false, reason: "maxAttempts" };
|
|
47
|
+
const activityPolicy = {
|
|
48
|
+
retryDelay: policy.initialDelayMs,
|
|
49
|
+
...policy.backoffMultiplier !== void 0 ? { backoffMultiplier: policy.backoffMultiplier } : {},
|
|
50
|
+
...policy.maxDelayMs !== void 0 ? { maxDelay: policy.maxDelayMs } : {},
|
|
51
|
+
...policy.retryOnErrorTypes !== void 0 ? { retryOnErrorTypes: policy.retryOnErrorTypes } : {},
|
|
52
|
+
...policy.nonRetryableErrorTypes !== void 0 ? { nonRetryableErrorTypes: policy.nonRetryableErrorTypes } : {}
|
|
53
|
+
};
|
|
54
|
+
const classified = { ...failure };
|
|
55
|
+
if (classified.timeoutType === "WORKFLOW_RUN") delete classified.timeoutType;
|
|
56
|
+
const decision = computeRetryDelay(activityPolicy, attempt, classified);
|
|
57
|
+
if (decision.retry) return decision;
|
|
58
|
+
switch (decision.reason) {
|
|
59
|
+
case "nonRetryable":
|
|
60
|
+
case "typeDenied":
|
|
61
|
+
case "errorTypeNotListed":
|
|
62
|
+
return { retry: false, reason: decision.reason };
|
|
63
|
+
default:
|
|
64
|
+
return { retry: false, reason: "maxAttempts" };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function explicitRunRetryPolicy(policy) {
|
|
68
|
+
const initialDelayMs = policy.initialDelayMs ?? DEFAULT_ACTIVITY_RETRY.retryDelay;
|
|
69
|
+
const out = {
|
|
70
|
+
initialDelayMs,
|
|
71
|
+
backoffMultiplier: policy.backoffMultiplier ?? 2,
|
|
72
|
+
maxDelayMs: policy.maxDelayMs ?? (policy.initialDelayMs === void 0 ? 1e5 : Math.max(initialDelayMs, initialDelayMs * 100))
|
|
73
|
+
};
|
|
74
|
+
if (policy.maxAttempts !== void 0) out.maxAttempts = policy.maxAttempts;
|
|
75
|
+
if (policy.retryOnErrorTypes !== void 0) out.retryOnErrorTypes = [...policy.retryOnErrorTypes];
|
|
76
|
+
if (policy.nonRetryableErrorTypes !== void 0)
|
|
77
|
+
out.nonRetryableErrorTypes = [...policy.nonRetryableErrorTypes];
|
|
78
|
+
return out;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// src/history/types.ts
|
|
82
|
+
var HISTORY_PROTOCOL = 1;
|
|
83
|
+
var RUNTIME_RELEASE = 3;
|
|
84
|
+
var RUNTIME_CAPABILITIES = ["updates", "queries", "dynamic"];
|
|
85
|
+
var EVENT_TYPES = [
|
|
86
|
+
"WORKFLOW_STARTED",
|
|
87
|
+
"WORKFLOW_TASK_SCHEDULED",
|
|
88
|
+
"WORKFLOW_TASK_STARTED",
|
|
89
|
+
"WORKFLOW_TASK_COMPLETED",
|
|
90
|
+
"WORKFLOW_TASK_FAILED",
|
|
91
|
+
"WORKFLOW_TASK_TIMED_OUT",
|
|
92
|
+
"ACTIVITY_SCHEDULED",
|
|
93
|
+
"ACTIVITY_STARTED",
|
|
94
|
+
"ACTIVITY_HEARTBEAT",
|
|
95
|
+
"ACTIVITY_COMPLETED",
|
|
96
|
+
"ACTIVITY_FAILED",
|
|
97
|
+
"ACTIVITY_TIMED_OUT",
|
|
98
|
+
"ACTIVITY_CANCEL_REQUESTED",
|
|
99
|
+
"ACTIVITY_CANCELLED",
|
|
100
|
+
"ACTIVITY_PAUSED",
|
|
101
|
+
"ACTIVITY_UNPAUSED",
|
|
102
|
+
"ACTIVITY_RESET",
|
|
103
|
+
"ACTIVITY_OPTIONS_UPDATED",
|
|
104
|
+
"TIMER_STARTED",
|
|
105
|
+
"TIMER_FIRED",
|
|
106
|
+
"TIMER_CANCELLED",
|
|
107
|
+
"SIGNAL_RECEIVED",
|
|
108
|
+
"UPDATE_ADMITTED",
|
|
109
|
+
"UPDATE_ACCEPTED",
|
|
110
|
+
"UPDATE_COMPLETED",
|
|
111
|
+
"CHILD_RUN_INITIATED",
|
|
112
|
+
"CHILD_RUN_STARTED",
|
|
113
|
+
"CHILD_RUN_COMPLETED",
|
|
114
|
+
"CHILD_RUN_FAILED",
|
|
115
|
+
"CHILD_RUN_CANCELLED",
|
|
116
|
+
"CHILD_RUN_TERMINATED",
|
|
117
|
+
"CHILD_RUN_TIMED_OUT",
|
|
118
|
+
"EXTERNAL_RUN_CANCEL_REQUESTED",
|
|
119
|
+
"EXTERNAL_RUN_CANCEL_RESOLVED",
|
|
120
|
+
"EXTERNAL_RUN_SIGNALED",
|
|
121
|
+
"SIDE_EFFECT_RECORDED",
|
|
122
|
+
"LOCAL_ACTIVITY_COMPLETED",
|
|
123
|
+
"LOCAL_ACTIVITY_FAILED",
|
|
124
|
+
"SEARCH_ATTRIBUTES_UPSERTED",
|
|
125
|
+
"CONTEXT_UPSERTED",
|
|
126
|
+
"MARKER_RECORDED",
|
|
127
|
+
"WORKFLOW_CANCEL_REQUESTED",
|
|
128
|
+
"WORKFLOW_RESET",
|
|
129
|
+
"VERSIONING_OVERRIDE_SET",
|
|
130
|
+
"WORKFLOW_COMPLETED",
|
|
131
|
+
"WORKFLOW_FAILED",
|
|
132
|
+
"WORKFLOW_CANCELLED",
|
|
133
|
+
"WORKFLOW_TERMINATED",
|
|
134
|
+
"WORKFLOW_TIMED_OUT",
|
|
135
|
+
"WORKFLOW_CONTINUED_AS_NEW"
|
|
136
|
+
];
|
|
137
|
+
var COMMAND_TYPES = [
|
|
138
|
+
"SCHEDULE_ACTIVITY",
|
|
139
|
+
"REQUEST_CANCEL_ACTIVITY",
|
|
140
|
+
"START_TIMER",
|
|
141
|
+
"CANCEL_TIMER",
|
|
142
|
+
"START_CHILD_RUN",
|
|
143
|
+
"SIGNAL_RUN",
|
|
144
|
+
"RECORD_SIDE_EFFECT",
|
|
145
|
+
"RECORD_MARKER",
|
|
146
|
+
"COMPLETE_WORKFLOW",
|
|
147
|
+
"FAIL_WORKFLOW",
|
|
148
|
+
"CANCEL_WORKFLOW",
|
|
149
|
+
"UPSERT_CONTEXT",
|
|
150
|
+
"RECORD_LOCAL_ACTIVITY",
|
|
151
|
+
"CONTINUE_AS_NEW",
|
|
152
|
+
"REQUEST_CANCEL_EXTERNAL_RUN",
|
|
153
|
+
"UPSERT_SEARCH_ATTRIBUTES",
|
|
154
|
+
"ACCEPT_UPDATE",
|
|
155
|
+
"REJECT_UPDATE",
|
|
156
|
+
"COMPLETE_UPDATE"
|
|
157
|
+
];
|
|
158
|
+
var PHASE_B_CORE_COMMANDS = /* @__PURE__ */ new Set([
|
|
159
|
+
"SCHEDULE_ACTIVITY",
|
|
160
|
+
"REQUEST_CANCEL_ACTIVITY",
|
|
161
|
+
"START_TIMER",
|
|
162
|
+
"CANCEL_TIMER",
|
|
163
|
+
"START_CHILD_RUN",
|
|
164
|
+
"SIGNAL_RUN",
|
|
165
|
+
"RECORD_SIDE_EFFECT",
|
|
166
|
+
"RECORD_MARKER",
|
|
167
|
+
"COMPLETE_WORKFLOW",
|
|
168
|
+
"FAIL_WORKFLOW",
|
|
169
|
+
"CANCEL_WORKFLOW"
|
|
170
|
+
]);
|
|
171
|
+
var PHASE_B_PARITY_COMMANDS = /* @__PURE__ */ new Set([
|
|
172
|
+
"UPSERT_CONTEXT",
|
|
173
|
+
"RECORD_LOCAL_ACTIVITY",
|
|
174
|
+
"CONTINUE_AS_NEW",
|
|
175
|
+
"REQUEST_CANCEL_EXTERNAL_RUN"
|
|
176
|
+
]);
|
|
177
|
+
var PHASE_C_COMMANDS = /* @__PURE__ */ new Set([
|
|
178
|
+
"UPSERT_SEARCH_ATTRIBUTES",
|
|
179
|
+
"ACCEPT_UPDATE",
|
|
180
|
+
"REJECT_UPDATE",
|
|
181
|
+
"COMPLETE_UPDATE"
|
|
182
|
+
]);
|
|
183
|
+
var TERMINAL_COMMANDS = /* @__PURE__ */ new Set([
|
|
184
|
+
"COMPLETE_WORKFLOW",
|
|
185
|
+
"FAIL_WORKFLOW",
|
|
186
|
+
"CANCEL_WORKFLOW",
|
|
187
|
+
"CONTINUE_AS_NEW"
|
|
188
|
+
]);
|
|
189
|
+
var TASK_FAILURE_CAUSES = [
|
|
190
|
+
"NON_DETERMINISM",
|
|
191
|
+
"TASK_TIMEOUT",
|
|
192
|
+
"ISOLATE_MEMORY",
|
|
193
|
+
"PROTOCOL_MISMATCH",
|
|
194
|
+
"BUNDLE_UNAVAILABLE",
|
|
195
|
+
"BUNDLE_INTEGRITY",
|
|
196
|
+
"WORKFLOW_CODE_ERROR",
|
|
197
|
+
"HISTORY_LIMIT",
|
|
198
|
+
"UNSUPPORTED_COMMAND",
|
|
199
|
+
"INVALID_REQUEST",
|
|
200
|
+
"INTERNAL"
|
|
201
|
+
];
|
|
202
|
+
var ERROR_TYPES = [
|
|
203
|
+
"TIMEOUT",
|
|
204
|
+
"TRANSIENT",
|
|
205
|
+
"DEPENDENCY",
|
|
206
|
+
"AUTHORIZATION",
|
|
207
|
+
"VALIDATION",
|
|
208
|
+
"PERMANENT",
|
|
209
|
+
"UNKNOWN"
|
|
210
|
+
];
|
|
211
|
+
var EXECUTION_KINDS = ["GRAPH", "DURABLE_FN"];
|
|
212
|
+
var PARENT_CLOSE_POLICIES = ["TERMINATE", "ABANDON", "REQUEST_CANCEL"];
|
|
213
|
+
var ACTIVITY_CANCELLATION_TYPES = [
|
|
214
|
+
"WAIT_CANCELLATION_COMPLETED",
|
|
215
|
+
"TRY_CANCEL",
|
|
216
|
+
"ABANDON"
|
|
217
|
+
];
|
|
218
|
+
var CHILD_CANCELLATION_TYPES = [
|
|
219
|
+
"WAIT_CANCELLATION_COMPLETED",
|
|
220
|
+
"WAIT_CANCELLATION_REQUESTED",
|
|
221
|
+
"TRY_CANCEL",
|
|
222
|
+
"ABANDON"
|
|
223
|
+
];
|
|
224
|
+
var WORKFLOW_ID_REUSE_POLICIES = [
|
|
225
|
+
"ALLOW_DUPLICATE",
|
|
226
|
+
"ALLOW_DUPLICATE_FAILED_ONLY",
|
|
227
|
+
"REJECT_DUPLICATE"
|
|
228
|
+
];
|
|
229
|
+
var WORKFLOW_ID_CONFLICT_POLICIES = [
|
|
230
|
+
"FAIL",
|
|
231
|
+
"USE_EXISTING",
|
|
232
|
+
"TERMINATE_EXISTING"
|
|
233
|
+
];
|
|
234
|
+
var VERSIONING_BEHAVIORS = ["PINNED", "AUTO_UPGRADE"];
|
|
235
|
+
var WORKFLOW_TIMEOUT_TYPES = ["WORKFLOW_RUN", "WORKFLOW_EXECUTION"];
|
|
236
|
+
var FAIRNESS_KEY_MAX_LENGTH = 255;
|
|
237
|
+
var FAIRNESS_WEIGHT_MIN = 0.1;
|
|
238
|
+
var FAIRNESS_WEIGHT_MAX = 10;
|
|
239
|
+
var ACTIVITY_NAME_PATTERN = "^[A-Za-z_][A-Za-z0-9_.-]{0,127}$";
|
|
240
|
+
var TASK_QUEUE_NAME_PATTERN = "^[a-z0-9][a-z0-9-]{0,62}$";
|
|
241
|
+
var MAX_ACTIVITY_CONNECTIONS = 16;
|
|
242
|
+
var MAX_HEADERS_BYTES = 16 * 1024;
|
|
243
|
+
var MAX_SINK_CALLS = 256;
|
|
244
|
+
var DEFAULT_HISTORY_LIMIT = { events: 1e4, bytes: 16 * 1024 * 1024 };
|
|
245
|
+
var CONTINUE_AS_NEW_SUGGESTED_RATIO = 0.8;
|
|
246
|
+
var HISTORY_LIMIT_EXCEEDED_RATIO = 0.95;
|
|
247
|
+
var BUILT_IN_QUERIES = [
|
|
248
|
+
"__stack_trace",
|
|
249
|
+
"__enhanced_stack_trace",
|
|
250
|
+
"__metadata"
|
|
251
|
+
];
|
|
252
|
+
var LOCAL_ACTIVITY_MAX_TIMEOUT_MS = 3e4;
|
|
253
|
+
var COMMAND_EVENT_TYPES = {
|
|
254
|
+
SCHEDULE_ACTIVITY: "ACTIVITY_SCHEDULED",
|
|
255
|
+
REQUEST_CANCEL_ACTIVITY: "ACTIVITY_CANCEL_REQUESTED",
|
|
256
|
+
START_TIMER: "TIMER_STARTED",
|
|
257
|
+
CANCEL_TIMER: "TIMER_CANCELLED",
|
|
258
|
+
START_CHILD_RUN: "CHILD_RUN_INITIATED",
|
|
259
|
+
SIGNAL_RUN: "EXTERNAL_RUN_SIGNALED",
|
|
260
|
+
RECORD_SIDE_EFFECT: "SIDE_EFFECT_RECORDED",
|
|
261
|
+
RECORD_MARKER: "MARKER_RECORDED",
|
|
262
|
+
COMPLETE_WORKFLOW: "WORKFLOW_COMPLETED",
|
|
263
|
+
FAIL_WORKFLOW: "WORKFLOW_FAILED",
|
|
264
|
+
CANCEL_WORKFLOW: "WORKFLOW_CANCELLED",
|
|
265
|
+
UPSERT_CONTEXT: "CONTEXT_UPSERTED",
|
|
266
|
+
RECORD_LOCAL_ACTIVITY: "LOCAL_ACTIVITY_COMPLETED",
|
|
267
|
+
CONTINUE_AS_NEW: "WORKFLOW_CONTINUED_AS_NEW",
|
|
268
|
+
REQUEST_CANCEL_EXTERNAL_RUN: "EXTERNAL_RUN_CANCEL_REQUESTED",
|
|
269
|
+
UPSERT_SEARCH_ATTRIBUTES: "SEARCH_ATTRIBUTES_UPSERTED",
|
|
270
|
+
ACCEPT_UPDATE: "UPDATE_ACCEPTED",
|
|
271
|
+
REJECT_UPDATE: null,
|
|
272
|
+
COMPLETE_UPDATE: "UPDATE_COMPLETED"
|
|
273
|
+
};
|
|
274
|
+
var COMMAND_EVENTS = /* @__PURE__ */ new Set([
|
|
275
|
+
"ACTIVITY_SCHEDULED",
|
|
276
|
+
"ACTIVITY_CANCEL_REQUESTED",
|
|
277
|
+
"TIMER_STARTED",
|
|
278
|
+
"TIMER_CANCELLED",
|
|
279
|
+
"CHILD_RUN_INITIATED",
|
|
280
|
+
"EXTERNAL_RUN_SIGNALED",
|
|
281
|
+
"SIDE_EFFECT_RECORDED",
|
|
282
|
+
"MARKER_RECORDED",
|
|
283
|
+
"WORKFLOW_COMPLETED",
|
|
284
|
+
"WORKFLOW_FAILED",
|
|
285
|
+
"WORKFLOW_CANCELLED",
|
|
286
|
+
"CONTEXT_UPSERTED",
|
|
287
|
+
"LOCAL_ACTIVITY_COMPLETED",
|
|
288
|
+
"LOCAL_ACTIVITY_FAILED",
|
|
289
|
+
"WORKFLOW_CONTINUED_AS_NEW",
|
|
290
|
+
"EXTERNAL_RUN_CANCEL_REQUESTED",
|
|
291
|
+
"SEARCH_ATTRIBUTES_UPSERTED",
|
|
292
|
+
"UPDATE_ACCEPTED",
|
|
293
|
+
"UPDATE_COMPLETED"
|
|
294
|
+
]);
|
|
295
|
+
var INPUT_EVENTS = /* @__PURE__ */ new Set([
|
|
296
|
+
"WORKFLOW_STARTED",
|
|
297
|
+
"ACTIVITY_COMPLETED",
|
|
298
|
+
"ACTIVITY_FAILED",
|
|
299
|
+
"ACTIVITY_TIMED_OUT",
|
|
300
|
+
"ACTIVITY_CANCELLED",
|
|
301
|
+
"TIMER_FIRED",
|
|
302
|
+
"SIGNAL_RECEIVED",
|
|
303
|
+
"UPDATE_ADMITTED",
|
|
304
|
+
"CHILD_RUN_STARTED",
|
|
305
|
+
"CHILD_RUN_COMPLETED",
|
|
306
|
+
"CHILD_RUN_FAILED",
|
|
307
|
+
"CHILD_RUN_CANCELLED",
|
|
308
|
+
"CHILD_RUN_TERMINATED",
|
|
309
|
+
"CHILD_RUN_TIMED_OUT",
|
|
310
|
+
"EXTERNAL_RUN_CANCEL_RESOLVED",
|
|
311
|
+
"WORKFLOW_CANCEL_REQUESTED"
|
|
312
|
+
]);
|
|
313
|
+
var TERMINAL_EVENTS = /* @__PURE__ */ new Set([
|
|
314
|
+
"WORKFLOW_COMPLETED",
|
|
315
|
+
"WORKFLOW_FAILED",
|
|
316
|
+
"WORKFLOW_CANCELLED",
|
|
317
|
+
"WORKFLOW_TERMINATED",
|
|
318
|
+
"WORKFLOW_TIMED_OUT",
|
|
319
|
+
"WORKFLOW_CONTINUED_AS_NEW"
|
|
320
|
+
]);
|
|
321
|
+
function isInputEvent(event) {
|
|
322
|
+
if (event.type === "EXTERNAL_RUN_SIGNALED") return event.payload["resolved"] === true;
|
|
323
|
+
return INPUT_EVENTS.has(event.type);
|
|
324
|
+
}
|
|
325
|
+
function isCommandEvent(event) {
|
|
326
|
+
if (event.type === "EXTERNAL_RUN_SIGNALED") return event.payload["resolved"] !== true;
|
|
327
|
+
return COMMAND_EVENTS.has(event.type);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
export { ACTIVITY_CANCELLATION_TYPES, ACTIVITY_NAME_PATTERN, BUILT_IN_QUERIES, CHILD_CANCELLATION_TYPES, COMMAND_EVENTS, COMMAND_EVENT_TYPES, COMMAND_TYPES, CONTINUE_AS_NEW_SUGGESTED_RATIO, DEFAULT_ACTIVITY_RETRY, DEFAULT_HISTORY_LIMIT, ERROR_TYPES, EVENT_TYPES, EXECUTION_KINDS, FAIRNESS_KEY_MAX_LENGTH, FAIRNESS_WEIGHT_MAX, FAIRNESS_WEIGHT_MIN, HISTORY_LIMIT_EXCEEDED_RATIO, HISTORY_PROTOCOL, INPUT_EVENTS, LOCAL_ACTIVITY_MAX_TIMEOUT_MS, MAX_ACTIVITY_CONNECTIONS, MAX_HEADERS_BYTES, MAX_SINK_CALLS, PARENT_CLOSE_POLICIES, PHASE_B_CORE_COMMANDS, PHASE_B_PARITY_COMMANDS, PHASE_C_COMMANDS, RUNTIME_CAPABILITIES, RUNTIME_RELEASE, TASK_FAILURE_CAUSES, TASK_QUEUE_NAME_PATTERN, TERMINAL_COMMANDS, TERMINAL_EVENTS, VERSIONING_BEHAVIORS, WORKFLOW_ID_CONFLICT_POLICIES, WORKFLOW_ID_REUSE_POLICIES, WORKFLOW_TIMEOUT_TYPES, computeRetryDelay, computeRunRetryDelay, explicitRetryPolicy, explicitRunRetryPolicy, isCommandEvent, isInputEvent };
|