@visa/cli 4.1.0-rc.193 → 4.1.0-rc.195
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/checkout-engine/executor.d.ts +3 -1
- package/dist/checkout-engine/executor.js +18 -8
- package/dist/cli.js +351 -348
- package/dist/mcp-server/index.js +273 -270
- package/dist/skills/pair-visa-agent/SKILL.md +11 -9
- package/native/bin/win32-x64/visa-keychain-win.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: Pair a Visa CLI v4 agent identity to this runtime.
|
|
3
|
+
description: Pair a Visa CLI v4 agent identity to this runtime. Present one authorization link, the returned public confirmation code, and the full public request-key fingerprint to the human (or claim a Console handoff code directly without local owner login), then poll until the runtime's local Ed25519 identity is activated. Use when the user says "pair my agent", "enroll my Visa CLI", "connect my Visa agent", or "set up my agent identity".
|
|
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, or any Agent Skills runtime.
|
|
5
5
|
allowed-tools: Bash(visa:*) Bash(visa-cli:*) Bash(node:*) Bash(npm:*) Bash(npx:*)
|
|
6
6
|
metadata:
|
|
@@ -101,7 +101,7 @@ OpenClaw users also receive the skill with the `@visa/visa-cli-openclaw` plugin.
|
|
|
101
101
|
in `~/.hermes/config.yaml`.
|
|
102
102
|
- **No MCP integration:** use the raw `visa agent …` commands.
|
|
103
103
|
3. **Sign the owner in.** Pairing starts are owner-bound — see "Sign in first" below. On a
|
|
104
|
-
fresh runtime this step is required before any pairing command will succeed.
|
|
104
|
+
fresh runtime using direct pairing, this step is required before any pairing command will succeed. When claiming a Console handoff code, skip sign-in and claim the handoff directly.
|
|
105
105
|
4. **Pair.** Follow the core flow below.
|
|
106
106
|
|
|
107
107
|
## MCP mounting examples
|
|
@@ -179,7 +179,8 @@ simply omits it, which is not an error. The activation result includes protocol
|
|
|
179
179
|
Pairing starts are authenticated as the owner: the service pins the owner account at
|
|
180
180
|
initiation, and the browser review page rejects any other signed-in account
|
|
181
181
|
(`owner_profile_mismatch`). So on a fresh runtime the ceremony has a mandatory first leg —
|
|
182
|
-
establish the owner session **before** any pairing command
|
|
182
|
+
establish the owner session **before** any runtime-initiated pairing command (Console handoff codes
|
|
183
|
+
are owner-pinned by the code itself and do NOT require an active owner session):
|
|
183
184
|
|
|
184
185
|
- [ ] Call `agent_login` (MCP, default action `"start"`) or run
|
|
185
186
|
`visa agent login --format json` (CLI). The result carries a sign-in `browserUrl`
|
|
@@ -285,18 +286,19 @@ approve — you poll to completion yourself:
|
|
|
285
286
|
later returns `{"code":"session_required"}`, the session lapsed — run `agent_login`
|
|
286
287
|
again.
|
|
287
288
|
- [ ] **Initiate the grant from MCP — no shelling, no invented URLs.** Call `agent_connect`
|
|
288
|
-
with the rail and
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
289
|
+
with the rail, caps, and exact `agentId` returned by pairing:
|
|
290
|
+
`{"agentId":"<agentId>","rail":"card","ceiling":"<usd>","perTransaction":"<usd>"}`
|
|
291
|
+
(or `"rail":"wallet"`; `agentId` is optional only when exactly one eligible paired agent
|
|
292
|
+
exists on this runtime). It returns `{ url, code, attachId, willGrant, expiresAt }`. Present the
|
|
293
|
+
**bare `url` and `code` exactly as returned** — never construct, shorten, or guess a Visa URL, and
|
|
294
|
+
never open it yourself. The crypto approval happens in the owner's browser and cannot run
|
|
293
295
|
inline in chat. (`setup_agent {"rail":"card"|"wallet"}` returns the same next-step map
|
|
294
296
|
if you need it.)
|
|
295
297
|
- [ ] **Owner approves once** on the **v4 agent dashboard** (`app.visacli.sh/agent/enroll`),
|
|
296
298
|
confirming the caps — **card with a passkey, wallet with their sign-in session**. You
|
|
297
299
|
cannot approve on their behalf.
|
|
298
300
|
- [ ] **Poll to activation from MCP.** Call `agent_connect_poll` (`{"attachId":"<from
|
|
299
|
-
|
|
301
|
+
agent_connect>"}`; or resume by `agentId`) — one bounded poll per call. It returns
|
|
300
302
|
`{"ok":false,"state":"...","blockedByKind":"awaiting_human_approval"}` while pending;
|
|
301
303
|
call again until `{"ok":true,"state":"grant_activated","caps":...}` (wallet also
|
|
302
304
|
returns `fundAddress`). Activation registers the delegated signer + caps: wallet writes
|
|
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-10-17/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.195",
|
|
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.195",
|
|
13
13
|
"transport": {
|
|
14
14
|
"type": "stdio"
|
|
15
15
|
},
|