Middleware that provides an ask_user tool for interactive questioning.
This middleware adds an ask_user tool that allows agents to ask the user
questions during execution. Questions can be free-form text, multiple choice
(pick exactly one), or multi-select (pick one or more).
The tool uses LangGraph interrupts to pause execution and wait for user input.