@visa/cli 4.1.0-rc.308 → 4.1.0-rc.309

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: pair-visa-agent
3
- description: Set up a Visa CLI v4 agent through the single protected enrollment implementation, using the entrance this build advertises, and report its live capabilities honestly. The owner always approves in their browser. Use when the user says "pair my agent", "connect Visa", "enroll my Visa CLI", "set up my agent", or "let this agent pay".
3
+ description: Set up a Visa CLI v4 agent through the single protected enrollment implementation (MCP `agent_enroll` or `visa agent enroll`), and report its live capabilities honestly. The owner always approves in their browser. Use when the user says "pair my agent", "connect Visa", "enroll my Visa CLI", "set up my agent", or "let this agent pay".
4
4
  compatibility: Needs the `visa` CLI (`npm i -g @visa/cli@rc`) — run `node scripts/setup.mjs` to install it if missing — plus network access to the Visa authorization service. Works in OpenClaw, Hermes, Claude Code, Codex, or any Agent Skills runtime.
5
5
  allowed-tools: Bash(visa:*) Bash(visa-cli:*) Bash(node:*) Bash(npm:*) Bash(npx:*)
6
6
  metadata:
@@ -29,19 +29,22 @@ metadata:
29
29
 
30
30
  # Set up a Visa agent
31
31
 
32
- One command carries everything: this runtime's identity, the binding to **this
33
- device**, and the spending limits — behind a **single** owner approval in their browser.
32
+ One protected enrollment carries everything: this runtime's identity, the binding to
33
+ **this device**, and the spending limits — behind a **single** owner approval in their
34
+ browser.
34
35
 
35
- **Today, the command is run by the OWNER in their terminal.** On one-door builds that
36
- advertise it, an agent may instead call `agent_enroll` and hand the owner its returned
37
- link, or the owner runs `visa agent enroll`. These are two entrances to the exact same
38
- protected enrollment implementation: the same native signer, Authority routes, owner
39
- browser approval, and limits. Never invent or mix in a second ceremony.
36
+ It has two entrances to the exact same protected enrollment implementation: the same
37
+ native signer, Authority routes, owner browser approval, and limits. Never invent or mix
38
+ in a second ceremony.
39
+
40
+ - **You have the Visa MCP server mounted:** call `agent_enroll` and hand the owner the one
41
+ link and short code it returns. Call it again with `wait: true` once they have the page
42
+ open; it finishes activation only after they approve.
43
+ - **The owner is at a terminal:** they run the command below.
40
44
 
41
45
  ```
42
46
  # the human runs this:
43
- visa agent enroll-protected \
44
- --authority-url <origin> --auth-url <origin> --url <origin> --wait
47
+ visa agent enroll --wait
45
48
 
46
49
  → it prints a URL and a short code
47
50
  → the human opens the URL and enters the code at /agent/enroll/protected-agent
@@ -49,8 +52,8 @@ visa agent enroll-protected \
49
52
  → the command finishes; `get_status` now reports pairing.paired: true
50
53
  ```
51
54
 
52
- All three origins are required today; the operator supplies them. If the human does not
53
- know them, ask — do not guess an origin, and never construct a Visa URL yourself.
55
+ The installed CLI selects its own service origins from its release channel. Never ask
56
+ for, guess, or construct a Visa URL.
54
57
 
55
58
  Running the same command again resumes an interrupted enrolment; `--restart` replaces an
56
59
  unclaimed request with a fresh code. `--ceiling <usd>` and `--per-transaction <usd>`
@@ -61,12 +64,16 @@ propose limits the owner confirms on the approval page.
61
64
  `setup_start`, `setup_status`, `setup_resume`, `setup_cancel`, `setup_agent`,
62
65
  `enroll_agent`, `agent_connect`, `agent_connect_poll`, `agent_connect_cancel`,
63
66
  `agent_handoff_claim` and `agent_pairing_cancel` are gone, along with the `visa setup`
64
- group and `visa agent pair|create|verify|enroll|enroll-claim|claim|pairing-resume|connect|grant-card|grant-wallet|grant-activate|grant-claim|handoff-claim`.
67
+ group and `visa agent pair|create|verify|enroll-claim|claim|pairing-resume|connect|grant-card|grant-wallet|grant-activate|grant-claim|handoff-claim`.
65
68
 
66
69
  Calling any of them returns one refusal:
67
70
 
68
71
  ```json
69
- { "code": "legacy_door_removed", "kind": "caller", "fix": "visa agent enroll-protected" }
72
+ {
73
+ "code": "legacy_door_removed",
74
+ "kind": "caller",
75
+ "fix": "visa agent enroll (shell) or agent_enroll (MCP)"
76
+ }
70
77
  ```
71
78
 
72
79
  That code means the door no longer exists. **Relay the replacement and stop.** Do not
@@ -214,15 +221,14 @@ be signed in on the approval page. A different account there fails closed.
214
221
 
215
222
  ## Core flow
216
223
 
217
- - [ ] **Ask for the three origins** if you were not given them: `--authority-url`,
218
- `--auth-url`, `--url`. They come from the operator. Never guess one.
224
+ - [ ] **Do not ask for service origins.** The installed CLI selects its Auth and web
225
+ origins from the release channel; Authority is private behind Auth.
219
226
  - [ ] **Sign the owner in** (above), so the wallet leg has a session to bind to.
220
- - [ ] **Use the entrance this build advertises.** Today, give the owner the
221
- `visa agent enroll-protected ... --wait` command in a code block they can copy.
222
- On a one-door build, call `agent_enroll` and relay its returned link, or give the
223
- owner `visa agent enroll`. Never fall back to a retired setup tool.
224
- - [ ] **Relay what the active entrance returns.** Show an MCP-returned URL as a bare,
225
- tappable value. For the current terminal flow, the owner follows the URL and code
227
+ - [ ] **Start the one enrollment.** Call `agent_enroll` and relay its returned link and
228
+ code, or give the owner `visa agent enroll --wait` in a code block they can copy.
229
+ Never fall back to a retired setup tool.
230
+ - [ ] **Relay what the entrance returns.** Show an MCP-returned URL as a bare,
231
+ tappable value. For the terminal flow, the owner follows the URL and code
226
232
  printed in their own terminal. The code goes into the browser at
227
233
  `/agent/enroll/protected-agent`; it is not authority in chat.
228
234
  - [ ] **Tell them what they are approving**: this device, and the spending limits. One
@@ -352,12 +358,13 @@ BEFORE it is signed), then `wallet_pay`. The served wallet tools are `wallet_dis
352
358
  address + faucet), and `wallet_export` (export key material — dangerous). All spending is
353
359
  gated by the owner-approved local policy caps.
354
360
 
355
- Card: `start_card_mandate`, then `pay_merchant`. The first card purchase asks the owner
356
- for a spending mandate within the budget they already approved.
361
+ Card: not available in this build. Visa CLI ships no browser checkout (#8940), so
362
+ `start_card_mandate` returns `card_browser_checkout_removed` and creates no mandate, and
363
+ every `pay_merchant` action refuses with the same code. Nothing is charged. Do not offer
364
+ card checkout to the user, and do not relay a card approval URL; the wallet rail above is
365
+ the payment path.
357
366
 
358
- The current card rail uses VIC browser checkout through `pay_merchant` after
359
- `start_card_mandate`; do not claim that browser checkout is unavailable before the card
360
- retirement change lands. On a hosted runtime, **every payment requires the owner's browser
367
+ On a hosted runtime, **every payment requires the owner's browser
361
368
  approval** until the protected no-tap executor lands. Enrollment, a session, or a spending
362
369
  grant does not approve a later hosted payment. Relay the hosted approval URL and wait for
363
370
  the owner's decision before reporting success or retrying.
@@ -441,8 +448,8 @@ mailbox, key proof, recovery factor, or permission to spend.
441
448
  - Never fetch or submit the review URL on the human's behalf. They review and approve it
442
449
  in their own browser.
443
450
  - Never invent a secondary path when a call fails. Preserve the local state, surface the
444
- error, and resume through the same protected entrance. On today's build, repeat the
445
- same `visa agent enroll-protected ... --wait` command.
451
+ error, and resume through the same protected entrance: call `agent_enroll` again, or
452
+ repeat the same `visa agent enroll --wait` command.
446
453
  - Never call a retired door to "check whether it still works". `legacy_door_removed` is a
447
454
  final answer, not a transient failure.
448
455
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visa/cli",
3
- "version": "4.1.0-rc.308",
3
+ "version": "4.1.0-rc.309",
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-12-11/server.schema.json",
3
3
  "name": "io.github.visa-crypto-labs/visa-cli",
4
- "version": "4.1.0-rc.308",
4
+ "version": "4.1.0-rc.309",
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.308",
12
+ "version": "4.1.0-rc.309",
13
13
  "transport": {
14
14
  "type": "stdio"
15
15
  },