@rozoai/checkout 0.1.16 → 0.1.17

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
@@ -120,6 +120,22 @@ Distributing this CLI? `--utm-source <label>` (or `ROZO_CHECKOUT_UTM_SOURCE`) is
120
120
 
121
121
  Want ROZO to be able to reach you if a payment needs attention? Add the optional `--email you@example.com` to `pay`.
122
122
 
123
+ ### Privacy: anonymous install id
124
+
125
+ Every order this CLI creates carries two optional reporting fields in
126
+ `attribution`, so repeat orders from one install can be counted as one payer:
127
+
128
+ - `install_id`: a random UUID v4 made on first run and stored in
129
+ `~/.rozo-checkout/prefs.json` (mode 0600). It is not derived from your
130
+ machine, wallet or anything else about you.
131
+ - `account_hash`: sent only if `OPENROUTER_API_KEY` is set in your
132
+ environment. It is the lowercase hex sha256 of `"rozo-acct-v1:" + key`. The
133
+ key itself is never sent, logged or written to disk. An OpenRouter account id
134
+ is never used for this, because a hash of a short id could be guessed back.
135
+
136
+ Delete `~/.rozo-checkout/prefs.json` to get a new id (it also forgets your last
137
+ wallet and coin). Set `ROZO_CHECKOUT_ANON_ID=off` to send neither field.
138
+
123
139
  Need help? Email hi@rozo.ai, or reach us on [X](https://x.com/ROZOai) or [Discord](https://discord.gg/EfWejgTbuU).
124
140
 
125
141
  <details>
@@ -441,6 +457,20 @@ flight or unknown, and 1 if the order expired unpaid or needs a human:
441
457
  rozo-checkout receipt <rozoPaymentId> --json | jq '.receipt | .paymentOutcome, .merchantSettlement.status'
442
458
  ```
443
459
 
460
+ Closed the terminal before paying? `resume` picks the order back up without
461
+ creating a new one:
462
+
463
+ ```bash
464
+ rozo-checkout resume <rozoPaymentId> # asks before showing the address
465
+ rozo-checkout resume <rozoPaymentId> --yes # non-interactive
466
+ ```
467
+
468
+ If the order is still unpaid and has enough time left, it prints the hosted pay
469
+ page and (after you confirm) the exact deposit instructions again. A paid order
470
+ is reported as paid (exit 0); an expired one exits 1 and says how to start
471
+ over; it refuses if this machine already recorded a send. Nothing is created or
472
+ sent.
473
+
444
474
  It reports your payment, the merchant invoice and service delivery as separate
445
475
  layers. Delivery is always `unknown`: Rozo cannot see your OpenRouter credits.
446
476
 
@@ -514,6 +544,12 @@ The full list of what this refuses to do, and why, is in
514
544
 
515
545
  ## Changelog
516
546
 
547
+ - **0.1.17**: new `resume <rozoPaymentId>` command: re-shows the pay page and
548
+ deposit instructions for an unpaid order (read-only, same expiry, payability
549
+ and blacklist gates as `pay`), and answers clearly when it is already paid or
550
+ expired. Orders now carry an anonymous `attribution.install_id` and, when
551
+ `OPENROUTER_API_KEY` is set, a salted `attribution.account_hash`; see
552
+ Privacy. `ROZO_CHECKOUT_ANON_ID=off` sends neither.
517
553
  - **0.1.16**: new `receipt` command: one read, exit 0 only when the merchant
518
554
  side itself reports the invoice paid (Coinbase v3 `CAPTURE_SUCCEEDED`, v1 usage
519
555
  count, or the Bitrefill payout), reported as three layers
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rozoai/checkout",
3
- "version": "0.1.16",
3
+ "version": "0.1.17",
4
4
  "type": "module",
5
5
  "description": "Pay OpenRouter, or any Coinbase invoice, with the crypto you already hold: USDT/USDC on Solana, BNB Chain, Ethereum or Polygon, USDC on Base or Stellar, or BTC over Lightning. No Coinbase account.",
6
6
  "license": "MIT",