@temelj/workflow 0.0.0-alpha.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 (393) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/dist/attributes.d.mts +15 -0
  4. package/dist/attributes.mjs +30 -0
  5. package/dist/client/create.d.mts +31 -0
  6. package/dist/client/create.mjs +67 -0
  7. package/dist/client/facades.d.mts +21 -0
  8. package/dist/client/facades.mjs +142 -0
  9. package/dist/client/mod.d.mts +2 -0
  10. package/dist/client/mod.mjs +2 -0
  11. package/dist/client/run-handle.d.mts +66 -0
  12. package/dist/client/run-handle.mjs +156 -0
  13. package/dist/client/worker-options.d.mts +17 -0
  14. package/dist/client/worker-options.mjs +25 -0
  15. package/dist/collection.d.mts +15 -0
  16. package/dist/collection.mjs +33 -0
  17. package/dist/compiled-function.d.mts +27 -0
  18. package/dist/compiled-function.mjs +54 -0
  19. package/dist/definition.d.mts +37 -0
  20. package/dist/definition.mjs +83 -0
  21. package/dist/engine/child-workflow.d.mts +10 -0
  22. package/dist/engine/child-workflow.mjs +333 -0
  23. package/dist/engine/command-identity.d.mts +9 -0
  24. package/dist/engine/command-identity.mjs +14 -0
  25. package/dist/engine/create.d.mts +106 -0
  26. package/dist/engine/create.mjs +402 -0
  27. package/dist/engine/deterministic.d.mts +12 -0
  28. package/dist/engine/deterministic.mjs +102 -0
  29. package/dist/engine/durable-command.d.mts +10 -0
  30. package/dist/engine/durable-command.mjs +17 -0
  31. package/dist/engine/execution-api.d.mts +29 -0
  32. package/dist/engine/execution-api.mjs +33 -0
  33. package/dist/engine/execution-service.d.mts +41 -0
  34. package/dist/engine/execution-service.mjs +288 -0
  35. package/dist/engine/hooks.d.mts +56 -0
  36. package/dist/engine/hooks.mjs +237 -0
  37. package/dist/engine/inspection-api.d.mts +34 -0
  38. package/dist/engine/inspection-api.mjs +77 -0
  39. package/dist/engine/inspection.d.mts +18 -0
  40. package/dist/engine/inspection.mjs +149 -0
  41. package/dist/engine/lifecycle.d.mts +18 -0
  42. package/dist/engine/lifecycle.mjs +38 -0
  43. package/dist/engine/lock-replay.d.mts +30 -0
  44. package/dist/engine/lock-replay.mjs +38 -0
  45. package/dist/engine/lock.d.mts +21 -0
  46. package/dist/engine/lock.mjs +197 -0
  47. package/dist/engine/message.d.mts +47 -0
  48. package/dist/engine/message.mjs +357 -0
  49. package/dist/engine/mod.d.mts +4 -0
  50. package/dist/engine/mod.mjs +2 -0
  51. package/dist/engine/observation.d.mts +35 -0
  52. package/dist/engine/observation.mjs +201 -0
  53. package/dist/engine/recovery.d.mts +26 -0
  54. package/dist/engine/recovery.mjs +92 -0
  55. package/dist/engine/replay.d.mts +41 -0
  56. package/dist/engine/replay.mjs +122 -0
  57. package/dist/engine/retry-policy.d.mts +4 -0
  58. package/dist/engine/retry-policy.mjs +4 -0
  59. package/dist/engine/retry.d.mts +23 -0
  60. package/dist/engine/retry.mjs +75 -0
  61. package/dist/engine/run-data.d.mts +9 -0
  62. package/dist/engine/run-data.mjs +74 -0
  63. package/dist/engine/run-service.d.mts +38 -0
  64. package/dist/engine/run-service.mjs +133 -0
  65. package/dist/engine/run-utils.d.mts +16 -0
  66. package/dist/engine/run-utils.mjs +83 -0
  67. package/dist/engine/schedule.d.mts +25 -0
  68. package/dist/engine/schedule.mjs +207 -0
  69. package/dist/engine/serialization.d.mts +9 -0
  70. package/dist/engine/serialization.mjs +85 -0
  71. package/dist/engine/start-api.d.mts +30 -0
  72. package/dist/engine/start-api.mjs +98 -0
  73. package/dist/engine/state.d.mts +77 -0
  74. package/dist/engine/state.mjs +464 -0
  75. package/dist/engine/step-api.d.mts +9 -0
  76. package/dist/engine/step-api.mjs +25 -0
  77. package/dist/engine/stream.d.mts +55 -0
  78. package/dist/engine/stream.mjs +333 -0
  79. package/dist/engine/summary/active-events.d.mts +34 -0
  80. package/dist/engine/summary/active-events.mjs +69 -0
  81. package/dist/engine/summary/child-workflow-runs.d.mts +24 -0
  82. package/dist/engine/summary/child-workflow-runs.mjs +138 -0
  83. package/dist/engine/summary/child-workflow-waits.d.mts +21 -0
  84. package/dist/engine/summary/child-workflow-waits.mjs +67 -0
  85. package/dist/engine/summary/recovery-child-workflow-waits.d.mts +11 -0
  86. package/dist/engine/summary/recovery-child-workflow-waits.mjs +89 -0
  87. package/dist/engine/summary/recovery-due-runs.d.mts +16 -0
  88. package/dist/engine/summary/recovery-due-runs.mjs +52 -0
  89. package/dist/engine/summary/recovery-failed-runs.d.mts +14 -0
  90. package/dist/engine/summary/recovery-failed-runs.mjs +33 -0
  91. package/dist/engine/summary/recovery-lease-runs.d.mts +16 -0
  92. package/dist/engine/summary/recovery-lease-runs.mjs +69 -0
  93. package/dist/engine/summary/recovery-locks.d.mts +18 -0
  94. package/dist/engine/summary/recovery-locks.mjs +100 -0
  95. package/dist/engine/summary/recovery-message-waits.d.mts +11 -0
  96. package/dist/engine/summary/recovery-message-waits.mjs +74 -0
  97. package/dist/engine/summary/recovery-retry-runs.d.mts +17 -0
  98. package/dist/engine/summary/recovery-retry-runs.mjs +65 -0
  99. package/dist/engine/summary/recovery-run-timestamps.d.mts +13 -0
  100. package/dist/engine/summary/recovery-run-timestamps.mjs +18 -0
  101. package/dist/engine/summary/recovery-runs.d.mts +23 -0
  102. package/dist/engine/summary/recovery-runs.mjs +54 -0
  103. package/dist/engine/summary/recovery-schedules.d.mts +10 -0
  104. package/dist/engine/summary/recovery-schedules.mjs +46 -0
  105. package/dist/engine/summary/recovery-sleep-waits.d.mts +10 -0
  106. package/dist/engine/summary/recovery-sleep-waits.mjs +53 -0
  107. package/dist/engine/summary/recovery-waits.d.mts +21 -0
  108. package/dist/engine/summary/recovery-waits.mjs +29 -0
  109. package/dist/engine/summary/run-availability.d.mts +13 -0
  110. package/dist/engine/summary/run-availability.mjs +37 -0
  111. package/dist/engine/summary/run-cleanup.d.mts +14 -0
  112. package/dist/engine/summary/run-cleanup.mjs +44 -0
  113. package/dist/engine/summary/run-failure.d.mts +14 -0
  114. package/dist/engine/summary/run-failure.mjs +62 -0
  115. package/dist/engine/summary/run-hooks.d.mts +14 -0
  116. package/dist/engine/summary/run-hooks.mjs +63 -0
  117. package/dist/engine/summary/run-lease.d.mts +11 -0
  118. package/dist/engine/summary/run-lease.mjs +64 -0
  119. package/dist/engine/summary/run-message-waits.d.mts +15 -0
  120. package/dist/engine/summary/run-message-waits.mjs +62 -0
  121. package/dist/engine/summary/run-metrics.d.mts +31 -0
  122. package/dist/engine/summary/run-metrics.mjs +93 -0
  123. package/dist/engine/summary/run-retry.d.mts +9 -0
  124. package/dist/engine/summary/run-retry.mjs +69 -0
  125. package/dist/engine/summary/run-sleeps.d.mts +15 -0
  126. package/dist/engine/summary/run-sleeps.mjs +61 -0
  127. package/dist/engine/summary/run-state.d.mts +26 -0
  128. package/dist/engine/summary/run-state.mjs +48 -0
  129. package/dist/engine/summary/run-status.d.mts +16 -0
  130. package/dist/engine/summary/run-status.mjs +35 -0
  131. package/dist/engine/summary/run-streams.d.mts +14 -0
  132. package/dist/engine/summary/run-streams.mjs +46 -0
  133. package/dist/engine/summary/run-transition.d.mts +9 -0
  134. package/dist/engine/summary/run-transition.mjs +39 -0
  135. package/dist/engine/summary/run-workflow.d.mts +9 -0
  136. package/dist/engine/summary/run-workflow.mjs +47 -0
  137. package/dist/engine/summary/step-attempt-active-child-workflows.d.mts +13 -0
  138. package/dist/engine/summary/step-attempt-active-child-workflows.mjs +55 -0
  139. package/dist/engine/summary/step-attempt-active-fields.d.mts +23 -0
  140. package/dist/engine/summary/step-attempt-active-fields.mjs +14 -0
  141. package/dist/engine/summary/step-attempt-active-message-waits.d.mts +12 -0
  142. package/dist/engine/summary/step-attempt-active-message-waits.mjs +47 -0
  143. package/dist/engine/summary/step-attempt-active-sleeps.d.mts +19 -0
  144. package/dist/engine/summary/step-attempt-active-sleeps.mjs +44 -0
  145. package/dist/engine/summary/step-attempt-buckets.d.mts +22 -0
  146. package/dist/engine/summary/step-attempt-buckets.mjs +152 -0
  147. package/dist/engine/summary/step-attempt-failure.d.mts +12 -0
  148. package/dist/engine/summary/step-attempt-failure.mjs +61 -0
  149. package/dist/engine/summary/step-attempt-lifecycle.d.mts +13 -0
  150. package/dist/engine/summary/step-attempt-lifecycle.mjs +19 -0
  151. package/dist/engine/summary/step-attempts.d.mts +11 -0
  152. package/dist/engine/summary/step-attempts.mjs +43 -0
  153. package/dist/engine/summary.d.mts +32 -0
  154. package/dist/engine/summary.mjs +37 -0
  155. package/dist/engine/task.d.mts +6 -0
  156. package/dist/engine/task.mjs +207 -0
  157. package/dist/errors/base.d.mts +99 -0
  158. package/dist/errors/base.mjs +426 -0
  159. package/dist/errors/capability.d.mts +11 -0
  160. package/dist/errors/capability.mjs +23 -0
  161. package/dist/errors/definition.d.mts +21 -0
  162. package/dist/errors/definition.mjs +51 -0
  163. package/dist/errors/details.d.mts +13 -0
  164. package/dist/errors/details.mjs +65 -0
  165. package/dist/errors/failures.d.mts +81 -0
  166. package/dist/errors/failures.mjs +168 -0
  167. package/dist/errors/hook.d.mts +14 -0
  168. package/dist/errors/hook.mjs +30 -0
  169. package/dist/errors/implementation.d.mts +11 -0
  170. package/dist/errors/implementation.mjs +25 -0
  171. package/dist/errors/lock.d.mts +28 -0
  172. package/dist/errors/lock.mjs +70 -0
  173. package/dist/errors/message.d.mts +106 -0
  174. package/dist/errors/message.mjs +122 -0
  175. package/dist/errors/mod.d.mts +17 -0
  176. package/dist/errors/mod.mjs +17 -0
  177. package/dist/errors/record-view.d.mts +11 -0
  178. package/dist/errors/record-view.mjs +24 -0
  179. package/dist/errors/records.d.mts +7 -0
  180. package/dist/errors/records.mjs +280 -0
  181. package/dist/errors/run.d.mts +116 -0
  182. package/dist/errors/run.mjs +232 -0
  183. package/dist/errors/runtime.d.mts +12 -0
  184. package/dist/errors/runtime.mjs +24 -0
  185. package/dist/errors/schedule.d.mts +27 -0
  186. package/dist/errors/schedule.mjs +65 -0
  187. package/dist/errors/step.d.mts +76 -0
  188. package/dist/errors/step.mjs +113 -0
  189. package/dist/errors/stream.d.mts +24 -0
  190. package/dist/errors/stream.mjs +64 -0
  191. package/dist/esbuild.d.mts +7 -0
  192. package/dist/esbuild.mjs +6 -0
  193. package/dist/events/descriptors.d.mts +245 -0
  194. package/dist/events/descriptors.mjs +405 -0
  195. package/dist/events/mod.d.mts +3 -0
  196. package/dist/events/mod.mjs +2 -0
  197. package/dist/history/attempt-key.d.mts +6 -0
  198. package/dist/history/attempt-key.mjs +7 -0
  199. package/dist/history/mod.d.mts +71 -0
  200. package/dist/history/mod.mjs +195 -0
  201. package/dist/history/projection.d.mts +8 -0
  202. package/dist/history/projection.mjs +259 -0
  203. package/dist/history/replay-projection.d.mts +88 -0
  204. package/dist/history/replay-projection.mjs +369 -0
  205. package/dist/history/sequencer.d.mts +16 -0
  206. package/dist/history/sequencer.mjs +78 -0
  207. package/dist/history/step-attempts.d.mts +9 -0
  208. package/dist/history/step-attempts.mjs +50 -0
  209. package/dist/history/timeline.d.mts +16 -0
  210. package/dist/history/timeline.mjs +272 -0
  211. package/dist/history/validator.d.mts +9 -0
  212. package/dist/history/validator.mjs +110 -0
  213. package/dist/inspection/mod.d.mts +5 -0
  214. package/dist/inspection/mod.mjs +3 -0
  215. package/dist/message-options.d.mts +8 -0
  216. package/dist/message-options.mjs +25 -0
  217. package/dist/mod.d.mts +52 -0
  218. package/dist/mod.mjs +26 -0
  219. package/dist/otel/support.d.mts +18 -0
  220. package/dist/otel/support.mjs +102 -0
  221. package/dist/otel.d.mts +30 -0
  222. package/dist/otel.mjs +588 -0
  223. package/dist/pagination.d.mts +25 -0
  224. package/dist/pagination.mjs +73 -0
  225. package/dist/registry.d.mts +20 -0
  226. package/dist/registry.mjs +48 -0
  227. package/dist/rolldown.d.mts +7 -0
  228. package/dist/rolldown.mjs +6 -0
  229. package/dist/rollup.d.mts +7 -0
  230. package/dist/rollup.mjs +6 -0
  231. package/dist/rspack.d.mts +7 -0
  232. package/dist/rspack.mjs +6 -0
  233. package/dist/runtime.d.mts +34 -0
  234. package/dist/runtime.mjs +194 -0
  235. package/dist/step-definition.d.mts +10 -0
  236. package/dist/step-definition.mjs +15 -0
  237. package/dist/store/append-projection.d.mts +15 -0
  238. package/dist/store/append-projection.mjs +26 -0
  239. package/dist/store/capabilities.d.mts +14 -0
  240. package/dist/store/capabilities.mjs +42 -0
  241. package/dist/store/cleanup.d.mts +18 -0
  242. package/dist/store/cleanup.mjs +338 -0
  243. package/dist/store/compaction.d.mts +5 -0
  244. package/dist/store/compaction.mjs +8 -0
  245. package/dist/store/create.d.mts +52 -0
  246. package/dist/store/create.mjs +159 -0
  247. package/dist/store/event-append-project.d.mts +15 -0
  248. package/dist/store/event-append-project.mjs +77 -0
  249. package/dist/store/event-append.d.mts +37 -0
  250. package/dist/store/event-append.mjs +80 -0
  251. package/dist/store/event-history.d.mts +22 -0
  252. package/dist/store/event-history.mjs +75 -0
  253. package/dist/store/event.d.mts +10 -0
  254. package/dist/store/event.mjs +28 -0
  255. package/dist/store/idempotency.d.mts +10 -0
  256. package/dist/store/idempotency.mjs +167 -0
  257. package/dist/store/instrumentation.d.mts +7 -0
  258. package/dist/store/instrumentation.mjs +123 -0
  259. package/dist/store/lock.d.mts +8 -0
  260. package/dist/store/lock.mjs +28 -0
  261. package/dist/store/materialization.d.mts +30 -0
  262. package/dist/store/materialization.mjs +127 -0
  263. package/dist/store/message-index.d.mts +21 -0
  264. package/dist/store/message-index.mjs +121 -0
  265. package/dist/store/mod.d.mts +5 -0
  266. package/dist/store/mod.mjs +4 -0
  267. package/dist/store/query.d.mts +24 -0
  268. package/dist/store/query.mjs +82 -0
  269. package/dist/store/revision.d.mts +4 -0
  270. package/dist/store/revision.mjs +7 -0
  271. package/dist/store/run.d.mts +49 -0
  272. package/dist/store/run.mjs +236 -0
  273. package/dist/store/schedule.d.mts +12 -0
  274. package/dist/store/schedule.mjs +41 -0
  275. package/dist/store/schema.d.mts +14 -0
  276. package/dist/store/schema.mjs +17 -0
  277. package/dist/store/step-attempt.d.mts +14 -0
  278. package/dist/store/step-attempt.mjs +23 -0
  279. package/dist/store/storage-value.d.mts +5 -0
  280. package/dist/store/storage-value.mjs +6 -0
  281. package/dist/store/validation.d.mts +35 -0
  282. package/dist/store/validation.mjs +77 -0
  283. package/dist/store-keys.d.mts +49 -0
  284. package/dist/store-keys.mjs +63 -0
  285. package/dist/telemetry.d.mts +132 -0
  286. package/dist/telemetry.mjs +172 -0
  287. package/dist/temporal.d.mts +23 -0
  288. package/dist/temporal.mjs +59 -0
  289. package/dist/timer.d.mts +12 -0
  290. package/dist/timer.mjs +28 -0
  291. package/dist/types/cleanup.d.mts +112 -0
  292. package/dist/types/cleanup.mjs +22 -0
  293. package/dist/types/client.d.mts +270 -0
  294. package/dist/types/client.mjs +1 -0
  295. package/dist/types/common.d.mts +19 -0
  296. package/dist/types/common.mjs +15 -0
  297. package/dist/types/definition.d.mts +92 -0
  298. package/dist/types/definition.mjs +1 -0
  299. package/dist/types/engine-options.d.mts +76 -0
  300. package/dist/types/engine-options.mjs +1 -0
  301. package/dist/types/engine.d.mts +309 -0
  302. package/dist/types/engine.mjs +1 -0
  303. package/dist/types/error-code.d.mts +256 -0
  304. package/dist/types/error-code.mjs +131 -0
  305. package/dist/types/error.d.mts +236 -0
  306. package/dist/types/error.mjs +48 -0
  307. package/dist/types/events.d.mts +2869 -0
  308. package/dist/types/events.mjs +283 -0
  309. package/dist/types/hook.d.mts +149 -0
  310. package/dist/types/hook.mjs +66 -0
  311. package/dist/types/lock.d.mts +63 -0
  312. package/dist/types/lock.mjs +18 -0
  313. package/dist/types/message-id.d.mts +7 -0
  314. package/dist/types/message-id.mjs +5 -0
  315. package/dist/types/message.d.mts +87 -0
  316. package/dist/types/message.mjs +1 -0
  317. package/dist/types/observation.d.mts +146 -0
  318. package/dist/types/observation.mjs +1 -0
  319. package/dist/types/pagination.d.mts +32 -0
  320. package/dist/types/pagination.mjs +13 -0
  321. package/dist/types/result.d.mts +62 -0
  322. package/dist/types/result.mjs +1 -0
  323. package/dist/types/retry.d.mts +48 -0
  324. package/dist/types/retry.mjs +1 -0
  325. package/dist/types/run-id.d.mts +7 -0
  326. package/dist/types/run-id.mjs +5 -0
  327. package/dist/types/run-list.d.mts +43 -0
  328. package/dist/types/run-list.mjs +1 -0
  329. package/dist/types/run-options.d.mts +86 -0
  330. package/dist/types/run-options.mjs +1 -0
  331. package/dist/types/run.d.mts +355 -0
  332. package/dist/types/run.mjs +207 -0
  333. package/dist/types/runtime.d.mts +143 -0
  334. package/dist/types/runtime.mjs +21 -0
  335. package/dist/types/schedule.d.mts +127 -0
  336. package/dist/types/schedule.mjs +48 -0
  337. package/dist/types/step-attempts.d.mts +326 -0
  338. package/dist/types/step-attempts.mjs +43 -0
  339. package/dist/types/step-id.d.mts +7 -0
  340. package/dist/types/step-id.mjs +5 -0
  341. package/dist/types/step.d.mts +183 -0
  342. package/dist/types/step.mjs +5 -0
  343. package/dist/types/store.d.mts +254 -0
  344. package/dist/types/store.mjs +1 -0
  345. package/dist/types/stream-id.d.mts +7 -0
  346. package/dist/types/stream-id.mjs +5 -0
  347. package/dist/types/stream.d.mts +126 -0
  348. package/dist/types/stream.mjs +1 -0
  349. package/dist/types/summary.d.mts +318 -0
  350. package/dist/types/summary.mjs +1 -0
  351. package/dist/types/telemetry.d.mts +74 -0
  352. package/dist/types/telemetry.mjs +9 -0
  353. package/dist/types/timeline.d.mts +237 -0
  354. package/dist/types/timeline.mjs +1 -0
  355. package/dist/types/vite.d.mts +65 -0
  356. package/dist/types/vite.mjs +1 -0
  357. package/dist/types/worker-id.d.mts +7 -0
  358. package/dist/types/worker-id.mjs +5 -0
  359. package/dist/types/worker.d.mts +94 -0
  360. package/dist/types/worker.mjs +1 -0
  361. package/dist/utility.d.mts +49 -0
  362. package/dist/utility.mjs +122 -0
  363. package/dist/vite/ast.d.mts +23 -0
  364. package/dist/vite/ast.mjs +73 -0
  365. package/dist/vite/error.d.mts +19 -0
  366. package/dist/vite/error.mjs +47 -0
  367. package/dist/vite/generated-name.d.mts +7 -0
  368. package/dist/vite/generated-name.mjs +9 -0
  369. package/dist/vite/manifest.d.mts +7 -0
  370. package/dist/vite/manifest.mjs +106 -0
  371. package/dist/vite/plugin.d.mts +7 -0
  372. package/dist/vite/plugin.mjs +190 -0
  373. package/dist/vite/safety.d.mts +12 -0
  374. package/dist/vite/safety.mjs +96 -0
  375. package/dist/vite/source-edit.d.mts +12 -0
  376. package/dist/vite/source-edit.mjs +44 -0
  377. package/dist/vite/source-map.d.mts +11 -0
  378. package/dist/vite/source-map.mjs +53 -0
  379. package/dist/vite/source.d.mts +7 -0
  380. package/dist/vite/source.mjs +14 -0
  381. package/dist/vite/transform.d.mts +7 -0
  382. package/dist/vite/transform.mjs +405 -0
  383. package/dist/vite.d.mts +6 -0
  384. package/dist/vite.mjs +5 -0
  385. package/dist/webhook.d.mts +16 -0
  386. package/dist/webhook.mjs +17 -0
  387. package/dist/webpack.d.mts +7 -0
  388. package/dist/webpack.mjs +6 -0
  389. package/dist/worker/error.d.mts +11 -0
  390. package/dist/worker/error.mjs +40 -0
  391. package/dist/worker.d.mts +18 -0
  392. package/dist/worker.mjs +427 -0
  393. package/package.json +144 -0
@@ -0,0 +1,55 @@
1
+ import { sortedStringSet } from "../../collection.mjs";
2
+ import { earliestOptionalTimestamp, shouldReplaceWorkflowEarliestDefinedInstant } from "../../temporal.mjs";
3
+ import { summarizeChildWorkflowRuns } from "./child-workflow-runs.mjs";
4
+ import { finishWorkflowStepAttemptActiveStartedSummary, finishWorkflowStepAttemptActiveTimeoutSummary } from "./step-attempt-active-fields.mjs";
5
+ //#region src/engine/summary/step-attempt-active-child-workflows.ts
6
+ function createWorkflowStepAttemptActiveChildWorkflowSummaryReducer() {
7
+ const childWorkflow = createWorkflowStepAttemptActiveChildWorkflowAccumulator();
8
+ return {
9
+ addAttempt(attempt, attemptKey) {
10
+ if (attempt.kind === "workflow" && attempt.status === "running") addWorkflowStepAttemptActiveChildWorkflow(childWorkflow, attempt, attemptKey);
11
+ },
12
+ finish(childRuns = []) {
13
+ return finishWorkflowStepAttemptActiveChildWorkflowSummary(childWorkflow, childRuns);
14
+ }
15
+ };
16
+ }
17
+ function createWorkflowStepAttemptActiveChildWorkflowAccumulator() {
18
+ return {
19
+ total: 0,
20
+ attemptKeys: /* @__PURE__ */ new Set(),
21
+ childRunIds: /* @__PURE__ */ new Set(),
22
+ stepIds: /* @__PURE__ */ new Set(),
23
+ workflows: /* @__PURE__ */ new Set()
24
+ };
25
+ }
26
+ function addWorkflowStepAttemptActiveChildWorkflow(childWorkflow, attempt, attemptKey) {
27
+ childWorkflow.total++;
28
+ childWorkflow.stepIds.add(attempt.stepId);
29
+ childWorkflow.attemptKeys.add(attemptKey);
30
+ childWorkflow.oldestStartedAt = earliestOptionalTimestamp(childWorkflow.oldestStartedAt, attempt.startedAt);
31
+ if (shouldReplaceWorkflowEarliestDefinedInstant(childWorkflow.nextTimeoutAt, attempt.timeoutAt)) {
32
+ childWorkflow.nextTimeoutAt = attempt.timeoutAt;
33
+ childWorkflow.nextTimeoutStepId = attempt.stepId;
34
+ childWorkflow.nextTimeoutAttemptKey = attemptKey;
35
+ }
36
+ if (attempt.childRunId !== void 0) childWorkflow.childRunIds.add(attempt.childRunId);
37
+ if (attempt.workflowName !== void 0) childWorkflow.workflows.add(attempt.workflowVersion === void 0 ? attempt.workflowName : `${attempt.workflowName}@${attempt.workflowVersion}`);
38
+ }
39
+ function finishWorkflowStepAttemptActiveChildWorkflowSummary(childWorkflow, childRuns) {
40
+ return childWorkflow.total === 0 ? {} : { activeChildWorkflows: {
41
+ total: childWorkflow.total,
42
+ stepIds: sortedStringSet(childWorkflow.stepIds),
43
+ attemptKeys: sortedStringSet(childWorkflow.attemptKeys),
44
+ childRunIds: sortedStringSet(childWorkflow.childRunIds),
45
+ workflows: sortedStringSet(childWorkflow.workflows),
46
+ ...summarizeChildWorkflowRuns(activeChildWorkflowRuns(childRuns, childWorkflow.childRunIds)),
47
+ ...finishWorkflowStepAttemptActiveStartedSummary(childWorkflow),
48
+ ...finishWorkflowStepAttemptActiveTimeoutSummary(childWorkflow)
49
+ } };
50
+ }
51
+ function activeChildWorkflowRuns(childRuns, childRunIds) {
52
+ return childRuns.filter((childRun) => childRunIds.has(childRun.id));
53
+ }
54
+ //#endregion
55
+ export { createWorkflowStepAttemptActiveChildWorkflowSummaryReducer };
@@ -0,0 +1,23 @@
1
+ import { StepId } from "../../types/step-id.mjs";
2
+ import "../../types/step.mjs";
3
+ //#region src/engine/summary/step-attempt-active-fields.d.ts
4
+ interface WorkflowStepAttemptActiveStartedSummaryFields {
5
+ readonly oldestStartedAt?: Temporal.Instant;
6
+ }
7
+ interface WorkflowStepAttemptActiveTimeoutSummaryFields {
8
+ readonly nextTimeoutAt?: Temporal.Instant;
9
+ readonly nextTimeoutStepId?: StepId;
10
+ readonly nextTimeoutAttemptKey?: string;
11
+ }
12
+ interface WorkflowStepAttemptActiveStartedAccumulator {
13
+ readonly oldestStartedAt?: Temporal.Instant;
14
+ }
15
+ interface WorkflowStepAttemptActiveTimeoutAccumulator {
16
+ readonly nextTimeoutAt?: Temporal.Instant;
17
+ readonly nextTimeoutStepId?: StepId;
18
+ readonly nextTimeoutAttemptKey?: string;
19
+ }
20
+ declare function finishWorkflowStepAttemptActiveStartedSummary(activeAttempt: WorkflowStepAttemptActiveStartedAccumulator): WorkflowStepAttemptActiveStartedSummaryFields;
21
+ declare function finishWorkflowStepAttemptActiveTimeoutSummary(activeAttempt: WorkflowStepAttemptActiveTimeoutAccumulator): WorkflowStepAttemptActiveTimeoutSummaryFields;
22
+ //#endregion
23
+ export { WorkflowStepAttemptActiveStartedAccumulator, WorkflowStepAttemptActiveStartedSummaryFields, WorkflowStepAttemptActiveTimeoutAccumulator, WorkflowStepAttemptActiveTimeoutSummaryFields, finishWorkflowStepAttemptActiveStartedSummary, finishWorkflowStepAttemptActiveTimeoutSummary };
@@ -0,0 +1,14 @@
1
+ import { optionalProperty } from "../../collection.mjs";
2
+ //#region src/engine/summary/step-attempt-active-fields.ts
3
+ function finishWorkflowStepAttemptActiveStartedSummary(activeAttempt) {
4
+ return optionalProperty("oldestStartedAt", activeAttempt.oldestStartedAt);
5
+ }
6
+ function finishWorkflowStepAttemptActiveTimeoutSummary(activeAttempt) {
7
+ return activeAttempt.nextTimeoutAt === void 0 ? {} : {
8
+ nextTimeoutAt: activeAttempt.nextTimeoutAt,
9
+ ...optionalProperty("nextTimeoutStepId", activeAttempt.nextTimeoutStepId),
10
+ ...optionalProperty("nextTimeoutAttemptKey", activeAttempt.nextTimeoutAttemptKey)
11
+ };
12
+ }
13
+ //#endregion
14
+ export { finishWorkflowStepAttemptActiveStartedSummary, finishWorkflowStepAttemptActiveTimeoutSummary };
@@ -0,0 +1,12 @@
1
+ import { WorkflowActiveMessageWaitSummary, WorkflowStepAttemptRecord } from "../../types/step-attempts.mjs";
2
+ //#region src/engine/summary/step-attempt-active-message-waits.d.ts
3
+ interface WorkflowStepAttemptActiveMessageWaitSummaryFields {
4
+ readonly activeMessageWaits?: WorkflowActiveMessageWaitSummary;
5
+ }
6
+ interface WorkflowStepAttemptActiveMessageWaitSummaryReducer {
7
+ addAttempt(attempt: WorkflowStepAttemptRecord, attemptKey: string): void;
8
+ finish(): WorkflowStepAttemptActiveMessageWaitSummaryFields;
9
+ }
10
+ declare function createWorkflowStepAttemptActiveMessageWaitSummaryReducer(): WorkflowStepAttemptActiveMessageWaitSummaryReducer;
11
+ //#endregion
12
+ export { WorkflowStepAttemptActiveMessageWaitSummaryFields, WorkflowStepAttemptActiveMessageWaitSummaryReducer, createWorkflowStepAttemptActiveMessageWaitSummaryReducer };
@@ -0,0 +1,47 @@
1
+ import { sortedStringSet } from "../../collection.mjs";
2
+ import { earliestOptionalTimestamp, shouldReplaceWorkflowEarliestDefinedInstant } from "../../temporal.mjs";
3
+ import { finishWorkflowStepAttemptActiveStartedSummary, finishWorkflowStepAttemptActiveTimeoutSummary } from "./step-attempt-active-fields.mjs";
4
+ //#region src/engine/summary/step-attempt-active-message-waits.ts
5
+ function createWorkflowStepAttemptActiveMessageWaitSummaryReducer() {
6
+ const messageWait = createWorkflowStepAttemptActiveMessageWaitAccumulator();
7
+ return {
8
+ addAttempt(attempt, attemptKey) {
9
+ if (attempt.kind === "message-wait" && attempt.status === "running") addWorkflowStepAttemptActiveMessageWait(messageWait, attempt, attemptKey);
10
+ },
11
+ finish() {
12
+ return finishWorkflowStepAttemptActiveMessageWaitSummary(messageWait);
13
+ }
14
+ };
15
+ }
16
+ function createWorkflowStepAttemptActiveMessageWaitAccumulator() {
17
+ return {
18
+ total: 0,
19
+ attemptKeys: /* @__PURE__ */ new Set(),
20
+ messages: /* @__PURE__ */ new Set(),
21
+ stepIds: /* @__PURE__ */ new Set()
22
+ };
23
+ }
24
+ function addWorkflowStepAttemptActiveMessageWait(messageWait, attempt, attemptKey) {
25
+ messageWait.total++;
26
+ messageWait.stepIds.add(attempt.stepId);
27
+ messageWait.attemptKeys.add(attemptKey);
28
+ messageWait.oldestStartedAt = earliestOptionalTimestamp(messageWait.oldestStartedAt, attempt.startedAt);
29
+ if (shouldReplaceWorkflowEarliestDefinedInstant(messageWait.nextTimeoutAt, attempt.timeoutAt)) {
30
+ messageWait.nextTimeoutAt = attempt.timeoutAt;
31
+ messageWait.nextTimeoutStepId = attempt.stepId;
32
+ messageWait.nextTimeoutAttemptKey = attemptKey;
33
+ }
34
+ if (attempt.messageId !== void 0) messageWait.messages.add(attempt.messageId);
35
+ }
36
+ function finishWorkflowStepAttemptActiveMessageWaitSummary(messageWait) {
37
+ return messageWait.total === 0 ? {} : { activeMessageWaits: {
38
+ total: messageWait.total,
39
+ stepIds: sortedStringSet(messageWait.stepIds),
40
+ attemptKeys: sortedStringSet(messageWait.attemptKeys),
41
+ messages: sortedStringSet(messageWait.messages),
42
+ ...finishWorkflowStepAttemptActiveStartedSummary(messageWait),
43
+ ...finishWorkflowStepAttemptActiveTimeoutSummary(messageWait)
44
+ } };
45
+ }
46
+ //#endregion
47
+ export { createWorkflowStepAttemptActiveMessageWaitSummaryReducer };
@@ -0,0 +1,19 @@
1
+ import { StepId } from "../../types/step-id.mjs";
2
+ import "../../types/step.mjs";
3
+ import { WorkflowStepAttemptRecord } from "../../types/step-attempts.mjs";
4
+ //#region src/engine/summary/step-attempt-active-sleeps.d.ts
5
+ interface WorkflowStepAttemptActiveSleepSummaryFields {
6
+ readonly activeSleepStepIds?: readonly string[];
7
+ readonly activeSleepAttemptKeys?: readonly string[];
8
+ readonly nextSleepUntil?: Temporal.Instant;
9
+ readonly nextSleepStepId?: StepId;
10
+ readonly nextSleepAttemptKey?: string;
11
+ readonly nextSleepDuration?: Temporal.Duration;
12
+ }
13
+ interface WorkflowStepAttemptActiveSleepSummaryReducer {
14
+ addAttempt(attempt: WorkflowStepAttemptRecord, attemptKey: string): void;
15
+ finish(): WorkflowStepAttemptActiveSleepSummaryFields;
16
+ }
17
+ declare function createWorkflowStepAttemptActiveSleepSummaryReducer(): WorkflowStepAttemptActiveSleepSummaryReducer;
18
+ //#endregion
19
+ export { WorkflowStepAttemptActiveSleepSummaryFields, WorkflowStepAttemptActiveSleepSummaryReducer, createWorkflowStepAttemptActiveSleepSummaryReducer };
@@ -0,0 +1,44 @@
1
+ import { optionalProperty, optionalSortedStringSetProperty } from "../../collection.mjs";
2
+ import { shouldReplaceWorkflowEarliestDefinedInstant } from "../../temporal.mjs";
3
+ //#region src/engine/summary/step-attempt-active-sleeps.ts
4
+ function createWorkflowStepAttemptActiveSleepSummaryReducer() {
5
+ const sleep = createWorkflowStepAttemptActiveSleepAccumulator();
6
+ return {
7
+ addAttempt(attempt, attemptKey) {
8
+ if (attempt.kind === "sleep" && attempt.status === "running") addWorkflowStepAttemptActiveSleep(sleep, attempt, attemptKey);
9
+ },
10
+ finish() {
11
+ return finishWorkflowStepAttemptActiveSleepSummary(sleep);
12
+ }
13
+ };
14
+ }
15
+ function createWorkflowStepAttemptActiveSleepAccumulator() {
16
+ return {
17
+ attemptKeys: /* @__PURE__ */ new Set(),
18
+ stepIds: /* @__PURE__ */ new Set()
19
+ };
20
+ }
21
+ function addWorkflowStepAttemptActiveSleep(sleep, attempt, attemptKey) {
22
+ sleep.stepIds.add(attempt.stepId);
23
+ sleep.attemptKeys.add(attemptKey);
24
+ if (shouldReplaceWorkflowEarliestDefinedInstant(sleep.nextUntil, attempt.until)) {
25
+ sleep.nextUntil = attempt.until;
26
+ sleep.nextStepId = attempt.stepId;
27
+ sleep.nextAttemptKey = attemptKey;
28
+ sleep.nextDuration = attempt.duration instanceof Temporal.Duration ? attempt.duration : void 0;
29
+ }
30
+ }
31
+ function finishWorkflowStepAttemptActiveSleepSummary(sleep) {
32
+ return {
33
+ ...optionalSortedStringSetProperty("activeSleepStepIds", sleep.stepIds),
34
+ ...optionalSortedStringSetProperty("activeSleepAttemptKeys", sleep.attemptKeys),
35
+ ...sleep.nextUntil === void 0 ? {} : {
36
+ nextSleepUntil: sleep.nextUntil,
37
+ ...optionalProperty("nextSleepStepId", sleep.nextStepId),
38
+ ...optionalProperty("nextSleepAttemptKey", sleep.nextAttemptKey),
39
+ ...optionalProperty("nextSleepDuration", sleep.nextDuration)
40
+ }
41
+ };
42
+ }
43
+ //#endregion
44
+ export { createWorkflowStepAttemptActiveSleepSummaryReducer };
@@ -0,0 +1,22 @@
1
+ import { WorkflowStepAttemptRecord, WorkflowStepAttemptStatus } from "../../types/step-attempts.mjs";
2
+ import { WorkflowMaterializedStepType } from "../../types/run.mjs";
3
+ //#region src/engine/summary/step-attempt-buckets.d.ts
4
+ type WorkflowStepAttemptStatusCounts = Record<WorkflowStepAttemptStatus, number>;
5
+ type WorkflowStepAttemptKindCounts = Record<WorkflowMaterializedStepType, number>;
6
+ interface WorkflowStepAttemptStatusSummaryFields {
7
+ readonly status: WorkflowStepAttemptStatusCounts;
8
+ readonly statusStepIds: Record<WorkflowStepAttemptStatus, readonly string[]>;
9
+ readonly statusAttemptKeys: Record<WorkflowStepAttemptStatus, readonly string[]>;
10
+ }
11
+ interface WorkflowStepAttemptKindSummaryFields {
12
+ readonly kind: WorkflowStepAttemptKindCounts;
13
+ readonly kindStepIds: Record<WorkflowMaterializedStepType, readonly string[]>;
14
+ readonly kindAttemptKeys: Record<WorkflowMaterializedStepType, readonly string[]>;
15
+ }
16
+ interface WorkflowStepAttemptBucketSummaryReducer {
17
+ addAttempt(attempt: WorkflowStepAttemptRecord, attemptKey: string): void;
18
+ finish(): WorkflowStepAttemptStatusSummaryFields & WorkflowStepAttemptKindSummaryFields;
19
+ }
20
+ declare function createWorkflowStepAttemptBucketSummaryReducer(): WorkflowStepAttemptBucketSummaryReducer;
21
+ //#endregion
22
+ export { WorkflowStepAttemptBucketSummaryReducer, WorkflowStepAttemptKindSummaryFields, WorkflowStepAttemptStatusSummaryFields, createWorkflowStepAttemptBucketSummaryReducer };
@@ -0,0 +1,152 @@
1
+ //#region src/engine/summary/step-attempt-buckets.ts
2
+ function createWorkflowStepAttemptBucketSummaryReducer() {
3
+ const status = createWorkflowStepAttemptStatusAccumulator();
4
+ const kind = createWorkflowStepAttemptKindAccumulator();
5
+ return {
6
+ addAttempt(attempt, attemptKey) {
7
+ addWorkflowStepAttemptStatus(status, attempt, attemptKey);
8
+ addWorkflowStepAttemptKind(kind, attempt, attemptKey);
9
+ },
10
+ finish() {
11
+ return {
12
+ ...finishWorkflowStepAttemptStatusSummary(status),
13
+ ...finishWorkflowStepAttemptKindSummary(kind)
14
+ };
15
+ }
16
+ };
17
+ }
18
+ function createWorkflowStepAttemptStatusAccumulator() {
19
+ return {
20
+ attemptKeys: createWorkflowStepAttemptStatusAttemptKeys(),
21
+ status: createWorkflowStepAttemptStatusCounts(),
22
+ stepIds: createWorkflowStepAttemptStatusStepIds()
23
+ };
24
+ }
25
+ function createWorkflowStepAttemptKindAccumulator() {
26
+ return {
27
+ attemptKeys: createWorkflowStepAttemptKindAttemptKeys(),
28
+ kind: createWorkflowStepAttemptKindCounts(),
29
+ stepIds: createWorkflowStepAttemptKindStepIds()
30
+ };
31
+ }
32
+ function addWorkflowStepAttemptStatus(status, attempt, attemptKey) {
33
+ status.status[attempt.status]++;
34
+ status.stepIds[attempt.status].push(attempt.stepId);
35
+ status.attemptKeys[attempt.status].push(attemptKey);
36
+ }
37
+ function addWorkflowStepAttemptKind(kind, attempt, attemptKey) {
38
+ kind.kind[attempt.kind]++;
39
+ kind.stepIds[attempt.kind].push(attempt.stepId);
40
+ kind.attemptKeys[attempt.kind].push(attemptKey);
41
+ }
42
+ function finishWorkflowStepAttemptStatusSummary(status) {
43
+ return {
44
+ status: status.status,
45
+ statusStepIds: sortedWorkflowStepAttemptStatusStepIds(status.stepIds),
46
+ statusAttemptKeys: sortedWorkflowStepAttemptStatusAttemptKeys(status.attemptKeys)
47
+ };
48
+ }
49
+ function finishWorkflowStepAttemptKindSummary(kind) {
50
+ return {
51
+ kind: kind.kind,
52
+ kindStepIds: sortedWorkflowStepAttemptKindStepIds(kind.stepIds),
53
+ kindAttemptKeys: sortedWorkflowStepAttemptKindAttemptKeys(kind.attemptKeys)
54
+ };
55
+ }
56
+ function createWorkflowStepAttemptStatusCounts() {
57
+ return {
58
+ running: 0,
59
+ completed: 0,
60
+ failed: 0,
61
+ abandoned: 0
62
+ };
63
+ }
64
+ function createWorkflowStepAttemptStatusStepIds() {
65
+ return {
66
+ running: [],
67
+ completed: [],
68
+ failed: [],
69
+ abandoned: []
70
+ };
71
+ }
72
+ function sortedWorkflowStepAttemptStatusStepIds(stepIds) {
73
+ return {
74
+ running: [...stepIds.running].sort(),
75
+ completed: [...stepIds.completed].sort(),
76
+ failed: [...stepIds.failed].sort(),
77
+ abandoned: [...stepIds.abandoned].sort()
78
+ };
79
+ }
80
+ function createWorkflowStepAttemptStatusAttemptKeys() {
81
+ return {
82
+ running: [],
83
+ completed: [],
84
+ failed: [],
85
+ abandoned: []
86
+ };
87
+ }
88
+ function sortedWorkflowStepAttemptStatusAttemptKeys(attemptKeys) {
89
+ return {
90
+ running: [...attemptKeys.running].sort(),
91
+ completed: [...attemptKeys.completed].sort(),
92
+ failed: [...attemptKeys.failed].sort(),
93
+ abandoned: [...attemptKeys.abandoned].sort()
94
+ };
95
+ }
96
+ function createWorkflowStepAttemptKindCounts() {
97
+ return {
98
+ run: 0,
99
+ sleep: 0,
100
+ workflow: 0,
101
+ "message-send": 0,
102
+ "message-wait": 0,
103
+ stream: 0,
104
+ deterministic: 0
105
+ };
106
+ }
107
+ function createWorkflowStepAttemptKindStepIds() {
108
+ return {
109
+ run: [],
110
+ sleep: [],
111
+ workflow: [],
112
+ "message-send": [],
113
+ "message-wait": [],
114
+ stream: [],
115
+ deterministic: []
116
+ };
117
+ }
118
+ function createWorkflowStepAttemptKindAttemptKeys() {
119
+ return {
120
+ run: [],
121
+ sleep: [],
122
+ workflow: [],
123
+ "message-send": [],
124
+ "message-wait": [],
125
+ stream: [],
126
+ deterministic: []
127
+ };
128
+ }
129
+ function sortedWorkflowStepAttemptKindAttemptKeys(attemptKeys) {
130
+ return {
131
+ run: [...attemptKeys.run].sort(),
132
+ sleep: [...attemptKeys.sleep].sort(),
133
+ workflow: [...attemptKeys.workflow].sort(),
134
+ "message-send": [...attemptKeys["message-send"]].sort(),
135
+ "message-wait": [...attemptKeys["message-wait"]].sort(),
136
+ stream: [...attemptKeys.stream].sort(),
137
+ deterministic: [...attemptKeys.deterministic].sort()
138
+ };
139
+ }
140
+ function sortedWorkflowStepAttemptKindStepIds(stepIds) {
141
+ return {
142
+ run: [...stepIds.run].sort(),
143
+ sleep: [...stepIds.sleep].sort(),
144
+ workflow: [...stepIds.workflow].sort(),
145
+ "message-send": [...stepIds["message-send"]].sort(),
146
+ "message-wait": [...stepIds["message-wait"]].sort(),
147
+ stream: [...stepIds.stream].sort(),
148
+ deterministic: [...stepIds.deterministic].sort()
149
+ };
150
+ }
151
+ //#endregion
152
+ export { createWorkflowStepAttemptBucketSummaryReducer };
@@ -0,0 +1,12 @@
1
+ import { WorkflowStepAttemptFailureSummary, WorkflowStepAttemptRecord } from "../../types/step-attempts.mjs";
2
+ //#region src/engine/summary/step-attempt-failure.d.ts
3
+ interface WorkflowStepAttemptFailureSummaryFields {
4
+ readonly failure?: WorkflowStepAttemptFailureSummary;
5
+ }
6
+ interface WorkflowStepAttemptFailureSummaryReducer {
7
+ addAttempt(attempt: WorkflowStepAttemptRecord, attemptKey: string): void;
8
+ finish(): WorkflowStepAttemptFailureSummaryFields;
9
+ }
10
+ declare function createWorkflowStepAttemptFailureSummaryReducer(): WorkflowStepAttemptFailureSummaryReducer;
11
+ //#endregion
12
+ export { WorkflowStepAttemptFailureSummaryFields, WorkflowStepAttemptFailureSummaryReducer, createWorkflowStepAttemptFailureSummaryReducer };
@@ -0,0 +1,61 @@
1
+ import { latestOptionalTimestamp } from "../../temporal.mjs";
2
+ //#region src/engine/summary/step-attempt-failure.ts
3
+ function createWorkflowStepAttemptFailureSummaryReducer() {
4
+ const failure = createWorkflowStepAttemptFailureAccumulator();
5
+ return {
6
+ addAttempt(attempt, attemptKey) {
7
+ if (attempt.status === "failed") addWorkflowStepAttemptFailure(failure, attempt, attemptKey);
8
+ },
9
+ finish() {
10
+ return finishWorkflowStepAttemptFailureSummary(failure);
11
+ }
12
+ };
13
+ }
14
+ function createWorkflowStepAttemptFailureAccumulator() {
15
+ return {
16
+ total: 0,
17
+ errors: /* @__PURE__ */ new Map(),
18
+ failedAttemptKeys: /* @__PURE__ */ new Set(),
19
+ failedStepIds: /* @__PURE__ */ new Set()
20
+ };
21
+ }
22
+ function addWorkflowStepAttemptFailure(failure, attempt, attemptKey) {
23
+ failure.total++;
24
+ failure.failedStepIds.add(attempt.stepId);
25
+ failure.failedAttemptKeys.add(attemptKey);
26
+ failure.latestFailedAt = latestOptionalTimestamp(failure.latestFailedAt, attempt.finishedAt);
27
+ addWorkflowStepAttemptFailureError(failure, attempt, attemptKey);
28
+ }
29
+ function addWorkflowStepAttemptFailureError(failure, attempt, attemptKey) {
30
+ const errorName = attempt.error?.name ?? "Error";
31
+ const current = failure.errors.get(errorName) ?? {
32
+ count: 0,
33
+ failedAttemptKeys: /* @__PURE__ */ new Set(),
34
+ failedStepIds: /* @__PURE__ */ new Set()
35
+ };
36
+ current.count++;
37
+ current.failedStepIds.add(attempt.stepId);
38
+ current.failedAttemptKeys.add(attemptKey);
39
+ current.latestFailedAt = latestOptionalTimestamp(current.latestFailedAt, attempt.finishedAt);
40
+ failure.errors.set(errorName, current);
41
+ }
42
+ function finishWorkflowStepAttemptFailureSummary(failure) {
43
+ return failure.total === 0 ? {} : { failure: {
44
+ total: failure.total,
45
+ failedStepIds: [...failure.failedStepIds].sort(),
46
+ failedAttemptKeys: [...failure.failedAttemptKeys].sort(),
47
+ errors: finishWorkflowStepAttemptFailureErrors(failure.errors),
48
+ ...failure.latestFailedAt === void 0 ? {} : { latestFailedAt: failure.latestFailedAt }
49
+ } };
50
+ }
51
+ function finishWorkflowStepAttemptFailureErrors(errors) {
52
+ return [...errors.entries()].sort(([left], [right]) => left.localeCompare(right)).map(([name, summary]) => ({
53
+ name,
54
+ count: summary.count,
55
+ failedStepIds: [...summary.failedStepIds].sort(),
56
+ failedAttemptKeys: [...summary.failedAttemptKeys].sort(),
57
+ ...summary.latestFailedAt === void 0 ? {} : { latestFailedAt: summary.latestFailedAt }
58
+ }));
59
+ }
60
+ //#endregion
61
+ export { createWorkflowStepAttemptFailureSummaryReducer };
@@ -0,0 +1,13 @@
1
+ import { WorkflowStepAttemptRecord } from "../../types/step-attempts.mjs";
2
+ //#region src/engine/summary/step-attempt-lifecycle.d.ts
3
+ interface WorkflowStepAttemptLifecycleSummaryFields {
4
+ readonly oldestRunningAt?: Temporal.Instant;
5
+ readonly latestFinishedAt?: Temporal.Instant;
6
+ }
7
+ interface WorkflowStepAttemptLifecycleSummaryReducer {
8
+ addAttempt(attempt: WorkflowStepAttemptRecord): void;
9
+ finish(): WorkflowStepAttemptLifecycleSummaryFields;
10
+ }
11
+ declare function createWorkflowStepAttemptLifecycleSummaryReducer(): WorkflowStepAttemptLifecycleSummaryReducer;
12
+ //#endregion
13
+ export { WorkflowStepAttemptLifecycleSummaryFields, WorkflowStepAttemptLifecycleSummaryReducer, createWorkflowStepAttemptLifecycleSummaryReducer };
@@ -0,0 +1,19 @@
1
+ import { earliestOptionalTimestamp, latestOptionalTimestamp } from "../../temporal.mjs";
2
+ //#region src/engine/summary/step-attempt-lifecycle.ts
3
+ function createWorkflowStepAttemptLifecycleSummaryReducer() {
4
+ const lifecycle = {};
5
+ return {
6
+ addAttempt(attempt) {
7
+ if (attempt.status === "running") lifecycle.oldestRunningAt = earliestOptionalTimestamp(lifecycle.oldestRunningAt, attempt.startedAt);
8
+ lifecycle.latestFinishedAt = latestOptionalTimestamp(lifecycle.latestFinishedAt, attempt.finishedAt);
9
+ },
10
+ finish() {
11
+ return {
12
+ ...lifecycle.oldestRunningAt === void 0 ? {} : { oldestRunningAt: lifecycle.oldestRunningAt },
13
+ ...lifecycle.latestFinishedAt === void 0 ? {} : { latestFinishedAt: lifecycle.latestFinishedAt }
14
+ };
15
+ }
16
+ };
17
+ }
18
+ //#endregion
19
+ export { createWorkflowStepAttemptLifecycleSummaryReducer };
@@ -0,0 +1,11 @@
1
+ import { WorkflowStepAttemptRecord, WorkflowStepAttemptSummary } from "../../types/step-attempts.mjs";
2
+ import { WorkflowRunRecord } from "../../types/run.mjs";
3
+ //#region src/engine/summary/step-attempts.d.ts
4
+ interface WorkflowStepAttemptSummaryReducer {
5
+ addAttempt(attempt: WorkflowStepAttemptRecord): void;
6
+ finish(): WorkflowStepAttemptSummary;
7
+ }
8
+ /** Creates a reducer for materialized step attempts and active child workflow records. */
9
+ declare function createWorkflowStepAttemptSummaryReducer(childRuns?: readonly WorkflowRunRecord[]): WorkflowStepAttemptSummaryReducer;
10
+ //#endregion
11
+ export { WorkflowStepAttemptSummaryReducer, createWorkflowStepAttemptSummaryReducer };
@@ -0,0 +1,43 @@
1
+ import { makeWorkflowStepAttemptKey } from "../../history/attempt-key.mjs";
2
+ import { createWorkflowStepAttemptActiveChildWorkflowSummaryReducer } from "./step-attempt-active-child-workflows.mjs";
3
+ import { createWorkflowStepAttemptActiveMessageWaitSummaryReducer } from "./step-attempt-active-message-waits.mjs";
4
+ import { createWorkflowStepAttemptActiveSleepSummaryReducer } from "./step-attempt-active-sleeps.mjs";
5
+ import { createWorkflowStepAttemptBucketSummaryReducer } from "./step-attempt-buckets.mjs";
6
+ import { createWorkflowStepAttemptFailureSummaryReducer } from "./step-attempt-failure.mjs";
7
+ import { createWorkflowStepAttemptLifecycleSummaryReducer } from "./step-attempt-lifecycle.mjs";
8
+ //#region src/engine/summary/step-attempts.ts
9
+ /** Creates a reducer for materialized step attempts and active child workflow records. */
10
+ function createWorkflowStepAttemptSummaryReducer(childRuns = []) {
11
+ const buckets = createWorkflowStepAttemptBucketSummaryReducer();
12
+ const lifecycle = createWorkflowStepAttemptLifecycleSummaryReducer();
13
+ const failure = createWorkflowStepAttemptFailureSummaryReducer();
14
+ const sleep = createWorkflowStepAttemptActiveSleepSummaryReducer();
15
+ const childWorkflow = createWorkflowStepAttemptActiveChildWorkflowSummaryReducer();
16
+ const messageWait = createWorkflowStepAttemptActiveMessageWaitSummaryReducer();
17
+ let total = 0;
18
+ return {
19
+ addAttempt(attempt) {
20
+ total++;
21
+ const attemptKey = makeWorkflowStepAttemptKey(attempt.stepId, attempt.attempt);
22
+ buckets.addAttempt(attempt, attemptKey);
23
+ lifecycle.addAttempt(attempt);
24
+ failure.addAttempt(attempt, attemptKey);
25
+ sleep.addAttempt(attempt, attemptKey);
26
+ childWorkflow.addAttempt(attempt, attemptKey);
27
+ messageWait.addAttempt(attempt, attemptKey);
28
+ },
29
+ finish() {
30
+ return {
31
+ total,
32
+ ...buckets.finish(),
33
+ ...lifecycle.finish(),
34
+ ...failure.finish(),
35
+ ...sleep.finish(),
36
+ ...childWorkflow.finish(childRuns),
37
+ ...messageWait.finish()
38
+ };
39
+ }
40
+ };
41
+ }
42
+ //#endregion
43
+ export { createWorkflowStepAttemptSummaryReducer };
@@ -0,0 +1,32 @@
1
+ import { RunId } from "../types/run-id.mjs";
2
+ import { WorkflowRunSummary } from "../types/summary.mjs";
3
+ import { WorkflowStepAttemptRecord } from "../types/step-attempts.mjs";
4
+ import { WorkflowRunRecord } from "../types/run.mjs";
5
+ import { EventRecord } from "../types/events.mjs";
6
+ import { WorkflowRunChildWorkflowWaitInput } from "./summary/child-workflow-waits.mjs";
7
+ //#region src/engine/summary.d.ts
8
+ interface WorkflowRunEventActivityInput {
9
+ readonly runId: RunId;
10
+ readonly events: readonly EventRecord[];
11
+ }
12
+ interface WorkflowRunSleepWaitInput {
13
+ readonly runId: RunId;
14
+ readonly attempts: readonly WorkflowStepAttemptRecord[];
15
+ }
16
+ interface WorkflowRunMessageWaitInput {
17
+ readonly runId: RunId;
18
+ readonly attempts: readonly WorkflowStepAttemptRecord[];
19
+ }
20
+ interface WorkflowRunSummaryInputs {
21
+ readonly runs: readonly WorkflowRunRecord[];
22
+ readonly now: Temporal.Instant;
23
+ readonly cleanupCutoff?: Temporal.Instant;
24
+ readonly runningChildWorkflows?: readonly WorkflowRunChildWorkflowWaitInput[];
25
+ readonly runningSleeps?: readonly WorkflowRunSleepWaitInput[];
26
+ readonly runningMessageWaits?: readonly WorkflowRunMessageWaitInput[];
27
+ readonly runningEvents?: readonly WorkflowRunEventActivityInput[];
28
+ }
29
+ /** Summarizes workflow run records and active wait events for inspection dashboards. */
30
+ declare function summarizeWorkflowRuns(inputs: WorkflowRunSummaryInputs): WorkflowRunSummary;
31
+ //#endregion
32
+ export { WorkflowRunEventActivityInput, WorkflowRunMessageWaitInput, WorkflowRunSleepWaitInput, WorkflowRunSummaryInputs, summarizeWorkflowRuns };
@@ -0,0 +1,37 @@
1
+ import { activeWorkflowEvents } from "./summary/active-events.mjs";
2
+ import { createWorkflowRunChildWorkflowWaitSummaryReducer } from "./summary/child-workflow-waits.mjs";
3
+ import { createWorkflowRunHookActivitySummaryReducer } from "./summary/run-hooks.mjs";
4
+ import { createWorkflowRunMessageWaitSummaryReducer } from "./summary/run-message-waits.mjs";
5
+ import { createWorkflowRunSleepWaitSummaryReducer } from "./summary/run-sleeps.mjs";
6
+ import { createWorkflowRunStateSummaryReducer } from "./summary/run-state.mjs";
7
+ import { createWorkflowRunStreamActivitySummaryReducer } from "./summary/run-streams.mjs";
8
+ //#region src/engine/summary.ts
9
+ /** Summarizes workflow run records and active wait events for inspection dashboards. */
10
+ function summarizeWorkflowRuns(inputs) {
11
+ const { runs, now, cleanupCutoff, runningChildWorkflows = [], runningSleeps = [], runningMessageWaits = [], runningEvents = [] } = inputs;
12
+ const runState = createWorkflowRunStateSummaryReducer(now, cleanupCutoff);
13
+ for (const run of runs) runState.addRun(run);
14
+ const streams = createWorkflowRunStreamActivitySummaryReducer();
15
+ const hooks = createWorkflowRunHookActivitySummaryReducer();
16
+ for (const runEvents of runningEvents) {
17
+ const activeEvents = activeWorkflowEvents(runEvents.events);
18
+ for (const stream of activeEvents.streams) streams.addStream(runEvents.runId, stream);
19
+ for (const hook of activeEvents.hooks) hooks.addHook(runEvents.runId, hook);
20
+ }
21
+ const sleeps = createWorkflowRunSleepWaitSummaryReducer();
22
+ for (const runSleeps of runningSleeps) sleeps.addAttempts(runSleeps.runId, runSleeps.attempts);
23
+ const messageWaits = createWorkflowRunMessageWaitSummaryReducer();
24
+ for (const runWaits of runningMessageWaits) messageWaits.addAttempts(runWaits.runId, runWaits.attempts);
25
+ const childWorkflowWaits = createWorkflowRunChildWorkflowWaitSummaryReducer();
26
+ for (const childWorkflowWait of runningChildWorkflows) childWorkflowWaits.addChildWorkflowAttempts(childWorkflowWait.runId, childWorkflowWait.attempts, childWorkflowWait.childRuns);
27
+ return {
28
+ ...runState.finish(),
29
+ ...streams.finish(),
30
+ ...hooks.finish(),
31
+ ...sleeps.finish(),
32
+ ...messageWaits.finish(),
33
+ ...childWorkflowWaits.finish()
34
+ };
35
+ }
36
+ //#endregion
37
+ export { summarizeWorkflowRuns };
@@ -0,0 +1,6 @@
1
+ import { WorkflowStepTaskApi } from "../types/step.mjs";
2
+ import { WorkflowExecutionEnvironment } from "../types/engine.mjs";
3
+ //#region src/engine/task.d.ts
4
+ declare function createWorkflowStepTaskApi(environment: WorkflowExecutionEnvironment, executionSignal: AbortSignal): WorkflowStepTaskApi;
5
+ //#endregion
6
+ export { createWorkflowStepTaskApi };