askuser tool contract
The bundled askuser plugin provides the AskUserQuestion tool; the question card itself is core UI, so the
plugin owns only the tool and its answer format.
Request shape
One call carries one to four questions, each with two to four choices. A choice has a short label, usually one to five words, and a description. Question text must be unique within one request, and choice labels must be unique within each question.
multiSelect allows several choices. custom defaults to true and admits a typed answer; Elowen sets
custom: false when a typed response would be invalid. recommended marks one option, and the web renders the
Recommended badge for it. A preview — monospace text for a mockup, code sample or configuration — works
only on single-select questions.
Answer delivery
The tool returns one line per question with its header and the selected labels, followed by the preview of each selected choice that has one. A typed answer joins the same line as the chosen labels, with no separate marker.
askuser has no settings of its own. Its behavior is fixed by the tool schema in index.mjs and the core card
in web/modules/advisor/AskQuestionCard.tsx.
Expiry and surfaces
The wait is the instance's question timeout, elicitationTimeoutMs under Settings → Elowen AI → Limits
(Question timeout, 30 seconds to 6 hours, default 6 hours). An expired question returns with no answer and the
transcript records Question expired without an answer.
The web card shows the full header, appends select one or more for a multi-select question, badges each choice
with its number key and pages several questions one at a time.
The CLI clips the header chip to about 12 characters and shows a preview beside the list only when the terminal is wide enough. A surface without interactive controls asks the reader to answer with a number.