warpmetal 0.8.8 → 0.8.9

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
@@ -156,11 +156,15 @@ receipt finality while provisioning or renewal proceeds.
156
156
 
157
157
  For an interactive initial purchase, `checkout challenge` may also return a
158
158
  short-lived `humanCheckout` object. Its `url` and `qrPayload` are the same
159
- `https://pay.x402api.com/c/...` bearer capability for the exact charge; encode
160
- that URL as the QR, never the WarpMetal recipient address. The buyer connects
161
- their own wallet and needs only the advertised USDC/USDT balance because
162
- x402api sponsors the native gas. This is an alternative to the agent-wallet
163
- workflow, not a second payment. After browser payment, run the exact
159
+ `https://pay.x402api.com/c/...` bearer capability for the exact charge.
160
+ Present the exact URL as a clickable x402api handoff. If a QR is useful for
161
+ another device, encode only the identical `qrPayload` and explain that
162
+ scanning opens the hosted checkout without authorizing payment. x402api owns
163
+ any wallet selection or wallet-specific opening QR inside that page; never
164
+ synthesize a wallet link or encode the WarpMetal recipient address. The buyer
165
+ needs only the advertised USDC/USDT balance because x402api sponsors the native
166
+ gas. This is an alternative to the agent-wallet workflow, not a second
167
+ payment. After browser payment, run the exact
164
168
  `humanCheckout.afterPayment.argv` status command. When the ready result asks
165
169
  for `ask_human_for_notification_email`, ask the owner and add the optional
166
170
  lifecycle-notification address they provide. Autonomous purchases and renewals
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "warpmetal",
3
- "version": "0.8.8",
3
+ "version": "0.8.9",
4
4
  "description": "Agent-safe CLI and skill for purchasing, renewing, and managing WarpMetal VPS servers",
5
5
  "type": "module",
6
6
  "bin": {
@@ -90,11 +90,14 @@ open either file.
90
90
 
91
91
  In an interactive initial purchase, the result may also contain
92
92
  `humanCheckout`. Offer it as an alternative to the local agent wallet. Show
93
- `humanCheckout.url` as clickable text and render only the identical
94
- `humanCheckout.qrPayload` URL as the purchase QR; never render the recipient
95
- address as this QR. The URL is an expiring bearer capability, so do not log,
96
- save, or send it anywhere except to the buyer who requested this purchase. If
97
- the buyer uses it, do not authorize or submit through the agent wallet. Run the
93
+ `humanCheckout.url` as clickable x402api text. If another-device acquisition
94
+ is useful, render only the identical `humanCheckout.qrPayload` URL as a QR and
95
+ explain that scanning opens the hosted checkout without authorizing payment.
96
+ x402api owns any wallet selection and wallet-specific opening QR inside that
97
+ page; never synthesize a wallet link or render the recipient address as this
98
+ QR. The URL is an expiring bearer capability, so do not log, save, or send it
99
+ anywhere except to the buyer who requested this purchase. If the buyer uses it,
100
+ do not authorize or submit through the agent wallet. Run the
98
101
  exact `humanCheckout.afterPayment.argv` command, wait for the server to become
99
102
  ready, then follow `ask_human_for_notification_email`: ask the owner for the
100
103
  optional lifecycle-notification address and add only the address they provide.
@@ -75,8 +75,11 @@ workflow.
75
75
  For interactive initial purchases, the response may additionally include
76
76
  `humanCheckout.url`, the identical `qrPayload`, `expiresAt`, and an exact
77
77
  `afterPayment.argv` command. The URL is a short-lived bearer capability for the
78
- same charge, not a recipient address. If the buyer pays in the hosted checkout,
79
- do not submit an agent-wallet artifact; run the returned status command and,
78
+ same charge, not a recipient address. Present the URL as a clickable x402api
79
+ handoff. An optional QR contains that exact web link for another-device
80
+ acquisition; scanning it does not authorize payment, and x402api owns any
81
+ wallet-specific choices inside the hosted page. If the buyer pays there, do not
82
+ submit an agent-wallet artifact; run the returned status command and,
80
83
  after ready, follow `ask_human_for_notification_email` to offer lifecycle
81
84
  notices. The CLI does not persist the hosted URL. Renewal commands never expose
82
85
  or use this interactive option.
@@ -125,9 +125,13 @@ argv arrays returned under `paymentWorkflow`:
125
125
 
126
126
  For an interactive initial purchase, an optional `humanCheckout` object offers
127
127
  a second presentation path for the same charge. Its `url` and `qrPayload` must
128
- be identical hosted-checkout URLs; render that URL as the QR and copyable link,
129
- never a recipient address. If the buyer completes this path, skip agent-wallet
130
- authorization and run `humanCheckout.afterPayment.argv`. Continue bounded
128
+ be identical hosted-checkout URLs. Present `url` as the clickable x402api
129
+ handoff. If a QR is useful for another device, render only the exact
130
+ `qrPayload` and explain that scanning opens the checkout without authorizing
131
+ payment. x402api owns wallet selection and any wallet-specific opening QR
132
+ inside that page; never synthesize a wallet link or render a recipient address.
133
+ If the buyer completes this path, skip agent-wallet authorization and run
134
+ `humanCheckout.afterPayment.argv`. Continue bounded
131
135
  status polling until ready, then ask for the optional lifecycle-notification
132
136
  email when the result returns `ask_human_for_notification_email`. The hosted
133
137
  URL expires at `humanCheckout.expiresAt`, is not persisted by the CLI, and is
package/src/cli.js CHANGED
@@ -887,7 +887,7 @@ async function handleCheckoutChallenge(client, store, options, context) {
887
887
  stringOption(options, "request-envelope-out"),
888
888
  );
889
889
  const directCheckoutInstructions = safe.humanCheckout
890
- ? `\nDirect wallet checkout (optional, expires ${safe.humanCheckout.expiresAt}): ${safe.humanCheckout.url}\nEncode only that URL as the purchase QR. After payment, continue with: ${shellCommand(safe.humanCheckout.afterPayment.argv)}. When provisioning is ready, ask the owner for the optional lifecycle-notification email before adding it.`
890
+ ? `\nHosted human checkout (optional, expires ${safe.humanCheckout.expiresAt}): ${safe.humanCheckout.url}\nOpen this exact x402api link. If another-device acquisition is useful, encode only the returned QR URL; scanning opens the checkout and does not authorize payment. x402api owns wallet selection and explicit approval. After payment, continue with: ${shellCommand(safe.humanCheckout.afterPayment.argv)}. When provisioning is ready, ask the owner for the optional lifecycle-notification email before adding it.`
891
891
  : "";
892
892
  const paymentInstructions = safe.paymentWorkflow
893
893
  ? `\nWallet package: ${safe.paymentWorkflow.signerPackage.spec} (Node ${safe.paymentWorkflow.signerNodeRequirement})\nInstall: ${shellCommand(safe.paymentWorkflow.signerPackage.install.argv)}\nVerify: ${shellCommand(safe.paymentWorkflow.signerContract.probe.argv)}\n${walletWorkflowInstructions(safe.paymentWorkflow)}\nRequest envelope: ${safe.paymentWorkflow.requestEnvelopePath}\nAuthorize only after selecting/funding one wallet: ${shellCommand(safe.paymentWorkflow.authorize.argv)}\nSubmit with WarpMetal: ${shellCommand(safe.paymentWorkflow.submit.argv)}`