@visa/cli 4.1.0-rc.246 → 4.1.0-rc.247

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/README.md CHANGED
@@ -12,8 +12,8 @@ The product flow has three explicit parts:
12
12
  1. **Identity** — `setup_start` (or `visa setup start`) opens ONE browser
13
13
  review that covers the exact runtime, its public-key fingerprint, and every
14
14
  requested rail in a single owner approval. The private key stays on the
15
- runtime device. (`enroll_agent` / `visa agent enroll` remains the
16
- identity-only legacy door.)
15
+ runtime device. The older identity-only doors remain callable for an
16
+ already-started integration but are hidden from normal discovery.
17
17
  2. **Capabilities** — payment methods, spend grants, email and directory
18
18
  bindings are configured separately, each with its own human-visible terms.
19
19
  3. **Use** — when a separately provisioned capability exists, the wallet and
@@ -122,6 +122,22 @@ The server now exposes:
122
122
 
123
123
  Visa sidebands no longer pollute business JSON. Clients receive keys such as `io.visa/visa-receipt` and `io.visa/update-available` in result `_meta`.
124
124
 
125
+ ## Setup doors
126
+
127
+ There is one blessed door for each transition. Recovery commands are kept
128
+ discoverable only where a shipped flow prints them; legacy starts remain callable
129
+ for compatibility but do not appear in normal CLI or MCP discovery.
130
+
131
+ | Transition | Blessed door | Status |
132
+ |---|---|---|
133
+ | New agent from an AI runtime or terminal | `setup_start` / `visa setup start` | Canonical: identity and requested rails on one review page |
134
+ | Agent already created in Console | `agent_handoff_claim` / `visa agent handoff-claim <code>` | Canonical Console handoff |
135
+ | Existing owner account on this device | `agent_login` / `visa agent login` | Canonical sign-in |
136
+ | Resume the canonical setup after restart | `setup_status`, then `setup_resume` / `visa setup status`, then `visa setup open` | Canonical recovery |
137
+ | Finish an already-started legacy pairing | `enroll_agent` action `claim` / `visa agent enroll-claim`, `claim`, or `pairing-resume` as printed | Recovery compatibility only |
138
+ | Resume a paused agent | `visa agent resume <agent-id>` | Live lifecycle control, not enrollment |
139
+ | Start an identity-only legacy pairing | `enroll_agent` / `visa agent enroll`, `pair`, `create`, `verify` | Hidden compatibility; do not start here |
140
+
125
141
  ## Pair an agent identity
126
142
 
127
143
  For a NEW agent, call **`setup_start`** with the name the human chooses: one
@@ -137,15 +153,12 @@ one bounded recovery attempt. Until that evidence is readable, the result is
137
153
  `wallet_runtime_not_ready`, no payment is attempted, and the setup record stays
138
154
  available for a later resume.
139
155
 
140
- The identity-only legacy door remains for existing integrations: `enroll_agent`
141
- with `{"action":"start"}` creates the runtime's Ed25519 key locally, verifies
142
- the terminal/browser channel, and opens the identity-only review; after the
143
- human approves, `{"action":"claim"}` activates and durably stores the identity.
156
+ The identity-only legacy handler remains callable for an existing integration or
157
+ an already-started ceremony, but it is deliberately absent from normal discovery.
158
+ Do not start a new agent there.
144
159
 
145
160
  ```bash
146
161
  visa setup start "Name" # one review page, one approval, every rail
147
- visa agent enroll # legacy identity-only review page
148
- visa agent enroll-claim # resumes delivery/activation after approval
149
162
  visa agent list
150
163
  visa agent show <agent-id>
151
164
  ```
@@ -240,7 +253,6 @@ is required so the CLI never guesses which agent can spend.
240
253
 
241
254
  | Tool | Description |
242
255
  |------|-------------|
243
- | `enroll_agent` | Two-step identity-only pairing: start opens the exact runtime/key review; `{"action":"claim"}` activates and stores the agent identity |
244
256
  | `agent_capabilities` | Derived live capability map (identity, wallet, card, mail, tap, subway) with upgrade paths |
245
257
  | `setup_agent` | Next-step resolver for the wallet rail: `{state, nextAction, blockedBy, steps}`; never spends |
246
258
  | `agent_login` | Start/claim the owner's device account session (required before a grant) |
@@ -293,16 +305,15 @@ visa pay <listing-id> --max <usd>
293
305
  visa activity
294
306
  visa receipt <receipt-id>
295
307
 
296
- # Primary same-machine v2 identity pairing
297
- visa agent enroll
298
- visa agent enroll-claim
299
- visa agent connect --authority both --ceiling 25 --per-transaction 1
308
+ # Primary same-machine setup
309
+ visa setup start "Name" --rails card,wallet
310
+ visa setup status
300
311
 
301
312
  # Existing-account session recovery (separate from identity pairing)
302
313
  visa agent login
303
314
  visa agent login-claim
304
315
 
305
- # Advanced split-device form of the same v2 ceremony
316
+ # Recovery compatibility for a legacy split-device ceremony already in flight
306
317
  visa agent create
307
318
  visa agent claim <pairing-id> --runtime <name> --context "<purpose>"
308
319
  visa agent verify <pairing-id> <code>
@@ -359,9 +370,9 @@ A cap or allowlist said no; nothing was signed. Raise caps only via `visa wallet
359
370
  **`expected 402 from <url>`**
360
371
  That URL isn't payment-gated — probe the service's actual paid route (`wallet_probe` / `visa find`).
361
372
 
362
- **Pairing ended `expired` or `cancelled`**
363
- The ceremony timed out — restart with `visa agent enroll`, then run
364
- `visa agent enroll-claim` after approving the new browser review.
373
+ **Setup ended `expired` or `cancelled`**
374
+ The ceremony timed out — restart with `visa setup start "Name"`, then follow
375
+ `visa setup status` until it reports the next action.
365
376
 
366
377
  **Tools don't appear in the AI client**
367
378
  Restart the client or reconnect the MCP server (`/mcp` → `visa-cli` → reconnect in Claude Code). Re-run `visa-cli connect <client>` to rewrite the config.