@usine/engine 0.4.0 → 0.5.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.
Files changed (77) hide show
  1. package/LICENSE +661 -21
  2. package/README.md +9 -6
  3. package/dist/cycle-budget/cycle-budget.d.ts +8 -2
  4. package/dist/cycle-budget/cycle-budget.d.ts.map +1 -1
  5. package/dist/cycle-budget/cycle-budget.js +46 -5
  6. package/dist/cycle-budget/cycle-budget.js.map +1 -1
  7. package/dist/cycle-budget/model.d.ts +4 -0
  8. package/dist/cycle-budget/model.d.ts.map +1 -1
  9. package/dist/cycle-budget/model.js +3 -0
  10. package/dist/cycle-budget/model.js.map +1 -1
  11. package/dist/database/local-sqlite.d.ts +4 -3
  12. package/dist/database/local-sqlite.d.ts.map +1 -1
  13. package/dist/database/local-sqlite.js +11 -7
  14. package/dist/database/local-sqlite.js.map +1 -1
  15. package/dist/database/schema.d.ts +121 -0
  16. package/dist/database/schema.d.ts.map +1 -1
  17. package/dist/database/schema.js +23 -0
  18. package/dist/database/schema.js.map +1 -1
  19. package/dist/engine/checkout-recovery.d.ts +28 -18
  20. package/dist/engine/checkout-recovery.d.ts.map +1 -1
  21. package/dist/engine/checkout-recovery.js +100 -43
  22. package/dist/engine/checkout-recovery.js.map +1 -1
  23. package/dist/engine/engine.d.ts +20 -8
  24. package/dist/engine/engine.d.ts.map +1 -1
  25. package/dist/engine/engine.js +26 -9
  26. package/dist/engine/engine.js.map +1 -1
  27. package/dist/engine/error.d.ts +1 -1
  28. package/dist/engine/error.js +1 -1
  29. package/dist/engine/error.js.map +1 -1
  30. package/dist/engine/lifecycle.d.ts +3 -1
  31. package/dist/engine/lifecycle.d.ts.map +1 -1
  32. package/dist/engine/lifecycle.js +13 -3
  33. package/dist/engine/lifecycle.js.map +1 -1
  34. package/dist/engine/run-driver.d.ts +21 -7
  35. package/dist/engine/run-driver.d.ts.map +1 -1
  36. package/dist/engine/run-driver.js +118 -32
  37. package/dist/engine/run-driver.js.map +1 -1
  38. package/dist/engine/submission.d.ts.map +1 -1
  39. package/dist/engine/submission.js +3 -2
  40. package/dist/engine/submission.js.map +1 -1
  41. package/dist/engine/unconfirmed-stops.d.ts +27 -0
  42. package/dist/engine/unconfirmed-stops.d.ts.map +1 -0
  43. package/dist/engine/unconfirmed-stops.js +26 -0
  44. package/dist/engine/unconfirmed-stops.js.map +1 -0
  45. package/dist/item-projection/item-projection.d.ts +3 -1
  46. package/dist/item-projection/item-projection.d.ts.map +1 -1
  47. package/dist/item-projection/item-projection.js +20 -9
  48. package/dist/item-projection/item-projection.js.map +1 -1
  49. package/dist/run-reader/run-reader.d.ts +6 -1
  50. package/dist/run-reader/run-reader.d.ts.map +1 -1
  51. package/dist/run-reader/run-reader.js +2 -0
  52. package/dist/run-reader/run-reader.js.map +1 -1
  53. package/dist/step-executor.d.ts +30 -11
  54. package/dist/step-executor.d.ts.map +1 -1
  55. package/dist/step-executor.js.map +1 -1
  56. package/dist/store/codec.d.ts +38 -4
  57. package/dist/store/codec.d.ts.map +1 -1
  58. package/dist/store/codec.js +9 -2
  59. package/dist/store/codec.js.map +1 -1
  60. package/dist/store/leftovers.d.ts +1 -1
  61. package/dist/store/leftovers.js +2 -2
  62. package/dist/store/leftovers.js.map +1 -1
  63. package/dist/store/queries.d.ts +45 -3
  64. package/dist/store/queries.d.ts.map +1 -1
  65. package/dist/store/queries.js +59 -6
  66. package/dist/store/queries.js.map +1 -1
  67. package/dist/store/store.d.ts +22 -7
  68. package/dist/store/store.d.ts.map +1 -1
  69. package/dist/store/store.js +32 -3
  70. package/dist/store/store.js.map +1 -1
  71. package/drizzle/20261024162954_cycle_ask_closures/migration.sql +10 -0
  72. package/drizzle/20261024162954_cycle_ask_closures/snapshot.json +1948 -0
  73. package/drizzle/20261027104206_attempt_out_of_memory/migration.sql +1 -0
  74. package/drizzle/20261027104206_attempt_out_of_memory/snapshot.json +1958 -0
  75. package/drizzle/20261027191944_failure_resolution/migration.sql +1 -0
  76. package/drizzle/20261027191944_failure_resolution/snapshot.json +1968 -0
  77. package/package.json +12 -12
@@ -7,8 +7,9 @@ import { RunStore } from "../store/store.js";
7
7
  import { TranscriptAllQuery } from "../transcript.js";
8
8
  import { TriggerCondition } from "../trigger-condition.js";
9
9
  import { AttemptAdmission } from "./admission.js";
10
- import { checkoutRecoveryFor } from "./checkout-recovery.js";
10
+ import { checkoutRecoveryFor, without } from "./checkout-recovery.js";
11
11
  import { runIdFor } from "./submission.js";
12
+ import { UnconfirmedStop } from "./unconfirmed-stops.js";
12
13
  // Executor sinks fail with `AttemptFailure`: a persistence error becomes an `InfraFailure`, and
13
14
  // other store errors are defects.
14
15
  const asAttemptFailure = (effect) => Effect.catchTags(effect, {
@@ -46,7 +47,8 @@ const reattaching = (open) => Option.flatMap(open, (found) => found._tag === "Li
46
47
  * Run for approval, then reserves a Worker, starts or reattaches the Attempt, records its
47
48
  * outcome, and repeats until the Run closes. The fiber that closes a Run gives the Item's newest
48
49
  * queued Event its turn; cancel, supersede, and revoke do that themselves. A fiber that ends
49
- * without closing its Run leaves it for `resume` or `reconcile`.
50
+ * without closing its Run leaves it for `resume` or `reconcile`, as one does instead of starting
51
+ * an Attempt while a parent task on its Loop's Item isn't confirmed stopped (#523).
50
52
  */
51
53
  export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriver") {
52
54
  static layer = Layer.effect(RunDriver, Effect.gen(function* () {
@@ -59,7 +61,13 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
59
61
  const fibers = yield* FiberMap.make();
60
62
  const checkouts = yield* checkoutRecoveryFor(store, executor);
61
63
  // Closed Attempts whose parent task isn't confirmed stopped; each reconcile retries the stop.
62
- const unconfirmed = yield* Ref.make(new Set());
64
+ const unconfirmed = yield* Ref.make(new Map());
65
+ // The slot that each Run's fiber holds, unless `holdSlot` moved it to the Run's Attempt.
66
+ const slots = yield* Ref.make(new Map());
67
+ /** Releases `lease`, the slot of the Run's fiber, unless `holdSlot` moved it. */
68
+ const releaseSlot = (runId, lease) => Ref.modify(slots, (held) => held.get(runId) === lease ? [true, without(held, runId)] : [false, held]).pipe(Effect.flatMap((owned) => owned
69
+ ? lease.release
70
+ : Effect.logDebug("The Run's slot stays with its Attempt until the parent task is confirmed stopped", { runId, worker: lease.worker })));
63
71
  // Annotated because a fiber's continuation calls launch again, which TypeScript cannot infer.
64
72
  const launch = Effect.fn("RunDriver.launch")(function* (runId) {
65
73
  yield* Effect.annotateCurrentSpan({ runId });
@@ -68,9 +76,15 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
68
76
  return;
69
77
  }
70
78
  yield* Effect.logDebug("Starting the Run's fiber", { runId });
71
- yield* FiberMap.run(fibers, runId, drive(runId).pipe(Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause)
72
- ? Effect.failCause(cause)
73
- : Effect.logError("The Run's fiber stopped on an engine failure; the next reconcile or a restart resumes it", { runId, cause }))), { onlyIfMissing: true });
79
+ const launchedBy = yield* Effect.option(Effect.currentSpan);
80
+ yield* FiberMap.run(fibers, runId, drive(runId).pipe(
81
+ // Logged inside the Run's span: the launch span has ended by the time drive fails.
82
+ Effect.tapCause((cause) => Cause.hasInterruptsOnly(cause)
83
+ ? Effect.void
84
+ : Effect.logError("The Run's fiber stopped on an engine failure; the next reconcile or a restart resumes it", { runId, cause })), Effect.withSpan("RunDriver.drive", {
85
+ root: true,
86
+ links: Option.toArray(Option.map(launchedBy, (span) => ({ span, attributes: {} }))),
87
+ }), Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause) ? Effect.failCause(cause) : Effect.void)), { onlyIfMissing: true });
74
88
  });
75
89
  const resume = Effect.fn("RunDriver.resume")(function* (runId) {
76
90
  yield* Effect.annotateCurrentSpan({ runId });
@@ -204,15 +218,15 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
204
218
  return { lease: occupied.value, open: found };
205
219
  }
206
220
  }
207
- const lease = yield* restore(executor.reserve(submission, Option.map(reattached, ({ worker }) => worker)));
221
+ const lease = yield* restore(executor.reserve(runId, submission, Option.map(reattached, ({ worker }) => worker)));
208
222
  // The parent task can stop during the wait, so read it again before reattaching.
209
223
  return { lease, open: Option.isSome(reattached) ? openAttempt(runId) : found };
210
224
  });
211
225
  /**
212
- * Runs one Attempt on the reserved Worker and returns the resulting decision tag. `current`
213
- * reads the open Attempt once the slot is held.
226
+ * Runs one Attempt of the Run of `submission` on the reserved Worker and returns the
227
+ * resulting decision tag. `current` reads the open Attempt once the slot is held.
214
228
  */
215
- const executeAttempt = Effect.fn("RunDriver.attempt")(function* (runId, worker, current) {
229
+ const executeAttempt = Effect.fn("RunDriver.attempt")(function* (runId, submission, worker, current) {
216
230
  yield* Effect.annotateCurrentSpan({ runId, worker });
217
231
  const open = yield* current;
218
232
  if (Option.isSome(open) && open.value._tag === "Finished") {
@@ -235,6 +249,7 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
235
249
  append: (direction, envelope) => store.appendTranscript(direction, envelope).pipe(asAttemptFailure),
236
250
  salvage: (salvage) => store.recordSalvage(started.execution.attempt.id, salvage).pipe(asAttemptFailure),
237
251
  comments: (comments) => store.recordComments(started.execution.attempt.id, comments).pipe(asAttemptFailure),
252
+ outOfMemory: (kills) => store.recordOutOfMemory(started.execution.attempt.id, kills).pipe(asAttemptFailure),
238
253
  windows: store
239
254
  .attemptWindows(started.execution.attempt.id)
240
255
  .pipe(retryingStore(runId, "read the attempt windows"), asAttemptFailure),
@@ -260,14 +275,24 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
260
275
  // Reconcile a reattach that failed before acquiring the kept checkout, such as on a
261
276
  // credential error, so the next Attempt resumes from its salvage. `reconcile` does nothing
262
277
  // once the checkout was acquired, and fails this fiber while the stop is unconfirmed.
263
- yield* checkouts.reconcile(started.execution.attempt.id);
278
+ yield* checkouts.reconcile(started.execution.attempt.id, "failed");
264
279
  }
280
+ // Before the Attempt closes, so a cancel meanwhile still finds it open and keeps its slot.
281
+ if (Result.isFailure(result))
282
+ yield* confirmStopAfterFailure({
283
+ attemptId: started.execution.attempt.id,
284
+ runId,
285
+ loop: submission.loop,
286
+ itemKey: submission.itemKey,
287
+ reason: "failed",
288
+ }, worker);
265
289
  const finished = yield* store
266
290
  .finishAttempt(started.execution.attempt, result)
267
291
  .pipe(retryingStore(runId, "finish the attempt"));
268
292
  return finished._tag;
269
293
  });
270
- const drive = Effect.fn("RunDriver.drive")(function* (runId) {
294
+ // `launch` traces it as the root span of the Run's own trace.
295
+ const drive = Effect.fnUntraced(function* (runId) {
271
296
  const submission = yield* store
272
297
  .submission(runId)
273
298
  .pipe(retryingStore(runId, "read the run's submission"));
@@ -291,12 +316,29 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
291
316
  // Reconcile before waiting for a slot, so the next Attempt resumes from the salvage and
292
317
  // the slot startup occupied is freed. If the stop can't be confirmed, this fiber fails
293
318
  // and keeps the slot; the next reconcile drives the Run again.
294
- yield* checkouts.reconcile(open.value.attempt.id);
319
+ yield* checkouts.reconcile(open.value.attempt.id, "startup");
320
+ }
321
+ // A reattachment starts no parent task, so only a new Attempt waits for the stop.
322
+ if (Option.isNone(reattaching(open))) {
323
+ const blocking = yield* stopBlocking(submission);
324
+ if (Option.isSome(blocking)) {
325
+ // `reconcile` retries the stop, then starts a fiber for this Run again.
326
+ yield* Effect.logInfo("The Run starts no Attempt while the parent task of an earlier Attempt on its Loop's Item is not confirmed stopped; each reconcile tries that stop again, then drives the Run", {
327
+ runId,
328
+ loop: submission.loop,
329
+ itemKey: submission.itemKey,
330
+ unstoppedAttemptId: blocking.value.attemptId,
331
+ unstoppedRunId: blocking.value.runId,
332
+ worker: blocking.value.worker,
333
+ reason: blocking.value.reason,
334
+ });
335
+ return;
336
+ }
295
337
  }
296
338
  // Only the slot wait is interruptible, so a cancel can stop a Run in `reserve`; the
297
- // scheduler releases or reoffers the slot on interrupt. `lease.release` runs once the
339
+ // scheduler releases or reoffers the slot on interrupt. `releaseSlot` runs once the
298
340
  // lease exists.
299
- outcome = yield* Effect.uninterruptibleMask((restore) => slotFor(runId, submission, open, restore).pipe(Effect.flatMap(({ lease, open: current }) => restore(admission.withAttempt(runId, executeAttempt(runId, lease.worker, current))).pipe(Effect.ensuring(lease.release)))));
341
+ outcome = yield* Effect.uninterruptibleMask((restore) => slotFor(runId, submission, open, restore).pipe(Effect.tap(({ lease }) => Ref.update(slots, (held) => new Map(held).set(runId, lease))), Effect.flatMap(({ lease, open: current }) => restore(admission.withAttempt(runId, executeAttempt(runId, submission, lease.worker, current))).pipe(Effect.ensuring(releaseSlot(runId, lease))))));
300
342
  } while (outcome === "RetryAttempt");
301
343
  // Cancel, supersede, and revoke handle the Item's queued Events themselves and can
302
344
  // interrupt this fiber at any point.
@@ -306,28 +348,68 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
306
348
  }
307
349
  yield* continueWithNewest(runId);
308
350
  });
309
- const releaseKept = Effect.fn("RunDriver.releaseKept")(function* (attemptId) {
310
- yield* Effect.annotateCurrentSpan({ attemptId });
311
- const stopped = yield* checkouts.reconcile(attemptId).pipe(Effect.result);
312
- yield* Ref.update(unconfirmed, (ids) => {
313
- const next = new Set(ids);
314
- if (Result.isSuccess(stopped))
315
- next.delete(attemptId);
316
- else
317
- next.add(attemptId);
318
- return next;
319
- });
320
- if (Result.isFailure(stopped))
321
- yield* Effect.logWarning("The parent task of an Attempt whose Run closed is not confirmed stopped; its checkout and its Worker's slot stay kept, and the next reconcile tries the stop again", { attemptId });
351
+ const holdSlot = Effect.fn("RunDriver.holdSlot")(function* (runId, attemptId) {
352
+ yield* Effect.annotateCurrentSpan({ runId, attemptId });
353
+ const lease = yield* Ref.modify(slots, (held) => [
354
+ Option.fromUndefinedOr(held.get(runId)),
355
+ without(held, runId),
356
+ ]);
357
+ if (Option.isNone(lease)) {
358
+ yield* Effect.logDebug("The Run's fiber holds no slot in this process; no slot moves to its Attempt", { runId, attemptId });
359
+ return;
360
+ }
361
+ yield* checkouts.hold(attemptId, lease.value);
362
+ }, Effect.uninterruptible);
363
+ /** Records `stop` for `reconcile` to retry, keeping the first record of its Attempt. */
364
+ const recordUnconfirmed = (stop) => Ref.update(unconfirmed, (stops) => stops.has(stop.attemptId) ? stops : new Map(stops).set(stop.attemptId, stop));
365
+ /**
366
+ * Confirms through `StepExecutor.interrupt` that the parent task of the Attempt of `stop`,
367
+ * which failed on `worker`, stopped. The executor stops the task when an Attempt fails but
368
+ * doesn't report whether the stop succeeded. If the stop isn't confirmed, the Attempt keeps
369
+ * the Run's slot, as on a cancel, no Run of the Loop on the Item starts an Attempt, and each
370
+ * `reconcile` retries the stop (#512, #523).
371
+ */
372
+ const confirmStopAfterFailure = Effect.fn("RunDriver.confirmStopAfterFailure")(function* (stop, worker) {
373
+ const { attemptId, runId } = stop;
374
+ const fields = { runId, attemptId, worker, reason: stop.reason };
375
+ yield* Effect.annotateCurrentSpan(fields);
376
+ const stopped = yield* executor.interrupt(attemptId, stop.reason).pipe(Effect.result);
377
+ if (Result.isSuccess(stopped)) {
378
+ yield* Effect.logDebug("The parent task of the failed Attempt is confirmed stopped; the Run's slot is freed", fields);
379
+ return;
380
+ }
381
+ yield* Effect.logWarning("Could not confirm that the parent task of the failed Attempt stopped; the Attempt keeps its Run's slot, no Attempt starts on its Loop's Item, and each reconcile tries the stop again", { ...fields, errorTag: stopped.failure._tag, message: stopped.failure.message });
382
+ yield* holdSlot(runId, attemptId).pipe(Effect.andThen(recordUnconfirmed(new UnconfirmedStop({ ...stop, worker }))), Effect.uninterruptible);
383
+ });
384
+ /** Returns the unconfirmed stop that keeps the Run of `submission` from starting an Attempt. */
385
+ const stopBlocking = (submission) => Ref.get(unconfirmed).pipe(Effect.map((stops) => Option.fromUndefinedOr([...stops.values()].find(({ loop, itemKey }) => loop === submission.loop && itemKey === submission.itemKey))));
386
+ const releaseKept = Effect.fn("RunDriver.releaseKept")(function* (stop) {
387
+ const { attemptId, runId, reason } = stop;
388
+ yield* Effect.annotateCurrentSpan({ runId, attemptId, reason });
389
+ const stopped = yield* checkouts.reconcile(attemptId, reason).pipe(Effect.result);
390
+ if (Result.isSuccess(stopped)) {
391
+ const recorded = yield* Ref.modify(unconfirmed, (stops) => [
392
+ stops.has(attemptId),
393
+ without(stops, attemptId),
394
+ ]);
395
+ if (recorded)
396
+ yield* Effect.logInfo("The parent task of a closed Attempt is confirmed stopped; Runs on its Loop's Item start Attempts again", { runId, attemptId, loop: stop.loop, itemKey: stop.itemKey, reason });
397
+ return;
398
+ }
399
+ const { worker } = stopped.failure;
400
+ yield* Effect.annotateCurrentSpan({ worker });
401
+ yield* recordUnconfirmed(new UnconfirmedStop({ ...stop, worker }));
402
+ yield* Effect.logWarning("The parent task of a closed Attempt is not confirmed stopped; its Worker's slot, and any checkout startup kept, stay kept, no Attempt starts on its Loop's Item, and the next reconcile tries the stop again", { runId, attemptId, worker, loop: stop.loop, itemKey: stop.itemKey, reason });
322
403
  });
323
404
  const recoverWorkspaces = Effect.fn("RunDriver.recoverWorkspaces")(function* () {
324
405
  // Closed Attempts whose parent task stop wasn't confirmed before the restart.
325
406
  const unstopped = yield* checkouts.atStartup();
326
- yield* Ref.update(unconfirmed, (ids) => new Set([...ids, ...unstopped]));
407
+ yield* Effect.forEach(unstopped, ({ attemptId, runId, loop, itemKey, worker }) => recordUnconfirmed(new UnconfirmedStop({ attemptId, runId, loop, itemKey, worker, reason: "startup" })), { discard: true });
327
408
  });
328
409
  const reconcile = Effect.fn("RunDriver.reconcile")(function* () {
329
- // No Run fiber retries these stops, so reconcile does.
330
- const unstopped = [...(yield* Ref.get(unconfirmed))];
410
+ // No Run fiber retries these stops, so reconcile does, before it starts the fibers they
411
+ // keep from starting an Attempt.
412
+ const unstopped = [...(yield* Ref.get(unconfirmed)).values()];
331
413
  yield* Effect.forEach(unstopped, releaseKept, { discard: true });
332
414
  const continuations = yield* store.pendingContinuations;
333
415
  yield* Effect.forEach(continuations, (runId) => continueWithNewest(runId).pipe(Effect.tapError((error) => Effect.logError("Could not continue the queued Events behind a closed Run", {
@@ -337,11 +419,13 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
337
419
  const driven = yield* store.runIdsToDrive;
338
420
  const withoutFiber = yield* Effect.filter(driven, (runId) => Effect.map(FiberMap.has(fibers, runId), (running) => !running));
339
421
  yield* Effect.forEach(withoutFiber, launch, { discard: true });
422
+ // After the stops above, so a machine whose stop they confirmed is released before it.
423
+ yield* executor.sweep;
340
424
  const fields = {
341
425
  continuedAfterRunIds: continuations,
342
426
  startedRunIds: withoutFiber,
343
427
  drivenRunIds: driven.length,
344
- retriedStopAttemptIds: unstopped,
428
+ retriedStopAttemptIds: unstopped.map(({ attemptId }) => attemptId),
345
429
  };
346
430
  if (continuations.length === 0 && withoutFiber.length === 0 && unstopped.length === 0)
347
431
  yield* Effect.logDebug("Every Run to drive already has its fiber", fields);
@@ -355,7 +439,9 @@ export class RunDriver extends Context.Service()("@usine/engine/internal/RunDriv
355
439
  continueWithNewest,
356
440
  reconcile,
357
441
  recoverWorkspaces,
442
+ holdSlot,
358
443
  releaseKept,
444
+ unconfirmedStops: Ref.get(unconfirmed).pipe(Effect.map((stops) => [...stops.values()])),
359
445
  };
360
446
  }));
361
447
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-driver.js","sourceRoot":"","sources":["../../src/engine/run-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-driver.js","sourceRoot":"","sources":["../../src/engine/run-driver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../src/engine/submission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,cAAc,EAIf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAW,MAAM,mBAAmB,CAAC;AAM7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAoB,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;IAShE,gFAAgF;;IAKhF,qDAAqD;;IAKrD,uEAAuE;;;;;;;;AAjBzE,6DAA6D;AAC7D,qBAAa,UAAW,SAAQ,eA0B9B;CAAG;AAKL,6HAA6H;AAC7H,eAAO,MAAM,QAAQ,iHAMnB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,eACV,UAAU,YACZ,QAAQ,aACP,MAAM,KAChB,UAMF,CAAC;;;;;AAEF,yFAAyF;AACzF,qBAAa,OAAQ,SAAQ,YAG3B;CAAG;;;;AAEL,0FAA0F;AAC1F,qBAAa,MAAO,SAAQ,WAE1B;CAAG;AAEL,eAAO,MAAM,eAAe,YAAI,YAAY,EAAE,SAAS,CAAU,CAAC;AAElE,eAAO,MAAM,YAAY,qDAAmC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;;;;;AAEpD,mEAAmE;AACnE,qBAAa,OAAQ,SAAQ,YAG3B;CAAG;;;;;AAEL;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,eAG/B;CAAG;;;;;AAEJ,4FAA4F;AAC5F,qBAAa,YAAa,SAAQ,iBAGjC;CAAG;AAEJ,eAAO,MAAM,gBAAgB,gHAAqE,CAAC;AAEnG,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC"}
1
+ {"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../src/engine/submission.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,cAAc,EAIf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAW,MAAM,mBAAmB,CAAC;AAM7D,OAAO,EAAE,MAAM,EAAE,MAAM,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;IAUtD,gFAAgF;;IAKhF,qDAAqD;;IAKrD,uEAAuE;;;;;;;;AAjBzE,6DAA6D;AAC7D,qBAAa,UAAW,SAAQ,eA0B9B;CAAG;AAKL,6HAA6H;AAC7H,eAAO,MAAM,QAAQ,iHAMnB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,WAAW,eACV,UAAU,YACZ,QAAQ,aACP,MAAM,KAChB,UAMF,CAAC;;;;;AAEF,yFAAyF;AACzF,qBAAa,OAAQ,SAAQ,YAG3B;CAAG;;;;AAEL,0FAA0F;AAC1F,qBAAa,MAAO,SAAQ,WAE1B;CAAG;AAEL,eAAO,MAAM,eAAe,YAAI,YAAY,EAAE,SAAS,CAAU,CAAC;AAElE,eAAO,MAAM,YAAY,qDAAmC,CAAC;AAE7D,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAC;;;;;AAEpD,mEAAmE;AACnE,qBAAa,OAAQ,SAAQ,YAG3B;CAAG;;;;;AAEL;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,eAG/B;CAAG;;;;;AAEJ,4FAA4F;AAC5F,qBAAa,YAAa,SAAQ,iBAGjC;CAAG;AAEJ,eAAO,MAAM,gBAAgB,gHAAqE,CAAC;AAEnG,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAC"}
@@ -8,7 +8,8 @@ import { LoopName, ApprovalRequirement, LoopPermissions } from "@usine/core/loop
8
8
  import { RepositoryName, RepositoryRevision } from "@usine/core/repository";
9
9
  import { RunId } from "@usine/core/run";
10
10
  import { StepName } from "@usine/core/step";
11
- import { Crypto, Effect, Encoding, Option, Schema } from "effect";
11
+ import { Crypto, Effect, Option, Schema } from "effect";
12
+ import { Hex } from "effect/encoding";
12
13
  /** A matched Event with its Loop, Item, and Run settings. */
13
14
  export class Submission extends Schema.Class("@usine/engine/Submission")({
14
15
  event: Event,
@@ -37,7 +38,7 @@ export const runIdFor = Effect.fn("Submission.runIdFor")(function* (submission)
37
38
  const digest = yield* crypto
38
39
  .digest("SHA-256", new TextEncoder().encode(`${RUN_ID_NAMESPACE}-${submission.event.dedupKey}`))
39
40
  .pipe(Effect.orDie);
40
- return RunId.make(Encoding.encodeHex(digest.subarray(0, 16)));
41
+ return RunId.make(Hex.encode(digest.subarray(0, 16)));
41
42
  });
42
43
  /**
43
44
  * Returns the Submission recorded when the Item returns to the state of an Event whose Run was
@@ -1 +1 @@
1
- {"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/engine/submission.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submission.js","sourceRoot":"","sources":["../../src/engine/submission.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Context, Effect, Layer, Schema } from "effect";
2
+ declare const UnconfirmedStop_base: Schema.Class<UnconfirmedStop, Schema.Struct<{
3
+ readonly attemptId: Schema.brand<Schema.NonEmptyString, "AttemptId">;
4
+ readonly runId: Schema.brand<Schema.NonEmptyString, "RunId">;
5
+ readonly loop: Schema.brand<Schema.NonEmptyString, "LoopName">;
6
+ readonly itemKey: Schema.brand<Schema.NonEmptyString, "ItemKey">;
7
+ readonly worker: Schema.brand<Schema.String, "WorkerName">;
8
+ readonly reason: Schema.Literals<readonly ["cancel", "failed", "startup"]>;
9
+ }>, {}>;
10
+ /**
11
+ * A closed Attempt whose parent task isn't confirmed stopped. It keeps a slot of `worker`, and no
12
+ * Run of `loop` on `itemKey` starts an Attempt, until a reconcile confirms the stop (#475, #523).
13
+ * `reason` is why the engine stops the parent task, which each retry passes to the executor.
14
+ */
15
+ export declare class UnconfirmedStop extends UnconfirmedStop_base {
16
+ }
17
+ declare const UnconfirmedStops_base: Context.ServiceClass<UnconfirmedStops, "@usine/engine/UnconfirmedStops", {
18
+ /** Returns the Attempts in the order their stop first failed. */
19
+ readonly list: Effect.Effect<ReadonlyArray<UnconfirmedStop>>;
20
+ }>;
21
+ /** The service that lists the closed Attempts whose parent task stop each reconcile retries. */
22
+ export declare class UnconfirmedStops extends UnconfirmedStops_base {
23
+ /** Lists no Attempt, for a process that drives no Run, as in setup mode. */
24
+ static readonly empty: Layer.Layer<UnconfirmedStops, never, never>;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=unconfirmed-stops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unconfirmed-stops.d.ts","sourceRoot":"","sources":["../../src/engine/unconfirmed-stops.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;;;;;;;;;AAExD;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,oBASpC;CAAG;;IAMA,iEAAiE;mBAClD,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;;AALhE,gGAAgG;AAChG,qBAAa,gBAAiB,SAAQ,qBAMD;IACnC,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,KAAK,8CAAiE;CACvF"}
@@ -0,0 +1,26 @@
1
+ import { AttemptId, StopReason } from "@usine/core/attempt";
2
+ import { ItemKey } from "@usine/core/item";
3
+ import { LoopName } from "@usine/core/loop";
4
+ import { RunId } from "@usine/core/run";
5
+ import { WorkerName } from "@usine/core/worker";
6
+ import { Context, Effect, Layer, Schema } from "effect";
7
+ /**
8
+ * A closed Attempt whose parent task isn't confirmed stopped. It keeps a slot of `worker`, and no
9
+ * Run of `loop` on `itemKey` starts an Attempt, until a reconcile confirms the stop (#475, #523).
10
+ * `reason` is why the engine stops the parent task, which each retry passes to the executor.
11
+ */
12
+ export class UnconfirmedStop extends Schema.Class("@usine/engine/UnconfirmedStop")({
13
+ attemptId: AttemptId,
14
+ runId: RunId,
15
+ loop: LoopName,
16
+ itemKey: ItemKey,
17
+ worker: WorkerName,
18
+ reason: StopReason,
19
+ }) {
20
+ }
21
+ /** The service that lists the closed Attempts whose parent task stop each reconcile retries. */
22
+ export class UnconfirmedStops extends Context.Service()("@usine/engine/UnconfirmedStops") {
23
+ /** Lists no Attempt, for a process that drives no Run, as in setup mode. */
24
+ static empty = Layer.succeed(UnconfirmedStops)({ list: Effect.succeed([]) });
25
+ }
26
+ //# sourceMappingURL=unconfirmed-stops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unconfirmed-stops.js","sourceRoot":"","sources":["../../src/engine/unconfirmed-stops.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAExD;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,KAAK,CAAkB,+BAA+B,CAAC,CACjG;IACE,SAAS,EAAE,SAAS;IACpB,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,UAAU;CACnB,CACF;CAAG;AAEJ,gGAAgG;AAChG,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,OAAO,EAMlD,CAAC,gCAAgC,CAAC;IACnC,4EAA4E;IAC5E,MAAM,CAAU,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;CACvF"}
@@ -1,6 +1,6 @@
1
1
  import { type ItemKey, ItemNumber } from "@usine/core/item";
2
2
  import { RepositoryName } from "@usine/core/repository";
3
- import { Context, DateTime, Effect, Layer } from "effect";
3
+ import { Context, DateTime, Effect, Layer, Option } from "effect";
4
4
  import { RunDatabase } from "../database/database.ts";
5
5
  import { EnginePersistenceError } from "../engine/error.ts";
6
6
  import { ItemProjection } from "./model.ts";
@@ -9,6 +9,8 @@ export interface ItemProjectionListOptions {
9
9
  readonly limit: number;
10
10
  }
11
11
  declare const ItemProjectionReader_base: Context.ServiceClass<ItemProjectionReader, "@usine/engine/ItemProjectionReader", {
12
+ /** Returns the stored projection of the Item `itemKey`, or `None` if no trigger observed it. */
13
+ readonly get: (itemKey: ItemKey) => Effect.Effect<Option.Option<ItemProjection>, EnginePersistenceError>;
12
14
  /** Returns the newest `limit` Item projections of `repository`, highest number first. */
13
15
  readonly list: (repository: RepositoryName, options: ItemProjectionListOptions) => Effect.Effect<ReadonlyArray<ItemProjection>, EnginePersistenceError>;
14
16
  /** Returns the numbers of `repository`'s open issues that aren't marked gone, lowest first, without a limit. */
@@ -1 +1 @@
1
- {"version":3,"file":"item-projection.d.ts","sourceRoot":"","sources":["../../src/item-projection/item-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAkB,MAAM,QAAQ,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAmB,cAAc,EAAwB,MAAM,YAAY,CAAC;AAsBnF,8DAA8D;AAC9D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;;IAiIG,yFAAyF;mBAC1E,CACb,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,yBAAyB,KAC/B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACzE,gHAAgH;yBAC3F,CACnB,UAAU,EAAE,cAAc,KACvB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;;AAXzE,qBAAa,oBAAqB,SAAQ,yBAaD;IACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,wDAAkD;CACxE;;IAKG,gHAAgH;qBAC/F,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzF;;;OAGG;uBACgB,CACjB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,KACjB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC;;AAZvD,qBAAa,oBAAqB,SAAQ,yBAcD;IACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,wDAAkD;CACxE;AAED,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"item-projection.d.ts","sourceRoot":"","sources":["../../src/item-projection/item-projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAmB,cAAc,EAAwB,MAAM,YAAY,CAAC;AAsBnF,8DAA8D;AAC9D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;;IA6IG,gGAAgG;kBAClF,CACZ,OAAO,EAAE,OAAO,KACb,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACzE,yFAAyF;mBAC1E,CACb,UAAU,EAAE,cAAc,EAC1B,OAAO,EAAE,yBAAyB,KAC/B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,sBAAsB,CAAC;IACzE,gHAAgH;yBAC3F,CACnB,UAAU,EAAE,cAAc,KACvB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,sBAAsB,CAAC;;AAfzE,qBAAa,oBAAqB,SAAQ,yBAiBD;IACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,wDAAkD;CACxE;;IAKG,gHAAgH;qBAC/F,CAAC,IAAI,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzF;;;OAGG;uBACgB,CACjB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,CAAC,GAAG,KACjB,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,sBAAsB,CAAC;;AAZvD,qBAAa,oBAAqB,SAAQ,yBAcD;IACvC,MAAM,CAAC,QAAQ,CAAC,KAAK,wDAAkD;CACxE;AAED,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -20,21 +20,32 @@ const decodeNumbers = Schema.decodeUnknownEffect(Schema.Array(ItemNumber));
20
20
  const encodePayload = Schema.encodeSync(Schema.JsonObject);
21
21
  const encodeGoneAt = Schema.encodeSync(ItemProjectionRow.fields.goneAt);
22
22
  const persistence = (operation) => (effect) => Effect.mapError(effect, (cause) => new EnginePersistenceError({ operation, cause }));
23
+ const projectionSelection = {
24
+ itemKey: itemProjections.itemKey,
25
+ repository: itemProjections.repository,
26
+ source: itemProjections.source,
27
+ number: itemProjections.itemNumber,
28
+ contentHash: itemProjections.contentHash,
29
+ payload: itemProjections.payloadJson,
30
+ goneAt: itemProjections.goneAt,
31
+ };
23
32
  const makeReader = Effect.gen(function* () {
24
33
  const database = yield* RunDatabase;
25
34
  return {
35
+ get: Effect.fn("ItemProjectionReader.get")(function* (itemKey) {
36
+ yield* Effect.annotateCurrentSpan({ itemKey });
37
+ const rows = yield* database
38
+ .select(projectionSelection)
39
+ .from(itemProjections)
40
+ .where(eq(itemProjections.itemKey, itemKey))
41
+ .execute();
42
+ const [row] = yield* decodeRows(rows, { onExcessProperty: "error" });
43
+ return Option.map(Option.fromNullishOr(row), (stored) => new ItemProjection(stored));
44
+ }, persistence("read item projection")),
26
45
  list: Effect.fn("ItemProjectionReader.list")(function* (repository, options) {
27
46
  yield* Effect.annotateCurrentSpan({ repository, limit: options.limit });
28
47
  const rows = yield* database
29
- .select({
30
- itemKey: itemProjections.itemKey,
31
- repository: itemProjections.repository,
32
- source: itemProjections.source,
33
- number: itemProjections.itemNumber,
34
- contentHash: itemProjections.contentHash,
35
- payload: itemProjections.payloadJson,
36
- goneAt: itemProjections.goneAt,
37
- })
48
+ .select(projectionSelection)
38
49
  .from(itemProjections)
39
50
  .where(eq(itemProjections.repository, repository))
40
51
  .orderBy(desc(itemProjections.itemNumber))
@@ -1 +1 @@
1
- {"version":3,"file":"item-projection.js","sourceRoot":"","sources":["../../src/item-projection/item-projection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"item-projection.js","sourceRoot":"","sources":["../../src/item-projection/item-projection.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Context, Effect, Layer, Option } from "effect";
1
+ import { Context, type DateTime, Effect, Layer, Option } from "effect";
2
2
  import { RunId } from "@usine/core/run";
3
3
  import { ItemKey } from "@usine/core/item";
4
4
  import { RunDatabase } from "../database/database.ts";
@@ -18,6 +18,11 @@ declare const RunReader_base: Context.ServiceClass<RunReader, "@usine/engine/Run
18
18
  readonly closed: (options: {
19
19
  readonly limit: number;
20
20
  }) => Effect.Effect<ReadonlyArray<RunSummary>, RunStoreError>;
21
+ /**
22
+ * Returns every Run that closed at or after `since`, or every closed Run for `None`, by close
23
+ * time, newest first.
24
+ */
25
+ readonly closedSince: (since: Option.Option<DateTime.Utc>) => Effect.Effect<ReadonlyArray<RunSummary>, RunStoreError>;
21
26
  /** Returns every Run for `itemKeys`, newest first, with all their Attempts. */
22
27
  readonly forItems: (itemKeys: ReadonlyArray<ItemKey>) => Effect.Effect<ReadonlyArray<RunSummary>, RunStoreError>;
23
28
  /** Returns the Event each existing Run in `runIds` was opened for, once per Run, in no particular order. */
@@ -1 +1 @@
1
- {"version":3,"file":"run-reader.d.ts","sourceRoot":"","sources":["../../src/run-reader/run-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,QAAQ,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAsB,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;IA+EpD,2FAA2F;sBACzE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;IAC7E,oGAAoG;uBACjF,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;IAC9E,sFAAsF;mBACvE,CAAC,OAAO,EAAE;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC7D,kFAAkF;qBACjE,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC7D,+EAA+E;uBAC5D,CACjB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC5D,4GAA4G;qBAC3F,CACf,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,KACzB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAC1D,mHAAmH;uBAChG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACxF,8EAA8E;yBACzD,CACnB,KAAK,EAAE,eAAe,KACnB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACjE,mGAAmG;+BACxE,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC5F,iGAAiG;wBAC7E,CAClB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;;AAnClE,uGAAuG;AACvG,qBAAa,SAAU,SAAQ,cAoCD;IAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,6CAA0C;CAChE;AAED,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"run-reader.d.ts","sourceRoot":"","sources":["../../src/run-reader/run-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACvE,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EACL,KAAK,YAAY,EACjB,kBAAkB,EAClB,KAAK,QAAQ,EACb,WAAW,EACX,WAAW,EACX,UAAU,EACV,KAAK,cAAc,EACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAsB,eAAe,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;;IAmFpD,2FAA2F;sBACzE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;IAC7E,oGAAoG;uBACjF,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;IAC9E,sFAAsF;mBACvE,CAAC,OAAO,EAAE;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC7D,kFAAkF;qBACjE,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC7D;;;OAGG;0BACmB,CACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAC/B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC5D,+EAA+E;uBAC5D,CACjB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IAC5D,4GAA4G;qBAC3F,CACf,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,KACzB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAC1D,mHAAmH;uBAChG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,aAAa,CAAC;IACxF,8EAA8E;yBACzD,CACnB,KAAK,EAAE,eAAe,KACnB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IACjE,mGAAmG;+BACxE,MAAM,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC5F,iGAAiG;wBAC7E,CAClB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,KAC7B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC;;AA1ClE,uGAAuG;AACvG,qBAAa,SAAU,SAAQ,cA2CD;IAC5B,MAAM,CAAC,QAAQ,CAAC,KAAK,6CAA0C;CAChE;AAED,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,cAAc,GACf,MAAM,YAAY,CAAC"}