@visa/cli 4.1.0-rc.62 → 4.1.0-rc.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ allowed-tools: Bash(visa:*) Bash(visa-cli:*) Bash(node:*) Bash(npm:*) Bash(npx:*
6
6
  metadata:
7
7
  author: visa
8
8
  homepage: https://visacli.sh/agents
9
- version: '0.6.5'
9
+ version: '0.6.6'
10
10
  # OpenClaw-namespaced extension (agentskills.io keeps `metadata` free-form, so
11
11
  # non-standard runtime config lives here — `user-invocable` is not a standard
12
12
  # top-level field). OpenClaw auto-installs `install[]` when `requires.bins` are
@@ -167,10 +167,13 @@ possible (re-pairing an existing identity silently dead-ends). Do this instead:
167
167
  2. **Report status honestly — "connected" is five separate things**, not one. Never
168
168
  imply the agent can spend just because it's connected:
169
169
  - **Identity** — connected (`.visa` name bound to _this user's_ account). ✓ once `already_connected`.
170
- - **Spending** — a _separate human approval_. If `keyBound`/spend isn't set, say:
171
- "To let me pay, approve spending in your **account settings → agent card → Spend**."
172
- You **cannot** self-grant it; never tell the user to run `visa agent add-rail`
173
- (it refuses identity-only agents).
170
+ - **Spending** — a _separate human approval_, and there are two rails. For the
171
+ Turnkey **wallet** (x402 stablecoin), the owner approves a wallet grant in
172
+ **account settings agent wallet Spend** (see "What you can do once paired"
173
+ below). For **card** checkout, the owner approves in **account settings → agent
174
+ card → Spend**. You **cannot** self-grant either; never tell the user to run
175
+ `visa agent add-rail` (it refuses identity-only agents), and never self-mint a
176
+ wallet with `wallet_init` on mainnet — it throws until the owner's delegation lands.
174
177
  - **Mesh (`.visa` messaging)** — with `SUBWAY_MESH=visa`, a returning device now
175
178
  registers on `pair`; if `meshRegistered` is false, `visa register <name>` joins it.
176
179
  - **Trusted (TAP)** — follows spend/provisioning; don't promise it before then.
@@ -178,8 +181,36 @@ possible (re-pairing an existing identity silently dead-ends). Do this instead:
178
181
  signed in with (their email); the wallet + spend limits are theirs. Speak in terms
179
182
  of "your agent / your account / the limits you approved," never a shared identity.
180
183
 
181
- The paid wallet keeps working regardless of the account's spend flag see "What you
182
- can do once paired." Missing **spend** blocks _checkout mandates_, not local x402 pay.
184
+ Missing **spend** blocks _checkout mandates_, not a delegated x402 walletbut that
185
+ wallet must first be acquired by owner approval (below); it is never self-minted.
186
+
187
+ ## What you can do once paired — acquiring a wallet to spend
188
+
189
+ Pairing binds **identity only**. To let this agent pay via the Turnkey x402
190
+ (stablecoin) wallet, the wallet must be **delegated by the human owner** — the runtime
191
+ never self-mints it. On mainnet (production) `wallet_init` throws
192
+ `WalletCredentialRequiredError` until that delegation lands, so do NOT call it as a
193
+ setup step. Follow this sequence:
194
+
195
+ - [ ] **Pair** the identity (the flow above). Identity only — no wallet yet.
196
+ - [ ] **Resolve the next step** with `setup_agent` (`{"rail":"wallet"}`), or drive the
197
+ raw `visa agent grant-wallet <agentId>` ceremony. `setup_agent` reports
198
+ `needs_wallet` and points at the owner-approval grant — it does not tell you to
199
+ self-mint.
200
+ - [ ] **Owner approves the wallet.** The human runs / confirms the wallet grant and
201
+ approves it in the account UI (**account settings → agent wallet → Spend**),
202
+ confirming caps and passkey. That approval registers the delegated signer + caps
203
+ and writes the delegated Turnkey credential (`turnkey.json`) to this runtime.
204
+ You cannot approve on their behalf.
205
+ - [ ] **Confirm the real wallet** with `wallet_status` (or `visa wallet show`). Only a
206
+ provisioned/delegated credential — not the served tool list — means the wallet is
207
+ usable; `agent_capabilities.wallet.available` reflects this.
208
+ - [ ] **Spend** with `wallet_pay` (x402), enforced by the owner-approved local policy
209
+ caps. Never raise a human-approved limit yourself.
210
+
211
+ Card checkout is a separate upgrade on top of this Turnkey-only base — approve a card
212
+ in **account settings → agent card → Spend**, then `start_card_mandate` / `pay_merchant`
213
+ draw against it. Neither rail is enabled by pairing.
183
214
 
184
215
  ## Core flow
185
216
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visa/cli",
3
- "version": "4.1.0-rc.62",
3
+ "version": "4.1.0-rc.63",
4
4
  "description": "Visa CLI runtime for stable agent identity and separately authorized payment capabilities",
5
5
  "bin": {
6
6
  "visa-cli": "./bin/visa-cli.js",
package/server.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json",
3
3
  "name": "io.github.visa-crypto-labs/visa-cli",
4
- "version": "4.1.0-rc.62",
4
+ "version": "4.1.0-rc.63",
5
5
  "title": "Visa CLI",
6
6
  "description": "Pair a human-approved agent identity, configure payment capabilities separately, and discover and pay x402 services from your AI coding assistant.",
7
7
  "websiteUrl": "https://github.com/Visa-Crypto-Labs/Visa-mono/tree/main/packages/cli#readme",
@@ -9,7 +9,7 @@
9
9
  {
10
10
  "registryType": "npm",
11
11
  "identifier": "@visa/cli",
12
- "version": "4.1.0-rc.62",
12
+ "version": "4.1.0-rc.63",
13
13
  "transport": {
14
14
  "type": "stdio"
15
15
  },