Policy ⇄ ReactFlow conversion helpers shared by the policy editor canvas
(GraphCanvas) and the read-only supernode preview (SupernodePreview).
A gateway Policy — and a Supernode, which shares the same
nodes/edges shape — converts to ReactFlow nodes/edges with node_id.port
endpoints split per src/graph/engine.rs::parse_edge_endpoint, saved
positions honored, auto-layout for never-saved graphs, and edge styling
driven by each source port's declared kind.
Policy ⇄ ReactFlow conversion helpers shared by the policy editor canvas (GraphCanvas) and the read-only supernode preview (SupernodePreview).
A gateway Policy — and a
Supernode, which shares the same nodes/edges shape — converts to ReactFlow nodes/edges withnode_id.portendpoints split per src/graph/engine.rs::parse_edge_endpoint, saved positions honored, auto-layout for never-saved graphs, and edge styling driven by each source port's declared kind.