shell-completion logic lives in BOT