footprintjs 4.17.2 → 6.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 (167) hide show
  1. package/CLAUDE.md +71 -9
  2. package/dist/advanced.js +2 -3
  3. package/dist/esm/advanced.js +2 -2
  4. package/dist/esm/index.js +3 -3
  5. package/dist/esm/lib/builder/FlowChartBuilder.js +359 -70
  6. package/dist/esm/lib/builder/index.js +1 -1
  7. package/dist/esm/lib/builder/structure/StructureRecorder.js +158 -0
  8. package/dist/esm/lib/builder/structure/StructureRecorderDispatcher.js +171 -0
  9. package/dist/esm/lib/builder/types.js +1 -1
  10. package/dist/esm/lib/decide/decide.js +9 -9
  11. package/dist/esm/lib/decide/evidence.js +2 -2
  12. package/dist/esm/lib/engine/errors/errorInfo.js +4 -3
  13. package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +11 -2
  14. package/dist/esm/lib/engine/handlers/DeciderHandler.js +5 -7
  15. package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +2 -2
  16. package/dist/esm/lib/engine/handlers/SelectorHandler.js +9 -7
  17. package/dist/esm/lib/engine/handlers/SubflowExecutor.js +7 -1
  18. package/dist/esm/lib/engine/handlers/index.js +1 -3
  19. package/dist/esm/lib/engine/handlers/types.js +2 -2
  20. package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +14 -4
  21. package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +5 -5
  22. package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +8 -1
  23. package/dist/esm/lib/engine/narrative/types.js +1 -1
  24. package/dist/esm/lib/engine/runtimeStageId.js +64 -2
  25. package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +30 -56
  26. package/dist/esm/lib/engine/types.js +1 -1
  27. package/dist/esm/lib/engine/walkSubflowSpec.js +144 -0
  28. package/dist/esm/lib/memory/StageContext.js +3 -3
  29. package/dist/esm/lib/memory/backtrack.js +1 -1
  30. package/dist/esm/lib/reactive/createTypedScope.js +5 -5
  31. package/dist/esm/lib/reactive/types.js +7 -7
  32. package/dist/esm/lib/recorder/BoundaryStateStore.js +167 -0
  33. package/dist/esm/lib/recorder/BoundaryStateTracker.js +4 -4
  34. package/dist/esm/lib/recorder/CombinedRecorder.js +9 -9
  35. package/dist/esm/lib/recorder/CommitRangeIndex.js +207 -0
  36. package/dist/esm/lib/recorder/CompositeRecorder.js +6 -6
  37. package/dist/esm/lib/recorder/EmitRecorder.js +3 -3
  38. package/dist/esm/lib/recorder/InOutRecorder.js +1 -1
  39. package/dist/esm/lib/recorder/KeyedStore.js +113 -0
  40. package/dist/esm/lib/recorder/QualityRecorder.js +2 -2
  41. package/dist/esm/lib/recorder/SequenceRecorder.js +2 -2
  42. package/dist/esm/lib/recorder/SequenceStore.js +195 -0
  43. package/dist/esm/lib/recorder/TopologyRecorder.js +1 -1
  44. package/dist/esm/lib/recorder/index.js +13 -3
  45. package/dist/esm/lib/runner/ExecutionRuntime.js +1 -1
  46. package/dist/esm/lib/runner/FlowChartExecutor.js +75 -44
  47. package/dist/esm/lib/runner/RunContext.js +2 -2
  48. package/dist/esm/lib/runner/RunnableChart.js +1 -1
  49. package/dist/esm/lib/runner/getSubtreeSnapshot.js +3 -2
  50. package/dist/esm/lib/runner/runId.js +65 -0
  51. package/dist/esm/lib/scope/ScopeFacade.js +6 -6
  52. package/dist/esm/lib/scope/index.js +1 -1
  53. package/dist/esm/lib/scope/recorders/DebugRecorder.js +4 -4
  54. package/dist/esm/lib/scope/recorders/MetricRecorder.js +2 -2
  55. package/dist/esm/lib/scope/recorders/index.js +1 -1
  56. package/dist/esm/lib/scope/types.js +1 -1
  57. package/dist/esm/recorders.js +1 -1
  58. package/dist/esm/trace.js +15 -2
  59. package/dist/index.js +3 -3
  60. package/dist/lib/builder/FlowChartBuilder.js +359 -70
  61. package/dist/lib/builder/index.js +1 -1
  62. package/dist/lib/builder/structure/StructureRecorder.js +159 -0
  63. package/dist/lib/builder/structure/StructureRecorderDispatcher.js +175 -0
  64. package/dist/lib/builder/types.js +1 -1
  65. package/dist/lib/decide/decide.js +9 -9
  66. package/dist/lib/decide/evidence.js +2 -2
  67. package/dist/lib/engine/errors/errorInfo.js +4 -3
  68. package/dist/lib/engine/handlers/ChildrenExecutor.js +11 -2
  69. package/dist/lib/engine/handlers/DeciderHandler.js +5 -7
  70. package/dist/lib/engine/handlers/RuntimeStructureManager.js +2 -2
  71. package/dist/lib/engine/handlers/SelectorHandler.js +9 -7
  72. package/dist/lib/engine/handlers/SubflowExecutor.js +7 -1
  73. package/dist/lib/engine/handlers/index.js +2 -5
  74. package/dist/lib/engine/handlers/types.js +2 -2
  75. package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +14 -4
  76. package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +5 -5
  77. package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +8 -1
  78. package/dist/lib/engine/narrative/types.js +1 -1
  79. package/dist/lib/engine/runtimeStageId.js +66 -3
  80. package/dist/lib/engine/traversal/FlowchartTraverser.js +30 -56
  81. package/dist/lib/engine/types.js +1 -1
  82. package/dist/lib/engine/walkSubflowSpec.js +148 -0
  83. package/dist/lib/memory/StageContext.js +3 -3
  84. package/dist/lib/memory/backtrack.js +1 -1
  85. package/dist/lib/reactive/createTypedScope.js +5 -5
  86. package/dist/lib/reactive/types.js +7 -7
  87. package/dist/lib/recorder/BoundaryStateStore.js +171 -0
  88. package/dist/lib/recorder/BoundaryStateTracker.js +4 -4
  89. package/dist/lib/recorder/CombinedRecorder.js +9 -9
  90. package/dist/lib/recorder/CommitRangeIndex.js +211 -0
  91. package/dist/lib/recorder/CompositeRecorder.js +6 -6
  92. package/dist/lib/recorder/EmitRecorder.js +3 -3
  93. package/dist/lib/recorder/InOutRecorder.js +1 -1
  94. package/dist/lib/recorder/KeyedStore.js +117 -0
  95. package/dist/lib/recorder/QualityRecorder.js +2 -2
  96. package/dist/lib/recorder/SequenceRecorder.js +2 -2
  97. package/dist/lib/recorder/SequenceStore.js +199 -0
  98. package/dist/lib/recorder/TopologyRecorder.js +1 -1
  99. package/dist/lib/recorder/index.js +19 -6
  100. package/dist/lib/runner/ExecutionRuntime.js +1 -1
  101. package/dist/lib/runner/FlowChartExecutor.js +75 -44
  102. package/dist/lib/runner/RunContext.js +2 -2
  103. package/dist/lib/runner/RunnableChart.js +1 -1
  104. package/dist/lib/runner/getSubtreeSnapshot.js +3 -2
  105. package/dist/lib/runner/runId.js +70 -0
  106. package/dist/lib/scope/ScopeFacade.js +6 -6
  107. package/dist/lib/scope/index.js +1 -1
  108. package/dist/lib/scope/recorders/DebugRecorder.js +4 -4
  109. package/dist/lib/scope/recorders/MetricRecorder.js +2 -2
  110. package/dist/lib/scope/recorders/index.js +1 -1
  111. package/dist/lib/scope/types.js +1 -1
  112. package/dist/recorders.js +1 -1
  113. package/dist/trace.js +21 -2
  114. package/dist/types/advanced.d.ts +4 -4
  115. package/dist/types/index.d.ts +6 -4
  116. package/dist/types/lib/builder/FlowChartBuilder.d.ts +110 -14
  117. package/dist/types/lib/builder/index.d.ts +2 -1
  118. package/dist/types/lib/builder/structure/StructureRecorder.d.ts +349 -0
  119. package/dist/types/lib/builder/structure/StructureRecorderDispatcher.d.ts +77 -0
  120. package/dist/types/lib/builder/types.d.ts +20 -6
  121. package/dist/types/lib/decide/evidence.d.ts +3 -3
  122. package/dist/types/lib/engine/errors/errorInfo.d.ts +3 -2
  123. package/dist/types/lib/engine/handlers/DeciderHandler.d.ts +3 -3
  124. package/dist/types/lib/engine/handlers/RuntimeStructureManager.d.ts +1 -1
  125. package/dist/types/lib/engine/handlers/SelectorHandler.d.ts +2 -2
  126. package/dist/types/lib/engine/handlers/index.d.ts +1 -2
  127. package/dist/types/lib/engine/handlers/types.d.ts +2 -9
  128. package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +1 -1
  129. package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +4 -4
  130. package/dist/types/lib/engine/narrative/types.d.ts +43 -4
  131. package/dist/types/lib/engine/runtimeStageId.d.ts +57 -1
  132. package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +12 -6
  133. package/dist/types/lib/engine/types.d.ts +0 -26
  134. package/dist/types/lib/engine/walkSubflowSpec.d.ts +95 -0
  135. package/dist/types/lib/memory/StageContext.d.ts +2 -2
  136. package/dist/types/lib/memory/backtrack.d.ts +1 -1
  137. package/dist/types/lib/reactive/types.d.ts +7 -7
  138. package/dist/types/lib/recorder/BoundaryStateStore.d.ts +115 -0
  139. package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +3 -3
  140. package/dist/types/lib/recorder/CombinedRecorder.d.ts +11 -11
  141. package/dist/types/lib/recorder/CommitRangeIndex.d.ts +147 -0
  142. package/dist/types/lib/recorder/CompositeRecorder.d.ts +8 -8
  143. package/dist/types/lib/recorder/EmitRecorder.d.ts +2 -2
  144. package/dist/types/lib/recorder/InOutRecorder.d.ts +1 -1
  145. package/dist/types/lib/recorder/KeyedStore.d.ts +70 -0
  146. package/dist/types/lib/recorder/QualityRecorder.d.ts +4 -4
  147. package/dist/types/lib/recorder/SequenceRecorder.d.ts +1 -1
  148. package/dist/types/lib/recorder/SequenceStore.d.ts +120 -0
  149. package/dist/types/lib/recorder/TopologyRecorder.d.ts +1 -1
  150. package/dist/types/lib/recorder/index.d.ts +5 -2
  151. package/dist/types/lib/runner/ExecutionRuntime.d.ts +1 -1
  152. package/dist/types/lib/runner/FlowChartExecutor.d.ts +40 -30
  153. package/dist/types/lib/runner/RunContext.d.ts +2 -2
  154. package/dist/types/lib/runner/RunnableChart.d.ts +2 -2
  155. package/dist/types/lib/runner/runId.d.ts +45 -0
  156. package/dist/types/lib/scope/ScopeFacade.d.ts +4 -4
  157. package/dist/types/lib/scope/index.d.ts +1 -1
  158. package/dist/types/lib/scope/recorders/DebugRecorder.d.ts +4 -4
  159. package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +4 -4
  160. package/dist/types/lib/scope/recorders/index.d.ts +1 -1
  161. package/dist/types/lib/scope/types.d.ts +1 -1
  162. package/dist/types/recorders.d.ts +1 -1
  163. package/dist/types/trace.d.ts +8 -1
  164. package/package.json +1 -1
  165. package/dist/esm/lib/engine/handlers/ExtractorRunner.js +0 -122
  166. package/dist/lib/engine/handlers/ExtractorRunner.js +0 -126
  167. package/dist/types/lib/engine/handlers/ExtractorRunner.d.ts +0 -41
@@ -1,126 +0,0 @@
1
- "use strict";
2
- /**
3
- * ExtractorRunner — Per-stage snapshot extraction.
4
- *
5
- * Coordinates traversal extractor invocations: step counting,
6
- * snapshot enrichment, error collection, and result storage.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.ExtractorRunner = void 0;
10
- const RuntimeStructureManager_js_1 = require("./RuntimeStructureManager.js");
11
- class ExtractorRunner {
12
- extractor;
13
- enrichSnapshots;
14
- executionRuntime;
15
- logger;
16
- extractedResults = new Map();
17
- extractorErrors = [];
18
- stepCounter = 0;
19
- /** Current subflow context for metadata propagation. Set/cleared during subflow execution. */
20
- currentSubflowId;
21
- /** Current fork context for metadata propagation. Set/cleared during parallel children execution. */
22
- currentForkId;
23
- constructor(extractor, enrichSnapshots, executionRuntime, logger) {
24
- this.extractor = extractor;
25
- this.enrichSnapshots = enrichSnapshots;
26
- this.executionRuntime = executionRuntime;
27
- this.logger = logger;
28
- }
29
- /**
30
- * Call the extractor for a stage and store the result.
31
- * Increments stepCounter (1-based) before creating snapshot.
32
- */
33
- callExtractor(node, context, stagePath, stageOutput, errorInfo) {
34
- if (!this.extractor)
35
- return;
36
- this.stepCounter++;
37
- try {
38
- const snapshot = {
39
- node,
40
- context,
41
- stepNumber: this.stepCounter,
42
- structureMetadata: this.buildStructureMetadata(node),
43
- };
44
- if (this.enrichSnapshots) {
45
- try {
46
- snapshot.scopeState = { ...this.executionRuntime.globalStore.getState() };
47
- snapshot.debugInfo = {
48
- logs: { ...context.debug.logContext },
49
- errors: { ...context.debug.errorContext },
50
- metrics: { ...context.debug.metricContext },
51
- evals: { ...context.debug.evalContext },
52
- };
53
- if (context.debug.flowMessages.length > 0) {
54
- snapshot.debugInfo.flowMessages = [...context.debug.flowMessages];
55
- }
56
- snapshot.stageOutput = stageOutput;
57
- if (errorInfo) {
58
- snapshot.errorInfo = errorInfo;
59
- }
60
- snapshot.historyIndex = this.executionRuntime.executionHistory.list().length;
61
- }
62
- catch (enrichError) {
63
- this.logger.warn(`Enrichment error at stage '${stagePath}':`, { error: enrichError });
64
- }
65
- }
66
- const result = this.extractor(snapshot);
67
- if (result !== undefined && result !== null) {
68
- this.extractedResults.set(stagePath, result);
69
- }
70
- }
71
- catch (error) {
72
- this.logger.error(`Extractor error at stage '${stagePath}':`, { error });
73
- this.extractorErrors.push({
74
- stagePath,
75
- message: error?.message ?? String(error),
76
- error,
77
- });
78
- }
79
- }
80
- /**
81
- * Generate the stage path for extractor results.
82
- * Uses node.id combined with branchPath.
83
- */
84
- getStagePath(node, branchPath, contextStageName) {
85
- const baseName = node.id;
86
- const nodeId = contextStageName && contextStageName !== node.name ? contextStageName : baseName;
87
- if (!branchPath)
88
- return nodeId;
89
- return `${branchPath}.${nodeId}`;
90
- }
91
- buildStructureMetadata(node) {
92
- const metadata = {
93
- type: (0, RuntimeStructureManager_js_1.computeNodeType)(node),
94
- };
95
- if (node.isSubflowRoot) {
96
- metadata.isSubflowRoot = true;
97
- metadata.subflowId = node.subflowId;
98
- metadata.subflowName = node.subflowName;
99
- }
100
- else if (this.currentSubflowId) {
101
- metadata.subflowId = this.currentSubflowId;
102
- }
103
- if (this.currentForkId) {
104
- metadata.isParallelChild = true;
105
- metadata.parallelGroupId = this.currentForkId;
106
- }
107
- if (node.isStreaming) {
108
- metadata.streamId = node.streamId;
109
- }
110
- const hasDynamicChildren = Boolean(node.children?.length && !node.nextNodeSelector && node.fn);
111
- if (hasDynamicChildren) {
112
- metadata.isDynamic = true;
113
- }
114
- return metadata;
115
- }
116
- /** Returns extracted results collected during execution. */
117
- getExtractedResults() {
118
- return this.extractedResults;
119
- }
120
- /** Returns errors encountered during extraction. */
121
- getExtractorErrors() {
122
- return this.extractorErrors;
123
- }
124
- }
125
- exports.ExtractorRunner = ExtractorRunner;
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXh0cmFjdG9yUnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9lbmdpbmUvaGFuZGxlcnMvRXh0cmFjdG9yUnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBWUgsNkVBQStEO0FBRS9ELE1BQWEsZUFBZTtJQUNULFNBQVMsQ0FBc0I7SUFDL0IsZUFBZSxDQUFVO0lBQ3pCLGdCQUFnQixDQUFvQjtJQUNwQyxNQUFNLENBQVU7SUFFekIsZ0JBQWdCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbkQsZUFBZSxHQUFxQixFQUFFLENBQUM7SUFDdkMsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUV4Qiw4RkFBOEY7SUFDOUYsZ0JBQWdCLENBQVU7SUFFMUIscUdBQXFHO0lBQ3JHLGFBQWEsQ0FBVTtJQUV2QixZQUNFLFNBQXlDLEVBQ3pDLGVBQXdCLEVBQ3hCLGdCQUFtQyxFQUNuQyxNQUFlO1FBRWYsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxhQUFhLENBQ1gsSUFBZSxFQUNmLE9BQXFCLEVBQ3JCLFNBQWlCLEVBQ2pCLFdBQXFCLEVBQ3JCLFNBQTZDO1FBRTdDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFrQjtnQkFDOUIsSUFBSTtnQkFDSixPQUFPO2dCQUNQLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDNUIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLHNCQUFz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ciDigJQgUGVyLXN0YWdlIHNuYXBzaG90IGV4dHJhY3Rpb24uXG4gKlxuICogQ29vcmRpbmF0ZXMgdHJhdmVyc2FsIGV4dHJhY3RvciBpbnZvY2F0aW9uczogc3RlcCBjb3VudGluZyxcbiAqIHNuYXBzaG90IGVucmljaG1lbnQsIGVycm9yIGNvbGxlY3Rpb24sIGFuZCByZXN1bHQgc3RvcmFnZS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IFN0YWdlQ29udGV4dCB9IGZyb20gJy4uLy4uL21lbW9yeS9TdGFnZUNvbnRleHQuanMnO1xuaW1wb3J0IHR5cGUgeyBTdGFnZU5vZGUgfSBmcm9tICcuLi9ncmFwaC9TdGFnZU5vZGUuanMnO1xuaW1wb3J0IHR5cGUge1xuICBFeHRyYWN0b3JFcnJvcixcbiAgSUV4ZWN1dGlvblJ1bnRpbWUsXG4gIElMb2dnZXIsXG4gIFJ1bnRpbWVTdHJ1Y3R1cmVNZXRhZGF0YSxcbiAgU3RhZ2VTbmFwc2hvdCxcbiAgVHJhdmVyc2FsRXh0cmFjdG9yLFxufSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgeyBjb21wdXRlTm9kZVR5cGUgfSBmcm9tICcuL1J1bnRpbWVTdHJ1Y3R1cmVNYW5hZ2VyLmpzJztcblxuZXhwb3J0IGNsYXNzIEV4dHJhY3RvclJ1bm5lcjxUT3V0ID0gYW55LCBUU2NvcGUgPSBhbnk+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBleHRyYWN0b3I/OiBUcmF2ZXJzYWxFeHRyYWN0b3I7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW5yaWNoU25hcHNob3RzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblJ1bnRpbWU6IElFeGVjdXRpb25SdW50aW1lO1xuICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogSUxvZ2dlcjtcblxuICBwcml2YXRlIGV4dHJhY3RlZFJlc3VsdHM6IE1hcDxzdHJpbmcsIHVua25vd24+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGV4dHJhY3RvckVycm9yczogRXh0cmFjdG9yRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIHN0ZXBDb3VudGVyID0gMDtcblxuICAvKiogQ3VycmVudCBzdWJmbG93IGNvbnRleHQgZm9yIG1ldGFkYXRhIHByb3BhZ2F0aW9uLiBTZXQvY2xlYXJlZCBkdXJpbmcgc3ViZmxvdyBleGVjdXRpb24uICovXG4gIGN1cnJlbnRTdWJmbG93SWQ/OiBzdHJpbmc7XG5cbiAgLyoqIEN1cnJlbnQgZm9yayBjb250ZXh0IGZvciBtZXRhZGF0YSBwcm9wYWdhdGlvbi4gU2V0L2NsZWFyZWQgZHVyaW5nIHBhcmFsbGVsIGNoaWxkcmVuIGV4ZWN1dGlvbi4gKi9cbiAgY3VycmVudEZvcmtJZD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBleHRyYWN0b3I6IFRyYXZlcnNhbEV4dHJhY3RvciB8IHVuZGVmaW5lZCxcbiAgICBlbnJpY2hTbmFwc2hvdHM6IGJvb2xlYW4sXG4gICAgZXhlY3V0aW9uUnVudGltZTogSUV4ZWN1dGlvblJ1bnRpbWUsXG4gICAgbG9nZ2VyOiBJTG9nZ2VyLFxuICApIHtcbiAgICB0aGlzLmV4dHJhY3RvciA9IGV4dHJhY3RvcjtcbiAgICB0aGlzLmVucmljaFNuYXBzaG90cyA9IGVucmljaFNuYXBzaG90cztcbiAgICB0aGlzLmV4ZWN1dGlvblJ1bnRpbWUgPSBleGVjdXRpb25SdW50aW1lO1xuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhlIGV4dHJhY3RvciBmb3IgYSBzdGFnZSBhbmQgc3RvcmUgdGhlIHJlc3VsdC5cbiAgICogSW5jcmVtZW50cyBzdGVwQ291bnRlciAoMS1iYXNlZCkgYmVmb3JlIGNyZWF0aW5nIHNuYXBzaG90LlxuICAgKi9cbiAgY2FsbEV4dHJhY3RvcihcbiAgICBub2RlOiBTdGFnZU5vZGUsXG4gICAgY29udGV4dDogU3RhZ2VDb250ZXh0LFxuICAgIHN0YWdlUGF0aDogc3RyaW5nLFxuICAgIHN0YWdlT3V0cHV0PzogdW5rbm93bixcbiAgICBlcnJvckluZm8/OiB7IHR5cGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH0sXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5leHRyYWN0b3IpIHJldHVybjtcblxuICAgIHRoaXMuc3RlcENvdW50ZXIrKztcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzbmFwc2hvdDogU3RhZ2VTbmFwc2hvdCA9IHtcbiAgICAgICAgbm9kZSxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgc3RlcE51bWJlcjogdGhpcy5zdGVwQ291bnRlcixcbiAgICAgICAgc3RydWN0dXJlTWV0YWRhdGE6IHRoaXMuYnVpbGRTdHJ1Y3R1cmVNZXRhZGF0YShub2RlKSxcbiAgICAgIH07XG5cbiAgICAgIGlmICh0aGlzLmVucmljaFNuYXBzaG90cykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHNuYXBzaG90LnNjb3BlU3RhdGUgPSB7IC4uLnRoaXMuZXhlY3V0aW9uUnVudGltZS5nbG9iYWxTdG9yZS5nZXRTdGF0ZSgpIH07XG5cbiAgICAgICAgICBzbmFwc2hvdC5kZWJ1Z0luZm8gPSB7XG4gICAgICAgICAgICBsb2dzOiB7IC4uLmNvbnRleHQuZGVidWcubG9nQ29udGV4dCB9LFxuICAgICAgICAgICAgZXJyb3JzOiB7IC4uLmNvbnRleHQuZGVidWcuZXJyb3JDb250ZXh0IH0sXG4gICAgICAgICAgICBtZXRyaWNzOiB7IC4uLmNvbnRleHQuZGVidWcubWV0cmljQ29udGV4dCB9LFxuICAgICAgICAgICAgZXZhbHM6IHsgLi4uY29udGV4dC5kZWJ1Zy5ldmFsQ29udGV4dCB9LFxuICAgICAgICAgIH07XG4gICAgICAgICAgaWYgKGNvbnRleHQuZGVidWcuZmxvd01lc3NhZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHNuYXBzaG90LmRlYnVnSW5mby5mbG93TWVzc2FnZXMgPSBbLi4uY29udGV4dC5kZWJ1Zy5mbG93TWVzc2FnZXNdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHNuYXBzaG90LnN0YWdlT3V0cHV0ID0gc3RhZ2VPdXRwdXQ7XG5cbiAgICAgICAgICBpZiAoZXJyb3JJbmZvKSB7XG4gICAgICAgICAgICBzbmFwc2hvdC5lcnJvckluZm8gPSBlcnJvckluZm87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgc25hcHNob3QuaGlzdG9yeUluZGV4ID0gdGhpcy5leGVjdXRpb25SdW50aW1lLmV4ZWN1dGlvbkhpc3RvcnkubGlzdCgpLmxlbmd0aDtcbiAgICAgICAgfSBjYXRjaCAoZW5yaWNoRXJyb3I6IGFueSkge1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEVucmljaG1lbnQgZXJyb3IgYXQgc3RhZ2UgJyR7c3RhZ2VQYXRofSc6YCwgeyBlcnJvcjogZW5yaWNoRXJyb3IgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5leHRyYWN0b3Ioc25hcHNob3QpO1xuXG4gICAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQgJiYgcmVzdWx0ICE9PSBudWxsKSB7XG4gICAgICAgIHRoaXMuZXh0cmFjdGVkUmVzdWx0cy5zZXQoc3RhZ2VQYXRoLCByZXN1bHQpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBFeHRyYWN0b3IgZXJyb3IgYXQgc3RhZ2UgJyR7c3RhZ2VQYXRofSc6YCwgeyBlcnJvciB9KTtcbiAgICAgIHRoaXMuZXh0cmFjdG9yRXJyb3JzLnB1c2goe1xuICAgICAgICBzdGFnZVBhdGgsXG4gICAgICAgIG1lc3NhZ2U6IGVycm9yPy5tZXNzYWdlID8/IFN0cmluZyhlcnJvciksXG4gICAgICAgIGVycm9yLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHRoZSBzdGFnZSBwYXRoIGZvciBleHRyYWN0b3IgcmVzdWx0cy5cbiAgICogVXNlcyBub2RlLmlkIGNvbWJpbmVkIHdpdGggYnJhbmNoUGF0aC5cbiAgICovXG4gIGdldFN0YWdlUGF0aChub2RlOiBTdGFnZU5vZGUsIGJyYW5jaFBhdGg/OiBzdHJpbmcsIGNvbnRleHRTdGFnZU5hbWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2VOYW1lID0gbm9kZS5pZDtcbiAgICBjb25zdCBub2RlSWQgPSBjb250ZXh0U3RhZ2VOYW1lICYmIGNvbnRleHRTdGFnZU5hbWUgIT09IG5vZGUubmFtZSA/IGNvbnRleHRTdGFnZU5hbWUgOiBiYXNlTmFtZTtcbiAgICBpZiAoIWJyYW5jaFBhdGgpIHJldHVybiBub2RlSWQ7XG4gICAgcmV0dXJuIGAke2JyYW5jaFBhdGh9LiR7bm9kZUlkfWA7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkU3RydWN0dXJlTWV0YWRhdGEobm9kZTogU3RhZ2VOb2RlKTogUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhIHtcbiAgICBjb25zdCBtZXRhZGF0YTogUnVudGltZVN0cnVjdHVyZU1ldGFkYXRhID0ge1xuICAgICAgdHlwZTogY29tcHV0ZU5vZGVUeXBlKG5vZGUpLFxuICAgIH07XG5cbiAgICBpZiAobm9kZS5pc1N1YmZsb3dSb290KSB7XG4gICAgICBtZXRhZGF0YS5pc1N1YmZsb3dSb290ID0gdHJ1ZTtcbiAgICAgIG1ldGFkYXRhLnN1YmZsb3dJZCA9IG5vZGUuc3ViZmxvd0lkO1xuICAgICAgbWV0YWRhdGEuc3ViZmxvd05hbWUgPSBub2RlLnN1YmZsb3dOYW1lO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50U3ViZmxvd0lkKSB7XG4gICAgICBtZXRhZGF0YS5zdWJmbG93SWQgPSB0aGlzLmN1cnJlbnRTdWJmbG93SWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY3VycmVudEZvcmtJZCkge1xuICAgICAgbWV0YWRhdGEuaXNQYXJhbGxlbENoaWxkID0gdHJ1ZTtcbiAgICAgIG1ldGFkYXRhLnBhcmFsbGVsR3JvdXBJZCA9IHRoaXMuY3VycmVudEZvcmtJZDtcbiAgICB9XG5cbiAgICBpZiAobm9kZS5pc1N0cmVhbWluZykge1xuICAgICAgbWV0YWRhdGEuc3RyZWFtSWQgPSBub2RlLnN0cmVhbUlkO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0R5bmFtaWNDaGlsZHJlbiA9IEJvb2xlYW4obm9kZS5jaGlsZHJlbj8ubGVuZ3RoICYmICFub2RlLm5leHROb2RlU2VsZWN0b3IgJiYgbm9kZS5mbik7XG4gICAgaWYgKGhhc0R5bmFtaWNDaGlsZHJlbikge1xuICAgICAgbWV0YWRhdGEuaXNEeW5hbWljID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWV0YWRhdGE7XG4gIH1cblxuICAvKiogUmV0dXJucyBleHRyYWN0ZWQgcmVzdWx0cyBjb2xsZWN0ZWQgZHVyaW5nIGV4ZWN1dGlvbi4gKi9cbiAgZ2V0RXh0cmFjdGVkUmVzdWx0czxUUmVzdWx0ID0gdW5rbm93bj4oKTogTWFwPHN0cmluZywgVFJlc3VsdD4ge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RlZFJlc3VsdHMgYXMgTWFwPHN0cmluZywgVFJlc3VsdD47XG4gIH1cblxuICAvKiogUmV0dXJucyBlcnJvcnMgZW5jb3VudGVyZWQgZHVyaW5nIGV4dHJhY3Rpb24uICovXG4gIGdldEV4dHJhY3RvckVycm9ycygpOiBFeHRyYWN0b3JFcnJvcltdIHtcbiAgICByZXR1cm4gdGhpcy5leHRyYWN0b3JFcnJvcnM7XG4gIH1cbn1cbiJdfQ==
@@ -1,41 +0,0 @@
1
- /**
2
- * ExtractorRunner — Per-stage snapshot extraction.
3
- *
4
- * Coordinates traversal extractor invocations: step counting,
5
- * snapshot enrichment, error collection, and result storage.
6
- */
7
- import type { StageContext } from '../../memory/StageContext.js';
8
- import type { StageNode } from '../graph/StageNode.js';
9
- import type { ExtractorError, IExecutionRuntime, ILogger, TraversalExtractor } from '../types.js';
10
- export declare class ExtractorRunner<TOut = any, TScope = any> {
11
- private readonly extractor?;
12
- private readonly enrichSnapshots;
13
- private readonly executionRuntime;
14
- private readonly logger;
15
- private extractedResults;
16
- private extractorErrors;
17
- private stepCounter;
18
- /** Current subflow context for metadata propagation. Set/cleared during subflow execution. */
19
- currentSubflowId?: string;
20
- /** Current fork context for metadata propagation. Set/cleared during parallel children execution. */
21
- currentForkId?: string;
22
- constructor(extractor: TraversalExtractor | undefined, enrichSnapshots: boolean, executionRuntime: IExecutionRuntime, logger: ILogger);
23
- /**
24
- * Call the extractor for a stage and store the result.
25
- * Increments stepCounter (1-based) before creating snapshot.
26
- */
27
- callExtractor(node: StageNode, context: StageContext, stagePath: string, stageOutput?: unknown, errorInfo?: {
28
- type: string;
29
- message: string;
30
- }): void;
31
- /**
32
- * Generate the stage path for extractor results.
33
- * Uses node.id combined with branchPath.
34
- */
35
- getStagePath(node: StageNode, branchPath?: string, contextStageName?: string): string;
36
- private buildStructureMetadata;
37
- /** Returns extracted results collected during execution. */
38
- getExtractedResults<TResult = unknown>(): Map<string, TResult>;
39
- /** Returns errors encountered during extraction. */
40
- getExtractorErrors(): ExtractorError[];
41
- }