Just because both components store similar data, it does not mean they are related.
Technically both solutions are wrong as you can easily generalize "input" -> "action" with a generic component.
You will bind input events to action id's, for example:
input.addMouseAction(MouseEvent.MOUSE_DOWN, "attack");
input.addKeyAction(KeyboardEvent.CLICK, Keyboard.LEFT, "move-left");
etc
Have a system that can read the events (a bit like the polled keyboard/mouse stuff) and then decide what actions are enabled.
Later on you could use this in systems for example:
if(n.input.isLegalAction("attack")){....}
The brilliant part is that now your inputs are abstracted and mapped to actions, you can have even greater inputs:
input.addTouchAction(....);
input.addSwipeAction(...);
etc