condukt 0.1.0 → 0.2.1
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 +159 -0
- package/dist/bridge/bridge.d.ts.map +1 -1
- package/dist/bridge/bridge.js +43 -12
- package/dist/bridge/bridge.js.map +1 -1
- package/dist/runtimes/copilot/copilot-backend.d.ts +3 -1
- package/dist/runtimes/copilot/copilot-backend.d.ts.map +1 -1
- package/dist/runtimes/copilot/subprocess-backend.d.ts.map +1 -1
- package/dist/runtimes/copilot/subprocess-backend.js +3 -0
- package/dist/runtimes/copilot/subprocess-backend.js.map +1 -1
- package/dist/src/agent.d.ts.map +1 -1
- package/dist/src/agent.js +1 -0
- package/dist/src/agent.js.map +1 -1
- package/dist/src/events.d.ts +10 -1
- package/dist/src/events.d.ts.map +1 -1
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/scheduler.d.ts +3 -1
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +287 -27
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/types.d.ts +17 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/dist/state/reducer.d.ts.map +1 -1
- package/dist/state/reducer.js +23 -2
- package/dist/state/reducer.js.map +1 -1
- package/dist/state/state-runtime.d.ts +1 -0
- package/dist/state/state-runtime.d.ts.map +1 -1
- package/dist/state/state-runtime.js +3 -0
- package/dist/state/state-runtime.js.map +1 -1
- package/dist/theme/index.d.ts +7 -0
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +4 -3
- package/dist/theme/index.js.map +1 -1
- package/dist/ui/components/FlowEdge.d.ts.map +1 -1
- package/dist/ui/components/FlowEdge.js +34 -12
- package/dist/ui/components/FlowEdge.js.map +1 -1
- package/dist/ui/components/FlowGraph.d.ts +5 -1
- package/dist/ui/components/FlowGraph.d.ts.map +1 -1
- package/dist/ui/components/FlowGraph.js +43 -5
- package/dist/ui/components/FlowGraph.js.map +1 -1
- package/dist/ui/components/FlowStatusBar.d.ts.map +1 -1
- package/dist/ui/components/FlowStatusBar.js +11 -1
- package/dist/ui/components/FlowStatusBar.js.map +1 -1
- package/dist/ui/components/MiniPipeline.d.ts.map +1 -1
- package/dist/ui/components/MiniPipeline.js +81 -30
- package/dist/ui/components/MiniPipeline.js.map +1 -1
- package/dist/ui/components/NodeCard.d.ts.map +1 -1
- package/dist/ui/components/NodeCard.js +1 -1
- package/dist/ui/components/NodeCard.js.map +1 -1
- package/dist/ui/components/node-panel/Output.js +1 -1
- package/dist/ui/components/node-panel/types.js +3 -3
- package/dist/ui/components/node-panel/types.js.map +1 -1
- package/dist/ui/core/components/Button.js +1 -1
- package/dist/ui/core/components/Button.js.map +1 -1
- package/dist/ui/style.css +624 -0
- package/package.json +100 -87
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../state/reducer.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAaH,sDAeC;
|
|
1
|
+
{"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../state/reducer.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ export declare class StateRuntime {
|
|
|
21
21
|
listExecutions(): ExecutionProjection[];
|
|
22
22
|
getNodeOutput(execId: string, nodeId: string, offset?: number, limit?: number): OutputPage;
|
|
23
23
|
getArtifact(execId: string, nodeId: string, name: string): string | null;
|
|
24
|
+
readEvents(execId: string): ExecutionEvent[];
|
|
24
25
|
rebuildProjection(execId: string): ExecutionProjection;
|
|
25
26
|
/** R12a: Hydrate cache from storage. R12b: Mark running executions as crashed. */
|
|
26
27
|
recoverOnStartup(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-runtime.d.ts","sourceRoot":"","sources":["../../state/state-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjE,qBAAa,YAAY;IAMrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAN3B,OAAO,CAAC,KAAK,CAA0C;IAEvD,OAAO,CAAC,KAAK,CAAoC;gBAG9B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,aAAA;IAOtD,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,OAAO,CAAC,WAAW;IAsBnB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMtC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAQlF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIrD,cAAc,IAAI,mBAAmB,EAAE;IAIvC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU;IAI1F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"state-runtime.d.ts","sourceRoot":"","sources":["../../state/state-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,UAAU,EACX,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjE,qBAAa,YAAY;IAMrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAN3B,OAAO,CAAC,KAAK,CAA0C;IAEvD,OAAO,CAAC,KAAK,CAAoC;gBAG9B,OAAO,EAAE,aAAa,EACtB,OAAO,CAAC,GAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,aAAA;IAOtD,WAAW,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvD,OAAO,CAAC,WAAW;IAsBnB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAMtC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAQlF,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAIrD,cAAc,IAAI,mBAAmB,EAAE;IAIvC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU;IAI1F,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIxE,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,EAAE;IAQ5C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAQtD,kFAAkF;IAClF,gBAAgB,IAAI,IAAI;IAmCxB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAK/B,QAAQ,IAAI,IAAI;CAUjB"}
|
|
@@ -68,6 +68,9 @@ class StateRuntime {
|
|
|
68
68
|
getArtifact(execId, nodeId, name) {
|
|
69
69
|
return this.storage.readArtifact(execId, nodeId, name);
|
|
70
70
|
}
|
|
71
|
+
readEvents(execId) {
|
|
72
|
+
return this.storage.readEvents(execId);
|
|
73
|
+
}
|
|
71
74
|
// -------------------------------------------------------------------------
|
|
72
75
|
// Recovery
|
|
73
76
|
// -------------------------------------------------------------------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-runtime.js","sourceRoot":"","sources":["../../state/state-runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"state-runtime.js","sourceRoot":"","sources":["../../state/state-runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export declare const flowFrameworkPreset: {
|
|
|
11
11
|
raised: string;
|
|
12
12
|
surface: string;
|
|
13
13
|
overlay: string;
|
|
14
|
+
deep: string;
|
|
14
15
|
};
|
|
15
16
|
border: {
|
|
16
17
|
subtle: string;
|
|
@@ -23,6 +24,12 @@ export declare const flowFrameworkPreset: {
|
|
|
23
24
|
secondary: string;
|
|
24
25
|
tertiary: string;
|
|
25
26
|
muted: string;
|
|
27
|
+
ghost: string;
|
|
28
|
+
};
|
|
29
|
+
accent: {
|
|
30
|
+
DEFAULT: string;
|
|
31
|
+
hover: string;
|
|
32
|
+
bg: string;
|
|
26
33
|
};
|
|
27
34
|
status: {
|
|
28
35
|
blue: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../theme/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../theme/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmD/B,CAAC"}
|
package/dist/theme/index.js
CHANGED
|
@@ -9,9 +9,10 @@ exports.flowFrameworkPreset = {
|
|
|
9
9
|
theme: {
|
|
10
10
|
extend: {
|
|
11
11
|
colors: {
|
|
12
|
-
bg: { base: '#1a1815', raised: '#201d18', surface: '#2b2a27', overlay: '#343230' },
|
|
12
|
+
bg: { base: '#1a1815', raised: '#201d18', surface: '#2b2a27', overlay: '#343230', deep: '#161411' },
|
|
13
13
|
border: { subtle: '#302e2b', DEFAULT: '#3d3a36', strong: '#4a4742', active: '#5a5650' },
|
|
14
|
-
text: { primary: '#e8e6e3', secondary: '#b1ada1', tertiary: '#8a8578', muted: '#
|
|
14
|
+
text: { primary: '#e8e6e3', secondary: '#b1ada1', tertiary: '#8a8578', muted: '#6b6660', ghost: '#585350' },
|
|
15
|
+
accent: { DEFAULT: '#D97757', hover: '#C15F3C', bg: '#D9775718' },
|
|
15
16
|
status: {
|
|
16
17
|
blue: '#60a5fa', 'blue-bg': '#1a2a40',
|
|
17
18
|
green: '#4ade80', 'green-bg': '#1a3528',
|
|
@@ -37,7 +38,7 @@ exports.flowFrameworkPreset = {
|
|
|
37
38
|
animation: {
|
|
38
39
|
'pulse-status': 'pulse-status 1.5s ease-in-out infinite',
|
|
39
40
|
'blink-cursor': 'blink-cursor 1s step-end infinite',
|
|
40
|
-
shimmer: 'shimmer
|
|
41
|
+
shimmer: 'shimmer 1.5s linear infinite',
|
|
41
42
|
'fade-in': 'fade-in 200ms ease',
|
|
42
43
|
'slide-up': 'slide-up 200ms ease',
|
|
43
44
|
'card-enter': 'cardEnter 300ms cubic-bezier(0.16,1,0.3,1) both',
|
package/dist/theme/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../theme/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,mBAAmB,GAAG;IACjC,KAAK,EAAE;QACL,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../theme/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowEdge.d.ts","sourceRoot":"","sources":["../../../ui/components/FlowEdge.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"FlowEdge.d.ts","sourceRoot":"","sources":["../../../ui/components/FlowEdge.tsx"],"names":[],"mappings":"AAGA,OAAO,EAA2B,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAuBxE,iBAAS,aAAa,CAAC,KAAK,EAAE,SAAS,2CAoEtC;AAED,eAAO,MAAM,QAAQ,2DAAsB,CAAC"}
|
|
@@ -10,24 +10,46 @@ const STATE_STYLES = {
|
|
|
10
10
|
taken: { stroke: 'hsl(142 76% 36%)', strokeWidth: 2 },
|
|
11
11
|
not_taken: { stroke: 'hsl(0 0% 25%)', strokeWidth: 1, dashArray: '4 4' },
|
|
12
12
|
};
|
|
13
|
+
/** Build a custom SVG arc path that curves above the graph for back-edges. */
|
|
14
|
+
function buildBackEdgePath(sourceX, sourceY, targetX, targetY) {
|
|
15
|
+
// Arc goes upward — control points above both endpoints
|
|
16
|
+
const midX = (sourceX + targetX) / 2;
|
|
17
|
+
const dx = Math.abs(targetX - sourceX);
|
|
18
|
+
const arcHeight = Math.max(80, dx * 0.4);
|
|
19
|
+
const cy = Math.min(sourceY, targetY) - arcHeight;
|
|
20
|
+
const path = `M ${sourceX},${sourceY} C ${sourceX},${cy} ${targetX},${cy} ${targetX},${targetY}`;
|
|
21
|
+
return { path, labelX: midX, labelY: cy + arcHeight * 0.3 };
|
|
22
|
+
}
|
|
13
23
|
function FlowEdgeInner(props) {
|
|
14
24
|
const { sourceX, sourceY, sourcePosition, targetX, targetY, targetPosition, data } = props;
|
|
15
25
|
const state = data?.state ?? 'default';
|
|
16
26
|
const action = data?.action;
|
|
27
|
+
const isBackEdge = data?.isBackEdge === true;
|
|
17
28
|
const style = STATE_STYLES[state] ?? STATE_STYLES.default;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
targetX,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
let edgePath;
|
|
30
|
+
let labelX;
|
|
31
|
+
let labelY;
|
|
32
|
+
if (isBackEdge) {
|
|
33
|
+
const arc = buildBackEdgePath(sourceX, sourceY, targetX, targetY);
|
|
34
|
+
edgePath = arc.path;
|
|
35
|
+
labelX = arc.labelX;
|
|
36
|
+
labelY = arc.labelY;
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
[edgePath, labelX, labelY] = (0, react_2.getBezierPath)({
|
|
40
|
+
sourceX,
|
|
41
|
+
sourceY,
|
|
42
|
+
sourcePosition,
|
|
43
|
+
targetX,
|
|
44
|
+
targetY,
|
|
45
|
+
targetPosition,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
26
48
|
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(react_2.BaseEdge, { path: edgePath, style: {
|
|
27
|
-
stroke: style.stroke,
|
|
28
|
-
strokeWidth: style.strokeWidth,
|
|
29
|
-
strokeDasharray: style.dashArray,
|
|
30
|
-
} }), action && action !== 'default' && ((0, jsx_runtime_1.jsx)("foreignObject", { x: labelX - 20, y: labelY - 10, width: 40, height: 20, className: "pointer-events-none", children: (0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", children: (0, jsx_runtime_1.jsx)("span", { className: "text-[9px] px-1 py-0.5 rounded bg-background/80 text-muted-foreground border border-border/50", children: action }) }) }))] }));
|
|
49
|
+
stroke: isBackEdge ? 'hsl(0 0% 40%)' : style.stroke,
|
|
50
|
+
strokeWidth: isBackEdge ? 1.5 : style.strokeWidth,
|
|
51
|
+
strokeDasharray: isBackEdge ? '6 4' : style.dashArray,
|
|
52
|
+
} }), isBackEdge && ((0, jsx_runtime_1.jsx)("foreignObject", { x: labelX - 8, y: labelY - 8, width: 16, height: 16, className: "pointer-events-none", children: (0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", children: (0, jsx_runtime_1.jsx)("span", { className: "text-[10px] text-muted-foreground", children: "\u21BA" }) }) })), action && action !== 'default' && ((0, jsx_runtime_1.jsx)("foreignObject", { x: labelX - 20, y: (isBackEdge ? labelY + 6 : labelY) - 10, width: 40, height: 20, className: "pointer-events-none", children: (0, jsx_runtime_1.jsx)("div", { className: "flex items-center justify-center", children: (0, jsx_runtime_1.jsx)("span", { className: "text-[9px] px-1 py-0.5 rounded bg-background/80 text-muted-foreground border border-border/50", children: action }) }) }))] }));
|
|
31
53
|
}
|
|
32
54
|
exports.FlowEdge = (0, react_1.memo)(FlowEdgeInner);
|
|
33
55
|
//# sourceMappingURL=FlowEdge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowEdge.js","sourceRoot":"","sources":["../../../ui/components/FlowEdge.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,iCAA6B;AAC7B,yCAAwE;AAExE,MAAM,YAAY,GAAgF;IAChG,OAAO,EAAI,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,EAAE;IACxD,KAAK,EAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC,EAAE;IACzD,SAAS,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;CACzE,CAAC;AAEF,SAAS,aAAa,CAAC,KAAgB;IACrC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAC3F,MAAM,KAAK,GAAI,IAA2B,EAAE,KAAK,IAAI,SAAS,CAAC;IAC/D,MAAM,MAAM,GAAI,IAA4B,EAAE,MAAM,CAAC;IACrD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC;IAE1D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAA,qBAAa,EAAC;
|
|
1
|
+
{"version":3,"file":"FlowEdge.js","sourceRoot":"","sources":["../../../ui/components/FlowEdge.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
|
-
import '@xyflow/react/dist/style.css';
|
|
2
1
|
import type { ExecutionProjection } from '../../src/types';
|
|
2
|
+
/** Detect back-edges via DFS. Returns set of "source:target" keys. */
|
|
3
|
+
export declare function detectBackEdges(nodeIds: readonly string[], edges: readonly {
|
|
4
|
+
source: string;
|
|
5
|
+
target: string;
|
|
6
|
+
}[]): Set<string>;
|
|
3
7
|
interface FlowGraphProps {
|
|
4
8
|
projection: ExecutionProjection;
|
|
5
9
|
selectedNodeId: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowGraph.d.ts","sourceRoot":"","sources":["../../../ui/components/FlowGraph.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FlowGraph.d.ts","sourceRoot":"","sources":["../../../ui/components/FlowGraph.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,mBAAmB,EAAkC,MAAM,iBAAiB,CAAC;AAa3F,sEAAsE;AACtE,wBAAgB,eAAe,CAC7B,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,KAAK,EAAE,SAAS;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,GACnD,GAAG,CAAC,MAAM,CAAC,CAkCb;AA2GD,UAAU,cAAc;IACtB,UAAU,EAAE,mBAAmB,CAAC;IAChC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAED,wBAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE,cAAc,2CAyDrF"}
|
|
@@ -1,16 +1,54 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
'use client';
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.detectBackEdges = detectBackEdges;
|
|
4
5
|
exports.FlowGraph = FlowGraph;
|
|
5
6
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
7
|
const react_1 = require("react");
|
|
7
8
|
const react_2 = require("@xyflow/react");
|
|
8
|
-
require("@xyflow/react/dist/style.css");
|
|
9
9
|
const NodeCard_1 = require("./NodeCard");
|
|
10
10
|
const FlowEdge_1 = require("./FlowEdge");
|
|
11
|
+
/** Detect back-edges via DFS. Returns set of "source:target" keys. */
|
|
12
|
+
function detectBackEdges(nodeIds, edges) {
|
|
13
|
+
const WHITE = 0, GRAY = 1, BLACK = 2;
|
|
14
|
+
const color = new Map();
|
|
15
|
+
const backEdgeKeys = new Set();
|
|
16
|
+
const nodeSet = new Set(nodeIds);
|
|
17
|
+
for (const id of nodeIds)
|
|
18
|
+
color.set(id, WHITE);
|
|
19
|
+
const adj = new Map();
|
|
20
|
+
for (const id of nodeIds)
|
|
21
|
+
adj.set(id, []);
|
|
22
|
+
for (const e of edges) {
|
|
23
|
+
if (e.target !== 'end' && nodeSet.has(e.target)) {
|
|
24
|
+
adj.get(e.source)?.push(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function dfs(node) {
|
|
28
|
+
color.set(node, GRAY);
|
|
29
|
+
for (const edge of adj.get(node) ?? []) {
|
|
30
|
+
const c = color.get(edge.target);
|
|
31
|
+
if (c === GRAY) {
|
|
32
|
+
backEdgeKeys.add(`${edge.source}:${edge.target}`);
|
|
33
|
+
}
|
|
34
|
+
else if (c === WHITE) {
|
|
35
|
+
dfs(edge.target);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
color.set(node, BLACK);
|
|
39
|
+
}
|
|
40
|
+
for (const id of nodeIds) {
|
|
41
|
+
if (color.get(id) === WHITE)
|
|
42
|
+
dfs(id);
|
|
43
|
+
}
|
|
44
|
+
return backEdgeKeys;
|
|
45
|
+
}
|
|
11
46
|
function computeLayout(projection) {
|
|
12
47
|
const { nodes: projNodes, edges: projEdges } = projection.graph;
|
|
13
|
-
//
|
|
48
|
+
// Detect back-edges via DFS before running Kahn's
|
|
49
|
+
const nodeIds = projNodes.map(n => n.id);
|
|
50
|
+
const backEdgeKeys = detectBackEdges(nodeIds, projEdges);
|
|
51
|
+
// Build adjacency for topological ordering, excluding back-edges
|
|
14
52
|
const inDegree = new Map();
|
|
15
53
|
const adjList = new Map();
|
|
16
54
|
for (const n of projNodes) {
|
|
@@ -18,7 +56,7 @@ function computeLayout(projection) {
|
|
|
18
56
|
adjList.set(n.id, []);
|
|
19
57
|
}
|
|
20
58
|
for (const e of projEdges) {
|
|
21
|
-
if (e.target !== 'end') {
|
|
59
|
+
if (e.target !== 'end' && !backEdgeKeys.has(`${e.source}:${e.target}`)) {
|
|
22
60
|
adjList.get(e.source)?.push(e.target);
|
|
23
61
|
inDegree.set(e.target, (inDegree.get(e.target) ?? 0) + 1);
|
|
24
62
|
}
|
|
@@ -72,7 +110,7 @@ function computeLayout(projection) {
|
|
|
72
110
|
});
|
|
73
111
|
});
|
|
74
112
|
}
|
|
75
|
-
// Map edges
|
|
113
|
+
// Map edges (mark back-edges for distinct rendering)
|
|
76
114
|
const edges = projEdges
|
|
77
115
|
.filter((e) => e.target !== 'end')
|
|
78
116
|
.map((e, i) => ({
|
|
@@ -80,7 +118,7 @@ function computeLayout(projection) {
|
|
|
80
118
|
source: e.source,
|
|
81
119
|
target: e.target,
|
|
82
120
|
type: 'flowEdge',
|
|
83
|
-
data: { state: e.state, action: e.action },
|
|
121
|
+
data: { state: e.state, action: e.action, isBackEdge: backEdgeKeys.has(`${e.source}:${e.target}`) },
|
|
84
122
|
animated: e.state === 'taken',
|
|
85
123
|
}));
|
|
86
124
|
return { nodes, edges };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowGraph.js","sourceRoot":"","sources":["../../../ui/components/FlowGraph.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;
|
|
1
|
+
{"version":3,"file":"FlowGraph.js","sourceRoot":"","sources":["../../../ui/components/FlowGraph.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAgCb,0CAqCC;AAiHD,8BAyDC;;AA7OD,iCAAwD;AACxD,yCAYuB;AAIvB,yCAAsC;AACtC,yCAAsC;AAWtC,sEAAsE;AACtE,SAAgB,eAAe,CAC7B,OAA0B,EAC1B,KAAoD;IAEpD,MAAM,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAEjC,KAAK,MAAM,EAAE,IAAI,OAAO;QAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAqD,CAAC;IACzE,KAAK,MAAM,EAAE,IAAI,OAAO;QAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,SAAS,GAAG,CAAC,IAAY;QACvB,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACtB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACpD,CAAC;iBAAM,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,KAAK;YAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,UAA+B;IACpD,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC;IAEhE,kDAAkD;IAClD,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEzD,iEAAiE;IACjE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YACtC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;QACjC,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7C,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;YACpE,IAAI,MAAM,KAAK,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,iBAAiB;IACjB,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACxD,WAAW,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,iBAAiB;IACjB,MAAM,UAAU,GAAG,GAAG,CAAC;IACvB,MAAM,WAAW,GAAG,EAAE,CAAC;IACvB,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;QACvC,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACxE,MAAM,MAAM,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC;QAEhC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE;gBACF,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE;oBACR,CAAC,EAAE,KAAK,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC;oBAC/B,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC1C;gBACD,IAAI,EAAE,EAAE,GAAG,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAA6B;aAClI,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qDAAqD;IACrD,MAAM,KAAK,GAAW,SAAS;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,KAAK,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACd,EAAE,EAAE,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;QACpC,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE;QACnG,QAAQ,EAAE,CAAC,CAAC,KAAK,KAAK,OAAO;KAC9B,CAAC,CAAC,CAAC;IAEN,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E,MAAM,SAAS,GAAc;IAC3B,QAAQ,EAAE,mBAAQ;CACnB,CAAC;AAEF,MAAM,SAAS,GAAc;IAC3B,QAAQ,EAAE,mBAAQ;CACnB,CAAC;AAYF,SAAgB,SAAS,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAkB;IACpF,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,IAAA,qBAAa,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAErE,iCAAiC;IACjC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEjC,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,CAAmB,EAAE,IAAU,EAAE,EAAE;QAClC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,EACD,CAAC,YAAY,CAAC,CACf,CAAC;IAEF,OAAO,CACL,gCAAK,SAAS,EAAC,eAAe,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,YACtD,wBAAC,iBAAS,IACR,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,GAAG,CAAC;gBACJ,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,cAAc;aAClC,CAAC,CAAC,EACH,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,OAAO,QACP,cAAc,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,EAChC,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EACrC,OAAO,EAAE,GAAG,EACZ,OAAO,EAAE,CAAC,aAEV,uBAAC,kBAAU,IAAC,OAAO,EAAE,yBAAiB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAC,mBAAmB,GAAG,EAC3F,uBAAC,gBAAQ,IAAC,eAAe,EAAE,KAAK,GAAI,EACpC,uBAAC,eAAO,IACN,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE;wBACf,MAAM,MAAM,GAAI,CAAC,CAAC,IAAkC,EAAE,MAAM,IAAI,SAAS,CAAC;wBAC1E,QAAQ,MAAM,EAAE,CAAC;4BACf,KAAK,WAAW,CAAC,CAAC,OAAO,kBAAkB,CAAC;4BAC5C,KAAK,SAAS,CAAC,CAAC,OAAO,kBAAkB,CAAC;4BAC1C,KAAK,QAAQ,CAAC,CAAC,OAAO,gBAAgB,CAAC;4BACvC,KAAK,OAAO,CAAC,CAAC,OAAO,iBAAiB,CAAC;4BACvC,KAAK,QAAQ,CAAC,CAAC,OAAO,eAAe,CAAC;4BACtC,OAAO,CAAC,CAAC,OAAO,eAAe,CAAC;wBAClC,CAAC;oBACH,CAAC,EACD,QAAQ,QACR,QAAQ,SACR,IACQ,GACR,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowStatusBar.d.ts","sourceRoot":"","sources":["../../../ui/components/FlowStatusBar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,UAAU,kBAAkB;IAC1B,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"FlowStatusBar.d.ts","sourceRoot":"","sources":["../../../ui/components/FlowStatusBar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,UAAU,kBAAkB;IAC1B,UAAU,EAAE,mBAAmB,CAAC;CACjC;AAED,wBAAgB,aAAa,CAAC,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAgE/D"}
|
|
@@ -13,13 +13,23 @@ function FlowStatusBar({ projection }) {
|
|
|
13
13
|
}
|
|
14
14
|
return result;
|
|
15
15
|
}, [projection.graph.nodes]);
|
|
16
|
+
const maxIteration = (0, react_1.useMemo)(() => {
|
|
17
|
+
let max = 0;
|
|
18
|
+
for (const node of projection.graph.nodes) {
|
|
19
|
+
if ((node.iteration ?? 0) > max)
|
|
20
|
+
max = node.iteration ?? 0;
|
|
21
|
+
}
|
|
22
|
+
return max;
|
|
23
|
+
}, [projection.graph.nodes]);
|
|
16
24
|
const totalCost = projection.totalCost;
|
|
17
25
|
const duration = projection.startedAt && projection.finishedAt
|
|
18
26
|
? ((projection.finishedAt - projection.startedAt) / 1000).toFixed(0)
|
|
19
27
|
: projection.startedAt
|
|
20
28
|
? ((Date.now() - projection.startedAt) / 1000).toFixed(0)
|
|
21
29
|
: null;
|
|
22
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-4 px-4 py-1.5 text-xs text-muted-foreground border-t border-border bg-background", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [counts.completed && (0, jsx_runtime_1.jsx)(StatusCount, { label: "completed", count: counts.completed, color: "text-green-400" }), counts.running && (0, jsx_runtime_1.jsx)(StatusCount, { label: "running", count: counts.running, color: "text-blue-400" }), counts.pending && (0, jsx_runtime_1.jsx)(StatusCount, { label: "pending", count: counts.pending, color: "text-muted-foreground" }), counts.failed && (0, jsx_runtime_1.jsx)(StatusCount, { label: "failed", count: counts.failed, color: "text-red-400" }), counts.gated && (0, jsx_runtime_1.jsx)(StatusCount, { label: "gated", count: counts.gated, color: "text-yellow-400" }), counts.skipped && (0, jsx_runtime_1.jsx)(StatusCount, { label: "skipped", count: counts.skipped, color: "text-muted-foreground/50" }), counts.killed && (0, jsx_runtime_1.jsx)(StatusCount, { label: "killed", count: counts.killed, color: "text-muted-foreground" })] }), (0, jsx_runtime_1.jsx)("div", { className: "w-px h-3 bg-border" }), (0, jsx_runtime_1.jsx)("span", { className: (0, utils_1.cn)(projection.status === 'running' && 'text-blue-400', projection.status === 'completed' && 'text-green-400', projection.status === 'failed' && 'text-red-400', projection.status === 'stopped' && 'text-yellow-400'), children: projection.status
|
|
30
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-4 px-4 py-1.5 text-xs text-muted-foreground border-t border-border bg-background", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [counts.completed && (0, jsx_runtime_1.jsx)(StatusCount, { label: "completed", count: counts.completed, color: "text-green-400" }), counts.running && (0, jsx_runtime_1.jsx)(StatusCount, { label: "running", count: counts.running, color: "text-blue-400" }), counts.pending && (0, jsx_runtime_1.jsx)(StatusCount, { label: "pending", count: counts.pending, color: "text-muted-foreground" }), counts.failed && (0, jsx_runtime_1.jsx)(StatusCount, { label: "failed", count: counts.failed, color: "text-red-400" }), counts.gated && (0, jsx_runtime_1.jsx)(StatusCount, { label: "gated", count: counts.gated, color: "text-yellow-400" }), counts.skipped && (0, jsx_runtime_1.jsx)(StatusCount, { label: "skipped", count: counts.skipped, color: "text-muted-foreground/50" }), counts.killed && (0, jsx_runtime_1.jsx)(StatusCount, { label: "killed", count: counts.killed, color: "text-muted-foreground" })] }), (0, jsx_runtime_1.jsx)("div", { className: "w-px h-3 bg-border" }), (0, jsx_runtime_1.jsx)("span", { className: (0, utils_1.cn)(projection.status === 'running' && 'text-blue-400', projection.status === 'completed' && 'text-green-400', projection.status === 'failed' && 'text-red-400', projection.status === 'stopped' && 'text-yellow-400'), children: projection.status === 'running' && maxIteration > 0
|
|
31
|
+
? `Running (iteration ${maxIteration})`
|
|
32
|
+
: projection.status }), duration && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "w-px h-3 bg-border" }), (0, jsx_runtime_1.jsxs)("span", { children: [duration, "s"] })] })), totalCost > 0 && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "w-px h-3 bg-border" }), (0, jsx_runtime_1.jsxs)("span", { children: ["$", totalCost.toFixed(2)] })] }))] }));
|
|
23
33
|
}
|
|
24
34
|
function StatusCount({ label, count, color }) {
|
|
25
35
|
return ((0, jsx_runtime_1.jsxs)("span", { className: (0, utils_1.cn)('flex items-center gap-1', color), children: [(0, jsx_runtime_1.jsx)("span", { className: "font-medium", children: count }), (0, jsx_runtime_1.jsx)("span", { children: label })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowStatusBar.js","sourceRoot":"","sources":["../../../ui/components/FlowStatusBar.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAUb,
|
|
1
|
+
{"version":3,"file":"FlowStatusBar.js","sourceRoot":"","sources":["../../../ui/components/FlowStatusBar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MiniPipeline.d.ts","sourceRoot":"","sources":["../../../ui/components/MiniPipeline.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAkC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"MiniPipeline.d.ts","sourceRoot":"","sources":["../../../ui/components/MiniPipeline.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAkC,MAAM,iBAAiB,CAAC;AAQ3F,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,mBAAmB,CAAC;IAChC,6DAA6D;IAC7D,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IAC5C,sEAAsE;IACtE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA4SD,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,IAAa,EAAE,MAAM,EAAE,EAAE,iBAAiB,2CAepF"}
|
|
@@ -5,8 +5,12 @@ exports.MiniPipeline = MiniPipeline;
|
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const react_1 = require("react");
|
|
7
7
|
const types_1 = require("./node-panel/types");
|
|
8
|
+
const FlowGraph_1 = require("./FlowGraph");
|
|
8
9
|
function computeMiniLayout(nodes, edges) {
|
|
9
10
|
const nodeMap = new Map(nodes.map(n => [n.id, n]));
|
|
11
|
+
const nodeIds = nodes.map(n => n.id);
|
|
12
|
+
// Detect back-edges before Kahn's
|
|
13
|
+
const backEdgeKeys = (0, FlowGraph_1.detectBackEdges)(nodeIds, edges);
|
|
10
14
|
const inDegree = new Map();
|
|
11
15
|
const adj = new Map();
|
|
12
16
|
for (const n of nodes) {
|
|
@@ -14,7 +18,7 @@ function computeMiniLayout(nodes, edges) {
|
|
|
14
18
|
adj.set(n.id, []);
|
|
15
19
|
}
|
|
16
20
|
for (const e of edges) {
|
|
17
|
-
if (e.target !== 'end' && nodeMap.has(e.target)) {
|
|
21
|
+
if (e.target !== 'end' && nodeMap.has(e.target) && !backEdgeKeys.has(`${e.source}:${e.target}`)) {
|
|
18
22
|
adj.get(e.source)?.push(e.target);
|
|
19
23
|
inDegree.set(e.target, (inDegree.get(e.target) ?? 0) + 1);
|
|
20
24
|
}
|
|
@@ -56,40 +60,87 @@ function computeMiniLayout(nodes, edges) {
|
|
|
56
60
|
});
|
|
57
61
|
}
|
|
58
62
|
const maxLayer = Math.max(0, ...[...layers.values()]);
|
|
59
|
-
return { miniNodes, maxLayer, maxRow };
|
|
63
|
+
return { miniNodes, maxLayer, maxRow, backEdgeKeys };
|
|
60
64
|
}
|
|
61
65
|
// ---------------------------------------------------------------------------
|
|
62
66
|
// Graph mode — compact SVG mini-DAG
|
|
63
67
|
// ---------------------------------------------------------------------------
|
|
64
|
-
function GraphMode({ projection, height =
|
|
65
|
-
const
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
68
|
+
function GraphMode({ projection, height = 40 }) {
|
|
69
|
+
const containerRef = (0, react_1.useRef)(null);
|
|
70
|
+
const [containerWidth, setContainerWidth] = (0, react_1.useState)(0);
|
|
71
|
+
const filterId = (0, react_1.useId)();
|
|
72
|
+
(0, react_1.useEffect)(() => {
|
|
73
|
+
const el = containerRef.current;
|
|
74
|
+
if (!el)
|
|
75
|
+
return;
|
|
76
|
+
const measure = () => setContainerWidth(el.clientWidth);
|
|
77
|
+
measure();
|
|
78
|
+
const ro = new ResizeObserver(measure);
|
|
79
|
+
ro.observe(el);
|
|
80
|
+
return () => ro.disconnect();
|
|
81
|
+
}, []);
|
|
82
|
+
const { miniNodes, maxLayer, maxRow, backEdgeKeys } = (0, react_1.useMemo)(() => computeMiniLayout(projection.graph.nodes, projection.graph.edges), [projection.graph.nodes, projection.graph.edges]);
|
|
83
|
+
// --- Pill layout constants ---
|
|
84
|
+
const pillH = 18;
|
|
85
|
+
const pillR = pillH / 2;
|
|
86
|
+
const pillGap = 5; // gap between stacked pills in same column
|
|
87
|
+
const colPad = 16; // horizontal padding from edges
|
|
88
|
+
const hasBackEdges = backEdgeKeys.size > 0;
|
|
89
|
+
// Column positions
|
|
90
|
+
const effectiveWidth = containerWidth || 200;
|
|
91
|
+
const colWidth = maxLayer > 0
|
|
92
|
+
? (effectiveWidth - colPad * 2) / (maxLayer + 1)
|
|
93
|
+
: effectiveWidth - colPad * 2;
|
|
94
|
+
const pillW = Math.min(colWidth * 0.55, 60); // pill width: 55% of column or max 60px
|
|
95
|
+
const connGap = colWidth - pillW; // horizontal gap between pill columns
|
|
96
|
+
// SVG height: tallest column determines it
|
|
97
|
+
const layerCounts = new Map();
|
|
98
|
+
for (const n of miniNodes)
|
|
99
|
+
layerCounts.set(n.layer, (layerCounts.get(n.layer) ?? 0) + 1);
|
|
100
|
+
const maxInLayer = Math.max(1, ...layerCounts.values());
|
|
101
|
+
const tallestCol = maxInLayer * pillH + (maxInLayer - 1) * pillGap;
|
|
102
|
+
const svgHeight = Math.max(height, tallestCol + colPad * 2 + (hasBackEdges ? 16 : 0));
|
|
103
|
+
const centerY = (svgHeight - (hasBackEdges ? 16 : 0)) / 2;
|
|
104
|
+
// Position each pill (center x, center y)
|
|
105
|
+
const pillPos = new Map();
|
|
73
106
|
for (const n of miniNodes) {
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
|
|
107
|
+
const cx = colPad + n.layer * colWidth + colWidth / 2;
|
|
108
|
+
const count = layerCounts.get(n.layer) ?? 1;
|
|
109
|
+
const blockH = count * pillH + (count - 1) * pillGap;
|
|
110
|
+
const topY = centerY - blockH / 2;
|
|
111
|
+
const cy = topY + n.row * (pillH + pillGap) + pillH / 2;
|
|
112
|
+
pillPos.set(n.id, { cx, cy });
|
|
80
113
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
114
|
+
// Column center X by layer
|
|
115
|
+
const colCenterX = (layer) => colPad + layer * colWidth + colWidth / 2;
|
|
116
|
+
return ((0, jsx_runtime_1.jsx)("div", { ref: containerRef, style: { width: '100%' }, children: containerWidth > 0 && ((0, jsx_runtime_1.jsxs)("svg", { width: containerWidth, height: svgHeight, style: { display: 'block' }, children: [(0, jsx_runtime_1.jsxs)("defs", { children: [(0, jsx_runtime_1.jsxs)("filter", { id: `gc-${filterId}`, x: "-40%", y: "-40%", width: "180%", height: "180%", children: [(0, jsx_runtime_1.jsx)("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "2", result: "b" }), (0, jsx_runtime_1.jsxs)("feMerge", { children: [(0, jsx_runtime_1.jsx)("feMergeNode", { in: "b" }), (0, jsx_runtime_1.jsx)("feMergeNode", { in: "SourceGraphic" })] })] }), (0, jsx_runtime_1.jsxs)("filter", { id: `ga-${filterId}`, x: "-40%", y: "-40%", width: "180%", height: "180%", children: [(0, jsx_runtime_1.jsx)("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "3", result: "b" }), (0, jsx_runtime_1.jsxs)("feMerge", { children: [(0, jsx_runtime_1.jsx)("feMergeNode", { in: "b" }), (0, jsx_runtime_1.jsx)("feMergeNode", { in: "SourceGraphic" })] })] })] }), Array.from({ length: maxLayer }, (_, i) => {
|
|
117
|
+
const x1 = colCenterX(i) + pillW / 2;
|
|
118
|
+
const x2 = colCenterX(i + 1) - pillW / 2;
|
|
119
|
+
// Check if any taken edge connects these layers
|
|
120
|
+
const hasTaken = projection.graph.edges.some(e => {
|
|
121
|
+
const sLayer = miniNodes.find(n => n.id === e.source)?.layer;
|
|
122
|
+
const tLayer = miniNodes.find(n => n.id === e.target)?.layer;
|
|
123
|
+
return sLayer === i && tLayer === i + 1 && e.state === 'taken';
|
|
124
|
+
});
|
|
125
|
+
return ((0, jsx_runtime_1.jsx)("line", { x1: x1, y1: centerY, x2: x2, y2: centerY, stroke: hasTaken ? '#4ade80' : '#3d3a36', strokeWidth: hasTaken ? 2 : 1.5, strokeOpacity: hasTaken ? 0.7 : 0.4, strokeLinecap: "round" }, `conn-${i}`));
|
|
126
|
+
}), projection.graph.edges
|
|
127
|
+
.filter(e => e.target !== 'end' && backEdgeKeys.has(`${e.source}:${e.target}`))
|
|
128
|
+
.map((e, i) => {
|
|
129
|
+
const sPos = pillPos.get(e.source);
|
|
130
|
+
const tPos = pillPos.get(e.target);
|
|
131
|
+
if (!sPos || !tPos)
|
|
132
|
+
return null;
|
|
133
|
+
const y = svgHeight - 8;
|
|
134
|
+
const d = `M ${sPos.cx},${sPos.cy + pillH / 2} C ${sPos.cx},${y} ${tPos.cx},${y} ${tPos.cx},${tPos.cy + pillH / 2}`;
|
|
135
|
+
return ((0, jsx_runtime_1.jsx)("path", { d: d, fill: "none", stroke: "#585350", strokeWidth: 1.5, strokeDasharray: "4 5", strokeOpacity: 0.3, strokeLinecap: "round" }, `bk-${i}`));
|
|
136
|
+
}), miniNodes.map(n => {
|
|
137
|
+
const pos = pillPos.get(n.id);
|
|
138
|
+
const color = types_1.STATUS_COLORS[n.status]?.dot ?? '#555';
|
|
139
|
+
const isActive = n.status === 'running' || n.status === 'gated';
|
|
140
|
+
const isCompleted = n.status === 'completed';
|
|
141
|
+
const isPending = n.status === 'pending' || n.status === 'killed' || n.status === 'skipped';
|
|
142
|
+
return ((0, jsx_runtime_1.jsxs)("g", { filter: isActive ? `url(#ga-${filterId})` : isCompleted ? `url(#gc-${filterId})` : undefined, children: [(0, jsx_runtime_1.jsx)("rect", { x: pos.cx - pillW / 2, y: pos.cy - pillH / 2, width: pillW, height: pillH, rx: pillR, ry: pillR, fill: isPending ? 'none' : color, fillOpacity: isPending ? 0 : isCompleted ? 0.9 : 0.85, stroke: isPending ? '#585350' : color, strokeWidth: isPending ? 1.5 : 0.5, strokeOpacity: isPending ? 0.6 : 0.3, children: isActive && ((0, jsx_runtime_1.jsx)("animate", { attributeName: "opacity", values: "1;0.4;1", dur: "1.5s", repeatCount: "indefinite" })) }), (0, jsx_runtime_1.jsxs)("title", { children: [n.id, ": ", n.status] })] }, n.id));
|
|
143
|
+
})] })) }));
|
|
93
144
|
}
|
|
94
145
|
// ---------------------------------------------------------------------------
|
|
95
146
|
// Bar mode — proportional status bar
|
|
@@ -145,7 +196,7 @@ function MiniPipeline({ projection, mode = 'auto', height }) {
|
|
|
145
196
|
: mode;
|
|
146
197
|
switch (resolvedMode) {
|
|
147
198
|
case 'graph':
|
|
148
|
-
return (0, jsx_runtime_1.jsx)(GraphMode, { projection: projection, height: height ??
|
|
199
|
+
return (0, jsx_runtime_1.jsx)(GraphMode, { projection: projection, height: height ?? 40 });
|
|
149
200
|
case 'bar':
|
|
150
201
|
return (0, jsx_runtime_1.jsx)(BarMode, { projection: projection, height: height ?? 8 });
|
|
151
202
|
case 'summary':
|