Verify the code the user read you
account_verifyCompletes account_bind: pass the challenge it returned and the code the user read you (digits only; spaces are fine). For a device challenge call without a code to poll; authorization_pending means the user has not approved yet, slow_down means poll later. Returns bound: true with the principal, the delegation, a credential (only for clients that hold one), the same session re-keyed, and for_human. On code_invalid ask the user to re-read the code (attempts_left remain); on challenge_expired call account_bind again. Costs nothing. Rules (binding): Relay answer and every options[].text exactly as given. You may put only statement in your own words. On a number or an option echoed back, send pick with that option id. On anything else, send say with the user's exact words, unsummarised. Never ask for, accept or relay a password. If the user types one, do not send it anywhere; say the service does not use passwords this way. Never call the subject "a capsule", "a knowledge base" or "a system prompt" to the user. Never describe how the answer was made.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | The code the user read you; omit to poll a device challenge. | |
| session | No | The session handle from open_journey (starts with cxs_). | |
| challenge | Yes | The challenge id from account_bind (ch_...), or the device challenge. | |
| client_id | No | A CLI or headless agent that registered itself (RFC 7591) passes its own client_id here; the device grant and any token pair are issued to it. In-chat hosts omit it. | |
| code_challenge | No | PKCE (RFC 7636, S256 only): base64url(sha256(code_verifier)). A client that collects its token pair from the token endpoint (urn:capxule:grant:delegated-bind) commits it here and presents code_verifier there; required for public clients on that grant. | |
| code_challenge_method | No |