A server sends a form-mode elicitation request. The user closes the dialog by pressing Escape without clicking any button. What should the client report back to the server?
Select an answer to reveal the explanation.
Short Explanation
You know the difference between someone saying "no thanks" and someone just walking away. Clicking Decline is the "no thanks"; pressing Escape is walking away, and that's cancel. Don't lump the two together, because the server is meant to treat them differently.
Full Explanation
Elicitation responses use a three-action model that applies to both form and URL modes. Accept means the user explicitly approved and submitted; in form mode the content field carries data matching the requested schema. Decline means the user explicitly refused, for example by clicking Reject or No. Cancel means the user dismissed the request without making an explicit choice, such as closing the dialog, clicking outside it or pressing Escape. The client returns that result inside inputResponses when it retries the original request. Reporting decline fails because decline is reserved for an explicit refusal, and servers are expected to treat it differently, for instance by offering alternatives, whereas a cancel might prompt again later. Reporting accept with empty content fails by concept: accept means the user submitted, and empty content would misrepresent the user's intent and could fail schema validation. Returning a JSON-RPC error fails because dismissal is a normal user outcome expressed in the result, not a malformed message or server fault. Exam caveat: content is typically omitted for both decline and cancel, so the action field alone carries the meaning. Operational check: in a test client, dismiss an elicitation with Escape and confirm the retried request carries action cancel rather than decline.