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.
- package/CLAUDE.md +71 -9
- package/dist/advanced.js +2 -3
- package/dist/esm/advanced.js +2 -2
- package/dist/esm/index.js +3 -3
- package/dist/esm/lib/builder/FlowChartBuilder.js +359 -70
- package/dist/esm/lib/builder/index.js +1 -1
- package/dist/esm/lib/builder/structure/StructureRecorder.js +158 -0
- package/dist/esm/lib/builder/structure/StructureRecorderDispatcher.js +171 -0
- package/dist/esm/lib/builder/types.js +1 -1
- package/dist/esm/lib/decide/decide.js +9 -9
- package/dist/esm/lib/decide/evidence.js +2 -2
- package/dist/esm/lib/engine/errors/errorInfo.js +4 -3
- package/dist/esm/lib/engine/handlers/ChildrenExecutor.js +11 -2
- package/dist/esm/lib/engine/handlers/DeciderHandler.js +5 -7
- package/dist/esm/lib/engine/handlers/RuntimeStructureManager.js +2 -2
- package/dist/esm/lib/engine/handlers/SelectorHandler.js +9 -7
- package/dist/esm/lib/engine/handlers/SubflowExecutor.js +7 -1
- package/dist/esm/lib/engine/handlers/index.js +1 -3
- package/dist/esm/lib/engine/handlers/types.js +2 -2
- package/dist/esm/lib/engine/narrative/CombinedNarrativeRecorder.js +14 -4
- package/dist/esm/lib/engine/narrative/FlowRecorderDispatcher.js +5 -5
- package/dist/esm/lib/engine/narrative/NarrativeFlowRecorder.js +8 -1
- package/dist/esm/lib/engine/narrative/types.js +1 -1
- package/dist/esm/lib/engine/runtimeStageId.js +64 -2
- package/dist/esm/lib/engine/traversal/FlowchartTraverser.js +30 -56
- package/dist/esm/lib/engine/types.js +1 -1
- package/dist/esm/lib/engine/walkSubflowSpec.js +144 -0
- package/dist/esm/lib/memory/StageContext.js +3 -3
- package/dist/esm/lib/memory/backtrack.js +1 -1
- package/dist/esm/lib/reactive/createTypedScope.js +5 -5
- package/dist/esm/lib/reactive/types.js +7 -7
- package/dist/esm/lib/recorder/BoundaryStateStore.js +167 -0
- package/dist/esm/lib/recorder/BoundaryStateTracker.js +4 -4
- package/dist/esm/lib/recorder/CombinedRecorder.js +9 -9
- package/dist/esm/lib/recorder/CommitRangeIndex.js +207 -0
- package/dist/esm/lib/recorder/CompositeRecorder.js +6 -6
- package/dist/esm/lib/recorder/EmitRecorder.js +3 -3
- package/dist/esm/lib/recorder/InOutRecorder.js +1 -1
- package/dist/esm/lib/recorder/KeyedStore.js +113 -0
- package/dist/esm/lib/recorder/QualityRecorder.js +2 -2
- package/dist/esm/lib/recorder/SequenceRecorder.js +2 -2
- package/dist/esm/lib/recorder/SequenceStore.js +195 -0
- package/dist/esm/lib/recorder/TopologyRecorder.js +1 -1
- package/dist/esm/lib/recorder/index.js +13 -3
- package/dist/esm/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/esm/lib/runner/FlowChartExecutor.js +75 -44
- package/dist/esm/lib/runner/RunContext.js +2 -2
- package/dist/esm/lib/runner/RunnableChart.js +1 -1
- package/dist/esm/lib/runner/getSubtreeSnapshot.js +3 -2
- package/dist/esm/lib/runner/runId.js +65 -0
- package/dist/esm/lib/scope/ScopeFacade.js +6 -6
- package/dist/esm/lib/scope/index.js +1 -1
- package/dist/esm/lib/scope/recorders/DebugRecorder.js +4 -4
- package/dist/esm/lib/scope/recorders/MetricRecorder.js +2 -2
- package/dist/esm/lib/scope/recorders/index.js +1 -1
- package/dist/esm/lib/scope/types.js +1 -1
- package/dist/esm/recorders.js +1 -1
- package/dist/esm/trace.js +15 -2
- package/dist/index.js +3 -3
- package/dist/lib/builder/FlowChartBuilder.js +359 -70
- package/dist/lib/builder/index.js +1 -1
- package/dist/lib/builder/structure/StructureRecorder.js +159 -0
- package/dist/lib/builder/structure/StructureRecorderDispatcher.js +175 -0
- package/dist/lib/builder/types.js +1 -1
- package/dist/lib/decide/decide.js +9 -9
- package/dist/lib/decide/evidence.js +2 -2
- package/dist/lib/engine/errors/errorInfo.js +4 -3
- package/dist/lib/engine/handlers/ChildrenExecutor.js +11 -2
- package/dist/lib/engine/handlers/DeciderHandler.js +5 -7
- package/dist/lib/engine/handlers/RuntimeStructureManager.js +2 -2
- package/dist/lib/engine/handlers/SelectorHandler.js +9 -7
- package/dist/lib/engine/handlers/SubflowExecutor.js +7 -1
- package/dist/lib/engine/handlers/index.js +2 -5
- package/dist/lib/engine/handlers/types.js +2 -2
- package/dist/lib/engine/narrative/CombinedNarrativeRecorder.js +14 -4
- package/dist/lib/engine/narrative/FlowRecorderDispatcher.js +5 -5
- package/dist/lib/engine/narrative/NarrativeFlowRecorder.js +8 -1
- package/dist/lib/engine/narrative/types.js +1 -1
- package/dist/lib/engine/runtimeStageId.js +66 -3
- package/dist/lib/engine/traversal/FlowchartTraverser.js +30 -56
- package/dist/lib/engine/types.js +1 -1
- package/dist/lib/engine/walkSubflowSpec.js +148 -0
- package/dist/lib/memory/StageContext.js +3 -3
- package/dist/lib/memory/backtrack.js +1 -1
- package/dist/lib/reactive/createTypedScope.js +5 -5
- package/dist/lib/reactive/types.js +7 -7
- package/dist/lib/recorder/BoundaryStateStore.js +171 -0
- package/dist/lib/recorder/BoundaryStateTracker.js +4 -4
- package/dist/lib/recorder/CombinedRecorder.js +9 -9
- package/dist/lib/recorder/CommitRangeIndex.js +211 -0
- package/dist/lib/recorder/CompositeRecorder.js +6 -6
- package/dist/lib/recorder/EmitRecorder.js +3 -3
- package/dist/lib/recorder/InOutRecorder.js +1 -1
- package/dist/lib/recorder/KeyedStore.js +117 -0
- package/dist/lib/recorder/QualityRecorder.js +2 -2
- package/dist/lib/recorder/SequenceRecorder.js +2 -2
- package/dist/lib/recorder/SequenceStore.js +199 -0
- package/dist/lib/recorder/TopologyRecorder.js +1 -1
- package/dist/lib/recorder/index.js +19 -6
- package/dist/lib/runner/ExecutionRuntime.js +1 -1
- package/dist/lib/runner/FlowChartExecutor.js +75 -44
- package/dist/lib/runner/RunContext.js +2 -2
- package/dist/lib/runner/RunnableChart.js +1 -1
- package/dist/lib/runner/getSubtreeSnapshot.js +3 -2
- package/dist/lib/runner/runId.js +70 -0
- package/dist/lib/scope/ScopeFacade.js +6 -6
- package/dist/lib/scope/index.js +1 -1
- package/dist/lib/scope/recorders/DebugRecorder.js +4 -4
- package/dist/lib/scope/recorders/MetricRecorder.js +2 -2
- package/dist/lib/scope/recorders/index.js +1 -1
- package/dist/lib/scope/types.js +1 -1
- package/dist/recorders.js +1 -1
- package/dist/trace.js +21 -2
- package/dist/types/advanced.d.ts +4 -4
- package/dist/types/index.d.ts +6 -4
- package/dist/types/lib/builder/FlowChartBuilder.d.ts +110 -14
- package/dist/types/lib/builder/index.d.ts +2 -1
- package/dist/types/lib/builder/structure/StructureRecorder.d.ts +349 -0
- package/dist/types/lib/builder/structure/StructureRecorderDispatcher.d.ts +77 -0
- package/dist/types/lib/builder/types.d.ts +20 -6
- package/dist/types/lib/decide/evidence.d.ts +3 -3
- package/dist/types/lib/engine/errors/errorInfo.d.ts +3 -2
- package/dist/types/lib/engine/handlers/DeciderHandler.d.ts +3 -3
- package/dist/types/lib/engine/handlers/RuntimeStructureManager.d.ts +1 -1
- package/dist/types/lib/engine/handlers/SelectorHandler.d.ts +2 -2
- package/dist/types/lib/engine/handlers/index.d.ts +1 -2
- package/dist/types/lib/engine/handlers/types.d.ts +2 -9
- package/dist/types/lib/engine/narrative/CombinedNarrativeRecorder.d.ts +1 -1
- package/dist/types/lib/engine/narrative/FlowRecorderDispatcher.d.ts +4 -4
- package/dist/types/lib/engine/narrative/types.d.ts +43 -4
- package/dist/types/lib/engine/runtimeStageId.d.ts +57 -1
- package/dist/types/lib/engine/traversal/FlowchartTraverser.d.ts +12 -6
- package/dist/types/lib/engine/types.d.ts +0 -26
- package/dist/types/lib/engine/walkSubflowSpec.d.ts +95 -0
- package/dist/types/lib/memory/StageContext.d.ts +2 -2
- package/dist/types/lib/memory/backtrack.d.ts +1 -1
- package/dist/types/lib/reactive/types.d.ts +7 -7
- package/dist/types/lib/recorder/BoundaryStateStore.d.ts +115 -0
- package/dist/types/lib/recorder/BoundaryStateTracker.d.ts +3 -3
- package/dist/types/lib/recorder/CombinedRecorder.d.ts +11 -11
- package/dist/types/lib/recorder/CommitRangeIndex.d.ts +147 -0
- package/dist/types/lib/recorder/CompositeRecorder.d.ts +8 -8
- package/dist/types/lib/recorder/EmitRecorder.d.ts +2 -2
- package/dist/types/lib/recorder/InOutRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/KeyedStore.d.ts +70 -0
- package/dist/types/lib/recorder/QualityRecorder.d.ts +4 -4
- package/dist/types/lib/recorder/SequenceRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/SequenceStore.d.ts +120 -0
- package/dist/types/lib/recorder/TopologyRecorder.d.ts +1 -1
- package/dist/types/lib/recorder/index.d.ts +5 -2
- package/dist/types/lib/runner/ExecutionRuntime.d.ts +1 -1
- package/dist/types/lib/runner/FlowChartExecutor.d.ts +40 -30
- package/dist/types/lib/runner/RunContext.d.ts +2 -2
- package/dist/types/lib/runner/RunnableChart.d.ts +2 -2
- package/dist/types/lib/runner/runId.d.ts +45 -0
- package/dist/types/lib/scope/ScopeFacade.d.ts +4 -4
- package/dist/types/lib/scope/index.d.ts +1 -1
- package/dist/types/lib/scope/recorders/DebugRecorder.d.ts +4 -4
- package/dist/types/lib/scope/recorders/MetricRecorder.d.ts +4 -4
- package/dist/types/lib/scope/recorders/index.d.ts +1 -1
- package/dist/types/lib/scope/types.d.ts +1 -1
- package/dist/types/recorders.d.ts +1 -1
- package/dist/types/trace.d.ts +8 -1
- package/package.json +1 -1
- package/dist/esm/lib/engine/handlers/ExtractorRunner.js +0 -122
- package/dist/lib/engine/handlers/ExtractorRunner.js +0 -126
- 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
|
-
}
|