@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.
- package/dist/cli.js +12 -12
- package/dist/mcp-server/index.js +11 -11
- package/dist/merchant-ucp-mcp/index.js +3 -3
- package/dist/skills/pair-visa-agent/SKILL.md +36 -29
- package/native/bin/win32-arm64/visa-runtime-signer.exe +0 -0
- package/native/bin/win32-x64/visa-keychain-win.exe +0 -0
- package/native/bin/win32-x64/visa-runtime-signer.exe +0 -0
- package/package.json +1 -1
- package/server.json +2 -2
|
@@ -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
|
|
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
|
|
33
|
-
device**, and the spending limits — behind a **single** owner approval in their
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
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
|
-
|
|
53
|
-
|
|
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
|
|
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
|
-
{
|
|
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
|
-
- [ ] **
|
|
218
|
-
|
|
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
|
-
- [ ] **
|
|
221
|
-
`visa agent enroll
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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:
|
|
356
|
-
|
|
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
|
-
|
|
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
|
|
445
|
-
same `visa agent enroll
|
|
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
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
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.
|
|
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.
|
|
12
|
+
"version": "4.1.0-rc.309",
|
|
13
13
|
"transport": {
|
|
14
14
|
"type": "stdio"
|
|
15
15
|
},
|