@temelj/workflow 0.0.0-alpha.2 → 0.0.0-alpha.4

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 (461) hide show
  1. package/README.md +394 -2
  2. package/dist/attributes.d.mts +11 -9
  3. package/dist/attributes.mjs +23 -5
  4. package/dist/bundle.d.mts +5 -23
  5. package/dist/bundle.mjs +2 -18
  6. package/dist/client/create.d.mts +26 -23
  7. package/dist/client/create.mjs +26 -32
  8. package/dist/client/facades.d.mts +12 -18
  9. package/dist/client/facades.mjs +102 -93
  10. package/dist/client/mod.mjs +1 -2
  11. package/dist/client/run-handle.d.mts +17 -54
  12. package/dist/client/run-handle.mjs +35 -105
  13. package/dist/client/worker-options.d.mts +8 -8
  14. package/dist/client/worker-options.mjs +11 -11
  15. package/dist/cloudflare/cloudflare.d.mts +4 -5
  16. package/dist/cloudflare/codec.d.mts +28 -13
  17. package/dist/cloudflare/codec.mjs +40 -17
  18. package/dist/cloudflare/entrypoint.d.mts +3 -4
  19. package/dist/cloudflare/entrypoint.mjs +4 -3
  20. package/dist/cloudflare/execution.d.mts +3 -4
  21. package/dist/cloudflare/execution.mjs +20 -13
  22. package/dist/cloudflare/host.d.mts +6 -7
  23. package/dist/cloudflare/host.mjs +7 -6
  24. package/dist/cloudflare/mod.d.mts +4 -4
  25. package/dist/cloudflare/mod.mjs +2 -2
  26. package/dist/cloudflare/name.d.mts +3 -4
  27. package/dist/cloudflare/name.mjs +3 -3
  28. package/dist/cloudflare/registry.d.mts +3 -23
  29. package/dist/cloudflare/registry.mjs +2 -20
  30. package/dist/cloudflare/runtime.d.mts +11 -18
  31. package/dist/cloudflare/runtime.mjs +52 -73
  32. package/dist/cloudflare/step.d.mts +6 -6
  33. package/dist/cloudflare/step.mjs +69 -57
  34. package/dist/cloudflare/types.d.mts +17 -36
  35. package/dist/collection.d.mts +8 -11
  36. package/dist/collection.mjs +10 -14
  37. package/dist/compiled-function.d.mts +14 -19
  38. package/dist/compiled-function.mjs +12 -24
  39. package/dist/compiled.d.mts +4 -0
  40. package/dist/compiled.mjs +4 -0
  41. package/dist/compiler/ast.d.mts +26 -0
  42. package/dist/{vite → compiler}/ast.mjs +24 -16
  43. package/dist/{vite → compiler}/error.d.mts +4 -6
  44. package/dist/{vite → compiler}/error.mjs +14 -16
  45. package/dist/compiler/manifest.d.mts +6 -0
  46. package/dist/{vite → compiler}/manifest.mjs +9 -7
  47. package/dist/compiler/plugin.d.mts +7 -0
  48. package/dist/{vite → compiler}/plugin.mjs +45 -46
  49. package/dist/compiler/safety.d.mts +12 -0
  50. package/dist/{vite → compiler}/safety.mjs +5 -11
  51. package/dist/{vite → compiler}/source-edit.d.mts +3 -4
  52. package/dist/{vite → compiler}/source-edit.mjs +1 -1
  53. package/dist/{vite → compiler}/source-map.d.mts +4 -3
  54. package/dist/{vite → compiler}/source-map.mjs +3 -3
  55. package/dist/compiler/source.d.mts +7 -0
  56. package/dist/{vite → compiler}/source.mjs +1 -1
  57. package/dist/compiler/transform.d.mts +12 -0
  58. package/dist/{vite → compiler}/transform.mjs +37 -38
  59. package/dist/definition.d.mts +17 -25
  60. package/dist/definition.mjs +19 -35
  61. package/dist/engine/child-workflow.d.mts +5 -9
  62. package/dist/engine/child-workflow.mjs +46 -67
  63. package/dist/engine/command-identity.d.mts +5 -6
  64. package/dist/engine/command-identity.mjs +9 -5
  65. package/dist/engine/context.d.mts +17 -0
  66. package/dist/engine/create.d.mts +36 -94
  67. package/dist/engine/create.mjs +55 -260
  68. package/dist/engine/deterministic.d.mts +6 -11
  69. package/dist/engine/deterministic.mjs +47 -68
  70. package/dist/engine/durable-command.d.mts +5 -5
  71. package/dist/engine/durable-command.mjs +2 -2
  72. package/dist/engine/execution-service.d.mts +20 -24
  73. package/dist/engine/execution-service.mjs +54 -52
  74. package/dist/engine/hooks.d.mts +17 -39
  75. package/dist/engine/hooks.mjs +73 -94
  76. package/dist/engine/inspection.d.mts +23 -15
  77. package/dist/engine/inspection.mjs +55 -29
  78. package/dist/engine/lifecycle.d.mts +6 -12
  79. package/dist/engine/lifecycle.mjs +5 -5
  80. package/dist/engine/lock-replay.d.mts +8 -15
  81. package/dist/engine/lock-replay.mjs +12 -25
  82. package/dist/engine/lock.d.mts +10 -15
  83. package/dist/engine/lock.mjs +65 -51
  84. package/dist/engine/message.d.mts +14 -34
  85. package/dist/engine/message.mjs +94 -127
  86. package/dist/engine/observation.d.mts +9 -11
  87. package/dist/engine/observation.mjs +18 -27
  88. package/dist/engine/replay.d.mts +18 -19
  89. package/dist/engine/replay.mjs +32 -56
  90. package/dist/engine/resume.d.mts +16 -0
  91. package/dist/engine/resume.mjs +24 -0
  92. package/dist/engine/retry.d.mts +15 -19
  93. package/dist/engine/retry.mjs +17 -17
  94. package/dist/engine/run-data.d.mts +4 -8
  95. package/dist/engine/run-data.mjs +24 -22
  96. package/dist/engine/run-service.d.mts +24 -33
  97. package/dist/engine/run-service.mjs +125 -93
  98. package/dist/engine/run-utils.d.mts +11 -13
  99. package/dist/engine/run-utils.mjs +23 -46
  100. package/dist/engine/schedule.d.mts +8 -22
  101. package/dist/engine/schedule.mjs +37 -34
  102. package/dist/engine/serialization.d.mts +9 -6
  103. package/dist/engine/serialization.mjs +30 -21
  104. package/dist/engine/signals.d.mts +23 -0
  105. package/dist/engine/signals.mjs +41 -0
  106. package/dist/engine/start.d.mts +18 -0
  107. package/dist/engine/start.mjs +88 -0
  108. package/dist/engine/state.d.mts +37 -67
  109. package/dist/engine/state.mjs +127 -282
  110. package/dist/engine/step-api.d.mts +5 -8
  111. package/dist/engine/step-api.mjs +16 -16
  112. package/dist/engine/stream-reader.d.mts +12 -0
  113. package/dist/engine/stream-reader.mjs +154 -0
  114. package/dist/engine/stream.d.mts +9 -54
  115. package/dist/engine/stream.mjs +54 -196
  116. package/dist/engine/summary/recovery.d.mts +35 -0
  117. package/dist/engine/summary/recovery.mjs +363 -0
  118. package/dist/engine/summary/runs.d.mts +43 -0
  119. package/dist/engine/summary/runs.mjs +294 -0
  120. package/dist/engine/summary/step-attempts.d.mts +5 -10
  121. package/dist/engine/summary/step-attempts.mjs +157 -36
  122. package/dist/engine/summary/tally.d.mts +44 -0
  123. package/dist/engine/summary/tally.mjs +142 -0
  124. package/dist/engine/task.d.mts +4 -5
  125. package/dist/engine/task.mjs +40 -48
  126. package/dist/errors/base.d.mts +17 -77
  127. package/dist/errors/base.mjs +26 -327
  128. package/dist/errors/capability.d.mts +3 -6
  129. package/dist/errors/capability.mjs +4 -8
  130. package/dist/errors/codes.d.mts +116 -0
  131. package/dist/{types/error-code.mjs → errors/codes.mjs} +2 -17
  132. package/dist/errors/definition.d.mts +3 -17
  133. package/dist/errors/definition.mjs +5 -42
  134. package/dist/errors/failures.d.mts +17 -51
  135. package/dist/errors/failures.mjs +35 -102
  136. package/dist/errors/hook.d.mts +5 -9
  137. package/dist/errors/hook.mjs +4 -16
  138. package/dist/errors/implementation.d.mts +3 -6
  139. package/dist/errors/implementation.mjs +7 -12
  140. package/dist/errors/lock.d.mts +7 -20
  141. package/dist/errors/lock.mjs +8 -44
  142. package/dist/errors/message.d.mts +14 -59
  143. package/dist/errors/message.mjs +13 -39
  144. package/dist/errors/mod.d.mts +4 -5
  145. package/dist/errors/mod.mjs +5 -7
  146. package/dist/errors/records.d.mts +10 -4
  147. package/dist/errors/records.mjs +256 -256
  148. package/dist/errors/run.d.mts +27 -68
  149. package/dist/errors/run.mjs +31 -85
  150. package/dist/errors/schedule.d.mts +7 -18
  151. package/dist/errors/schedule.mjs +7 -39
  152. package/dist/errors/step.d.mts +12 -45
  153. package/dist/errors/step.mjs +13 -34
  154. package/dist/errors/stream.d.mts +8 -16
  155. package/dist/errors/stream.mjs +7 -41
  156. package/dist/esbuild.d.mts +6 -4
  157. package/dist/esbuild.mjs +2 -1
  158. package/dist/events/descriptors.d.mts +12 -241
  159. package/dist/events/descriptors.mjs +12 -5
  160. package/dist/history/projection.d.mts +4 -6
  161. package/dist/history/projection.mjs +22 -26
  162. package/dist/history/replay-projection.d.mts +44 -48
  163. package/dist/history/replay-projection.mjs +41 -50
  164. package/dist/history/{mod.d.mts → replay.d.mts} +16 -21
  165. package/dist/history/{mod.mjs → replay.mjs} +21 -25
  166. package/dist/history/sequencer.d.mts +10 -11
  167. package/dist/history/sequencer.mjs +11 -7
  168. package/dist/history/step-attempts.d.mts +4 -7
  169. package/dist/history/step-attempts.mjs +8 -9
  170. package/dist/history/timeline.d.mts +4 -13
  171. package/dist/history/timeline.mjs +46 -265
  172. package/dist/history/validator.d.mts +5 -7
  173. package/dist/history/validator.mjs +9 -24
  174. package/dist/hook-token.d.mts +7 -0
  175. package/dist/hook-token.mjs +32 -0
  176. package/dist/ids.d.mts +8 -0
  177. package/dist/ids.mjs +21 -0
  178. package/dist/message-options.d.mts +11 -5
  179. package/dist/message-options.mjs +9 -7
  180. package/dist/mod.d.mts +32 -36
  181. package/dist/mod.mjs +9 -13
  182. package/dist/otel/metrics.d.mts +31 -0
  183. package/dist/otel/metrics.mjs +60 -0
  184. package/dist/otel/mod.d.mts +3 -0
  185. package/dist/otel/mod.mjs +3 -0
  186. package/dist/otel/spans.d.mts +24 -0
  187. package/dist/otel/spans.mjs +218 -0
  188. package/dist/otel/support.d.mts +15 -8
  189. package/dist/otel/support.mjs +18 -40
  190. package/dist/{otel.d.mts → otel/telemetry.d.mts} +5 -6
  191. package/dist/otel/telemetry.mjs +305 -0
  192. package/dist/pagination.d.mts +6 -12
  193. package/dist/pagination.mjs +10 -14
  194. package/dist/registry.d.mts +8 -5
  195. package/dist/registry.mjs +19 -10
  196. package/dist/rolldown.d.mts +6 -4
  197. package/dist/rolldown.mjs +2 -1
  198. package/dist/rollup.d.mts +6 -4
  199. package/dist/rollup.mjs +2 -1
  200. package/dist/rspack.d.mts +6 -4
  201. package/dist/rspack.mjs +2 -1
  202. package/dist/run-status.d.mts +29 -0
  203. package/dist/run-status.mjs +42 -0
  204. package/dist/schema/common.d.mts +22 -0
  205. package/dist/schema/common.mjs +54 -0
  206. package/dist/schema/error.d.mts +17 -0
  207. package/dist/schema/error.mjs +39 -0
  208. package/dist/schema/events.d.mts +446 -0
  209. package/dist/schema/events.mjs +235 -0
  210. package/dist/schema/pagination.d.mts +5 -0
  211. package/dist/schema/pagination.mjs +11 -0
  212. package/dist/schema/persisted-value.d.mts +8 -0
  213. package/dist/schema/persisted-value.mjs +94 -0
  214. package/dist/schema/run.d.mts +51 -0
  215. package/dist/schema/run.mjs +88 -0
  216. package/dist/schema/store.d.mts +94 -0
  217. package/dist/schema/store.mjs +116 -0
  218. package/dist/step-definition.d.mts +4 -9
  219. package/dist/step-definition.mjs +2 -2
  220. package/dist/store/capabilities.d.mts +8 -9
  221. package/dist/store/capabilities.mjs +7 -7
  222. package/dist/store/cleanup.d.mts +9 -14
  223. package/dist/store/cleanup.mjs +86 -85
  224. package/dist/store/create.d.mts +28 -29
  225. package/dist/store/create.mjs +10 -11
  226. package/dist/store/events.d.mts +48 -0
  227. package/dist/store/events.mjs +263 -0
  228. package/dist/store/indexes.d.mts +25 -0
  229. package/dist/store/indexes.mjs +282 -0
  230. package/dist/store/instrumentation.d.mts +2 -3
  231. package/dist/store/instrumentation.mjs +30 -30
  232. package/dist/store/lock.d.mts +4 -5
  233. package/dist/store/lock.mjs +5 -7
  234. package/dist/store/materialization.d.mts +10 -17
  235. package/dist/store/materialization.mjs +39 -33
  236. package/dist/store/mod.d.mts +3 -3
  237. package/dist/store/mod.mjs +2 -2
  238. package/dist/store/query.d.mts +13 -17
  239. package/dist/store/query.mjs +13 -13
  240. package/dist/store/run.d.mts +25 -34
  241. package/dist/store/run.mjs +67 -108
  242. package/dist/store/schedule.d.mts +6 -8
  243. package/dist/store/schedule.mjs +11 -11
  244. package/dist/store/step-attempt.d.mts +9 -12
  245. package/dist/store/step-attempt.mjs +9 -9
  246. package/dist/store/storage-value.d.mts +3 -3
  247. package/dist/store/storage-value.mjs +17 -1
  248. package/dist/store/validation.d.mts +17 -20
  249. package/dist/store/validation.mjs +30 -33
  250. package/dist/store-keys.d.mts +35 -47
  251. package/dist/store-keys.mjs +9 -17
  252. package/dist/telemetry.d.mts +16 -16
  253. package/dist/telemetry.mjs +3 -3
  254. package/dist/temporal.d.mts +11 -16
  255. package/dist/temporal.mjs +8 -9
  256. package/dist/timer.d.mts +12 -10
  257. package/dist/timer.mjs +11 -3
  258. package/dist/types/cleanup.d.mts +13 -50
  259. package/dist/types/cleanup.mjs +1 -22
  260. package/dist/types/client.d.mts +101 -162
  261. package/dist/types/{vite.d.mts → compiler.d.mts} +17 -24
  262. package/dist/types/compiler.mjs +1 -0
  263. package/dist/types/definition.d.mts +22 -34
  264. package/dist/types/engine-options.d.mts +10 -17
  265. package/dist/types/engine.d.mts +15 -274
  266. package/dist/types/error.d.mts +15 -217
  267. package/dist/types/error.mjs +1 -48
  268. package/dist/types/events.d.mts +59 -2730
  269. package/dist/types/events.mjs +1 -283
  270. package/dist/types/hook.d.mts +27 -85
  271. package/dist/types/hook.mjs +1 -66
  272. package/dist/types/ids.d.mts +9 -0
  273. package/dist/types/ids.mjs +1 -0
  274. package/dist/types/lock.d.mts +8 -26
  275. package/dist/types/lock.mjs +1 -18
  276. package/dist/types/message.d.mts +29 -43
  277. package/dist/types/observation.d.mts +43 -58
  278. package/dist/types/pagination.d.mts +6 -22
  279. package/dist/types/pagination.mjs +1 -13
  280. package/dist/types/result.d.mts +11 -43
  281. package/dist/types/retry.d.mts +7 -14
  282. package/dist/types/run-list.d.mts +9 -11
  283. package/dist/types/run-options.d.mts +25 -32
  284. package/dist/types/run.d.mts +35 -315
  285. package/dist/types/run.mjs +1 -207
  286. package/dist/types/runtime.d.mts +33 -145
  287. package/dist/types/runtime.mjs +1 -21
  288. package/dist/types/schedule.d.mts +13 -72
  289. package/dist/types/schedule.mjs +1 -48
  290. package/dist/types/step-attempts.d.mts +65 -261
  291. package/dist/types/step-attempts.mjs +1 -43
  292. package/dist/types/step.d.mts +66 -77
  293. package/dist/types/step.mjs +1 -5
  294. package/dist/types/store.d.mts +50 -182
  295. package/dist/types/stream.d.mts +19 -40
  296. package/dist/types/summary.d.mts +174 -278
  297. package/dist/types/telemetry.d.mts +23 -28
  298. package/dist/types/telemetry.mjs +1 -9
  299. package/dist/types/timeline.d.mts +46 -233
  300. package/dist/types/worker.d.mts +22 -29
  301. package/dist/values.d.mts +15 -0
  302. package/dist/values.mjs +57 -0
  303. package/dist/vite.d.mts +5 -6
  304. package/dist/vite.mjs +3 -4
  305. package/dist/webpack.d.mts +6 -4
  306. package/dist/webpack.mjs +2 -1
  307. package/dist/worker/error.d.mts +2 -9
  308. package/dist/worker/error.mjs +20 -32
  309. package/dist/worker/missing-implementation.d.mts +19 -0
  310. package/dist/worker/missing-implementation.mjs +62 -0
  311. package/dist/worker/worker.d.mts +18 -0
  312. package/dist/{worker.mjs → worker/worker.mjs} +64 -118
  313. package/package.json +28 -47
  314. package/dist/engine/execution-api.d.mts +0 -29
  315. package/dist/engine/execution-api.mjs +0 -33
  316. package/dist/engine/inspection-api.d.mts +0 -34
  317. package/dist/engine/inspection-api.mjs +0 -78
  318. package/dist/engine/mod.d.mts +0 -4
  319. package/dist/engine/mod.mjs +0 -2
  320. package/dist/engine/recovery.d.mts +0 -26
  321. package/dist/engine/recovery.mjs +0 -92
  322. package/dist/engine/retry-policy.d.mts +0 -4
  323. package/dist/engine/retry-policy.mjs +0 -4
  324. package/dist/engine/start-api.d.mts +0 -30
  325. package/dist/engine/start-api.mjs +0 -99
  326. package/dist/engine/summary/active-events.d.mts +0 -34
  327. package/dist/engine/summary/active-events.mjs +0 -69
  328. package/dist/engine/summary/child-workflow-runs.d.mts +0 -24
  329. package/dist/engine/summary/child-workflow-runs.mjs +0 -138
  330. package/dist/engine/summary/child-workflow-waits.d.mts +0 -21
  331. package/dist/engine/summary/child-workflow-waits.mjs +0 -67
  332. package/dist/engine/summary/recovery-child-workflow-waits.d.mts +0 -11
  333. package/dist/engine/summary/recovery-child-workflow-waits.mjs +0 -89
  334. package/dist/engine/summary/recovery-due-runs.d.mts +0 -16
  335. package/dist/engine/summary/recovery-due-runs.mjs +0 -52
  336. package/dist/engine/summary/recovery-failed-runs.d.mts +0 -14
  337. package/dist/engine/summary/recovery-failed-runs.mjs +0 -33
  338. package/dist/engine/summary/recovery-lease-runs.d.mts +0 -16
  339. package/dist/engine/summary/recovery-lease-runs.mjs +0 -69
  340. package/dist/engine/summary/recovery-locks.d.mts +0 -18
  341. package/dist/engine/summary/recovery-locks.mjs +0 -100
  342. package/dist/engine/summary/recovery-message-waits.d.mts +0 -11
  343. package/dist/engine/summary/recovery-message-waits.mjs +0 -74
  344. package/dist/engine/summary/recovery-retry-runs.d.mts +0 -17
  345. package/dist/engine/summary/recovery-retry-runs.mjs +0 -65
  346. package/dist/engine/summary/recovery-run-timestamps.d.mts +0 -13
  347. package/dist/engine/summary/recovery-run-timestamps.mjs +0 -18
  348. package/dist/engine/summary/recovery-runs.d.mts +0 -23
  349. package/dist/engine/summary/recovery-runs.mjs +0 -54
  350. package/dist/engine/summary/recovery-schedules.d.mts +0 -10
  351. package/dist/engine/summary/recovery-schedules.mjs +0 -46
  352. package/dist/engine/summary/recovery-sleep-waits.d.mts +0 -10
  353. package/dist/engine/summary/recovery-sleep-waits.mjs +0 -53
  354. package/dist/engine/summary/recovery-waits.d.mts +0 -21
  355. package/dist/engine/summary/recovery-waits.mjs +0 -29
  356. package/dist/engine/summary/run-availability.d.mts +0 -13
  357. package/dist/engine/summary/run-availability.mjs +0 -37
  358. package/dist/engine/summary/run-cleanup.d.mts +0 -14
  359. package/dist/engine/summary/run-cleanup.mjs +0 -44
  360. package/dist/engine/summary/run-failure.d.mts +0 -14
  361. package/dist/engine/summary/run-failure.mjs +0 -62
  362. package/dist/engine/summary/run-hooks.d.mts +0 -14
  363. package/dist/engine/summary/run-hooks.mjs +0 -63
  364. package/dist/engine/summary/run-lease.d.mts +0 -11
  365. package/dist/engine/summary/run-lease.mjs +0 -64
  366. package/dist/engine/summary/run-message-waits.d.mts +0 -15
  367. package/dist/engine/summary/run-message-waits.mjs +0 -62
  368. package/dist/engine/summary/run-metrics.d.mts +0 -31
  369. package/dist/engine/summary/run-metrics.mjs +0 -93
  370. package/dist/engine/summary/run-retry.d.mts +0 -9
  371. package/dist/engine/summary/run-retry.mjs +0 -69
  372. package/dist/engine/summary/run-sleeps.d.mts +0 -15
  373. package/dist/engine/summary/run-sleeps.mjs +0 -61
  374. package/dist/engine/summary/run-state.d.mts +0 -26
  375. package/dist/engine/summary/run-state.mjs +0 -48
  376. package/dist/engine/summary/run-status.d.mts +0 -16
  377. package/dist/engine/summary/run-status.mjs +0 -35
  378. package/dist/engine/summary/run-streams.d.mts +0 -14
  379. package/dist/engine/summary/run-streams.mjs +0 -46
  380. package/dist/engine/summary/run-transition.d.mts +0 -9
  381. package/dist/engine/summary/run-transition.mjs +0 -39
  382. package/dist/engine/summary/run-workflow.d.mts +0 -9
  383. package/dist/engine/summary/run-workflow.mjs +0 -47
  384. package/dist/engine/summary/step-attempt-active-child-workflows.d.mts +0 -13
  385. package/dist/engine/summary/step-attempt-active-child-workflows.mjs +0 -55
  386. package/dist/engine/summary/step-attempt-active-fields.d.mts +0 -23
  387. package/dist/engine/summary/step-attempt-active-fields.mjs +0 -14
  388. package/dist/engine/summary/step-attempt-active-message-waits.d.mts +0 -12
  389. package/dist/engine/summary/step-attempt-active-message-waits.mjs +0 -47
  390. package/dist/engine/summary/step-attempt-active-sleeps.d.mts +0 -19
  391. package/dist/engine/summary/step-attempt-active-sleeps.mjs +0 -44
  392. package/dist/engine/summary/step-attempt-buckets.d.mts +0 -22
  393. package/dist/engine/summary/step-attempt-buckets.mjs +0 -152
  394. package/dist/engine/summary/step-attempt-failure.d.mts +0 -12
  395. package/dist/engine/summary/step-attempt-failure.mjs +0 -61
  396. package/dist/engine/summary/step-attempt-lifecycle.d.mts +0 -13
  397. package/dist/engine/summary/step-attempt-lifecycle.mjs +0 -19
  398. package/dist/engine/summary.d.mts +0 -32
  399. package/dist/engine/summary.mjs +0 -37
  400. package/dist/errors/details.d.mts +0 -13
  401. package/dist/errors/details.mjs +0 -66
  402. package/dist/errors/record-view.d.mts +0 -11
  403. package/dist/errors/record-view.mjs +0 -24
  404. package/dist/errors/runtime.d.mts +0 -12
  405. package/dist/errors/runtime.mjs +0 -24
  406. package/dist/events/mod.d.mts +0 -3
  407. package/dist/events/mod.mjs +0 -2
  408. package/dist/history/attempt-key.d.mts +0 -6
  409. package/dist/history/attempt-key.mjs +0 -7
  410. package/dist/inspection/mod.d.mts +0 -5
  411. package/dist/inspection/mod.mjs +0 -3
  412. package/dist/otel.mjs +0 -590
  413. package/dist/runtime.d.mts +0 -35
  414. package/dist/runtime.mjs +0 -198
  415. package/dist/store/append-projection.d.mts +0 -15
  416. package/dist/store/append-projection.mjs +0 -26
  417. package/dist/store/compaction.d.mts +0 -5
  418. package/dist/store/compaction.mjs +0 -8
  419. package/dist/store/event-append-project.d.mts +0 -15
  420. package/dist/store/event-append-project.mjs +0 -77
  421. package/dist/store/event-append.d.mts +0 -37
  422. package/dist/store/event-append.mjs +0 -80
  423. package/dist/store/event-history.d.mts +0 -22
  424. package/dist/store/event-history.mjs +0 -75
  425. package/dist/store/event.d.mts +0 -10
  426. package/dist/store/event.mjs +0 -28
  427. package/dist/store/idempotency.d.mts +0 -10
  428. package/dist/store/idempotency.mjs +0 -167
  429. package/dist/store/message-index.d.mts +0 -21
  430. package/dist/store/message-index.mjs +0 -122
  431. package/dist/store/revision.d.mts +0 -4
  432. package/dist/store/revision.mjs +0 -7
  433. package/dist/store/schema.d.mts +0 -14
  434. package/dist/store/schema.mjs +0 -17
  435. package/dist/types/common.d.mts +0 -20
  436. package/dist/types/common.mjs +0 -16
  437. package/dist/types/error-code.d.mts +0 -256
  438. package/dist/types/message-id.d.mts +0 -7
  439. package/dist/types/message-id.mjs +0 -5
  440. package/dist/types/run-id.d.mts +0 -7
  441. package/dist/types/run-id.mjs +0 -5
  442. package/dist/types/step-id.d.mts +0 -7
  443. package/dist/types/step-id.mjs +0 -5
  444. package/dist/types/stream-id.d.mts +0 -7
  445. package/dist/types/stream-id.mjs +0 -5
  446. package/dist/types/worker-id.d.mts +0 -7
  447. package/dist/types/worker-id.mjs +0 -5
  448. package/dist/utility.d.mts +0 -49
  449. package/dist/utility.mjs +0 -122
  450. package/dist/vite/ast.d.mts +0 -23
  451. package/dist/vite/generated-name.d.mts +0 -7
  452. package/dist/vite/generated-name.mjs +0 -9
  453. package/dist/vite/manifest.d.mts +0 -7
  454. package/dist/vite/plugin.d.mts +0 -7
  455. package/dist/vite/safety.d.mts +0 -12
  456. package/dist/vite/source.d.mts +0 -7
  457. package/dist/vite/transform.d.mts +0 -7
  458. package/dist/webhook.d.mts +0 -16
  459. package/dist/webhook.mjs +0 -17
  460. package/dist/worker.d.mts +0 -19
  461. /package/dist/{types/vite.mjs → engine/context.mjs} +0 -0
@@ -1,23 +1,22 @@
1
1
  import { WorkflowReplayDivergenceError } from "../errors/failures.mjs";
2
- import { makeWorkflowStepAttemptKey } from "./attempt-key.mjs";
3
2
  import "../errors/mod.mjs";
4
- import { createWorkflowStepSequencer } from "./sequencer.mjs";
3
+ import { stepAttemptKey } from "../store-keys.mjs";
4
+ import { createStepSequencer } from "./sequencer.mjs";
5
5
  import { requireWorkflowStartedEventsAreUnique, requireWorkflowTerminalEventsAreUnique, requireWorkflowTerminalEventsHaveStartedEvents } from "./validator.mjs";
6
- import { activeMessageWaitStepIds, appendWorkflowReplayProjectionEvents, createWorkflowReplayProjection, findLastIndexedWorkflowEventAfter, findLastMessageWaitStartedByNameAndMessageId, findLastMessageWaitStartedForCompleted, findLastMessageWaitTerminalAfterStarted, findLastWorkflowChildWorkflowStartedForTerminal, findLastWorkflowMessageSentById, findLastWorkflowSleepStartedForCompleted, findStreamEventProjection, findWorkflowChildWorkflowLifecycleForAttempt, findWorkflowMessageSentByIdempotencyKey, findWorkflowMessageSentByTimestamp, findWorkflowMessageSentForWait } from "./replay-projection.mjs";
7
- import { applyWorkflowStepAttemptEvent } from "./projection.mjs";
6
+ import { activeMessageWaitStepIds, appendReplayProjectionEvents, createReplayProjection, findChildWorkflowLifecycleForAttempt, findLastChildWorkflowStartedForTerminal, findLastIndexedEventAfter, findLastMessageSentById, findLastMessageWaitStartedByNameAndMessageId, findLastMessageWaitStartedForCompleted, findLastMessageWaitTerminalAfterStarted, findLastSleepStartedForCompleted, findMessageSentByIdempotencyKey, findMessageSentByTimestamp, findMessageSentForWait, findStreamEventProjection } from "./replay-projection.mjs";
7
+ import { applyStepAttemptEvent } from "./projection.mjs";
8
8
  import { createTimeline } from "./timeline.mjs";
9
9
  import { deepEquals } from "@temelj/value";
10
- //#region src/history/mod.ts
11
- /** Runtime class for workflow history. */
12
- var WorkflowHistory = class {
10
+ //#region src/history/replay.ts
11
+ var History = class {
13
12
  #events;
14
13
  #sequencer;
15
14
  #projection;
16
15
  #appendQueue = Promise.resolve();
17
16
  constructor(events) {
18
17
  this.#events = [...events];
19
- this.#sequencer = createWorkflowStepSequencer(events);
20
- this.#projection = createWorkflowReplayProjection(this.#events);
18
+ this.#sequencer = createStepSequencer(events);
19
+ this.#projection = createReplayProjection(this.#events);
21
20
  }
22
21
  get events() {
23
22
  return this.#events;
@@ -57,10 +56,7 @@ var WorkflowHistory = class {
57
56
  return this.#projection.startedStepAttempts.get(stepId)?.length ?? 0;
58
57
  }
59
58
  nextStepAttempt(stepId) {
60
- if (this.#projection.invalidStartedStepAttempt.has(stepId)) WorkflowReplayDivergenceError.diverged(`recorded run step ${stepId} has an invalid attempt number`, {
61
- expectedStepId: stepId,
62
- actualStepId: stepId
63
- });
59
+ if (this.#projection.invalidStartedStepAttempt.has(stepId)) WorkflowReplayDivergenceError.atStep(stepId, `recorded run step ${stepId} has an invalid attempt number`);
64
60
  return this.#projection.nextStepAttemptByStepId.get(stepId) ?? 1;
65
61
  }
66
62
  totalStartedStepCount() {
@@ -76,7 +72,7 @@ var WorkflowHistory = class {
76
72
  return this.#projection.completedSleep.get(stepId);
77
73
  }
78
74
  startedSleepForCompleted(completed) {
79
- return findLastWorkflowSleepStartedForCompleted(this.#projection, completed);
75
+ return findLastSleepStartedForCompleted(this.#projection, completed);
80
76
  }
81
77
  startedChildWorkflow(stepId) {
82
78
  return this.#projection.startedChildWorkflow.get(stepId);
@@ -88,10 +84,10 @@ var WorkflowHistory = class {
88
84
  return this.#projection.failedChildWorkflow.get(stepId);
89
85
  }
90
86
  startedChildWorkflowForTerminal(terminal) {
91
- return findLastWorkflowChildWorkflowStartedForTerminal(this.#projection, terminal);
87
+ return findLastChildWorkflowStartedForTerminal(this.#projection, terminal);
92
88
  }
93
89
  childWorkflowLifecycleForAttempt(attempt) {
94
- return findWorkflowChildWorkflowLifecycleForAttempt(this.#projection, attempt);
90
+ return findChildWorkflowLifecycleForAttempt(this.#projection, attempt);
95
91
  }
96
92
  startedMessageWait(stepId) {
97
93
  return this.#projection.startedMessageWait.get(stepId);
@@ -100,10 +96,10 @@ var WorkflowHistory = class {
100
96
  return findLastMessageWaitStartedForCompleted(this.#projection, completed);
101
97
  }
102
98
  completedMessageWait(stepId) {
103
- return findLastIndexedWorkflowEventAfter(this.#projection.completedMessageWait.get(stepId) ?? [], this.#projection.latestMessageWaitStartedIndex.get(stepId) ?? -1, (event) => event.timestamp instanceof Temporal.Instant);
99
+ return findLastIndexedEventAfter(this.#projection.completedMessageWait.get(stepId) ?? [], this.#projection.latestMessageWaitStartedIndex.get(stepId) ?? -1, (event) => event.timestamp instanceof Temporal.Instant);
104
100
  }
105
101
  failedMessageWait(stepId) {
106
- return findLastIndexedWorkflowEventAfter(this.#projection.failedMessageWait.get(stepId) ?? [], this.#projection.latestMessageWaitStartedIndex.get(stepId) ?? -1, (event) => event.timestamp instanceof Temporal.Instant);
102
+ return findLastIndexedEventAfter(this.#projection.failedMessageWait.get(stepId) ?? [], this.#projection.latestMessageWaitStartedIndex.get(stepId) ?? -1, (event) => event.timestamp instanceof Temporal.Instant);
107
103
  }
108
104
  latestMessageWaitStartedByNameAndMessageId(stepName, messageId) {
109
105
  return findLastMessageWaitStartedByNameAndMessageId(this.#projection, stepName, messageId);
@@ -112,22 +108,22 @@ var WorkflowHistory = class {
112
108
  return findLastMessageWaitTerminalAfterStarted(this.#projection, started);
113
109
  }
114
110
  messageForWait(messageId, stepId, timeoutAt) {
115
- return findWorkflowMessageSentForWait(this.#projection, messageId, stepId, timeoutAt);
111
+ return findMessageSentForWait(this.#projection, messageId, stepId, timeoutAt);
116
112
  }
117
113
  activeMessageWaitStepIds(messageId) {
118
114
  return activeMessageWaitStepIds(this.#projection, messageId);
119
115
  }
120
116
  messageForSend(messageId, idempotencyKey) {
121
- return idempotencyKey === void 0 ? findLastWorkflowMessageSentById(this.#projection, messageId) : findWorkflowMessageSentByIdempotencyKey(this.#projection, idempotencyKey);
117
+ return idempotencyKey === void 0 ? findLastMessageSentById(this.#projection, messageId) : findMessageSentByIdempotencyKey(this.#projection, idempotencyKey);
122
118
  }
123
119
  messageByIdempotencyKey(idempotencyKey) {
124
- return findWorkflowMessageSentByIdempotencyKey(this.#projection, idempotencyKey);
120
+ return findMessageSentByIdempotencyKey(this.#projection, idempotencyKey);
125
121
  }
126
122
  latestMessagesByIdempotencyKey() {
127
123
  return [...this.#projection.latestMessageSentByIdempotencyKey.values()];
128
124
  }
129
125
  messageSentByTimestamp(messageId, timestamp) {
130
- return findWorkflowMessageSentByTimestamp(this.#projection, messageId, timestamp);
126
+ return findMessageSentByTimestamp(this.#projection, messageId, timestamp);
131
127
  }
132
128
  startedMessageSend(stepId) {
133
129
  return this.#projection.startedMessageSend.get(stepId);
@@ -181,15 +177,15 @@ var WorkflowHistory = class {
181
177
  const previousLength = this.#events.length;
182
178
  if (eventsPreservePrefix(this.#events, events, previousLength)) {
183
179
  this.#events.splice(0, this.#events.length, ...events);
184
- appendWorkflowReplayProjectionEvents(this.#projection, events.slice(previousLength), previousLength);
180
+ appendReplayProjectionEvents(this.#projection, events.slice(previousLength), previousLength);
185
181
  return;
186
182
  }
187
183
  this.#events.splice(0, this.#events.length, ...events);
188
- this.#projection = createWorkflowReplayProjection(this.#events);
184
+ this.#projection = createReplayProjection(this.#events);
189
185
  }
190
186
  };
191
187
  function eventsPreservePrefix(current, next, prefixLength) {
192
188
  return next.length >= prefixLength && current.every((event, index) => deepEquals(event, next[index]));
193
189
  }
194
190
  //#endregion
195
- export { WorkflowHistory, applyWorkflowStepAttemptEvent, createTimeline, makeWorkflowStepAttemptKey as workflowStepAttemptKey };
191
+ export { History, applyStepAttemptEvent, createTimeline, stepAttemptKey };
@@ -1,16 +1,15 @@
1
- import { WorkflowStepIdentity, WorkflowStepType } from "../types/run.mjs";
2
- import { ChildWorkflowStartedEvent, DeterministicValueRecordedEvent, EventRecord, MessageSendStartedEvent, MessageWaitStartedEvent, MetadataSetEvent, SleepStartedEvent, StreamStartedEvent, WorkflowStepStartedEvent } from "../types/events.mjs";
1
+ import { StepIdentity, StepType } from "../types/run.mjs";
2
+ import { ChildWorkflowStartedEvent, DeterministicValueRecordedEvent, EventRecord, MessageSendStartedEvent, MessageWaitStartedEvent, MetadataSetEvent, SleepStartedEvent, StepStartedEvent, StreamStartedEvent } from "../types/events.mjs";
3
3
  //#region src/history/sequencer.d.ts
4
- type WorkflowRecordedStepEvent = WorkflowStepStartedEvent | SleepStartedEvent | ChildWorkflowStartedEvent | MessageSendStartedEvent | MessageWaitStartedEvent | StreamStartedEvent | DeterministicValueRecordedEvent | MetadataSetEvent;
5
- declare function createWorkflowStepSequencer(events: readonly EventRecord[]): WorkflowStepSequencer;
6
- declare class WorkflowStepSequencer {
4
+ export type RecordedStepEvent = StepStartedEvent | SleepStartedEvent | ChildWorkflowStartedEvent | MessageSendStartedEvent | MessageWaitStartedEvent | StreamStartedEvent | DeterministicValueRecordedEvent | MetadataSetEvent;
5
+ export declare function createStepSequencer(events: readonly EventRecord[]): StepSequencer;
6
+ export declare class StepSequencer {
7
7
  #private;
8
- constructor(recordedSteps: readonly WorkflowRecordedStepEvent[]);
9
- next<TType extends WorkflowStepType>(type: TType, name: string): WorkflowStepIdentity<TType>;
8
+ constructor(recordedSteps: readonly RecordedStepEvent[]);
9
+ next<TType extends StepType>(type: TType, name: string): StepIdentity<TType>;
10
10
  requireConsumed(): void;
11
11
  isConsumed(): boolean;
12
12
  }
13
- declare function workflowRecordedStepEventType(event: WorkflowRecordedStepEvent): WorkflowStepType;
14
- declare function isWorkflowRecordedStepEvent(event: EventRecord): event is WorkflowRecordedStepEvent;
15
- //#endregion
16
- export { WorkflowRecordedStepEvent, WorkflowStepSequencer, createWorkflowStepSequencer, isWorkflowRecordedStepEvent, workflowRecordedStepEventType };
13
+ export declare function workflowRecordedStepEventType(event: RecordedStepEvent): StepType;
14
+ export declare function isRecordedStepEvent(event: EventRecord): event is RecordedStepEvent;
15
+ //#endregion
@@ -1,12 +1,13 @@
1
+ import { WorkflowErrorCode } from "../errors/codes.mjs";
1
2
  import { WorkflowStateError } from "../errors/base.mjs";
2
3
  import { WorkflowReplayDivergenceError } from "../errors/failures.mjs";
3
4
  import "../errors/mod.mjs";
4
5
  import { getEventDescriptor, isWorkflowRecordedStepEventKind } from "../events/descriptors.mjs";
5
6
  //#region src/history/sequencer.ts
6
- function createWorkflowStepSequencer(events) {
7
- return new WorkflowStepSequencer(distinctRecordedStepEvents(events));
7
+ function createStepSequencer(events) {
8
+ return new StepSequencer(distinctRecordedStepEvents(events));
8
9
  }
9
- var WorkflowStepSequencer = class {
10
+ var StepSequencer = class {
10
11
  #counts = /* @__PURE__ */ new Map();
11
12
  #recordedSteps;
12
13
  #cursor = 0;
@@ -56,17 +57,20 @@ var WorkflowStepSequencer = class {
56
57
  };
57
58
  function workflowRecordedStepEventType(event) {
58
59
  const stepType = getEventDescriptor(event.kind).stepType;
59
- if (stepType === void 0) WorkflowStateError.unsupportedRecordedStepEventType(event.kind);
60
+ if (stepType === void 0) throw new WorkflowStateError(`Workflow recorded step event type is not supported: ${event.kind}`, {
61
+ code: WorkflowErrorCode.STATE_RECORDED_STEP_EVENT_UNSUPPORTED,
62
+ details: { kind: event.kind }
63
+ });
60
64
  return stepType;
61
65
  }
62
- function isWorkflowRecordedStepEvent(event) {
66
+ function isRecordedStepEvent(event) {
63
67
  return isWorkflowRecordedStepEventKind(event.kind) && "stepId" in event && "stepName" in event && "count" in event;
64
68
  }
65
69
  function distinctRecordedStepEvents(events) {
66
70
  const recorded = [];
67
71
  const seen = /* @__PURE__ */ new Set();
68
72
  for (const event of events) {
69
- if (!isWorkflowRecordedStepEvent(event)) continue;
73
+ if (!isRecordedStepEvent(event)) continue;
70
74
  const key = `${event.kind}:${event.stepId}:${event.count}`;
71
75
  if (seen.has(key)) continue;
72
76
  seen.add(key);
@@ -75,4 +79,4 @@ function distinctRecordedStepEvents(events) {
75
79
  return recorded;
76
80
  }
77
81
  //#endregion
78
- export { WorkflowStepSequencer, createWorkflowStepSequencer, isWorkflowRecordedStepEvent, workflowRecordedStepEventType };
82
+ export { StepSequencer, createStepSequencer, isRecordedStepEvent, workflowRecordedStepEventType };
@@ -1,9 +1,6 @@
1
- import { RunId } from "../types/run-id.mjs";
2
- import { WorkflowStepAttemptRecord } from "../types/step-attempts.mjs";
3
- import "../types/run.mjs";
1
+ import { RunId } from "../types/ids.mjs";
2
+ import { StepAttemptRecord } from "../types/step-attempts.mjs";
4
3
  import { EventRecord } from "../types/events.mjs";
5
4
  //#region src/history/step-attempts.d.ts
6
- /** Creates workflow step attempts. */
7
- declare function createWorkflowStepAttempts(runId: RunId, events: readonly EventRecord[]): readonly WorkflowStepAttemptRecord[];
8
- //#endregion
9
- export { createWorkflowStepAttempts };
5
+ export declare function createStepAttempts(runId: RunId, events: readonly EventRecord[]): readonly StepAttemptRecord[];
6
+ //#endregion
@@ -1,26 +1,25 @@
1
1
  import { getWorkflowEventStepAttemptKey, isWorkflowTerminalStepAttemptEvent } from "../events/descriptors.mjs";
2
- import { applyWorkflowStepAttemptEvent } from "./projection.mjs";
2
+ import { applyStepAttemptEvent } from "./projection.mjs";
3
3
  //#region src/history/step-attempts.ts
4
- /** Creates workflow step attempts. */
5
- function createWorkflowStepAttempts(runId, events) {
4
+ function createStepAttempts(runId, events) {
6
5
  const attempts = /* @__PURE__ */ new Map();
7
6
  for (const event of events) {
8
- const key = reconciledWorkflowStepAttemptKeyFromEvent(event);
7
+ const key = reconciledStepAttemptKeyFromEvent(event);
9
8
  if (key === void 0) continue;
10
- const attempt = applyReconciledWorkflowStepAttemptEvent(runId, event, attempts.get(key));
9
+ const attempt = applyReconciledStepAttemptEvent(runId, event, attempts.get(key));
11
10
  if (attempt === void 0 || isWorkflowTerminalStepAttemptEvent(event) && !attempts.has(key)) continue;
12
11
  attempts.set(key, attempt);
13
12
  }
14
13
  return markSupersededRunningStepAttemptsAsAbandoned([...attempts.values()]).sort(compareStepAttempts);
15
14
  }
16
- function applyReconciledWorkflowStepAttemptEvent(runId, event, current) {
15
+ function applyReconciledStepAttemptEvent(runId, event, current) {
17
16
  try {
18
- return applyWorkflowStepAttemptEvent(runId, event, current);
17
+ return applyStepAttemptEvent(runId, event, current);
19
18
  } catch {
20
19
  return;
21
20
  }
22
21
  }
23
- function reconciledWorkflowStepAttemptKeyFromEvent(event) {
22
+ function reconciledStepAttemptKeyFromEvent(event) {
24
23
  try {
25
24
  return getWorkflowEventStepAttemptKey(event);
26
25
  } catch {
@@ -47,4 +46,4 @@ function compareStepAttempts(left, right) {
47
46
  return stepId === 0 ? left.attempt - right.attempt : stepId;
48
47
  }
49
48
  //#endregion
50
- export { createWorkflowStepAttempts };
49
+ export { createStepAttempts };
@@ -1,16 +1,7 @@
1
- import { Timeline as Timeline$1, TimelineEntryRecord } from "../types/timeline.mjs";
2
- import { WorkflowRunRecord } from "../types/run.mjs";
1
+ import { RunRecord } from "../types/run.mjs";
3
2
  import { EventRecord } from "../types/events.mjs";
3
+ import { Timeline } from "../types/timeline.mjs";
4
4
  //#region src/history/timeline.d.ts
5
- /** Creates workflow timeline. */
6
- declare function createTimeline(run: WorkflowRunRecord, events: readonly EventRecord[]): Timeline$1;
7
5
  /** Timeline projection built from a run record and its durable event history. */
8
- declare class Timeline implements Timeline$1 {
9
- /** @inheritdoc */
10
- readonly run: WorkflowRunRecord;
11
- /** @inheritdoc */
12
- readonly entries: readonly TimelineEntryRecord[];
13
- constructor(run: WorkflowRunRecord, events: readonly EventRecord[]);
14
- }
15
- //#endregion
16
- export { Timeline, createTimeline };
6
+ export declare function createTimeline(run: RunRecord, events: readonly EventRecord[]): Timeline;
7
+ //#endregion
@@ -1,272 +1,53 @@
1
+ import { parse } from "../schema/common.mjs";
1
2
  import { workflowAttributePatchFromEvent } from "../attributes.mjs";
2
- import { workflowEventRecordListSchema } from "../types/events.mjs";
3
+ import { eventRecordListSchema } from "../schema/events.mjs";
3
4
  //#region src/history/timeline.ts
4
- /** Creates workflow timeline. */
5
+ const CLASSIFICATION = {
6
+ workflow_started: ["workflow", "started"],
7
+ workflow_completed: ["workflow", "completed"],
8
+ workflow_failed: ["workflow", "failed"],
9
+ step_started: ["step", "started"],
10
+ step_completed: ["step", "completed"],
11
+ step_failed: ["step", "failed"],
12
+ metadata_set: ["metadata", "set"],
13
+ attributes_set: ["attributes", "set"],
14
+ deterministic_value_recorded: ["deterministic", "recorded"],
15
+ sleep_started: ["sleep", "started"],
16
+ sleep_completed: ["sleep", "completed"],
17
+ child_workflow_started: ["child_workflow", "started"],
18
+ child_workflow_completed: ["child_workflow", "completed"],
19
+ child_workflow_failed: ["child_workflow", "failed"],
20
+ message_send_started: ["message", "send_started"],
21
+ message_send_completed: ["message", "send_completed"],
22
+ message_send_failed: ["message", "send_failed"],
23
+ message_sent: ["message", "sent"],
24
+ message_wait_started: ["message", "waiting"],
25
+ message_wait_completed: ["message", "received"],
26
+ message_wait_failed: ["message", "failed"],
27
+ stream_started: ["stream", "started"],
28
+ stream_chunk: ["stream", "chunk"],
29
+ stream_closed: ["stream", "closed"],
30
+ stream_failed: ["stream", "failed"]
31
+ };
32
+ /** Timeline projection built from a run record and its durable event history. */
5
33
  function createTimeline(run, events) {
6
- return new Timeline(run, events);
34
+ return {
35
+ run,
36
+ entries: parse(eventRecordListSchema, events).map(toTimelineEntry)
37
+ };
7
38
  }
8
- /** Timeline projection built from a run record and its durable event history. */
9
- var Timeline = class {
10
- /** @inheritdoc */
11
- run;
12
- /** @inheritdoc */
13
- entries;
14
- constructor(run, events) {
15
- const parsedEvents = workflowEventRecordListSchema.parse(events);
16
- this.run = run;
17
- this.entries = parsedEvents.map(toTimelineEntry);
18
- }
19
- };
20
39
  function toTimelineEntry(event) {
21
- switch (event.kind) {
22
- case "workflow_started": return {
23
- kind: "workflow",
24
- status: "started",
25
- timestamp: event.timestamp,
26
- event
27
- };
28
- case "workflow_completed": return {
29
- kind: "workflow",
30
- status: "completed",
31
- timestamp: event.timestamp,
32
- event
33
- };
34
- case "workflow_failed": return {
35
- kind: "workflow",
36
- status: "failed",
37
- timestamp: event.timestamp,
38
- event
39
- };
40
- case "step_started": return {
41
- kind: "step",
42
- status: "started",
43
- timestamp: event.timestamp,
44
- stepId: event.stepId,
45
- stepName: event.stepName,
46
- attempt: event.attempt,
47
- count: event.count,
48
- event
49
- };
50
- case "step_completed": return {
51
- kind: "step",
52
- status: "completed",
53
- timestamp: event.timestamp,
54
- stepId: event.stepId,
55
- stepName: event.stepName,
56
- attempt: event.attempt,
57
- result: event.result,
58
- event
59
- };
60
- case "step_failed": return {
61
- kind: "step",
62
- status: "failed",
63
- timestamp: event.timestamp,
64
- stepId: event.stepId,
65
- stepName: event.stepName,
66
- attempt: event.attempt,
67
- error: event.error,
68
- event
69
- };
70
- case "metadata_set": return {
71
- kind: "metadata",
72
- status: "set",
73
- timestamp: event.timestamp,
74
- stepId: event.stepId,
75
- stepName: event.stepName,
76
- count: event.count,
77
- metadata: event.metadata,
78
- event
79
- };
80
- case "attributes_set": return {
81
- kind: "attributes",
82
- status: "set",
83
- timestamp: event.timestamp,
84
- stepId: event.stepId,
85
- stepName: event.stepName,
86
- count: event.count,
87
- attributes: workflowAttributePatchFromEvent(event),
88
- event
89
- };
90
- case "deterministic_value_recorded": return {
91
- kind: "deterministic",
92
- status: "recorded",
93
- timestamp: event.timestamp,
94
- stepId: event.stepId,
95
- stepName: event.stepName,
96
- count: event.count,
97
- value: event.value,
98
- event
99
- };
100
- case "sleep_started": return {
101
- kind: "sleep",
102
- status: "started",
103
- timestamp: event.timestamp,
104
- stepId: event.stepId,
105
- stepName: event.stepName,
106
- count: event.count,
107
- until: event.until,
108
- ...event.duration === void 0 ? {} : { duration: event.duration },
109
- event
110
- };
111
- case "sleep_completed": return {
112
- kind: "sleep",
113
- status: "completed",
114
- timestamp: event.timestamp,
115
- stepId: event.stepId,
116
- stepName: event.stepName,
117
- event
118
- };
119
- case "child_workflow_started": return {
120
- kind: "child_workflow",
121
- status: "started",
122
- timestamp: event.timestamp,
123
- stepId: event.stepId,
124
- stepName: event.stepName,
125
- count: event.count,
126
- childRunId: event.childRunId,
127
- workflowName: event.workflowName,
128
- ...event.workflowVersion === void 0 ? {} : { workflowVersion: event.workflowVersion },
129
- ...event.input === void 0 ? {} : { input: event.input },
130
- ...event.timeoutAt === void 0 ? {} : { timeoutAt: event.timeoutAt },
131
- event
132
- };
133
- case "child_workflow_completed": return {
134
- kind: "child_workflow",
135
- status: "completed",
136
- timestamp: event.timestamp,
137
- stepId: event.stepId,
138
- stepName: event.stepName,
139
- childRunId: event.childRunId,
140
- result: event.result,
141
- event
142
- };
143
- case "child_workflow_failed": return {
144
- kind: "child_workflow",
145
- status: "failed",
146
- timestamp: event.timestamp,
147
- stepId: event.stepId,
148
- stepName: event.stepName,
149
- childRunId: event.childRunId,
150
- error: event.error,
151
- event
152
- };
153
- case "message_send_started": return {
154
- kind: "message",
155
- status: "send_started",
156
- timestamp: event.timestamp,
157
- stepId: event.stepId,
158
- stepName: event.stepName,
159
- count: event.count,
160
- targetRunId: event.targetRunId,
161
- messageId: event.messageId,
162
- ...event.payload === void 0 ? {} : { payload: event.payload },
163
- event
164
- };
165
- case "message_send_completed": return {
166
- kind: "message",
167
- status: "send_completed",
168
- timestamp: event.timestamp,
169
- stepId: event.stepId,
170
- stepName: event.stepName,
171
- targetRunId: event.targetRunId,
172
- messageId: event.messageId,
173
- event
174
- };
175
- case "message_send_failed": return {
176
- kind: "message",
177
- status: "send_failed",
178
- timestamp: event.timestamp,
179
- stepId: event.stepId,
180
- stepName: event.stepName,
181
- targetRunId: event.targetRunId,
182
- messageId: event.messageId,
183
- error: event.error,
184
- event
185
- };
186
- case "message_sent": return {
187
- kind: "message",
188
- status: "sent",
189
- timestamp: event.timestamp,
190
- messageId: event.messageId,
191
- payload: event.payload,
192
- waiterStepIds: event.waiterStepIds,
193
- event
194
- };
195
- case "message_wait_started": return {
196
- kind: "message",
197
- status: "waiting",
198
- timestamp: event.timestamp,
199
- stepId: event.stepId,
200
- stepName: event.stepName,
201
- count: event.count,
202
- messageId: event.messageId,
203
- ...event.timeoutAt === void 0 ? {} : { timeoutAt: event.timeoutAt },
204
- event
205
- };
206
- case "message_wait_completed": return {
207
- kind: "message",
208
- status: "received",
209
- timestamp: event.timestamp,
210
- stepId: event.stepId,
211
- stepName: event.stepName,
212
- messageId: event.messageId,
213
- payload: event.payload,
214
- messageTimestamp: event.messageTimestamp,
215
- event
216
- };
217
- case "message_wait_failed": return {
218
- kind: "message",
219
- status: "failed",
220
- timestamp: event.timestamp,
221
- stepId: event.stepId,
222
- stepName: event.stepName,
223
- messageId: event.messageId,
224
- error: event.error,
225
- event
226
- };
227
- case "stream_started": return {
228
- kind: "stream",
229
- status: "started",
230
- timestamp: event.timestamp,
231
- stepId: event.stepId,
232
- stepName: event.stepName,
233
- count: event.count,
234
- streamId: event.streamId,
235
- ...event.contentType === void 0 ? {} : { contentType: event.contentType },
236
- ...event.metadata === void 0 ? {} : { metadata: event.metadata },
237
- event
238
- };
239
- case "stream_chunk": return {
240
- kind: "stream",
241
- status: "chunk",
242
- timestamp: event.timestamp,
243
- stepId: event.stepId,
244
- stepName: event.stepName,
245
- streamId: event.streamId,
246
- index: event.index,
247
- chunk: event.chunk,
248
- event
249
- };
250
- case "stream_closed": return {
251
- kind: "stream",
252
- status: "closed",
253
- timestamp: event.timestamp,
254
- stepId: event.stepId,
255
- stepName: event.stepName,
256
- streamId: event.streamId,
257
- event
258
- };
259
- case "stream_failed": return {
260
- kind: "stream",
261
- status: "failed",
262
- timestamp: event.timestamp,
263
- stepId: event.stepId,
264
- stepName: event.stepName,
265
- streamId: event.streamId,
266
- error: event.error,
267
- event
268
- };
269
- }
40
+ const [kind, status] = CLASSIFICATION[event.kind];
41
+ const entry = {
42
+ kind,
43
+ status,
44
+ timestamp: event.timestamp,
45
+ event
46
+ };
47
+ return event.kind === "attributes_set" ? {
48
+ ...entry,
49
+ attributes: workflowAttributePatchFromEvent(event)
50
+ } : entry;
270
51
  }
271
52
  //#endregion
272
- export { Timeline, createTimeline };
53
+ export { createTimeline };
@@ -1,9 +1,7 @@
1
1
  import { EventRecord } from "../types/events.mjs";
2
2
  //#region src/history/validator.d.ts
3
- declare function workflowStartedEventMatchesTerminalEvent(started: EventRecord, terminal: EventRecord): boolean;
4
- declare function workflowHistoryHasStartedEventBeforeTerminalEvent(events: readonly EventRecord[], event: EventRecord): boolean;
5
- declare function requireWorkflowTerminalEventsHaveStartedEvents(events: readonly EventRecord[]): void;
6
- declare function requireWorkflowTerminalEventsAreUnique(events: readonly EventRecord[]): void;
7
- declare function requireWorkflowStartedEventsAreUnique(events: readonly EventRecord[]): void;
8
- //#endregion
9
- export { requireWorkflowStartedEventsAreUnique, requireWorkflowTerminalEventsAreUnique, requireWorkflowTerminalEventsHaveStartedEvents, workflowHistoryHasStartedEventBeforeTerminalEvent, workflowStartedEventMatchesTerminalEvent };
3
+ export declare function workflowStartedEventMatchesTerminalEvent(started: EventRecord, terminal: EventRecord): boolean;
4
+ export declare function requireWorkflowTerminalEventsHaveStartedEvents(events: readonly EventRecord[]): void;
5
+ export declare function requireWorkflowTerminalEventsAreUnique(events: readonly EventRecord[]): void;
6
+ export declare function requireWorkflowStartedEventsAreUnique(events: readonly EventRecord[]): void;
7
+ //#endregion