Earl, you're thinking of a compound node. Component is under new node : math : component. It reads the red/green/blue components of a color map (or a point in space).
The component field of the component node can be set to 0, 1, or 2. Set at zero, the component node returns the red color value of an RGB image. Set to 1, it returns the green color value. Set to 2, it returns the blue color value. The "answer" that the component puts out is greyscale.
Instead of looking at an RGB image map, you can have the component node look at a point in space, but for our present purpose, you set the color box to white and plug the normal map into it. With the component node set to 1, it returns the green value of the normal map.
Come to think of it, I wonder if one could simply color invert (new node : Cycles : color : invert) the normal map. Alternatively, could one negate the gradient bump value (-1 instead of +1)? I'll try those ideas. I don't have time to right now, because I've got to run down to the hardware store for more gas plumbing parts, and get some piping installed.
For automating this adaptation, the problem I foresee is how do you know whether the normal map is intended for the Firefly protocol or the Superfly protocol? Thus, you don't know which engine/root needs to have the green component inverted. You can usually figure it out in context (grass blades should stick up/out from the ground), but I don't know of a way to automate that decision.