footprintjs 9.48.2 → 10.0.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 (326) hide show
  1. package/AGENTS.md +12 -10
  2. package/CLAUDE.md +21 -23
  3. package/README.md +1 -1
  4. package/dist/advanced.js +71 -128
  5. package/dist/esm/advanced.d.ts +24 -58
  6. package/dist/esm/advanced.js +13 -51
  7. package/dist/esm/index.d.ts +5 -8
  8. package/dist/esm/index.js +3 -3
  9. package/dist/esm/lib/builder/FlowChartBuilder.d.ts +1 -1
  10. package/dist/esm/lib/builder/FlowChartBuilder.js +3 -3
  11. package/dist/esm/lib/builder/structure/StructureRecorder.d.ts +1 -1
  12. package/dist/esm/lib/builder/structure/StructureRecorder.js +1 -1
  13. package/dist/esm/lib/capture/index.d.ts +0 -1
  14. package/dist/esm/lib/capture/index.js +1 -2
  15. package/dist/esm/lib/engine/graph/prefixNodeTree.js +2 -2
  16. package/dist/esm/lib/engine/handlers/ResumeEntry.d.ts +3 -3
  17. package/dist/esm/lib/engine/handlers/ResumeEntry.js +4 -4
  18. package/dist/esm/lib/engine/handlers/SubflowExecutor.d.ts +1 -2
  19. package/dist/esm/lib/engine/handlers/SubflowExecutor.js +4 -8
  20. package/dist/esm/lib/engine/index.d.ts +1 -1
  21. package/dist/esm/lib/engine/index.js +1 -1
  22. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +4 -4
  23. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +1 -1
  24. package/dist/esm/lib/engine/narrative/index.d.ts +1 -1
  25. package/dist/esm/lib/engine/narrative/index.js +1 -1
  26. package/dist/esm/lib/engine/narrative/narrativeTypes.d.ts +1 -11
  27. package/dist/esm/lib/engine/narrative/narrativeTypes.js +1 -1
  28. package/dist/esm/lib/engine/traversal/FlowchartTraverser.d.ts +2 -10
  29. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +4 -6
  30. package/dist/esm/lib/engine/traversalContext.d.ts +1 -1
  31. package/dist/esm/lib/engine/traversalContext.js +2 -2
  32. package/dist/esm/lib/engine/types.d.ts +2 -10
  33. package/dist/esm/lib/engine/types.js +1 -1
  34. package/dist/esm/lib/engine/walkSubflowSpec.js +2 -2
  35. package/dist/esm/lib/ids/reservedIds.js +2 -2
  36. package/dist/esm/lib/memory/DiagnosticCollector.js +2 -2
  37. package/dist/esm/lib/memory/StageContext.d.ts +2 -4
  38. package/dist/esm/lib/memory/StageContext.js +2 -2
  39. package/dist/esm/lib/memory/borrowedMutation.js +2 -2
  40. package/dist/esm/lib/memory/index.d.ts +6 -21
  41. package/dist/esm/lib/memory/index.js +4 -22
  42. package/dist/esm/lib/memory/redaction.d.ts +1 -1
  43. package/dist/esm/lib/memory/redaction.js +2 -2
  44. package/dist/esm/lib/memory/runPolicy.d.ts +3 -2
  45. package/dist/esm/lib/memory/runPolicy.js +1 -1
  46. package/dist/esm/lib/reactive/createTypedScope.js +2 -2
  47. package/dist/esm/lib/reactive/writeTraps.js +2 -2
  48. package/dist/esm/lib/recorder/ControlDepRecorder.d.ts +3 -2
  49. package/dist/esm/lib/recorder/ControlDepRecorder.js +3 -2
  50. package/dist/esm/lib/recorder/EmitRecorder.d.ts +1 -1
  51. package/dist/esm/lib/recorder/EmitRecorder.js +1 -1
  52. package/dist/esm/lib/recorder/InOutRecorder.js +2 -2
  53. package/dist/esm/lib/recorder/qualityTrace.d.ts +1 -1
  54. package/dist/esm/lib/recorder/qualityTrace.js +2 -2
  55. package/dist/esm/lib/runner/DeferredObserverTier.js +2 -2
  56. package/dist/esm/lib/runner/ExecutionRuntime.d.ts +4 -5
  57. package/dist/esm/lib/runner/ExecutionRuntime.js +2 -5
  58. package/dist/esm/lib/runner/FlowChartExecutor.d.ts +1 -1
  59. package/dist/esm/lib/runner/FlowChartExecutor.js +1 -1
  60. package/dist/esm/lib/runner/getSubtreeSnapshot.d.ts +1 -1
  61. package/dist/esm/lib/runner/getSubtreeSnapshot.js +4 -4
  62. package/dist/esm/lib/runner/resume.js +2 -2
  63. package/dist/esm/lib/runner/snapshot.js +3 -2
  64. package/dist/esm/lib/scope/ScopeFacade.js +2 -2
  65. package/dist/esm/lib/scope/state/zod/scopeFactory.js +2 -2
  66. package/dist/esm/recorders.d.ts +2 -3
  67. package/dist/esm/recorders.js +1 -1
  68. package/dist/esm/trace.d.ts +11 -57
  69. package/dist/esm/trace.js +10 -68
  70. package/dist/index.js +3 -3
  71. package/dist/lib/builder/FlowChartBuilder.js +5 -5
  72. package/dist/lib/builder/structure/StructureRecorder.js +1 -1
  73. package/dist/lib/capture/index.js +2 -4
  74. package/dist/lib/engine/graph/prefixNodeTree.js +5 -5
  75. package/dist/lib/engine/handlers/ResumeEntry.js +4 -4
  76. package/dist/lib/engine/handlers/SubflowExecutor.js +5 -9
  77. package/dist/lib/engine/index.js +1 -1
  78. package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +1 -1
  79. package/dist/lib/engine/narrative/index.js +1 -1
  80. package/dist/lib/engine/narrative/narrativeTypes.js +1 -1
  81. package/dist/lib/engine/traversal/FlowchartTraverser.js +8 -10
  82. package/dist/lib/engine/traversalContext.js +4 -4
  83. package/dist/lib/engine/types.js +1 -1
  84. package/dist/lib/engine/walkSubflowSpec.js +3 -3
  85. package/dist/lib/ids/reservedIds.js +5 -5
  86. package/dist/lib/memory/DiagnosticCollector.js +3 -3
  87. package/dist/lib/memory/StageContext.js +3 -3
  88. package/dist/lib/memory/borrowedMutation.js +3 -3
  89. package/dist/lib/memory/index.js +7 -42
  90. package/dist/lib/memory/redaction.js +3 -3
  91. package/dist/lib/memory/runPolicy.js +1 -1
  92. package/dist/lib/reactive/createTypedScope.js +3 -3
  93. package/dist/lib/reactive/writeTraps.js +4 -4
  94. package/dist/lib/recorder/ControlDepRecorder.js +3 -2
  95. package/dist/lib/recorder/EmitRecorder.js +1 -1
  96. package/dist/lib/recorder/InOutRecorder.js +3 -3
  97. package/dist/lib/recorder/qualityTrace.js +4 -4
  98. package/dist/lib/runner/DeferredObserverTier.js +3 -3
  99. package/dist/lib/runner/ExecutionRuntime.js +6 -9
  100. package/dist/lib/runner/FlowChartExecutor.js +1 -1
  101. package/dist/lib/runner/getSubtreeSnapshot.js +6 -6
  102. package/dist/lib/runner/resume.js +3 -3
  103. package/dist/lib/runner/snapshot.js +6 -5
  104. package/dist/lib/scope/ScopeFacade.js +3 -3
  105. package/dist/lib/scope/state/zod/scopeFactory.js +4 -4
  106. package/dist/recorders.js +1 -1
  107. package/dist/trace.js +18 -120
  108. package/dist/types/advanced.d.ts +24 -58
  109. package/dist/types/index.d.ts +5 -8
  110. package/dist/types/lib/builder/FlowChartBuilder.d.ts +1 -1
  111. package/dist/types/lib/builder/structure/StructureRecorder.d.ts +1 -1
  112. package/dist/types/lib/capture/index.d.ts +0 -1
  113. package/dist/types/lib/engine/handlers/ResumeEntry.d.ts +3 -3
  114. package/dist/types/lib/engine/handlers/SubflowExecutor.d.ts +1 -2
  115. package/dist/types/lib/engine/index.d.ts +1 -1
  116. package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +4 -4
  117. package/dist/types/lib/engine/narrative/index.d.ts +1 -1
  118. package/dist/types/lib/engine/narrative/narrativeTypes.d.ts +1 -11
  119. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +2 -10
  120. package/dist/types/lib/engine/traversalContext.d.ts +1 -1
  121. package/dist/types/lib/engine/types.d.ts +2 -10
  122. package/dist/types/lib/memory/StageContext.d.ts +2 -4
  123. package/dist/types/lib/memory/index.d.ts +6 -21
  124. package/dist/types/lib/memory/redaction.d.ts +1 -1
  125. package/dist/types/lib/memory/runPolicy.d.ts +3 -2
  126. package/dist/types/lib/recorder/ControlDepRecorder.d.ts +3 -2
  127. package/dist/types/lib/recorder/EmitRecorder.d.ts +1 -1
  128. package/dist/types/lib/recorder/qualityTrace.d.ts +1 -1
  129. package/dist/types/lib/runner/ExecutionRuntime.d.ts +4 -5
  130. package/dist/types/lib/runner/FlowChartExecutor.d.ts +1 -1
  131. package/dist/types/lib/runner/getSubtreeSnapshot.d.ts +1 -1
  132. package/dist/types/recorders.d.ts +2 -3
  133. package/dist/types/trace.d.ts +11 -57
  134. package/package.json +6 -15
  135. package/dist/esm/lib/capture/freeze.d.ts +0 -91
  136. package/dist/esm/lib/capture/freeze.js +0 -314
  137. package/dist/esm/lib/capture/ownData.d.ts +0 -7
  138. package/dist/esm/lib/capture/ownData.js +0 -15
  139. package/dist/esm/lib/capture/valueKinds.d.ts +0 -57
  140. package/dist/esm/lib/capture/valueKinds.js +0 -142
  141. package/dist/esm/lib/ids/runtimeStageId.d.ts +0 -173
  142. package/dist/esm/lib/ids/runtimeStageId.js +0 -194
  143. package/dist/esm/lib/memory/EventLog.d.ts +0 -105
  144. package/dist/esm/lib/memory/EventLog.js +0 -148
  145. package/dist/esm/lib/memory/RecordFrame.d.ts +0 -232
  146. package/dist/esm/lib/memory/RecordFrame.js +0 -296
  147. package/dist/esm/lib/memory/SharedMemory.d.ts +0 -46
  148. package/dist/esm/lib/memory/SharedMemory.js +0 -88
  149. package/dist/esm/lib/memory/TransactionBuffer.d.ts +0 -521
  150. package/dist/esm/lib/memory/TransactionBuffer.js +0 -946
  151. package/dist/esm/lib/memory/admission.d.ts +0 -81
  152. package/dist/esm/lib/memory/admission.js +0 -153
  153. package/dist/esm/lib/memory/backtrack.d.ts +0 -286
  154. package/dist/esm/lib/memory/backtrack.js +0 -457
  155. package/dist/esm/lib/memory/commitLogUtils.d.ts +0 -217
  156. package/dist/esm/lib/memory/commitLogUtils.js +0 -384
  157. package/dist/esm/lib/memory/deltaEncoding.d.ts +0 -66
  158. package/dist/esm/lib/memory/deltaEncoding.js +0 -122
  159. package/dist/esm/lib/memory/equality.d.ts +0 -93
  160. package/dist/esm/lib/memory/equality.js +0 -262
  161. package/dist/esm/lib/memory/eventPosition.d.ts +0 -18
  162. package/dist/esm/lib/memory/eventPosition.js +0 -2
  163. package/dist/esm/lib/memory/honesty.d.ts +0 -93
  164. package/dist/esm/lib/memory/honesty.js +0 -92
  165. package/dist/esm/lib/memory/keyPaths.d.ts +0 -125
  166. package/dist/esm/lib/memory/keyPaths.js +0 -227
  167. package/dist/esm/lib/memory/logModel.d.ts +0 -76
  168. package/dist/esm/lib/memory/logModel.js +0 -364
  169. package/dist/esm/lib/memory/merge.d.ts +0 -26
  170. package/dist/esm/lib/memory/merge.js +0 -60
  171. package/dist/esm/lib/memory/pathOps.d.ts +0 -115
  172. package/dist/esm/lib/memory/pathOps.js +0 -290
  173. package/dist/esm/lib/memory/paths.d.ts +0 -52
  174. package/dist/esm/lib/memory/paths.js +0 -57
  175. package/dist/esm/lib/memory/placeholders.d.ts +0 -39
  176. package/dist/esm/lib/memory/placeholders.js +0 -40
  177. package/dist/esm/lib/memory/recordCommit.d.ts +0 -45
  178. package/dist/esm/lib/memory/recordCommit.js +0 -61
  179. package/dist/esm/lib/memory/scrub.d.ts +0 -53
  180. package/dist/esm/lib/memory/scrub.js +0 -74
  181. package/dist/esm/lib/memory/types.d.ts +0 -209
  182. package/dist/esm/lib/memory/types.js +0 -10
  183. package/dist/esm/lib/memory/utils.d.ts +0 -73
  184. package/dist/esm/lib/memory/utils.js +0 -159
  185. package/dist/esm/lib/memory/verbs.d.ts +0 -333
  186. package/dist/esm/lib/memory/verbs.js +0 -427
  187. package/dist/esm/lib/recorder/CommitRangeIndex.d.ts +0 -147
  188. package/dist/esm/lib/recorder/CommitRangeIndex.js +0 -207
  189. package/dist/esm/lib/scope/detectCircular.d.ts +0 -13
  190. package/dist/esm/lib/scope/detectCircular.js +0 -14
  191. package/dist/esm/lib/scope/recorders/summarizeValue.d.ts +0 -5
  192. package/dist/esm/lib/scope/recorders/summarizeValue.js +0 -6
  193. package/dist/esm/lib/slice/elementProvenance.d.ts +0 -81
  194. package/dist/esm/lib/slice/elementProvenance.js +0 -190
  195. package/dist/esm/lib/slice/forwardSliceForKey.d.ts +0 -88
  196. package/dist/esm/lib/slice/forwardSliceForKey.js +0 -243
  197. package/dist/esm/lib/slice/index.d.ts +0 -25
  198. package/dist/esm/lib/slice/index.js +0 -25
  199. package/dist/esm/lib/slice/keyIndex.d.ts +0 -137
  200. package/dist/esm/lib/slice/keyIndex.js +0 -293
  201. package/dist/esm/lib/slice/keyTimeline.d.ts +0 -49
  202. package/dist/esm/lib/slice/keyTimeline.js +0 -113
  203. package/dist/esm/lib/slice/keysReadSources.d.ts +0 -51
  204. package/dist/esm/lib/slice/keysReadSources.js +0 -95
  205. package/dist/esm/lib/slice/serialize.d.ts +0 -78
  206. package/dist/esm/lib/slice/serialize.js +0 -278
  207. package/dist/esm/lib/slice/sliceForKey.d.ts +0 -47
  208. package/dist/esm/lib/slice/sliceForKey.js +0 -88
  209. package/dist/esm/lib/slice/types.d.ts +0 -567
  210. package/dist/esm/lib/slice/types.js +0 -25
  211. package/dist/esm/lib/time-travel/axis.d.ts +0 -119
  212. package/dist/esm/lib/time-travel/axis.js +0 -179
  213. package/dist/esm/lib/time-travel/bundles.d.ts +0 -77
  214. package/dist/esm/lib/time-travel/bundles.js +0 -136
  215. package/dist/esm/lib/time-travel/chain.d.ts +0 -93
  216. package/dist/esm/lib/time-travel/chain.js +0 -188
  217. package/dist/esm/lib/time-travel/commitStops.d.ts +0 -55
  218. package/dist/esm/lib/time-travel/commitStops.js +0 -202
  219. package/dist/esm/lib/time-travel/index.d.ts +0 -22
  220. package/dist/esm/lib/time-travel/index.js +0 -21
  221. package/dist/esm/lib/time-travel/stateAt.d.ts +0 -102
  222. package/dist/esm/lib/time-travel/stateAt.js +0 -153
  223. package/dist/esm/lib/time-travel/tagStops.d.ts +0 -72
  224. package/dist/esm/lib/time-travel/tagStops.js +0 -102
  225. package/dist/esm/lib/time-travel/timeTravel.d.ts +0 -70
  226. package/dist/esm/lib/time-travel/timeTravel.js +0 -360
  227. package/dist/esm/lib/time-travel/types.d.ts +0 -470
  228. package/dist/esm/lib/time-travel/types.js +0 -23
  229. package/dist/esm/write.d.ts +0 -47
  230. package/dist/esm/write.js +0 -46
  231. package/dist/lib/capture/freeze.js +0 -320
  232. package/dist/lib/capture/ownData.js +0 -19
  233. package/dist/lib/capture/valueKinds.js +0 -146
  234. package/dist/lib/ids/runtimeStageId.js +0 -210
  235. package/dist/lib/memory/EventLog.js +0 -152
  236. package/dist/lib/memory/RecordFrame.js +0 -300
  237. package/dist/lib/memory/SharedMemory.js +0 -92
  238. package/dist/lib/memory/TransactionBuffer.js +0 -950
  239. package/dist/lib/memory/admission.js +0 -159
  240. package/dist/lib/memory/backtrack.js +0 -463
  241. package/dist/lib/memory/commitLogUtils.js +0 -399
  242. package/dist/lib/memory/deltaEncoding.js +0 -128
  243. package/dist/lib/memory/equality.js +0 -266
  244. package/dist/lib/memory/eventPosition.js +0 -3
  245. package/dist/lib/memory/honesty.js +0 -95
  246. package/dist/lib/memory/keyPaths.js +0 -243
  247. package/dist/lib/memory/logModel.js +0 -372
  248. package/dist/lib/memory/merge.js +0 -64
  249. package/dist/lib/memory/pathOps.js +0 -306
  250. package/dist/lib/memory/paths.js +0 -62
  251. package/dist/lib/memory/placeholders.js +0 -43
  252. package/dist/lib/memory/recordCommit.js +0 -65
  253. package/dist/lib/memory/scrub.js +0 -79
  254. package/dist/lib/memory/types.js +0 -11
  255. package/dist/lib/memory/utils.js +0 -178
  256. package/dist/lib/memory/verbs.js +0 -444
  257. package/dist/lib/recorder/CommitRangeIndex.js +0 -211
  258. package/dist/lib/scope/detectCircular.js +0 -21
  259. package/dist/lib/scope/recorders/summarizeValue.js +0 -10
  260. package/dist/lib/slice/elementProvenance.js +0 -195
  261. package/dist/lib/slice/forwardSliceForKey.js +0 -247
  262. package/dist/lib/slice/index.js +0 -42
  263. package/dist/lib/slice/keyIndex.js +0 -313
  264. package/dist/lib/slice/keyTimeline.js +0 -117
  265. package/dist/lib/slice/keysReadSources.js +0 -101
  266. package/dist/lib/slice/serialize.js +0 -286
  267. package/dist/lib/slice/sliceForKey.js +0 -93
  268. package/dist/lib/slice/types.js +0 -26
  269. package/dist/lib/time-travel/axis.js +0 -184
  270. package/dist/lib/time-travel/bundles.js +0 -144
  271. package/dist/lib/time-travel/chain.js +0 -193
  272. package/dist/lib/time-travel/commitStops.js +0 -206
  273. package/dist/lib/time-travel/index.js +0 -32
  274. package/dist/lib/time-travel/stateAt.js +0 -160
  275. package/dist/lib/time-travel/tagStops.js +0 -106
  276. package/dist/lib/time-travel/timeTravel.js +0 -364
  277. package/dist/lib/time-travel/types.js +0 -24
  278. package/dist/types/lib/capture/freeze.d.ts +0 -91
  279. package/dist/types/lib/capture/ownData.d.ts +0 -7
  280. package/dist/types/lib/capture/valueKinds.d.ts +0 -57
  281. package/dist/types/lib/ids/runtimeStageId.d.ts +0 -173
  282. package/dist/types/lib/memory/EventLog.d.ts +0 -105
  283. package/dist/types/lib/memory/RecordFrame.d.ts +0 -232
  284. package/dist/types/lib/memory/SharedMemory.d.ts +0 -46
  285. package/dist/types/lib/memory/TransactionBuffer.d.ts +0 -521
  286. package/dist/types/lib/memory/admission.d.ts +0 -81
  287. package/dist/types/lib/memory/backtrack.d.ts +0 -286
  288. package/dist/types/lib/memory/commitLogUtils.d.ts +0 -217
  289. package/dist/types/lib/memory/deltaEncoding.d.ts +0 -66
  290. package/dist/types/lib/memory/equality.d.ts +0 -93
  291. package/dist/types/lib/memory/eventPosition.d.ts +0 -18
  292. package/dist/types/lib/memory/honesty.d.ts +0 -93
  293. package/dist/types/lib/memory/keyPaths.d.ts +0 -125
  294. package/dist/types/lib/memory/logModel.d.ts +0 -76
  295. package/dist/types/lib/memory/merge.d.ts +0 -26
  296. package/dist/types/lib/memory/pathOps.d.ts +0 -115
  297. package/dist/types/lib/memory/paths.d.ts +0 -52
  298. package/dist/types/lib/memory/placeholders.d.ts +0 -39
  299. package/dist/types/lib/memory/recordCommit.d.ts +0 -45
  300. package/dist/types/lib/memory/scrub.d.ts +0 -53
  301. package/dist/types/lib/memory/types.d.ts +0 -209
  302. package/dist/types/lib/memory/utils.d.ts +0 -73
  303. package/dist/types/lib/memory/verbs.d.ts +0 -333
  304. package/dist/types/lib/recorder/CommitRangeIndex.d.ts +0 -147
  305. package/dist/types/lib/scope/detectCircular.d.ts +0 -13
  306. package/dist/types/lib/scope/recorders/summarizeValue.d.ts +0 -5
  307. package/dist/types/lib/slice/elementProvenance.d.ts +0 -81
  308. package/dist/types/lib/slice/forwardSliceForKey.d.ts +0 -88
  309. package/dist/types/lib/slice/index.d.ts +0 -25
  310. package/dist/types/lib/slice/keyIndex.d.ts +0 -137
  311. package/dist/types/lib/slice/keyTimeline.d.ts +0 -49
  312. package/dist/types/lib/slice/keysReadSources.d.ts +0 -51
  313. package/dist/types/lib/slice/serialize.d.ts +0 -78
  314. package/dist/types/lib/slice/sliceForKey.d.ts +0 -47
  315. package/dist/types/lib/slice/types.d.ts +0 -567
  316. package/dist/types/lib/time-travel/axis.d.ts +0 -119
  317. package/dist/types/lib/time-travel/bundles.d.ts +0 -77
  318. package/dist/types/lib/time-travel/chain.d.ts +0 -93
  319. package/dist/types/lib/time-travel/commitStops.d.ts +0 -55
  320. package/dist/types/lib/time-travel/index.d.ts +0 -22
  321. package/dist/types/lib/time-travel/stateAt.d.ts +0 -102
  322. package/dist/types/lib/time-travel/tagStops.d.ts +0 -72
  323. package/dist/types/lib/time-travel/timeTravel.d.ts +0 -70
  324. package/dist/types/lib/time-travel/types.d.ts +0 -470
  325. package/dist/types/write.d.ts +0 -47
  326. package/dist/write.js +0 -52
package/dist/trace.js CHANGED
@@ -1,143 +1,41 @@
1
1
  "use strict";
2
2
  /**
3
- * footprintjs/trace — Execution tracing, debugging, and backtracking utilities.
3
+ * footprintjs/trace — recorder stores, topology, chart boundaries and control dependencies.
4
4
  *
5
- * Runtime stage IDs, commit log queries, and recorder base classes.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { parseRuntimeStageId, findLastWriter, KeyedStore, SequenceStore } from 'footprintjs/trace';
10
- *
11
- * // Parse a runtimeStageId
12
- * const { stageId, executionIndex } = parseRuntimeStageId('call-llm#5');
13
- *
14
- * // Backtrack: who wrote 'systemPrompt' before commit at idx 8?
15
- * const writer = findLastWriter(commitLog, 'systemPrompt', 8);
16
- *
17
- * // v5 primary API: compose a Store as a field (one purpose per recorder).
18
- * // KeyedStore<T> — 1:1 (one entry per step)
19
- * class MyRecorder {
20
- * readonly id = 'my-recorder';
21
- * private store = new KeyedStore<MyEntry>();
22
- * onWrite(e) { this.store.set(e.runtimeStageId, { ... }); }
23
- * }
24
- *
25
- * // SequenceStore<T> — 1:N (multiple entries per step, ordering matters)
26
- * class AuditRecorder {
27
- * readonly id = 'audit';
28
- * private store = new SequenceStore<AuditEntry>();
29
- * onRead(e) { this.store.push({ runtimeStageId: e.runtimeStageId, ... }); }
30
- * }
31
- * ```
5
+ * Record readers, types and runtime-ID grammar belong to `foottrace`; record path helpers belong
6
+ * to `foottrace/paths`, and record writers to `foottrace/write`. This door exports only engine-owned
7
+ * observer tools. Record symbols are never re-exported across the package boundary.
32
8
  */
33
9
  Object.defineProperty(exports, "__esModule", { value: true });
34
- exports.BoundaryStateStore = exports.HONESTY_CODES = exports.sliceToJSON = exports.sliceForKey = exports.resolveKeysReadSource = exports.normaliseStateKey = exports.keyTimeline = exports.keysReadFromMap = exports.keysReadFromExecutionTree = exports.forwardSliceToJSON = exports.forwardSliceForKey = exports.formatTimeline = exports.formatSlice = exports.formatForwardSlice = exports.elementProvenance = exports.arrayProvenance = exports.formatCausalChain = exports.flattenCausalDAG = exports.causalChain = exports.timeTravel = exports.tagStops = exports.stateAt = exports.splitAxis = exports.isCommitBundle = exports.filterStops = exports.commitStopsStrategy = exports.commitStops = exports.recordsPhases = exports.inferLegacyPhases = exports.findLastWriterWithBasis = exports.findLastWriter = exports.findCommits = exports.findCommit = exports.commitValueAtWithBasis = exports.commitValueAt = exports.commitIndexOf = exports.buildCommitIndex = exports.applySmartMerge = exports.UnknownVerbError = exports.pathSegments = exports.walkSubflowSpec = exports.parseBranchSegment = exports.isBranchSegment = exports.hasBranchSegmentMarker = exports.buildBranchSegment = exports.BRANCH_SEGMENT_MARKER = exports.splitStageId = exports.parseRuntimeStageId = exports.createExecutionCounter = exports.buildRuntimeStageId = void 0;
35
- exports.qualityTrace = exports.formatQualityTrace = exports.QualityRecorder = exports.controlDepRecorder = exports.ControlDepRecorder = exports.ROOT_SUBFLOW_ID = exports.ROOT_RUNTIME_STAGE_ID = exports.inOutRecorder = exports.InOutRecorder = exports.topologyRecorder = exports.TopologyRecorder = exports.CommitRangeIndex = exports.SequenceStore = exports.KeyedStore = void 0;
36
- var runtimeStageId_js_1 = require("./lib/ids/runtimeStageId.js");
37
- Object.defineProperty(exports, "buildRuntimeStageId", { enumerable: true, get: function () { return runtimeStageId_js_1.buildRuntimeStageId; } });
38
- Object.defineProperty(exports, "createExecutionCounter", { enumerable: true, get: function () { return runtimeStageId_js_1.createExecutionCounter; } });
39
- Object.defineProperty(exports, "parseRuntimeStageId", { enumerable: true, get: function () { return runtimeStageId_js_1.parseRuntimeStageId; } });
40
- Object.defineProperty(exports, "splitStageId", { enumerable: true, get: function () { return runtimeStageId_js_1.splitStageId; } });
41
- // Generated branch segments — the subflow path segments `addParallelForEach`
42
- // mints for its branches (`<stageId>~<index>`). A branch is addressed by the
43
- // ORDINARY grammar above, so nothing here is needed to READ one; these exist so
44
- // a consumer can TELL a generated branch from a hand-authored subflow (to label
45
- // it "branch 2 of review-chunks" instead of a subflow name), and so the
46
- // reserved marker is discoverable rather than folklore.
47
- // Design: docs/design/execution-control.md.
10
+ exports.topologyRecorder = exports.TopologyRecorder = exports.SequenceStore = exports.qualityTrace = exports.formatQualityTrace = exports.QualityRecorder = exports.KeyedStore = exports.ROOT_SUBFLOW_ID = exports.ROOT_RUNTIME_STAGE_ID = exports.inOutRecorder = exports.InOutRecorder = exports.controlDepRecorder = exports.ControlDepRecorder = exports.BoundaryStateStore = exports.parseBranchSegment = exports.isBranchSegment = exports.hasBranchSegmentMarker = exports.buildBranchSegment = exports.BRANCH_SEGMENT_MARKER = exports.walkSubflowSpec = void 0;
11
+ var walkSubflowSpec_js_1 = require("./lib/engine/walkSubflowSpec.js");
12
+ Object.defineProperty(exports, "walkSubflowSpec", { enumerable: true, get: function () { return walkSubflowSpec_js_1.walkSubflowSpec; } });
48
13
  var branchSegment_js_1 = require("./lib/ids/branchSegment.js");
49
14
  Object.defineProperty(exports, "BRANCH_SEGMENT_MARKER", { enumerable: true, get: function () { return branchSegment_js_1.BRANCH_SEGMENT_MARKER; } });
50
15
  Object.defineProperty(exports, "buildBranchSegment", { enumerable: true, get: function () { return branchSegment_js_1.buildBranchSegment; } });
51
16
  Object.defineProperty(exports, "hasBranchSegmentMarker", { enumerable: true, get: function () { return branchSegment_js_1.hasBranchSegmentMarker; } });
52
17
  Object.defineProperty(exports, "isBranchSegment", { enumerable: true, get: function () { return branchSegment_js_1.isBranchSegment; } });
53
18
  Object.defineProperty(exports, "parseBranchSegment", { enumerable: true, get: function () { return branchSegment_js_1.parseBranchSegment; } });
54
- var walkSubflowSpec_js_1 = require("./lib/engine/walkSubflowSpec.js");
55
- Object.defineProperty(exports, "walkSubflowSpec", { enumerable: true, get: function () { return walkSubflowSpec_js_1.walkSubflowSpec; } });
56
- // Path segments — the supported way to take a `TraceEntry.path` apart. Paths
57
- // are joined with an ASCII Unit-Separator (never a dot: a state key may itself
58
- // contain a dot, so a dot separator would make `['a.b']` and `['a','b']`
59
- // indistinguishable), which is an encoding, not a display character. Render a
60
- // path through this instead of splitting on the delimiter yourself.
61
- var paths_js_1 = require("./lib/memory/paths.js");
62
- Object.defineProperty(exports, "pathSegments", { enumerable: true, get: function () { return paths_js_1.pathSegments; } });
63
- // The refusal the commit-log readers raise for a row whose verb is not
64
- // set | merge | append | delete (`commitValueAt`, `arrayProvenance`, and
65
- // `applySmartMerge` below): a foreign or corrupted log fails loudly,
66
- // naming the row, instead of being folded as a merge.
67
- var verbs_js_1 = require("./lib/memory/verbs.js");
68
- Object.defineProperty(exports, "UnknownVerbError", { enumerable: true, get: function () { return verbs_js_1.UnknownVerbError; } });
69
- var verbs_js_2 = require("./lib/memory/verbs.js");
70
- Object.defineProperty(exports, "applySmartMerge", { enumerable: true, get: function () { return verbs_js_2.applySmartMerge; } });
71
- var commitLogUtils_js_1 = require("./lib/memory/commitLogUtils.js");
72
- Object.defineProperty(exports, "buildCommitIndex", { enumerable: true, get: function () { return commitLogUtils_js_1.buildCommitIndex; } });
73
- Object.defineProperty(exports, "commitIndexOf", { enumerable: true, get: function () { return commitLogUtils_js_1.commitIndexOf; } });
74
- Object.defineProperty(exports, "commitValueAt", { enumerable: true, get: function () { return commitLogUtils_js_1.commitValueAt; } });
75
- Object.defineProperty(exports, "commitValueAtWithBasis", { enumerable: true, get: function () { return commitLogUtils_js_1.commitValueAtWithBasis; } });
76
- Object.defineProperty(exports, "findCommit", { enumerable: true, get: function () { return commitLogUtils_js_1.findCommit; } });
77
- Object.defineProperty(exports, "findCommits", { enumerable: true, get: function () { return commitLogUtils_js_1.findCommits; } });
78
- Object.defineProperty(exports, "findLastWriter", { enumerable: true, get: function () { return commitLogUtils_js_1.findLastWriter; } });
79
- Object.defineProperty(exports, "findLastWriterWithBasis", { enumerable: true, get: function () { return commitLogUtils_js_1.findLastWriterWithBasis; } });
80
- // One stage, one record (F8, 9.39.0): does a log record its continuations
81
- // (`CommitBundle.phase`), and — for a log written before it — the ONE legacy
82
- // reader that infers them the way 9.38.0 did.
83
- Object.defineProperty(exports, "inferLegacyPhases", { enumerable: true, get: function () { return commitLogUtils_js_1.inferLegacyPhases; } });
84
- Object.defineProperty(exports, "recordsPhases", { enumerable: true, get: function () { return commitLogUtils_js_1.recordsPhases; } });
85
- var index_js_1 = require("./lib/time-travel/index.js");
86
- Object.defineProperty(exports, "commitStops", { enumerable: true, get: function () { return index_js_1.commitStops; } });
87
- Object.defineProperty(exports, "commitStopsStrategy", { enumerable: true, get: function () { return index_js_1.commitStopsStrategy; } });
88
- Object.defineProperty(exports, "filterStops", { enumerable: true, get: function () { return index_js_1.filterStops; } });
89
- Object.defineProperty(exports, "isCommitBundle", { enumerable: true, get: function () { return index_js_1.isCommitBundle; } });
90
- Object.defineProperty(exports, "splitAxis", { enumerable: true, get: function () { return index_js_1.splitAxis; } });
91
- Object.defineProperty(exports, "stateAt", { enumerable: true, get: function () { return index_js_1.stateAt; } });
92
- Object.defineProperty(exports, "tagStops", { enumerable: true, get: function () { return index_js_1.tagStops; } });
93
- Object.defineProperty(exports, "timeTravel", { enumerable: true, get: function () { return index_js_1.timeTravel; } });
94
- var backtrack_js_1 = require("./lib/memory/backtrack.js");
95
- Object.defineProperty(exports, "causalChain", { enumerable: true, get: function () { return backtrack_js_1.causalChain; } });
96
- Object.defineProperty(exports, "flattenCausalDAG", { enumerable: true, get: function () { return backtrack_js_1.flattenCausalDAG; } });
97
- Object.defineProperty(exports, "formatCausalChain", { enumerable: true, get: function () { return backtrack_js_1.formatCausalChain; } });
98
- var index_js_2 = require("./lib/slice/index.js");
99
- Object.defineProperty(exports, "arrayProvenance", { enumerable: true, get: function () { return index_js_2.arrayProvenance; } });
100
- Object.defineProperty(exports, "elementProvenance", { enumerable: true, get: function () { return index_js_2.elementProvenance; } });
101
- Object.defineProperty(exports, "formatForwardSlice", { enumerable: true, get: function () { return index_js_2.formatForwardSlice; } });
102
- Object.defineProperty(exports, "formatSlice", { enumerable: true, get: function () { return index_js_2.formatSlice; } });
103
- Object.defineProperty(exports, "formatTimeline", { enumerable: true, get: function () { return index_js_2.formatTimeline; } });
104
- Object.defineProperty(exports, "forwardSliceForKey", { enumerable: true, get: function () { return index_js_2.forwardSliceForKey; } });
105
- Object.defineProperty(exports, "forwardSliceToJSON", { enumerable: true, get: function () { return index_js_2.forwardSliceToJSON; } });
106
- Object.defineProperty(exports, "keysReadFromExecutionTree", { enumerable: true, get: function () { return index_js_2.keysReadFromExecutionTree; } });
107
- Object.defineProperty(exports, "keysReadFromMap", { enumerable: true, get: function () { return index_js_2.keysReadFromMap; } });
108
- Object.defineProperty(exports, "keyTimeline", { enumerable: true, get: function () { return index_js_2.keyTimeline; } });
109
- Object.defineProperty(exports, "normaliseStateKey", { enumerable: true, get: function () { return index_js_2.normaliseStateKey; } });
110
- Object.defineProperty(exports, "resolveKeysReadSource", { enumerable: true, get: function () { return index_js_2.resolveKeysReadSource; } });
111
- Object.defineProperty(exports, "sliceForKey", { enumerable: true, get: function () { return index_js_2.sliceForKey; } });
112
- Object.defineProperty(exports, "sliceToJSON", { enumerable: true, get: function () { return index_js_2.sliceToJSON; } });
113
- var honesty_js_1 = require("./lib/memory/honesty.js");
114
- Object.defineProperty(exports, "HONESTY_CODES", { enumerable: true, get: function () { return honesty_js_1.HONESTY_CODES; } });
115
- // ── v5 Stores (concrete, composable — primary recorder API) ─────
116
- // Compose these via `new Store<T>()` as a field on your recorder
117
- // class. One purpose per recorder: stores are storage; recorders
118
- // are event-hook interface implementations.
119
19
  var BoundaryStateStore_js_1 = require("./lib/recorder/BoundaryStateStore.js");
120
20
  Object.defineProperty(exports, "BoundaryStateStore", { enumerable: true, get: function () { return BoundaryStateStore_js_1.BoundaryStateStore; } });
121
- var KeyedStore_js_1 = require("./lib/recorder/KeyedStore.js");
122
- Object.defineProperty(exports, "KeyedStore", { enumerable: true, get: function () { return KeyedStore_js_1.KeyedStore; } });
123
- var SequenceStore_js_1 = require("./lib/recorder/SequenceStore.js");
124
- Object.defineProperty(exports, "SequenceStore", { enumerable: true, get: function () { return SequenceStore_js_1.SequenceStore; } });
125
- var CommitRangeIndex_js_1 = require("./lib/recorder/CommitRangeIndex.js");
126
- Object.defineProperty(exports, "CommitRangeIndex", { enumerable: true, get: function () { return CommitRangeIndex_js_1.CommitRangeIndex; } });
127
- var TopologyRecorder_js_1 = require("./lib/recorder/TopologyRecorder.js");
128
- Object.defineProperty(exports, "TopologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.TopologyRecorder; } });
129
- Object.defineProperty(exports, "topologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.topologyRecorder; } });
21
+ var ControlDepRecorder_js_1 = require("./lib/recorder/ControlDepRecorder.js");
22
+ Object.defineProperty(exports, "ControlDepRecorder", { enumerable: true, get: function () { return ControlDepRecorder_js_1.ControlDepRecorder; } });
23
+ Object.defineProperty(exports, "controlDepRecorder", { enumerable: true, get: function () { return ControlDepRecorder_js_1.controlDepRecorder; } });
130
24
  var InOutRecorder_js_1 = require("./lib/recorder/InOutRecorder.js");
131
25
  Object.defineProperty(exports, "InOutRecorder", { enumerable: true, get: function () { return InOutRecorder_js_1.InOutRecorder; } });
132
26
  Object.defineProperty(exports, "inOutRecorder", { enumerable: true, get: function () { return InOutRecorder_js_1.inOutRecorder; } });
133
27
  Object.defineProperty(exports, "ROOT_RUNTIME_STAGE_ID", { enumerable: true, get: function () { return InOutRecorder_js_1.ROOT_RUNTIME_STAGE_ID; } });
134
28
  Object.defineProperty(exports, "ROOT_SUBFLOW_ID", { enumerable: true, get: function () { return InOutRecorder_js_1.ROOT_SUBFLOW_ID; } });
135
- var ControlDepRecorder_js_1 = require("./lib/recorder/ControlDepRecorder.js");
136
- Object.defineProperty(exports, "ControlDepRecorder", { enumerable: true, get: function () { return ControlDepRecorder_js_1.ControlDepRecorder; } });
137
- Object.defineProperty(exports, "controlDepRecorder", { enumerable: true, get: function () { return ControlDepRecorder_js_1.controlDepRecorder; } });
29
+ var KeyedStore_js_1 = require("./lib/recorder/KeyedStore.js");
30
+ Object.defineProperty(exports, "KeyedStore", { enumerable: true, get: function () { return KeyedStore_js_1.KeyedStore; } });
138
31
  var QualityRecorder_js_1 = require("./lib/recorder/QualityRecorder.js");
139
32
  Object.defineProperty(exports, "QualityRecorder", { enumerable: true, get: function () { return QualityRecorder_js_1.QualityRecorder; } });
140
33
  var qualityTrace_js_1 = require("./lib/recorder/qualityTrace.js");
141
34
  Object.defineProperty(exports, "formatQualityTrace", { enumerable: true, get: function () { return qualityTrace_js_1.formatQualityTrace; } });
142
35
  Object.defineProperty(exports, "qualityTrace", { enumerable: true, get: function () { return qualityTrace_js_1.qualityTrace; } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7Ozs7QUFJSCxpRUFLcUM7QUFKbkMsd0hBQUEsbUJBQW1CLE9BQUE7QUFDbkIsMkhBQUEsc0JBQXNCLE9BQUE7QUFDdEIsd0hBQUEsbUJBQW1CLE9BQUE7QUFDbkIsaUhBQUEsWUFBWSxPQUFBO0FBR2QsNkVBQTZFO0FBQzdFLDZFQUE2RTtBQUM3RSxnRkFBZ0Y7QUFDaEYsZ0ZBQWdGO0FBQ2hGLHdFQUF3RTtBQUN4RSx3REFBd0Q7QUFDeEQsNENBQTRDO0FBQzVDLCtEQU1vQztBQUxsQyx5SEFBQSxxQkFBcUIsT0FBQTtBQUNyQixzSEFBQSxrQkFBa0IsT0FBQTtBQUNsQiwwSEFBQSxzQkFBc0IsT0FBQTtBQUN0QixtSEFBQSxlQUFlLE9BQUE7QUFDZixzSEFBQSxrQkFBa0IsT0FBQTtBQU1wQixzRUFBa0U7QUFBekQscUhBQUEsZUFBZSxPQUFBO0FBRXhCLDZFQUE2RTtBQUM3RSwrRUFBK0U7QUFDL0UseUVBQXlFO0FBQ3pFLDhFQUE4RTtBQUM5RSxvRUFBb0U7QUFDcEUsa0RBQXFEO0FBQTVDLHdHQUFBLFlBQVksT0FBQTtBQUVyQix1RUFBdUU7QUFDdkUseUVBQXlFO0FBQ3pFLHFFQUFxRTtBQUNyRSxzREFBc0Q7QUFDdEQsa0RBQXlEO0FBQWhELDRHQUFBLGdCQUFnQixPQUFBO0FBV3pCLGtEQUF3RDtBQUEvQywyR0FBQSxlQUFlLE9BQUE7QUFheEIsb0VBY3dDO0FBYnRDLHFIQUFBLGdCQUFnQixPQUFBO0FBQ2hCLGtIQUFBLGFBQWEsT0FBQTtBQUNiLGtIQUFBLGFBQWEsT0FBQTtBQUNiLDJIQUFBLHNCQUFzQixPQUFBO0FBQ3RCLCtHQUFBLFVBQVUsT0FBQTtBQUNWLGdIQUFBLFdBQVcsT0FBQTtBQUNYLG1IQUFBLGNBQWMsT0FBQTtBQUNkLDRIQUFBLHVCQUF1QixPQUFBO0FBQ3ZCLDBFQUEwRTtBQUMxRSw2RUFBNkU7QUFDN0UsOENBQThDO0FBQzlDLHNIQUFBLGlCQUFpQixPQUFBO0FBQ2pCLGtIQUFBLGFBQWEsT0FBQTtBQTJDZix1REFTb0M7QUFSbEMsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsK0dBQUEsbUJBQW1CLE9BQUE7QUFDbkIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsMEdBQUEsY0FBYyxPQUFBO0FBQ2QscUdBQUEsU0FBUyxPQUFBO0FBQ1QsbUdBQUEsT0FBTyxPQUFBO0FBQ1Asb0dBQUEsUUFBUSxPQUFBO0FBQ1Isc0dBQUEsVUFBVSxPQUFBO0FBZ0JaLDBEQUE2RjtBQUFwRiwyR0FBQSxXQUFXLE9BQUE7QUFBRSxnSEFBQSxnQkFBZ0IsT0FBQTtBQUFFLGlIQUFBLGlCQUFpQixPQUFBO0FBMkN6RCxpREFlOEI7QUFkNUIsMkdBQUEsZUFBZSxPQUFBO0FBQ2YsNkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsMEdBQUEsY0FBYyxPQUFBO0FBQ2QsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIsOEdBQUEsa0JBQWtCLE9BQUE7QUFDbEIscUhBQUEseUJBQXlCLE9BQUE7QUFDekIsMkdBQUEsZUFBZSxPQUFBO0FBQ2YsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsNkdBQUEsaUJBQWlCLE9BQUE7QUFDakIsaUhBQUEscUJBQXFCLE9BQUE7QUFDckIsdUdBQUEsV0FBVyxPQUFBO0FBQ1gsdUdBQUEsV0FBVyxPQUFBO0FBY2Isc0RBQXdEO0FBQS9DLDJHQUFBLGFBQWEsT0FBQTtBQUV0QixtRUFBbUU7QUFDbkUsaUVBQWlFO0FBQ2pFLGlFQUFpRTtBQUNqRSw0Q0FBNEM7QUFDNUMsOEVBQTBFO0FBQWpFLDJIQUFBLGtCQUFrQixPQUFBO0FBQzNCLDhEQUEwRDtBQUFqRCwyR0FBQSxVQUFVLE9BQUE7QUFDbkIsb0VBQWdFO0FBQXZELGlIQUFBLGFBQWEsT0FBQTtBQVN0QiwwRUFBc0U7QUFBN0QsdUhBQUEsZ0JBQWdCLE9BQUE7QUFVekIsMEVBQXdGO0FBQS9FLHVIQUFBLGdCQUFnQixPQUFBO0FBQUUsdUhBQUEsZ0JBQWdCLE9BQUE7QUFLM0Msb0VBQXVIO0FBQTlHLGlIQUFBLGFBQWEsT0FBQTtBQUFFLGlIQUFBLGFBQWEsT0FBQTtBQUFFLHlIQUFBLHFCQUFxQixPQUFBO0FBQUUsbUhBQUEsZUFBZSxPQUFBO0FBTzdFLDhFQUE4RjtBQUFyRiwySEFBQSxrQkFBa0IsT0FBQTtBQUFFLDJIQUFBLGtCQUFrQixPQUFBO0FBSS9DLHdFQUFvRTtBQUEzRCxxSEFBQSxlQUFlLE9BQUE7QUFJeEIsa0VBQWtGO0FBQXpFLHFIQUFBLGtCQUFrQixPQUFBO0FBQUUsK0dBQUEsWUFBWSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBmb290cHJpbnRqcy90cmFjZSDigJQgRXhlY3V0aW9uIHRyYWNpbmcsIGRlYnVnZ2luZywgYW5kIGJhY2t0cmFja2luZyB1dGlsaXRpZXMuXG4gKlxuICogUnVudGltZSBzdGFnZSBJRHMsIGNvbW1pdCBsb2cgcXVlcmllcywgYW5kIHJlY29yZGVyIGJhc2UgY2xhc3Nlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgcGFyc2VSdW50aW1lU3RhZ2VJZCwgZmluZExhc3RXcml0ZXIsIEtleWVkU3RvcmUsIFNlcXVlbmNlU3RvcmUgfSBmcm9tICdmb290cHJpbnRqcy90cmFjZSc7XG4gKlxuICogLy8gUGFyc2UgYSBydW50aW1lU3RhZ2VJZFxuICogY29uc3QgeyBzdGFnZUlkLCBleGVjdXRpb25JbmRleCB9ID0gcGFyc2VSdW50aW1lU3RhZ2VJZCgnY2FsbC1sbG0jNScpO1xuICpcbiAqIC8vIEJhY2t0cmFjazogd2hvIHdyb3RlICdzeXN0ZW1Qcm9tcHQnIGJlZm9yZSBjb21taXQgYXQgaWR4IDg/XG4gKiBjb25zdCB3cml0ZXIgPSBmaW5kTGFzdFdyaXRlcihjb21taXRMb2csICdzeXN0ZW1Qcm9tcHQnLCA4KTtcbiAqXG4gKiAvLyB2NSBwcmltYXJ5IEFQSTogY29tcG9zZSBhIFN0b3JlIGFzIGEgZmllbGQgKG9uZSBwdXJwb3NlIHBlciByZWNvcmRlcikuXG4gKiAvLyBLZXllZFN0b3JlPFQ+IOKAlCAxOjEgKG9uZSBlbnRyeSBwZXIgc3RlcClcbiAqIGNsYXNzIE15UmVjb3JkZXIge1xuICogICByZWFkb25seSBpZCA9ICdteS1yZWNvcmRlcic7XG4gKiAgIHByaXZhdGUgc3RvcmUgPSBuZXcgS2V5ZWRTdG9yZTxNeUVudHJ5PigpO1xuICogICBvbldyaXRlKGUpIHsgdGhpcy5zdG9yZS5zZXQoZS5ydW50aW1lU3RhZ2VJZCwgeyAuLi4gfSk7IH1cbiAqIH1cbiAqXG4gKiAvLyBTZXF1ZW5jZVN0b3JlPFQ+IOKAlCAxOk4gKG11bHRpcGxlIGVudHJpZXMgcGVyIHN0ZXAsIG9yZGVyaW5nIG1hdHRlcnMpXG4gKiBjbGFzcyBBdWRpdFJlY29yZGVyIHtcbiAqICAgcmVhZG9ubHkgaWQgPSAnYXVkaXQnO1xuICogICBwcml2YXRlIHN0b3JlID0gbmV3IFNlcXVlbmNlU3RvcmU8QXVkaXRFbnRyeT4oKTtcbiAqICAgb25SZWFkKGUpIHsgdGhpcy5zdG9yZS5wdXNoKHsgcnVudGltZVN0YWdlSWQ6IGUucnVudGltZVN0YWdlSWQsIC4uLiB9KTsgfVxuICogfVxuICogYGBgXG4gKi9cblxuLy8gUnVudGltZSBzdGFnZSBJRCDigJQgdW5pcXVlIGV4ZWN1dGlvbiBzdGVwIGlkZW50aWZpZXJzXG5leHBvcnQgdHlwZSB7IENvbW1pdElkeCwgRXhlY3V0aW9uQ291bnRlciwgRXhlY3V0aW9uSW5kZXgsIFJ1bnRpbWVTdGFnZUlkIH0gZnJvbSAnLi9saWIvaWRzL3J1bnRpbWVTdGFnZUlkLmpzJztcbmV4cG9ydCB7XG4gIGJ1aWxkUnVudGltZVN0YWdlSWQsXG4gIGNyZWF0ZUV4ZWN1dGlvbkNvdW50ZXIsXG4gIHBhcnNlUnVudGltZVN0YWdlSWQsXG4gIHNwbGl0U3RhZ2VJZCxcbn0gZnJvbSAnLi9saWIvaWRzL3J1bnRpbWVTdGFnZUlkLmpzJztcblxuLy8gR2VuZXJhdGVkIGJyYW5jaCBzZWdtZW50cyDigJQgdGhlIHN1YmZsb3cgcGF0aCBzZWdtZW50cyBgYWRkUGFyYWxsZWxGb3JFYWNoYFxuLy8gbWludHMgZm9yIGl0cyBicmFuY2hlcyAoYDxzdGFnZUlkPn48aW5kZXg+YCkuIEEgYnJhbmNoIGlzIGFkZHJlc3NlZCBieSB0aGVcbi8vIE9SRElOQVJZIGdyYW1tYXIgYWJvdmUsIHNvIG5vdGhpbmcgaGVyZSBpcyBuZWVkZWQgdG8gUkVBRCBvbmU7IHRoZXNlIGV4aXN0IHNvXG4vLyBhIGNvbnN1bWVyIGNhbiBURUxMIGEgZ2VuZXJhdGVkIGJyYW5jaCBmcm9tIGEgaGFuZC1hdXRob3JlZCBzdWJmbG93ICh0byBsYWJlbFxuLy8gaXQgXCJicmFuY2ggMiBvZiByZXZpZXctY2h1bmtzXCIgaW5zdGVhZCBvZiBhIHN1YmZsb3cgbmFtZSksIGFuZCBzbyB0aGVcbi8vIHJlc2VydmVkIG1hcmtlciBpcyBkaXNjb3ZlcmFibGUgcmF0aGVyIHRoYW4gZm9sa2xvcmUuXG4vLyBEZXNpZ246IGRvY3MvZGVzaWduL2V4ZWN1dGlvbi1jb250cm9sLm1kLlxuZXhwb3J0IHtcbiAgQlJBTkNIX1NFR01FTlRfTUFSS0VSLFxuICBidWlsZEJyYW5jaFNlZ21lbnQsXG4gIGhhc0JyYW5jaFNlZ21lbnRNYXJrZXIsXG4gIGlzQnJhbmNoU2VnbWVudCxcbiAgcGFyc2VCcmFuY2hTZWdtZW50LFxufSBmcm9tICcuL2xpYi9pZHMvYnJhbmNoU2VnbWVudC5qcyc7XG5cbi8vIHdhbGtTdWJmbG93U3BlYyDigJQgZmxhdCBvcmRlcmVkIHRyYXZlcnNhbCBvZiBhIHN1YmZsb3cncyBzdHJ1Y3R1cmVcbi8vIChjb25zdW1lIHZpYSBTdHJ1Y3R1cmVSZWNvcmRlci5vblN1YmZsb3dNb3VudGVkJ3Mgc3ViZmxvd1NwZWMgcGF5bG9hZClcbmV4cG9ydCB0eXBlIHsgV2Fsa2VySXRlbSwgV2Fsa2VyT3B0aW9ucyB9IGZyb20gJy4vbGliL2VuZ2luZS93YWxrU3ViZmxvd1NwZWMuanMnO1xuZXhwb3J0IHsgd2Fsa1N1YmZsb3dTcGVjIH0gZnJvbSAnLi9saWIvZW5naW5lL3dhbGtTdWJmbG93U3BlYy5qcyc7XG5cbi8vIFBhdGggc2VnbWVudHMg4oCUIHRoZSBzdXBwb3J0ZWQgd2F5IHRvIHRha2UgYSBgVHJhY2VFbnRyeS5wYXRoYCBhcGFydC4gUGF0aHNcbi8vIGFyZSBqb2luZWQgd2l0aCBhbiBBU0NJSSBVbml0LVNlcGFyYXRvciAobmV2ZXIgYSBkb3Q6IGEgc3RhdGUga2V5IG1heSBpdHNlbGZcbi8vIGNvbnRhaW4gYSBkb3QsIHNvIGEgZG90IHNlcGFyYXRvciB3b3VsZCBtYWtlIGBbJ2EuYiddYCBhbmQgYFsnYScsJ2InXWBcbi8vIGluZGlzdGluZ3Vpc2hhYmxlKSwgd2hpY2ggaXMgYW4gZW5jb2RpbmcsIG5vdCBhIGRpc3BsYXkgY2hhcmFjdGVyLiBSZW5kZXIgYVxuLy8gcGF0aCB0aHJvdWdoIHRoaXMgaW5zdGVhZCBvZiBzcGxpdHRpbmcgb24gdGhlIGRlbGltaXRlciB5b3Vyc2VsZi5cbmV4cG9ydCB7IHBhdGhTZWdtZW50cyB9IGZyb20gJy4vbGliL21lbW9yeS9wYXRocy5qcyc7XG5cbi8vIFRoZSByZWZ1c2FsIHRoZSBjb21taXQtbG9nIHJlYWRlcnMgcmFpc2UgZm9yIGEgcm93IHdob3NlIHZlcmIgaXMgbm90XG4vLyBzZXQgfCBtZXJnZSB8IGFwcGVuZCB8IGRlbGV0ZSAoYGNvbW1pdFZhbHVlQXRgLCBgYXJyYXlQcm92ZW5hbmNlYCwgYW5kXG4vLyBgYXBwbHlTbWFydE1lcmdlYCBiZWxvdyk6IGEgZm9yZWlnbiBvciBjb3JydXB0ZWQgbG9nIGZhaWxzIGxvdWRseSxcbi8vIG5hbWluZyB0aGUgcm93LCBpbnN0ZWFkIG9mIGJlaW5nIGZvbGRlZCBhcyBhIG1lcmdlLlxuZXhwb3J0IHsgVW5rbm93blZlcmJFcnJvciB9IGZyb20gJy4vbGliL21lbW9yeS92ZXJicy5qcyc7XG5cbi8vIFRoZSByZWNvcmQncyBvd24gc2hhcGVzIOKAlCBvbmUgYnVuZGxlIHBlciBleGVjdXRlZCBzdGFnZSAoYENvbW1pdEJ1bmRsZWApLCBpdHNcbi8vIHJvd3MgKGBUcmFjZUVudHJ5YCkgYW5kIGl0cyB2YWx1ZSBwYXRjaGVzIChgTWVtb3J5UGF0Y2hgKSDigJQgYW5kIHRoZSBvbmUgZm9sZFxuLy8gb2YgYSBidW5kbGUgb250byBhIHN0YXRlIHRoYXQgaGFuZHMgYmFjayBhIGZ1bGx5IGRldGFjaGVkIHJlc3VsdFxuLy8gKGBhcHBseVNtYXJ0TWVyZ2VgLCB0aGUgdmVyYiBsYXcncyBwdWJsaWMgZG9vcikuIEFsc28gb24gYC9hZHZhbmNlZGAgdW50aWwgMTAuMC4wO1xuLy8gYSByZWNvcmQgaXMgV1JJVFRFTiB0aHJvdWdoIGBmb290cHJpbnRqcy93cml0ZWAuIFNlZSBkb2NzL2d1aWRlcy9yZWNvcmQtY29udHJhY3QubWQuXG5leHBvcnQgdHlwZSB7IENvbW1pdEJ1bmRsZSwgTWVtb3J5UGF0Y2gsIFRyYWNlRW50cnkgfSBmcm9tICcuL2xpYi9tZW1vcnkvdHlwZXMuanMnO1xuLy8gVGhlIGV4ZWN1dGlvbiB0cmVlIGFzIHRoZSByZWFkZXJzIHJlYWQgaXQgKEM2KTogd2hhdCBgY29tbWl0U3RvcHNgLCBgdGFnU3RvcHNgIGFuZFxuLy8gYGtleXNSZWFkRnJvbUV4ZWN1dGlvblRyZWVgIHRha2Ug4oCUIGEgYFN0YWdlU25hcHNob3RgIGlzIG9uZSwgYW5kIHNvIGlzIGEgc3RvcmVkIHRyZWUuXG5leHBvcnQgdHlwZSB7IEV4ZWN1dGlvblRyZWUgfSBmcm9tICcuL2xpYi9tZW1vcnkvdHlwZXMuanMnO1xuZXhwb3J0IHsgYXBwbHlTbWFydE1lcmdlIH0gZnJvbSAnLi9saWIvbWVtb3J5L3ZlcmJzLmpzJztcblxuLy8gQ29tbWl0IGxvZyBxdWVyaWVzIOKAlCB0eXBlZCB1dGlsaXRpZXMgZm9yIGJhY2t0cmFja2luZy5cbi8vIGNvbW1pdFZhbHVlQXQgcmVjb25zdHJ1Y3RzIHRoZSBGVUxMIHZhbHVlIG9mIGEga2V5IGF0IGEgY29tbWl0IGluZGV4IOKAlFxuLy8gcmVxdWlyZWQgdW5kZXIgYGNvbW1pdFZhbHVlczogJ2RlbHRhJ2AgKCMxM2MtQiksIHdoZXJlIGFuIGBhcHBlbmRgXG4vLyBidW5kbGUncyBgb3ZlcndyaXRlW2tleV1gIGhvbGRzIG9ubHkgdGhlIHRhaWwuXG5leHBvcnQgdHlwZSB7XG4gIFZhbHVlQmFzaXMsXG4gIFZhbHVlQmFzaXNPcHRpb25zLFxuICBWYWx1ZVdpdGhCYXNpcyxcbiAgV3JpdGVyQmFzaXMsXG4gIFdyaXRlcldpdGhCYXNpcyxcbn0gZnJvbSAnLi9saWIvbWVtb3J5L2NvbW1pdExvZ1V0aWxzLmpzJztcbmV4cG9ydCB7XG4gIGJ1aWxkQ29tbWl0SW5kZXgsXG4gIGNvbW1pdEluZGV4T2YsXG4gIGNvbW1pdFZhbHVlQXQsXG4gIGNvbW1pdFZhbHVlQXRXaXRoQmFzaXMsXG4gIGZpbmRDb21taXQsXG4gIGZpbmRDb21taXRzLFxuICBmaW5kTGFzdFdyaXRlcixcbiAgZmluZExhc3RXcml0ZXJXaXRoQmFzaXMsXG4gIC8vIE9uZSBzdGFnZSwgb25lIHJlY29yZCAoRjgsIDkuMzkuMCk6IGRvZXMgYSBsb2cgcmVjb3JkIGl0cyBjb250aW51YXRpb25zXG4gIC8vIChgQ29tbWl0QnVuZGxlLnBoYXNlYCksIGFuZCDigJQgZm9yIGEgbG9nIHdyaXR0ZW4gYmVmb3JlIGl0IOKAlCB0aGUgT05FIGxlZ2FjeVxuICAvLyByZWFkZXIgdGhhdCBpbmZlcnMgdGhlbSB0aGUgd2F5IDkuMzguMCBkaWQuXG4gIGluZmVyTGVnYWN5UGhhc2VzLFxuICByZWNvcmRzUGhhc2VzLFxufSBmcm9tICcuL2xpYi9tZW1vcnkvY29tbWl0TG9nVXRpbHMuanMnO1xuZXhwb3J0IHR5cGUgeyBDb21taXRQaGFzZSB9IGZyb20gJy4vbGliL21lbW9yeS90eXBlcy5qcyc7XG5cbi8vIOKUgOKUgCB0aW1lLXRyYXZlbC8g4oCUIHRoZSBSRUFERVInUyBjdXJzb3Igb3ZlciBhIGZpbmlzaGVkIHRyYWNlIOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgFxuLy8gQSBUcmFjZSBpcyB3aGF0IHRoZSBydW4gcmVjb3JkZWQ7IHRpbWUgdHJhdmVsIGlzIGEgY3Vyc29yIG92ZXIgaXQgd2l0aCBhXG4vLyBGb2xkIGF0IGVhY2ggc3RvcC4gSXQgaXMgTk9UIHRoZSBlbmdpbmUncyB3YWxrIGFuZCBuZXZlciBiZWNvbWVzIGEgc2Vjb25kXG4vLyBsaXZlIGN1cnNvcjogZXZlcnl0aGluZyBiZWxvdyBpcyBhIHJlYWQtdGltZSBxdWVyeSBvdmVyIGFscmVhZHktY29sbGVjdGVkXG4vLyBkYXRhLlxuLy9cbi8vIGBzdGF0ZUF0KHNuYXBzaG90IHwgc3VidHJlZSwgY29tbWl0SWR4KWAgaXMgdGhlIGZvbGQg4oCUIHRoZSBydW4nc1xuLy8gYGluaXRpYWxTdGF0ZWAgcmVwbGF5ZWQgdGhyb3VnaCBgY29tbWl0TG9nWzAuLmNvbW1pdElkeF1gIHdpdGggdGhlIFNBTUUgdmVyYlxuLy8gc3dpdGNoIHRoZSBsaXZlIGNvbW1pdCB1c2VzLCByZXR1cm5lZCBkZXRhY2hlZCBhbmQgZnJvemVuLCBhbmQgaG9uZXN0IGFib3V0XG4vLyBob3cgaXQgd2FzIGRlcml2ZWQgKGBiYXNpc2ApIGFuZCB3aGVyZSB0aGUgbG9nIHdhcyBzY3J1YmJlZCAoYHJlZGFjdGVkYCkuXG4vL1xuLy8gYHRpbWVUcmF2ZWwoc25hcHNob3QpYCBpcyB0aGUgY3Vyc29yOiBzdG9wcywgcHJldi9uZXh0L2p1bXBUbywgbWFya3MgYmVzaWRlXG4vLyB0aGUgbG9nLCBhbmQgYGRyaWxsKG1vdW50KWAgaW50byBhIHN1YmZsb3cncyBvd24gbG9nIOKAlCB0aGUgc2FtZSBpbnRlcmZhY2UsXG4vLyBpdHMgb3duIGJhc2UuIEhvdyBzdG9wcyBhcmUgREVSSVZFRCBpcyB0aGUgc2VhbSAoYFRpbWVUcmF2ZWxTdHJhdGVneWApO1xuLy8gZm9vdHByaW50anMgc2hpcHMgYGNvbW1pdFN0b3BzYCAob25lIHN0b3AgcGVyIGV4ZWN1dGVkIHN0YWdlKSBiZWNhdXNlIHRoYXRcbi8vIGlzIHRoZSBvbmx5IHN0b3AgZ3JhbW1hciB0aGUgc3Vic3RyYXRlIGl0c2VsZiBrbm93cyDigJQgYW5kLCBzaW5jZSA5LjIxLjAsXG4vLyBgdGFnU3RvcHModGFncz8pYDogdGhlIHN0b3BzIGEgY2hhcnQgREVDTEFSRUQgYXQgYnVpbGQgdGltZSAoYC50YWcoKWApLFxuLy8gcmVhZCBiYWNrIG9mZiBgQ29tbWl0QnVuZGxlLnRhZ3NgLCBzbyBhIHN0b3JlZCByZWNvcmRpbmcgc2NydWJzIGJ5IGl0cyBvd25cbi8vIG1pbGVzdG9uZXMgd2l0aCBubyBpZCBjb252ZW50aW9ucyBpbiB0aGUgcmVhZGVyLlxuLy8gU2VlIHNyYy9saWIvdGltZS10cmF2ZWwvUkVBRE1FLm1kLlxuZXhwb3J0IHR5cGUge1xuICBBeGlzUmVmdXNhbCxcbiAgQXhpc1NwbGl0LFxuICBCb29rZW5kZWRBeGlzLFxuICBGb2xkQmFzaXMsXG4gIEZvbGRlZFN0YXRlLFxuICBGb2xkU291cmNlLFxuICBMb2dHYXAsXG4gIE1hcmssXG4gIE1vdmUsXG4gIE1vdmVSZWZ1c2FsLFxuICBTdG9wLFxuICBTdG9wRmlsdGVyLFxuICBTdG9wS2luZCxcbiAgVGltZVRyYXZlbCxcbiAgVGltZVRyYXZlbE9wdGlvbnMsXG4gIFRpbWVUcmF2ZWxTb3VyY2UsXG4gIFRpbWVUcmF2ZWxTdHJhdGVneSxcbn0gZnJvbSAnLi9saWIvdGltZS10cmF2ZWwvaW5kZXguanMnO1xuZXhwb3J0IHtcbiAgY29tbWl0U3RvcHMsXG4gIGNvbW1pdFN0b3BzU3RyYXRlZ3ksXG4gIGZpbHRlclN0b3BzLFxuICBpc0NvbW1pdEJ1bmRsZSxcbiAgc3BsaXRBeGlzLFxuICBzdGF0ZUF0LFxuICB0YWdTdG9wcyxcbiAgdGltZVRyYXZlbCxcbn0gZnJvbSAnLi9saWIvdGltZS10cmF2ZWwvaW5kZXguanMnO1xuXG4vLyBDYXVzYWwgY2hhaW4g4oCUIGJhY2t3YXJkIHByb2dyYW0gc2xpY2luZyBvbiBjb21taXQgbG9nIChEQUcpLlxuLy8gUkZDLTAwMyBEMzogYENhdXNhbEVkZ2VgICh0eXBlZC9rZXllZC93ZWlnaHRlZCBwYXJlbnQgbGlua3Mgb25cbi8vIGBDYXVzYWxOb2RlLnBhcmVudEVkZ2VzYCkgKyB0aGUgYGNvbnRyb2xEZXBzYCBvcHRpb24gKGBDb250cm9sRGVwTG9va3VwYClcbi8vIGFkZCBjb250cm9sLWRlcGVuZGVuY2UgZWRnZXMgdG8gdGhlIHNsaWNlLlxuZXhwb3J0IHR5cGUge1xuICBDYXVzYWxDaGFpbk9wdGlvbnMsXG4gIENhdXNhbEVkZ2UsXG4gIENhdXNhbE5vZGUsXG4gIENvbnRyb2xEZXBlbmRlbmN5LFxuICBDb250cm9sRGVwTG9va3VwLFxuICBFZGdlV2VpZ2hlcixcbiAgS2V5c1JlYWRMb29rdXAsXG59IGZyb20gJy4vbGliL21lbW9yeS9iYWNrdHJhY2suanMnO1xuZXhwb3J0IHsgY2F1c2FsQ2hhaW4sIGZsYXR0ZW5DYXVzYWxEQUcsIGZvcm1hdENhdXNhbENoYWluIH0gZnJvbSAnLi9saWIvbWVtb3J5L2JhY2t0cmFjay5qcyc7XG4vLyBSRkMtMDAzIEQyIOKAlCBob25lc3R5IG1hcmtlcnM6IHRoZSB1bnRyYWNrZWQgcmVhZCBwYXRocyBhIHN0YWdlIGNvbnN1bWVkXG4vLyAoYENvbW1pdEJ1bmRsZS51bnRyYWNrZWRTb3VyY2VzYCDihpIgYENhdXNhbE5vZGUuaW5jb21wbGV0ZVNvdXJjZXNgKS5cbmV4cG9ydCB0eXBlIHsgVW50cmFja2VkU291cmNlIH0gZnJvbSAnLi9saWIvbWVtb3J5L3R5cGVzLmpzJztcblxuLy8g4pSA4pSAIHNsaWNlLyDigJQgdmFyaWFibGUtZmlyc3Qgc2xpY2luZywgYm90aCBkaXJlY3Rpb25zICh0cmlhZ2UgcXVlcnkgbGF5ZXIpIOKUgOKUgFxuLy8gT25lIGNvbnRyYWN0IGZvciBldmVyeSB0cmlhZ2Ugc3VyZmFjZSAoVUkgcGFuZWwsIExMTSB0b29sLCBvZmZsaW5lXG4vLyBhdXRvcHN5IGFnZW50KTogdmFyaWFibGUgaW4g4oaSIHNsaWNlIG91dC5cbi8vXG4vLyBCQUNLV0FSRCDigJQgYHNsaWNlRm9yS2V5YCBhbmNob3JzIGF0IHRoZSBrZXkncyBsYXN0IHdyaXRlciB0aGVuIGRlbGVnYXRlc1xuLy8gdG8gY2F1c2FsQ2hhaW47IGBhcnJheVByb3ZlbmFuY2VgIC8gYGVsZW1lbnRQcm92ZW5hbmNlYCAoYXBwZW5kLWZvbGQpXG4vLyBhbnN3ZXIgZWxlbWVudC1sZXZlbCBxdWVzdGlvbnMgbGlrZSBcIndoaWNoIHN0YWdlIHByb2R1Y2VkIGhpc3RvcnlbN10/XCIg4oCUXG4vLyB0aGUgZml4IGZvciB0aGUgYWdlbnQgbWVnYS1rZXkgcHJvYmxlbSwgd2l0aCBob25lc3QgYXR0cmlidXRpb24gbGFiZWxzLlxuLy9cbi8vIEZPUldBUkQg4oCUIGBmb3J3YXJkU2xpY2VGb3JLZXlgIHdhbGtzIHRoZSBvdGhlciB3YXk6IGZyb20gYSB3cml0ZSwgdGhyb3VnaFxuLy8gdGhlIHZhbHVlJ3MgTElWRSBSQU5HRSAoaXQgbGl2ZXMgdW50aWwgdGhlIGtleSdzIG5leHQgd3JpdGUpLCB0byBldmVyeVxuLy8gc3RhZ2UgdGhhdCByZWFkIGl0IGFuZCBldmVyeSB3cml0ZSB0aG9zZSByZWFkcyBmZWQuIGBrZXlUaW1lbGluZWAgaXMgdGhlXG4vLyBmbGF0IGNocm9ub2xvZ2ljYWwgdmlldyBvZiB0aGUgc2FtZSBmYWN0cy4gRmVkIGVkZ2VzIGFyZSBFWEFDVCB1bmRlciB0aGVcbi8vIGB3cml0ZVByb3ZlbmFuY2U6ICdyZWFkcy1wcmVmaXgnYCBkaWFsIGFuZCBzdGFtcGVkIENPTlNFUlZBVElWRSB3aXRob3V0XG4vLyBpdCDigJQgbmV2ZXIgdGhlIG90aGVyIHdheSByb3VuZC4gU2VlIHNyYy9saWIvc2xpY2UvUkVBRE1FLm1kLlxuZXhwb3J0IHR5cGUge1xuICBBcnJheVByb3ZlbmFuY2UsXG4gIEF0dHJpYnV0aW9uQmFzaXMsXG4gIEVsZW1lbnRCaXJ0aCxcbiAgRmVkQmFzaXMsXG4gIEZvcndhcmRFZGdlLFxuICBGb3J3YXJkTm9kZSxcbiAgRm9yd2FyZFJlYWQsXG4gIEZvcndhcmRTbGljZSxcbiAgRm9yd2FyZFNsaWNlSlNPTixcbiAgSG9uZXN0eU5vdGUsXG4gIEhvbmVzdHlOb3RlQ29kZSxcbiAgS2V5TW9tZW50LFxuICBLZXlzUmVhZFNvdXJjZSxcbiAgS2V5VGltZWxpbmUsXG4gIE1pc3NpbmdQcm92ZW5hbmNlUmVhc29uLFxuICBNaXNzaW5nU2xpY2VSZWFzb24sXG4gIFJlYWRzQ292ZXJhZ2UsXG4gIFNsaWNlSlNPTixcbiAgU3RhdGVLZXksXG4gIFZhcmlhYmxlU2xpY2UsXG59IGZyb20gJy4vbGliL3NsaWNlL2luZGV4LmpzJztcbmV4cG9ydCB0eXBlIHsgRm9yd2FyZFNsaWNlRm9yS2V5T3B0aW9ucywgS2V5VGltZWxpbmVPcHRpb25zLCBTbGljZUZvcktleU9wdGlvbnMgfSBmcm9tICcuL2xpYi9zbGljZS9pbmRleC5qcyc7XG5leHBvcnQge1xuICBhcnJheVByb3ZlbmFuY2UsXG4gIGVsZW1lbnRQcm92ZW5hbmNlLFxuICBmb3JtYXRGb3J3YXJkU2xpY2UsXG4gIGZvcm1hdFNsaWNlLFxuICBmb3JtYXRUaW1lbGluZSxcbiAgZm9yd2FyZFNsaWNlRm9yS2V5LFxuICBmb3J3YXJkU2xpY2VUb0pTT04sXG4gIGtleXNSZWFkRnJvbUV4ZWN1dGlvblRyZWUsXG4gIGtleXNSZWFkRnJvbU1hcCxcbiAga2V5VGltZWxpbmUsXG4gIG5vcm1hbGlzZVN0YXRlS2V5LFxuICByZXNvbHZlS2V5c1JlYWRTb3VyY2UsXG4gIHNsaWNlRm9yS2V5LFxuICBzbGljZVRvSlNPTixcbn0gZnJvbSAnLi9saWIvc2xpY2UvaW5kZXguanMnO1xuXG4vLyDilIDilIAgaG9uZXN0eSDigJQgdGhlIE9ORSByZWdpc3RyeSBvZiB3aGF0IGEgcmVhZGVyIGNhbm5vdCBzZWUg4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAXG4vLyBUaGUgaG9uZXN0eSBzaWduYWxzIHRoaXMgZG9vcidzIHJlYWRlcnMgcHJvZHVjZSDigJQgYSBzbGljZSdzIGBIb25lc3R5Tm90ZS5jb2RlYCBhbmQgYG1pc3NpbmdgXG4vLyByZWFzb24sIGEgZmVkIGVkZ2UncyBhbmQgYW4gZWxlbWVudCBiaXJ0aCdzIGBiYXNpc2AsIGEgZm9sZCdzIGBiYXNpc2AgYW5kIGByZWRhY3RlZGAgcGF0aHMsIGFcbi8vIGBMb2dHYXBgLCBhIGNhdXNhbCBub2RlJ3MgYGluY29tcGxldGVTb3VyY2VzYCBhbmQgYHRydW5jYXRlZGAg4oCUIGVhY2ggaGFzIGEgY29kZSBoZXJlIGFuZCB0aGUgT05FXG4vLyBzZW50ZW5jZSB0aGF0IHNheXMgd2hhdCBpdCBtZWFucywgc28gYSBsZW5zIG9yIGFuIGFnZW50IHRvb2wgZXhwbGFpbnMgYW55IG9mIHRoZW0gZnJvbSBvbmUgcGxhY2Vcbi8vIGluc3RlYWQgb2Yga2VlcGluZyBpdHMgb3duIHRhYmxlLiBUaGUgdW5pb25zIG9mIHRob3NlIGNvZGVzIGV4cG9ydGVkIGFib3ZlIChgSG9uZXN0eU5vdGVDb2RlYCxcbi8vIGBNaXNzaW5nU2xpY2VSZWFzb25gLCBgTWlzc2luZ1Byb3ZlbmFuY2VSZWFzb25gLCBgRmVkQmFzaXNgLCBgQXR0cmlidXRpb25CYXNpc2AsIGBGb2xkQmFzaXNgKSBhcmVcbi8vIHN1YnNldHMgb2YgYEhvbmVzdHlDb2RlYCwgYW5kIHRlc3QvYXJjaGl0ZWN0dXJlL2hvbmVzdHktdm9jYWJ1bGFyeS50ZXN0LnRzIGZhaWxzIG9uIGEgdW5pb24gb2Zcbi8vIHN0cmluZyBsaXRlcmFscyB0aGlzIGRvb3IgZXhwb3J0cyB0aGF0IGlzIG5laXRoZXIgcmVnaXN0ZXJlZCBub3IgbmFtZWQgdGhlcmUgYXMgYSBkaWZmZXJlbnQga2luZFxuLy8gb2Ygd29yZC4gU2VlIHNyYy9saWIvbWVtb3J5L1JFQURNRS5tZC5cbmV4cG9ydCB0eXBlIHsgSG9uZXN0eUNvZGUgfSBmcm9tICcuL2xpYi9tZW1vcnkvaG9uZXN0eS5qcyc7XG5leHBvcnQgeyBIT05FU1RZX0NPREVTIH0gZnJvbSAnLi9saWIvbWVtb3J5L2hvbmVzdHkuanMnO1xuXG4vLyDilIDilIAgdjUgU3RvcmVzIChjb25jcmV0ZSwgY29tcG9zYWJsZSDigJQgcHJpbWFyeSByZWNvcmRlciBBUEkpIOKUgOKUgOKUgOKUgOKUgFxuLy8gQ29tcG9zZSB0aGVzZSB2aWEgYG5ldyBTdG9yZTxUPigpYCBhcyBhIGZpZWxkIG9uIHlvdXIgcmVjb3JkZXJcbi8vIGNsYXNzLiBPbmUgcHVycG9zZSBwZXIgcmVjb3JkZXI6IHN0b3JlcyBhcmUgc3RvcmFnZTsgcmVjb3JkZXJzXG4vLyBhcmUgZXZlbnQtaG9vayBpbnRlcmZhY2UgaW1wbGVtZW50YXRpb25zLlxuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQm91bmRhcnlTdGF0ZVN0b3JlLmpzJztcbmV4cG9ydCB7IEtleWVkU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9LZXllZFN0b3JlLmpzJztcbmV4cG9ydCB7IFNlcXVlbmNlU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9TZXF1ZW5jZVN0b3JlLmpzJztcblxuLy8g4pSA4pSAIHY1LjEgQ29tbWl0IGdyb3VwaW5nIHByaW1pdGl2ZSDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBcbi8vIEludGVydmFsIGluZGV4IG92ZXIgY29tbWl0IGluZGljZXMuIEJ1aWx0IGluY3JlbWVudGFsbHkgZHVyaW5nXG4vLyB0cmF2ZXJzYWw6IG9wZW4oKSBvbiBib3VuZGFyeSBlbnRyeSwgY2xvc2UoKSBvbiBleGl0LiBRdWVyeSBhdCBhbnlcbi8vIGNvbW1pdCBwb3NpdGlvbiB3aXRoIGVuY2xvc2luZygpL292ZXJsYXBwaW5nKCkuIEdlbmVyaWMgb3ZlciBUTGFiZWxcbi8vIOKAlCBmb290cHJpbnRqcyBvd25zIFpFUk8ga25vd2xlZGdlIG9mIHdoYXQgY29uc3VtZXJzIHVzZSBhcyBsYWJlbHMuXG4vLyBTZWUgZG9jcy9kZXNpZ24vY29tbWl0LXJhbmdlLWluZGV4Lm1kIGZvciB0aGUgZnVsbCBjb250cmFjdC5cbmV4cG9ydCB0eXBlIHsgUmFuZ2VFbnRyeSwgUmFuZ2VUb2tlbiB9IGZyb20gJy4vbGliL3JlY29yZGVyL0NvbW1pdFJhbmdlSW5kZXguanMnO1xuZXhwb3J0IHsgQ29tbWl0UmFuZ2VJbmRleCB9IGZyb20gJy4vbGliL3JlY29yZGVyL0NvbW1pdFJhbmdlSW5kZXguanMnO1xuXG4vLyBUb3BvbG9neVJlY29yZGVyIOKAlCBjb21wb3NpdGlvbiBncmFwaCBhY2N1bXVsYXRvciAoc3ViZmxvd3MgKyBjb250cm9sLWZsb3cgZWRnZXMpXG5leHBvcnQgdHlwZSB7XG4gIFRvcG9sb2d5LFxuICBUb3BvbG9neUVkZ2UsXG4gIFRvcG9sb2d5SW5jb21pbmdLaW5kLFxuICBUb3BvbG9neU5vZGUsXG4gIFRvcG9sb2d5UmVjb3JkZXJPcHRpb25zLFxufSBmcm9tICcuL2xpYi9yZWNvcmRlci9Ub3BvbG9neVJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFRvcG9sb2d5UmVjb3JkZXIsIHRvcG9sb2d5UmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Ub3BvbG9neVJlY29yZGVyLmpzJztcblxuLy8gSW5PdXRSZWNvcmRlciDigJQgY2hhcnQgaW4vb3V0IHN0cmVhbSAoZW50cnkvZXhpdCBwYWlycyBhdCBldmVyeSBjaGFydCBib3VuZGFyeSxcbi8vIGluY2x1ZGluZyB0aGUgdG9wLWxldmVsIHJ1biBhbmQgZXZlcnkgc3ViZmxvdylcbmV4cG9ydCB0eXBlIHsgSW5PdXRFbnRyeSwgSW5PdXRQaGFzZSwgSW5PdXRSZWNvcmRlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Jbk91dFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IEluT3V0UmVjb3JkZXIsIGluT3V0UmVjb3JkZXIsIFJPT1RfUlVOVElNRV9TVEFHRV9JRCwgUk9PVF9TVUJGTE9XX0lEIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvSW5PdXRSZWNvcmRlci5qcyc7XG5cbi8vIENvbnRyb2xEZXBSZWNvcmRlciDigJQgY29udHJvbC1kZXBlbmRlbmNlIHRyYWNraW5nIChSRkMtMDAzIEQ1KTogcmVjb3Jkc1xuLy8gb25EZWNpc2lvbi9vblNlbGVjdGVkICsgdGhlIEQxIHJ1bnRpbWUgYW5jZXN0b3IgY2hhaW4sIGFuc3dlcnMgXCJ3aGljaFxuLy8gZGVjaXNpb24gYWxsb3dlZCB0aGlzIHN0YWdlIHRvIHJ1bj9cIiDigJQgdGhlIGJ1aWx0LWluIHByb2R1Y2VyIGZvclxuLy8gY2F1c2FsQ2hhaW4ncyBgY29udHJvbERlcHNgIG9wdGlvbi5cbmV4cG9ydCB0eXBlIHsgQ29udHJvbERlY2lzaW9uUmVjb3JkLCBDb250cm9sRGVwUmVjb3JkZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IENvbnRyb2xEZXBSZWNvcmRlciwgY29udHJvbERlcFJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcblxuLy8gUXVhbGl0eVJlY29yZGVyIOKAlCBwZXItc3RlcCBxdWFsaXR5IHNjb3Jpbmcgd2l0aCBiYWNrdHJhY2tpbmdcbmV4cG9ydCB0eXBlIHsgUXVhbGl0eUVudHJ5LCBRdWFsaXR5UmVjb3JkZXJPcHRpb25zLCBRdWFsaXR5U2NvcmluZ0ZuIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvUXVhbGl0eVJlY29yZGVyLmpzJztcbmV4cG9ydCB7IFF1YWxpdHlSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1F1YWxpdHlSZWNvcmRlci5qcyc7XG5cbi8vIHF1YWxpdHlUcmFjZSDigJQgUXVhbGl0eSBTdGFjayBUcmFjZSAoYmFja3RyYWNrIGZyb20gbG93LXNjb3Jpbmcgc3RlcHMpXG5leHBvcnQgdHlwZSB7IFF1YWxpdHlGcmFtZSwgUXVhbGl0eVN0YWNrVHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuZXhwb3J0IHsgZm9ybWF0UXVhbGl0eVRyYWNlLCBxdWFsaXR5VHJhY2UgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9xdWFsaXR5VHJhY2UuanMnO1xuIl19
36
+ var SequenceStore_js_1 = require("./lib/recorder/SequenceStore.js");
37
+ Object.defineProperty(exports, "SequenceStore", { enumerable: true, get: function () { return SequenceStore_js_1.SequenceStore; } });
38
+ var TopologyRecorder_js_1 = require("./lib/recorder/TopologyRecorder.js");
39
+ Object.defineProperty(exports, "TopologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.TopologyRecorder; } });
40
+ Object.defineProperty(exports, "topologyRecorder", { enumerable: true, get: function () { return TopologyRecorder_js_1.topologyRecorder; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHJhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gsc0VBQWtFO0FBQXpELHFIQUFBLGVBQWUsT0FBQTtBQUN4QiwrREFNb0M7QUFMbEMseUhBQUEscUJBQXFCLE9BQUE7QUFDckIsc0hBQUEsa0JBQWtCLE9BQUE7QUFDbEIsMEhBQUEsc0JBQXNCLE9BQUE7QUFDdEIsbUhBQUEsZUFBZSxPQUFBO0FBQ2Ysc0hBQUEsa0JBQWtCLE9BQUE7QUFFcEIsOEVBQTBFO0FBQWpFLDJIQUFBLGtCQUFrQixPQUFBO0FBRTNCLDhFQUE4RjtBQUFyRiwySEFBQSxrQkFBa0IsT0FBQTtBQUFFLDJIQUFBLGtCQUFrQixPQUFBO0FBRS9DLG9FQUF1SDtBQUE5RyxpSEFBQSxhQUFhLE9BQUE7QUFBRSxpSEFBQSxhQUFhLE9BQUE7QUFBRSx5SEFBQSxxQkFBcUIsT0FBQTtBQUFFLG1IQUFBLGVBQWUsT0FBQTtBQUM3RSw4REFBMEQ7QUFBakQsMkdBQUEsVUFBVSxPQUFBO0FBRW5CLHdFQUFvRTtBQUEzRCxxSEFBQSxlQUFlLE9BQUE7QUFFeEIsa0VBQWtGO0FBQXpFLHFIQUFBLGtCQUFrQixPQUFBO0FBQUUsK0dBQUEsWUFBWSxPQUFBO0FBQ3pDLG9FQUFnRTtBQUF2RCxpSEFBQSxhQUFhLE9BQUE7QUFRdEIsMEVBQXdGO0FBQS9FLHVIQUFBLGdCQUFnQixPQUFBO0FBQUUsdUhBQUEsZ0JBQWdCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGZvb3RwcmludGpzL3RyYWNlIOKAlCByZWNvcmRlciBzdG9yZXMsIHRvcG9sb2d5LCBjaGFydCBib3VuZGFyaWVzIGFuZCBjb250cm9sIGRlcGVuZGVuY2llcy5cbiAqXG4gKiBSZWNvcmQgcmVhZGVycywgdHlwZXMgYW5kIHJ1bnRpbWUtSUQgZ3JhbW1hciBiZWxvbmcgdG8gYGZvb3R0cmFjZWA7IHJlY29yZCBwYXRoIGhlbHBlcnMgYmVsb25nXG4gKiB0byBgZm9vdHRyYWNlL3BhdGhzYCwgYW5kIHJlY29yZCB3cml0ZXJzIHRvIGBmb290dHJhY2Uvd3JpdGVgLiBUaGlzIGRvb3IgZXhwb3J0cyBvbmx5IGVuZ2luZS1vd25lZFxuICogb2JzZXJ2ZXIgdG9vbHMuIFJlY29yZCBzeW1ib2xzIGFyZSBuZXZlciByZS1leHBvcnRlZCBhY3Jvc3MgdGhlIHBhY2thZ2UgYm91bmRhcnkuXG4gKi9cblxuZXhwb3J0IHR5cGUgeyBXYWxrZXJJdGVtLCBXYWxrZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvZW5naW5lL3dhbGtTdWJmbG93U3BlYy5qcyc7XG5leHBvcnQgeyB3YWxrU3ViZmxvd1NwZWMgfSBmcm9tICcuL2xpYi9lbmdpbmUvd2Fsa1N1YmZsb3dTcGVjLmpzJztcbmV4cG9ydCB7XG4gIEJSQU5DSF9TRUdNRU5UX01BUktFUixcbiAgYnVpbGRCcmFuY2hTZWdtZW50LFxuICBoYXNCcmFuY2hTZWdtZW50TWFya2VyLFxuICBpc0JyYW5jaFNlZ21lbnQsXG4gIHBhcnNlQnJhbmNoU2VnbWVudCxcbn0gZnJvbSAnLi9saWIvaWRzL2JyYW5jaFNlZ21lbnQuanMnO1xuZXhwb3J0IHsgQm91bmRhcnlTdGF0ZVN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQm91bmRhcnlTdGF0ZVN0b3JlLmpzJztcbmV4cG9ydCB0eXBlIHsgQ29udHJvbERlY2lzaW9uUmVjb3JkLCBDb250cm9sRGVwUmVjb3JkZXJPcHRpb25zIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IENvbnRyb2xEZXBSZWNvcmRlciwgY29udHJvbERlcFJlY29yZGVyIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvQ29udHJvbERlcFJlY29yZGVyLmpzJztcbmV4cG9ydCB0eXBlIHsgSW5PdXRFbnRyeSwgSW5PdXRQaGFzZSwgSW5PdXRSZWNvcmRlck9wdGlvbnMgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9Jbk91dFJlY29yZGVyLmpzJztcbmV4cG9ydCB7IEluT3V0UmVjb3JkZXIsIGluT3V0UmVjb3JkZXIsIFJPT1RfUlVOVElNRV9TVEFHRV9JRCwgUk9PVF9TVUJGTE9XX0lEIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvSW5PdXRSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBLZXllZFN0b3JlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvS2V5ZWRTdG9yZS5qcyc7XG5leHBvcnQgdHlwZSB7IFF1YWxpdHlFbnRyeSwgUXVhbGl0eVJlY29yZGVyT3B0aW9ucywgUXVhbGl0eVNjb3JpbmdGbiB9IGZyb20gJy4vbGliL3JlY29yZGVyL1F1YWxpdHlSZWNvcmRlci5qcyc7XG5leHBvcnQgeyBRdWFsaXR5UmVjb3JkZXIgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9RdWFsaXR5UmVjb3JkZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBRdWFsaXR5RnJhbWUsIFF1YWxpdHlTdGFja1RyYWNlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvcXVhbGl0eVRyYWNlLmpzJztcbmV4cG9ydCB7IGZvcm1hdFF1YWxpdHlUcmFjZSwgcXVhbGl0eVRyYWNlIH0gZnJvbSAnLi9saWIvcmVjb3JkZXIvcXVhbGl0eVRyYWNlLmpzJztcbmV4cG9ydCB7IFNlcXVlbmNlU3RvcmUgfSBmcm9tICcuL2xpYi9yZWNvcmRlci9TZXF1ZW5jZVN0b3JlLmpzJztcbmV4cG9ydCB0eXBlIHtcbiAgVG9wb2xvZ3ksXG4gIFRvcG9sb2d5RWRnZSxcbiAgVG9wb2xvZ3lJbmNvbWluZ0tpbmQsXG4gIFRvcG9sb2d5Tm9kZSxcbiAgVG9wb2xvZ3lSZWNvcmRlck9wdGlvbnMsXG59IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuZXhwb3J0IHsgVG9wb2xvZ3lSZWNvcmRlciwgdG9wb2xvZ3lSZWNvcmRlciB9IGZyb20gJy4vbGliL3JlY29yZGVyL1RvcG9sb2d5UmVjb3JkZXIuanMnO1xuIl19
@@ -1,68 +1,34 @@
1
- /**
2
- * footprintjs/advanced — Low-level internals for custom execution engines and testing.
3
- *
4
- * Most users never need this. Use `footprintjs` (main) instead.
5
- * This entry point exposes the engine's frame (`StageContext`), the traverser
6
- * (`FlowchartTraverser`), the scope providers and the other primitives that
7
- * power the engine. The record has doors of its own: write one with
8
- * `footprintjs/write` (`SharedMemory`, `EventLog`, `RecordFrame`), read one
9
- * with `footprintjs/trace` (`CommitBundle`, `applySmartMerge`, the readers).
10
- * The record's names this door handed out before 9.47.0 stay here until
11
- * 10.0.0, the same symbols: import those from their own door (the nine record
12
- * internals among them have none, and leave the public surface at 10.0.0).
13
- *
14
- * ```ts
15
- * import { StageContext } from 'footprintjs/advanced';
16
- * import { SharedMemory } from 'footprintjs/write';
17
- * ```
18
- *
19
- * @module advanced
20
- */
21
- /**
22
- * FootPrint — Advanced / Internal API
23
- *
24
- * These exports are for advanced use cases, testing, and building
25
- * custom execution engines. Most users should use the main 'footprint' entry point.
26
- *
27
- * Import via: import { ... } from 'footprint/advanced'
28
- */
29
- export type { FlowControlType, FlowMessage, ReadSummaryMarker, ReadTrackingMode, RetentionPolicy, StageSnapshot, WriteSummaryMarker, WriteTrackingMode, } from './lib/memory/index.js';
30
- export type { RedactionVerdict } from './lib/memory/index.js';
31
- export { StageContext } from './lib/memory/index.js';
32
- export { DiagnosticCollector } from './lib/memory/index.js';
33
- export { RedactionRule } from './lib/memory/index.js';
34
- export type { ExecutionCounter } from './lib/ids/runtimeStageId.js';
35
- export { buildRuntimeStageId, createExecutionCounter, parseRuntimeStageId } from './lib/ids/runtimeStageId.js';
36
- export { findCommit, findCommits, findLastWriter } from './lib/memory/commitLogUtils.js';
37
- export type { CommitBundle, MemoryPatch, TraceEntry, UntrackedSource } from './lib/memory/index.js';
38
- export { EventLog, SharedMemory, TransactionBuffer } from './lib/memory/index.js';
39
- export { applySmartMerge, deepSmartMerge, getNestedValue, getRunAndGlobalPaths, normalisePath, pathSegments, redactPatch, setNestedValue, updateNestedValue, updateValue, } from './lib/memory/index.js';
1
+ /** Engine internals: scopes, traversal, frame policy, redaction and contracts. */
40
2
  export type { ExecOptions, FlowChartOptions, FlowChartSpec, ILogger, ScopeProtectionMode, SerializedPipelineStructure, SimplifiedParallelSpec, StageFn, StageNode, StreamCallback, StreamLifecycleHandler, StreamTokenHandler, SubflowMountOptions, SubflowRef, } from './lib/builder/index.js';
41
3
  export { ArrayMergeMode, DeciderList, SelectorFnList, specToStageNode } from './lib/builder/index.js';
42
4
  export { createTypedScopeFactory } from './lib/builder/typedFlowChart.js';
43
- export type { ProviderResolver, ResolveOptions, ScopeProvider, StageContextLike, StrictMode, } from './lib/scope/index.js';
44
- export { createErrorMessage, createProtectedScope, ScopeFacade } from './lib/scope/index.js';
45
- export { attachScopeMethods, isSubclassOfScopeFacade, looksLikeClassCtor, looksLikeFactory, makeClassProvider, makeFactoryProvider, registerScopeResolver, resolveScopeProvider, toScopeFactory, } from './lib/scope/index.js';
46
- export type { ScopeRuntime, ScopeRuntimeTarget } from './lib/scope/runtime.js';
47
- export { registerScopeRuntime } from './lib/scope/runtime.js';
48
- export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, RecorderContext, StageEvent, StageMetrics, } from './lib/scope/index.js';
49
- export type { RuntimeSnapshot } from './lib/runner/index.js';
50
- export { ExecutionRuntime } from './lib/runner/index.js';
51
- /** The run's policy an `ExecutionRuntime` is constructed with (F5). */
52
- export type { RunPolicy } from './lib/memory/index.js';
53
- export { DEFAULT_RUN_POLICY, runPolicy } from './lib/memory/index.js';
54
- export type { ReactiveOptions, ReactiveTarget } from './lib/reactive/index.js';
55
- export { buildNestedPatch, createArrayProxy, isHandle, joinPath, SCOPE_METHOD_NAMES, shouldWrapWithProxy, unwrapHandles, valueBehind, } from './lib/reactive/index.js';
5
+ export { normalizeSchema, zodToJsonSchema } from './lib/contract/index.js';
6
+ export type { FilterCondition } from './lib/decide/index.js';
7
+ export { evaluateFilter } from './lib/decide/index.js';
56
8
  export type { TraverserOptions } from './lib/engine/index.js';
57
9
  export type { Decider } from './lib/engine/index.js';
58
- export { FlowchartTraverser } from './lib/engine/index.js';
59
- export { isStageNodeReturn } from './lib/engine/index.js';
60
10
  export type { IControlFlowNarrative } from './lib/engine/index.js';
61
11
  export type { CombinedNarrativeEntry, CombinedNarrativeOptions } from './lib/engine/index.js';
62
12
  export type { BranchResult, BranchResults, SerializedPipelineStructure as EngineSerializedPipelineStructure, HandlerDeps, IExecutionRuntime, NodeResultType, RuntimeStructureMetadata, ScopeFactory, SerializedPipelineNode, StageFunction, SubflowResult, TraversalResult, } from './lib/engine/index.js';
63
- export { NullControlFlowNarrativeGenerator } from './lib/engine/index.js';
64
13
  export type { ExecuteNodeFn, QueuedPause, ResumeHop, RunStageFn } from './lib/engine/index.js';
14
+ export { FlowchartTraverser } from './lib/engine/index.js';
15
+ export { isStageNodeReturn } from './lib/engine/index.js';
16
+ export { NullControlFlowNarrativeGenerator } from './lib/engine/index.js';
65
17
  export { applyOutputMapping, ChildrenExecutor, computeNodeType, ContinuationResolver, createSubflowHandlerDeps, DeciderHandler, DEFAULT_MAX_ITERATIONS, extractParentScopeValues, getInitialScopeValues, NodeResolver, ResumeEntry, RuntimeStructureManager, seedSubflowGlobalStore, SelectorHandler, StageRunner, SubflowExecutor, } from './lib/engine/index.js';
66
- export type { FilterCondition } from './lib/decide/index.js';
67
- export { evaluateFilter } from './lib/decide/index.js';
68
- export { normalizeSchema, zodToJsonSchema } from './lib/contract/index.js';
18
+ export type { FlowControlType, FlowMessage, ReadSummaryMarker, ReadTrackingMode, RetentionPolicy, StageSnapshot, WriteSummaryMarker, WriteTrackingMode, } from './lib/memory/index.js';
19
+ export type { RedactionVerdict } from './lib/memory/index.js';
20
+ export type { RunPolicy } from './lib/memory/index.js';
21
+ export { StageContext } from './lib/memory/index.js';
22
+ export { DiagnosticCollector } from './lib/memory/index.js';
23
+ export { RedactionRule } from './lib/memory/index.js';
24
+ export { DEFAULT_RUN_POLICY, runPolicy } from './lib/memory/index.js';
25
+ export type { ReactiveOptions, ReactiveTarget } from './lib/reactive/index.js';
26
+ export { buildNestedPatch, createArrayProxy, isHandle, joinPath, SCOPE_METHOD_NAMES, shouldWrapWithProxy, unwrapHandles, valueBehind, } from './lib/reactive/index.js';
27
+ export type { RuntimeSnapshot } from './lib/runner/index.js';
28
+ export { ExecutionRuntime } from './lib/runner/index.js';
29
+ export type { ProviderResolver, ResolveOptions, ScopeProvider, StageContextLike, StrictMode, } from './lib/scope/index.js';
30
+ export type { AggregatedMetrics, DebugEntry, DebugRecorderOptions, DebugVerbosity, RecorderContext, StageEvent, StageMetrics, } from './lib/scope/index.js';
31
+ export { createErrorMessage, createProtectedScope, ScopeFacade } from './lib/scope/index.js';
32
+ export { attachScopeMethods, isSubclassOfScopeFacade, looksLikeClassCtor, looksLikeFactory, makeClassProvider, makeFactoryProvider, registerScopeResolver, resolveScopeProvider, toScopeFactory, } from './lib/scope/index.js';
33
+ export type { ScopeRuntime, ScopeRuntimeTarget } from './lib/scope/runtime.js';
34
+ export { registerScopeRuntime } from './lib/scope/runtime.js';
@@ -8,8 +8,8 @@
8
8
  * ```ts
9
9
  * import { flowChart, decide, narrative } from 'footprintjs'; // main — start here
10
10
  * import { metrics, debug, manifest } from 'footprintjs/recorders'; // recorder factories
11
- * import { stateAt, causalChain } from 'footprintjs/trace'; // read a finished run
12
- * import { RecordFrame, EventLog } from 'footprintjs/write'; // write a record yourself
11
+ * import { stateAt, causalChain } from 'foottrace'; // read a finished run
12
+ * import { RecordFrame, EventLog } from 'foottrace/write'; // write a record yourself
13
13
  * import { StageContext } from 'footprintjs/advanced'; // engine internals
14
14
  * ```
15
15
  *
@@ -108,11 +108,9 @@ export type { CombinedNarrativeEntry } from './lib/engine/index.js';
108
108
  * @category Observe — Flow
109
109
  *
110
110
  * `NarrativeFormatter` — pluggable formatter that converts event context
111
- * objects into the text lines of the narrative. Prefer this name in new
112
- * code; `NarrativeRenderer` is a deprecated alias that will be removed in
113
- * the next major release.
111
+ * objects into the text lines of the narrative.
114
112
  */
115
- export type { NarrativeFormatter, NarrativeRenderer } from './lib/engine/index.js';
113
+ export type { NarrativeFormatter } from './lib/engine/index.js';
116
114
  /** @category Observe — Flow */
117
115
  export { NarrativeFlowRecorder } from './lib/engine/index.js';
118
116
  /** @category Observe — Flow */
@@ -197,12 +195,11 @@ export type { RetentionPolicy, WriteSummaryMarker, WriteTrackingMode } from './l
197
195
  * storing only the tail; `deleteValue()` commits as a real `delete` verb;
198
196
  * one trace entry per surviving path). Replay reconstructs every step's
199
197
  * full state exactly. Consumers reading `bundle.overwrite[key]` as the full
200
- * value must use `commitValueAt` from `footprintjs/trace`. Pass as
198
+ * value must use `commitValueAt` from `foottrace`. Pass as
201
199
  * `new FlowChartExecutor(chart, { commitValues })` or call
202
200
  * `executor.setCommitValues(mode)` before `run()`; the active mode is the
203
201
  * snapshot discriminant `getSnapshot().commitValues`.
204
202
  */
205
- export type { CommitValuesMode } from './lib/memory/index.js';
206
203
  /** @category Contract & Validation */
207
204
  export type { SchemaKind, ValidationIssue, ValidationResult } from './lib/schema/index.js';
208
205
  /** @category Contract & Validation */
@@ -530,7 +530,7 @@ export declare class FlowChartBuilder<TOut = any, TScope = any> {
530
530
  * stages from their ids — a switch over `runtimeStageId` that parses `#` and
531
531
  * `/`, lives in the consumer, and silently goes stale when a stage is
532
532
  * renamed. Declared here, the name travels WITH the commit: a recording from
533
- * any chart carries its own milestones, and `tagStops` (footprintjs/trace)
533
+ * any chart carries its own milestones, and `tagStops` (foottrace)
534
534
  * scrubs them with no id conventions at all.
535
535
  *
536
536
  * ## What a tag is, and is not
@@ -173,7 +173,7 @@ export interface StructureStageAddedEvent {
173
173
  * Note: `spec.id` is a LIVE reference. If you read it AFTER this
174
174
  * chart has been mounted as a subflow, it may have been rewritten
175
175
  * to the FULL prefixed form. Use `splitStageId(spec.id)` from
176
- * `footprintjs/trace` to decompose it back into local + subflowPath.
176
+ * `foottrace` to decompose it back into local + subflowPath.
177
177
  *
178
178
  * Correlating with runtime events:
179
179
  * - Same builder (no mount) →
@@ -16,7 +16,6 @@
16
16
  * module — see the mapping notes in `policies.ts`.
17
17
  */
18
18
  export { hasCircularReference } from './circular.js';
19
- export { type ArrayWalk, deepFreeze } from './freeze.js';
20
19
  export { invokeRecorderHook } from './invokeHook.js';
21
20
  export type { RetentionPolicy } from './policies.js';
22
21
  export type { ReadSummaryMarker, SummaryValueType, WriteSummaryMarker } from './summarize.js';
@@ -156,9 +156,9 @@ export declare class ResumeEntry<TOut = any, TScope = any> {
156
156
  }): ResumeEntry<TOut, TScope>;
157
157
  /**
158
158
  * A seed-only entry: each capture seeds the FIRST entry into its subflow,
159
- * which then starts at its own root. What the deprecated
160
- * `subflowStatesForResume` option (TraverserOptions / HandlerDeps) means
161
- * since 9.28.0 — the same one-shot law, without a stand-in or a path.
159
+ * which then starts at its own root. Pass it explicitly as `resume` to
160
+ * TraverserOptions or HandlerDeps — the same one-shot law, without a
161
+ * stand-in or a path. Prefer `plan` when resuming a checkpoint.
162
162
  */
163
163
  static fromCaptures<TOut, TScope>(captures: Record<string, Record<string, unknown>>): ResumeEntry<TOut, TScope>;
164
164
  /**
@@ -21,8 +21,7 @@ export declare class SubflowExecutor<TOut = any, TScope = any> {
21
21
  private deps;
22
22
  private traverserFactory;
23
23
  /**
24
- * The resume's one-shot re-entry (`deps.resume`), or a seed-only one built
25
- * from the deprecated `deps.subflowStatesForResume`. Undefined on a normal
24
+ * The resume's one-shot re-entry (`deps.resume`). Undefined on a normal
26
25
  * run. Asked once per subflow entry — see {@link ResumeEntry}.
27
26
  */
28
27
  private readonly resume;
@@ -9,7 +9,7 @@ export { FlowchartTraverser } from './traversal/FlowchartTraverser.js';
9
9
  export { isStageNodeReturn } from './graph/StageNode.js';
10
10
  export * from './types.js';
11
11
  export * from './handlers/index.js';
12
- export type { CombinedNarrativeEntry, CombinedNarrativeOptions, EmitRenderContext, NarrativeFormatter, NarrativeRenderer, } from './narrative/narrativeTypes.js';
12
+ export type { CombinedNarrativeEntry, CombinedNarrativeOptions, EmitRenderContext, NarrativeFormatter, } from './narrative/narrativeTypes.js';
13
13
  export { NullControlFlowNarrativeGenerator } from './narrative/NullControlFlowNarrativeGenerator.js';
14
14
  export type { IControlFlowNarrative } from './narrative/types.js';
15
15
  export { FlowRecorderDispatcher } from './narrative/FlowRecorderDispatcher.js';
@@ -17,7 +17,7 @@
17
17
  import type { CombinedRecorder } from '../../recorder/CombinedRecorder.js';
18
18
  import type { EmitEvent } from '../../recorder/EmitRecorder.js';
19
19
  import type { ErrorEvent, PauseEvent, ReadEvent, ResumeEvent, WriteEvent } from '../../scope/types.js';
20
- import type { CombinedNarrativeEntry, NarrativeRenderer } from './narrativeTypes.js';
20
+ import type { CombinedNarrativeEntry, NarrativeFormatter } from './narrativeTypes.js';
21
21
  import type { FlowBreakEvent, FlowDecisionEvent, FlowErrorEvent, FlowForkEvent, FlowLoopEvent, FlowPauseEvent, FlowResumeEvent, FlowSelectedEvent, FlowStageEvent, FlowStageRetryEvent, FlowSubflowEvent } from './types.js';
22
22
  export interface CombinedNarrativeRecorderOptions {
23
23
  includeStepNumbers?: boolean;
@@ -27,8 +27,8 @@ export interface CombinedNarrativeRecorderOptions {
27
27
  * Receives the raw value and maxValueLength. Defaults to summarizeValue(). */
28
28
  formatValue?: (value: unknown, maxLen: number) => string;
29
29
  /** Pluggable renderer for customizing narrative output. Unimplemented methods
30
- * fall back to the default English renderer. See NarrativeRenderer docs. */
31
- renderer?: NarrativeRenderer;
30
+ * fall back to the default English renderer. See NarrativeFormatter docs. */
31
+ renderer?: NarrativeFormatter;
32
32
  }
33
33
  /**
34
34
  * Implements `CombinedRecorder` — the library's first-class abstraction for
@@ -158,7 +158,7 @@ export declare class CombinedNarrativeRecorder implements CombinedRecorder {
158
158
  description: string;
159
159
  preferredOperation: "translate";
160
160
  data: {
161
- type: "subflow" | "loop" | "error" | "stage" | "pause" | "emit" | "fork" | "selector" | "step" | "condition" | "break" | "resume" | "retry";
161
+ type: "subflow" | "loop" | "error" | "pause" | "emit" | "fork" | "selector" | "stage" | "step" | "condition" | "break" | "resume" | "retry";
162
162
  text: string;
163
163
  depth: number;
164
164
  stageName?: string | undefined;
@@ -1,6 +1,6 @@
1
1
  export type { CombinedNarrativeRecorderOptions } from './CombinedNarrativeRecorder.js';
2
2
  export { CombinedNarrativeRecorder } from './CombinedNarrativeRecorder.js';
3
- export type { BreakRenderContext, CombinedNarrativeEntry, CombinedNarrativeOptions, DecisionRenderContext, EmitRenderContext, ErrorRenderContext, ForkRenderContext, LoopRenderContext, NarrativeFormatter, NarrativeRenderer, OpRenderContext, SelectedRenderContext, StageRenderContext, SubflowRenderContext, } from './narrativeTypes.js';
3
+ export type { BreakRenderContext, CombinedNarrativeEntry, CombinedNarrativeOptions, DecisionRenderContext, EmitRenderContext, ErrorRenderContext, ForkRenderContext, LoopRenderContext, NarrativeFormatter, OpRenderContext, SelectedRenderContext, StageRenderContext, SubflowRenderContext, } from './narrativeTypes.js';
4
4
  export { NullControlFlowNarrativeGenerator } from './NullControlFlowNarrativeGenerator.js';
5
5
  export type { IControlFlowNarrative } from './types.js';
6
6
  export { FlowRecorderDispatcher } from './FlowRecorderDispatcher.js';
@@ -150,9 +150,7 @@ export interface EmitRenderContext {
150
150
  * In web terminology "renderer" usually means "turn data into a visible UI"
151
151
  * (pixels, DOM, HTML). This interface does something smaller: it converts
152
152
  * event context into a text string. That is more accurately called a
153
- * *formatter* — hence the new name. The legacy alias `NarrativeRenderer`
154
- * is preserved for backward compatibility and marked `@deprecated`; it will
155
- * be removed in the next major release.
153
+ * *formatter*.
156
154
  *
157
155
  * ## Behaviour
158
156
  *
@@ -215,11 +213,3 @@ export interface NarrativeFormatter {
215
213
  */
216
214
  renderEmit?(ctx: EmitRenderContext): string | null | undefined;
217
215
  }
218
- /**
219
- * @deprecated Renamed to `NarrativeFormatter` for clarity — this interface
220
- * formats event context into text lines, not "render to UI". Legacy alias
221
- * kept for backward compatibility; will be removed in the next major
222
- * release. Migrate by replacing `NarrativeRenderer` with
223
- * `NarrativeFormatter` at imports — no behavioural change.
224
- */
225
- export type NarrativeRenderer = NarrativeFormatter;
@@ -23,8 +23,7 @@
23
23
  * Patch model: Stage writes into local patch; commitPatch() after return or throw.
24
24
  */
25
25
  import type { ScopeProtectionMode } from '../../scope/protection/types.js';
26
- import type { QueuedPause } from '../handlers/ResumeEntry.js';
27
- import { ResumeEntry } from '../handlers/ResumeEntry.js';
26
+ import type { QueuedPause, ResumeEntry } from '../handlers/ResumeEntry.js';
28
27
  import { FlowRecorderDispatcher } from '../narrative/FlowRecorderDispatcher.js';
29
28
  import type { FlowRecorder, IControlFlowNarrative } from '../narrative/types.js';
30
29
  import type { IExecutionRuntime, ILogger, ScopeFactory, Selector, SerializedPipelineStructure, StageFunction, StageNode, StreamHandlers, SubflowMountOptions, SubflowResult, TraversalResult } from '../types.js';
@@ -121,13 +120,6 @@ export interface TraverserOptions<TOut = any, TScope = any> {
121
120
  * its first entry. See `ResumeEntry`. Undefined on normal `run()` paths.
122
121
  */
123
122
  resume?: ResumeEntry<TOut, TScope>;
124
- /**
125
- * @deprecated since 9.28.0 — pass {@link resume}. Still honoured, under the
126
- * same one-shot law: each capture seeds only the FIRST entry into its
127
- * subflow (in place of the inputMapper's values); later entries are
128
- * ordinary. Ignored when `resume` is set.
129
- */
130
- subflowStatesForResume?: Record<string, Record<string, unknown>>;
131
123
  /**
132
124
  * Per-`executor.run()` identifier. Threaded into every TraversalContext
133
125
  * this traverser produces so recorders can scope state to a single run.
@@ -340,7 +332,7 @@ export declare class FlowchartTraverser<TOut = any, TScope = any> {
340
332
  executionTree: unknown;
341
333
  initialState?: Record<string, unknown> | undefined;
342
334
  commitLog: unknown[];
343
- logAddress?: import("../../memory/eventPosition.js").LogAddress | undefined;
335
+ logAddress?: import("foottrace").LogAddress | undefined;
344
336
  subflowResults?: Record<string, unknown> | undefined;
345
337
  recorders?: {
346
338
  id: string;
@@ -18,7 +18,7 @@
18
18
  * even when `undefined` if the caller names them, which is what a stage stamp
19
19
  * has always done.
20
20
  */
21
- import { type RuntimeStageId } from '../ids/runtimeStageId.js';
21
+ import { type RuntimeStageId } from 'foottrace';
22
22
  import type { ResumeLink, TraversalContext } from './narrative/types.js';
23
23
  /** Everything a stamp can carry; optional keys are written only when PRESENT on this object. */
24
24
  export interface TraversalStamp {
@@ -4,9 +4,9 @@
4
4
  * Centralizes type definitions to avoid circular dependencies.
5
5
  * Every handler receives HandlerDeps (the DI bag) instead of importing the traverser.
6
6
  */
7
- import type { LogAddress } from '../memory/eventPosition.js';
7
+ import type { LogAddress } from 'foottrace';
8
+ import type { SharedMemory } from 'foottrace/write';
8
9
  import type { FlowControlType, FlowMessage } from '../memory/frameTypes.js';
9
- import type { SharedMemory } from '../memory/SharedMemory.js';
10
10
  import type { StageContext } from '../memory/StageContext.js';
11
11
  import type { ScopeProtectionMode } from '../scope/protection/types.js';
12
12
  import type { StageNode } from './graph/StageNode.js';
@@ -493,14 +493,6 @@ export interface HandlerDeps<TOut = any, TScope = any> {
493
493
  * paths.
494
494
  */
495
495
  resume?: ResumeEntry<TOut, TScope>;
496
- /**
497
- * @deprecated since 9.28.0 — the engine plans a resume with {@link resume}.
498
- * Still honoured, under the same one-shot law: each capture (keyed by
499
- * path-prefixed `subflowId`) seeds only the FIRST entry into its subflow,
500
- * in place of the inputMapper's values; later entries are ordinary.
501
- * Ignored when `resume` is set.
502
- */
503
- subflowStatesForResume?: Record<string, Record<string, unknown>>;
504
496
  }
505
497
  /** Options for FlowChartExecutor.run(). */
506
498
  export interface RunOptions {
@@ -11,15 +11,13 @@
11
11
  * frame writes (`runAddress.ts`), the dev-mode warnings, the commit observer
12
12
  * - DiagnosticCollector for logs, errors, metrics
13
13
  */
14
+ import type { CommitPhase, EmitSourcePosition, UntrackedSource } from 'foottrace';
15
+ import type { EventLog, SharedMemory } from 'foottrace/write';
14
16
  import { type DiagnosticChannel, DiagnosticCollector } from './DiagnosticCollector.js';
15
- import type { EventLog } from './EventLog.js';
16
- import type { EmitSourcePosition } from './eventPosition.js';
17
17
  import type { FlowControlType, StageSnapshot } from './frameTypes.js';
18
18
  import type { RedactionVerdict } from './redaction.js';
19
19
  import { RedactionRule } from './redaction.js';
20
20
  import type { RunPolicy } from './runPolicy.js';
21
- import type { SharedMemory } from './SharedMemory.js';
22
- import type { CommitPhase, UntrackedSource } from './types.js';
23
21
  export declare class StageContext {
24
22
  /**
25
23
  * The record half of this frame (`RecordFrame.ts`, L3, C3): the heap and,