footprint-explainable-ui 0.18.0 → 0.19.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 (90) hide show
  1. package/dist/adapters/fromRuntimeSnapshot.d.ts +33 -4
  2. package/dist/adapters/fromRuntimeSnapshot.d.ts.map +1 -1
  3. package/dist/adapters/fromRuntimeSnapshot.js +162 -33
  4. package/dist/adapters/fromRuntimeSnapshot.js.map +1 -1
  5. package/dist/components/ExplainableShell/ExplainableShell.d.ts +157 -14
  6. package/dist/components/ExplainableShell/ExplainableShell.d.ts.map +1 -1
  7. package/dist/components/ExplainableShell/ExplainableShell.js +676 -68
  8. package/dist/components/ExplainableShell/ExplainableShell.js.map +1 -1
  9. package/dist/components/ExplainableShell/index.d.ts +1 -1
  10. package/dist/components/ExplainableShell/index.d.ts.map +1 -1
  11. package/dist/components/FlowchartView/SubflowTree.d.ts +7 -14
  12. package/dist/components/FlowchartView/SubflowTree.d.ts.map +1 -1
  13. package/dist/components/FlowchartView/SubflowTree.js +56 -46
  14. package/dist/components/FlowchartView/SubflowTree.js.map +1 -1
  15. package/dist/components/FlowchartView/index.d.ts +32 -4
  16. package/dist/components/FlowchartView/index.d.ts.map +1 -1
  17. package/dist/components/FlowchartView/index.js +22 -2
  18. package/dist/components/FlowchartView/index.js.map +1 -1
  19. package/dist/components/FlowchartView/useSubflowNavigation.d.ts +41 -16
  20. package/dist/components/FlowchartView/useSubflowNavigation.d.ts.map +1 -1
  21. package/dist/components/FlowchartView/useSubflowNavigation.js +69 -50
  22. package/dist/components/FlowchartView/useSubflowNavigation.js.map +1 -1
  23. package/dist/components/GanttTimeline/GanttTimeline.d.ts.map +1 -1
  24. package/dist/components/GanttTimeline/GanttTimeline.js +5 -5
  25. package/dist/components/GanttTimeline/GanttTimeline.js.map +1 -1
  26. package/dist/components/MemoryInspector/MemoryInspector.d.ts.map +1 -1
  27. package/dist/components/MemoryInspector/MemoryInspector.js +36 -13
  28. package/dist/components/MemoryInspector/MemoryInspector.js.map +1 -1
  29. package/dist/components/NarrativeTrace/NarrativeTrace.d.ts.map +1 -1
  30. package/dist/components/NarrativeTrace/NarrativeTrace.js +24 -17
  31. package/dist/components/NarrativeTrace/NarrativeTrace.js.map +1 -1
  32. package/dist/components/ScopeDiff/ScopeDiff.js +3 -3
  33. package/dist/components/ScopeDiff/ScopeDiff.js.map +1 -1
  34. package/dist/components/StageNode/StageNode.d.ts +21 -0
  35. package/dist/components/StageNode/StageNode.d.ts.map +1 -1
  36. package/dist/components/StageNode/StageNode.js +189 -9
  37. package/dist/components/StageNode/StageNode.js.map +1 -1
  38. package/dist/components/TimeTravelControls/TimeTravelControls.d.ts.map +1 -1
  39. package/dist/components/TimeTravelControls/TimeTravelControls.js +19 -3
  40. package/dist/components/TimeTravelControls/TimeTravelControls.js.map +1 -1
  41. package/dist/components/TimeTravelDebugger/TimeTravelDebugger.d.ts +19 -8
  42. package/dist/components/TimeTravelDebugger/TimeTravelDebugger.d.ts.map +1 -1
  43. package/dist/components/TimeTravelDebugger/TimeTravelDebugger.js +23 -8
  44. package/dist/components/TimeTravelDebugger/TimeTravelDebugger.js.map +1 -1
  45. package/dist/flowchart.cjs +3485 -1340
  46. package/dist/flowchart.cjs.map +1 -1
  47. package/dist/flowchart.d.cts +1616 -177
  48. package/dist/flowchart.d.ts +1616 -177
  49. package/dist/flowchart.d.ts.map +1 -1
  50. package/dist/flowchart.js +3507 -1384
  51. package/dist/flowchart.js.map +1 -1
  52. package/dist/index.cjs +749 -557
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.d.cts +276 -29
  55. package/dist/index.d.ts +276 -29
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +742 -547
  58. package/dist/index.js.map +1 -1
  59. package/dist/theme/ThemeProvider.d.ts +14 -0
  60. package/dist/theme/ThemeProvider.d.ts.map +1 -1
  61. package/dist/theme/ThemeProvider.js +15 -1
  62. package/dist/theme/ThemeProvider.js.map +1 -1
  63. package/dist/theme/index.d.ts +4 -2
  64. package/dist/theme/index.d.ts.map +1 -1
  65. package/dist/theme/index.js +3 -2
  66. package/dist/theme/index.js.map +1 -1
  67. package/dist/theme/presets.d.ts +3 -0
  68. package/dist/theme/presets.d.ts.map +1 -1
  69. package/dist/theme/presets.js +22 -0
  70. package/dist/theme/presets.js.map +1 -1
  71. package/dist/theme/tokens.d.ts +22 -1
  72. package/dist/theme/tokens.d.ts.map +1 -1
  73. package/dist/theme/tokens.js +23 -2
  74. package/dist/theme/tokens.js.map +1 -1
  75. package/dist/tsconfig.tsbuildinfo +1 -1
  76. package/dist/types.d.ts +25 -0
  77. package/dist/types.d.ts.map +1 -1
  78. package/package.json +4 -4
  79. package/dist/components/FlowchartView/FlowchartView.d.ts +0 -20
  80. package/dist/components/FlowchartView/FlowchartView.d.ts.map +0 -1
  81. package/dist/components/FlowchartView/FlowchartView.js +0 -80
  82. package/dist/components/FlowchartView/FlowchartView.js.map +0 -1
  83. package/dist/components/FlowchartView/TracedFlowchartView.d.ts +0 -20
  84. package/dist/components/FlowchartView/TracedFlowchartView.d.ts.map +0 -1
  85. package/dist/components/FlowchartView/TracedFlowchartView.js +0 -101
  86. package/dist/components/FlowchartView/TracedFlowchartView.js.map +0 -1
  87. package/dist/components/FlowchartView/specToReactFlow.d.ts +0 -56
  88. package/dist/components/FlowchartView/specToReactFlow.d.ts.map +0 -1
  89. package/dist/components/FlowchartView/specToReactFlow.js +0 -202
  90. package/dist/components/FlowchartView/specToReactFlow.js.map +0 -1
@@ -1,56 +0,0 @@
1
- /**
2
- * Converts a SerializedPipelineStructure (from builder.toSpec()) into
3
- * ReactFlow nodes and edges with auto-layout.
4
- *
5
- * Supports two modes:
6
- * 1. Build-time only (no executionState) — all nodes gray
7
- * 2. With execution overlay — executed nodes colored, active node highlighted,
8
- * unvisited nodes stay gray
9
- */
10
- import type { Node, Edge } from "@xyflow/react";
11
- export interface SpecNode {
12
- name: string;
13
- id?: string;
14
- type?: "stage" | "decider" | "fork" | "streaming";
15
- description?: string;
16
- children?: SpecNode[];
17
- next?: SpecNode;
18
- branchIds?: string[];
19
- hasDecider?: boolean;
20
- hasSelector?: boolean;
21
- loopTarget?: string;
22
- isSubflowRoot?: boolean;
23
- subflowId?: string;
24
- subflowName?: string;
25
- subflowStructure?: SpecNode;
26
- }
27
- export interface ExecutionOverlay {
28
- /** Names of stages that have completed (before the active one) */
29
- doneStages: Set<string>;
30
- /** Name of the currently active stage */
31
- activeStage: string | null;
32
- /** Names of all stages that were executed (done + active) */
33
- executedStages: Set<string>;
34
- /** Ordered list of executed stage names (for step numbering) */
35
- executionOrder?: string[];
36
- }
37
- /** Colors for the flowchart — consumer provides these to match their theme */
38
- export interface FlowchartColors {
39
- edgeDefault: string;
40
- edgeExecuted: string;
41
- edgeActive: string;
42
- edgeLoop: string;
43
- labelDefault: string;
44
- labelExecuted: string;
45
- labelLoop: string;
46
- pathGlow: string;
47
- }
48
- /**
49
- * Convert a pipeline spec to ReactFlow graph.
50
- * Pass `overlay` to color nodes/edges by execution state.
51
- */
52
- export declare function specToReactFlow(spec: SpecNode, overlay?: ExecutionOverlay, colors?: Partial<FlowchartColors>): {
53
- nodes: Node[];
54
- edges: Edge[];
55
- };
56
- //# sourceMappingURL=specToReactFlow.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specToReactFlow.d.ts","sourceRoot":"","sources":["../../../src/components/FlowchartView/specToReactFlow.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,CAAC;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,QAAQ,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACxB,yCAAyC;IACzC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,6DAA6D;IAC7D,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,8EAA8E;AAC9E,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAgOD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,gBAAgB,EAC1B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC;IACD,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE,IAAI,EAAE,CAAC;CACf,CAaA"}
@@ -1,202 +0,0 @@
1
- import { defaultTokens } from "../../theme/tokens";
2
- /** Default colors derived from theme tokens. Consumer can override per-call. */
3
- const DEFAULT_COLORS = {
4
- edgeDefault: defaultTokens.colors.textMuted,
5
- edgeExecuted: defaultTokens.colors.success,
6
- edgeActive: defaultTokens.colors.primary,
7
- edgeLoop: defaultTokens.colors.warning,
8
- labelDefault: defaultTokens.colors.textSecondary,
9
- labelExecuted: defaultTokens.colors.success,
10
- labelLoop: defaultTokens.colors.warning,
11
- pathGlow: `${defaultTokens.colors.success}4D`, // ~30% opacity hex
12
- };
13
- const Y_STEP = 100;
14
- const X_SPREAD = 200;
15
- function nid(n) {
16
- return n.name || n.id || `spec-${Math.random()}`;
17
- }
18
- function addEdge(state, source, target, label, isLoop) {
19
- state.edgeCounter++;
20
- const o = state.overlay;
21
- const c = state.colors;
22
- const executed = o && o.executedStages.has(source) && o.executedStages.has(target);
23
- const isLeadingEdge = o && source === o.activeStage && !o.doneStages.has(target);
24
- // Loop edges — route via right-side handles so they don't overlap center edges
25
- // Only mark as executed when the loop has actually fired:
26
- // the target must appear AFTER the source in executionOrder
27
- if (isLoop) {
28
- let loopExecuted = false;
29
- if (o?.executionOrder) {
30
- const lastSourceIdx = o.executionOrder.lastIndexOf(source);
31
- if (lastSourceIdx >= 0) {
32
- loopExecuted = o.executionOrder.slice(lastSourceIdx + 1).includes(target);
33
- }
34
- }
35
- state.edges.push({
36
- id: `se${state.edgeCounter}`,
37
- source,
38
- target,
39
- sourceHandle: "loop-source",
40
- targetHandle: "loop-target",
41
- label: label ?? "loop",
42
- type: "smoothstep",
43
- pathOptions: { offset: 40, borderRadius: 16 },
44
- style: {
45
- stroke: c.edgeLoop,
46
- strokeWidth: loopExecuted ? 3 : 2,
47
- strokeDasharray: "6 3",
48
- opacity: o && !loopExecuted ? 0.35 : 1,
49
- },
50
- labelStyle: { fontSize: 10, fontWeight: 700, fill: c.labelLoop },
51
- animated: loopExecuted,
52
- zIndex: 2,
53
- });
54
- return;
55
- }
56
- if (executed) {
57
- // "Google Maps route" — thick glowing path for executed edges
58
- // Background glow layer (subtle, behind the route line)
59
- state.edges.push({
60
- id: `se${state.edgeCounter}-glow`,
61
- source,
62
- target,
63
- style: {
64
- stroke: c.pathGlow,
65
- strokeWidth: 8,
66
- opacity: 0.4,
67
- },
68
- zIndex: 0,
69
- selectable: false,
70
- focusable: false,
71
- });
72
- // Foreground path (solid route line)
73
- state.edges.push({
74
- id: `se${state.edgeCounter}`,
75
- source,
76
- target,
77
- label,
78
- style: {
79
- stroke: isLeadingEdge ? c.edgeActive : c.edgeExecuted,
80
- strokeWidth: 3.5,
81
- },
82
- labelStyle: { fontSize: 10, fontWeight: 600, fill: c.labelExecuted },
83
- animated: !!isLeadingEdge,
84
- zIndex: 1,
85
- });
86
- }
87
- else {
88
- // Non-executed — thin, faded base map edge
89
- state.edges.push({
90
- id: `se${state.edgeCounter}`,
91
- source,
92
- target,
93
- label,
94
- style: {
95
- stroke: c.edgeDefault,
96
- strokeWidth: 1.5,
97
- opacity: o ? 0.3 : 1,
98
- },
99
- labelStyle: { fontSize: 10, fill: c.labelDefault },
100
- });
101
- }
102
- }
103
- function walk(node, state, x, y) {
104
- const id = nid(node);
105
- if (state.seen.has(id)) {
106
- return { lastIds: [id], bottomY: y };
107
- }
108
- state.seen.add(id);
109
- const isDecider = node.type === "decider" || node.hasDecider;
110
- const isFork = node.type === "fork";
111
- const o = state.overlay;
112
- const isDone = o ? o.doneStages.has(id) : false;
113
- const isActive = o ? o.activeStage === id : false;
114
- const wasExecuted = o ? o.executedStages.has(id) : false;
115
- // When overlay is present, dim unvisited nodes
116
- const dimmed = o && !wasExecuted;
117
- // Step numbers for executed nodes (1-based) — multiple when revisited via loops
118
- let stepNumbers;
119
- if (o?.executionOrder) {
120
- const nums = [];
121
- for (let i = 0; i < o.executionOrder.length; i++) {
122
- if (o.executionOrder[i] === id)
123
- nums.push(i + 1);
124
- }
125
- if (nums.length > 0)
126
- stepNumbers = nums;
127
- }
128
- state.nodes.push({
129
- id,
130
- position: { x, y },
131
- data: {
132
- label: node.name,
133
- active: isActive,
134
- done: isDone,
135
- error: false,
136
- isDecider,
137
- isFork,
138
- description: node.description,
139
- subflowId: node.subflowId,
140
- dimmed,
141
- stepNumbers,
142
- isSubflow: !!node.isSubflowRoot,
143
- },
144
- type: "stage",
145
- style: dimmed ? { opacity: 0.35 } : undefined,
146
- });
147
- let lastIds = [id];
148
- let bottomY = y;
149
- // Handle children (fork/decider branches)
150
- if (node.children && node.children.length > 0) {
151
- const totalWidth = (node.children.length - 1) * X_SPREAD;
152
- const startX = x - totalWidth / 2;
153
- const childY = y + Y_STEP;
154
- const childResults = [];
155
- for (let i = 0; i < node.children.length; i++) {
156
- const child = node.children[i];
157
- const childX = startX + i * X_SPREAD;
158
- const edgeLabel = node.branchIds?.[i];
159
- addEdge(state, id, nid(child), edgeLabel);
160
- const result = walk(child, state, childX, childY);
161
- childResults.push(result);
162
- }
163
- lastIds = childResults.flatMap((r) => r.lastIds);
164
- bottomY = Math.max(...childResults.map((r) => r.bottomY));
165
- }
166
- // Handle loop-back edge — visually distinct dashed orange arrow
167
- // Must be added before processing `next`, since `next` returns early
168
- if (node.loopTarget) {
169
- addEdge(state, id, node.loopTarget, "loop", true);
170
- }
171
- // Handle linear continuation
172
- if (node.next) {
173
- const nextY = bottomY + Y_STEP;
174
- const nextId = nid(node.next);
175
- for (const lid of lastIds) {
176
- // Skip forward edge when a loop edge already connects to the same target
177
- if (node.loopTarget && lid === id && node.loopTarget === nextId)
178
- continue;
179
- addEdge(state, lid, nextId);
180
- }
181
- const result = walk(node.next, state, x, nextY);
182
- return result;
183
- }
184
- return { lastIds, bottomY };
185
- }
186
- /**
187
- * Convert a pipeline spec to ReactFlow graph.
188
- * Pass `overlay` to color nodes/edges by execution state.
189
- */
190
- export function specToReactFlow(spec, overlay, colors) {
191
- const state = {
192
- nodes: [],
193
- edges: [],
194
- edgeCounter: 0,
195
- seen: new Set(),
196
- overlay: overlay ?? null,
197
- colors: { ...DEFAULT_COLORS, ...colors },
198
- };
199
- walk(spec, state, 300, 0);
200
- return { nodes: state.nodes, edges: state.edges };
201
- }
202
- //# sourceMappingURL=specToReactFlow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"specToReactFlow.js","sourceRoot":"","sources":["../../../src/components/FlowchartView/specToReactFlow.ts"],"names":[],"mappings":"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"}