@visa/cli 5.0.0-rc.339 → 5.0.0-rc.340

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
@@ -18,11 +18,12 @@ The protected product flow has three explicit parts:
18
18
  2. **Limits** — spending authority is a separate owner approval with its own
19
19
  visible terms. Enrollment alone can spend nothing.
20
20
  3. **Use** — `visa pay` and the `pay` tool enforce that authority's own policy
21
- and approval boundary on every call.
21
+ and approval boundary on every call. Both are the WALLET rail; card
22
+ checkouts are the `purchase` resource below.
22
23
 
23
24
  ## Protected card purchase preview
24
25
 
25
- This is an explicit gated preview exception to the eight general commands and six general tools. It does not change the general `pay` URL dispatcher. The `capabilities.capabilities.card.preview` block returned by `get_status` separates callable tools and the selected protected device proof; current authority is checked per purchase, and live payment readiness remains unverified.
26
+ This is an explicit gated preview exception to the general commands and tools. `pay` no longer dispatches card at all: it is the wallet door, and a merchant checkout URL aimed at it refuses with `card_checkout_not_on_pay` naming this resource. The `capabilities.capabilities.card.preview` block returned by `get_status` separates callable tools and the selected protected device proof; current authority is checked per purchase, and live payment readiness remains unverified.
26
27
 
27
28
  For the initial **Codex + local MCP on your own device** cohort, builds that list
28
29
  `purchase_create`, `purchase_retrieve`, and `purchase_cancel` expose one protected
@@ -279,7 +280,7 @@ a name that was ever real has to stay readable here.
279
280
  | `get_status` | Everything about this machine in one answer: the owner signed in, the agent this machine holds, its limits, its capabilities, and what is owed next |
280
281
  | `agent_enroll` | The one door. Idempotent, and runs whichever of three legs is owed: signs the owner in when the session lapsed, RECONNECTS this machine's wallet key when it is missing or revoked (that key is held in this machine's own custody, so nothing on a server can repair it), and enrolls when no agent is held. It checks the repair before enrolling, so an agent that already exists is never answered by minting a second one; pass `restart: true` to force a fresh enrollment |
281
282
  | `discover` | Find something to pay for. Takes search text, or one listing to read its live challenge without paying |
282
- | `pay` | Pay. The RAIL COMES FROM THE TARGET: search text searches, a listing id pays over the wallet, a payment-gated URL pays over whichever rail its challenge asks for |
283
+ | `pay` | Pay **from the agent wallet** (x402, USDC). Search text searches; a listing id or an x402 URL pays. A merchant checkout URL is refused by name — that is `purchase_create` |
283
284
  | `history` | Receipts, across every rail, with reconciliation when a payment's outcome is unresolved |
284
285
  | `purchase_create` | Gated device preview: create/resume exact checkout using existing owner setup |
285
286
  | `purchase_retrieve` | Preview: ordinary status, bounded host observation, or explicit include:card credential delivery |
@@ -322,13 +323,19 @@ AI client and leaves the HUD alone, because the HUD is not that client's.
322
323
 
323
324
  ## CLI commands
324
325
 
325
- Eight, and that is the whole terminal surface. `visa` and `visa-cli` are the
326
+ Nine, and that is the whole terminal surface. `visa` and `visa-cli` are the
326
327
  same binary.
327
328
 
329
+ **`pay` is the wallet. `purchase` is the card.** They never overlap: `pay`
330
+ spends USDC over x402 in one call, and `purchase` is a card resource you
331
+ create, poll and complete with your own browser. Point a merchant checkout URL
332
+ at `pay` and it refuses by naming `purchase` rather than failing at the end.
333
+
328
334
  ```bash
329
335
  visa connect [client] # mount + sign in + enroll + device + HUD, skipping what is done
330
336
  visa status # this machine: owner, agent, limits, mounts, HUD, what is blocking
331
- visa pay <target> # a phrase searches; a listing id or URL pays on whichever rail it speaks
337
+ visa pay <target> # WALLET (x402/USDC): a phrase searches; a listing id or x402 URL pays
338
+ visa purchase <create|retrieve|cancel> # CARD: create a purchase, poll it, your agent drives the browser
332
339
  visa limits # show or change what may be spent (changing needs owner approval)
333
340
  visa fund # where to add USDC, and on which network
334
341
  visa activity [id] # payments across every rail; with an id, that one receipt