@voltro/workflow 0.75.0 → 0.77.0

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.
@@ -5,9 +5,10 @@ import { Cause as x, Effect as S, Either as C, Exit as ie, Fiber as ae, FiberRef
5
5
  import { WorkflowQueuedCancellationResultSchema as T, WorkflowStartTerminalOutcomeSchema as E, publishServerError as ce } from "@voltro/protocol";
6
6
  import { and as D, boolean as le, derivedRowId as ue, eq as O, generateId as k, gt as A, gte as de, id as j, inSet as fe, integer as M, isNotNull as pe, isNull as N, json as P, lt as me, or as he, queryFor as ge, reference as _e, registerRetention as ve, retentionTtlMsFromEnv as ye, table as F, text as I, timestamp as L } from "@voltro/database";
7
7
  import { createHash as be, randomUUID as R } from "node:crypto";
8
- import { WorkflowInstance as xe } from "@effect/workflow/WorkflowEngine";
8
+ import { isDeepStrictEqual as xe } from "node:util";
9
+ import { WorkflowInstance as Se } from "@effect/workflow/WorkflowEngine";
9
10
  //#region src/inMemoryLayer.ts
10
- var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
11
+ var Ce = re.layerMemory, we = F("_voltro_workflow_runs", {
11
12
  id: j({ prefix: "wfrun" }),
12
13
  tag: I(),
13
14
  executionId: I().unique(),
@@ -44,9 +45,9 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
44
45
  "terminate",
45
46
  "abandon"
46
47
  ]).nullable()
47
- }).index(["tag"]).index(["status"]).index(["source"]).index(["startedAt"]).index(["parentExecutionId"]).index(["parentClosePolicy"]), we = F("_voltro_workflow_run_steps", {
48
+ }).index(["tag"]).index(["status"]).index(["source"]).index(["startedAt"]).index(["parentExecutionId"]).index(["parentClosePolicy"]), Te = F("_voltro_workflow_run_steps", {
48
49
  id: j({ prefix: "wfstep" }),
49
- runId: _e(() => Ce, {
50
+ runId: _e(() => we, {
50
51
  index: !1,
51
52
  onDelete: "cascade"
52
53
  }),
@@ -66,9 +67,9 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
66
67
  startedAt: L().default("now"),
67
68
  completedAt: L().nullable(),
68
69
  durationMs: M().nullable()
69
- }).index(["runId", "stepName"]).index(["startedAt"]), Te = F("_voltro_workflow_run_events", {
70
+ }).index(["runId", "stepName"]).index(["startedAt"]), Ee = F("_voltro_workflow_run_events", {
70
71
  id: j({ prefix: "wfev" }),
71
- runId: _e(() => Ce, {
72
+ runId: _e(() => we, {
72
73
  index: !1,
73
74
  onDelete: "cascade"
74
75
  }),
@@ -77,7 +78,7 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
77
78
  occurredAt: L().default("now"),
78
79
  stepName: I().nullable(),
79
80
  attempt: M().nullable()
80
- }).index(["runId", "occurredAt"]).index(["eventType"]), Ee = F("_voltro_workflow_start_contexts", {
81
+ }).index(["runId", "occurredAt"]).index(["eventType"]), De = F("_voltro_workflow_start_contexts", {
81
82
  id: j({ prefix: "wfctx" }),
82
83
  workflowName: I(),
83
84
  executionId: I().unique(),
@@ -92,10 +93,10 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
92
93
  "abandon"
93
94
  ]).nullable(),
94
95
  createdAt: L().default("now")
95
- }).index(["workflowName"]).index(["executionId"]).index(["parentExecutionId"]), De = F("_voltro_workflow_admission_locks", {
96
+ }).index(["workflowName"]).index(["executionId"]).index(["parentExecutionId"]), Oe = F("_voltro_workflow_admission_locks", {
96
97
  id: j({ prefix: "wfalk" }),
97
98
  nonce: I()
98
- }).nonReactive(), Oe = F("_voltro_workflow_parent_closures", {
99
+ }).nonReactive(), ke = F("_voltro_workflow_parent_closures", {
99
100
  id: j({ prefix: "wfpc" }),
100
101
  runId: I(),
101
102
  workflowName: I(),
@@ -110,7 +111,7 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
110
111
  afterChildId: I().nullable(),
111
112
  scanHasOpenChildren: le().default(!1),
112
113
  completedAt: L().nullable()
113
- }).index(["executionId"]).index(["completedAt", "id"]).nonReactive(), ke = F("_voltro_workflow_control_requests", {
114
+ }).index(["executionId"]).index(["completedAt", "id"]).nonReactive(), Ae = F("_voltro_workflow_control_requests", {
114
115
  id: j({ prefix: "wfctl" }),
115
116
  runId: I(),
116
117
  workflowName: I(),
@@ -128,7 +129,7 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
128
129
  resumeJournal: P().nullable(),
129
130
  dispatchAttempts: M().default(0),
130
131
  result: P().nullable()
131
- }).index(["runId"]).index(["parentClosureId", "id"]).nonReactive(), Ae = F("_voltro_workflow_failure_reports", {
132
+ }).index(["runId"]).index(["parentClosureId", "id"]).nonReactive(), je = F("_voltro_workflow_failure_reports", {
132
133
  id: j({ prefix: "wffr" }),
133
134
  workflowName: I(),
134
135
  tenantId: I().nullable(),
@@ -144,7 +145,7 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
144
145
  handoffReceiptId: I().nullable(),
145
146
  handoffAttempt: M().default(0),
146
147
  acceptedExecutionId: I().nullable()
147
- }).index(["sourceKind", "sourceId"]).nonReactive(), je = F("_voltro_workflow_submissions", {
148
+ }).index(["sourceKind", "sourceId"]).nonReactive(), Me = F("_voltro_workflow_submissions", {
148
149
  id: j({ prefix: "wfsub" }),
149
150
  workflowName: I(),
150
151
  tenantId: I().nullable(),
@@ -160,14 +161,14 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
160
161
  callerContext: P().nullable(),
161
162
  intentIds: P(),
162
163
  eviction: P().nullable()
163
- }).nonReactive(), Me = F("_voltro_workflow_start_receipts", {
164
+ }).nonReactive(), Ne = F("_voltro_workflow_start_receipts", {
164
165
  id: j({ prefix: "wfrc" }),
165
166
  workflowName: I(),
166
167
  tenantId: I().nullable(),
167
168
  pendingId: I().maxLength(64),
168
169
  submissionId: I().maxLength(64).nullable(),
169
170
  terminal: P().nullable()
170
- }).index(["pendingId"]).nonReactive(), Ne = F("_voltro_workflow_pending", {
171
+ }).index(["pendingId"]).nonReactive(), Pe = F("_voltro_workflow_pending", {
171
172
  id: j({ prefix: "wfp" }),
172
173
  tenantId: I().nullable(),
173
174
  workflowName: I(),
@@ -193,7 +194,7 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
193
194
  attempts: M().default(0),
194
195
  lastError: I().nullable(),
195
196
  deadLetteredAt: L().nullable()
196
- }).index(["workflowName", "controlKey"]).index(["dueAt"]).index(["workflowName", "mode"]).index(["tenantId"]), Pe = F("_voltro_workflow_admissions", {
197
+ }).index(["workflowName", "controlKey"]).index(["dueAt"]).index(["workflowName", "mode"]).index(["tenantId"]), Fe = F("_voltro_workflow_admissions", {
197
198
  id: j({ prefix: "wfadm" }),
198
199
  tenantId: I().nullable(),
199
200
  workflowName: I(),
@@ -218,64 +219,64 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
218
219
  admittedAt: L().default("now"),
219
220
  expiresAt: L().nullable(),
220
221
  releasedAt: L().nullable()
221
- }).index(["workflowName", "admittedAt"]).index(["concurrencyKey", "releasedAt"]).index(["singletonKey", "releasedAt"]).index(["rateKey", "admittedAt"]).index(["executionId"]).index(["tenantId"]), Fe = F("_voltro_workflow_pauses", {
222
+ }).index(["workflowName", "admittedAt"]).index(["concurrencyKey", "releasedAt"]).index(["singletonKey", "releasedAt"]).index(["rateKey", "admittedAt"]).index(["executionId"]).index(["tenantId"]), Ie = F("_voltro_workflow_pauses", {
222
223
  id: j({ prefix: "wfpause" }),
223
224
  pausedAt: L().default("now"),
224
225
  pausedBy: I().nullable(),
225
226
  reason: I().nullable()
226
- }), Ie = "_voltro_workflow_admission_locks", Le = "deployment", Re = async (e, t) => (await e.insertIgnoreWithOutcome(Ie, {
227
- id: Le,
227
+ }), Le = "_voltro_workflow_admission_locks", Re = "deployment", ze = async (e, t) => (await e.insertIgnoreWithOutcome(Le, {
228
+ id: Re,
228
229
  nonce: R()
229
230
  }, { conflictColumns: ["id"] }), e.transactional(async (e) => {
230
231
  if ((await e.query({
231
232
  table: "_voltro_workflow_admission_locks",
232
- predicate: O("id", Le),
233
+ predicate: O("id", Re),
233
234
  lock: "update",
234
235
  order: [],
235
236
  take: 1,
236
237
  skip: void 0,
237
238
  projection: void 0
238
239
  })).length !== 1) throw Error("Admission coordinator row is missing; refusing an unlocked decision");
239
- if (await e.update("_voltro_workflow_admission_locks", Le, { nonce: R() }) === null) throw Error("Admission coordinator row disappeared; refusing an unlocked decision");
240
+ if (await e.update("_voltro_workflow_admission_locks", Re, { nonce: R() }) === null) throw Error("Admission coordinator row disappeared; refusing an unlocked decision");
240
241
  return t(e);
241
- })), ze = class extends Error {
242
+ })), Be = class extends Error {
242
243
  workflowName;
243
244
  field;
244
245
  constructor(e, t, n) {
245
246
  super(`workflow '${e}': ${t}(payload) threw — a flow-control key function must be total over every payload the workflow accepts, because it runs before the run exists and there is nowhere to report a partial failure to. Cause: ${n instanceof Error ? n.message : String(n)}`), this.name = "FlowControlKeyError", this.workflowName = e, this.field = t, this.cause = n;
246
247
  }
247
- }, Be = (e, t, n, r) => {
248
+ }, Ve = (e, t, n, r) => {
248
249
  try {
249
250
  let e = n(r);
250
251
  if (typeof e != "string" || e.length === 0) throw Error(`returned ${e === "" ? "an empty string" : String(e)}; expected a non-empty string`);
251
252
  return e;
252
253
  } catch (n) {
253
- throw new ze(e, t, n);
254
+ throw new Be(e, t, n);
254
255
  }
255
- }, Ve = (e, t) => JSON.stringify([e ?? null, t]), He = (e, t) => {
256
+ }, He = (e, t) => JSON.stringify([e ?? null, t]), Ue = (e, t) => {
256
257
  let n = e.workflowName, r = 0;
257
258
  if (e.priority !== void 0) try {
258
259
  let n = e.priority(t);
259
260
  if (!Number.isFinite(n)) throw Error(`returned ${String(n)}; expected a finite number`);
260
261
  r = Math.trunc(n);
261
262
  } catch (e) {
262
- throw new ze(n, "priority", e);
263
+ throw new Be(n, "priority", e);
263
264
  }
264
265
  return {
265
- ...e.debounce === void 0 ? {} : { debounceKey: Be(n, "debounce.key", e.debounce.key, t) },
266
- ...e.singleton === void 0 ? {} : { singletonKey: Be(n, "singleton.key", e.singleton.key, t) },
267
- ...e.concurrency === void 0 ? {} : { concurrencyKey: Ve(e.concurrency.pool, e.concurrency.key === void 0 ? "" : Be(n, "concurrency.key", e.concurrency.key, t)) },
268
- ...e.throttle?.key === void 0 ? e.throttle === void 0 ? {} : { throttleKey: "" } : { throttleKey: Be(n, "throttle.key", e.throttle.key, t) },
269
- ...e.rateLimit?.key === void 0 ? e.rateLimit === void 0 ? {} : { rateLimitKey: "" } : { rateLimitKey: Be(n, "rateLimit.key", e.rateLimit.key, t) },
270
- ...e.batch?.key === void 0 ? e.batch === void 0 ? {} : { batchKey: "" } : { batchKey: Be(n, "batch.key", e.batch.key, t) },
266
+ ...e.debounce === void 0 ? {} : { debounceKey: Ve(n, "debounce.key", e.debounce.key, t) },
267
+ ...e.singleton === void 0 ? {} : { singletonKey: Ve(n, "singleton.key", e.singleton.key, t) },
268
+ ...e.concurrency === void 0 ? {} : { concurrencyKey: He(e.concurrency.pool, e.concurrency.key === void 0 ? "" : Ve(n, "concurrency.key", e.concurrency.key, t)) },
269
+ ...e.throttle?.key === void 0 ? e.throttle === void 0 ? {} : { throttleKey: "" } : { throttleKey: Ve(n, "throttle.key", e.throttle.key, t) },
270
+ ...e.rateLimit?.key === void 0 ? e.rateLimit === void 0 ? {} : { rateLimitKey: "" } : { rateLimitKey: Ve(n, "rateLimit.key", e.rateLimit.key, t) },
271
+ ...e.batch?.key === void 0 ? e.batch === void 0 ? {} : { batchKey: "" } : { batchKey: Ve(n, "batch.key", e.batch.key, t) },
271
272
  priority: r
272
273
  };
273
- }, Ue = (e, t, n, r) => {
274
+ }, We = (e, t, n, r) => {
274
275
  let i = e.filter((e) => e > r - n);
275
276
  if (i.length < t) return;
276
277
  let a = [...i].sort((e, t) => t - e)[t - 1];
277
278
  if (a !== void 0) return a + n;
278
- }, We = (e) => {
279
+ }, Ge = (e) => {
279
280
  let { control: t, keys: n, state: r, now: i, reconsidering: a } = e;
280
281
  if (r.paused === !0) return {
281
282
  kind: "defer",
@@ -285,7 +286,7 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
285
286
  keys: n
286
287
  };
287
288
  if (t.rateLimit !== void 0) {
288
- let e = Ue(r.recentAdmissions ?? [], t.rateLimit.limit, t.rateLimit.periodMs, i);
289
+ let e = We(r.recentAdmissions ?? [], t.rateLimit.limit, t.rateLimit.periodMs, i);
289
290
  if (e !== void 0) return {
290
291
  kind: "drop",
291
292
  reason: "rate-limit",
@@ -311,12 +312,12 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
311
312
  kind: "admit",
312
313
  reason: "debounce-deadline",
313
314
  keys: n,
314
- ...Ke(t, r)
315
+ ...qe(t, r)
315
316
  } : {
316
317
  kind: "admit",
317
318
  reason: "debounce-elapsed",
318
319
  keys: n,
319
- ...Ke(t, r)
320
+ ...qe(t, r)
320
321
  } : {
321
322
  kind: "defer",
322
323
  mode: "debounce",
@@ -332,12 +333,12 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
332
333
  kind: "admit",
333
334
  reason: "batch-full",
334
335
  keys: n,
335
- ...Ke(t, r)
336
+ ...qe(t, r)
336
337
  } : a && i >= s ? {
337
338
  kind: "admit",
338
339
  reason: "batch-timeout",
339
340
  keys: n,
340
- ...Ke(t, r)
341
+ ...qe(t, r)
341
342
  } : {
342
343
  kind: "defer",
343
344
  mode: "batch",
@@ -347,7 +348,7 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
347
348
  };
348
349
  }
349
350
  if (t.throttle !== void 0) {
350
- let e = Ue(r.recentAdmissions ?? [], t.throttle.limit, t.throttle.periodMs, i);
351
+ let e = We(r.recentAdmissions ?? [], t.throttle.limit, t.throttle.periodMs, i);
351
352
  if (e !== void 0) return {
352
353
  kind: "defer",
353
354
  mode: "throttle",
@@ -364,17 +365,17 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
364
365
  keys: n
365
366
  } : {
366
367
  kind: "admit",
367
- reason: Ge(t) ? "under-limits" : "no-controls",
368
+ reason: Ke(t) ? "under-limits" : "no-controls",
368
369
  keys: n,
369
- ...Ke(t, r)
370
+ ...qe(t, r)
370
371
  };
371
- }, Ge = (e) => e.debounce !== void 0 || e.singleton !== void 0 || e.concurrency !== void 0 || e.throttle !== void 0 || e.rateLimit !== void 0 || e.batch !== void 0, Ke = (e, t) => e.singleton?.mode === "cancel" && t.singletonHolder !== void 0 ? { evict: t.singletonHolder } : {}, qe = (e, t, n) => {
372
+ }, Ke = (e) => e.debounce !== void 0 || e.singleton !== void 0 || e.concurrency !== void 0 || e.throttle !== void 0 || e.rateLimit !== void 0 || e.batch !== void 0, qe = (e, t) => e.singleton?.mode === "cancel" && t.singletonHolder !== void 0 ? { evict: t.singletonHolder } : {}, Je = (e, t, n) => {
372
373
  let r = e.timeouts?.startMs;
373
374
  return r !== void 0 && n - t.firstSeenAt >= r;
374
- }, Je = (e, t, n) => {
375
+ }, Ye = (e, t, n) => {
375
376
  let r = e.timeouts?.finishMs;
376
377
  return r === void 0 || t.terminal ? !1 : n - t.startedAt >= r;
377
- }, Ye = (e, t) => e.priority === t.priority ? e.firstSeenAt === t.firstSeenAt ? e.id < t.id ? -1 : +(e.id > t.id) : e.firstSeenAt - t.firstSeenAt : t.priority - e.priority, Xe = "_voltro_workflow_failure_reports", Ze = w.Struct({
378
+ }, Xe = (e, t) => e.priority === t.priority ? e.firstSeenAt === t.firstSeenAt ? e.id < t.id ? -1 : +(e.id > t.id) : e.firstSeenAt - t.firstSeenAt : t.priority - e.priority, Ze = "_voltro_workflow_failure_reports", Qe = w.Struct({
378
379
  id: w.String,
379
380
  workflowName: w.String,
380
381
  tenantId: w.NullOr(w.String),
@@ -394,34 +395,34 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
394
395
  })
395
396
  }), z = async (e, t) => {
396
397
  let n = await e.query({
397
- table: Xe,
398
+ table: Ze,
398
399
  predicate: O("id", t),
399
400
  order: [],
400
401
  take: 1,
401
402
  skip: void 0,
402
403
  projection: void 0
403
404
  });
404
- return n[0] === void 0 ? void 0 : w.decodeUnknownSync(Ze)(n[0]);
405
- }, Qe = async (e, t) => {
405
+ return n[0] === void 0 ? void 0 : w.decodeUnknownSync(Qe)(n[0]);
406
+ }, $e = async (e, t) => {
406
407
  if (t.id.length === 0 || t.sourceId.length === 0) throw Error("Workflow failure requires a stable report and source identity");
407
408
  let n = await z(e, t.id);
408
409
  if (n !== void 0) {
409
410
  if (n.workflowName !== t.workflowName || n.tenantId !== t.tenantId || n.sourceId !== t.sourceId || n.sourceKind !== t.sourceKind) throw Error("Workflow failure identity belongs to a different source, workflow or tenant");
410
411
  return n;
411
412
  }
412
- let r = w.decodeUnknownSync(Ze)(t);
413
+ let r = w.decodeUnknownSync(Qe)(t);
413
414
  if (r.report.workflow !== r.workflowName) throw Error("Workflow failure report does not describe its owning workflow");
414
- return await e.insert(Xe, {
415
+ return await e.insert(Ze, {
415
416
  ...r,
416
417
  handoffReceiptId: null,
417
418
  handoffAttempt: 0,
418
419
  acceptedExecutionId: null
419
420
  }), r;
420
- }, $e = async (e, t, n) => {
421
+ }, et = async (e, t, n) => {
421
422
  let r, i = t === "submissionId" ? O(t, n) : D(O(t, n), N("submissionId"), N("terminal"));
422
423
  for (;;) {
423
424
  let t = await e.query({
424
- table: Dt,
425
+ table: Ot,
425
426
  predicate: r === void 0 ? i : D(i, A("id", r)),
426
427
  order: [{
427
428
  column: "id",
@@ -433,8 +434,8 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
433
434
  });
434
435
  if (t.length === 0) return !1;
435
436
  for (let n of t) {
436
- let t = kt(n), i = await e.query({
437
- table: Xe,
437
+ let t = At(n), i = await e.query({
438
+ table: Ze,
438
439
  predicate: O("handoffReceiptId", t.id),
439
440
  order: [],
440
441
  take: 1,
@@ -448,36 +449,36 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
448
449
  r = t.id;
449
450
  }
450
451
  }
451
- }, et = (e, t) => $e(e, "submissionId", t), tt = (e, t) => $e(e, "pendingId", t), nt = async (e, t, n, r) => {
452
- for await (let i of mt(e, t, n)) {
452
+ }, tt = (e, t) => et(e, "submissionId", t), nt = (e, t) => et(e, "pendingId", t), rt = async (e, t, n, r) => {
453
+ for await (let i of ht(e, t, n)) {
453
454
  if (i.tenantId !== r) throw Error("Failure delivery belongs to a different resident tenant");
454
- if (await et(e, i.id)) return !0;
455
+ if (await tt(e, i.id)) return !0;
455
456
  }
456
457
  return !1;
457
- }, rt = w.Struct({
458
+ }, it = w.Struct({
458
459
  handoffReceiptId: w.NullOr(w.String),
459
460
  handoffAttempt: w.NonNegativeInt,
460
461
  acceptedExecutionId: w.NullOr(w.NonEmptyString)
461
- }), it = (e, t) => `wfrc_${be("sha256").update(JSON.stringify([
462
+ }), at = (e, t) => `wfrc_${be("sha256").update(JSON.stringify([
462
463
  "failure",
463
464
  e,
464
465
  t
465
- ])).digest("hex").slice(0, 40)}`, at = async (e, t) => {
466
+ ])).digest("hex").slice(0, 40)}`, ot = async (e, t) => {
466
467
  let n = await e.query({
467
- table: Xe,
468
+ table: Ze,
468
469
  predicate: O("id", t),
469
470
  order: [],
470
471
  take: 1,
471
472
  skip: void 0,
472
473
  projection: void 0
473
- }), r = w.decodeUnknownSync(rt)(n[0]);
474
+ }), r = w.decodeUnknownSync(it)(n[0]);
474
475
  if (r.handoffReceiptId === null && (r.handoffAttempt !== 0 || r.acceptedExecutionId !== null)) throw Error("Failure report has contradictory unstarted handoff metadata");
475
476
  return r;
476
- }, ot = async (e, t, n, r, i) => {
477
+ }, st = async (e, t, n, r, i) => {
477
478
  if (t.handler === null || t.handler.length === 0) throw Error("Cannot queue an unconfigured failure handler");
478
479
  if (!Number.isSafeInteger(n) || n < 0) throw Error("Failure handoff attempt exhausted");
479
480
  if (!Number.isFinite(r)) throw Error("Failure handoff retry deadline is invalid");
480
- let a = await Gt({
481
+ let a = await Kt({
481
482
  store: e,
482
483
  workflowName: t.handler,
483
484
  payload: t.report,
@@ -485,8 +486,8 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
485
486
  tenantId: t.tenantId,
486
487
  at: r,
487
488
  now: i
488
- }), o = await Mt(e, {
489
- id: it(t.id, n),
489
+ }), o = await Nt(e, {
490
+ id: at(t.id, n),
490
491
  workflowName: t.handler,
491
492
  tenantId: t.tenantId,
492
493
  pendingId: a.intentId
@@ -504,16 +505,16 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
504
505
  if (!Number.isFinite(n)) throw Error("Failure handoff requires a finite timestamp");
505
506
  let r = await z(e, t);
506
507
  if (r === void 0) throw Error("Cannot hand off an unknown workflow failure");
507
- let { handoffReceiptId: i, handoffAttempt: a, acceptedExecutionId: o } = await at(e, t);
508
+ let { handoffReceiptId: i, handoffAttempt: a, acceptedExecutionId: o } = await ot(e, t);
508
509
  if (r.handler === null) {
509
510
  if (i !== null || o !== null) throw Error("Unconfigured failure report has a contradictory handoff");
510
511
  return { kind: "unconfigured" };
511
512
  }
512
513
  if (r.handler.length === 0) throw Error("Failure report has an empty handler");
513
- let s = it(t, a);
514
+ let s = at(t, a);
514
515
  if (i !== null) {
515
516
  if (i !== s) throw Error("Failure handoff receipt belongs to a different report");
516
- let t = await At(e, i);
517
+ let t = await jt(e, i);
517
518
  if (t === void 0 || t.workflowName !== r.handler || t.tenantId !== r.tenantId) throw Error("Failure report has no matching durable start receipt");
518
519
  return {
519
520
  kind: "queued",
@@ -521,16 +522,16 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
521
522
  intentId: t.pendingId
522
523
  };
523
524
  }
524
- return ot(e, r, 0, n, n);
525
- }, st = class extends Error {
525
+ return st(e, r, 0, n, n);
526
+ }, ct = class extends Error {
526
527
  reason;
527
528
  constructor(e) {
528
529
  super(`Workflow failure delivery requires reconciliation: ${e}`), this.reason = e;
529
530
  }
530
- }, ct = async (e, t, n) => {
531
+ }, lt = async (e, t, n) => {
531
532
  let r = await B(e, t, n);
532
533
  if (r.kind === "unconfigured") return r;
533
- let i = await at(e, t), a = await At(e, r.receiptId);
534
+ let i = await ot(e, t), a = await jt(e, r.receiptId);
534
535
  if (a === void 0) throw Error("Failure handoff receipt disappeared during reconciliation");
535
536
  if (i.acceptedExecutionId !== null) {
536
537
  if (a.terminal !== null || a.submissionId === null) throw Error("Accepted failure report has no submitted receipt");
@@ -546,8 +547,8 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
546
547
  };
547
548
  let r = await z(e, t);
548
549
  if (r === void 0) throw Error("Failure report disappeared during retry");
549
- let o = i.handoffAttempt + 1, s = Math.max(en(o, () => 1), a.terminal.kind === "dropped" ? a.terminal.retryAfterMs : 0);
550
- return ot(e, r, o, Math.max(n, a.terminal.at + s), n);
550
+ let o = i.handoffAttempt + 1, s = Math.max(tn(o, () => 1), a.terminal.kind === "dropped" ? a.terminal.retryAfterMs : 0);
551
+ return st(e, r, o, Math.max(n, a.terminal.at + s), n);
551
552
  }
552
553
  if (a.submissionId === null) {
553
554
  let t = (await e.query({
@@ -558,20 +559,20 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
558
559
  skip: void 0,
559
560
  projection: void 0
560
561
  }))[0];
561
- if (t === void 0) throw new st("arrival-missing");
562
- if (t.workflowName !== a.workflowName || t.tenantId !== a.tenantId) throw new st("arrival-owner-mismatch");
563
- if (t.deadLetteredAt !== null) throw new st("arrival-dead-lettered");
562
+ if (t === void 0) throw new ct("arrival-missing");
563
+ if (t.workflowName !== a.workflowName || t.tenantId !== a.tenantId) throw new ct("arrival-owner-mismatch");
564
+ if (t.deadLetteredAt !== null) throw new ct("arrival-dead-lettered");
564
565
  return r;
565
566
  }
566
567
  let o = await V(e, a.submissionId);
567
568
  if (o === void 0 || !o.receiptsBound || o.workflowName !== a.workflowName || o.tenantId !== a.tenantId || !o.intentIds.includes(a.pendingId)) throw Error("Failure handoff receipt has no matching admission submission");
568
569
  if (o.failureId !== null) {
569
570
  let r = await z(e, o.failureId);
570
- if (o.executionId !== null || o.dispatchAttempts > 1 || r === void 0 || r.sourceKind !== "submission" || r.sourceId !== o.id || r.workflowName !== o.workflowName || r.tenantId !== o.tenantId || r.report.executionId !== null || r.report.runId !== null) throw new st("rejection-proof-invalid");
571
+ if (o.executionId !== null || o.dispatchAttempts > 1 || r === void 0 || r.sourceKind !== "submission" || r.sourceId !== o.id || r.workflowName !== o.workflowName || r.tenantId !== o.tenantId || r.report.executionId !== null || r.report.runId !== null) throw new ct("rejection-proof-invalid");
571
572
  let a = await z(e, t);
572
573
  if (a === void 0) throw Error("Failure report disappeared during rejected handler retry");
573
574
  let s = i.handoffAttempt + 1;
574
- return ot(e, a, s, Math.max(n, r.report.failedAt + en(s, () => 1)), n);
575
+ return st(e, a, s, Math.max(n, r.report.failedAt + tn(s, () => 1)), n);
575
576
  }
576
577
  if (o.executionId === null) return r;
577
578
  if (o.failureId !== null || o.executionId.length === 0 || o.preparedExecutionId !== o.executionId) throw Error("Failure handler acknowledgement contradicts its prepared submission");
@@ -580,14 +581,14 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
580
581
  kind: "accepted",
581
582
  executionId: o.executionId
582
583
  };
583
- }, lt = w.Struct({
584
+ }, ut = w.Struct({
584
585
  runId: w.NonEmptyString,
585
586
  workflowName: w.NonEmptyString,
586
587
  executionId: w.NonEmptyString,
587
588
  generation: w.NonEmptyString,
588
589
  parentStatus: w.Literal("succeeded", "failed", "cancelled"),
589
590
  closedAt: w.DateFromSelf
590
- }), ut = async (e, t, n) => {
591
+ }), dt = async (e, t, n) => {
591
592
  let [r] = await e.query({
592
593
  table: "_voltro_workflow_runs",
593
594
  predicate: O("executionId", n),
@@ -627,14 +628,14 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
627
628
  projection: void 0
628
629
  });
629
630
  if (i === void 0) return;
630
- let a = w.decodeUnknownSync(lt)(i);
631
+ let a = w.decodeUnknownSync(ut)(i);
631
632
  if (a.workflowName !== t || a.executionId !== n) throw Error("Admission acknowledgement belongs to a different resident workflow");
632
633
  if (!Number.isFinite(a.closedAt.getTime())) throw Error("Workflow closure has no valid completion timestamp");
633
634
  return {
634
635
  runId: a.runId,
635
636
  completedAt: a.closedAt
636
637
  };
637
- }, dt = "_voltro_workflow_submissions", ft = w.Struct({
638
+ }, ft = "_voltro_workflow_submissions", pt = w.Struct({
638
639
  id: w.String,
639
640
  workflowName: w.String,
640
641
  tenantId: w.NullOr(w.String),
@@ -658,12 +659,12 @@ var Se = re.layerMemory, Ce = F("_voltro_workflow_runs", {
658
659
  executionId: w.String,
659
660
  runId: w.String
660
661
  }))
661
- }), pt = w.decodeUnknownSync(ft);
662
- async function* mt(e, t, n) {
662
+ }), mt = w.decodeUnknownSync(pt);
663
+ async function* ht(e, t, n) {
663
664
  let r;
664
665
  for (;;) {
665
666
  let i = D(O("preparedExecutionId", t), A("dispatchAttempts", 0)), a = await e.query({
666
- table: dt,
667
+ table: ft,
667
668
  predicate: r === void 0 ? i : D(i, A("id", r)),
668
669
  order: [{
669
670
  column: "id",
@@ -675,16 +676,16 @@ async function* mt(e, t, n) {
675
676
  });
676
677
  if (a.length === 0) return;
677
678
  for (let e of a) {
678
- let i = pt(e);
679
+ let i = mt(e);
679
680
  if (i.workflowName !== n || !i.receiptsBound || i.failureId !== null || i.executionId !== null && i.executionId !== t) throw Error("Workflow completion has an inconsistent resident submission owner");
680
681
  yield i, r = i.id;
681
682
  }
682
683
  }
683
684
  }
684
- var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e, t, n) => {
685
+ var gt = async (e, t, n) => (await _t(e, t, n)).map((e) => mt(e)), _t = async (e, t, n) => {
685
686
  if (!Number.isSafeInteger(t) || t < 1) throw Error("Submission recovery requires a positive page size");
686
687
  return e.query({
687
- table: dt,
688
+ table: ft,
688
689
  predicate: n === void 0 ? D(O("receiptsBound", !0), N("executionId"), N("failureId")) : D(O("receiptsBound", !0), N("executionId"), N("failureId"), A("id", n)),
689
690
  order: [{
690
691
  column: "id",
@@ -696,18 +697,18 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
696
697
  });
697
698
  }, V = async (e, t) => {
698
699
  let n = await e.query({
699
- table: dt,
700
+ table: ft,
700
701
  predicate: O("id", t),
701
702
  order: [],
702
703
  take: 1,
703
704
  skip: void 0,
704
705
  projection: void 0
705
706
  });
706
- return n[0] === void 0 ? void 0 : w.decodeUnknownSync(ft)(n[0]);
707
- }, _t = async (e, t) => Re(e, (e) => vt(e, t)), vt = async (e, t) => {
707
+ return n[0] === void 0 ? void 0 : w.decodeUnknownSync(pt)(n[0]);
708
+ }, vt = async (e, t) => ze(e, (e) => yt(e, t)), yt = async (e, t) => {
708
709
  if (t.id.length === 0) throw Error("Admission submission requires a stable non-empty identity");
709
710
  let n = await e.query({
710
- table: dt,
711
+ table: ft,
711
712
  predicate: O("id", t.id),
712
713
  order: [],
713
714
  take: 1,
@@ -715,15 +716,17 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
715
716
  projection: void 0
716
717
  });
717
718
  if (n[0] !== void 0) {
718
- let e = w.decodeUnknownSync(ft)(n[0]);
719
+ let e = w.decodeUnknownSync(pt)(n[0]);
719
720
  if (e.workflowName !== t.control.workflowName || e.tenantId !== t.tenantId) throw Error("Admission submission identity belongs to a different workflow or tenant");
721
+ let r = JSON.parse(JSON.stringify(e.payload) ?? "null"), i = JSON.parse(JSON.stringify(t.encodedPayload) ?? "null");
722
+ if (!xe(r, i)) throw Error("Admission submission identity is already bound to a different payload");
720
723
  return {
721
724
  kind: "reserved",
722
725
  submission: e,
723
726
  reused: !0
724
727
  };
725
728
  }
726
- let r = He(t.control, t.keyPayload), i = await an({
729
+ let r = Ue(t.control, t.keyPayload), i = await on({
727
730
  store: e,
728
731
  control: t.control,
729
732
  keys: r,
@@ -752,7 +755,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
752
755
  if (a === void 0) throw Error("Admission reservation has no ledger identity");
753
756
  return {
754
757
  kind: "reserved",
755
- submission: await yt(e, {
758
+ submission: await bt(e, {
756
759
  id: t.id,
757
760
  workflowName: t.control.workflowName,
758
761
  tenantId: t.tenantId,
@@ -764,7 +767,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
764
767
  }),
765
768
  reused: !1
766
769
  };
767
- }, yt = async (e, t) => {
770
+ }, bt = async (e, t) => {
768
771
  if (t.id.length === 0 || t.ledgerId.length === 0) throw Error("Submission requires its reserved admission identity");
769
772
  let n = {
770
773
  ...t,
@@ -783,11 +786,11 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
783
786
  stoppedAt: null
784
787
  }
785
788
  };
786
- return await e.insert(dt, n), n;
787
- }, bt = async (e, t, n) => Re(e, (e) => xt(e, t, n)), xt = async (e, t, n) => {
789
+ return await e.insert(ft, n), n;
790
+ }, xt = async (e, t, n) => ze(e, (e) => St(e, t, n)), St = async (e, t, n) => {
788
791
  if (n.executionId.length === 0) throw Error("Engine acknowledgement requires an execution identity");
789
792
  let r = await e.query({
790
- table: dt,
793
+ table: ft,
791
794
  predicate: O("id", t),
792
795
  order: [],
793
796
  take: 1,
@@ -795,11 +798,11 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
795
798
  projection: void 0
796
799
  });
797
800
  if (r[0] === void 0) throw Error("Cannot acknowledge an unknown admission submission");
798
- let i = w.decodeUnknownSync(ft)(r[0]);
801
+ let i = w.decodeUnknownSync(pt)(r[0]);
799
802
  if (i.failureId !== null) throw Error("Cannot acknowledge a permanently rejected admission submission");
800
803
  if (i.preparedExecutionId !== null && i.preparedExecutionId !== n.executionId) throw Error("Engine acknowledgement contradicts the prepared execution identity");
801
804
  if (i.executionId !== null && i.executionId !== n.executionId || i.runId !== null && n.runId !== null && i.runId !== n.runId) throw Error("Admission submission already belongs to a different execution or run");
802
- let a = await ut(e, i.workflowName, n.executionId), o = i.runId ?? n.runId;
805
+ let a = await dt(e, i.workflowName, n.executionId), o = i.runId ?? n.runId;
803
806
  if (a !== void 0 && o !== null && a.runId !== o) throw Error("Admission acknowledgement belongs to a different resident run");
804
807
  let s = {
805
808
  executionId: n.executionId,
@@ -814,7 +817,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
814
817
  ...i,
815
818
  ...s
816
819
  };
817
- }, St = async (e, t, n) => {
820
+ }, Ct = async (e, t, n) => {
818
821
  if (n.length === 0) throw Error("Prepared submission requires a non-empty execution identity");
819
822
  let r = await V(e, t);
820
823
  if (r === void 0) throw Error("Cannot prepare an unknown admission submission");
@@ -831,7 +834,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
831
834
  ...r,
832
835
  preparedExecutionId: n
833
836
  };
834
- }, Ct = async (e, t, n, r, i = !1) => {
837
+ }, wt = async (e, t, n, r, i = !1) => {
835
838
  if (i !== !1 && (!Number.isSafeInteger(i) || i < 1)) throw Error("Submission retry limit must be a positive integer or false");
836
839
  let a = await V(e, t);
837
840
  if (a === void 0) throw Error("Cannot record failure for an unknown submission");
@@ -839,7 +842,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
839
842
  let o = a.retry.attempts + 1, s = {
840
843
  attempts: o,
841
844
  lastError: n,
842
- after: r + en(o),
845
+ after: r + tn(o),
843
846
  stoppedAt: i !== !1 && o >= i ? r : null
844
847
  };
845
848
  if (await e.update("_voltro_workflow_submissions", t, { retry: s }) === null) throw Error("Admission submission disappeared while recording failure");
@@ -847,7 +850,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
847
850
  ...a,
848
851
  retry: s
849
852
  };
850
- }, wt = async (e, t, n) => {
853
+ }, Tt = async (e, t, n) => {
851
854
  let r = await V(e, t);
852
855
  if (r === void 0) throw Error("Cannot dispatch an unknown admission submission");
853
856
  if (!r.receiptsBound || r.executionId !== null || r.failureId !== null || r.retry.stoppedAt !== null || r.retry.after > n) return null;
@@ -858,7 +861,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
858
861
  ...r,
859
862
  dispatchAttempts: i
860
863
  };
861
- }, Tt = async (e, t, n, r) => {
864
+ }, Et = async (e, t, n, r) => {
862
865
  if (!Number.isSafeInteger(n) || n < 0) throw Error("Invalid submission dispatch attempt");
863
866
  let i = await V(e, t);
864
867
  if (i === void 0) throw Error("Cannot reject an unknown admission submission");
@@ -868,13 +871,13 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
868
871
  return await B(e, n.id, r.now), n;
869
872
  }
870
873
  if (!i.receiptsBound || i.executionId !== null || i.dispatchAttempts !== n || n > 1) return;
871
- let a = `wffr_${be("sha256").update(JSON.stringify(["submission", t])).digest("hex").slice(0, 40)}`, o = await Qe(e, {
874
+ let a = `wffr_${be("sha256").update(JSON.stringify(["submission", t])).digest("hex").slice(0, 40)}`, o = await $e(e, {
872
875
  id: a,
873
876
  sourceKind: "submission",
874
877
  sourceId: t,
875
878
  workflowName: i.workflowName,
876
879
  tenantId: i.tenantId,
877
- handler: await et(e, t) ? null : r.handler,
880
+ handler: await tt(e, t) ? null : r.handler,
878
881
  callerContext: i.callerContext,
879
882
  report: {
880
883
  workflow: i.workflowName,
@@ -890,30 +893,30 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
890
893
  if (await e.update("_voltro_workflow_admissions", i.ledgerId, { releasedAt: new Date(r.now) }) === null) throw Error("Rejected admission submission has no lease");
891
894
  if (await e.update("_voltro_workflow_submissions", t, { failureId: a }) === null) throw Error("Admission submission disappeared during rejection");
892
895
  return await B(e, o.id, r.now), o;
893
- }, Et = async (e, t) => {
896
+ }, Dt = async (e, t) => {
894
897
  if (t.failureId === null) throw Error("Workflow submission has no rejection marker");
895
898
  let n = await z(e, t.failureId);
896
899
  if (t.executionId !== null || t.dispatchAttempts > 1 || n === void 0 || n.sourceKind !== "submission" || n.sourceId !== t.id || n.workflowName !== t.workflowName || n.tenantId !== t.tenantId || n.report.executionId !== null || n.report.runId !== null) throw Error("Workflow start rejection has contradictory ownership or execution evidence");
897
900
  return n.id;
898
- }, Dt = "_voltro_workflow_start_receipts", Ot = w.Struct({
901
+ }, Ot = "_voltro_workflow_start_receipts", kt = w.Struct({
899
902
  id: w.String,
900
903
  workflowName: w.String,
901
904
  tenantId: w.NullOr(w.String),
902
905
  pendingId: w.String,
903
906
  submissionId: w.NullOr(w.String),
904
907
  terminal: w.NullOr(E)
905
- }).pipe(w.filter((e) => e.submissionId === null || e.terminal === null, { message: () => "A start receipt cannot be both submitted and terminal before admission" })), kt = w.decodeUnknownSync(Ot), At = async (e, t) => {
908
+ }).pipe(w.filter((e) => e.submissionId === null || e.terminal === null, { message: () => "A start receipt cannot be both submitted and terminal before admission" })), At = w.decodeUnknownSync(kt), jt = async (e, t) => {
906
909
  let n = await e.query({
907
- table: Dt,
910
+ table: Ot,
908
911
  predicate: O("id", t),
909
912
  order: [],
910
913
  take: 1,
911
914
  skip: void 0,
912
915
  projection: void 0
913
916
  });
914
- return n[0] === void 0 ? void 0 : kt(n[0]);
915
- }, jt = async (e, t) => {
916
- let n = await At(e, t.receiptId);
917
+ return n[0] === void 0 ? void 0 : At(n[0]);
918
+ }, Mt = async (e, t) => {
919
+ let n = await jt(e, t.receiptId);
917
920
  if (n === void 0 || n.workflowName !== t.workflowName || n.tenantId !== t.tenantId) throw Error("Workflow start receipt is missing or belongs to another workflow or tenant");
918
921
  if (n.terminal !== null) {
919
922
  if (n.terminal.kind === "abandoned") {
@@ -944,7 +947,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
944
947
  if (r === void 0 || !r.receiptsBound || r.workflowName !== n.workflowName || r.tenantId !== n.tenantId || !r.intentIds.includes(n.pendingId)) throw Error("Workflow receipt has no matching admission submission");
945
948
  if (r.failureId !== null) return {
946
949
  kind: "rejected",
947
- failureId: await Et(e, r)
950
+ failureId: await Dt(e, r)
948
951
  };
949
952
  if (r.executionId === null) {
950
953
  if (r.retry.stoppedAt !== null) throw Error("Workflow start acceptance is unresolved; reconciliation required");
@@ -955,23 +958,23 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
955
958
  kind: "accepted",
956
959
  executionId: r.executionId
957
960
  };
958
- }, Mt = async (e, t) => {
961
+ }, Nt = async (e, t) => {
959
962
  if (t.id.length === 0 || t.id === t.pendingId) throw Error("Workflow start receipt requires an identity distinct from its queue slot");
960
- let n = kt((await e.insertIgnoreWithOutcome(Dt, {
963
+ let n = At((await e.insertIgnoreWithOutcome(Ot, {
961
964
  ...t,
962
965
  submissionId: null,
963
966
  terminal: null
964
967
  }, { conflictColumns: ["id"] })).row);
965
968
  if (n.workflowName !== t.workflowName || n.tenantId !== t.tenantId || n.pendingId !== t.pendingId) throw Error("Workflow start receipt identity belongs to a different start");
966
969
  return n;
967
- }, Nt = async (e, t) => {
970
+ }, Pt = async (e, t) => {
968
971
  let n = await V(e, t);
969
972
  if (n === void 0) throw Error("Cannot bind receipts to an unknown admission submission");
970
973
  if (n.receiptsBound) return 0;
971
974
  let r = 0;
972
975
  for (let t of new Set(n.intentIds)) for (;;) {
973
976
  let i = await e.query({
974
- table: Dt,
977
+ table: Ot,
975
978
  predicate: D(O("pendingId", t), N("submissionId"), N("terminal")),
976
979
  order: [{
977
980
  column: "id",
@@ -983,7 +986,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
983
986
  });
984
987
  if (i.length === 0) break;
985
988
  for (let t of i) {
986
- let i = kt(t);
989
+ let i = At(t);
987
990
  if (i.workflowName !== n.workflowName || i.tenantId !== n.tenantId) throw Error("Pending receipt belongs to a different workflow or tenant");
988
991
  if (await e.update("_voltro_workflow_start_receipts", i.id, { submissionId: n.id }) === null) throw Error("Workflow start receipt disappeared during queue transfer");
989
992
  r++;
@@ -995,7 +998,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
995
998
  let n = w.decodeUnknownSync(E)(t.terminal);
996
999
  for (;;) {
997
1000
  let r = await e.query({
998
- table: Dt,
1001
+ table: Ot,
999
1002
  predicate: D(O("pendingId", t.pendingId), N("submissionId"), N("terminal")),
1000
1003
  order: [{
1001
1004
  column: "id",
@@ -1007,17 +1010,17 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1007
1010
  });
1008
1011
  if (r.length === 0) return;
1009
1012
  for (let i of r) {
1010
- let r = kt(i);
1013
+ let r = At(i);
1011
1014
  if (r.workflowName !== t.workflowName || r.tenantId !== t.tenantId) throw Error("Terminal receipt belongs to a different workflow or tenant");
1012
1015
  if (await e.update("_voltro_workflow_start_receipts", r.id, { terminal: n }) === null) throw Error("Start receipt disappeared while recording its terminal outcome");
1013
1016
  }
1014
1017
  }
1015
- }, U = "_voltro_workflow_pending", W = "_voltro_workflow_admissions", Pt = "_voltro_workflow_pauses", Ft = (e, t, n) => e.encodeWorkflowPayload === void 0 ? n : e.encodeWorkflowPayload(t, n), G = (e, t, n) => e.decodeWorkflowPayload === void 0 ? n : e.decodeWorkflowPayload(t, n), It = 864e5, Lt = (e, t, n) => `wfp_${be("sha256").update(`${e}\u0000${t}\u0000${n}`).digest("hex").slice(0, 40)}`, K = (e) => {
1018
+ }, U = "_voltro_workflow_pending", W = "_voltro_workflow_admissions", Ft = "_voltro_workflow_pauses", It = (e, t, n) => e.encodeWorkflowPayload === void 0 ? n : e.encodeWorkflowPayload(t, n), G = (e, t, n) => e.decodeWorkflowPayload === void 0 ? n : e.decodeWorkflowPayload(t, n), Lt = 864e5, Rt = (e, t, n) => `wfp_${be("sha256").update(`${e}\u0000${t}\u0000${n}`).digest("hex").slice(0, 40)}`, K = (e) => {
1016
1019
  if (e instanceof Date) return e.getTime();
1017
1020
  if (typeof e == "number") return e;
1018
1021
  let t = Date.parse(String(e));
1019
1022
  return Number.isNaN(t) ? 0 : t;
1020
- }, Rt = (e, t) => {
1023
+ }, zt = (e, t) => {
1021
1024
  let n = typeof e == "number" ? e : Number(e);
1022
1025
  return Number.isFinite(n) ? Math.trunc(n) : t;
1023
1026
  }, q = (e) => ({
@@ -1030,12 +1033,12 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1030
1033
  callerContext: e.callerContext ?? null,
1031
1034
  queuedAppVersion: e.queuedAppVersion === null || e.queuedAppVersion === void 0 ? null : String(e.queuedAppVersion),
1032
1035
  queuedSchemaFingerprint: e.queuedSchemaFingerprint === null || e.queuedSchemaFingerprint === void 0 ? null : String(e.queuedSchemaFingerprint),
1033
- priority: Rt(e.priority, 0),
1036
+ priority: zt(e.priority, 0),
1034
1037
  dueAt: K(e.dueAt),
1035
1038
  deadlineAt: e.deadlineAt === null || e.deadlineAt === void 0 ? void 0 : K(e.deadlineAt),
1036
- collapsed: Rt(e.collapsed, 1),
1039
+ collapsed: zt(e.collapsed, 1),
1037
1040
  firstSeenAt: K(e.firstSeenAt),
1038
- attempts: Rt(e.attempts, 0),
1041
+ attempts: zt(e.attempts, 0),
1039
1042
  lastError: e.lastError === null || e.lastError === void 0 ? null : String(e.lastError),
1040
1043
  deadLetteredAt: e.deadLetteredAt === null || e.deadLetteredAt === void 0 ? void 0 : K(e.deadLetteredAt)
1041
1044
  }), J = (e, t, n, r) => ({
@@ -1045,11 +1048,11 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1045
1048
  take: r,
1046
1049
  skip: void 0,
1047
1050
  projection: void 0
1048
- }), zt = async (e) => {
1049
- let t = await e.query(J(Pt, void 0, [], 1e3));
1051
+ }), Bt = async (e) => {
1052
+ let t = await e.query(J(Ft, void 0, [], 1e3));
1050
1053
  return new Set(t.map((e) => String(e.id)));
1051
- }, Bt = async (e, t, n, r) => {
1052
- await e.upsert(Pt, {
1054
+ }, Vt = async (e, t, n, r) => {
1055
+ await e.upsert(Ft, {
1053
1056
  id: t,
1054
1057
  pausedAt: /* @__PURE__ */ new Date(),
1055
1058
  pausedBy: n,
@@ -1062,7 +1065,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1062
1065
  "reason"
1063
1066
  ]
1064
1067
  });
1065
- }, Vt = async (e, t) => e.delete(Pt, t), Ht = async (e) => {
1068
+ }, Ht = async (e, t) => e.delete(Ft, t), Ut = async (e) => {
1066
1069
  let { store: t, control: n, keys: r, now: i } = e, a = { paused: e.paused }, o = [];
1067
1070
  n.debounce !== void 0 && r.debounceKey !== void 0 && o.push((async () => {
1068
1071
  let e = (await t.query(J(U, D(O("workflowName", n.workflowName), O("controlKey", r.debounceKey), O("mode", "debounce")), [], 1)))[0];
@@ -1070,7 +1073,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1070
1073
  let i = e.deadlineAt === null || e.deadlineAt === void 0 ? void 0 : K(e.deadlineAt);
1071
1074
  a.debouncePending = {
1072
1075
  firstSeenAt: K(e.firstSeenAt),
1073
- collapsed: Rt(e.collapsed, 1),
1076
+ collapsed: zt(e.collapsed, 1),
1074
1077
  ...i === void 0 ? {} : { deadlineAt: i }
1075
1078
  };
1076
1079
  })()), n.batch !== void 0 && r.batchKey !== void 0 && o.push((async () => {
@@ -1083,7 +1086,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1083
1086
  firstSeenAt: K(e[0].firstSeenAt)
1084
1087
  });
1085
1088
  })()), n.singleton !== void 0 && r.singletonKey !== void 0 && o.push((async () => {
1086
- let e = await Ut(t, n.workflowName, r.singletonKey, i);
1089
+ let e = await Wt(t, n.workflowName, r.singletonKey, i);
1087
1090
  e === "unacknowledged" ? a.singletonUnacknowledged = !0 : e !== void 0 && (a.singletonHolder = e);
1088
1091
  })()), n.concurrency !== void 0 && r.concurrencyKey !== void 0 && o.push((async () => {
1089
1092
  let e = n.concurrency.pool === void 0 ? [O("workflowName", n.workflowName)] : [], o = await t.query(J(W, D(...e, O("concurrencyKey", r.concurrencyKey), N("releasedAt"), he(N("executionId"), A("expiresAt", new Date(i)))), [], n.concurrency.limit));
@@ -1097,7 +1100,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1097
1100
  }], s.limit));
1098
1101
  a.recentAdmissions = e.map((e) => K(e.admittedAt));
1099
1102
  })()), await Promise.all(o), a;
1100
- }, Ut = async (e, t, n, r) => {
1103
+ }, Wt = async (e, t, n, r) => {
1101
1104
  if ((await e.query(J("_voltro_workflow_admissions", D(O("workflowName", t), O("singletonKey", n), N("releasedAt"), N("executionId")), [], 1))).length > 0) return "unacknowledged";
1102
1105
  let i = (await e.query(J(W, D(O("workflowName", t), O("singletonKey", n), N("releasedAt"), A("expiresAt", new Date(r))), [{
1103
1106
  column: "admittedAt",
@@ -1110,17 +1113,17 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1110
1113
  runId: i.runId === null || i.runId === void 0 ? "" : String(i.runId),
1111
1114
  admittedAt: K(i.admittedAt)
1112
1115
  };
1113
- }, Wt = async (e) => {
1114
- let { store: t, control: n, decision: r, now: i } = e, a = Kt(r.mode, r.keys);
1116
+ }, Gt = async (e) => {
1117
+ let { store: t, control: n, decision: r, now: i } = e, a = qt(r.mode, r.keys);
1115
1118
  if (r.collapse === "hold") {
1116
- let o = e.existingId ?? Lt(n.workflowName, r.mode, a);
1119
+ let o = e.existingId ?? Rt(n.workflowName, r.mode, a);
1117
1120
  return await t.update(U, o, {
1118
1121
  dueAt: new Date(r.dueAt),
1119
1122
  updatedAt: new Date(i)
1120
1123
  }), o;
1121
1124
  }
1122
1125
  if (r.collapse === "replace") {
1123
- let o = Lt(n.workflowName, r.mode, a);
1126
+ let o = Rt(n.workflowName, r.mode, a);
1124
1127
  return await H(t, {
1125
1128
  pendingId: o,
1126
1129
  workflowName: n.workflowName,
@@ -1135,7 +1138,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1135
1138
  workflowName: n.workflowName,
1136
1139
  controlKey: a,
1137
1140
  mode: r.mode,
1138
- payload: Ft(t, n.workflowName, e.payload),
1141
+ payload: It(t, n.workflowName, e.payload),
1139
1142
  callerContext: e.callerContext ?? null,
1140
1143
  queuedAppVersion: e.queuedAppVersion ?? null,
1141
1144
  queuedSchemaFingerprint: e.queuedSchemaFingerprint ?? null,
@@ -1151,14 +1154,14 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1151
1154
  }, {
1152
1155
  conflictColumns: ["id"],
1153
1156
  update: (a) => ({
1154
- payload: Ft(t, n.workflowName, e.payload),
1157
+ payload: It(t, n.workflowName, e.payload),
1155
1158
  callerContext: e.callerContext ?? null,
1156
1159
  queuedAppVersion: e.queuedAppVersion ?? null,
1157
1160
  queuedSchemaFingerprint: e.queuedSchemaFingerprint ?? null,
1158
1161
  priority: r.keys.priority,
1159
1162
  dueAt: new Date(r.dueAt),
1160
1163
  deadlineAt: r.deadlineAt === void 0 ? a.deadlineAt ?? null : new Date(r.deadlineAt),
1161
- collapsed: Rt(a.collapsed, 1) + 1,
1164
+ collapsed: zt(a.collapsed, 1) + 1,
1162
1165
  updatedAt: new Date(i),
1163
1166
  attempts: 0,
1164
1167
  lastError: null,
@@ -1172,7 +1175,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1172
1175
  workflowName: n.workflowName,
1173
1176
  controlKey: a,
1174
1177
  mode: r.mode,
1175
- payload: Ft(t, n.workflowName, e.payload),
1178
+ payload: It(t, n.workflowName, e.payload),
1176
1179
  callerContext: e.callerContext ?? null,
1177
1180
  queuedAppVersion: e.queuedAppVersion ?? null,
1178
1181
  queuedSchemaFingerprint: e.queuedSchemaFingerprint ?? null,
@@ -1187,14 +1190,14 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1187
1190
  deadLetteredAt: null
1188
1191
  });
1189
1192
  return String(o.id);
1190
- }, Gt = async (e) => {
1193
+ }, Kt = async (e) => {
1191
1194
  let t = await e.store.insert(U, {
1192
1195
  id: `wfpi_${R()}`,
1193
1196
  tenantId: e.tenantId,
1194
1197
  workflowName: e.workflowName,
1195
1198
  controlKey: "",
1196
1199
  mode: "delayed",
1197
- payload: Ft(e.store, e.workflowName, e.payload),
1200
+ payload: It(e.store, e.workflowName, e.payload),
1198
1201
  callerContext: e.callerContext ?? null,
1199
1202
  queuedAppVersion: e.queuedAppVersion ?? null,
1200
1203
  queuedSchemaFingerprint: e.queuedSchemaFingerprint ?? null,
@@ -1212,7 +1215,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1212
1215
  intentId: String(t.id),
1213
1216
  dueAt: e.at
1214
1217
  };
1215
- }, Kt = (e, t) => {
1218
+ }, qt = (e, t) => {
1216
1219
  switch (e) {
1217
1220
  case "debounce": return t.debounceKey ?? "";
1218
1221
  case "batch": return t.batchKey ?? "";
@@ -1246,7 +1249,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1246
1249
  releasedAt: e.outcome === "admitted" ? null : new Date(r)
1247
1250
  });
1248
1251
  return String(a.id);
1249
- }, qt = async (e, t, n) => {
1252
+ }, Jt = async (e, t, n) => {
1250
1253
  let r = !1;
1251
1254
  for (;;) {
1252
1255
  let i = await e.query(J(W, D(O("executionId", t), O("outcome", "admitted"), N("releasedAt")), [], 10));
@@ -1254,7 +1257,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1254
1257
  for (let t of i) if (await e.update("_voltro_workflow_admissions", String(t.id), { releasedAt: new Date(n) }) === null) throw Error("Admission lease disappeared during release");
1255
1258
  r = !0;
1256
1259
  }
1257
- }, Jt = async (e, t, n) => (await Yt(e, t, n)).due, Yt = async (e, t, n) => {
1260
+ }, Yt = async (e, t, n) => (await Xt(e, t, n)).due, Xt = async (e, t, n) => {
1258
1261
  let r = (await e.query(J(U, N("deadLetteredAt"), [{
1259
1262
  column: "priority",
1260
1263
  direction: "desc"
@@ -1264,13 +1267,13 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1264
1267
  }], n))).map(q), i;
1265
1268
  for (let e of r) e.dueAt <= t || (i === void 0 || e.dueAt < i) && (i = e.dueAt);
1266
1269
  return {
1267
- due: r.filter((e) => e.dueAt <= t).sort(Ye),
1270
+ due: r.filter((e) => e.dueAt <= t).sort(Xe),
1268
1271
  nextDueAt: i
1269
1272
  };
1270
- }, Xt = async (e, t) => (await e.query(J(U, void 0, [{
1273
+ }, Zt = async (e, t) => (await e.query(J(U, void 0, [{
1271
1274
  column: "firstSeenAt",
1272
1275
  direction: "asc"
1273
- }], t))).map(q), Zt = async (e, t) => e.delete(U, t), Qt = async (e, t, n, r) => Re(e, (e) => $t(e, t, n, r)), $t = async (e, t, n, r) => {
1276
+ }], t))).map(q), Qt = async (e, t) => e.delete(U, t), $t = async (e, t, n, r) => ze(e, (e) => en(e, t, n, r)), en = async (e, t, n, r) => {
1274
1277
  let i = (await e.query(J(U, O("id", t), [], 1)))[0];
1275
1278
  if (i === void 0) return !1;
1276
1279
  let a = q(i);
@@ -1301,23 +1304,23 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1301
1304
  }
1302
1305
  }), !await e.delete("_voltro_workflow_pending", t)) throw Error("Pending intent disappeared during discard");
1303
1306
  return !0;
1304
- }, en = (e, t = Math.random) => {
1307
+ }, tn = (e, t = Math.random) => {
1305
1308
  let n = Math.min(1e3 * 2 ** Math.max(0, e - 1), 3e5);
1306
1309
  return Math.round(n / 2 + t() * (n / 2));
1307
- }, tn = async (e, t, n, r) => {
1310
+ }, nn = async (e, t, n, r) => {
1308
1311
  let i = t.attempts + 1;
1309
1312
  await e.update(U, t.id, {
1310
1313
  attempts: i,
1311
1314
  lastError: n.slice(0, 500),
1312
- dueAt: new Date(r + en(i)),
1315
+ dueAt: new Date(r + tn(i)),
1313
1316
  updatedAt: new Date(r)
1314
1317
  });
1315
- }, nn = async (e, t, n, r) => await e.update(U, t.id, {
1318
+ }, rn = async (e, t, n, r) => await e.update(U, t.id, {
1316
1319
  attempts: t.attempts + 1,
1317
1320
  lastError: n.slice(0, 500),
1318
1321
  deadLetteredAt: new Date(r),
1319
1322
  updatedAt: new Date(r)
1320
- }) !== null, rn = async (e, t, n) => {
1323
+ }) !== null, an = async (e, t, n) => {
1321
1324
  let r = (await e.query(J(U, O("id", t), [], 1)))[0];
1322
1325
  return r === void 0 || r.deadLetteredAt === null || r.deadLetteredAt === void 0 ? !1 : await e.update(U, t, {
1323
1326
  attempts: 0,
@@ -1326,30 +1329,30 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1326
1329
  dueAt: new Date(n),
1327
1330
  updatedAt: new Date(n)
1328
1331
  }) !== null;
1329
- }, an = async (e) => {
1330
- let t = await Ht({
1332
+ }, on = async (e) => {
1333
+ let t = await Ut({
1331
1334
  store: e.store,
1332
1335
  control: e.control,
1333
1336
  keys: e.keys,
1334
1337
  now: e.now,
1335
1338
  paused: e.paused
1336
1339
  });
1337
- return We({
1340
+ return Ge({
1338
1341
  control: e.control,
1339
1342
  keys: e.keys,
1340
1343
  state: t,
1341
1344
  now: e.now,
1342
1345
  reconsidering: e.reconsidering
1343
1346
  });
1344
- }, on = async (e, t, n = 1e3) => {
1347
+ }, sn = async (e, t, n = 1e3) => {
1345
1348
  let r = await e.query(J(W, void 0, [{
1346
1349
  column: "admittedAt",
1347
1350
  direction: "asc"
1348
1351
  }], n)), i = t.getTime(), a = r.filter((e) => e.releasedAt != null && K(e.admittedAt) < i);
1349
1352
  return await Promise.all(a.map((t) => e.delete(W, String(t.id)))), a.length;
1350
- }, sn = async (e, t) => {
1353
+ }, cn = async (e, t) => {
1351
1354
  if (!Number.isFinite(t.now) || !Number.isFinite(new Date(t.now).getTime())) throw Error("Queued cancellation requires a valid timestamp");
1352
- let n = await At(e, t.receiptId);
1355
+ let n = await jt(e, t.receiptId);
1353
1356
  if (n === void 0 || n.workflowName !== t.workflowName || n.tenantId !== t.tenantId) throw Error("Queued cancellation receipt is missing or belongs to another workflow or tenant");
1354
1357
  if (n.terminal !== null) return {
1355
1358
  kind: "terminal",
@@ -1389,7 +1392,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1389
1392
  kind: "terminal",
1390
1393
  outcome: a
1391
1394
  };
1392
- }, cn = "_voltro_workflow_parent_closures", X = w.NonEmptyString, ln = w.Struct({
1395
+ }, ln = "_voltro_workflow_parent_closures", X = w.NonEmptyString, un = w.Struct({
1393
1396
  id: X,
1394
1397
  runId: X,
1395
1398
  workflowName: X,
@@ -1400,7 +1403,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1400
1403
  afterChildId: w.NullOr(X),
1401
1404
  scanHasOpenChildren: w.Boolean,
1402
1405
  completedAt: w.NullOr(w.DateFromSelf)
1403
- }), un = w.Struct({
1406
+ }), dn = w.Struct({
1404
1407
  id: X,
1405
1408
  tag: X,
1406
1409
  executionId: X,
@@ -1408,11 +1411,11 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1408
1411
  runnerGeneration: w.optional(w.NullOr(X)),
1409
1412
  parentGeneration: w.optional(w.NullOr(X)),
1410
1413
  parentClosePolicy: w.NullOr(w.Literal("cancel", "terminate", "abandon"))
1411
- }), dn = async (e, t, n) => {
1414
+ }), fn = async (e, t, n) => {
1412
1415
  if (t.parentClosePolicy !== "cancel" && t.parentClosePolicy !== "terminate") return !1;
1413
1416
  if (typeof t.parentExecutionId != "string" || t.parentExecutionId.length === 0 || typeof t.parentGeneration != "string" || t.parentGeneration.length === 0) throw Error("Child entry requires its original parent execution and generation");
1414
1417
  let r = n ?? (await e.query({
1415
- table: cn,
1418
+ table: ln,
1416
1419
  predicate: D(O("executionId", t.parentExecutionId), O("generation", t.parentGeneration)),
1417
1420
  lock: "update",
1418
1421
  order: [],
@@ -1421,9 +1424,9 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1421
1424
  projection: void 0
1422
1425
  }))[0];
1423
1426
  if (r === void 0) return !1;
1424
- let i = w.decodeUnknownSync(ln)(r);
1427
+ let i = w.decodeUnknownSync(un)(r);
1425
1428
  if (i.executionId !== t.parentExecutionId || i.generation !== t.parentGeneration) return !1;
1426
- let a = w.decodeUnknownSync(un)(t), o = ue("wfctl", JSON.stringify([
1429
+ let a = w.decodeUnknownSync(dn)(t), o = ue("wfctl", JSON.stringify([
1427
1430
  "parent-close",
1428
1431
  i.id,
1429
1432
  a.id
@@ -1455,9 +1458,9 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1455
1458
  });
1456
1459
  }
1457
1460
  return !0;
1458
- }, fn = async (e, t, n = Date.now()) => {
1461
+ }, pn = async (e, t, n = Date.now()) => {
1459
1462
  let [r] = await e.query({
1460
- table: cn,
1463
+ table: ln,
1461
1464
  predicate: O("id", t),
1462
1465
  lock: "update",
1463
1466
  order: [],
@@ -1466,7 +1469,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1466
1469
  projection: void 0
1467
1470
  });
1468
1471
  if (r === void 0) throw Error("Parent closure is missing");
1469
- let i = w.decodeUnknownSync(ln)(r);
1472
+ let i = w.decodeUnknownSync(un)(r);
1470
1473
  if (i.completedAt !== null) return {
1471
1474
  scanned: 0,
1472
1475
  controls: 0,
@@ -1486,10 +1489,10 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1486
1489
  projection: void 0
1487
1490
  }), o = 0, s = i.scanHasOpenChildren, c = null;
1488
1491
  for (let t of a) {
1489
- let r = w.decodeUnknownSync(un)(t);
1492
+ let r = w.decodeUnknownSync(dn)(t);
1490
1493
  if (c = r.id, r.parentClosePolicy !== null && r.parentClosePolicy !== "abandon") {
1491
1494
  if (r.parentGeneration === void 0 || r.parentGeneration === null) throw Error("Parent closure cannot attribute a child without its parent generation");
1492
- r.parentGeneration === i.generation && ((r.status === "running" || r.status === "suspended") && (s = !0), await dn(e, t, i) && (o++, r.status === "suspended" && typeof r.runnerGeneration == "string" && await xn(e, {
1495
+ r.parentGeneration === i.generation && ((r.status === "running" || r.status === "suspended") && (s = !0), await fn(e, t, i) && (o++, r.status === "suspended" && typeof r.runnerGeneration == "string" && await Sn(e, {
1493
1496
  runId: r.id,
1494
1497
  workflowName: r.tag,
1495
1498
  executionId: r.executionId,
@@ -1498,7 +1501,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1498
1501
  }
1499
1502
  }
1500
1503
  let l = a.length < 100, u = l && !s && !await _(e, i.id);
1501
- if (await e.update(cn, i.id, {
1504
+ if (await e.update(ln, i.id, {
1502
1505
  afterChildId: l ? null : c,
1503
1506
  scanHasOpenChildren: !l && s,
1504
1507
  completedAt: u ? new Date(n) : null
@@ -1508,7 +1511,7 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1508
1511
  controls: o,
1509
1512
  wrapped: l
1510
1513
  };
1511
- }, pn = F("_voltro_workflow_restart_requests", {
1514
+ }, mn = F("_voltro_workflow_restart_requests", {
1512
1515
  id: j({ prefix: "wfrs" }),
1513
1516
  runId: I(),
1514
1517
  workflowName: I(),
@@ -1523,10 +1526,10 @@ var ht = async (e, t, n) => (await gt(e, t, n)).map((e) => pt(e)), gt = async (e
1523
1526
  requestedAt: L(),
1524
1527
  dispatchAttempts: M().default(0),
1525
1528
  enteredGeneration: I().nullable()
1526
- }).unique(["runId", "generation"]).unique(["runId", "token"]).nonReactive(), Z = w.NonEmptyString, mn = w.Struct({
1529
+ }).unique(["runId", "generation"]).unique(["runId", "token"]).nonReactive(), Z = w.NonEmptyString, hn = w.Struct({
1527
1530
  requestId: Z,
1528
1531
  restartToken: w.NullOr(Z)
1529
- }), hn = w.Struct({
1532
+ }), gn = w.Struct({
1530
1533
  requestId: Z,
1531
1534
  replyId: Z
1532
1535
  });
@@ -1539,8 +1542,8 @@ w.Struct({
1539
1542
  token: Z,
1540
1543
  ledgerId: Z,
1541
1544
  tenantId: w.NullOr(Z),
1542
- delivery: mn,
1543
- replies: w.Array(hn),
1545
+ delivery: hn,
1546
+ replies: w.Array(gn),
1544
1547
  eviction: w.NullOr(w.Struct({
1545
1548
  executionId: Z,
1546
1549
  runId: w.String
@@ -1551,19 +1554,19 @@ w.Struct({
1551
1554
  });
1552
1555
  //#endregion
1553
1556
  //#region src/runGeneration.ts
1554
- var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1557
+ var _n = "_voltro_workflow_runs", vn = w.NullOr(w.Struct({
1555
1558
  requestId: w.NonEmptyString,
1556
1559
  restartToken: w.NullOr(w.NonEmptyString)
1557
- })), vn = async (e, t, n, r) => {
1560
+ })), yn = async (e, t, n, r) => {
1558
1561
  if (typeof t.id != "string") throw Error("Child entry has no allocated run identity");
1559
1562
  let i = {
1560
1563
  runId: t.id,
1561
1564
  workflowName: n.workflowName,
1562
1565
  executionId: n.executionId,
1563
1566
  generation: n.generation
1564
- }, a = await In(e, i), o = await dn(e, t);
1567
+ }, a = await Ln(e, i), o = await fn(e, t);
1565
1568
  if (!a && !o) return;
1566
- let s = await Cn(e, {
1569
+ let s = await wn(e, {
1567
1570
  owner: i,
1568
1571
  now: n.now,
1569
1572
  durationMs: 0,
@@ -1576,21 +1579,21 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1576
1579
  previous: r,
1577
1580
  terminalEvent: s.terminalEvent
1578
1581
  };
1579
- }, yn = async (e, t) => {
1582
+ }, bn = async (e, t) => {
1580
1583
  if ([
1581
1584
  t.workflowName,
1582
1585
  t.executionId,
1583
1586
  t.generation
1584
1587
  ].some((e) => e.length === 0) || typeof t.initialRow.id != "string" || t.initialRow.id.length === 0 || !Number.isFinite(t.now)) throw Error("Workflow entry requires allocated identities and a finite timestamp");
1585
1588
  let n = (await e.query({
1586
- table: gn,
1589
+ table: _n,
1587
1590
  predicate: O("executionId", t.executionId),
1588
1591
  lock: "update",
1589
1592
  order: [],
1590
1593
  take: 1,
1591
1594
  skip: void 0,
1592
1595
  projection: void 0
1593
- }))[0], r = w.decodeUnknownSync(_n)(t.delivery ?? null), i = (r) => vn(e, r, t, n);
1596
+ }))[0], r = w.decodeUnknownSync(vn)(t.delivery ?? null), i = (r) => yn(e, r, t, n);
1594
1597
  if (n === void 0) {
1595
1598
  if (r !== null && r.restartToken !== null) throw Error("Workflow restart delivery has no resident authorization");
1596
1599
  if ((await e.query({
@@ -1602,7 +1605,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1602
1605
  skip: void 0,
1603
1606
  projection: ["id"]
1604
1607
  })).length !== 0) throw Error("Workflow execution is already terminal; restore its engine journal instead of re-entering the body");
1605
- let n = await e.insert(gn, {
1608
+ let n = await e.insert(_n, {
1606
1609
  ...t.initialRow,
1607
1610
  tag: t.workflowName,
1608
1611
  executionId: t.executionId,
@@ -1619,7 +1622,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1619
1622
  };
1620
1623
  }
1621
1624
  if (n.tag !== t.workflowName || typeof n.id != "string") throw Error("Workflow entry execution belongs to a different resident run");
1622
- let a = w.decodeUnknownSync(_n)(n.engineDelivery ?? null);
1625
+ let a = w.decodeUnknownSync(vn)(n.engineDelivery ?? null);
1623
1626
  if (a?.requestId !== r?.requestId || a?.restartToken !== r?.restartToken) throw Error("Workflow delivery does not match its resident owner");
1624
1627
  if (n.status === "cancelled") return {
1625
1628
  kind: "already-cancelled",
@@ -1635,7 +1638,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1635
1638
  generation: n.runnerGeneration
1636
1639
  };
1637
1640
  if (await f(e, r)) {
1638
- let i = await Cn(e, {
1641
+ let i = await wn(e, {
1639
1642
  owner: r,
1640
1643
  now: t.now,
1641
1644
  durationMs: 0,
@@ -1659,7 +1662,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1659
1662
  if (typeof s != "number" || !Number.isSafeInteger(s) || s < 0) throw Error("Workflow entry has an invalid resident reclaim counter");
1660
1663
  let c = o ? s + 1 : 0;
1661
1664
  if (!Number.isSafeInteger(c)) throw Error("Workflow reclaim counter exhausted");
1662
- let l = await e.update(gn, n.id, {
1665
+ let l = await e.update(_n, n.id, {
1663
1666
  runnerGeneration: t.generation,
1664
1667
  runnerEnteredAt: new Date(t.now),
1665
1668
  reclaimCount: c,
@@ -1681,7 +1684,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1681
1684
  row: l,
1682
1685
  previous: n
1683
1686
  }) : u;
1684
- }, bn = async (e, t) => {
1687
+ }, xn = async (e, t) => {
1685
1688
  if ([
1686
1689
  t.runId,
1687
1690
  t.workflowName,
@@ -1689,7 +1692,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1689
1692
  t.generation
1690
1693
  ].some((e) => e.length === 0)) throw Error("Workflow runner ownership requires non-empty identities");
1691
1694
  let n = (await e.query({
1692
- table: gn,
1695
+ table: _n,
1693
1696
  predicate: O("id", t.runId),
1694
1697
  lock: "update",
1695
1698
  order: [],
@@ -1699,21 +1702,21 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1699
1702
  }))[0];
1700
1703
  if (n === void 0 || n.tag !== t.workflowName || n.executionId !== t.executionId) throw Error("Workflow runner ownership does not match its resident run");
1701
1704
  return n;
1702
- }, xn = async (e, t, n) => {
1703
- let r = await bn(e, t);
1705
+ }, Sn = async (e, t, n) => {
1706
+ let r = await xn(e, t);
1704
1707
  if (r.runnerGeneration !== t.generation || r.status !== "suspended" || r.runnerEnteredAt !== null || !await f(e, t)) return !1;
1705
- if ((await Cn(e, {
1708
+ if ((await wn(e, {
1706
1709
  owner: t,
1707
1710
  now: n,
1708
1711
  durationMs: 0,
1709
1712
  outcome: { status: "cancelled" }
1710
1713
  }, "suspended")).kind !== "committed") throw Error("Suspended cancellation lost its resident owner");
1711
1714
  return !0;
1712
- }, Sn = async (e, t, n) => {
1713
- let r = await bn(e, t);
1715
+ }, Cn = async (e, t, n) => {
1716
+ let r = await xn(e, t);
1714
1717
  if (r.runnerGeneration !== t.generation) return { kind: "superseded" };
1715
1718
  if (r.status !== "running") return { kind: "not-running" };
1716
- let i = await e.update(gn, t.runId, {
1719
+ let i = await e.update(_n, t.runId, {
1717
1720
  status: "suspended",
1718
1721
  runnerEnteredAt: null,
1719
1722
  errorTag: n.errorTag,
@@ -1724,8 +1727,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1724
1727
  kind: "committed",
1725
1728
  row: i
1726
1729
  };
1727
- }, Cn = async (e, t, n) => {
1728
- let r = await bn(e, t.owner);
1730
+ }, wn = async (e, t, n) => {
1731
+ let r = await xn(e, t.owner);
1729
1732
  if (r.runnerGeneration !== t.owner.generation) return { kind: "superseded" };
1730
1733
  if (r.status !== n) return { kind: "not-running" };
1731
1734
  if (!Number.isFinite(t.now) || !Number.isFinite(t.durationMs) || t.durationMs < 0) throw Error("Workflow completion requires finite time and non-negative duration");
@@ -1735,13 +1738,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1735
1738
  t.owner.workflowName,
1736
1739
  t.owner.runId,
1737
1740
  t.owner.generation
1738
- ])).digest("hex").slice(0, 40)}`, await Qe(e, {
1741
+ ])).digest("hex").slice(0, 40)}`, await $e(e, {
1739
1742
  id: a,
1740
1743
  sourceKind: "run",
1741
1744
  sourceId: t.owner.runId,
1742
1745
  workflowName: t.owner.workflowName,
1743
1746
  tenantId: i.tenantId,
1744
- handler: await nt(e, t.owner.executionId, t.owner.workflowName, i.tenantId) ? null : i.handler,
1747
+ handler: await rt(e, t.owner.executionId, t.owner.workflowName, i.tenantId) ? null : i.handler,
1745
1748
  callerContext: i.callerContext,
1746
1749
  report: {
1747
1750
  workflow: t.owner.workflowName,
@@ -1768,13 +1771,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1768
1771
  t.owner.workflowName,
1769
1772
  t.owner.runId,
1770
1773
  t.owner.generation
1771
- ])).digest("hex").slice(0, 40)}`, await Qe(e, {
1774
+ ])).digest("hex").slice(0, 40)}`, await $e(e, {
1772
1775
  id: a,
1773
1776
  sourceKind: "run",
1774
1777
  sourceId: t.owner.runId,
1775
1778
  workflowName: t.owner.workflowName,
1776
1779
  tenantId: o,
1777
- handler: await nt(e, t.owner.executionId, t.owner.workflowName, o) ? null : n.cause.detail.onFailure,
1780
+ handler: await rt(e, t.owner.executionId, t.owner.workflowName, o) ? null : n.cause.detail.onFailure,
1778
1781
  callerContext: {
1779
1782
  subject: r.subject ?? null,
1780
1783
  traceId: r.traceId ?? null,
@@ -1796,7 +1799,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1796
1799
  }), await B(e, a, t.now);
1797
1800
  }
1798
1801
  }
1799
- let o = await e.update(gn, t.owner.runId, {
1802
+ let o = await e.update(_n, t.owner.runId, {
1800
1803
  status: i.status,
1801
1804
  completedAt: new Date(t.now),
1802
1805
  durationMs: t.durationMs,
@@ -1840,8 +1843,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1840
1843
  } : {}
1841
1844
  }
1842
1845
  });
1843
- await l(e, t), await qt(e, t.owner.executionId, t.now);
1844
- for await (let n of mt(e, t.owner.executionId, t.owner.workflowName)) {
1846
+ await l(e, t), await Jt(e, t.owner.executionId, t.now);
1847
+ for await (let n of ht(e, t.owner.executionId, t.owner.workflowName)) {
1845
1848
  let [r] = await e.query({
1846
1849
  table: W,
1847
1850
  predicate: O("id", n.ledgerId),
@@ -1860,7 +1863,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1860
1863
  failureId: a,
1861
1864
  terminalEvent: s
1862
1865
  };
1863
- }, wn = (e, t) => Cn(e, t, "running"), Tn = F("_voltro_workflow_queued_cancellations", {
1866
+ }, Tn = (e, t) => wn(e, t, "running"), En = F("_voltro_workflow_queued_cancellations", {
1864
1867
  id: j({ prefix: "wfqc" }),
1865
1868
  receiptId: I(),
1866
1869
  workflowName: I(),
@@ -1869,19 +1872,19 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1869
1872
  cause: P().nullable(),
1870
1873
  target: P(),
1871
1874
  controlBinding: P().nullable()
1872
- }).index(["receiptId"]).index(["workflowName", "id"]).nonReactive(), En = w.NullOr(w.Struct({
1875
+ }).index(["receiptId"]).index(["workflowName", "id"]).nonReactive(), Dn = w.NullOr(w.Struct({
1873
1876
  reason: w.NonEmptyString,
1874
1877
  detail: w.optional(w.Record({
1875
1878
  key: w.String,
1876
1879
  value: w.Unknown
1877
1880
  }))
1878
- })), Dn = w.Struct({
1881
+ })), On = w.Struct({
1879
1882
  id: w.NonEmptyString,
1880
1883
  receiptId: w.NonEmptyString,
1881
1884
  workflowName: w.NonEmptyString,
1882
1885
  tenantId: w.NullOr(w.String),
1883
1886
  requestedAt: w.DateFromSelf,
1884
- cause: En,
1887
+ cause: Dn,
1885
1888
  controlBinding: w.NullOr(w.Struct({
1886
1889
  controlId: w.NonEmptyString,
1887
1890
  runId: w.NonEmptyString,
@@ -1895,14 +1898,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1895
1898
  kind: w.Literal("terminal"),
1896
1899
  receipt: w.Unknown
1897
1900
  }))
1898
- }), On = (e) => {
1899
- let t = w.decodeUnknownSync(Dn)(e);
1901
+ }), kn = (e) => {
1902
+ let t = w.decodeUnknownSync(On)(e);
1900
1903
  if (!Number.isFinite(t.requestedAt.getTime())) throw Error("Queued cancellation request has an invalid timestamp");
1901
1904
  if (t.target.kind === "submission") return {
1902
1905
  ...t,
1903
1906
  target: t.target
1904
1907
  };
1905
- let n = kt(t.target.receipt);
1908
+ let n = At(t.target.receipt);
1906
1909
  if (t.controlBinding !== null) throw Error("A non-executed start cannot have a run control binding");
1907
1910
  if (n.id !== t.receiptId || n.workflowName !== t.workflowName || n.tenantId !== t.tenantId || n.terminal === null) throw Error("Queued cancellation terminal evidence belongs to another start or is not terminal");
1908
1911
  return {
@@ -1912,9 +1915,9 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1912
1915
  receipt: n
1913
1916
  }
1914
1917
  };
1915
- }, kn = async (e, t) => {
1918
+ }, An = async (e, t) => {
1916
1919
  let [n] = await e.query({
1917
- table: Tn.tableName,
1920
+ table: En.tableName,
1918
1921
  predicate: O("id", t),
1919
1922
  lock: "update",
1920
1923
  order: [],
@@ -1922,16 +1925,16 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1922
1925
  skip: void 0,
1923
1926
  projection: void 0
1924
1927
  });
1925
- return n === void 0 ? void 0 : On(n);
1926
- }, An = async (e, t) => {
1928
+ return n === void 0 ? void 0 : kn(n);
1929
+ }, jn = async (e, t) => {
1927
1930
  let n = t.controlBinding;
1928
1931
  if (n === null) throw Error("Queued cancellation has no control binding");
1929
1932
  let r = await p(e, n.controlId);
1930
1933
  if (r === void 0 || r.operation !== "cancel" || r.workflowName !== t.workflowName || r.runId !== n.runId || r.executionId !== n.executionId || r.generation !== n.generation || r.owner?.tenantId !== t.tenantId || r.result?.status === "running") throw Error("Queued cancellation lost its original resident control owner");
1931
1934
  return r;
1932
- }, jn = async (e, t, n) => {
1935
+ }, Mn = async (e, t, n) => {
1933
1936
  if (t.controlBinding === null) return;
1934
- let r = await An(e, t);
1937
+ let r = await jn(e, t);
1935
1938
  if (r.result !== null) return;
1936
1939
  let [i] = await e.query({
1937
1940
  table: "_voltro_workflow_runs",
@@ -1942,14 +1945,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1942
1945
  skip: void 0,
1943
1946
  projection: void 0
1944
1947
  });
1945
- i !== void 0 && await xn(e, {
1948
+ i !== void 0 && await Sn(e, {
1946
1949
  runId: r.runId,
1947
1950
  workflowName: r.workflowName,
1948
1951
  executionId: r.executionId,
1949
1952
  generation: r.generation
1950
1953
  }, n);
1951
- }, Mn = async (e, t) => {
1952
- let n = await kn(e, t.requestId);
1954
+ }, Nn = async (e, t) => {
1955
+ let n = await An(e, t.requestId);
1953
1956
  if (n === void 0) return {
1954
1957
  kind: "unknown",
1955
1958
  reason: "missing-request"
@@ -1965,7 +1968,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
1965
1968
  };
1966
1969
  }
1967
1970
  if (n.controlBinding !== null) {
1968
- let t = await An(e, n);
1971
+ let t = await jn(e, n);
1969
1972
  if (t.result !== null) return {
1970
1973
  kind: t.result.kind,
1971
1974
  request: n,
@@ -2013,10 +2016,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2013
2016
  request: n,
2014
2017
  outcome: {
2015
2018
  kind: "rejected",
2016
- failureId: await Et(e, r)
2019
+ failureId: await Dt(e, r)
2017
2020
  }
2018
2021
  };
2019
- }, Nn = (e, t) => {
2022
+ }, Pn = (e, t) => {
2020
2023
  let n = "request" in t ? t.request : void 0;
2021
2024
  if (n !== void 0 && (n.id !== e.requestId || n.receiptId !== e.receiptId || n.workflowName !== e.workflowName)) throw Error("Queued control result belongs to another request or receipt");
2022
2025
  let r = {
@@ -2064,14 +2067,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2064
2067
  ...r,
2065
2068
  observation: { kind: "pending" }
2066
2069
  });
2067
- }, Pn = async (e, t) => {
2070
+ }, Fn = async (e, t) => {
2068
2071
  let n = w.decodeUnknownSync(w.Struct({
2069
2072
  id: w.NonEmptyString,
2070
2073
  receiptId: w.NonEmptyString,
2071
2074
  workflowName: w.NonEmptyString,
2072
2075
  tenantId: w.NullOr(w.String),
2073
2076
  requestedAt: w.DateFromSelf,
2074
- cause: En
2077
+ cause: Dn
2075
2078
  }))({
2076
2079
  id: t.requestId,
2077
2080
  receiptId: t.receiptId,
@@ -2081,30 +2084,30 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2081
2084
  cause: t.cause ?? null
2082
2085
  });
2083
2086
  if (!Number.isFinite(n.requestedAt.getTime())) throw Error("Queued cancellation request requires a valid timestamp");
2084
- let r = await kn(e, n.id);
2087
+ let r = await An(e, n.id);
2085
2088
  if (r !== void 0) {
2086
2089
  if (r.receiptId !== n.receiptId || r.workflowName !== n.workflowName || r.tenantId !== n.tenantId) throw Error("Queued cancellation identity belongs to a different start or owner");
2087
- return await jn(e, r, t.now), r;
2090
+ return await Mn(e, r, t.now), r;
2088
2091
  }
2089
- let i = await sn(e, t), a;
2092
+ let i = await cn(e, t), a;
2090
2093
  if (i.kind === "submitted") a = {
2091
2094
  kind: "submission",
2092
2095
  submissionId: i.submissionId
2093
2096
  };
2094
2097
  else {
2095
- let n = await At(e, t.receiptId);
2098
+ let n = await jt(e, t.receiptId);
2096
2099
  if (n === void 0) throw Error("Cancelled start receipt disappeared during request acceptance");
2097
2100
  a = {
2098
2101
  kind: "terminal",
2099
2102
  receipt: n
2100
2103
  };
2101
2104
  }
2102
- let o = On({
2105
+ let o = kn({
2103
2106
  ...n,
2104
2107
  target: a,
2105
2108
  controlBinding: null
2106
2109
  });
2107
- if (await e.insert(Tn.tableName, o), a.kind === "submission") {
2110
+ if (await e.insert(En.tableName, o), a.kind === "submission") {
2108
2111
  let n = await V(e, a.submissionId);
2109
2112
  if (n === void 0) throw Error("Queued cancellation submission disappeared during acceptance");
2110
2113
  if (n.preparedExecutionId !== null && n.dispatchAttempts > 0) {
@@ -2128,14 +2131,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2128
2131
  workflowName: n.tag,
2129
2132
  executionId: n.executionId,
2130
2133
  generation: n.runnerGeneration
2131
- }, a = await Fn(e, o.id, i);
2132
- return await jn(e, a.request, t.now), a.request;
2134
+ }, a = await In(e, o.id, i);
2135
+ return await Mn(e, a.request, t.now), a.request;
2133
2136
  }
2134
2137
  }
2135
2138
  }
2136
2139
  return o;
2137
- }, Fn = async (e, t, n) => {
2138
- let r = await kn(e, t);
2140
+ }, In = async (e, t, n) => {
2141
+ let r = await An(e, t);
2139
2142
  if (r === void 0) throw Error("Queued cancellation request is missing");
2140
2143
  if (r.target.kind === "terminal") return {
2141
2144
  kind: "terminal",
@@ -2144,7 +2147,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2144
2147
  if (r.controlBinding !== null) return {
2145
2148
  kind: "bound",
2146
2149
  request: r,
2147
- control: await An(e, r)
2150
+ control: await jn(e, r)
2148
2151
  };
2149
2152
  let i = await V(e, r.target.submissionId);
2150
2153
  if (i === void 0 || i.workflowName !== r.workflowName || i.tenantId !== r.tenantId || !i.receiptsBound || i.failureId !== null || i.dispatchAttempts === 0 || i.preparedExecutionId !== n.executionId || i.executionId !== null && i.executionId !== n.executionId || i.runId !== null && i.runId !== n.runId || n.workflowName !== r.workflowName) throw Error("Queued cancellation has no dispatched submission for this resident execution");
@@ -2176,7 +2179,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2176
2179
  requestedAt: r.requestedAt.getTime(),
2177
2180
  cause: r.cause
2178
2181
  });
2179
- if (await e.update(Tn.tableName, r.id, { controlBinding: s }) === null) throw Error("Queued cancellation request disappeared during run binding");
2182
+ if (await e.update(En.tableName, r.id, { controlBinding: s }) === null) throw Error("Queued cancellation request disappeared during run binding");
2180
2183
  return {
2181
2184
  kind: "bound",
2182
2185
  request: {
@@ -2185,14 +2188,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2185
2188
  },
2186
2189
  control: c
2187
2190
  };
2188
- }, In = async (e, t) => {
2191
+ }, Ln = async (e, t) => {
2189
2192
  let n = /* @__PURE__ */ new Set();
2190
- for await (let r of mt(e, t.executionId, t.workflowName)) n.add(r.id);
2193
+ for await (let r of ht(e, t.executionId, t.workflowName)) n.add(r.id);
2191
2194
  if (n.size === 0) return !1;
2192
2195
  let r, i = !1;
2193
2196
  for (;;) {
2194
2197
  let a = await e.query({
2195
- table: Tn.tableName,
2198
+ table: En.tableName,
2196
2199
  predicate: D(O("workflowName", t.workflowName), ...r === void 0 ? [] : [A("id", r)]),
2197
2200
  lock: "update",
2198
2201
  order: [{
@@ -2204,9 +2207,9 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2204
2207
  projection: void 0
2205
2208
  });
2206
2209
  for (let o of a) {
2207
- let a = On(o);
2210
+ let a = kn(o);
2208
2211
  if (r = a.id, a.target.kind !== "submission" || !n.has(a.target.submissionId)) continue;
2209
- let s = await Fn(e, a.id, t);
2212
+ let s = await In(e, a.id, t);
2210
2213
  if (s.kind === "bound") {
2211
2214
  if (s.control.runId !== t.runId || s.control.executionId !== t.executionId || s.control.workflowName !== t.workflowName) throw Error("Queued cancellation entry does not match its original resident execution");
2212
2215
  s.control.result === null && (i = !0);
@@ -2214,22 +2217,22 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2214
2217
  }
2215
2218
  if (a.length < 100) return i;
2216
2219
  }
2217
- }, Ln = w.Struct({
2220
+ }, Rn = w.Struct({
2218
2221
  requestId: w.NonEmptyString,
2219
2222
  receiptId: w.NonEmptyString,
2220
2223
  workflowName: w.NonEmptyString,
2221
2224
  tenantId: w.NullOr(w.String)
2222
- }), Rn = async (e, t) => {
2223
- let n = w.decodeUnknownSync(Ln)(t);
2224
- return await Pn(e, {
2225
+ }), zn = async (e, t) => {
2226
+ let n = w.decodeUnknownSync(Rn)(t);
2227
+ return await Fn(e, {
2225
2228
  ...n,
2226
2229
  now: t.now,
2227
2230
  ...t.cause === void 0 ? {} : { cause: t.cause }
2228
- }), zn(e, n);
2229
- }, zn = async (e, t) => {
2230
- let n = w.decodeUnknownSync(Ln)(t);
2231
- return Nn(n, await Mn(e, n));
2231
+ }), Bn(e, n);
2232
2232
  }, Bn = async (e, t) => {
2233
+ let n = w.decodeUnknownSync(Rn)(t);
2234
+ return Pn(n, await Nn(e, n));
2235
+ }, Vn = async (e, t) => {
2233
2236
  if (new Set(t.intentIds).size !== t.intentIds.length) throw Error("Admitted transfer requires distinct pending identities");
2234
2237
  let n = await V(e, t.id);
2235
2238
  if (n !== void 0) {
@@ -2250,14 +2253,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2250
2253
  let i = q(r[0]);
2251
2254
  if (i.workflowName !== t.workflowName || i.tenantId !== t.tenantId || i.deadLetteredAt !== void 0) throw Error("Admitted transfer selected a foreign or dead-lettered input");
2252
2255
  }
2253
- let r = await yt(e, t);
2254
- await Nt(e, r.id);
2256
+ let r = await bt(e, t);
2257
+ await Pt(e, r.id);
2255
2258
  for (let t of r.intentIds) if (!await e.delete("_voltro_workflow_pending", t)) throw Error("Admitted input disappeared during submission transfer");
2256
2259
  return {
2257
2260
  ...r,
2258
2261
  receiptsBound: !0
2259
2262
  };
2260
- }, Vn = async (e, t) => Re(e, (e) => Hn(e, t)), Hn = async (e, t) => {
2263
+ }, Hn = async (e, t) => ze(e, (e) => Un(e, t)), Un = async (e, t) => {
2261
2264
  if (t.id.length === 0 || t.intentIds.length === 0 || new Set(t.intentIds).size !== t.intentIds.length) throw Error("Queue transfer requires a submission identity and distinct pending identities");
2262
2265
  let n = await V(e, t.id);
2263
2266
  if (n !== void 0) {
@@ -2288,7 +2291,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2288
2291
  }
2289
2292
  let i = t.prepare(r);
2290
2293
  if (i.control.workflowName !== t.workflowName) throw Error("Prepared submission belongs to a different workflow");
2291
- let a = await vt(e, {
2294
+ let a = await yt(e, {
2292
2295
  ...i,
2293
2296
  id: t.id,
2294
2297
  tenantId: t.tenantId,
@@ -2296,7 +2299,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2296
2299
  now: t.now
2297
2300
  });
2298
2301
  if (a.kind !== "reserved") return a;
2299
- await Nt(e, t.id);
2302
+ await Pt(e, t.id);
2300
2303
  for (let t of r) if (!await e.delete("_voltro_workflow_pending", t.id)) throw Error("Pending start disappeared during queue transfer");
2301
2304
  return {
2302
2305
  ...a,
@@ -2305,8 +2308,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2305
2308
  receiptsBound: !0
2306
2309
  }
2307
2310
  };
2308
- }, Un = async (e) => {
2309
- let { store: t, control: n, now: r } = e, i = He(n, e.payload), a = await an({
2311
+ }, Wn = async (e) => {
2312
+ let { store: t, control: n, now: r } = e, i = Ue(n, e.payload), a = await on({
2310
2313
  store: t,
2311
2314
  control: n,
2312
2315
  keys: i,
@@ -2351,7 +2354,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2351
2354
  };
2352
2355
  if (a.kind === "defer") return {
2353
2356
  kind: "queued",
2354
- intentId: await Wt({
2357
+ intentId: await Gt({
2355
2358
  store: t,
2356
2359
  control: n,
2357
2360
  decision: a,
@@ -2367,7 +2370,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2367
2370
  };
2368
2371
  let o = e.payload, s = [], c = 1;
2369
2372
  if (n.batch !== void 0 && i.batchKey !== void 0) {
2370
- let r = await Wn(t, n.workflowName, i.batchKey, n.batch.maxSize);
2373
+ let r = await Gn(t, n.workflowName, i.batchKey, n.batch.maxSize);
2371
2374
  o = { items: [...r.map((e) => e.payload), e.payload] }, s = r.map((e) => e.id), c = r.length + 1;
2372
2375
  }
2373
2376
  return {
@@ -2395,7 +2398,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2395
2398
  runId: a.evict.runId
2396
2399
  } }
2397
2400
  };
2398
- }, Wn = async (e, t, n, r) => (await e.query({
2401
+ }, Gn = async (e, t, n, r) => (await e.query({
2399
2402
  table: "_voltro_workflow_pending",
2400
2403
  predicate: D(O("workflowName", t), O("controlKey", n), O("mode", "batch")),
2401
2404
  order: [{
@@ -2408,22 +2411,22 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2408
2411
  })).map((n) => ({
2409
2412
  id: String(n.id),
2410
2413
  payload: G(e, t, n.payload)
2411
- })), Gn = async (e, t, n, r) => {
2414
+ })), Kn = async (e, t, n, r) => {
2412
2415
  await e.update("_voltro_workflow_admissions", t, {
2413
2416
  executionId: n,
2414
2417
  runId: r
2415
2418
  });
2416
- }, Kn = F("_voltro_workflow_watermarks", {
2419
+ }, qn = F("_voltro_workflow_watermarks", {
2417
2420
  id: j({ prefix: "wfwm" }),
2418
2421
  positionAt: L(),
2419
2422
  updatedAt: L().default("now")
2420
- }), qn = (e) => {
2423
+ }), Jn = (e) => {
2421
2424
  let t = e instanceof Error ? e.message : String(e);
2422
2425
  return t.length > 400 ? `${t.slice(0, 400)}…` : t;
2423
- }, Jn = (e) => {
2426
+ }, Yn = (e) => {
2424
2427
  let t = [], n = [], r = [], i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set(), o = e.payloadSchema === void 0 ? (e) => C.right(e) : (t) => {
2425
2428
  let n = w.decodeUnknownEither(e.payloadSchema)(t);
2426
- return C.isRight(n) ? C.right(n.right) : C.left(qn(n.left));
2429
+ return C.isRight(n) ? C.right(n.right) : C.left(Jn(n.left));
2427
2430
  }, s = e.runs.map((e) => ({
2428
2431
  run: e,
2429
2432
  decoded: o(e.payload)
@@ -2440,7 +2443,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2440
2443
  workflowName: e.workflowName,
2441
2444
  event: o.event,
2442
2445
  subject: l.id,
2443
- detail: qn(u.left)
2446
+ detail: Jn(u.left)
2444
2447
  });
2445
2448
  continue;
2446
2449
  }
@@ -2460,7 +2463,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2460
2463
  workflowName: e.workflowName,
2461
2464
  event: o.event,
2462
2465
  subject: n,
2463
- detail: qn(t)
2466
+ detail: Jn(t)
2464
2467
  }), !1;
2465
2468
  }
2466
2469
  };
@@ -2483,33 +2486,33 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2483
2486
  discards: n,
2484
2487
  problems: r
2485
2488
  };
2486
- }, Yn = (e) => {
2489
+ }, Xn = (e) => {
2487
2490
  let t;
2488
2491
  for (let n of e) (t === void 0 || n.occurredAt.getTime() > t.getTime()) && (t = n.occurredAt);
2489
2492
  return t;
2490
- }, Xn = "_voltro_workflow_watermarks", Zn = "_voltro_workflow_events", Qn = "cancelOn", $n = 36e5, er = 500, tr = (e) => {
2493
+ }, Zn = "_voltro_workflow_watermarks", Qn = "_voltro_workflow_events", $n = "cancelOn", er = 36e5, tr = 500, nr = (e) => {
2491
2494
  if (e instanceof Date) return e;
2492
2495
  if (typeof e == "number") return new Date(e);
2493
2496
  if (typeof e == "string") {
2494
2497
  let t = new Date(e);
2495
2498
  if (!Number.isNaN(t.getTime())) return t;
2496
2499
  }
2497
- }, nr = (e) => e instanceof Error ? e.message : String(e), rr = async (e, t) => tr((await e.query({
2498
- table: Xn,
2500
+ }, rr = (e) => e instanceof Error ? e.message : String(e), ir = async (e, t) => nr((await e.query({
2501
+ table: Zn,
2499
2502
  predicate: O("id", t),
2500
2503
  order: [],
2501
2504
  take: 1,
2502
2505
  skip: void 0,
2503
2506
  projection: void 0
2504
- }))[0]?.positionAt), ir = async (e, t, n) => {
2505
- await e.upsert(Xn, {
2507
+ }))[0]?.positionAt), ar = async (e, t, n) => {
2508
+ await e.upsert(Zn, {
2506
2509
  id: t,
2507
2510
  positionAt: n,
2508
2511
  updatedAt: /* @__PURE__ */ new Date()
2509
2512
  }, {
2510
2513
  conflictColumns: ["id"],
2511
2514
  update: (e) => {
2512
- let t = tr(e.positionAt);
2515
+ let t = nr(e.positionAt);
2513
2516
  return t !== void 0 && t.getTime() >= n.getTime() ? {
2514
2517
  positionAt: t,
2515
2518
  updatedAt: /* @__PURE__ */ new Date()
@@ -2519,7 +2522,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2519
2522
  };
2520
2523
  }
2521
2524
  });
2522
- }, ar = async (e, t, n) => {
2525
+ }, or = async (e, t, n) => {
2523
2526
  let r = async (r) => e.query({
2524
2527
  table: "_voltro_workflow_runs",
2525
2528
  predicate: D(O("tag", t), O("status", r)),
@@ -2532,7 +2535,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2532
2535
  projection: void 0
2533
2536
  });
2534
2537
  return [...await r("running"), ...await r("suspended")].flatMap((e) => {
2535
- let t = e, n = tr(t.startedAt);
2538
+ let t = e, n = nr(t.startedAt);
2536
2539
  return typeof t.id != "string" || typeof t.executionId != "string" || n === void 0 ? [] : [{
2537
2540
  runId: t.id,
2538
2541
  executionId: t.executionId,
@@ -2540,7 +2543,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2540
2543
  startedAt: n
2541
2544
  }];
2542
2545
  });
2543
- }, or = async (e, t, n) => (await e.query({
2546
+ }, sr = async (e, t, n) => (await e.query({
2544
2547
  table: "_voltro_workflow_pending",
2545
2548
  predicate: O("workflowName", t),
2546
2549
  order: [{
@@ -2551,13 +2554,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2551
2554
  skip: void 0,
2552
2555
  projection: void 0
2553
2556
  })).flatMap((e) => {
2554
- let t = e, n = tr(t.firstSeenAt);
2557
+ let t = e, n = nr(t.firstSeenAt);
2555
2558
  return typeof t.id != "string" || n === void 0 ? [] : [{
2556
2559
  intentId: t.id,
2557
2560
  payload: t.payload,
2558
2561
  firstSeenAt: n
2559
2562
  }];
2560
- }), sr = async (e, t) => {
2563
+ }), cr = async (e, t) => {
2561
2564
  let n = t.workflows.filter((e) => e.entries.length > 0);
2562
2565
  if (n.length === 0) return {
2563
2566
  examined: !1,
@@ -2572,10 +2575,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2572
2575
  };
2573
2576
  let r = e.now?.() ?? Date.now(), i = t.batch ?? 500, a = t.coldLookbackMs ?? 36e5, o = /* @__PURE__ */ new Set();
2574
2577
  for (let e of n) for (let t of e.entries) o.add(t.event);
2575
- let s = await rr(e.store, Qn), c = s ?? new Date(r - a);
2576
- s === void 0 && (await ir(e.store, Qn, c), s = c);
2578
+ let s = await ir(e.store, $n), c = s ?? new Date(r - a);
2579
+ s === void 0 && (await ar(e.store, $n, c), s = c);
2577
2580
  let l = await e.store.query({
2578
- table: Zn,
2581
+ table: Qn,
2579
2582
  predicate: de("occurredAt", c),
2580
2583
  order: [{
2581
2584
  column: "occurredAt",
@@ -2586,7 +2589,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2586
2589
  projection: void 0
2587
2590
  }), u = [];
2588
2591
  for (let e of l) {
2589
- let t = e, n = tr(t.occurredAt);
2592
+ let t = e, n = nr(t.occurredAt);
2590
2593
  typeof t.id == "string" && typeof t.name == "string" && n !== void 0 && o.has(t.name) && u.push({
2591
2594
  id: t.id,
2592
2595
  name: t.name,
@@ -2600,15 +2603,15 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2600
2603
  if (n.length === 0) continue;
2601
2604
  let r = [], i = [];
2602
2605
  try {
2603
- r = await ar(e.store, t.workflowName, _), i = await or(e.store, t.workflowName, _), (r.length >= _ || i.length >= _) && (h = !0);
2606
+ r = await or(e.store, t.workflowName, _), i = await sr(e.store, t.workflowName, _), (r.length >= _ || i.length >= _) && (h = !0);
2604
2607
  } catch (e) {
2605
2608
  f.push({
2606
2609
  subject: t.workflowName,
2607
- detail: nr(e)
2610
+ detail: rr(e)
2608
2611
  }), g = !0;
2609
2612
  continue;
2610
2613
  }
2611
- let a = Jn({
2614
+ let a = Yn({
2612
2615
  workflowName: t.workflowName,
2613
2616
  entries: t.entries,
2614
2617
  payloadSchema: t.payloadSchema,
@@ -2630,7 +2633,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2630
2633
  } catch (e) {
2631
2634
  f.push({
2632
2635
  subject: n.runId,
2633
- detail: nr(e)
2636
+ detail: rr(e)
2634
2637
  }), g = !0;
2635
2638
  }
2636
2639
  for (let n of a.discards) try {
@@ -2641,18 +2644,18 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2641
2644
  } catch (e) {
2642
2645
  f.push({
2643
2646
  subject: n.intentId,
2644
- detail: nr(e)
2647
+ detail: rr(e)
2645
2648
  }), g = !0;
2646
2649
  }
2647
2650
  }
2648
- let v = Yn(u), ee = s;
2651
+ let v = Xn(u), ee = s;
2649
2652
  if (g) e.log?.warn("workflow.cancelOn: holding the watermark — evaluation or delivery remains incomplete", { failures: f.length });
2650
2653
  else if (v !== void 0) try {
2651
- await ir(e.store, Qn, v), ee = v;
2654
+ await ar(e.store, $n, v), ee = v;
2652
2655
  } catch (e) {
2653
2656
  f.push({
2654
- subject: Qn,
2655
- detail: nr(e)
2657
+ subject: $n,
2658
+ detail: rr(e)
2656
2659
  });
2657
2660
  }
2658
2661
  return d.length > 0 && e.log?.warn("workflow.cancelOn: some events could not be evaluated", {
@@ -2669,14 +2672,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2669
2672
  failures: f,
2670
2673
  watermark: ee
2671
2674
  };
2672
- }, cr = 18e5, lr = 200, ur = 20, dr = (e) => {
2675
+ }, lr = 18e5, ur = 200, dr = 20, fr = (e) => {
2673
2676
  if (e instanceof Date) return e;
2674
2677
  if (typeof e == "number") return new Date(e);
2675
2678
  if (typeof e == "string") {
2676
2679
  let t = new Date(e);
2677
2680
  if (!Number.isNaN(t.getTime())) return t;
2678
2681
  }
2679
- }, fr = (e) => e instanceof Error ? e.message : String(e), pr = async (e, t, n) => (await e.query({
2682
+ }, pr = (e) => e instanceof Error ? e.message : String(e), mr = async (e, t, n) => (await e.query({
2680
2683
  table: "_voltro_workflow_run_events",
2681
2684
  predicate: O("runId", t),
2682
2685
  order: [{
@@ -2687,13 +2690,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2687
2690
  skip: void 0,
2688
2691
  projection: void 0
2689
2692
  })).flatMap((e) => {
2690
- let t = e, n = dr(t.occurredAt);
2693
+ let t = e, n = fr(t.occurredAt);
2691
2694
  return typeof t.eventType != "string" || n === void 0 ? [] : [{
2692
2695
  eventType: t.eventType,
2693
2696
  occurredAt: n,
2694
2697
  payload: t.payload
2695
2698
  }];
2696
- }), mr = async (e, t) => {
2699
+ }), hr = async (e, t) => {
2697
2700
  let n = (await e.query({
2698
2701
  table: "_voltro_workflow_run_steps",
2699
2702
  predicate: O("runId", t),
@@ -2706,24 +2709,24 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2706
2709
  projection: void 0
2707
2710
  }))[0];
2708
2711
  if (n === void 0) return;
2709
- let r = dr(n.startedAt), i = dr(n.completedAt);
2712
+ let r = fr(n.startedAt), i = fr(n.completedAt);
2710
2713
  return r === void 0 ? i : i === void 0 ? r : i.getTime() > r.getTime() ? i : r;
2711
- }, hr = (e, t) => {
2714
+ }, gr = (e, t) => {
2712
2715
  for (let n of e) {
2713
2716
  if (n.eventType === "timer-fired") return !1;
2714
2717
  if (n.eventType !== "timer-set") continue;
2715
- let e = dr(n.payload?.scheduledWakeAt);
2718
+ let e = fr(n.payload?.scheduledWakeAt);
2716
2719
  return e !== void 0 && e.getTime() > t;
2717
2720
  }
2718
2721
  return !1;
2719
- }, gr = (e, t) => {
2722
+ }, _r = (e, t) => {
2720
2723
  if (e !== "suspended") return "no-progress";
2721
2724
  for (let e of t) {
2722
2725
  if (e.eventType === "signal-received" || e.eventType === "signal-sent") return "suspended";
2723
2726
  if (e.eventType === "signal-awaited") return "awaiting-signal";
2724
2727
  }
2725
2728
  return "suspended";
2726
- }, _r = async (e, t = {}) => {
2729
+ }, vr = async (e, t = {}) => {
2727
2730
  let n = e.now?.() ?? Date.now(), r = t.stallAfterMs ?? 18e5, i = t.runPage ?? 200, a = t.eventLookback ?? 20, o = new Date(n - r), s = [], c = [], l = 0, u = 0, d, f;
2728
2731
  try {
2729
2732
  if (!Number.isSafeInteger(i) || i < 1) throw Error("Staleness run page must be a positive integer");
@@ -2745,7 +2748,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2745
2748
  });
2746
2749
  let r = n;
2747
2750
  for (let e of d) {
2748
- let t = dr(e.startedAt);
2751
+ let t = fr(e.startedAt);
2749
2752
  if (t === void 0 || !Number.isFinite(t.getTime()) || typeof e.id != "string" || e.id.length === 0) throw Error("Staleness candidate has no valid pagination identity");
2750
2753
  if (r !== void 0 && (t.getTime() < r.startedAt.getTime() || t.getTime() === r.startedAt.getTime() && e.id <= r.runId)) throw Error("Staleness candidate page did not advance");
2751
2754
  r = {
@@ -2763,24 +2766,24 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2763
2766
  sawFullRunPage: !1,
2764
2767
  failures: [{
2765
2768
  subject: "_voltro_workflow_runs",
2766
- detail: fr(e)
2769
+ detail: pr(e)
2767
2770
  }]
2768
2771
  };
2769
2772
  }
2770
2773
  for (let t of d) {
2771
- let i = t, o = dr(i.startedAt);
2774
+ let i = t, o = fr(i.startedAt);
2772
2775
  if (typeof i.id != "string" || typeof i.tag != "string" || typeof i.executionId != "string" || typeof i.status != "string" || o === void 0) continue;
2773
2776
  let d, f;
2774
2777
  try {
2775
- d = await pr(e.store, i.id, a), f = await mr(e.store, i.id);
2778
+ d = await mr(e.store, i.id, a), f = await hr(e.store, i.id);
2776
2779
  } catch (e) {
2777
2780
  s.push({
2778
2781
  subject: i.id,
2779
- detail: fr(e)
2782
+ detail: pr(e)
2780
2783
  });
2781
2784
  continue;
2782
2785
  }
2783
- if (hr(d, n)) {
2786
+ if (gr(d, n)) {
2784
2787
  u += 1;
2785
2788
  continue;
2786
2789
  }
@@ -2799,7 +2802,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2799
2802
  status: i.status,
2800
2803
  lastProgressAt: m,
2801
2804
  idleMs: h,
2802
- reason: gr(i.status, d)
2805
+ reason: _r(i.status, d)
2803
2806
  };
2804
2807
  c.push(g);
2805
2808
  let _ = {};
@@ -2808,7 +2811,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2808
2811
  } catch (e) {
2809
2812
  s.push({
2810
2813
  subject: `${g.runId}:describeRun`,
2811
- detail: fr(e)
2814
+ detail: pr(e)
2812
2815
  });
2813
2816
  }
2814
2817
  if (e.log?.warn("workflow.staleness: run has made no progress", {
@@ -2834,7 +2837,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2834
2837
  } catch (e) {
2835
2838
  s.push({
2836
2839
  subject: g.runId,
2837
- detail: fr(e)
2840
+ detail: pr(e)
2838
2841
  });
2839
2842
  }
2840
2843
  if (e.onStalled !== void 0) try {
@@ -2842,7 +2845,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2842
2845
  } catch (e) {
2843
2846
  s.push({
2844
2847
  subject: `${g.runId}:onStalled`,
2845
- detail: fr(e)
2848
+ detail: pr(e)
2846
2849
  });
2847
2850
  }
2848
2851
  }
@@ -2855,7 +2858,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2855
2858
  failures: s,
2856
2859
  ...f === void 0 ? {} : { nextRun: f }
2857
2860
  };
2858
- }, vr = async (e, t, n) => {
2861
+ }, yr = async (e, t, n) => {
2859
2862
  let r = await e.transaction((e) => V(e, t.id));
2860
2863
  if (r === void 0 || r.workflowName !== t.workflowName || r.tenantId !== t.tenantId || r.ledgerId !== t.ledgerId) throw Error("Submission dispatch lost its resident owner");
2861
2864
  if (!r.receiptsBound || r.failureId !== null) throw Error("Cannot dispatch an incomplete or rejected submission");
@@ -2864,26 +2867,26 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2864
2867
  return r.preparedExecutionId;
2865
2868
  }
2866
2869
  if (r.dispatchAttempts !== 0 || r.executionId !== null) throw Error("Submission has an unbound prior dispatch; reconciliation required");
2867
- let i = await e.resolveExecutionId(t.workflowName, n), a = await e.transaction((e) => St(e, t.id, i));
2870
+ let i = await e.resolveExecutionId(t.workflowName, n), a = await e.transaction((e) => Ct(e, t.id, i));
2868
2871
  if (a.preparedExecutionId === null) throw Error("Submission preparation returned no execution identity");
2869
2872
  return a.preparedExecutionId;
2870
- }, yr = /* @__PURE__ */ new WeakMap(), br = async (e, t, n, r) => {
2871
- let i = yr.get(e), a = await gt(e.store, n, i?.afterId), o = 0, s = 0, c = 0, l = 0, u = i?.nextDueAt, d = (e) => {
2873
+ }, br = /* @__PURE__ */ new WeakMap(), xr = async (e, t, n, r) => {
2874
+ let i = br.get(e), a = await _t(e.store, n, i?.afterId), o = 0, s = 0, c = 0, l = 0, u = i?.nextDueAt, d = (e) => {
2872
2875
  u = Math.min(u ?? e, e);
2873
2876
  };
2874
2877
  for (let n of a) {
2875
2878
  let i;
2876
2879
  try {
2877
- i = pt(n);
2880
+ i = mt(n);
2878
2881
  } catch {
2879
- o++, c++, d(t + en(1)), e.log?.warn?.("workflow submission metadata is invalid", { submissionId: typeof n.id == "string" ? n.id : null });
2882
+ o++, c++, d(t + tn(1)), e.log?.warn?.("workflow submission metadata is invalid", { submissionId: typeof n.id == "string" ? n.id : null });
2880
2883
  continue;
2881
2884
  }
2882
2885
  o++;
2883
2886
  let a = i.dispatchAttempts === 0 ? 0 : void 0;
2884
2887
  try {
2885
2888
  let n = i.preparedExecutionId, r = n === null || i.dispatchAttempts === 0 ? void 0 : await e.transaction(async (e) => {
2886
- let t = await ut(e, i.workflowName, n);
2889
+ let t = await dt(e, i.workflowName, n);
2887
2890
  return t === void 0 ? void 0 : {
2888
2891
  executionId: n,
2889
2892
  runId: t.runId
@@ -2902,7 +2905,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2902
2905
  continue;
2903
2906
  }
2904
2907
  let c = r ?? await (async () => {
2905
- let n = e.controls.get(i.workflowName)?.batch === void 0 ? G(e.store, i.workflowName, i.payload) : { items: w.decodeUnknownSync(w.Struct({ items: w.Array(w.Unknown) }))(i.payload).items.map((t) => G(e.store, i.workflowName, t)) }, r = await vr(e, i, n), o = await e.transaction((e) => wt(e, i.id, t));
2908
+ let n = e.controls.get(i.workflowName)?.batch === void 0 ? G(e.store, i.workflowName, i.payload) : { items: w.decodeUnknownSync(w.Struct({ items: w.Array(w.Unknown) }))(i.payload).items.map((t) => G(e.store, i.workflowName, t)) }, r = await yr(e, i, n), o = await e.transaction((e) => Tt(e, i.id, t));
2906
2909
  if (o === null) return;
2907
2910
  a = o.dispatchAttempts === 1 ? 1 : void 0;
2908
2911
  let s = await e.startAdmitted(i.workflowName, n, i.callerContext, r);
@@ -2918,7 +2921,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2918
2921
  source: "flow-control",
2919
2922
  mode: "singleton"
2920
2923
  }
2921
- }), await qt(e.store, i.eviction.executionId, t)), await e.transaction((e) => xt(e, i.id, {
2924
+ }), await Jt(e.store, i.eviction.executionId, t)), await e.transaction((e) => St(e, i.id, {
2922
2925
  executionId: c.executionId,
2923
2926
  runId: c.runId ?? null
2924
2927
  })), s++;
@@ -2927,7 +2930,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2927
2930
  let o;
2928
2931
  try {
2929
2932
  if (a !== void 0 && e.isPermanentStartError?.(n) === !0) {
2930
- let r = a, o = await e.transaction((a) => Tt(a, i.id, r, {
2933
+ let r = a, o = await e.transaction((a) => Et(a, i.id, r, {
2931
2934
  handler: e.controls.get(i.workflowName)?.onFailure ?? null,
2932
2935
  errorMessage: String(n),
2933
2936
  now: t
@@ -2941,7 +2944,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2941
2944
  continue;
2942
2945
  }
2943
2946
  }
2944
- o = await e.transaction((e) => Ct(e, i.id, String(n), t, r));
2947
+ o = await e.transaction((e) => wt(e, i.id, String(n), t, r));
2945
2948
  } catch (r) {
2946
2949
  d(t), e.log?.warn?.("workflow submission retry state could not be recorded", {
2947
2950
  workflow: i.workflowName,
@@ -2961,7 +2964,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2961
2964
  }
2962
2965
  }
2963
2966
  let f = a.at(-1);
2964
- return a.length === n && f !== void 0 && typeof f.id == "string" ? (yr.set(e, {
2967
+ return a.length === n && f !== void 0 && typeof f.id == "string" ? (br.set(e, {
2965
2968
  afterId: f.id,
2966
2969
  nextDueAt: u
2967
2970
  }), {
@@ -2971,7 +2974,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2971
2974
  rejected: l,
2972
2975
  nextDueAt: t,
2973
2976
  examined: !0
2974
- }) : (yr.delete(e), {
2977
+ }) : (br.delete(e), {
2975
2978
  scanned: o,
2976
2979
  admitted: s,
2977
2980
  failed: c,
@@ -2979,9 +2982,9 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2979
2982
  nextDueAt: u,
2980
2983
  examined: a.length > 0
2981
2984
  });
2982
- }, xr = /* @__PURE__ */ new WeakMap(), Sr = async (e, t, n) => {
2983
- let r = xr.get(e), i = await e.store.query({
2984
- table: Xe,
2985
+ }, Sr = /* @__PURE__ */ new WeakMap(), Cr = async (e, t, n) => {
2986
+ let r = Sr.get(e), i = await e.store.query({
2987
+ table: Ze,
2985
2988
  predicate: D(pe("handler"), N("acceptedExecutionId"), ...r === void 0 ? [] : [A("id", r.afterId)]),
2986
2989
  order: [{
2987
2990
  column: "id",
@@ -2991,21 +2994,21 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
2991
2994
  skip: void 0,
2992
2995
  projection: void 0
2993
2996
  }), a = 0, o = !1, s = r?.nextDueAt, c = () => {
2994
- let e = t + en(1, () => 1);
2997
+ let e = t + tn(1, () => 1);
2995
2998
  s = Math.min(s ?? e, e);
2996
2999
  };
2997
3000
  for (let n of i) try {
2998
3001
  if (typeof n.id != "string" || n.id.length === 0) throw Error("Failure report has no identity");
2999
3002
  let r = n.id;
3000
- (await e.transaction((e) => ct(e, r, t))).kind === "queued" && (o = !0, c());
3003
+ (await e.transaction((e) => lt(e, r, t))).kind === "queued" && (o = !0, c());
3001
3004
  } catch (t) {
3002
3005
  a++, c(), e.log?.warn?.("workflow failure delivery could not be reconciled", {
3003
3006
  failureId: typeof n.id == "string" ? n.id : null,
3004
- ...t instanceof st ? { reason: t.reason } : {}
3007
+ ...t instanceof ct ? { reason: t.reason } : {}
3005
3008
  });
3006
3009
  }
3007
3010
  let l = i.at(-1);
3008
- return i.length === n && l !== void 0 && typeof l.id == "string" ? (xr.set(e, {
3011
+ return i.length === n && l !== void 0 && typeof l.id == "string" ? (Sr.set(e, {
3009
3012
  afterId: l.id,
3010
3013
  nextDueAt: s
3011
3014
  }), {
@@ -3014,16 +3017,16 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3014
3017
  hasPending: o,
3015
3018
  nextDueAt: t,
3016
3019
  examined: !0
3017
- }) : (xr.delete(e), {
3020
+ }) : (Sr.delete(e), {
3018
3021
  scanned: i.length,
3019
3022
  failed: a,
3020
3023
  hasPending: o,
3021
3024
  nextDueAt: s,
3022
3025
  examined: i.length > 0
3023
3026
  });
3024
- }, Cr = "_voltro_workflow_parent_closures", wr = /* @__PURE__ */ new WeakMap(), Tr = async (e, t, n) => {
3025
- let r = wr.get(e), i = await e.store.query({
3026
- table: Cr,
3027
+ }, wr = "_voltro_workflow_parent_closures", Tr = /* @__PURE__ */ new WeakMap(), Er = async (e, t, n) => {
3028
+ let r = Tr.get(e), i = await e.store.query({
3029
+ table: wr,
3027
3030
  predicate: D(N("completedAt"), ...r === void 0 ? [] : [A("id", r.afterId)]),
3028
3031
  order: [{
3029
3032
  column: "id",
@@ -3039,9 +3042,9 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3039
3042
  if (typeof n.id != "string" || n.id.length === 0) throw Error("Parent closure has no identity");
3040
3043
  let r = n.id;
3041
3044
  await e.transaction(async (e) => {
3042
- await fn(e, r, t);
3045
+ await pn(e, r, t);
3043
3046
  let [n] = await e.query({
3044
- table: Cr,
3047
+ table: wr,
3045
3048
  predicate: O("id", r),
3046
3049
  order: [],
3047
3050
  take: 1,
@@ -3055,7 +3058,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3055
3058
  a++, s(), e.log?.warn?.("workflow parent closure could not be reconciled", { closureId: typeof n.id == "string" ? n.id : null });
3056
3059
  }
3057
3060
  let c = i.at(-1);
3058
- return i.length === n && typeof c?.id == "string" ? (wr.set(e, {
3061
+ return i.length === n && typeof c?.id == "string" ? (Tr.set(e, {
3059
3062
  afterId: c.id,
3060
3063
  nextDueAt: o
3061
3064
  }), {
@@ -3063,13 +3066,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3063
3066
  failed: a,
3064
3067
  nextDueAt: t,
3065
3068
  examined: !0
3066
- }) : (wr.delete(e), {
3069
+ }) : (Tr.delete(e), {
3067
3070
  scanned: i.length,
3068
3071
  failed: a,
3069
3072
  nextDueAt: o,
3070
3073
  examined: i.length > 0
3071
3074
  });
3072
- }, Er = async (e, t) => {
3075
+ }, Dr = async (e, t) => {
3073
3076
  if (t.from === t.to) throw Error("Queue transfer requires distinct source and target");
3074
3077
  let n = await e.query({
3075
3078
  table: U,
@@ -3085,7 +3088,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3085
3088
  if (r.workflowName !== t.workflowName || r.tenantId !== t.tenantId) throw Error("Receipt target belongs to a different workflow or tenant");
3086
3089
  for (;;) {
3087
3090
  let n = await e.query({
3088
- table: Dt,
3091
+ table: Ot,
3089
3092
  predicate: D(O("pendingId", t.from), N("submissionId"), N("terminal")),
3090
3093
  order: [{
3091
3094
  column: "id",
@@ -3097,12 +3100,12 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3097
3100
  });
3098
3101
  if (n.length === 0) return;
3099
3102
  for (let r of n) {
3100
- let n = kt(r);
3103
+ let n = At(r);
3101
3104
  if (n.workflowName !== t.workflowName || n.tenantId !== t.tenantId) throw Error("Forwarded receipt belongs to a different workflow or tenant");
3102
3105
  if (await e.update("_voltro_workflow_start_receipts", n.id, { pendingId: t.to }) === null) throw Error("Start receipt disappeared during queue transfer");
3103
3106
  }
3104
3107
  }
3105
- }, Dr = {
3108
+ }, Or = {
3106
3109
  scanned: 0,
3107
3110
  admitted: 0,
3108
3111
  deferred: 0,
@@ -3114,24 +3117,24 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3114
3117
  deadLettered: 0,
3115
3118
  timedOut: 0,
3116
3119
  examined: !1
3117
- }, Or = 200, kr = class extends Error {
3120
+ }, kr = 200, Ar = class extends Error {
3118
3121
  submissionId;
3119
3122
  rejected;
3120
3123
  constructor(e, t, n = !1) {
3121
3124
  super(n ? `Submission ${e} rejected; failure report retained` : `Submission ${e} remains unacknowledged`, { cause: t }), this.submissionId = e, this.rejected = n;
3122
3125
  }
3123
- }, Ar = async (e, t = {}) => {
3126
+ }, jr = async (e, t = {}) => {
3124
3127
  let n = e.now ?? (() => Date.now()), r = e.log, i = t.batchSize ?? 200, a, o, s, c, l, u;
3125
3128
  try {
3126
- c = await br(e, n(), i, e.deadLetterAfterAttempts ?? 50), l = await Sr(e, n(), i), u = await Tr(e, n(), i), a = await (e.readPauses?.() ?? zt(e.store));
3129
+ c = await xr(e, n(), i, e.deadLetterAfterAttempts ?? 50), l = await Cr(e, n(), i), u = await Er(e, n(), i), a = await (e.readPauses?.() ?? Bt(e.store));
3127
3130
  let r = t.skipPending === !0 && !l.hasPending ? {
3128
3131
  due: [],
3129
3132
  nextDueAt: void 0
3130
- } : await Yt(e.store, n(), i);
3133
+ } : await Xt(e.store, n(), i);
3131
3134
  o = r.due, s = c.nextDueAt === void 0 ? r.nextDueAt : Math.min(r.nextDueAt ?? c.nextDueAt, c.nextDueAt), l.nextDueAt !== void 0 && (s = Math.min(s ?? l.nextDueAt, l.nextDueAt)), u.nextDueAt !== void 0 && (s = Math.min(s ?? u.nextDueAt, u.nextDueAt));
3132
3135
  } catch (e) {
3133
3136
  return r?.warn?.("workflow flow control: could not read the admission queue", { cause: String(e) }), {
3134
- ...Dr,
3137
+ ...Or,
3135
3138
  scanned: (c?.scanned ?? 0) + (l?.scanned ?? 0) + (u?.scanned ?? 0),
3136
3139
  admitted: c?.admitted ?? 0,
3137
3140
  deadLettered: c?.rejected ?? 0,
@@ -3164,9 +3167,9 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3164
3167
  if (m !== !1 && t.attempts + 1 >= m) return `pending ${r} was dead-lettered after ${t.attempts + 1} failed attempts: ${String(n)}`;
3165
3168
  };
3166
3169
  for (let t of p) try {
3167
- await Pr(e, t, a, d, n());
3170
+ await Fr(e, t, a, d, n());
3168
3171
  } catch (i) {
3169
- if (d.failed++, i instanceof kr) {
3172
+ if (d.failed++, i instanceof Ar) {
3170
3173
  i.rejected && d.deadLettered++, r?.warn?.(i.message, {
3171
3174
  submissionId: i.submissionId,
3172
3175
  cause: String(i.cause)
@@ -3176,7 +3179,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3176
3179
  let a = h(t, i, "intent");
3177
3180
  if (a !== void 0) {
3178
3181
  let o = n(), s = String(i);
3179
- if (await Mr(e, [t], a, s, o, !1).catch((e) => (r?.warn?.("workflow flow control: intent could not be dead-lettered with its report", {
3182
+ if (await Nr(e, [t], a, s, o, !1).catch((e) => (r?.warn?.("workflow flow control: intent could not be dead-lettered with its report", {
3180
3183
  workflow: t.workflowName,
3181
3184
  intent: t.id,
3182
3185
  cause: String(e)
@@ -3193,12 +3196,12 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3193
3196
  workflow: t.workflowName,
3194
3197
  intent: t.id,
3195
3198
  cause: String(i)
3196
- }), await tn(e.store, t, String(i), n()).catch(() => {});
3199
+ }), await nn(e.store, t, String(i), n()).catch(() => {});
3197
3200
  }
3198
3201
  for (let t of f.values()) try {
3199
- await Ir(e, t, a, d, n());
3202
+ await Lr(e, t, a, d, n());
3200
3203
  } catch (i) {
3201
- if (d.failed++, i instanceof kr) {
3204
+ if (d.failed++, i instanceof Ar) {
3202
3205
  i.rejected && d.deadLettered++, r?.warn?.(i.message, {
3203
3206
  submissionId: i.submissionId,
3204
3207
  cause: String(i.cause)
@@ -3208,7 +3211,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3208
3211
  let a = t[0], o = a === void 0 ? void 0 : h(a, i, "batch");
3209
3212
  if (a !== void 0 && o !== void 0) {
3210
3213
  let s = n(), c = String(i);
3211
- if (await Mr(e, t, o, c, s, !0).catch((e) => (r?.warn?.("workflow flow control: batch could not be dead-lettered with its report", {
3214
+ if (await Nr(e, t, o, c, s, !0).catch((e) => (r?.warn?.("workflow flow control: batch could not be dead-lettered with its report", {
3212
3215
  workflow: a.workflowName,
3213
3216
  intents: t.map((e) => e.id),
3214
3217
  size: t.length,
@@ -3246,7 +3249,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3246
3249
  if (i.workflowName !== r.workflowName || i.tenantId !== r.tenantId || i.mode !== r.mode || i.firstSeenAt !== r.firstSeenAt || i.dueAt !== r.dueAt || i.deadLetteredAt !== void 0) return;
3247
3250
  n.push(i);
3248
3251
  }
3249
- let r = new Date(s + en(Math.max(...n.map((e) => e.attempts + 1)), () => c));
3252
+ let r = new Date(s + tn(Math.max(...n.map((e) => e.attempts + 1)), () => c));
3250
3253
  for (let t of n) if (await e.update("_voltro_workflow_pending", t.id, {
3251
3254
  attempts: t.attempts + 1,
3252
3255
  lastError: String(i).slice(0, 500),
@@ -3259,13 +3262,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3259
3262
  cause: String(e)
3260
3263
  }));
3261
3264
  }
3262
- let g = await Br(e, n()).catch(() => ({ cancelled: 0 }));
3265
+ let g = await Vr(e, n()).catch(() => ({ cancelled: 0 }));
3263
3266
  return d.timedOut = g.cancelled, g.nextDeadlineAt !== void 0 && (s === void 0 || g.nextDeadlineAt < s) && (s = g.nextDeadlineAt), {
3264
3267
  ...d,
3265
3268
  examined: t.skipPending !== !0 || c.examined || l.examined || u.examined,
3266
3269
  ...s === void 0 ? {} : { nextDueAt: s }
3267
3270
  };
3268
- }, jr = async (e, t, n) => {
3271
+ }, Mr = async (e, t, n) => {
3269
3272
  let r = t.map((e) => ({
3270
3273
  intent: e,
3271
3274
  failureId: `wff_${R()}`
@@ -3287,7 +3290,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3287
3290
  if (o.workflowName !== i.workflowName || o.tenantId !== i.tenantId) throw Error("Abandoned queue selection belongs to another workflow or tenant");
3288
3291
  if (o.dueAt > n || o.deadLetteredAt !== void 0) continue;
3289
3292
  let s = `workflow '${o.workflowName}' no longer has its queued declaration`;
3290
- if (await Qe(e, {
3293
+ if (await $e(e, {
3291
3294
  id: a,
3292
3295
  sourceKind: "intent",
3293
3296
  sourceId: o.id,
@@ -3319,7 +3322,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3319
3322
  }
3320
3323
  return t;
3321
3324
  });
3322
- }, Mr = async (e, t, n, r, i, a) => {
3325
+ }, Nr = async (e, t, n, r, i, a) => {
3323
3326
  let o = `wff_${R()}`;
3324
3327
  return e.transaction(async (s) => {
3325
3328
  let c = [];
@@ -3341,10 +3344,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3341
3344
  }
3342
3345
  let l = c[0];
3343
3346
  if (l === void 0) return 0;
3344
- let u = await Promise.all(c.map((e) => tt(s, e.id)));
3347
+ let u = await Promise.all(c.map((e) => nt(s, e.id)));
3345
3348
  if (u.some(Boolean) && !u.every(Boolean)) throw Error("Dead-lettered batch mixes failure delivery and ordinary callers; reconciliation required");
3346
3349
  let d = e.controls.get(l.workflowName);
3347
- await Qe(s, {
3350
+ await $e(s, {
3348
3351
  id: o,
3349
3352
  sourceKind: "intent",
3350
3353
  sourceId: l.id,
@@ -3372,10 +3375,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3372
3375
  at: i,
3373
3376
  failureId: o
3374
3377
  }
3375
- }), !await nn(s, e, r, i)) throw Error("Dead-lettered queue row disappeared before marking");
3378
+ }), !await rn(s, e, r, i)) throw Error("Dead-lettered queue row disappeared before marking");
3376
3379
  return await B(s, o, i), c.length;
3377
3380
  });
3378
- }, Nr = async (e, t, n, r, i) => {
3381
+ }, Pr = async (e, t, n, r, i) => {
3379
3382
  let a = `wff_${R()}`;
3380
3383
  return e.transaction(async (e) => {
3381
3384
  let o = [];
@@ -3397,11 +3400,11 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3397
3400
  }
3398
3401
  o.sort((e, t) => e.firstSeenAt - t.firstSeenAt || e.id.localeCompare(t.id));
3399
3402
  let s = o[0];
3400
- if (s === void 0 || !qe(n, s, r)) return 0;
3401
- let c = await Promise.all(o.map((t) => tt(e, t.id)));
3403
+ if (s === void 0 || !Je(n, s, r)) return 0;
3404
+ let c = await Promise.all(o.map((t) => nt(e, t.id)));
3402
3405
  if (c.some(Boolean) && !c.every(Boolean)) throw Error("Expired batch mixes failure delivery and ordinary callers; reconciliation required");
3403
3406
  let l = `timeouts.start (${n.timeouts?.startMs}ms) elapsed while ${o.length} queued input(s) waited`;
3404
- await Qe(e, {
3407
+ await $e(e, {
3405
3408
  id: a,
3406
3409
  sourceKind: "intent",
3407
3410
  sourceId: s.id,
@@ -3422,7 +3425,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3422
3425
  }), await Y({
3423
3426
  store: e,
3424
3427
  control: n,
3425
- keys: He(n, G(e, s.workflowName, s.payload)),
3428
+ keys: Ue(n, G(e, s.workflowName, s.payload)),
3426
3429
  outcome: "expired",
3427
3430
  mode: s.mode,
3428
3431
  reason: l,
@@ -3445,21 +3448,21 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3445
3448
  }), !await e.delete("_voltro_workflow_pending", t.id)) throw Error("Expired queue row disappeared before deletion");
3446
3449
  return await B(e, a, r), o.length;
3447
3450
  });
3448
- }, Pr = async (e, t, n, r, i) => {
3451
+ }, Fr = async (e, t, n, r, i) => {
3449
3452
  if (t = {
3450
3453
  ...t,
3451
3454
  payload: G(e.store, t.workflowName, t.payload)
3452
- }, t.mode === "delayed") return Fr(e, t, n, r, i);
3455
+ }, t.mode === "delayed") return Ir(e, t, n, r, i);
3453
3456
  let a = e.controls.get(t.workflowName);
3454
3457
  if (a === void 0) {
3455
- r.expired += await jr(e, [t], i);
3458
+ r.expired += await Mr(e, [t], i);
3456
3459
  return;
3457
3460
  }
3458
- if (qe(a, t, i)) {
3459
- r.expired += await Nr(e, [t], a, i, !1);
3461
+ if (Je(a, t, i)) {
3462
+ r.expired += await Pr(e, [t], a, i, !1);
3460
3463
  return;
3461
3464
  }
3462
- let o = He(a, t.payload), s = await an({
3465
+ let o = Ue(a, t.payload), s = await on({
3463
3466
  store: e.store,
3464
3467
  control: a,
3465
3468
  keys: o,
@@ -3467,7 +3470,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3467
3470
  now: i,
3468
3471
  reconsidering: !0
3469
3472
  });
3470
- await Lr(e, {
3473
+ await Rr(e, {
3471
3474
  control: a,
3472
3475
  intent: t,
3473
3476
  decision: s,
@@ -3477,9 +3480,9 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3477
3480
  paused: n,
3478
3481
  items: void 0
3479
3482
  });
3480
- }, Fr = async (e, t, n, r, i) => {
3483
+ }, Ir = async (e, t, n, r, i) => {
3481
3484
  if (e.registeredWorkflows !== void 0 && !e.registeredWorkflows.has(t.workflowName)) {
3482
- r.expired += await jr(e, [t], i);
3485
+ r.expired += await Mr(e, [t], i);
3483
3486
  return;
3484
3487
  }
3485
3488
  let a = e.controls.get(t.workflowName) ?? { workflowName: t.workflowName }, o = `wfsub_${R()}`, s = await e.transaction(async (e) => {
@@ -3496,7 +3499,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3496
3499
  let s = q(r[0]);
3497
3500
  if (s.workflowName !== t.workflowName || s.tenantId !== t.tenantId) throw Error("Delayed arrival belongs to a different workflow or tenant");
3498
3501
  if (s.mode !== "delayed" || s.deadLetteredAt !== void 0 || s.dueAt > i) return;
3499
- let c = await Un({
3502
+ let c = await Wn({
3500
3503
  store: e,
3501
3504
  control: a,
3502
3505
  payload: G(e, s.workflowName, s.payload),
@@ -3506,18 +3509,18 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3506
3509
  now: i,
3507
3510
  waiting: !1
3508
3511
  });
3509
- if (c.kind === "queued" && (await Er(e, {
3512
+ if (c.kind === "queued" && (await Dr(e, {
3510
3513
  from: s.id,
3511
3514
  to: c.intentId,
3512
3515
  workflowName: s.workflowName,
3513
3516
  tenantId: s.tenantId
3514
- }), !await Zt(e, s.id))) throw Error("Delayed arrival disappeared during queue transfer");
3517
+ }), !await Qt(e, s.id))) throw Error("Delayed arrival disappeared during queue transfer");
3515
3518
  if (c.kind === "start") {
3516
3519
  if (c.ledgerId === void 0) throw Error("Delayed arrival has no admission reservation");
3517
- let t = a.batch === void 0 ? Ft(e, s.workflowName, c.payload) : { items: w.decodeUnknownSync(w.Struct({ items: w.Array(w.Unknown) }))(c.payload).items.map((t) => Ft(e, s.workflowName, t)) };
3520
+ let t = a.batch === void 0 ? It(e, s.workflowName, c.payload) : { items: w.decodeUnknownSync(w.Struct({ items: w.Array(w.Unknown) }))(c.payload).items.map((t) => It(e, s.workflowName, t)) };
3518
3521
  return {
3519
3522
  kind: "submission",
3520
- submission: await Bn(e, {
3523
+ submission: await Vn(e, {
3521
3524
  id: o,
3522
3525
  workflowName: s.workflowName,
3523
3526
  tenantId: s.tenantId,
@@ -3538,7 +3541,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3538
3541
  ...c,
3539
3542
  at: i
3540
3543
  }
3541
- }), !await Zt(e, s.id))) throw Error("Delayed arrival disappeared while recording its outcome");
3544
+ }), !await Qt(e, s.id))) throw Error("Delayed arrival disappeared while recording its outcome");
3542
3545
  return c;
3543
3546
  });
3544
3547
  if (s !== void 0) {
@@ -3554,9 +3557,9 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3554
3557
  r.skipped++;
3555
3558
  return;
3556
3559
  }
3557
- await zr(e, s.submission, a, r, i, a.batch !== void 0, s.keys);
3560
+ await Br(e, s.submission, a, r, i, a.batch !== void 0, s.keys);
3558
3561
  }
3559
- }, Ir = async (e, t, n, r, i) => {
3562
+ }, Lr = async (e, t, n, r, i) => {
3560
3563
  t = t.map((t) => ({
3561
3564
  ...t,
3562
3565
  payload: G(e.store, t.workflowName, t.payload)
@@ -3565,19 +3568,19 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3565
3568
  if (a === void 0) return;
3566
3569
  let o = e.controls.get(a.workflowName);
3567
3570
  if (o === void 0 || o.batch === void 0) {
3568
- r.expired += await jr(e, t, i);
3571
+ r.expired += await Mr(e, t, i);
3569
3572
  return;
3570
3573
  }
3571
3574
  let s = [...t].sort((e, t) => e.firstSeenAt - t.firstSeenAt), c = s[0];
3572
- if (qe(o, c, i)) {
3573
- r.expired += await Nr(e, s, o, i, !0);
3575
+ if (Je(o, c, i)) {
3576
+ r.expired += await Pr(e, s, o, i, !0);
3574
3577
  return;
3575
3578
  }
3576
- let l = He(o, c.payload);
3577
- await Lr(e, {
3579
+ let l = Ue(o, c.payload);
3580
+ await Rr(e, {
3578
3581
  control: o,
3579
3582
  intent: c,
3580
- decision: await an({
3583
+ decision: await on({
3581
3584
  store: e.store,
3582
3585
  control: o,
3583
3586
  keys: l,
@@ -3591,10 +3594,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3591
3594
  paused: n,
3592
3595
  items: s
3593
3596
  });
3594
- }, Lr = async (e, t) => {
3597
+ }, Rr = async (e, t) => {
3595
3598
  let { control: n, intent: r, decision: i, keys: a, counters: o, now: s, items: c, paused: l } = t;
3596
3599
  if (i.kind === "defer") {
3597
- await Wt({
3600
+ await Gt({
3598
3601
  store: e.store,
3599
3602
  control: n,
3600
3603
  decision: i,
@@ -3626,11 +3629,11 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3626
3629
  t.push(o);
3627
3630
  }
3628
3631
  t.sort((e, t) => e.firstSeenAt - t.firstSeenAt);
3629
- let i = t[0], a = He(n, G(e, n.workflowName, i.payload)), o = await an({
3632
+ let i = t[0], a = Ue(n, G(e, n.workflowName, i.payload)), o = await on({
3630
3633
  store: e,
3631
3634
  control: n,
3632
3635
  keys: a,
3633
- paused: l.has(n.workflowName) || (await zt(e)).has(n.workflowName),
3636
+ paused: l.has(n.workflowName) || (await Bt(e)).has(n.workflowName),
3634
3637
  now: s,
3635
3638
  reconsidering: !0
3636
3639
  });
@@ -3664,13 +3667,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3664
3667
  workflowName: n.workflowName,
3665
3668
  tenantId: n.tenantId,
3666
3669
  terminal: u
3667
- }), !await Zt(e, n.id)) throw Error("Queued input disappeared while recording its terminal outcome");
3670
+ }), !await Qt(e, n.id)) throw Error("Queued input disappeared while recording its terminal outcome");
3668
3671
  return u.kind;
3669
3672
  });
3670
3673
  t !== void 0 && o[t]++;
3671
3674
  return;
3672
3675
  }
3673
- let u = `wfsub_${R()}`, d = await e.transaction((t) => Hn(t, {
3676
+ let u = `wfsub_${R()}`, d = await e.transaction((t) => Un(t, {
3674
3677
  id: u,
3675
3678
  workflowName: n.workflowName,
3676
3679
  tenantId: r.tenantId,
@@ -3695,16 +3698,16 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3695
3698
  o.deferred++;
3696
3699
  return;
3697
3700
  }
3698
- await zr(e, d.submission, n, o, s, c !== void 0, a);
3701
+ await Br(e, d.submission, n, o, s, c !== void 0, a);
3699
3702
  }
3700
- }, Rr = async (e, t, n, r, i) => {
3703
+ }, zr = async (e, t, n, r, i) => {
3701
3704
  let a = await e.transaction((e) => V(e, t.id));
3702
3705
  if (a === void 0 || !a.receiptsBound || a.workflowName !== n.workflowName || a.workflowName !== t.workflowName || a.tenantId !== t.tenantId || a.ledgerId !== t.ledgerId) throw Error("Admission acceptance callback no longer has its resident submission owner");
3703
3706
  if (a.executionId !== null) {
3704
3707
  if (a.failureId !== null || a.executionId.length === 0 || a.executionId !== a.preparedExecutionId) throw Error("Admission acceptance has contradictory resident execution evidence");
3705
3708
  return a.executionId;
3706
3709
  }
3707
- await zr(e, a, n, {
3710
+ await Br(e, a, n, {
3708
3711
  admitted: 0,
3709
3712
  deferred: 0,
3710
3713
  dropped: 0,
@@ -3715,14 +3718,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3715
3718
  let o = await e.transaction((e) => V(e, t.id));
3716
3719
  if (o?.executionId == null || o.executionId !== o.preparedExecutionId) throw Error("Admission submission has no confirmed engine acceptance");
3717
3720
  return o.executionId;
3718
- }, zr = async (e, t, n, r, i, a, o) => {
3721
+ }, Br = async (e, t, n, r, i, a, o) => {
3719
3722
  let s = t.dispatchAttempts === 0 ? 0 : void 0;
3720
3723
  try {
3721
3724
  if (e.acquireSubmissionCapacity !== void 0 && !await e.acquireSubmissionCapacity(t)) {
3722
3725
  r.deferred++;
3723
3726
  return;
3724
3727
  }
3725
- let c = a ? { items: w.decodeUnknownSync(w.Struct({ items: w.Array(w.Unknown) }))(t.payload).items.map((t) => G(e.store, n.workflowName, t)) } : G(e.store, n.workflowName, t.payload), l = await vr(e, t, c), u = await e.transaction((e) => wt(e, t.id, i));
3728
+ let c = a ? { items: w.decodeUnknownSync(w.Struct({ items: w.Array(w.Unknown) }))(t.payload).items.map((t) => G(e.store, n.workflowName, t)) } : G(e.store, n.workflowName, t.payload), l = await yr(e, t, c), u = await e.transaction((e) => Tt(e, t.id, i));
3726
3729
  if (u === null) return;
3727
3730
  s = u.dispatchAttempts === 1 ? 1 : void 0;
3728
3731
  let d = await e.startAdmitted(n.workflowName, c, t.callerContext, l);
@@ -3736,7 +3739,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3736
3739
  source: "flow-control",
3737
3740
  mode: "singleton"
3738
3741
  }
3739
- }), await qt(e.store, t.eviction.executionId, i), await Y({
3742
+ }), await Jt(e.store, t.eviction.executionId, i), await Y({
3740
3743
  store: e.store,
3741
3744
  control: n,
3742
3745
  keys: o,
@@ -3749,7 +3752,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3749
3752
  runId: t.eviction.runId || null,
3750
3753
  tenantId: t.tenantId,
3751
3754
  now: i
3752
- }), r.evicted++), await e.transaction((e) => xt(e, t.id, {
3755
+ }), r.evicted++), await e.transaction((e) => St(e, t.id, {
3753
3756
  executionId: d.executionId,
3754
3757
  runId: d.runId ?? null
3755
3758
  })), r.admitted++;
@@ -3758,14 +3761,14 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3758
3761
  try {
3759
3762
  if (s !== void 0 && e.isPermanentStartError?.(r) === !0) {
3760
3763
  let o = s;
3761
- a = await e.transaction((e) => Tt(e, t.id, o, {
3764
+ a = await e.transaction((e) => Et(e, t.id, o, {
3762
3765
  handler: n.onFailure ?? null,
3763
3766
  errorMessage: String(r),
3764
3767
  now: i
3765
3768
  })) !== void 0;
3766
3769
  }
3767
3770
  if (!a) {
3768
- let n = await e.transaction((n) => Ct(n, t.id, String(r), i, e.deadLetterAfterAttempts ?? 50));
3771
+ let n = await e.transaction((n) => wt(n, t.id, String(r), i, e.deadLetterAfterAttempts ?? 50));
3769
3772
  n.retry.stoppedAt !== null && e.log?.warn?.("workflow submission automatic retry stopped; engine acceptance unknown", {
3770
3773
  submissionId: t.id,
3771
3774
  workflow: t.workflowName,
@@ -3773,18 +3776,18 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3773
3776
  });
3774
3777
  }
3775
3778
  } catch (e) {
3776
- throw new kr(t.id, AggregateError([r, e], "Submission and retry recording failed"));
3779
+ throw new Ar(t.id, AggregateError([r, e], "Submission and retry recording failed"));
3777
3780
  }
3778
- throw new kr(t.id, r, a);
3781
+ throw new Ar(t.id, r, a);
3779
3782
  }
3780
- }, Br = async (e, t) => {
3783
+ }, Vr = async (e, t) => {
3781
3784
  if (e.listRunningRuns === void 0) return { cancelled: 0 };
3782
3785
  let n = 0, r;
3783
3786
  for (let i of e.controls.values()) {
3784
3787
  if (i.timeouts?.finishMs === void 0) continue;
3785
3788
  let a = await e.listRunningRuns(i.workflowName);
3786
3789
  for (let o of a) {
3787
- if (!Je(i, {
3790
+ if (!Ye(i, {
3788
3791
  startedAt: o.startedAt,
3789
3792
  terminal: !1
3790
3793
  }, t)) {
@@ -3802,40 +3805,40 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3802
3805
  ...v,
3803
3806
  onFailure: i.onFailure ?? null
3804
3807
  }
3805
- }) && (await qt(e.store, o.executionId, t), n++);
3808
+ }) && (await Jt(e.store, o.executionId, t), n++);
3806
3809
  }
3807
3810
  }
3808
3811
  return {
3809
3812
  cancelled: n,
3810
3813
  ...r === void 0 ? {} : { nextDeadlineAt: r }
3811
3814
  };
3812
- }, Vr = 3e5, Hr, Ur = (e) => {
3813
- Hr = e !== void 0 && Number.isFinite(e) && e > 0 ? e : void 0;
3814
- }, Wr = () => {
3815
+ }, Hr = 3e5, Ur, Wr = (e) => {
3816
+ Ur = e !== void 0 && Number.isFinite(e) && e > 0 ? e : void 0;
3817
+ }, Gr = () => {
3815
3818
  let e = process.env.VOLTRO_WORKFLOW_SUSPEND_HINT_MS;
3816
3819
  if (e !== void 0) {
3817
3820
  let t = Number(e);
3818
3821
  if (Number.isFinite(t) && t > 0) return t;
3819
3822
  }
3820
- return Hr ?? 3e5;
3821
- }, Gr = /* @__PURE__ */ new Set(), Kr = () => {
3822
- Gr.clear();
3823
- }, qr = (e) => {
3824
- let t = Wr();
3823
+ return Ur ?? 3e5;
3824
+ }, Kr = /* @__PURE__ */ new Set(), qr = () => {
3825
+ Kr.clear();
3826
+ }, Jr = (e) => {
3827
+ let t = Gr();
3825
3828
  if (!(e.timeoutMs > t)) return !1;
3826
3829
  let n = `${e.workflowName ?? ""}\u0000${e.signalName}`;
3827
- if (Gr.has(n)) return !1;
3828
- Gr.add(n);
3830
+ if (Kr.has(n)) return !1;
3831
+ Kr.add(n);
3829
3832
  let r = e.workflowName === void 0 ? "" : ` in workflow '${e.workflowName}'`;
3830
3833
  return (e.warn ?? ((e) => console.warn(e)))(`awaitSignal('${e.signalName}')${r} declares a ${Math.round(e.timeoutMs / 1e3)}s timeout — a wait that long holds a worker fiber for its whole duration. For human-approval-length waits, awaitSignalSuspending (same call shape, from @voltro/workflow) SUSPENDS the run and frees the slot until the signal arrives. This is a hint, not a behaviour change; it is logged once per workflow. Threshold: workflows.suspendSignalHintMs in app.config.ts, or VOLTRO_WORKFLOW_SUSPEND_HINT_MS.`), !0;
3831
- }, Jr = async (e, t) => {
3834
+ }, Yr = async (e, t) => {
3832
3835
  if (e) try {
3833
3836
  await e.recordEvent(t);
3834
3837
  } catch {}
3835
- }, Yr = (e, n) => {
3838
+ }, Xr = (e, n) => {
3836
3839
  let i = S.gen(function* () {
3837
- let i = n.pollIntervalMs ?? 200, a = n.maxPollIntervalMs ?? 5e3, o = n.timeoutMs ?? 864e5, s = yield* S.serviceOption(xe), c;
3838
- qr({
3840
+ let i = n.pollIntervalMs ?? 200, a = n.maxPollIntervalMs ?? 5e3, o = n.timeoutMs ?? 864e5, s = yield* S.serviceOption(Se), c;
3841
+ Jr({
3839
3842
  workflowName: s._tag === "Some" ? s.value.workflow.name : void 0,
3840
3843
  signalName: n.name,
3841
3844
  timeoutMs: o,
@@ -3846,7 +3849,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3846
3849
  let l = yield* t, u = yield* S.serviceOption(r), d = u._tag === "Some" ? u.value : void 0;
3847
3850
  if (l === void 0) return yield* S.die(/* @__PURE__ */ Error("awaitSignal: no active workflow run id in scope"));
3848
3851
  let f = l;
3849
- yield* S.promise(() => Jr(d, {
3852
+ yield* S.promise(() => Yr(d, {
3850
3853
  runId: f,
3851
3854
  eventType: "signal-awaited",
3852
3855
  payload: { signalName: n.name }
@@ -3871,7 +3874,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3871
3874
  })).find((e) => e.payload?.signalName === n.name);
3872
3875
  if (i !== void 0) {
3873
3876
  let e = yield* w.decodeUnknown(n.schema)(i.payload?.value);
3874
- return yield* S.promise(() => Jr(d, {
3877
+ return yield* S.promise(() => Yr(d, {
3875
3878
  runId: f,
3876
3879
  eventType: "signal-received",
3877
3880
  payload: {
@@ -3888,16 +3891,16 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3888
3891
  success: n.schema,
3889
3892
  execute: i
3890
3893
  });
3891
- }, Xr = async (e, t) => {
3894
+ }, Zr = async (e, t) => {
3892
3895
  if (e !== void 0) try {
3893
3896
  await e.recordEvent(t);
3894
3897
  } catch {}
3895
- }, Zr = (e, n) => {
3898
+ }, Qr = (e, n) => {
3896
3899
  let i = S.gen(function* () {
3897
3900
  let i = n.pollIntervalMs ?? 200, a = n.maxPollIntervalMs ?? 5e3, o = n.timeoutMs ?? 864e5, s = n.take ?? 500, c = yield* t, l = yield* S.serviceOption(r), u = l._tag === "Some" ? l.value : void 0;
3898
3901
  if (c === void 0) return yield* S.die(/* @__PURE__ */ Error("awaitEvent: no active workflow run id in scope"));
3899
- let d = c, f = yield* n.since === "run-start" ? Qr(e, d) : S.succeed(/* @__PURE__ */ new Date());
3900
- yield* S.promise(() => Xr(u, {
3902
+ let d = c, f = yield* n.since === "run-start" ? $r(e, d) : S.succeed(/* @__PURE__ */ new Date());
3903
+ yield* S.promise(() => Zr(u, {
3901
3904
  runId: d,
3902
3905
  eventType: "event-awaited",
3903
3906
  payload: {
@@ -3927,7 +3930,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3927
3930
  h = i.length;
3928
3931
  for (let e of i) {
3929
3932
  let t = yield* w.decodeUnknown(n.schema)(e.payload);
3930
- if (n.match(t)) return yield* S.promise(() => Xr(u, {
3933
+ if (n.match(t)) return yield* S.promise(() => Zr(u, {
3931
3934
  runId: d,
3932
3935
  eventType: "event-received",
3933
3936
  payload: {
@@ -3944,7 +3947,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3944
3947
  success: n.schema,
3945
3948
  execute: i
3946
3949
  });
3947
- }, Qr = (e, t) => S.gen(function* () {
3950
+ }, $r = (e, t) => S.gen(function* () {
3948
3951
  let n = (yield* S.tryPromise({
3949
3952
  try: () => e.store.query({
3950
3953
  table: "_voltro_workflow_runs",
@@ -3962,10 +3965,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3962
3965
  if (!Number.isNaN(e.getTime())) return e;
3963
3966
  }
3964
3967
  return /* @__PURE__ */ new Date(0);
3965
- }), $r = (e) => new Promise((t) => setTimeout(t, e)), ei = () => {
3968
+ }), ei = (e) => new Promise((t) => setTimeout(t, e)), ti = () => {
3966
3969
  let e = globalThis.crypto;
3967
3970
  return typeof e?.randomUUID == "function" ? e.randomUUID() : `${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`;
3968
- }, ti = () => `wfu_${ei()}`, ni = async (e, t) => {
3971
+ }, ni = () => `wfu_${ti()}`, ri = async (e, t) => {
3969
3972
  let n = t.id ?? t.executionId;
3970
3973
  if (!n) throw Error("workflow message target requires target.id or target.executionId");
3971
3974
  let r = await e.query({
@@ -3987,7 +3990,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3987
3990
  }))[0];
3988
3991
  if (!i) throw Error(`workflow message target not found: ${n}`);
3989
3992
  return i;
3990
- }, ri = class extends Error {
3993
+ }, ii = class extends Error {
3991
3994
  runId;
3992
3995
  eventType;
3993
3996
  eventId;
@@ -3995,8 +3998,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
3995
3998
  constructor(e, t, n) {
3996
3999
  super(`workflow ${t} for run ${e} was NOT recorded (event ${n}): the run will not see it — the store refused the row, see the recorder's warning`), this.runId = e, this.eventType = t, this.eventId = n, this.name = "WorkflowMessageNotRecorded";
3997
4000
  }
3998
- }, ii = async (e) => {
3999
- let t = await ni(e.store, e.target), n = await e.recorder.recordEvent({
4001
+ }, ai = async (e) => {
4002
+ let t = await ri(e.store, e.target), n = await e.recorder.recordEvent({
4000
4003
  runId: t.id,
4001
4004
  eventType: "signal-sent",
4002
4005
  payload: {
@@ -4004,10 +4007,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4004
4007
  value: e.payload
4005
4008
  }
4006
4009
  });
4007
- if (n.recorded === !1) throw new ri(t.id, "signal-sent", n.id);
4010
+ if (n.recorded === !1) throw new ii(t.id, "signal-sent", n.id);
4008
4011
  return { eventId: n.id };
4009
- }, ai = async (e) => {
4010
- let t = await ni(e.store, e.target), n = ti(), r = await e.recorder.recordEvent({
4012
+ }, oi = async (e) => {
4013
+ let t = await ri(e.store, e.target), n = ni(), r = await e.recorder.recordEvent({
4011
4014
  runId: t.id,
4012
4015
  eventType: "update-requested",
4013
4016
  payload: {
@@ -4016,7 +4019,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4016
4019
  value: e.payload
4017
4020
  }
4018
4021
  });
4019
- if (r.recorded === !1) throw new ri(t.id, "update-requested", r.id);
4022
+ if (r.recorded === !1) throw new ii(t.id, "update-requested", r.id);
4020
4023
  let i = Date.now(), a = e.options?.timeoutMs ?? 3e4, o = e.options?.pollIntervalMs ?? 100;
4021
4024
  for (;;) {
4022
4025
  let s = {
@@ -4046,44 +4049,44 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4046
4049
  }), t;
4047
4050
  }
4048
4051
  if (Date.now() - i >= a) throw Error(`Timed out waiting for workflow update '${e.updateName}' (${n})`);
4049
- await $r(o);
4052
+ await ei(o);
4050
4053
  }
4051
- }, oi = 864e5, si = "voltro/suspending-signal", ci = (e, t) => `${si}/${e}/${t}`, li = (e) => te.make(e, { success: w.Unknown }), ui = async (e, t) => {
4054
+ }, si = 864e5, ci = "voltro/suspending-signal", li = (e, t) => `${ci}/${e}/${t}`, ui = (e) => te.make(e, { success: w.Unknown }), di = async (e, t) => {
4052
4055
  if (e) try {
4053
4056
  await e.recordEvent(t);
4054
4057
  } catch {}
4055
- }, di = (e, n) => S.gen(function* () {
4056
- let e = n.timeoutMs ?? oi, i = li(ci((yield* re.WorkflowInstance).workflow.name, n.name)), a = yield* t, o = yield* S.serviceOption(r), s = o._tag === "Some" ? o.value : void 0;
4057
- a !== void 0 && (yield* S.promise(() => ui(s, {
4058
- runId: a,
4058
+ }, fi = (e, n) => S.gen(function* () {
4059
+ let e = n.timeoutMs ?? si, i = yield* re.WorkflowInstance, a = ui(li(i.workflow.name, n.name)), o = yield* t, s = yield* S.serviceOption(r), c = s._tag === "Some" ? s.value : void 0;
4060
+ o !== void 0 && (yield* S.promise(() => di(c, {
4061
+ runId: o,
4059
4062
  eventType: "signal-awaited",
4060
4063
  payload: { signalName: n.name }
4061
4064
  })));
4062
- let c = te.await(i), l = Number.isFinite(e) ? yield* S.race(c, b.sleep({
4065
+ let l = te.await(a), u = Number.isFinite(e) ? yield* S.race(l, b.sleep({
4063
4066
  name: `await-signal-timeout/${n.name}`,
4064
4067
  duration: `${e} millis`
4065
- }).pipe(S.andThen(S.die(/* @__PURE__ */ Error(`awaitSignalSuspending('${n.name}') timed out after ${e}ms`))))) : yield* c, u = yield* w.decodeUnknown(n.schema)(l);
4066
- return a !== void 0 && (yield* S.promise(() => ui(s, {
4067
- runId: a,
4068
+ }).pipe(S.andThen(S.die(/* @__PURE__ */ Error(`awaitSignalSuspending('${n.name}') timed out after ${e}ms`))))).pipe(S.catchAllCause((e) => i.suspended ? x.isInterruptedOnly(e) ? ne.suspend(i) : S.failCause(x.filter(e, (e) => !x.isInterruptType(e))) : S.failCause(e))) : yield* l, d = yield* w.decodeUnknown(n.schema)(u);
4069
+ return o !== void 0 && (yield* S.promise(() => di(c, {
4070
+ runId: o,
4068
4071
  eventType: "signal-received",
4069
4072
  payload: {
4070
4073
  signalName: n.name,
4071
- value: u
4074
+ value: d
4072
4075
  }
4073
- }))), u;
4074
- }), fi = (e) => S.gen(function* () {
4076
+ }))), d;
4077
+ }), pi = (e) => S.gen(function* () {
4075
4078
  let t = e.target.executionId, n = e.target.workflowName;
4076
4079
  if (t === void 0 || n === void 0) {
4077
4080
  let r = e.store;
4078
4081
  if (r === void 0) return yield* S.die(/* @__PURE__ */ Error("completeSuspendingSignal: provide a store, or target.executionId AND target.workflowName"));
4079
4082
  let i = yield* S.tryPromise({
4080
- try: () => ni(r, e.target),
4083
+ try: () => ri(r, e.target),
4081
4084
  catch: (e) => e
4082
4085
  });
4083
4086
  t ??= i.executionId, n ??= i.tag;
4084
4087
  }
4085
4088
  if (t === void 0 || n === void 0) return { completed: !1 };
4086
- let r = ci(n, e.signalName), i = li(r), a = new te.TokenParsed({
4089
+ let r = li(n, e.signalName), i = ui(r), a = new te.TokenParsed({
4087
4090
  workflowName: n,
4088
4091
  executionId: t,
4089
4092
  deferredName: r
@@ -4092,11 +4095,11 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4092
4095
  token: a,
4093
4096
  exit: ie.succeed(e.payload)
4094
4097
  }), { completed: !0 };
4095
- }), Q = "_voltro_budget_holds", pi = "budget-hold", mi = (e) => `${pi}:${e}`, hi = (e) => `${e.executionId}/${e.stepName}/${e.budget}#${e.generation}`, gi = async (e, t) => (await e.query({
4098
+ }), Q = "_voltro_budget_holds", mi = "budget-hold", hi = (e) => `${mi}:${e}`, gi = (e) => `${e.executionId}/${e.stepName}/${e.budget}#${e.generation}`, _i = async (e, t) => (await e.query({
4096
4099
  table: Q,
4097
4100
  predicate: D(O("executionId", t.executionId), O("stepName", t.stepName), O("budget", t.budget)),
4098
4101
  order: []
4099
- })).length, _i = F(Q, {
4102
+ })).length, vi = F(Q, {
4100
4103
  id: j({ prefix: "bhd" }),
4101
4104
  holdKey: I().maxLength(191),
4102
4105
  budget: I(),
@@ -4110,33 +4113,33 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4110
4113
  heldAt: L().default("now"),
4111
4114
  releasedAt: L().nullable(),
4112
4115
  outcome: I().nullable()
4113
- }).index(["budget", "releasedAt"]), vi = () => {
4116
+ }).index(["budget", "releasedAt"]), yi = () => {
4114
4117
  ve({
4115
4118
  source: "framework",
4116
4119
  table: Q,
4117
4120
  timeColumn: "releasedAt",
4118
4121
  ttlMs: ye(process.env.VOLTRO_BUDGET_HOLDS_TTL_HOURS, 720)
4119
4122
  });
4120
- }, yi = class extends Error {
4123
+ }, bi = class extends Error {
4121
4124
  budget;
4122
4125
  holdKey;
4123
4126
  constructor(e, t, n) {
4124
4127
  super(`budget '${e}': the run was suspended waiting for headroom and gave up after ${n}ms (hold ${t}). Nothing was spent. Raise the budget, reset its window, or lift the hold, then re-drive the run.`), this.name = "BudgetHoldExpired", this.budget = e, this.holdKey = t;
4125
4128
  }
4126
- }, bi = 6048e5, xi = (e) => S.gen(function* () {
4127
- vi();
4129
+ }, xi = 6048e5, Si = (e) => S.gen(function* () {
4130
+ yi();
4128
4131
  let t = e.timeoutMs ?? 6048e5, n = e.recheckEveryMs ?? 9e5, r = {
4129
4132
  executionId: e.executionId,
4130
4133
  stepName: e.stepName,
4131
4134
  budget: e.budget
4132
4135
  };
4133
- for (;;) {
4134
- let i = yield* S.promise(() => Ci(e.store, r)), a = i.length, o = i.length === 0 ? Date.now() : Si(i[0]?.heldAt), s = Number.isFinite(t) ? t - (Date.now() - o) : Infinity, c = hi({
4136
+ for (let i = 0;; i++) {
4137
+ let a = yield* S.promise(() => wi(e.store, r)), o = a.length === 0 ? Date.now() : Ci(a[0]?.heldAt), s = Number.isFinite(t) ? t - (Date.now() - o) : Infinity, c = gi({
4135
4138
  ...r,
4136
- generation: a
4139
+ generation: i
4137
4140
  });
4138
- if (s <= 0) return yield* S.promise(() => wi(e.store, r, "expired")), yield* S.fail(new yi(e.budget, c, t));
4139
- let l = mi(c);
4141
+ if (s <= 0) return yield* S.promise(() => Ti(e.store, r, "expired")), yield* S.fail(new bi(e.budget, c, t));
4142
+ let l = hi(c);
4140
4143
  yield* S.promise(() => e.store.insertIgnore(Q, {
4141
4144
  id: k({
4142
4145
  kind: "typeid",
@@ -4156,7 +4159,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4156
4159
  outcome: null
4157
4160
  }, { conflictColumns: ["holdKey"] }));
4158
4161
  let u = Math.min(n, s);
4159
- if (yield* di({ store: e.store }, {
4162
+ if (yield* fi({ store: e.store }, {
4160
4163
  name: l,
4161
4164
  schema: w.Unknown,
4162
4165
  timeoutMs: u
@@ -4165,16 +4168,16 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4165
4168
  outcome: "recheck"
4166
4169
  }, { where: D(O("holdKey", c), N("releasedAt")) })), yield* e.hasHeadroom) return;
4167
4170
  }
4168
- }), Si = (e) => e instanceof Date ? e.getTime() : typeof e == "string" ? Date.parse(e) : Date.now(), Ci = async (e, t) => [...await e.query({
4171
+ }), Ci = (e) => e instanceof Date ? e.getTime() : typeof e == "string" ? Date.parse(e) : Date.now(), wi = async (e, t) => [...await e.query({
4169
4172
  table: Q,
4170
4173
  predicate: D(O("executionId", t.executionId), O("stepName", t.stepName), O("budget", t.budget)),
4171
4174
  order: []
4172
- })].sort((e, t) => String(e.id).localeCompare(String(t.id))), wi = async (e, t, n) => {
4175
+ })].sort((e, t) => String(e.id).localeCompare(String(t.id))), Ti = async (e, t, n) => {
4173
4176
  await e.updateMany(Q, {
4174
4177
  releasedAt: /* @__PURE__ */ new Date(),
4175
4178
  outcome: n
4176
4179
  }, { where: D(O("executionId", t.executionId), O("stepName", t.stepName), O("budget", t.budget), N("releasedAt")) });
4177
- }, Ti = (e) => S.gen(function* () {
4180
+ }, Ei = (e) => S.gen(function* () {
4178
4181
  let t = e.tenantId === void 0 ? D(O("budget", e.budget), N("releasedAt")) : D(O("budget", e.budget), O("tenantId", e.tenantId), N("releasedAt")), n = yield* S.promise(() => e.store.query({
4179
4182
  table: Q,
4180
4183
  predicate: t,
@@ -4183,7 +4186,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4183
4186
  for (let t of n) (yield* S.promise(() => e.store.updateMany("_voltro_budget_holds", {
4184
4187
  releasedAt: /* @__PURE__ */ new Date(),
4185
4188
  outcome: e.outcome ?? "released"
4186
- }, { where: D(O("id", String(t.id)), N("releasedAt")) }))) === 1 && (yield* fi({
4189
+ }, { where: D(O("id", String(t.id)), N("releasedAt")) }))) === 1 && (yield* pi({
4187
4190
  target: {
4188
4191
  executionId: String(t.executionId),
4189
4192
  workflowName: String(t.workflowName)
@@ -4195,7 +4198,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4195
4198
  }
4196
4199
  }).pipe(S.catchAll(() => S.succeed({ completed: !1 }))), r += 1);
4197
4200
  return { released: r };
4198
- }), Ei = async (e, t) => {
4201
+ }), Di = async (e, t) => {
4199
4202
  let n = t?.budget === void 0 ? N("releasedAt") : D(O("budget", t.budget), N("releasedAt"));
4200
4203
  return (await e.query({
4201
4204
  table: Q,
@@ -4211,8 +4214,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4211
4214
  stepName: String(e.stepName),
4212
4215
  heldAt: e.heldAt instanceof Date ? e.heldAt.toISOString() : String(e.heldAt ?? "")
4213
4216
  }));
4214
- }, Di = async (e) => {
4215
- let t = await Ei(e), n = /* @__PURE__ */ new Map();
4217
+ }, Oi = async (e) => {
4218
+ let t = await Di(e), n = /* @__PURE__ */ new Map();
4216
4219
  for (let e of t) {
4217
4220
  let t = `${e.budget}\u0000${e.tenantId ?? ""}`;
4218
4221
  n.has(t) || n.set(t, {
@@ -4221,17 +4224,17 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4221
4224
  });
4222
4225
  }
4223
4226
  return [...n.values()];
4224
- }, Oi = async (e, t) => {
4227
+ }, ki = async (e, t) => {
4225
4228
  if (e) try {
4226
4229
  await e.recordEvent(t);
4227
4230
  } catch {}
4228
- }, ki = (e) => {
4231
+ }, Ai = (e) => {
4229
4232
  let t = x.failureOption(e), n = Array.from(x.defects(e)), r = t._tag === "Some" ? t.value : n[0] ?? x.squash(e);
4230
4233
  return {
4231
4234
  errorTag: r && typeof r == "object" && "_tag" in r ? String(r._tag) : null,
4232
4235
  errorMessage: r?.message ?? String(r)
4233
4236
  };
4234
- }, Ai = (e, n) => {
4237
+ }, ji = (e, n) => {
4235
4238
  let i = S.gen(function* () {
4236
4239
  let i = n.pollIntervalMs ?? 200, a = n.maxPollIntervalMs ?? 5e3, o = n.timeoutMs ?? 3e4, s = yield* t, c = yield* S.serviceOption(r), l = c._tag === "Some" ? c.value : void 0;
4237
4240
  if (s === void 0) return yield* S.die(/* @__PURE__ */ Error("awaitUpdate: no active workflow run id in scope"));
@@ -4255,7 +4258,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4255
4258
  }), s = new Set(i.filter((e) => e.eventType === "update-completed" || e.eventType === "update-failed").map((e) => e.payload?.updateId).filter((e) => typeof e == "string" && e.length > 0)), c = i.find((e) => e.eventType === "update-requested" && e.payload?.updateName === n.name && typeof e.payload.updateId == "string" && !s.has(e.payload.updateId));
4256
4259
  if (c !== void 0) {
4257
4260
  let e = c.payload.updateId;
4258
- yield* S.promise(() => Oi(l, {
4261
+ yield* S.promise(() => ki(l, {
4259
4262
  runId: u,
4260
4263
  eventType: "update-received",
4261
4264
  payload: {
@@ -4263,24 +4266,24 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4263
4266
  updateName: n.name
4264
4267
  }
4265
4268
  }));
4266
- let t = yield* w.decodeUnknown(n.schema)(c.payload?.value).pipe(S.tapErrorCause((t) => S.promise(() => Oi(l, {
4269
+ let t = yield* w.decodeUnknown(n.schema)(c.payload?.value).pipe(S.tapErrorCause((t) => S.promise(() => ki(l, {
4267
4270
  runId: u,
4268
4271
  eventType: "update-failed",
4269
4272
  payload: {
4270
4273
  updateId: e,
4271
4274
  updateName: n.name,
4272
- ...ki(t)
4275
+ ...Ai(t)
4273
4276
  }
4274
- })))), r = yield* (n.handle ? n.handle(t) : S.succeed(t)).pipe(S.flatMap((e) => n.success ? w.decodeUnknown(n.success)(e) : S.succeed(e))).pipe(S.tapErrorCause((t) => S.promise(() => Oi(l, {
4277
+ })))), r = yield* (n.handle ? n.handle(t) : S.succeed(t)).pipe(S.flatMap((e) => n.success ? w.decodeUnknown(n.success)(e) : S.succeed(e))).pipe(S.tapErrorCause((t) => S.promise(() => ki(l, {
4275
4278
  runId: u,
4276
4279
  eventType: "update-failed",
4277
4280
  payload: {
4278
4281
  updateId: e,
4279
4282
  updateName: n.name,
4280
- ...ki(t)
4283
+ ...Ai(t)
4281
4284
  }
4282
4285
  }))));
4283
- return yield* S.promise(() => Oi(l, {
4286
+ return yield* S.promise(() => ki(l, {
4284
4287
  runId: u,
4285
4288
  eventType: "update-completed",
4286
4289
  payload: {
@@ -4298,7 +4301,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4298
4301
  success: n.success ?? n.schema,
4299
4302
  execute: i
4300
4303
  });
4301
- }, ji = (e) => {
4304
+ }, Mi = (e) => {
4302
4305
  if (e == null) return null;
4303
4306
  if (e instanceof Date) return e;
4304
4307
  if (typeof e == "string" || typeof e == "number") {
@@ -4306,7 +4309,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4306
4309
  return Number.isNaN(t.getTime()) ? null : t;
4307
4310
  }
4308
4311
  return null;
4309
- }, Mi = (e) => typeof e == "number" ? e : e == null ? null : Number(e), Ni = (e) => e == null ? null : String(e), Pi = (e) => {
4312
+ }, Ni = (e) => typeof e == "number" ? e : e == null ? null : Number(e), Pi = (e) => e == null ? null : String(e), Fi = (e) => {
4310
4313
  let t = /* @__PURE__ */ new Map();
4311
4314
  for (let n of e) {
4312
4315
  let e = String(n.stepName), r = t.get(e);
@@ -4314,27 +4317,27 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4314
4317
  }
4315
4318
  let n = [];
4316
4319
  for (let [e, r] of t) {
4317
- r.sort((e, t) => (Mi(e.attempt) ?? 0) - (Mi(t.attempt) ?? 0));
4318
- let t = r[r.length - 1], i = Ni(t.errorTag), a = Ni(t.errorMessage), o = i !== null || a !== null ? {
4320
+ r.sort((e, t) => (Ni(e.attempt) ?? 0) - (Ni(t.attempt) ?? 0));
4321
+ let t = r[r.length - 1], i = Pi(t.errorTag), a = Pi(t.errorMessage), o = i !== null || a !== null ? {
4319
4322
  tag: i,
4320
4323
  message: a ?? ""
4321
4324
  } : null;
4322
4325
  n.push({
4323
4326
  name: e,
4324
- attempt: Mi(t.attempt) ?? r.length,
4327
+ attempt: Ni(t.attempt) ?? r.length,
4325
4328
  attempts: r.length,
4326
4329
  status: t.status ?? "running",
4327
4330
  input: t.input ?? null,
4328
4331
  output: t.output ?? null,
4329
4332
  error: o,
4330
- durationMs: Mi(t.durationMs)
4333
+ durationMs: Ni(t.durationMs)
4331
4334
  });
4332
4335
  }
4333
4336
  return n.sort((t, n) => {
4334
4337
  let r = e.find((e) => String(e.stepName) === t.name), i = e.find((e) => String(e.stepName) === n.name);
4335
- return (ji(r?.startedAt)?.getTime() ?? 0) - (ji(i?.startedAt)?.getTime() ?? 0);
4338
+ return (Mi(r?.startedAt)?.getTime() ?? 0) - (Mi(i?.startedAt)?.getTime() ?? 0);
4336
4339
  }), n;
4337
- }, Fi = (e) => {
4340
+ }, Ii = (e) => {
4338
4341
  if (e == null) return null;
4339
4342
  if (typeof e == "string") try {
4340
4343
  return JSON.parse(e);
@@ -4342,27 +4345,27 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4342
4345
  return null;
4343
4346
  }
4344
4347
  return typeof e == "object" ? e : null;
4345
- }, Ii = async (e, t) => {
4346
- let n = ge(Ce), r = (await t.query(n.where(he(O("id", e), O("executionId", e))).limit(1).descriptor))[0];
4348
+ }, Li = async (e, t) => {
4349
+ let n = ge(we), r = (await t.query(n.where(he(O("id", e), O("executionId", e))).limit(1).descriptor))[0];
4347
4350
  if (r === void 0) return null;
4348
- let i = String(r.id), a = ge(we), o = await t.query(a.where(O("runId", i)).descriptor);
4351
+ let i = String(r.id), a = ge(Te), o = await t.query(a.where(O("runId", i)).descriptor);
4349
4352
  return {
4350
4353
  id: i,
4351
- executionId: Ni(r.executionId) ?? "",
4352
- name: Ni(r.tag) ?? "",
4354
+ executionId: Pi(r.executionId) ?? "",
4355
+ name: Pi(r.tag) ?? "",
4353
4356
  status: r.status ?? "running",
4354
4357
  input: r.payload ?? null,
4355
4358
  output: r.output ?? null,
4356
- subject: Fi(r.subject),
4357
- source: Ni(r.source),
4358
- steps: Pi(o),
4359
- startedAt: ji(r.startedAt) ?? /* @__PURE__ */ new Date(0),
4360
- finishedAt: ji(r.completedAt),
4361
- traceId: Ni(r.traceId),
4362
- parentExecutionId: Ni(r.parentExecutionId),
4363
- parentClosePolicy: Ni(r.parentClosePolicy)
4359
+ subject: Ii(r.subject),
4360
+ source: Pi(r.source),
4361
+ steps: Fi(o),
4362
+ startedAt: Mi(r.startedAt) ?? /* @__PURE__ */ new Date(0),
4363
+ finishedAt: Mi(r.completedAt),
4364
+ traceId: Pi(r.traceId),
4365
+ parentExecutionId: Pi(r.parentExecutionId),
4366
+ parentClosePolicy: Pi(r.parentClosePolicy)
4364
4367
  };
4365
- }, Li = () => {
4368
+ }, Ri = () => {
4366
4369
  let e = [], t = [], n = 0, i = 0;
4367
4370
  return {
4368
4371
  layer: se.succeed(r, {
@@ -4412,13 +4415,13 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4412
4415
  readSteps: () => e,
4413
4416
  readEvents: () => t
4414
4417
  };
4415
- }, Ri = (e, t, n) => S.gen(function* () {
4416
- let r = yield* xe;
4418
+ }, zi = (e, t, n) => S.gen(function* () {
4419
+ let r = yield* Se;
4417
4420
  for (;;) {
4418
4421
  if (yield* S.tryPromise(() => g(t, e)).pipe(S.catchAll(() => S.sync(() => (n(), !1))))) return r.interrupted = !0, yield* S.interrupt;
4419
4422
  yield* S.sleep(1e3);
4420
4423
  }
4421
- }), zi = 8192, Bi = 3, Vi = 2e3, Hi = () => {
4424
+ }), Bi = 8192, Vi = 3, Hi = 2e3, Ui = () => {
4422
4425
  let e = (e) => {
4423
4426
  if (e === void 0) return;
4424
4427
  let t = Number(e);
@@ -4428,7 +4431,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4428
4431
  ...t === void 0 ? {} : { maxRunReclaims: t },
4429
4432
  ...n === void 0 ? {} : { replayShapeLimit: n }
4430
4433
  };
4431
- }, Ui = (e) => {
4434
+ }, Wi = (e) => {
4432
4435
  let t = typeof e == "string" ? (() => {
4433
4436
  try {
4434
4437
  return JSON.parse(e);
@@ -4437,10 +4440,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4437
4440
  }
4438
4441
  })() : e;
4439
4442
  if (Array.isArray(t)) return t.filter((e) => typeof e == "string");
4440
- }, Wi = () => {
4443
+ }, Gi = () => {
4441
4444
  let e = globalThis.crypto;
4442
4445
  return typeof e?.randomUUID == "function" ? e.randomUUID() : `${Date.now().toString(36)}${Math.random().toString(36).slice(2)}`;
4443
- }, Gi = (e) => `${e}_${Wi()}`, Ki = (e, t = zi) => {
4446
+ }, Ki = (e) => `${e}_${Gi()}`, qi = (e, t = Bi) => {
4444
4447
  if (e == null) return e;
4445
4448
  try {
4446
4449
  let n = JSON.stringify(e);
@@ -4456,8 +4459,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4456
4459
  let t = {};
4457
4460
  for (let [n, r] of Object.entries(e)) t[n] = r instanceof Date ? r.toISOString() : r;
4458
4461
  return t;
4459
- }, qi = (e) => {
4460
- let t = e.truncateBytes ?? zi, n = e.makeId ?? Gi, r = (t, n) => e.log?.warn(t, n), i = e.encryptStepPayload ?? ((e) => e), a = e.emit, o = e.recording === "coarse";
4462
+ }, Ji = (e) => {
4463
+ let t = e.truncateBytes ?? Bi, n = e.makeId ?? Ki, r = (t, n) => e.log?.warn(t, n), i = e.encryptStepPayload ?? ((e) => e), a = e.emit, o = e.recording === "coarse";
4461
4464
  return {
4462
4465
  startStep: async ({ runId: s, stepName: c, attempt: l, stepInput: u, retryPolicy: d }) => {
4463
4466
  if (!o) try {
@@ -4467,7 +4470,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4467
4470
  stepName: c,
4468
4471
  attempt: l,
4469
4472
  status: "running",
4470
- input: u === void 0 ? null : i(Ki(u, t)),
4473
+ input: u === void 0 ? null : i(qi(u, t)),
4471
4474
  retryPolicy: d ?? null,
4472
4475
  output: null,
4473
4476
  errorTag: null,
@@ -4494,7 +4497,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4494
4497
  if (!o) try {
4495
4498
  let r = await e.store.update("_voltro_workflow_run_steps", n, {
4496
4499
  status: "succeeded",
4497
- output: i(Ki(s, t)),
4500
+ output: i(qi(s, t)),
4498
4501
  completedAt: /* @__PURE__ */ new Date(),
4499
4502
  durationMs: c
4500
4503
  });
@@ -4515,7 +4518,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4515
4518
  status: "failed",
4516
4519
  errorTag: s,
4517
4520
  errorMessage: c,
4518
- errorCause: l === void 0 ? null : i(Ki(l, t)),
4521
+ errorCause: l === void 0 ? null : i(qi(l, t)),
4519
4522
  completedAt: /* @__PURE__ */ new Date(),
4520
4523
  durationMs: u
4521
4524
  });
@@ -4563,7 +4566,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4563
4566
  };
4564
4567
  }
4565
4568
  };
4566
- }, Ji = (e, t, n) => S.gen(function* () {
4569
+ }, Yi = (e, t, n) => S.gen(function* () {
4567
4570
  let r = e.store.query;
4568
4571
  if (r === void 0) return;
4569
4572
  let i = e.replayShapeLimit ?? 2e3, a = yield* S.promise(() => r.call(e.store, {
@@ -4593,8 +4596,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4593
4596
  return typeof t == "string" ? [{ stepName: t }] : [];
4594
4597
  });
4595
4598
  return o.length === 0 ? void 0 : s(o);
4596
- }), Yi = (s, l) => {
4597
- let u = s.truncateBytes ?? zi, d = s.makeId ?? Gi, f = s.recorder ?? qi(s), p = (e, t) => s.log?.warn(e, t), m = s.emit, g = (e) => S.gen(function* () {
4599
+ }), Xi = (s, l) => {
4600
+ let u = s.truncateBytes ?? Bi, d = s.makeId ?? Ki, f = s.recorder ?? Ji(s), p = (e, t) => s.log?.warn(e, t), m = s.emit, g = (e) => S.gen(function* () {
4598
4601
  yield* S.sync(() => m?.("workflowEvents", {
4599
4602
  op: "insert",
4600
4603
  row: $(e)
@@ -4648,7 +4651,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4648
4651
  executionId: y,
4649
4652
  reason: n?.message ?? String(n)
4650
4653
  });
4651
- }))), D = `wfrg_${Wi()}`, le = yield* S.serviceOption(h), ue = d("wr"), O = yield* S.sync(() => s.encodePayload === void 0 ? ee : s.encodePayload(ee)), k = yield* S.promise(() => s.transaction((e) => yn(e, {
4654
+ }))), D = `wfrg_${Gi()}`, le = yield* S.serviceOption(h), ue = d("wr"), O = yield* S.sync(() => s.encodePayload === void 0 ? ee : s.encodePayload(ee)), k = yield* S.promise(() => s.transaction((e) => bn(e, {
4652
4655
  workflowName: s.name,
4653
4656
  executionId: y,
4654
4657
  generation: D,
@@ -4676,7 +4679,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4676
4679
  })));
4677
4680
  if (typeof k.row.id != "string") return yield* S.die(/* @__PURE__ */ Error("Recorded workflow entry has no run identity"));
4678
4681
  if (T = k.row.id, k.kind === "cancelled" || k.kind === "already-cancelled") {
4679
- let e = yield* xe;
4682
+ let e = yield* Se;
4680
4683
  return e.interrupted = !0, k.kind === "cancelled" && (yield* E("failed to observe suspended workflow cancellation", S.gen(function* () {
4681
4684
  if (m?.("workflowRuns", {
4682
4685
  op: "update",
@@ -4695,7 +4698,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4695
4698
  handler: null,
4696
4699
  callerContext: null,
4697
4700
  tenantId: null
4698
- }, n = yield* S.promise(() => s.transaction((n) => wn(n, {
4701
+ }, n = yield* S.promise(() => s.transaction((n) => Tn(n, {
4699
4702
  owner: {
4700
4703
  runId: T,
4701
4704
  workflowName: s.name,
@@ -4728,12 +4731,12 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4728
4731
  }
4729
4732
  let j = s.workflowPatches ?? [], fe;
4730
4733
  if (A?.id !== void 0) {
4731
- T = A.id, j = Ui(A.workflowPatches) ?? j;
4734
+ T = A.id, j = Wi(A.workflowPatches) ?? j;
4732
4735
  let e = k.row.reclaimCount;
4733
4736
  if (typeof e != "number" || !Number.isSafeInteger(e) || e < 0) return yield* S.die(/* @__PURE__ */ Error("Recorded workflow entry has an invalid reclaim counter"));
4734
4737
  let t = e > 0, n = s.maxRunReclaims ?? 3;
4735
4738
  if (t && e >= n) {
4736
- let t = `Workflow '${s.name}' run '${y}' killed its runner ${e} times in a row; parked instead of reclaimed again (maxRunReclaims=${n}).`, r = yield* S.promise(() => s.transaction((e) => Sn(e, {
4739
+ let t = `Workflow '${s.name}' run '${y}' killed its runner ${e} times in a row; parked instead of reclaimed again (maxRunReclaims=${n}).`, r = yield* S.promise(() => s.transaction((e) => Cn(e, {
4737
4740
  runId: T,
4738
4741
  workflowName: s.name,
4739
4742
  executionId: y,
@@ -4763,10 +4766,10 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4763
4766
  reclaimCount: e,
4764
4767
  maxRunReclaims: n
4765
4768
  }));
4766
- let i = yield* xe;
4769
+ let i = yield* Se;
4767
4770
  return yield* ne.suspend(i);
4768
4771
  }
4769
- fe = yield* Ji(s, T, p), yield* E("failed to record workflow re-entry", S.gen(function* () {
4772
+ fe = yield* Yi(s, T, p), yield* E("failed to record workflow re-entry", S.gen(function* () {
4770
4773
  m?.("workflowRuns", {
4771
4774
  op: "update",
4772
4775
  row: $(k.row)
@@ -4801,7 +4804,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4801
4804
  }));
4802
4805
  }
4803
4806
  }));
4804
- let M = s.subject?.tenantId, pe = S.suspend(() => l(ee, y, D)).pipe(S.locally(t, T), S.locally(i, y), S.locally(a, D), S.locally(n, typeof M == "string" ? M : void 0), S.locally(o, j), S.locally(c, fe), S.provideService(r, f)), N = s.pluginWorkflowStepLayer ? pe.pipe(S.provide(s.pluginWorkflowStepLayer)) : pe, P = yield* ne.intoResult(S.raceWith(N, Ri({
4807
+ let M = s.subject?.tenantId, pe = S.suspend(() => l(ee, y, D)).pipe(S.locally(t, T), S.locally(i, y), S.locally(a, D), S.locally(n, typeof M == "string" ? M : void 0), S.locally(o, j), S.locally(c, fe), S.provideService(r, f)), N = s.pluginWorkflowStepLayer ? pe.pipe(S.provide(s.pluginWorkflowStepLayer)) : pe, P = yield* ne.intoResult(S.raceWith(N, zi({
4805
4808
  runId: T,
4806
4809
  workflowName: s.name,
4807
4810
  executionId: y,
@@ -4814,7 +4817,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4814
4817
  onOtherDone: (e, t) => ae.interrupt(t).pipe(S.zipRight(e))
4815
4818
  }));
4816
4819
  if (ne.isResult(P) && P._tag === "Suspended") {
4817
- let e = P.cause, t = e !== void 0 && !x.isEmpty(e), n = t ? x.squash(e) : void 0, r = n && typeof n == "object" && "_tag" in n ? String(n._tag) : null, i = t ? n?.message ?? String(n) : null, a = yield* S.promise(() => s.transaction((e) => Sn(e, {
4820
+ let e = P.cause, t = e !== void 0 && !x.isEmpty(e), n = t ? x.squash(e) : void 0, r = n && typeof n == "object" && "_tag" in n ? String(n._tag) : null, i = t ? n?.message ?? String(n) : null, a = yield* S.promise(() => s.transaction((e) => Cn(e, {
4818
4821
  runId: T,
4819
4822
  workflowName: s.name,
4820
4823
  executionId: y,
@@ -4848,7 +4851,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4848
4851
  } : { reason: "workflow-suspend" }
4849
4852
  }));
4850
4853
  })));
4851
- let o = yield* xe;
4854
+ let o = yield* Se;
4852
4855
  return yield* ne.suspend(o);
4853
4856
  }
4854
4857
  let me = P;
@@ -4872,8 +4875,8 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4872
4875
  }
4873
4876
  if (ie.isFailure(me.exit)) {
4874
4877
  let e = me.exit.cause;
4875
- if ((yield* xe).interrupted && x.isInterruptedOnly(e)) {
4876
- let t = Date.now(), n = yield* S.promise(() => s.transaction((e) => wn(e, {
4878
+ if ((yield* Se).interrupted && x.isInterruptedOnly(e)) {
4879
+ let t = Date.now(), n = yield* S.promise(() => s.transaction((e) => Tn(e, {
4877
4880
  owner: {
4878
4881
  runId: T,
4879
4882
  workflowName: s.name,
@@ -4899,7 +4902,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4899
4902
  handler: null,
4900
4903
  callerContext: null,
4901
4904
  tenantId: null
4902
- }, c = yield* S.promise(() => s.transaction((e) => wn(e, {
4905
+ }, c = yield* S.promise(() => s.transaction((e) => Tn(e, {
4903
4906
  owner: {
4904
4907
  runId: T,
4905
4908
  workflowName: s.name,
@@ -4940,7 +4943,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4940
4943
  durationMs: Date.now() - b
4941
4944
  })), yield* S.failCause(e)) : yield* S.failCause(e);
4942
4945
  }
4943
- let he = me.exit.value, ge = Date.now(), _e = yield* S.promise(() => s.transaction((e) => wn(e, {
4946
+ let he = me.exit.value, ge = Date.now(), _e = yield* S.promise(() => s.transaction((e) => Tn(e, {
4944
4947
  owner: {
4945
4948
  runId: T,
4946
4949
  workflowName: s.name,
@@ -4951,7 +4954,7 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4951
4954
  durationMs: ge - b,
4952
4955
  outcome: {
4953
4956
  status: "succeeded",
4954
- output: Ki(he, u)
4957
+ output: qi(he, u)
4955
4958
  }
4956
4959
  })));
4957
4960
  return _e.kind === "committed" ? (T && (yield* E("failed to record workflow success", S.gen(function* () {
@@ -4968,4 +4971,4 @@ var gn = "_voltro_workflow_runs", _n = w.NullOr(w.Struct({
4968
4971
  });
4969
4972
  };
4970
4973
  //#endregion
4971
- export { Jn as $, ze as $t, Zr as A, on as At, cr as B, jt as Bt, di as C, an as Ct, ni as D, Lt as Dt, ti as E, Bt as Et, Wr as F, Vt as Ft, $n as G, St as Gt, lr as H, wt as Ht, Ur as I, rn as It, Xn as J, _t as Jt, er as K, V as Kt, Or as L, Nt as Lt, Vr as M, zt as Mt, qr as N, Y as Nt, ii as O, Yt as Ot, Kr as P, qt as Pt, Yn as Q, Qe as Qt, Rr as R, At as Rt, xi as S, Jt as St, ci as T, Gt as Tt, _r as U, Ct as Ut, ur as V, bt as Vt, Qn as W, ht as Wt, sr as X, ct as Xt, rr as Y, B as Yt, ir as Z, z as Zt, hi as _, Ee as _n, Xt as _t, Hi as a, Ve as an, Rn as at, Ei as b, Ce as bn, Qt as bt, Yi as c, De as cn, xn as ct, Ai as d, Ae as dn, pn as dt, Ye as en, Kn as et, Q as f, Oe as fn, fn as ft, gi as g, je as gn, U as gt, _i as h, Me as hn, Pt as ht, Ui as i, Ue as in, Vn as it, Yr as j, Ht as jt, ai as k, Wt as kt, Li as l, Pe as ln, wn as lt, bi as m, Ne as mn, It as mt, Vi as n, Je as nn, Gn as nt, $ as o, He as on, zn as ot, yi as p, Fe as pn, W as pt, Zn as q, Tt as qt, qi as r, qe as rn, Bn as rt, Ki as s, Re as sn, Tn as st, Bi as t, We as tn, Un as tt, Ii as u, ke as un, yn as ut, mi as v, Te as vn, nn as vt, fi as w, tn as wt, Ti as x, Se as xn, $t as xt, Di as y, we as yn, Zt as yt, Ar as z, Mt as zt };
4974
+ export { Yn as $, $e as $t, Qr as A, sn as At, lr as B, Mt as Bt, fi as C, on as Ct, ri as D, Rt as Dt, ni as E, Vt as Et, Gr as F, Ht as Ft, er as G, Ct as Gt, ur as H, Tt as Ht, Wr as I, an as It, Zn as J, vt as Jt, tr as K, V as Kt, kr as L, Pt as Lt, Hr as M, Bt as Mt, Jr as N, Y as Nt, ai as O, Xt as Ot, qr as P, Jt as Pt, Xn as Q, z as Qt, zr as R, jt as Rt, Si as S, Ce as Sn, Yt as St, li as T, Kt as Tt, vr as U, wt as Ut, dr as V, xt as Vt, $n as W, gt as Wt, cr as X, B as Xt, ir as Y, yt as Yt, ar as Z, lt as Zt, gi as _, Me as _n, Zt as _t, Ui as a, We as an, zn as at, Di as b, Te as bn, $t as bt, Xi as c, ze as cn, Sn as ct, ji as d, Ae as dn, mn as dt, Be as en, qn as et, Q as f, je as fn, pn as ft, _i as g, Ne as gn, U as gt, vi as h, Pe as hn, Ft as ht, Wi as i, Je as in, Hn as it, Xr as j, Ut as jt, oi as k, Gt as kt, Ri as l, Oe as ln, Tn as lt, xi as m, Ie as mn, Lt as mt, Hi as n, Ge as nn, Kn as nt, $ as o, He as on, Bn as ot, bi as p, ke as pn, W as pt, Qn as q, Et as qt, Ji as r, Ye as rn, Vn as rt, qi as s, Ue as sn, En as st, Vi as t, Xe as tn, Wn as tt, Li as u, Fe as un, bn as ut, hi as v, De as vn, rn as vt, pi as w, nn as wt, Ei as x, we as xn, en as xt, Oi as y, Ee as yn, Qt as yt, jr as z, Nt as zt };