Policy whose nodes/edges describe the graph.
Callback wired into each node's data so clicking a rendered PluginNode selects it in the canvas.
Catalog-derived lookup threaded into each node's
PluginNodeData.ports so PluginNode can render the declared
handles; a type missing from the lookup leaves ports undefined and
PluginNode synthesizes the default success+error pair.
Current value of the persisted port-names preference, threaded into every node's PluginNodeData.showPortNames.
Resolved supernode definitions, used to derive a
supernode instance's actual ports via supernodePortSpec rather
than the (non-existent) catalog entry for the supernode type.
ReactFlow nodes of type pluginNode carrying PluginNodeData.
Converts a gateway Policy into ReactFlow nodes.
Saved
positionvalues on policy nodes win; nodes without one get an auto-layout position: starting from thelistenernode, each success-port successor is placed one column (250px) to the right on the same row, while an error-port successor drops 1.5 rows (225px) below. Nodes unreachable from the listener are appended in subsequent columns at y=300.