@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.
Files changed (154) hide show
  1. package/README.md +181 -11
  2. package/dist/{activation-BBh1p82z.d.cts → activation-DqUfpHzk.d.cts} +1 -1
  3. package/dist/{activation-DnhG7SmF.d.ts → activation-xpx1oWuo.d.ts} +1 -1
  4. package/dist/{chunk-VRHHBPT6.js → chunk-2D3MYIIF.js} +1212 -128
  5. package/dist/chunk-3U2NU7YC.cjs +124 -0
  6. package/dist/{chunk-NEIUQASE.cjs → chunk-4QKB4ARC.cjs} +3 -3
  7. package/dist/{chunk-GBQ33SIZ.cjs → chunk-54FLQNUM.cjs} +12 -1
  8. package/dist/chunk-5HIVIV53.js +330 -0
  9. package/dist/chunk-5MFVJM76.js +1222 -0
  10. package/dist/{chunk-JD2VQIDZ.cjs → chunk-672KMMBK.cjs} +2 -2
  11. package/dist/{chunk-C5OLWZ42.js → chunk-6A2FGSUS.js} +22 -14
  12. package/dist/{chunk-XKJA7KX3.js → chunk-6OLN6BMB.js} +52 -3
  13. package/dist/{chunk-6FSHT5IL.js → chunk-7EZIANC7.js} +1 -1
  14. package/dist/{chunk-2J6TF7YI.cjs → chunk-A5SXCA62.cjs} +10 -3
  15. package/dist/{chunk-BO6OVILK.js → chunk-AC6ZEXVR.js} +10 -4
  16. package/dist/{chunk-ABFZWYHT.js → chunk-AE5Q6ZAJ.js} +315 -50
  17. package/dist/chunk-C4F5KJTI.js +293 -0
  18. package/dist/{chunk-IISBRUWJ.js → chunk-G5H32GIG.js} +1 -1
  19. package/dist/chunk-GEQDGUGB.cjs +2719 -0
  20. package/dist/{chunk-XHXIDVEC.js → chunk-HCM7ZC7Q.js} +1 -1
  21. package/dist/chunk-HMZUGSMU.cjs +1554 -0
  22. package/dist/{chunk-SAOBPYYJ.cjs → chunk-IQPXHQQQ.cjs} +8 -4
  23. package/dist/{chunk-P6TA5EZT.cjs → chunk-ISOIA7NV.cjs} +335 -58
  24. package/dist/chunk-JSC75O5C.cjs +167 -0
  25. package/dist/chunk-M272AHEX.js +25 -0
  26. package/dist/{chunk-BD7ZPG53.js → chunk-NWQ5WRLE.js} +10 -2
  27. package/dist/chunk-ODZ2IAR2.cjs +1247 -0
  28. package/dist/chunk-Q4MWQNJK.cjs +28 -0
  29. package/dist/{chunk-HWJZVOG7.js → chunk-SR7TR5KX.js} +6 -2
  30. package/dist/{chunk-FEW3JBYA.cjs → chunk-TCTE7DX5.cjs} +3 -3
  31. package/dist/{chunk-623FVQSN.cjs → chunk-TYF56RGB.cjs} +123 -0
  32. package/dist/chunk-VA4OFR72.cjs +324 -0
  33. package/dist/chunk-VU5S5A7V.js +150 -0
  34. package/dist/chunk-YEHR4NNE.js +1522 -0
  35. package/dist/{chunk-FMSW2HDF.cjs → chunk-ZCGKGDCL.cjs} +23 -15
  36. package/dist/codegen/index.d.cts +2 -2
  37. package/dist/codegen/index.d.ts +2 -2
  38. package/dist/collect-6NIEufHd.d.ts +103 -0
  39. package/dist/collect-CcTCKqx6.d.cts +103 -0
  40. package/dist/{file-BOoHZgoQ.d.cts → file-BxYpwjRQ.d.cts} +1007 -21
  41. package/dist/{file-yuPCFU5b.d.ts → file-CFdPQJI9.d.ts} +1007 -21
  42. package/dist/history/index.cjs +375 -86
  43. package/dist/history/index.d.cts +590 -12
  44. package/dist/history/index.d.ts +590 -12
  45. package/dist/history/index.js +50 -4
  46. package/dist/index.cjs +156 -50
  47. package/dist/index.d.cts +38 -58
  48. package/dist/index.d.ts +38 -58
  49. package/dist/index.js +6 -4
  50. package/dist/interceptors-CNcr2dlk.d.ts +159 -0
  51. package/dist/interceptors-CqkNZVfI.d.cts +159 -0
  52. package/dist/ir/index.cjs +362 -38
  53. package/dist/ir/index.d.cts +282 -7
  54. package/dist/ir/index.d.ts +282 -7
  55. package/dist/ir/index.js +329 -23
  56. package/dist/{lower-BzmUz0sq.d.cts → lower-BtRfIW2A.d.cts} +56 -8
  57. package/dist/{lower-_-iT4HYs.d.ts → lower-CpsMFOFX.d.ts} +56 -8
  58. package/dist/{manifest-C8N6HDYl.d.ts → manifest-D-I_twys.d.ts} +1 -1
  59. package/dist/{manifest-0OLw0i7k.d.cts → manifest-DahBQVM8.d.cts} +1 -1
  60. package/dist/node-evaluator-DGQDPSPI.cjs +24 -0
  61. package/dist/node-evaluator-LEEVD7H7.js +14 -0
  62. package/dist/payload-fields-BVRQn2yH.d.cts +122 -0
  63. package/dist/payload-fields-oOBWxDiG.d.ts +122 -0
  64. package/dist/quickjs/index.cjs +28 -27
  65. package/dist/quickjs/index.d.cts +6 -6
  66. package/dist/quickjs/index.d.ts +6 -6
  67. package/dist/quickjs/index.js +10 -9
  68. package/dist/roundtrip/index.cjs +259 -51
  69. package/dist/roundtrip/index.d.cts +100 -9
  70. package/dist/roundtrip/index.d.ts +100 -9
  71. package/dist/roundtrip/index.js +177 -11
  72. package/dist/runtime/index.cjs +21 -20
  73. package/dist/runtime/index.d.cts +184 -15
  74. package/dist/runtime/index.d.ts +184 -15
  75. package/dist/runtime/index.js +8 -7
  76. package/dist/testing/index.cjs +1122 -115
  77. package/dist/testing/index.d.cts +294 -13
  78. package/dist/testing/index.d.ts +294 -13
  79. package/dist/testing/index.js +1086 -84
  80. package/dist/{types-DV-HX_Gt.d.ts → types-Bv2i4cBX.d.cts} +244 -33
  81. package/dist/{types-CpBBjaGX.d.cts → types-DGx-b9eq.d.ts} +244 -33
  82. package/dist/{types-BGoPzgcl.d.ts → types-V7jEEUaL.d.cts} +20 -1
  83. package/dist/{types-BGoPzgcl.d.cts → types-V7jEEUaL.d.ts} +20 -1
  84. package/dist/{workflow-Bpr3vnA_.d.ts → workflow-B18OeF7g.d.ts} +2 -2
  85. package/dist/workflow-BGnv8SS6.d.ts +803 -0
  86. package/dist/{workflow-FXUkpIBc.d.cts → workflow-BJPFv3cp.d.cts} +2 -2
  87. package/dist/workflow-DS32Gtws.d.cts +803 -0
  88. package/fixtures/histories/activity-options-updated.history.json +159 -0
  89. package/fixtures/histories/activity-paused-unpaused.history.json +160 -0
  90. package/fixtures/histories/auto-upgrade-patched.history.json +276 -0
  91. package/fixtures/histories/benign-failure.history.json +146 -0
  92. package/fixtures/histories/cancel-activity-try-cancel.history.json +150 -0
  93. package/fixtures/histories/child-cancel-wait-requested.history.json +217 -0
  94. package/fixtures/histories/child-options-roundtrip.history.json +192 -0
  95. package/fixtures/histories/codec-opaque.history.json +229 -0
  96. package/fixtures/histories/continue-as-new-last-result.history.json +86 -0
  97. package/fixtures/histories/continue-as-new-options.history.json +99 -0
  98. package/fixtures/histories/continue-as-new-r1-long-task-queue.history.json +78 -0
  99. package/fixtures/histories/continue-as-new-r1-retry-options.history.json +83 -0
  100. package/fixtures/histories/dynamic-workflow.history.json +150 -0
  101. package/fixtures/histories/execution-timeout-chain.history.json +98 -0
  102. package/fixtures/histories/external-cancel-resolved.history.json +123 -0
  103. package/fixtures/histories/external-cancel-unknown-target.history.json +127 -0
  104. package/fixtures/histories/failure-error-types-fails-run.history.json +144 -0
  105. package/fixtures/histories/handler-drain-warn.history.json +222 -0
  106. package/fixtures/histories/heartbeat-details-on-retry.history.json +145 -0
  107. package/fixtures/histories/interceptor-headers.history.json +339 -0
  108. package/fixtures/histories/local-activity-abandoned-at-completion.history.json +73 -0
  109. package/fixtures/histories/local-activity-cancelled-in-scope.history.json +118 -0
  110. package/fixtures/histories/local-activity-completed.history.json +157 -0
  111. package/fixtures/histories/local-activity-failed.history.json +93 -0
  112. package/fixtures/histories/local-activity-retry-in-task.history.json +88 -0
  113. package/fixtures/histories/query-custom.history.json +213 -0
  114. package/fixtures/histories/query-default-handler.history.json +120 -0
  115. package/fixtures/histories/reset-forked-reapplied-signals.history.json +239 -0
  116. package/fixtures/histories/reset-reapplied-update-admitted.history.json +228 -0
  117. package/fixtures/histories/run-retry-last-failure.history.json +90 -0
  118. package/fixtures/histories/run-timeout.history.json +159 -0
  119. package/fixtures/histories/schedule-to-start-timeout.history.json +132 -0
  120. package/fixtures/histories/search-attributes-upserted.history.json +177 -0
  121. package/fixtures/histories/start-delay-signal-ends-delay.history.json +155 -0
  122. package/fixtures/histories/typeerror-task-retry-100.history.json +137 -0
  123. package/fixtures/histories/update-accepted-completed.history.json +45 -30
  124. package/fixtures/histories/update-default-handler.history.json +246 -0
  125. package/fixtures/histories/update-handler-awaits-activity.history.json +196 -0
  126. package/fixtures/histories/update-not-handled.history.json +138 -0
  127. package/fixtures/histories/update-rejected-no-event.history.json +190 -0
  128. package/fixtures/histories/update-with-start-admitted.history.json +150 -0
  129. package/fixtures/histories/user-activity-cancel.history.json +149 -0
  130. package/fixtures/histories/user-activity-retry.history.json +143 -0
  131. package/fixtures/histories/user-activity.history.json +149 -0
  132. package/package.json +1 -1
  133. package/schema/bridge-v2.schema.json +1062 -0
  134. package/schema/history-file.schema.json +538 -83
  135. package/schema/ir-v2.schema.json +290 -0
  136. package/schema/payload-fields.json +162 -0
  137. package/schema/run-event.schema.json +503 -82
  138. package/schema/workflow-command.schema.json +372 -69
  139. package/schema/workflow-task.schema.json +924 -171
  140. package/dist/assemble-BLqQ8lSu.d.cts +0 -39
  141. package/dist/assemble-DWgaXHd-.d.ts +0 -39
  142. package/dist/chunk-DHTLALBL.cjs +0 -80
  143. package/dist/chunk-DJYMDLV5.js +0 -227
  144. package/dist/chunk-I5LR3D2K.js +0 -869
  145. package/dist/chunk-M4BBAERY.cjs +0 -1635
  146. package/dist/chunk-N23SKIG4.js +0 -73
  147. package/dist/chunk-PZCVF76Q.cjs +0 -868
  148. package/dist/chunk-QQ6ULXHI.cjs +0 -885
  149. package/dist/chunk-UK3WM7YZ.cjs +0 -75
  150. package/dist/chunk-VOKMAAJP.js +0 -848
  151. package/dist/node-evaluator-4MSDKWOG.cjs +0 -22
  152. package/dist/node-evaluator-SX4LEYQC.js +0 -12
  153. package/dist/workflow-C2a05WUJ.d.ts +0 -444
  154. 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 chunkGBQ33SIZ_cjs = require('./chunk-GBQ33SIZ.cjs');
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 = chunkGBQ33SIZ_cjs.hashedProjection(before);
57
- const right = chunkGBQ33SIZ_cjs.hashedProjection(after);
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 };