make InvalidCommandError more generic
cause the agent to lazily load a command mode