Splitting out workflow editor as more generic JS library