Command palette
userHow a typed command becomes a candidate action: the deterministic resolver, POST /api/console/intents/resolve then POST /api/console/plans, and why the model never chooses chain, contract, selector, address, or amount.
The command palette is where you type an intent in plain language. It is not an open-ended execution chatbot. Your text goes to a deterministic resolver that maps it onto a candidate typed action drawn from a fixed allowlist — never an authoritative plan, never a transaction. A model may only propose a candidate; the deterministic compiler is the only thing that produces a plan.
The flow
- Resolve.
POST /api/console/intents/resolvetakes your text and returns a candidate action type plus candidate arguments and a confidence score. This surface is compile-only: it returns a candidate, never a plan, never a tx. It answers404 CONSOLE_PREPARE_DISABLEDwhen prepare is flag-off. - Compile.
POST /api/console/plansre-validates the candidate through the deterministic compiler and, for a signed-in owner, persists a run in theVALIDATEDstate. See plans & simulations.
What a candidate can become
The allowlist spans read actions (portfolio, vault, stake, reward, receipts), prepare actions (a USDG vault deposit, a $HISS stake, an xHISS cooldown or redeem, a vault candidate, a Bankrbot command pack, a Stock Token workflow, a Coil compile), and navigation (open a skill or a product route). Read and navigation actions sit at L0; the prepare actions sit at L1 and only a subset are value-bearing.
If your text is ambiguous, the resolver returns the clarifications it needs and the compiler refuses to produce a plan until they are resolved — it fails closed rather than guessing an amount or an address.