runFlow

fancy-flow

Headless topological runner — /engine, zero React.

Registry JSON
Why
A workflow a human (or agent) authors in the editor is worthless if it can only run inside a browser tab. You want the same graph to execute on a server, a queue worker, a CLI, or an edge function — without dragging React, @xyflow/react, or any DOM into your backend bundle.
What
runFlow is the pure topological engine, exported from the zero-React @particle-academy/fancy-flow/engine subpath. It walks a FlowGraph against an ExecutorRegistry (one async function per node kind), resolves inputs across connected ports, short-circuits decision branches ({ branch: "true" }), detects cycles, and streams typed RunEvents. It's the exact same engine useFlowRun drives in the editor.
How
Import from the headless entry and run: import { runFlow } from "@particle-academy/fancy-flow/engine", then const result = await runFlow(graph, executors, onEvent). Provide executors keyed by node kind (or a "*" wildcard); inspect result.ok / result.outputs / result.error.