@adonis-agora/durable 0.54.0 → 0.54.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/dist/assets/spa/assets/index-9kO8tWjg.js +16 -0
  3. package/dist/assets/spa/assets/index-9kO8tWjg.js.map +1 -0
  4. package/dist/assets/spa/index.html +1 -1
  5. package/dist/src/buffered-child-signals.d.ts +20 -4
  6. package/dist/src/buffered-child-signals.d.ts.map +1 -1
  7. package/dist/src/buffered-child-signals.js +207 -63
  8. package/dist/src/buffered-child-signals.js.map +1 -1
  9. package/dist/src/codec-state-store.d.ts +10 -1
  10. package/dist/src/codec-state-store.d.ts.map +1 -1
  11. package/dist/src/codec-state-store.js +32 -0
  12. package/dist/src/codec-state-store.js.map +1 -1
  13. package/dist/src/commands/worker.d.ts +2 -1
  14. package/dist/src/commands/worker.d.ts.map +1 -1
  15. package/dist/src/commands/worker.js +44 -3
  16. package/dist/src/commands/worker.js.map +1 -1
  17. package/dist/src/dashboard/index.d.ts +1 -1
  18. package/dist/src/dashboard/index.js +1 -1
  19. package/dist/src/engine.d.ts +69 -8
  20. package/dist/src/engine.d.ts.map +1 -1
  21. package/dist/src/engine.js +248 -53
  22. package/dist/src/engine.js.map +1 -1
  23. package/dist/src/index.d.ts +1 -1
  24. package/dist/src/index.js +1 -1
  25. package/dist/src/interfaces.d.ts +47 -0
  26. package/dist/src/interfaces.d.ts.map +1 -1
  27. package/dist/src/interfaces.js.map +1 -1
  28. package/dist/src/stores/lucid-mappers.d.ts +6 -1
  29. package/dist/src/stores/lucid-mappers.d.ts.map +1 -1
  30. package/dist/src/stores/lucid-mappers.js +41 -0
  31. package/dist/src/stores/lucid-mappers.js.map +1 -1
  32. package/dist/src/stores/lucid.d.ts +4 -1
  33. package/dist/src/stores/lucid.d.ts.map +1 -1
  34. package/dist/src/stores/lucid.js +148 -37
  35. package/dist/src/stores/lucid.js.map +1 -1
  36. package/dist/src/testing/in-memory-state-store.d.ts +4 -1
  37. package/dist/src/testing/in-memory-state-store.d.ts.map +1 -1
  38. package/dist/src/testing/in-memory-state-store.js +29 -0
  39. package/dist/src/testing/in-memory-state-store.js.map +1 -1
  40. package/dist/src/testing-kit/run-dispatch-contract.d.ts.map +1 -1
  41. package/dist/src/testing-kit/run-dispatch-contract.js +12 -3
  42. package/dist/src/testing-kit/run-dispatch-contract.js.map +1 -1
  43. package/dist/src/testing-kit/state-store-conformance.d.ts +6 -0
  44. package/dist/src/testing-kit/state-store-conformance.d.ts.map +1 -1
  45. package/dist/src/testing-kit/state-store-conformance.js +230 -0
  46. package/dist/src/testing-kit/state-store-conformance.js.map +1 -1
  47. package/dist/src/transports/adaptive-concurrency.d.ts +2 -0
  48. package/dist/src/transports/adaptive-concurrency.d.ts.map +1 -1
  49. package/dist/src/transports/adaptive-concurrency.js +39 -9
  50. package/dist/src/transports/adaptive-concurrency.js.map +1 -1
  51. package/dist/src/transports/bullmq/bullmq-transport.d.ts.map +1 -1
  52. package/dist/src/transports/bullmq/bullmq-transport.js +8 -4
  53. package/dist/src/transports/bullmq/bullmq-transport.js.map +1 -1
  54. package/dist/src/transports/bullmq/deps.d.ts.map +1 -1
  55. package/dist/src/transports/bullmq/deps.js +18 -1
  56. package/dist/src/transports/bullmq/deps.js.map +1 -1
  57. package/dist/src/transports/db.js +4 -4
  58. package/dist/src/transports/db.js.map +1 -1
  59. package/dist/src/transports/queue.d.ts.map +1 -1
  60. package/dist/src/transports/queue.js +8 -4
  61. package/dist/src/transports/queue.js.map +1 -1
  62. package/package.json +2 -2
  63. package/skills/durable-reliability/SKILL.md +2 -1
  64. package/skills/durable-transports-stores/SKILL.md +15 -2
  65. package/dist/assets/spa/assets/index-BEk3-95l.js +0 -16
  66. package/dist/assets/spa/assets/index-BEk3-95l.js.map +0 -1
@@ -10,7 +10,7 @@
10
10
  rel="stylesheet"
11
11
  />
12
12
  <title>durable · control plane</title>
13
- <script type="module" crossorigin src="/__DURABLE_DASHBOARD__/assets/index-BEk3-95l.js"></script>
13
+ <script type="module" crossorigin src="/__DURABLE_DASHBOARD__/assets/index-9kO8tWjg.js"></script>
14
14
  <link rel="stylesheet" crossorigin href="/__DURABLE_DASHBOARD__/assets/index-6nmSTfT7.css">
15
15
  </head>
16
16
  <body>
@@ -18,13 +18,29 @@ export declare function canonicalJson(value: unknown): string;
18
18
  * parent can still be retried, and its retry consumes the buffer);
19
19
  * - the parent already holds this outcome: a duplicate or late notification.
20
20
  *
21
- * A `parent` already read by the caller can be passed to skip the read (`null` = known missing).
21
+ * It runs on every such completion of a wide fan, so it reads the parent's run row and its
22
+ * checkpoints by key, never by name (except for an id that names no seq). A `parent` already read by
23
+ * the caller can be passed to skip the run read (`null` = known missing). A completion JSON cannot
24
+ * hold (a BigInt, a cycle) cannot be compared, and is kept for the parent.
22
25
  */
23
26
  export declare function childCompletionNeedsBuffer(store: StateStore, childId: string, completion: unknown, parent?: WorkflowRun | null): Promise<boolean>;
27
+ /** What {@link unneededChildSignals} decided about a page of buffered signals. */
28
+ export interface BufferedSignalVerdict {
29
+ /** The rows no parent will consume. */
30
+ doomed: BufferedSignalRow[];
31
+ /**
32
+ * How many leading rows of the page are decided. Less than the page when the deadline passed
33
+ * first; the rest are left for the next call.
34
+ */
35
+ decided: number;
36
+ }
24
37
  /**
25
38
  * The `child:` buffered signals in `rows` no parent will ever consume (see
26
- * {@link childCompletionNeedsBuffer}). Parents are read in batches; a row whose parent could not be
27
- * read, or whose parent's checkpoints could not be read, is kept for the next pass.
39
+ * {@link childCompletionNeedsBuffer}), set-based: one read of every parent's run row, then for each
40
+ * parent still open, one keyed read of its checkpoints covering all of its rows in the page. A row
41
+ * whose parent or checkpoints could not be read is kept for the next pass. Once `deadline` (epoch
42
+ * ms) passes, no further parent's checkpoints are read; the first always are, so every call makes
43
+ * progress.
28
44
  */
29
- export declare function unneededChildSignals(store: StateStore, rows: readonly BufferedSignalRow[]): Promise<BufferedSignalRow[]>;
45
+ export declare function unneededChildSignals(store: StateStore, rows: readonly BufferedSignalRow[], deadline?: number): Promise<BufferedSignalVerdict>;
30
46
  //# sourceMappingURL=buffered-child-signals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffered-child-signals.d.ts","sourceRoot":"","sources":["../../src/buffered-child-signals.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAGf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAGzB,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAU3C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGpD;AA6DD;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EACnB,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,CAAC,CAkBlB;AAqBD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,iBAAiB,EAAE,GACjC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAsB9B"}
1
+ {"version":3,"file":"buffered-child-signals.d.ts","sourceRoot":"","sources":["../../src/buffered-child-signals.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,UAAU,EAGf,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAGzB,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAO3C;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAGpD;AAkOD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EACnB,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAqBD,kFAAkF;AAClF,MAAM,WAAW,qBAAqB;IACpC,uCAAuC;IACvC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,UAAU,EACjB,IAAI,EAAE,SAAS,iBAAiB,EAAE,EAClC,QAAQ,GAAE,MAAiC,GAC1C,OAAO,CAAC,qBAAqB,CAAC,CAsDhC"}
@@ -6,8 +6,6 @@ export const CHILD_TOKEN_PREFIX = 'child:';
6
6
  const CHILD_SIGNAL_NAME_PREFIX = 'signal:child:';
7
7
  /** Terminal statuses a run can still leave (a retry), consuming its buffered completions. */
8
8
  const RETRYABLE = new Set(['failed', 'dead']);
9
- /** A `ctx.all` child id: the fan's base (`<parent>.all.<seq>.` or `….w<k>.`) and its index. */
10
- const FAN_CHILD = /^(.+\.all\.\d+\.(?:w\d+\.)?)(\d+)$/;
11
9
  /**
12
10
  * JSON with object keys sorted, so two completions compare equal whatever order their keys came
13
11
  * back in: MySQL's JSON type and Postgres `jsonb` do not keep insertion order. Through JSON first,
@@ -26,43 +24,165 @@ function sortedJson(value) {
26
24
  }
27
25
  return JSON.stringify(value);
28
26
  }
29
- /** The checkpoint names under which a parent records the settled outcome of `childId`. */
30
- function settledNames(childId) {
27
+ const FAN_CHILD_PARTS = /^(.+\.all\.(\d+)\.)(?:w(\d+)\.)?(\d+)$/;
28
+ const SEQ_CHILD = /\.child\.(\d+)$/;
29
+ function slotOf(childId) {
31
30
  const signal = `${CHILD_SIGNAL_NAME_PREFIX}${childId}`;
32
- const fan = FAN_CHILD.exec(childId);
33
- if (!fan)
34
- return { signal };
35
- return { signal, fold: { name: `${FOLDED_PREFIX}${fan[1]}`, index: Number(fan[2]) } };
31
+ const fan = FAN_CHILD_PARTS.exec(childId);
32
+ if (fan) {
33
+ const root = fan[1];
34
+ const wave = fan[3];
35
+ const firstSeq = Number(fan[2]);
36
+ const index = Number(fan[4]);
37
+ if (wave === undefined) {
38
+ return {
39
+ signal,
40
+ signalSeq: firstSeq + index,
41
+ fan: { fold: `${FOLDED_PREFIX}${root}`, firstSeq, index },
42
+ };
43
+ }
44
+ return {
45
+ signal,
46
+ signalSeq: firstSeq + index,
47
+ fan: {
48
+ fold: `${FOLDED_PREFIX}${root}w${wave}.`,
49
+ firstSeq,
50
+ index,
51
+ wave: Number(wave),
52
+ waveZeroFold: `${FOLDED_PREFIX}${root}w0.`,
53
+ },
54
+ };
55
+ }
56
+ const seq = SEQ_CHILD.exec(childId);
57
+ return seq ? { signal, signalSeq: Number(seq[1]) } : { signal };
58
+ }
59
+ /** A fold checkpoint's children, when `cp` is the completed fold `name`. */
60
+ function foldOf(cp, name) {
61
+ if (cp?.status !== 'completed' || cp.name !== name)
62
+ return undefined;
63
+ const { from, values } = (cp.output ?? {});
64
+ return typeof from === 'number' && Array.isArray(values) ? { from, values } : undefined;
65
+ }
66
+ function covers(fold, index) {
67
+ return !!fold && index >= fold.from && index < fold.from + fold.values.length;
68
+ }
69
+ /** Whether `cp` is the completed signal checkpoint `signal` holding the same completion. */
70
+ function holdsSignal(cp, signal, expected) {
71
+ return (expected !== undefined &&
72
+ cp.status === 'completed' &&
73
+ cp.name === signal &&
74
+ canonicalJson(cp.output) === expected);
75
+ }
76
+ /** The completion as {@link canonicalJson}, or undefined for one JSON cannot hold (a BigInt, a cycle). */
77
+ function comparable(completion) {
78
+ try {
79
+ return canonicalJson(completion);
80
+ }
81
+ catch {
82
+ return undefined;
83
+ }
84
+ }
85
+ /** The parent's checkpoints at `seqs`, by seq: one keyed read. */
86
+ async function checkpointsAt(store, runId, seqs) {
87
+ const unique = [...new Set(seqs)];
88
+ const bySeq = new Map();
89
+ if (unique.length === 0)
90
+ return bySeq;
91
+ const rows = store.getCheckpoints
92
+ ? await store.getCheckpoints(runId, unique)
93
+ : (await Promise.all(unique.map((seq) => store.getCheckpoint(runId, seq)))).filter((cp) => cp !== null);
94
+ for (const cp of rows)
95
+ bySeq.set(cp.seq, cp);
96
+ return bySeq;
97
+ }
98
+ /** The parent's checkpoints named exactly one of `names`: the read by name, for ids with no seq. */
99
+ async function checkpointsNamed(store, runId, names) {
100
+ const wanted = new Set(names);
101
+ const rows = store.listCheckpointsByNamePrefix
102
+ ? await store.listCheckpointsByNamePrefix(runId, [...wanted])
103
+ : await store.listCheckpoints(runId);
104
+ return rows.filter((cp) => wanted.has(cp.name));
36
105
  }
37
106
  /**
38
- * Whether `checkpoints` (the parent's) already settle `childId`: a completed `signal:child:<id>`
39
- * checkpoint holding the same completion, or a folded fan checkpoint covering the child (a fan
40
- * folds only once every child in it settled).
107
+ * Which of `children` (with the completion each would deliver) `parentId` already settles: a
108
+ * completed `signal:child:<id>` checkpoint holding the same completion, or a fold covering the child
109
+ * (a fan folds only once every child in it settled). A few store calls whatever the number of
110
+ * children: one keyed read for the seqs their ids name, one more for the folds of later waves of a
111
+ * fan in waves, and a read by name only for the children whose seq says nothing (an onError
112
+ * handler, a `ctx.startChild` child, a fan in waves whose wave 0 did not fold).
41
113
  */
42
- function parentHoldsChild(checkpoints, childId, completion) {
43
- const { signal, fold } = settledNames(childId);
44
- const expected = canonicalJson(completion);
45
- return checkpoints.some((cp) => {
46
- if (cp.status !== 'completed')
47
- return false;
48
- if (cp.name === signal)
49
- return canonicalJson(cp.output) === expected;
50
- if (fold && cp.name === fold.name) {
51
- const { from, values } = (cp.output ?? {});
52
- return (typeof from === 'number' &&
53
- Array.isArray(values) &&
54
- fold.index >= from &&
55
- fold.index < from + values.length);
114
+ async function parentSettles(store, parentId, children) {
115
+ const entries = children.map(({ childId, completion }) => ({
116
+ slot: slotOf(childId),
117
+ expected: comparable(completion),
118
+ }));
119
+ const held = entries.map(() => undefined);
120
+ const first = await checkpointsAt(store, parentId, entries.flatMap(({ slot }) => [
121
+ ...(slot.signalSeq === undefined ? [] : [slot.signalSeq]),
122
+ ...(slot.fan ? [slot.fan.firstSeq] : []),
123
+ ]));
124
+ const waveFolds = [];
125
+ const byName = [];
126
+ entries.forEach(({ slot, expected }, at) => {
127
+ const own = slot.signalSeq === undefined ? undefined : first.get(slot.signalSeq);
128
+ if (own?.name === slot.signal) {
129
+ held[at] = holdsSignal(own, slot.signal, expected);
130
+ return;
56
131
  }
57
- return false;
132
+ const fan = slot.fan;
133
+ if (fan) {
134
+ // A fold sits at its first child's seq, so it can also be the one at the child's own seq.
135
+ if (covers(foldOf(own, fan.fold), fan.index)) {
136
+ held[at] = true;
137
+ return;
138
+ }
139
+ const atFirst = first.get(fan.firstSeq);
140
+ if (fan.wave === undefined || fan.wave === 0) {
141
+ held[at] = covers(foldOf(atFirst, fan.fold), fan.index);
142
+ return;
143
+ }
144
+ const waveZero = foldOf(atFirst, fan.waveZeroFold);
145
+ if (waveZero && waveZero.values.length > 0) {
146
+ waveFolds.push({ at, seq: fan.firstSeq + fan.wave * waveZero.values.length });
147
+ return;
148
+ }
149
+ byName.push(at);
150
+ return;
151
+ }
152
+ // A `.child.<n>` id with nothing at `n` has not been settled; a different name at `n` (the
153
+ // `spawn:` of a `ctx.startChild`) means the signal is elsewhere.
154
+ if (slot.signalSeq !== undefined && !own) {
155
+ held[at] = false;
156
+ return;
157
+ }
158
+ byName.push(at);
58
159
  });
160
+ if (waveFolds.length > 0) {
161
+ const second = await checkpointsAt(store, parentId, waveFolds.map((w) => w.seq));
162
+ for (const { at, seq } of waveFolds) {
163
+ const fan = entries[at]?.slot.fan;
164
+ held[at] = covers(foldOf(second.get(seq), fan.fold), fan.index);
165
+ }
166
+ }
167
+ if (byName.length > 0) {
168
+ const names = byName.flatMap((at) => {
169
+ const { slot } = entries[at];
170
+ return slot.fan ? [slot.signal, slot.fan.fold] : [slot.signal];
171
+ });
172
+ const named = await checkpointsNamed(store, parentId, names);
173
+ for (const at of byName) {
174
+ const { slot, expected } = entries[at];
175
+ held[at] = named.some((cp) => holdsSignal(cp, slot.signal, expected) ||
176
+ (!!slot.fan && covers(foldOf(cp, slot.fan.fold), slot.fan.index)));
177
+ }
178
+ }
179
+ return held.map((h) => h === true);
59
180
  }
60
- async function parentCheckpoints(store, parentId, childId) {
61
- const { signal, fold } = settledNames(childId);
62
- const prefixes = fold ? [signal, fold.name] : [signal];
63
- return store.listCheckpointsByNamePrefix
64
- ? store.listCheckpointsByNamePrefix(parentId, prefixes)
65
- : store.listCheckpoints(parentId);
181
+ /** Whether `run` is gone, or terminal for good: nothing it could buffer for will ever be consumed. */
182
+ function parentClosed(run) {
183
+ return (!run ||
184
+ (TERMINAL_RUN_STATUSES.includes(run.status) &&
185
+ !RETRYABLE.has(run.status)));
66
186
  }
67
187
  /**
68
188
  * Whether a child's completion that found no waiter must be buffered for its parent to consume
@@ -75,27 +195,20 @@ async function parentCheckpoints(store, parentId, childId) {
75
195
  * parent can still be retried, and its retry consumes the buffer);
76
196
  * - the parent already holds this outcome: a duplicate or late notification.
77
197
  *
78
- * A `parent` already read by the caller can be passed to skip the read (`null` = known missing).
198
+ * It runs on every such completion of a wide fan, so it reads the parent's run row and its
199
+ * checkpoints by key, never by name (except for an id that names no seq). A `parent` already read by
200
+ * the caller can be passed to skip the run read (`null` = known missing). A completion JSON cannot
201
+ * hold (a BigInt, a cycle) cannot be compared, and is kept for the parent.
79
202
  */
80
203
  export async function childCompletionNeedsBuffer(store, childId, completion, parent) {
81
204
  const parentId = parentRunIdOf(childId);
82
205
  if (!parentId)
83
206
  return false;
84
207
  const run = parent === undefined ? await store.getRun(parentId) : parent;
85
- if (!run)
86
- return false;
87
- if (TERMINAL_RUN_STATUSES.includes(run.status) &&
88
- !RETRYABLE.has(run.status)) {
208
+ if (parentClosed(run))
89
209
  return false;
90
- }
91
- const checkpoints = await parentCheckpoints(store, parentId, childId);
92
- try {
93
- return !parentHoldsChild(checkpoints, childId, completion);
94
- }
95
- catch {
96
- // A completion JSON cannot hold (a BigInt, a cycle) cannot be compared: keep it for the parent.
97
- return true;
98
- }
210
+ const [held] = await parentSettles(store, parentId, [{ childId, completion }]);
211
+ return !held;
99
212
  }
100
213
  /** Read `ids` in batches; the ids of a batch that could not be read are reported, not guessed. */
101
214
  async function readRuns(store, ids) {
@@ -117,33 +230,64 @@ async function readRuns(store, ids) {
117
230
  }
118
231
  /**
119
232
  * The `child:` buffered signals in `rows` no parent will ever consume (see
120
- * {@link childCompletionNeedsBuffer}). Parents are read in batches; a row whose parent could not be
121
- * read, or whose parent's checkpoints could not be read, is kept for the next pass.
233
+ * {@link childCompletionNeedsBuffer}), set-based: one read of every parent's run row, then for each
234
+ * parent still open, one keyed read of its checkpoints covering all of its rows in the page. A row
235
+ * whose parent or checkpoints could not be read is kept for the next pass. Once `deadline` (epoch
236
+ * ms) passes, no further parent's checkpoints are read; the first always are, so every call makes
237
+ * progress.
122
238
  */
123
- export async function unneededChildSignals(store, rows) {
239
+ export async function unneededChildSignals(store, rows, deadline = Number.POSITIVE_INFINITY) {
240
+ const childOf = (row) => row.token.startsWith(CHILD_TOKEN_PREFIX)
241
+ ? row.token.slice(CHILD_TOKEN_PREFIX.length)
242
+ : undefined;
124
243
  const parentIds = rows.flatMap((row) => {
125
- const parentId = parentRunIdOf(row.token.slice(CHILD_TOKEN_PREFIX.length));
244
+ const childId = childOf(row);
245
+ const parentId = childId === undefined ? undefined : parentRunIdOf(childId);
126
246
  return parentId ? [parentId] : [];
127
247
  });
128
248
  const { runs, unread } = await readRuns(store, parentIds);
129
- const doomed = [];
130
- for (const row of rows) {
131
- if (!row.token.startsWith(CHILD_TOKEN_PREFIX))
132
- continue;
133
- const childId = row.token.slice(CHILD_TOKEN_PREFIX.length);
249
+ const doomed = new Set();
250
+ /** Rows to check against their parent's checkpoints, by parent, in page order. */
251
+ const open = new Map();
252
+ rows.forEach((row, at) => {
253
+ const childId = childOf(row);
254
+ if (childId === undefined)
255
+ return;
134
256
  const parentId = parentRunIdOf(childId);
135
- if (parentId && unread.has(parentId))
136
- continue;
137
- const parent = parentId ? (runs.get(parentId) ?? null) : null;
257
+ if (!parentId) {
258
+ doomed.add(row);
259
+ return;
260
+ }
261
+ if (unread.has(parentId))
262
+ return;
263
+ if (parentClosed(runs.get(parentId))) {
264
+ doomed.add(row);
265
+ return;
266
+ }
267
+ const group = open.get(parentId) ?? [];
268
+ group.push({ at, row, childId });
269
+ open.set(parentId, group);
270
+ });
271
+ let decided = rows.length;
272
+ let checked = 0;
273
+ for (const [parentId, group] of open) {
274
+ if (checked > 0 && Date.now() >= deadline) {
275
+ decided = group[0].at;
276
+ break;
277
+ }
278
+ checked += 1;
138
279
  try {
139
- if (!(await childCompletionNeedsBuffer(store, childId, row.payload, parent))) {
140
- doomed.push(row);
141
- }
280
+ const held = await parentSettles(store, parentId, group.map(({ row, childId }) => ({ childId, completion: row.payload })));
281
+ group.forEach(({ row }, k) => {
282
+ if (held[k])
283
+ doomed.add(row);
284
+ });
142
285
  }
143
286
  catch {
144
- // The next pass decides.
287
+ // A failed checkpoint read keeps the rows; the next pass decides.
145
288
  }
146
289
  }
147
- return doomed;
290
+ // Rows past the cut already doomed by their parent's run row alone go now too.
291
+ return { doomed: rows.filter((row) => doomed.has(row)), decided };
148
292
  }
149
293
  //# sourceMappingURL=buffered-child-signals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buffered-child-signals.js","sourceRoot":"","sources":["../../src/buffered-child-signals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buffered-child-signals.js","sourceRoot":"","sources":["../../src/buffered-child-signals.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { BufferedSignalRow, CheckpointQuery, CheckpointStat, ChildWait, RunFacetQuery, RunFacetRow, RunQuery, RunStatus, RunValueAxis, RunValueFacetOptions, RunValueFacetRow, ScheduleQuery, ScheduleRecord, SignalWaiter, StateStore, StepCheckpoint, WorkflowRun } from './interfaces.js';
1
+ import type { BufferedSignalRow, CheckpointQuery, CheckpointStat, ChildWait, RunFacetQuery, RunFacetRow, RunQuery, RunStatus, RunValueAxis, RunValueFacetOptions, RunValueFacetRow, ScheduleQuery, ScheduleRecord, SignalWaiter, StateStore, StepCheckpoint, StepSettlement, WorkflowRun } from './interfaces.js';
2
2
  /**
3
3
  * Transforms a payload value as it crosses the store boundary — e.g. encrypt-at-rest, compress, or
4
4
  * redact PII. `decode` must be the exact inverse of `encode`. Both are synchronous (use a local
@@ -61,6 +61,12 @@ export declare class CodecStateStore implements StateStore {
61
61
  readonly releaseRunLockUnlessWakeRequested?: (runId: string, owner: string) => Promise<boolean>;
62
62
  /** Encodes each checkpoint like {@link saveCheckpoint}. Bound only when the inner store has it. */
63
63
  readonly saveCheckpointsIfPending?: (checkpoints: StepCheckpoint[]) => Promise<boolean[]>;
64
+ /** Encodes each settlement's `output` (and `events`/`error` under `extended` coverage) like
65
+ * {@link saveCheckpoint}. Bound only when the inner store has it. */
66
+ readonly settleCheckpointsIfPending?: (settlements: StepSettlement[]) => Promise<boolean[]>;
67
+ /** Decodes each checkpoint read like {@link listCheckpoints}. Bound only when the inner store has
68
+ * it. */
69
+ readonly listCheckpointsForReplay?: (runId: string) => Promise<StepCheckpoint[]>;
64
70
  /** Forwarded verbatim — deletes read no payload. Bound only when the inner store has it, so the
65
71
  * engine's one-`deleteRun`-per-id fallback still applies through the wrapper. */
66
72
  readonly deleteRuns?: (runIds: string[]) => Promise<void>;
@@ -95,6 +101,8 @@ export declare class CodecStateStore implements StateStore {
95
101
  readonly countCheckpoints?: (runId: string, fromSeq: number, toSeq: number, statuses: StepCheckpoint['status'][]) => Promise<number>;
96
102
  /** Decodes each checkpoint. Bound only when the inner store has it. */
97
103
  readonly getCheckpoints?: (runId: string, seqs: number[]) => Promise<StepCheckpoint[]>;
104
+ /** Decodes each checkpoint. Bound only when the inner store has it. */
105
+ readonly getCheckpointsForSettle?: (runId: string, seqs: number[]) => Promise<StepCheckpoint[]>;
98
106
  /** Encodes each checkpoint. Bound only when the inner store has it. */
99
107
  readonly saveCheckpoints?: (checkpoints: StepCheckpoint[]) => Promise<void>;
100
108
  constructor(inner: StateStore, codec: PayloadCodec, options?: CodecStateStoreOptions);
@@ -106,6 +114,7 @@ export declare class CodecStateStore implements StateStore {
106
114
  private encRun;
107
115
  private decRun;
108
116
  private encCp;
117
+ private encSettlement;
109
118
  private decCp;
110
119
  ensureSchema(): Promise<void>;
111
120
  createRun(run: WorkflowRun): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"codec-state-store.d.ts","sourceRoot":"","sources":["../../src/codec-state-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codec-state-store.d.ts","sourceRoot":"","sources":["../../src/codec-state-store.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,12 @@ export class CodecStateStore {
36
36
  releaseRunLockUnlessWakeRequested;
37
37
  /** Encodes each checkpoint like {@link saveCheckpoint}. Bound only when the inner store has it. */
38
38
  saveCheckpointsIfPending;
39
+ /** Encodes each settlement's `output` (and `events`/`error` under `extended` coverage) like
40
+ * {@link saveCheckpoint}. Bound only when the inner store has it. */
41
+ settleCheckpointsIfPending;
42
+ /** Decodes each checkpoint read like {@link listCheckpoints}. Bound only when the inner store has
43
+ * it. */
44
+ listCheckpointsForReplay;
39
45
  /** Forwarded verbatim — deletes read no payload. Bound only when the inner store has it, so the
40
46
  * engine's one-`deleteRun`-per-id fallback still applies through the wrapper. */
41
47
  deleteRuns;
@@ -66,6 +72,8 @@ export class CodecStateStore {
66
72
  countCheckpoints;
67
73
  /** Decodes each checkpoint. Bound only when the inner store has it. */
68
74
  getCheckpoints;
75
+ /** Decodes each checkpoint. Bound only when the inner store has it. */
76
+ getCheckpointsForSettle;
69
77
  /** Encodes each checkpoint. Bound only when the inner store has it. */
70
78
  saveCheckpoints;
71
79
  constructor(inner, codec, options = {}) {
@@ -76,6 +84,10 @@ export class CodecStateStore {
76
84
  if (getMany) {
77
85
  this.getCheckpoints = async (runId, seqs) => (await getMany.call(inner, runId, seqs)).map((cp) => this.decCp(cp));
78
86
  }
87
+ const getForSettle = inner.getCheckpointsForSettle;
88
+ if (getForSettle) {
89
+ this.getCheckpointsForSettle = async (runId, seqs) => (await getForSettle.call(inner, runId, seqs)).map((cp) => this.decCp(cp));
90
+ }
79
91
  const saveMany = inner.saveCheckpoints;
80
92
  if (saveMany) {
81
93
  this.saveCheckpoints = (cps) => saveMany.call(inner, cps.map((cp) => this.encCp(cp)));
@@ -92,6 +104,14 @@ export class CodecStateStore {
92
104
  if (saveManyIfPending) {
93
105
  this.saveCheckpointsIfPending = (cps) => saveManyIfPending.call(inner, cps.map((cp) => this.encCp(cp)));
94
106
  }
107
+ const settleIfPending = inner.settleCheckpointsIfPending;
108
+ if (settleIfPending) {
109
+ this.settleCheckpointsIfPending = (settlements) => settleIfPending.call(inner, settlements.map((s) => this.encSettlement(s)));
110
+ }
111
+ const listForReplay = inner.listCheckpointsForReplay;
112
+ if (listForReplay) {
113
+ this.listCheckpointsForReplay = async (runId) => (await listForReplay.call(inner, runId)).map((cp) => this.decCp(cp));
114
+ }
95
115
  const getRuns = inner.getRuns;
96
116
  if (getRuns)
97
117
  this.getRuns = async (ids) => (await getRuns.call(inner, ids)).map((r) => this.decRun(r));
@@ -203,6 +223,18 @@ export class CodecStateStore {
203
223
  }
204
224
  return next;
205
225
  }
226
+ encSettlement(settlement) {
227
+ const next = { ...settlement, output: this.enc(settlement.output) };
228
+ if (this.extended) {
229
+ if (settlement.events !== undefined) {
230
+ next.events = this.enc(settlement.events);
231
+ }
232
+ if (settlement.error !== undefined) {
233
+ next.error = this.enc(settlement.error);
234
+ }
235
+ }
236
+ return next;
237
+ }
206
238
  decCp(cp) {
207
239
  if (!cp)
208
240
  return cp;