footprintjs 9.40.0 → 9.41.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 (60) hide show
  1. package/CLAUDE.md +3 -3
  2. package/dist/esm/lib/builder/FlowChartBuilder.d.ts +10 -3
  3. package/dist/esm/lib/builder/FlowChartBuilder.js +93 -86
  4. package/dist/esm/lib/capture/freeze.d.ts +1 -1
  5. package/dist/esm/lib/capture/freeze.js +2 -2
  6. package/dist/esm/lib/engine/traversal/FlowchartTraverser.d.ts +12 -0
  7. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +49 -15
  8. package/dist/esm/lib/memory/StageContext.d.ts +16 -0
  9. package/dist/esm/lib/memory/StageContext.js +35 -40
  10. package/dist/esm/lib/reactive/types.js +4 -4
  11. package/dist/esm/lib/recorder/hooks.d.ts +2 -2
  12. package/dist/esm/lib/recorder/hooks.js +2 -2
  13. package/dist/esm/lib/recorder/snapshot.d.ts +1 -1
  14. package/dist/esm/lib/recorder/snapshot.js +2 -2
  15. package/dist/esm/lib/runner/FlowChartExecutor.d.ts +93 -377
  16. package/dist/esm/lib/runner/FlowChartExecutor.js +184 -1059
  17. package/dist/esm/lib/runner/attach.d.ts +95 -0
  18. package/dist/esm/lib/runner/attach.js +247 -0
  19. package/dist/esm/lib/runner/checkpoint.d.ts +69 -0
  20. package/dist/esm/lib/runner/checkpoint.js +254 -0
  21. package/dist/esm/lib/runner/index.d.ts +1 -1
  22. package/dist/esm/lib/runner/index.js +1 -1
  23. package/dist/esm/lib/runner/options.d.ts +79 -0
  24. package/dist/esm/lib/runner/options.js +31 -0
  25. package/dist/esm/lib/runner/resume.d.ts +73 -0
  26. package/dist/esm/lib/runner/resume.js +301 -0
  27. package/dist/esm/lib/runner/snapshot.d.ts +41 -0
  28. package/dist/esm/lib/runner/snapshot.js +93 -0
  29. package/dist/lib/builder/FlowChartBuilder.js +93 -86
  30. package/dist/lib/capture/freeze.js +2 -2
  31. package/dist/lib/engine/traversal/FlowchartTraverser.js +49 -15
  32. package/dist/lib/memory/StageContext.js +35 -40
  33. package/dist/lib/reactive/types.js +4 -4
  34. package/dist/lib/recorder/hooks.js +2 -2
  35. package/dist/lib/recorder/snapshot.js +2 -2
  36. package/dist/lib/runner/FlowChartExecutor.js +182 -1057
  37. package/dist/lib/runner/attach.js +251 -0
  38. package/dist/lib/runner/checkpoint.js +258 -0
  39. package/dist/lib/runner/index.js +1 -1
  40. package/dist/lib/runner/options.js +35 -0
  41. package/dist/lib/runner/resume.js +307 -0
  42. package/dist/lib/runner/snapshot.js +98 -0
  43. package/dist/types/lib/builder/FlowChartBuilder.d.ts +10 -3
  44. package/dist/types/lib/capture/freeze.d.ts +1 -1
  45. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +12 -0
  46. package/dist/types/lib/memory/StageContext.d.ts +16 -0
  47. package/dist/types/lib/recorder/hooks.d.ts +2 -2
  48. package/dist/types/lib/recorder/snapshot.d.ts +1 -1
  49. package/dist/types/lib/runner/FlowChartExecutor.d.ts +93 -377
  50. package/dist/types/lib/runner/attach.d.ts +95 -0
  51. package/dist/types/lib/runner/checkpoint.d.ts +69 -0
  52. package/dist/types/lib/runner/index.d.ts +1 -1
  53. package/dist/types/lib/runner/options.d.ts +79 -0
  54. package/dist/types/lib/runner/resume.d.ts +73 -0
  55. package/dist/types/lib/runner/snapshot.d.ts +41 -0
  56. package/package.json +1 -1
  57. package/dist/esm/lib/runner/checkpointSanitize.d.ts +0 -44
  58. package/dist/esm/lib/runner/checkpointSanitize.js +0 -133
  59. package/dist/lib/runner/checkpointSanitize.js +0 -138
  60. package/dist/types/lib/runner/checkpointSanitize.d.ts +0 -44
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * WHY HERE. Five places freeze a tree, all through this walk: run args (`readonlyInput ·
5
5
  * createFrozenArgs`), the fold base served as `initialState` (`ExecutionRuntime · getFoldBase`), the
6
- * dev-mode snapshot (`FlowChartExecutor · getSnapshot`), every state `stateAt` hands out
6
+ * dev-mode snapshot (`runner/snapshot.ts · servedSnapshot`), every state `stateAt` hands out
7
7
  * (`time-travel/stateAt.ts`) and, since F3, every commit bundle (`EventLog · record`). `memory/` must
8
8
  * not import `scope/` (that edge closed the memory ⇄ scope ⇄ recorder module cycle F0 removed), so the
9
9
  * walk lives in this leaf, which imports nothing.
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * WHY HERE. Five places freeze a tree, all through this walk: run args (`readonlyInput ·
5
5
  * createFrozenArgs`), the fold base served as `initialState` (`ExecutionRuntime · getFoldBase`), the
6
- * dev-mode snapshot (`FlowChartExecutor · getSnapshot`), every state `stateAt` hands out
6
+ * dev-mode snapshot (`runner/snapshot.ts · servedSnapshot`), every state `stateAt` hands out
7
7
  * (`time-travel/stateAt.ts`) and, since F3, every commit bundle (`EventLog · record`). `memory/` must
8
8
  * not import `scope/` (that edge closed the memory ⇄ scope ⇄ recorder module cycle F0 removed), so the
9
9
  * walk lives in this leaf, which imports nothing.
@@ -57,4 +57,4 @@ function freezeValue(value, indices) {
57
57
  freezeValue(child, indices);
58
58
  }
59
59
  }
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlZXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXB0dXJlL2ZyZWV6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBZUg7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFJLEdBQU0sRUFBRSxTQUFvQixXQUFXO0lBQ25FLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWMsRUFBRSxPQUFnQjtJQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPO0lBQy9HLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsb0dBQW9HO0lBQ3BHLHdEQUF3RDtJQUN4RCxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBSSxLQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZnJlZXplLnRzIOKAlCB0aGUgT05FIGRlZXAtZnJlZXplIHdhbGsgKG1vdmVkIGhlcmUgZnJvbSBgc2NvcGUvcHJvdGVjdGlvbi9yZWFkb25seUlucHV0LnRzYCBpbiBGMykuXG4gKlxuICogV0hZIEhFUkUuIEZpdmUgcGxhY2VzIGZyZWV6ZSBhIHRyZWUsIGFsbCB0aHJvdWdoIHRoaXMgd2FsazogcnVuIGFyZ3MgKGByZWFkb25seUlucHV0IMK3XG4gKiBjcmVhdGVGcm96ZW5BcmdzYCksIHRoZSBmb2xkIGJhc2Ugc2VydmVkIGFzIGBpbml0aWFsU3RhdGVgIChgRXhlY3V0aW9uUnVudGltZSDCtyBnZXRGb2xkQmFzZWApLCB0aGVcbiAqIGRldi1tb2RlIHNuYXBzaG90IChgRmxvd0NoYXJ0RXhlY3V0b3IgwrcgZ2V0U25hcHNob3RgKSwgZXZlcnkgc3RhdGUgYHN0YXRlQXRgIGhhbmRzIG91dFxuICogKGB0aW1lLXRyYXZlbC9zdGF0ZUF0LnRzYCkgYW5kLCBzaW5jZSBGMywgZXZlcnkgY29tbWl0IGJ1bmRsZSAoYEV2ZW50TG9nIMK3IHJlY29yZGApLiBgbWVtb3J5L2AgbXVzdFxuICogbm90IGltcG9ydCBgc2NvcGUvYCAodGhhdCBlZGdlIGNsb3NlZCB0aGUgbWVtb3J5IOKHhCBzY29wZSDih4QgcmVjb3JkZXIgbW9kdWxlIGN5Y2xlIEYwIHJlbW92ZWQpLCBzbyB0aGVcbiAqIHdhbGsgbGl2ZXMgaW4gdGhpcyBsZWFmLCB3aGljaCBpbXBvcnRzIG5vdGhpbmcuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IGRlZXBGcmVlemUgfSBmcm9tICcuL2ZyZWV6ZS5qcyc7XG4gKlxuICogY29uc3QgYXJncyA9IGRlZXBGcmVlemUoeyBvcmRlcjogeyBsaW5lczogW3sgc2t1OiAnQScgfV0gfSwgYnl0ZXM6IG5ldyBVaW50OEFycmF5KFsxXSkgfSk7XG4gKiBPYmplY3QuaXNGcm96ZW4oYXJncy5vcmRlci5saW5lc1swXSk7IC8vIHRydWVcbiAqIE9iamVjdC5pc0Zyb3plbihhcmdzLmJ5dGVzKTsgLy8gZmFsc2Ug4oCUIGEgdHlwZWQgYXJyYXkgY2Fubm90IGJlIGZyb3plbjsgaXQgaXMgc2tpcHBlZFxuICogYGBgXG4gKi9cblxuLyoqXG4gKiBIb3cge0BsaW5rIGRlZXBGcmVlemV9IHdhbGtzIGFuIEFSUkFZLlxuICpcbiAqIC0gYCdldmVyeS1rZXknYCAodGhlIGRlZmF1bHQpIOKAlCBldmVyeSBvd24gcHJvcGVydHksIGFzIGZvciBhbnkgb3RoZXIgb2JqZWN0OiB0aGUgaW5kZXggZWxlbWVudHNcbiAqICAgQU5EIGFueSBleHBhbmRvIChgYXJyLm5vdGUgPSB7IOKApiB9YCkuIFRoZSBjb250cmFjdCBhcmdzIHByb3RlY3Rpb24gYW5kIHRoZSBkZXYtbW9kZSBzbmFwc2hvdFxuICogICByZWx5IG9uLlxuICogLSBgJ2luZGljZXMnYCDigJQgdGhlIGluZGV4IGVsZW1lbnRzIG9ubHksIHNvIG5vIGtleSBzdHJpbmcgaXMgYWxsb2NhdGVkIHBlciBlbGVtZW50OyB0aGlzIGlzIHdoYXRcbiAqICAga2VlcHMgZnJlZXppbmcgYSAxMCwwMDAtZWxlbWVudCBjb21taXQgaW5zaWRlIGl0cyBidWRnZXQgKGBiZW5jaC9lbGVtZW50LXdyaXRlcy50c2ApLiBBbiBvYmplY3RcbiAqICAgaHVuZyBvbiBhbiBhcnJheSBFWFBBTkRPIGlzIHRoZW4gbGVmdCB1bmZyb3plbiDigJQgdGhlIGNvbW1pdCBsb2cncyBuYW1lZCBob2xlXG4gKiAgIChgRXZlbnRMb2cgwrcgcmVjb3JkYCkuXG4gKi9cbmV4cG9ydCB0eXBlIEFycmF5V2FsayA9ICdldmVyeS1rZXknIHwgJ2luZGljZXMnO1xuXG4vKipcbiAqIEZyZWV6ZXMgYG9iamAgYW5kIGV2ZXJ5IG9iamVjdCByZWFjaGFibGUgdGhyb3VnaCBpdHMgb3duIHByb3BlcnRpZXMsIGFuZCByZXR1cm5zIGBvYmpgLlxuICpcbiAqIC0gQW4gb2JqZWN0IHRoYXQgaXMgQUxSRUFEWSBmcm96ZW4gaXMgbGVmdCBhcyBpdCBpcywgYW5kIG5vdCBkZXNjZW5kZWQg4oCUIDkuMzIuMCdzIGNvbnRyYWN0LCBrZXB0OlxuICogICBhcmdzIG1heSBob2xkIGEgY2FsbGVyJ3MgZnJvemVuIG9iamVjdCB3aXRoIGxpdmUgcGFydHMgaW5zaWRlIChhIGNsYXNzIGluc3RhbmNlIGEgc3RhZ2UgY2FsbHMpLFxuICogICBhbmQgZnJlZXppbmcgcGFzdCBpdCB3b3VsZCBicmVhayB0aGVtLiBJdCBpcyBhbHNvIHdoYXQgZW5kcyBhIGN5Y2xlLiBUaGUgY29tbWl0IGxvZyBuZXZlciBtZWV0c1xuICogICBvbmU6IGl0cyBwYXlsb2FkcyBhcmUgZnJlc2ggYHN0cnVjdHVyZWRDbG9uZWBzLlxuICogLSBBcnJheUJ1ZmZlciB2aWV3cyAodHlwZWQgYXJyYXlzLCBgRGF0YVZpZXdgKSBhcmUgc2tpcHBlZDogYE9iamVjdC5mcmVlemVgIHRocm93cyBvbiBhIG5vbi1lbXB0eVxuICogICB0eXBlZCBhcnJheSwgc28gYSBgVWludDhBcnJheWAgaW4gc3RhdGUsIGFyZ3Mgb3IgdGhlIGZvbGQgYmFzZSB1c2VkIHRvIGZhaWwgdGhlIHJ1biBvciB0aGVcbiAqICAgc25hcHNob3QgaGVyZS5cbiAqIC0gV2hhdCBgT2JqZWN0LmZyZWV6ZWAgY2Fubm90IHJlYWNoIHN0YXlzIG11dGFibGUg4oCUIE1hcCBhbmQgU2V0IGNvbnRlbnRzLCBhIERhdGUncyB0aW1lLCB0aGVcbiAqICAgYnl0ZXMgYmVoaW5kIGEgYnVmZmVyLiBBIGZyb3plbiBSZWdFeHAncyBgbGFzdEluZGV4YCBpcyByZWFkLW9ubHksIHNvIGEgYC9nYCBvciBgL3lgIHJlZ2V4XG4gKiAgIHRha2VuIGZyb20gYSBmcm96ZW4gdHJlZSB0aHJvd3Mgd2hlbiBgZXhlY2Agb3IgYHJlcGxhY2VgIGFkdmFuY2UgaXQuXG4gKiAtIEZ1bmN0aW9ucyBhcmUgbm90IGRlc2NlbmRlZCAodGhleSBhcmUgbm90IHZhbHVlcyB0aGUgZW5naW5lIHN0b3JlcykuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWVwRnJlZXplPFQ+KG9iajogVCwgYXJyYXlzOiBBcnJheVdhbGsgPSAnZXZlcnkta2V5Jyk6IFQge1xuICBmcmVlemVWYWx1ZShvYmosIGFycmF5cyA9PT0gJ2luZGljZXMnKTtcbiAgcmV0dXJuIG9iajtcbn1cblxuZnVuY3Rpb24gZnJlZXplVmFsdWUodmFsdWU6IHVua25vd24sIGluZGljZXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgQXJyYXlCdWZmZXIuaXNWaWV3KHZhbHVlKSB8fCBPYmplY3QuaXNGcm96ZW4odmFsdWUpKSByZXR1cm47XG4gIE9iamVjdC5mcmVlemUodmFsdWUpO1xuICAvLyBUaGUgdHdvIGxvb3BzIGFyZSB3cml0dGVuIG91dCByYXRoZXIgdGhhbiBzaGFyZWQgdGhyb3VnaCBhIGNhbGxiYWNrOiB0aGlzIHJ1bnMgb25jZSBwZXIgb2JqZWN0IG9mXG4gIC8vIGV2ZXJ5IGNvbW1pdCwgYW5kIGEgY2xvc3VyZSBwZXIgb2JqZWN0IGlzIG1lYXN1cmFibGUuXG4gIGlmIChpbmRpY2VzICYmIEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY2hpbGQ6IHVua25vd24gPSB2YWx1ZVtpXTtcbiAgICAgIGlmIChjaGlsZCAhPT0gbnVsbCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnKSBmcmVlemVWYWx1ZShjaGlsZCwgaW5kaWNlcyk7XG4gICAgfVxuICAgIHJldHVybjtcbiAgfVxuICBjb25zdCBuYW1lcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHZhbHVlKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoaWxkID0gKHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtuYW1lc1tpXV07XG4gICAgaWYgKGNoaWxkICE9PSBudWxsICYmIHR5cGVvZiBjaGlsZCA9PT0gJ29iamVjdCcpIGZyZWV6ZVZhbHVlKGNoaWxkLCBpbmRpY2VzKTtcbiAgfVxufVxuIl19
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlZXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXB0dXJlL2ZyZWV6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBZUg7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFJLEdBQU0sRUFBRSxTQUFvQixXQUFXO0lBQ25FLFdBQVcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEtBQWMsRUFBRSxPQUFnQjtJQUNuRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPO0lBQy9HLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckIsb0dBQW9HO0lBQ3BHLHdEQUF3RDtJQUN4RCxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDcEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsT0FBTztJQUNULENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxNQUFNLEtBQUssR0FBSSxLQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNELElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1lBQUUsV0FBVyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRSxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZnJlZXplLnRzIOKAlCB0aGUgT05FIGRlZXAtZnJlZXplIHdhbGsgKG1vdmVkIGhlcmUgZnJvbSBgc2NvcGUvcHJvdGVjdGlvbi9yZWFkb25seUlucHV0LnRzYCBpbiBGMykuXG4gKlxuICogV0hZIEhFUkUuIEZpdmUgcGxhY2VzIGZyZWV6ZSBhIHRyZWUsIGFsbCB0aHJvdWdoIHRoaXMgd2FsazogcnVuIGFyZ3MgKGByZWFkb25seUlucHV0IMK3XG4gKiBjcmVhdGVGcm96ZW5BcmdzYCksIHRoZSBmb2xkIGJhc2Ugc2VydmVkIGFzIGBpbml0aWFsU3RhdGVgIChgRXhlY3V0aW9uUnVudGltZSDCtyBnZXRGb2xkQmFzZWApLCB0aGVcbiAqIGRldi1tb2RlIHNuYXBzaG90IChgcnVubmVyL3NuYXBzaG90LnRzIMK3IHNlcnZlZFNuYXBzaG90YCksIGV2ZXJ5IHN0YXRlIGBzdGF0ZUF0YCBoYW5kcyBvdXRcbiAqIChgdGltZS10cmF2ZWwvc3RhdGVBdC50c2ApIGFuZCwgc2luY2UgRjMsIGV2ZXJ5IGNvbW1pdCBidW5kbGUgKGBFdmVudExvZyDCtyByZWNvcmRgKS4gYG1lbW9yeS9gIG11c3RcbiAqIG5vdCBpbXBvcnQgYHNjb3BlL2AgKHRoYXQgZWRnZSBjbG9zZWQgdGhlIG1lbW9yeSDih4Qgc2NvcGUg4oeEIHJlY29yZGVyIG1vZHVsZSBjeWNsZSBGMCByZW1vdmVkKSwgc28gdGhlXG4gKiB3YWxrIGxpdmVzIGluIHRoaXMgbGVhZiwgd2hpY2ggaW1wb3J0cyBub3RoaW5nLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBkZWVwRnJlZXplIH0gZnJvbSAnLi9mcmVlemUuanMnO1xuICpcbiAqIGNvbnN0IGFyZ3MgPSBkZWVwRnJlZXplKHsgb3JkZXI6IHsgbGluZXM6IFt7IHNrdTogJ0EnIH1dIH0sIGJ5dGVzOiBuZXcgVWludDhBcnJheShbMV0pIH0pO1xuICogT2JqZWN0LmlzRnJvemVuKGFyZ3Mub3JkZXIubGluZXNbMF0pOyAvLyB0cnVlXG4gKiBPYmplY3QuaXNGcm96ZW4oYXJncy5ieXRlcyk7IC8vIGZhbHNlIOKAlCBhIHR5cGVkIGFycmF5IGNhbm5vdCBiZSBmcm96ZW47IGl0IGlzIHNraXBwZWRcbiAqIGBgYFxuICovXG5cbi8qKlxuICogSG93IHtAbGluayBkZWVwRnJlZXplfSB3YWxrcyBhbiBBUlJBWS5cbiAqXG4gKiAtIGAnZXZlcnkta2V5J2AgKHRoZSBkZWZhdWx0KSDigJQgZXZlcnkgb3duIHByb3BlcnR5LCBhcyBmb3IgYW55IG90aGVyIG9iamVjdDogdGhlIGluZGV4IGVsZW1lbnRzXG4gKiAgIEFORCBhbnkgZXhwYW5kbyAoYGFyci5ub3RlID0geyDigKYgfWApLiBUaGUgY29udHJhY3QgYXJncyBwcm90ZWN0aW9uIGFuZCB0aGUgZGV2LW1vZGUgc25hcHNob3RcbiAqICAgcmVseSBvbi5cbiAqIC0gYCdpbmRpY2VzJ2Ag4oCUIHRoZSBpbmRleCBlbGVtZW50cyBvbmx5LCBzbyBubyBrZXkgc3RyaW5nIGlzIGFsbG9jYXRlZCBwZXIgZWxlbWVudDsgdGhpcyBpcyB3aGF0XG4gKiAgIGtlZXBzIGZyZWV6aW5nIGEgMTAsMDAwLWVsZW1lbnQgY29tbWl0IGluc2lkZSBpdHMgYnVkZ2V0IChgYmVuY2gvZWxlbWVudC13cml0ZXMudHNgKS4gQW4gb2JqZWN0XG4gKiAgIGh1bmcgb24gYW4gYXJyYXkgRVhQQU5ETyBpcyB0aGVuIGxlZnQgdW5mcm96ZW4g4oCUIHRoZSBjb21taXQgbG9nJ3MgbmFtZWQgaG9sZVxuICogICAoYEV2ZW50TG9nIMK3IHJlY29yZGApLlxuICovXG5leHBvcnQgdHlwZSBBcnJheVdhbGsgPSAnZXZlcnkta2V5JyB8ICdpbmRpY2VzJztcblxuLyoqXG4gKiBGcmVlemVzIGBvYmpgIGFuZCBldmVyeSBvYmplY3QgcmVhY2hhYmxlIHRocm91Z2ggaXRzIG93biBwcm9wZXJ0aWVzLCBhbmQgcmV0dXJucyBgb2JqYC5cbiAqXG4gKiAtIEFuIG9iamVjdCB0aGF0IGlzIEFMUkVBRFkgZnJvemVuIGlzIGxlZnQgYXMgaXQgaXMsIGFuZCBub3QgZGVzY2VuZGVkIOKAlCA5LjMyLjAncyBjb250cmFjdCwga2VwdDpcbiAqICAgYXJncyBtYXkgaG9sZCBhIGNhbGxlcidzIGZyb3plbiBvYmplY3Qgd2l0aCBsaXZlIHBhcnRzIGluc2lkZSAoYSBjbGFzcyBpbnN0YW5jZSBhIHN0YWdlIGNhbGxzKSxcbiAqICAgYW5kIGZyZWV6aW5nIHBhc3QgaXQgd291bGQgYnJlYWsgdGhlbS4gSXQgaXMgYWxzbyB3aGF0IGVuZHMgYSBjeWNsZS4gVGhlIGNvbW1pdCBsb2cgbmV2ZXIgbWVldHNcbiAqICAgb25lOiBpdHMgcGF5bG9hZHMgYXJlIGZyZXNoIGBzdHJ1Y3R1cmVkQ2xvbmVgcy5cbiAqIC0gQXJyYXlCdWZmZXIgdmlld3MgKHR5cGVkIGFycmF5cywgYERhdGFWaWV3YCkgYXJlIHNraXBwZWQ6IGBPYmplY3QuZnJlZXplYCB0aHJvd3Mgb24gYSBub24tZW1wdHlcbiAqICAgdHlwZWQgYXJyYXksIHNvIGEgYFVpbnQ4QXJyYXlgIGluIHN0YXRlLCBhcmdzIG9yIHRoZSBmb2xkIGJhc2UgdXNlZCB0byBmYWlsIHRoZSBydW4gb3IgdGhlXG4gKiAgIHNuYXBzaG90IGhlcmUuXG4gKiAtIFdoYXQgYE9iamVjdC5mcmVlemVgIGNhbm5vdCByZWFjaCBzdGF5cyBtdXRhYmxlIOKAlCBNYXAgYW5kIFNldCBjb250ZW50cywgYSBEYXRlJ3MgdGltZSwgdGhlXG4gKiAgIGJ5dGVzIGJlaGluZCBhIGJ1ZmZlci4gQSBmcm96ZW4gUmVnRXhwJ3MgYGxhc3RJbmRleGAgaXMgcmVhZC1vbmx5LCBzbyBhIGAvZ2Agb3IgYC95YCByZWdleFxuICogICB0YWtlbiBmcm9tIGEgZnJvemVuIHRyZWUgdGhyb3dzIHdoZW4gYGV4ZWNgIG9yIGByZXBsYWNlYCBhZHZhbmNlIGl0LlxuICogLSBGdW5jdGlvbnMgYXJlIG5vdCBkZXNjZW5kZWQgKHRoZXkgYXJlIG5vdCB2YWx1ZXMgdGhlIGVuZ2luZSBzdG9yZXMpLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVlcEZyZWV6ZTxUPihvYmo6IFQsIGFycmF5czogQXJyYXlXYWxrID0gJ2V2ZXJ5LWtleScpOiBUIHtcbiAgZnJlZXplVmFsdWUob2JqLCBhcnJheXMgPT09ICdpbmRpY2VzJyk7XG4gIHJldHVybiBvYmo7XG59XG5cbmZ1bmN0aW9uIGZyZWV6ZVZhbHVlKHZhbHVlOiB1bmtub3duLCBpbmRpY2VzOiBib29sZWFuKTogdm9pZCB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IEFycmF5QnVmZmVyLmlzVmlldyh2YWx1ZSkgfHwgT2JqZWN0LmlzRnJvemVuKHZhbHVlKSkgcmV0dXJuO1xuICBPYmplY3QuZnJlZXplKHZhbHVlKTtcbiAgLy8gVGhlIHR3byBsb29wcyBhcmUgd3JpdHRlbiBvdXQgcmF0aGVyIHRoYW4gc2hhcmVkIHRocm91Z2ggYSBjYWxsYmFjazogdGhpcyBydW5zIG9uY2UgcGVyIG9iamVjdCBvZlxuICAvLyBldmVyeSBjb21taXQsIGFuZCBhIGNsb3N1cmUgcGVyIG9iamVjdCBpcyBtZWFzdXJhYmxlLlxuICBpZiAoaW5kaWNlcyAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFsdWUubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoaWxkOiB1bmtub3duID0gdmFsdWVbaV07XG4gICAgICBpZiAoY2hpbGQgIT09IG51bGwgJiYgdHlwZW9mIGNoaWxkID09PSAnb2JqZWN0JykgZnJlZXplVmFsdWUoY2hpbGQsIGluZGljZXMpO1xuICAgIH1cbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgbmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh2YWx1ZSk7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaGlsZCA9ICh2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbbmFtZXNbaV1dO1xuICAgIGlmIChjaGlsZCAhPT0gbnVsbCAmJiB0eXBlb2YgY2hpbGQgPT09ICdvYmplY3QnKSBmcmVlemVWYWx1ZShjaGlsZCwgaW5kaWNlcyk7XG4gIH1cbn1cbiJdfQ==
@@ -242,6 +242,8 @@ export declare class FlowchartTraverser<TOut = any, TScope = any> {
242
242
  * composition.
243
243
  */
244
244
  private readonly _frameOf;
245
+ /** `next`-chain ids per decider continuation head (`tailIds`). */
246
+ private readonly _tailIds;
245
247
  /**
246
248
  * Shared mutable execution counter — monotonic, incremented per stage execution.
247
249
  * Shared with child traversers (subflows) so indices are globally unique within a run.
@@ -438,6 +440,16 @@ export declare class FlowchartTraverser<TOut = any, TScope = any> {
438
440
  * `bench/depth-probe.ts` and the trampoline tests.
439
441
  */
440
442
  private nestingDepthOf;
443
+ /**
444
+ * What a decider's branch frame inherits: the ran-sets of the drivers it is
445
+ * nested in, and every enclosing decider's `next` chain plus this one's.
446
+ */
447
+ private branchFrameFor;
448
+ /**
449
+ * The ids on a decider's `next` chain — `next`, its `next`, … — up to a
450
+ * loop-ref stub (a back-edge, not the tail). Cached per chain head.
451
+ */
452
+ private tailIds;
441
453
  /** Build a flat continuation hop for the driver loop. */
442
454
  private hop;
443
455
  /**