Skip to content

Operator questions

BMO treats operator-visible prompts as a single concern: tool permission requests, MCP elicitations, and agent clarification flows share one queue, one browser dialog, and one pubsub type (questions.Question). The app bridges questions.Question into Bubble Tea (app.events) so confirmation-style interactions follow the same TUI path.

  • Slash command: /questions (aliases /question) opens the Questions dialog — browse and resolve pending items for the current scope. Listed in Slash Commands with other system commands.
  • Automatic modals: When a new pending question is created, the UI opens or queues a modal (enqueueOrOpenQuestion): permission dialogs (PermissionsID), MCP elicitation dialogs (mcp_elicitation:*), or agent clarification dialogs (question:*). A short in-memory queue serializes multiple prompts so only one modal owns focus at a time.
  • Mission Control: Pending counts and surfaces refresh when question events fire; see TUI — phases vs activity for how that relates to the Activity row (coordination vs phase ledger).

The same questions.Service backs agent-facing tools (when the coordinator has questions wired):

ToolRole
list_pending_questionsList pending questions (filter by session / scope)
get_questionFetch one question by id
resolve_questionSubmit a resolution (grant/deny/answer)
ask_questionCreate an agent clarification (when enabled)

Details and exact parameters are in the Tools reference under Operator questions.

MCP exposes the operator-question tools listed above when the coordinator has a questions service. The HTTP server exposes permission-question routes for pending permission prompts; it is not a generic ask_question / resolve_question surface for every operator-question type. Treat broader HTTP parity as out of scope unless a route is added.