footprint-explainable-ui 0.6.0 → 0.7.2
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/README.md +158 -401
- package/dist/flowchart.cjs +721 -485
- package/dist/flowchart.cjs.map +1 -1
- package/dist/flowchart.d.cts +68 -15
- package/dist/flowchart.d.ts +68 -15
- package/dist/flowchart.js +723 -488
- package/dist/flowchart.js.map +1 -1
- package/dist/index.cjs +1158 -436
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +115 -31
- package/dist/index.d.ts +115 -31
- package/dist/index.js +1159 -442
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -24,6 +24,14 @@ interface StageSnapshot {
|
|
|
24
24
|
/** Subflow execution result — present on stages that ran a subflow. */
|
|
25
25
|
subflowResult?: unknown;
|
|
26
26
|
}
|
|
27
|
+
/** Structured narrative entry — preserves type info for semantic rendering. */
|
|
28
|
+
interface NarrativeEntry$1 {
|
|
29
|
+
type: 'stage' | 'step' | 'condition' | 'fork' | 'subflow' | 'loop' | 'break' | 'error';
|
|
30
|
+
text: string;
|
|
31
|
+
depth: number;
|
|
32
|
+
stageName?: string;
|
|
33
|
+
stepNumber?: number;
|
|
34
|
+
}
|
|
27
35
|
/** Component size variants */
|
|
28
36
|
type Size = "compact" | "default" | "detailed";
|
|
29
37
|
/** Common props shared by all visualization components */
|
|
@@ -61,7 +69,28 @@ interface ThemeTokens {
|
|
|
61
69
|
}
|
|
62
70
|
/** Maps ThemeTokens to CSS custom property assignments. */
|
|
63
71
|
declare function tokensToCSSVars(tokens: ThemeTokens): Record<string, string>;
|
|
64
|
-
/**
|
|
72
|
+
/** Raw fallback values — used by tokensToCSSVars() and anywhere a real color is needed. */
|
|
73
|
+
declare const rawDefaults: {
|
|
74
|
+
readonly colors: {
|
|
75
|
+
readonly primary: "#6366f1";
|
|
76
|
+
readonly success: "#22c55e";
|
|
77
|
+
readonly error: "#ef4444";
|
|
78
|
+
readonly warning: "#f59e0b";
|
|
79
|
+
readonly bgPrimary: "#0f172a";
|
|
80
|
+
readonly bgSecondary: "#1e293b";
|
|
81
|
+
readonly bgTertiary: "#334155";
|
|
82
|
+
readonly textPrimary: "#f8fafc";
|
|
83
|
+
readonly textSecondary: "#94a3b8";
|
|
84
|
+
readonly textMuted: "#64748b";
|
|
85
|
+
readonly border: "#334155";
|
|
86
|
+
};
|
|
87
|
+
readonly radius: "8px";
|
|
88
|
+
readonly fontFamily: {
|
|
89
|
+
readonly sans: "Inter, system-ui, -apple-system, sans-serif";
|
|
90
|
+
readonly mono: "'JetBrains Mono', 'Fira Code', monospace";
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/** Default dark theme values with CSS variable references (consumers can override via CSS). */
|
|
65
94
|
declare const defaultTokens: Required<{
|
|
66
95
|
[K in keyof ThemeTokens]-?: Required<ThemeTokens[K]>;
|
|
67
96
|
}>;
|
|
@@ -264,45 +293,25 @@ interface TimeTravelControlsProps extends BaseComponentProps {
|
|
|
264
293
|
}
|
|
265
294
|
declare function TimeTravelControls({ snapshots, selectedIndex, onIndexChange, autoPlayable, size, unstyled, className, style, }: TimeTravelControlsProps): react_jsx_runtime.JSX.Element;
|
|
266
295
|
|
|
267
|
-
type ShellTab = "result" | "explainable" | "ai-compatible";
|
|
268
|
-
interface ExplainableShellProps extends BaseComponentProps {
|
|
269
|
-
/** Stage snapshots for time-travel visualization */
|
|
270
|
-
snapshots: StageSnapshot[];
|
|
271
|
-
/** Final pipeline result data */
|
|
272
|
-
resultData?: Record<string, unknown> | null;
|
|
273
|
-
/** Console log lines */
|
|
274
|
-
logs?: string[];
|
|
275
|
-
/** Combined narrative lines */
|
|
276
|
-
narrative?: string[];
|
|
277
|
-
/** Which tabs to show (default: all three) */
|
|
278
|
-
tabs?: ShellTab[];
|
|
279
|
-
/** Initially active tab */
|
|
280
|
-
defaultTab?: ShellTab;
|
|
281
|
-
/** Hide console in result tab */
|
|
282
|
-
hideConsole?: boolean;
|
|
283
|
-
/** Custom content to render in each tab slot */
|
|
284
|
-
renderFlowchart?: (props: {
|
|
285
|
-
snapshots: StageSnapshot[];
|
|
286
|
-
selectedIndex: number;
|
|
287
|
-
onNodeClick?: (index: number) => void;
|
|
288
|
-
}) => React.ReactNode;
|
|
289
|
-
}
|
|
290
|
-
declare function ExplainableShell({ snapshots, resultData, logs, narrative, tabs, defaultTab, hideConsole, renderFlowchart, size, unstyled, className, style, }: ExplainableShellProps): react_jsx_runtime.JSX.Element;
|
|
291
|
-
|
|
292
296
|
/**
|
|
293
297
|
* Converts a SerializedPipelineStructure (from builder.toSpec()) into
|
|
294
298
|
* ReactFlow nodes and edges with auto-layout.
|
|
295
299
|
*
|
|
296
|
-
*
|
|
297
|
-
* 1.
|
|
298
|
-
* 2.
|
|
299
|
-
*
|
|
300
|
+
* Two-phase approach for performance:
|
|
301
|
+
* 1. `specToLayout(spec)` — tree walk + positioning (expensive, cached on spec)
|
|
302
|
+
* 2. `applyOverlay(layout, overlay)` — color nodes/edges (cheap, runs per slider tick)
|
|
303
|
+
*
|
|
304
|
+
* `specToReactFlow(spec, overlay)` combines both for convenience.
|
|
300
305
|
*/
|
|
301
306
|
|
|
302
307
|
interface SpecNode {
|
|
303
308
|
name: string;
|
|
304
309
|
id?: string;
|
|
305
310
|
type?: "stage" | "decider" | "fork" | "streaming";
|
|
311
|
+
/** Semantic icon hint — rendered by StageNode. Common values:
|
|
312
|
+
* "llm", "tool", "rag", "search", "parse", "start", "end", "loop",
|
|
313
|
+
* "agent", "swarm", "guard", "stream", "memory" */
|
|
314
|
+
icon?: string;
|
|
306
315
|
description?: string;
|
|
307
316
|
children?: SpecNode[];
|
|
308
317
|
next?: SpecNode;
|
|
@@ -314,7 +323,72 @@ interface SpecNode {
|
|
|
314
323
|
subflowId?: string;
|
|
315
324
|
subflowName?: string;
|
|
316
325
|
subflowStructure?: SpecNode;
|
|
326
|
+
/** True when this subflow uses lazy resolution (deferred until execution). */
|
|
327
|
+
isLazy?: boolean;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
type ShellTab = "result" | "explainable" | "ai-compatible";
|
|
331
|
+
interface PanelLabels {
|
|
332
|
+
/** Left panel pill label (subflow tree). Default: "Topology" */
|
|
333
|
+
topology?: string;
|
|
334
|
+
/** Right panel pill label (memory/narrative). Default: "Details" */
|
|
335
|
+
details?: string;
|
|
336
|
+
/** Bottom panel pill label (timeline). Default: "Timeline" */
|
|
337
|
+
timeline?: string;
|
|
338
|
+
}
|
|
339
|
+
/** Which panels start expanded. Default: `{ details: true }` (flowchart + memory). */
|
|
340
|
+
interface DefaultExpanded {
|
|
341
|
+
topology?: boolean;
|
|
342
|
+
details?: boolean;
|
|
343
|
+
timeline?: boolean;
|
|
317
344
|
}
|
|
345
|
+
interface ExplainableShellProps extends BaseComponentProps {
|
|
346
|
+
snapshots: StageSnapshot[];
|
|
347
|
+
spec?: SpecNode | null;
|
|
348
|
+
title?: string;
|
|
349
|
+
resultData?: Record<string, unknown> | null;
|
|
350
|
+
logs?: string[];
|
|
351
|
+
narrative?: string[];
|
|
352
|
+
narrativeEntries?: NarrativeEntry$1[];
|
|
353
|
+
tabs?: ShellTab[];
|
|
354
|
+
defaultTab?: ShellTab;
|
|
355
|
+
hideConsole?: boolean;
|
|
356
|
+
/** Customize the labels on collapsible panel pills */
|
|
357
|
+
panelLabels?: PanelLabels;
|
|
358
|
+
/** Which panels start expanded. Default: `{ details: true }` */
|
|
359
|
+
defaultExpanded?: DefaultExpanded;
|
|
360
|
+
renderFlowchart?: (props: {
|
|
361
|
+
spec: SpecNode;
|
|
362
|
+
snapshots: StageSnapshot[];
|
|
363
|
+
selectedIndex: number;
|
|
364
|
+
onNodeClick?: (indexOrId: number | string) => void;
|
|
365
|
+
}) => React.ReactNode;
|
|
366
|
+
}
|
|
367
|
+
declare function ExplainableShell({ snapshots, spec, title, resultData, logs, narrative, narrativeEntries, tabs, defaultTab, hideConsole, panelLabels, defaultExpanded, renderFlowchart, size, unstyled, className, style, }: ExplainableShellProps): react_jsx_runtime.JSX.Element;
|
|
368
|
+
|
|
369
|
+
interface MemoryPanelProps extends BaseComponentProps {
|
|
370
|
+
snapshots: StageSnapshot[];
|
|
371
|
+
selectedIndex: number;
|
|
372
|
+
}
|
|
373
|
+
declare function MemoryPanel({ snapshots, selectedIndex, size, unstyled, className, style, }: MemoryPanelProps): react_jsx_runtime.JSX.Element;
|
|
374
|
+
|
|
375
|
+
interface NarrativePanelProps extends BaseComponentProps {
|
|
376
|
+
snapshots: StageSnapshot[];
|
|
377
|
+
selectedIndex: number;
|
|
378
|
+
/** Structured narrative entries (preferred — richer rendering) */
|
|
379
|
+
narrativeEntries?: NarrativeEntry$1[];
|
|
380
|
+
/** Plain narrative lines (fallback) */
|
|
381
|
+
narrative?: string[];
|
|
382
|
+
}
|
|
383
|
+
declare function NarrativePanel({ snapshots, selectedIndex, narrativeEntries, narrative: narrativeProp, size, unstyled, className, style, }: NarrativePanelProps): react_jsx_runtime.JSX.Element;
|
|
384
|
+
|
|
385
|
+
interface StoryNarrativeProps extends BaseComponentProps {
|
|
386
|
+
/** Structured narrative entries from CombinedNarrativeRecorder */
|
|
387
|
+
entries: NarrativeEntry$1[];
|
|
388
|
+
/** Number of stages to reveal (maps to snapshotIdx + 1) */
|
|
389
|
+
stageCount: number;
|
|
390
|
+
}
|
|
391
|
+
declare function StoryNarrative({ entries, stageCount, size, unstyled, className, style: outerStyle, }: StoryNarrativeProps): react_jsx_runtime.JSX.Element;
|
|
318
392
|
|
|
319
393
|
interface SubflowTreeEntry {
|
|
320
394
|
/** Node name / identifier */
|
|
@@ -399,6 +473,16 @@ interface NarrativeEntry {
|
|
|
399
473
|
* ```
|
|
400
474
|
*/
|
|
401
475
|
declare function toVisualizationSnapshots(runtime: RuntimeSnapshot, narrativeEntries?: NarrativeEntry[]): StageSnapshot[];
|
|
476
|
+
/**
|
|
477
|
+
* Converts a footprintjs SubflowResult (stored on StageSnapshot.subflowResult)
|
|
478
|
+
* into visualization snapshots for drill-down views.
|
|
479
|
+
*
|
|
480
|
+
* SubflowResult shape (from footprintjs):
|
|
481
|
+
* { subflowId, subflowName, treeContext: { globalContext, stageContexts, history }, parentStageId }
|
|
482
|
+
*
|
|
483
|
+
* Returns empty array if the input is not a valid SubflowResult.
|
|
484
|
+
*/
|
|
485
|
+
declare function subflowResultToSnapshots(subflowResult: unknown, narrativeEntries?: NarrativeEntry[]): StageSnapshot[];
|
|
402
486
|
/**
|
|
403
487
|
* Creates StageSnapshots from simple arrays (when you don't have a RuntimeSnapshot).
|
|
404
488
|
* Useful for testing or custom data sources.
|
|
@@ -413,4 +497,4 @@ declare function createSnapshots(stages: Array<{
|
|
|
413
497
|
subflowId?: string;
|
|
414
498
|
}>): StageSnapshot[];
|
|
415
499
|
|
|
416
|
-
export { type BaseComponentProps, type DarkModeTokensOptions, type DiffEntry, ExplainableShell, type ExplainableShellProps, FootprintTheme, GanttTimeline, type GanttTimelineProps, type MemoryChange, MemoryInspector, type MemoryInspectorProps, type NarrativeEntry, NarrativeLog, type NarrativeLogProps, NarrativeTrace, type NarrativeTraceProps, ResultPanel, type ResultPanelProps, ScopeDiff, type ScopeDiffProps, type ShellTab, type Size, SnapshotPanel, type SnapshotPanelProps, type StageDetailMode, StageDetailPanel, type StageDetailPanelProps, type StageSnapshot, SubflowTree, type SubflowTreeEntry, type SubflowTreeProps, type ThemePresetName, type ThemeTokens, TimeTravelControls, type TimeTravelControlsProps, coolDark, coolLight, createSnapshots, defaultTokens, themePresets, toVisualizationSnapshots, tokensToCSSVars, useDarkModeTokens, useFootprintTheme, warmDark, warmLight };
|
|
500
|
+
export { type NarrativeEntry as AdapterNarrativeEntry, type BaseComponentProps, type DarkModeTokensOptions, type DefaultExpanded, type DiffEntry, ExplainableShell, type ExplainableShellProps, FootprintTheme, GanttTimeline, type GanttTimelineProps, type MemoryChange, MemoryInspector, type MemoryInspectorProps, MemoryPanel, type MemoryPanelProps, type NarrativeEntry$1 as NarrativeEntry, NarrativeLog, type NarrativeLogProps, NarrativePanel, type NarrativePanelProps, NarrativeTrace, type NarrativeTraceProps, type PanelLabels, ResultPanel, type ResultPanelProps, ScopeDiff, type ScopeDiffProps, type ShellTab, type Size, SnapshotPanel, type SnapshotPanelProps, type StageDetailMode, StageDetailPanel, type StageDetailPanelProps, type StageSnapshot, StoryNarrative, type StoryNarrativeProps, SubflowTree, type SubflowTreeEntry, type SubflowTreeProps, type ThemePresetName, type ThemeTokens, TimeTravelControls, type TimeTravelControlsProps, coolDark, coolLight, createSnapshots, defaultTokens, rawDefaults, subflowResultToSnapshots, themePresets, toVisualizationSnapshots, tokensToCSSVars, useDarkModeTokens, useFootprintTheme, warmDark, warmLight };
|
package/dist/index.d.ts
CHANGED
|
@@ -24,6 +24,14 @@ interface StageSnapshot {
|
|
|
24
24
|
/** Subflow execution result — present on stages that ran a subflow. */
|
|
25
25
|
subflowResult?: unknown;
|
|
26
26
|
}
|
|
27
|
+
/** Structured narrative entry — preserves type info for semantic rendering. */
|
|
28
|
+
interface NarrativeEntry$1 {
|
|
29
|
+
type: 'stage' | 'step' | 'condition' | 'fork' | 'subflow' | 'loop' | 'break' | 'error';
|
|
30
|
+
text: string;
|
|
31
|
+
depth: number;
|
|
32
|
+
stageName?: string;
|
|
33
|
+
stepNumber?: number;
|
|
34
|
+
}
|
|
27
35
|
/** Component size variants */
|
|
28
36
|
type Size = "compact" | "default" | "detailed";
|
|
29
37
|
/** Common props shared by all visualization components */
|
|
@@ -61,7 +69,28 @@ interface ThemeTokens {
|
|
|
61
69
|
}
|
|
62
70
|
/** Maps ThemeTokens to CSS custom property assignments. */
|
|
63
71
|
declare function tokensToCSSVars(tokens: ThemeTokens): Record<string, string>;
|
|
64
|
-
/**
|
|
72
|
+
/** Raw fallback values — used by tokensToCSSVars() and anywhere a real color is needed. */
|
|
73
|
+
declare const rawDefaults: {
|
|
74
|
+
readonly colors: {
|
|
75
|
+
readonly primary: "#6366f1";
|
|
76
|
+
readonly success: "#22c55e";
|
|
77
|
+
readonly error: "#ef4444";
|
|
78
|
+
readonly warning: "#f59e0b";
|
|
79
|
+
readonly bgPrimary: "#0f172a";
|
|
80
|
+
readonly bgSecondary: "#1e293b";
|
|
81
|
+
readonly bgTertiary: "#334155";
|
|
82
|
+
readonly textPrimary: "#f8fafc";
|
|
83
|
+
readonly textSecondary: "#94a3b8";
|
|
84
|
+
readonly textMuted: "#64748b";
|
|
85
|
+
readonly border: "#334155";
|
|
86
|
+
};
|
|
87
|
+
readonly radius: "8px";
|
|
88
|
+
readonly fontFamily: {
|
|
89
|
+
readonly sans: "Inter, system-ui, -apple-system, sans-serif";
|
|
90
|
+
readonly mono: "'JetBrains Mono', 'Fira Code', monospace";
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
/** Default dark theme values with CSS variable references (consumers can override via CSS). */
|
|
65
94
|
declare const defaultTokens: Required<{
|
|
66
95
|
[K in keyof ThemeTokens]-?: Required<ThemeTokens[K]>;
|
|
67
96
|
}>;
|
|
@@ -264,45 +293,25 @@ interface TimeTravelControlsProps extends BaseComponentProps {
|
|
|
264
293
|
}
|
|
265
294
|
declare function TimeTravelControls({ snapshots, selectedIndex, onIndexChange, autoPlayable, size, unstyled, className, style, }: TimeTravelControlsProps): react_jsx_runtime.JSX.Element;
|
|
266
295
|
|
|
267
|
-
type ShellTab = "result" | "explainable" | "ai-compatible";
|
|
268
|
-
interface ExplainableShellProps extends BaseComponentProps {
|
|
269
|
-
/** Stage snapshots for time-travel visualization */
|
|
270
|
-
snapshots: StageSnapshot[];
|
|
271
|
-
/** Final pipeline result data */
|
|
272
|
-
resultData?: Record<string, unknown> | null;
|
|
273
|
-
/** Console log lines */
|
|
274
|
-
logs?: string[];
|
|
275
|
-
/** Combined narrative lines */
|
|
276
|
-
narrative?: string[];
|
|
277
|
-
/** Which tabs to show (default: all three) */
|
|
278
|
-
tabs?: ShellTab[];
|
|
279
|
-
/** Initially active tab */
|
|
280
|
-
defaultTab?: ShellTab;
|
|
281
|
-
/** Hide console in result tab */
|
|
282
|
-
hideConsole?: boolean;
|
|
283
|
-
/** Custom content to render in each tab slot */
|
|
284
|
-
renderFlowchart?: (props: {
|
|
285
|
-
snapshots: StageSnapshot[];
|
|
286
|
-
selectedIndex: number;
|
|
287
|
-
onNodeClick?: (index: number) => void;
|
|
288
|
-
}) => React.ReactNode;
|
|
289
|
-
}
|
|
290
|
-
declare function ExplainableShell({ snapshots, resultData, logs, narrative, tabs, defaultTab, hideConsole, renderFlowchart, size, unstyled, className, style, }: ExplainableShellProps): react_jsx_runtime.JSX.Element;
|
|
291
|
-
|
|
292
296
|
/**
|
|
293
297
|
* Converts a SerializedPipelineStructure (from builder.toSpec()) into
|
|
294
298
|
* ReactFlow nodes and edges with auto-layout.
|
|
295
299
|
*
|
|
296
|
-
*
|
|
297
|
-
* 1.
|
|
298
|
-
* 2.
|
|
299
|
-
*
|
|
300
|
+
* Two-phase approach for performance:
|
|
301
|
+
* 1. `specToLayout(spec)` — tree walk + positioning (expensive, cached on spec)
|
|
302
|
+
* 2. `applyOverlay(layout, overlay)` — color nodes/edges (cheap, runs per slider tick)
|
|
303
|
+
*
|
|
304
|
+
* `specToReactFlow(spec, overlay)` combines both for convenience.
|
|
300
305
|
*/
|
|
301
306
|
|
|
302
307
|
interface SpecNode {
|
|
303
308
|
name: string;
|
|
304
309
|
id?: string;
|
|
305
310
|
type?: "stage" | "decider" | "fork" | "streaming";
|
|
311
|
+
/** Semantic icon hint — rendered by StageNode. Common values:
|
|
312
|
+
* "llm", "tool", "rag", "search", "parse", "start", "end", "loop",
|
|
313
|
+
* "agent", "swarm", "guard", "stream", "memory" */
|
|
314
|
+
icon?: string;
|
|
306
315
|
description?: string;
|
|
307
316
|
children?: SpecNode[];
|
|
308
317
|
next?: SpecNode;
|
|
@@ -314,7 +323,72 @@ interface SpecNode {
|
|
|
314
323
|
subflowId?: string;
|
|
315
324
|
subflowName?: string;
|
|
316
325
|
subflowStructure?: SpecNode;
|
|
326
|
+
/** True when this subflow uses lazy resolution (deferred until execution). */
|
|
327
|
+
isLazy?: boolean;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
type ShellTab = "result" | "explainable" | "ai-compatible";
|
|
331
|
+
interface PanelLabels {
|
|
332
|
+
/** Left panel pill label (subflow tree). Default: "Topology" */
|
|
333
|
+
topology?: string;
|
|
334
|
+
/** Right panel pill label (memory/narrative). Default: "Details" */
|
|
335
|
+
details?: string;
|
|
336
|
+
/** Bottom panel pill label (timeline). Default: "Timeline" */
|
|
337
|
+
timeline?: string;
|
|
338
|
+
}
|
|
339
|
+
/** Which panels start expanded. Default: `{ details: true }` (flowchart + memory). */
|
|
340
|
+
interface DefaultExpanded {
|
|
341
|
+
topology?: boolean;
|
|
342
|
+
details?: boolean;
|
|
343
|
+
timeline?: boolean;
|
|
317
344
|
}
|
|
345
|
+
interface ExplainableShellProps extends BaseComponentProps {
|
|
346
|
+
snapshots: StageSnapshot[];
|
|
347
|
+
spec?: SpecNode | null;
|
|
348
|
+
title?: string;
|
|
349
|
+
resultData?: Record<string, unknown> | null;
|
|
350
|
+
logs?: string[];
|
|
351
|
+
narrative?: string[];
|
|
352
|
+
narrativeEntries?: NarrativeEntry$1[];
|
|
353
|
+
tabs?: ShellTab[];
|
|
354
|
+
defaultTab?: ShellTab;
|
|
355
|
+
hideConsole?: boolean;
|
|
356
|
+
/** Customize the labels on collapsible panel pills */
|
|
357
|
+
panelLabels?: PanelLabels;
|
|
358
|
+
/** Which panels start expanded. Default: `{ details: true }` */
|
|
359
|
+
defaultExpanded?: DefaultExpanded;
|
|
360
|
+
renderFlowchart?: (props: {
|
|
361
|
+
spec: SpecNode;
|
|
362
|
+
snapshots: StageSnapshot[];
|
|
363
|
+
selectedIndex: number;
|
|
364
|
+
onNodeClick?: (indexOrId: number | string) => void;
|
|
365
|
+
}) => React.ReactNode;
|
|
366
|
+
}
|
|
367
|
+
declare function ExplainableShell({ snapshots, spec, title, resultData, logs, narrative, narrativeEntries, tabs, defaultTab, hideConsole, panelLabels, defaultExpanded, renderFlowchart, size, unstyled, className, style, }: ExplainableShellProps): react_jsx_runtime.JSX.Element;
|
|
368
|
+
|
|
369
|
+
interface MemoryPanelProps extends BaseComponentProps {
|
|
370
|
+
snapshots: StageSnapshot[];
|
|
371
|
+
selectedIndex: number;
|
|
372
|
+
}
|
|
373
|
+
declare function MemoryPanel({ snapshots, selectedIndex, size, unstyled, className, style, }: MemoryPanelProps): react_jsx_runtime.JSX.Element;
|
|
374
|
+
|
|
375
|
+
interface NarrativePanelProps extends BaseComponentProps {
|
|
376
|
+
snapshots: StageSnapshot[];
|
|
377
|
+
selectedIndex: number;
|
|
378
|
+
/** Structured narrative entries (preferred — richer rendering) */
|
|
379
|
+
narrativeEntries?: NarrativeEntry$1[];
|
|
380
|
+
/** Plain narrative lines (fallback) */
|
|
381
|
+
narrative?: string[];
|
|
382
|
+
}
|
|
383
|
+
declare function NarrativePanel({ snapshots, selectedIndex, narrativeEntries, narrative: narrativeProp, size, unstyled, className, style, }: NarrativePanelProps): react_jsx_runtime.JSX.Element;
|
|
384
|
+
|
|
385
|
+
interface StoryNarrativeProps extends BaseComponentProps {
|
|
386
|
+
/** Structured narrative entries from CombinedNarrativeRecorder */
|
|
387
|
+
entries: NarrativeEntry$1[];
|
|
388
|
+
/** Number of stages to reveal (maps to snapshotIdx + 1) */
|
|
389
|
+
stageCount: number;
|
|
390
|
+
}
|
|
391
|
+
declare function StoryNarrative({ entries, stageCount, size, unstyled, className, style: outerStyle, }: StoryNarrativeProps): react_jsx_runtime.JSX.Element;
|
|
318
392
|
|
|
319
393
|
interface SubflowTreeEntry {
|
|
320
394
|
/** Node name / identifier */
|
|
@@ -399,6 +473,16 @@ interface NarrativeEntry {
|
|
|
399
473
|
* ```
|
|
400
474
|
*/
|
|
401
475
|
declare function toVisualizationSnapshots(runtime: RuntimeSnapshot, narrativeEntries?: NarrativeEntry[]): StageSnapshot[];
|
|
476
|
+
/**
|
|
477
|
+
* Converts a footprintjs SubflowResult (stored on StageSnapshot.subflowResult)
|
|
478
|
+
* into visualization snapshots for drill-down views.
|
|
479
|
+
*
|
|
480
|
+
* SubflowResult shape (from footprintjs):
|
|
481
|
+
* { subflowId, subflowName, treeContext: { globalContext, stageContexts, history }, parentStageId }
|
|
482
|
+
*
|
|
483
|
+
* Returns empty array if the input is not a valid SubflowResult.
|
|
484
|
+
*/
|
|
485
|
+
declare function subflowResultToSnapshots(subflowResult: unknown, narrativeEntries?: NarrativeEntry[]): StageSnapshot[];
|
|
402
486
|
/**
|
|
403
487
|
* Creates StageSnapshots from simple arrays (when you don't have a RuntimeSnapshot).
|
|
404
488
|
* Useful for testing or custom data sources.
|
|
@@ -413,4 +497,4 @@ declare function createSnapshots(stages: Array<{
|
|
|
413
497
|
subflowId?: string;
|
|
414
498
|
}>): StageSnapshot[];
|
|
415
499
|
|
|
416
|
-
export { type BaseComponentProps, type DarkModeTokensOptions, type DiffEntry, ExplainableShell, type ExplainableShellProps, FootprintTheme, GanttTimeline, type GanttTimelineProps, type MemoryChange, MemoryInspector, type MemoryInspectorProps, type NarrativeEntry, NarrativeLog, type NarrativeLogProps, NarrativeTrace, type NarrativeTraceProps, ResultPanel, type ResultPanelProps, ScopeDiff, type ScopeDiffProps, type ShellTab, type Size, SnapshotPanel, type SnapshotPanelProps, type StageDetailMode, StageDetailPanel, type StageDetailPanelProps, type StageSnapshot, SubflowTree, type SubflowTreeEntry, type SubflowTreeProps, type ThemePresetName, type ThemeTokens, TimeTravelControls, type TimeTravelControlsProps, coolDark, coolLight, createSnapshots, defaultTokens, themePresets, toVisualizationSnapshots, tokensToCSSVars, useDarkModeTokens, useFootprintTheme, warmDark, warmLight };
|
|
500
|
+
export { type NarrativeEntry as AdapterNarrativeEntry, type BaseComponentProps, type DarkModeTokensOptions, type DefaultExpanded, type DiffEntry, ExplainableShell, type ExplainableShellProps, FootprintTheme, GanttTimeline, type GanttTimelineProps, type MemoryChange, MemoryInspector, type MemoryInspectorProps, MemoryPanel, type MemoryPanelProps, type NarrativeEntry$1 as NarrativeEntry, NarrativeLog, type NarrativeLogProps, NarrativePanel, type NarrativePanelProps, NarrativeTrace, type NarrativeTraceProps, type PanelLabels, ResultPanel, type ResultPanelProps, ScopeDiff, type ScopeDiffProps, type ShellTab, type Size, SnapshotPanel, type SnapshotPanelProps, type StageDetailMode, StageDetailPanel, type StageDetailPanelProps, type StageSnapshot, StoryNarrative, type StoryNarrativeProps, SubflowTree, type SubflowTreeEntry, type SubflowTreeProps, type ThemePresetName, type ThemeTokens, TimeTravelControls, type TimeTravelControlsProps, coolDark, coolLight, createSnapshots, defaultTokens, rawDefaults, subflowResultToSnapshots, themePresets, toVisualizationSnapshots, tokensToCSSVars, useDarkModeTokens, useFootprintTheme, warmDark, warmLight };
|