split ide/js interfaces into their own libraries