run402-mcp 4.113.0 → 4.114.1

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.
Files changed (40) hide show
  1. package/dist/docs/llms-sdk.txt +8 -2
  2. package/package.json +5 -5
  3. package/sdk/dist/node/lightning-paid-fetch.d.ts +2 -0
  4. package/sdk/dist/node/lightning-paid-fetch.d.ts.map +1 -1
  5. package/sdk/dist/node/lightning-paid-fetch.js +44 -10
  6. package/sdk/dist/node/lightning-paid-fetch.js.map +1 -1
  7. package/sdk/dist/node/lightning-x402-lnbtc.d.ts +62 -0
  8. package/sdk/dist/node/lightning-x402-lnbtc.d.ts.map +1 -0
  9. package/sdk/dist/node/lightning-x402-lnbtc.js +170 -0
  10. package/sdk/dist/node/lightning-x402-lnbtc.js.map +1 -0
  11. package/sdk/dist/node/vendor/x402-lnbtc/LICENSE +201 -0
  12. package/sdk/dist/node/vendor/x402-lnbtc/VENDORED.md +25 -0
  13. package/sdk/dist/node/vendor/x402-lnbtc/binding.d.ts +80 -0
  14. package/sdk/dist/node/vendor/x402-lnbtc/binding.d.ts.map +1 -0
  15. package/sdk/dist/node/vendor/x402-lnbtc/binding.js +268 -0
  16. package/sdk/dist/node/vendor/x402-lnbtc/binding.js.map +1 -0
  17. package/sdk/dist/node/vendor/x402-lnbtc/bolt11.d.ts +39 -0
  18. package/sdk/dist/node/vendor/x402-lnbtc/bolt11.d.ts.map +1 -0
  19. package/sdk/dist/node/vendor/x402-lnbtc/bolt11.js +209 -0
  20. package/sdk/dist/node/vendor/x402-lnbtc/bolt11.js.map +1 -0
  21. package/sdk/dist/node/vendor/x402-lnbtc/constants.d.ts +75 -0
  22. package/sdk/dist/node/vendor/x402-lnbtc/constants.d.ts.map +1 -0
  23. package/sdk/dist/node/vendor/x402-lnbtc/constants.js +81 -0
  24. package/sdk/dist/node/vendor/x402-lnbtc/constants.js.map +1 -0
  25. package/sdk/dist/node/vendor/x402-lnbtc/exact/client/scheme.d.ts +58 -0
  26. package/sdk/dist/node/vendor/x402-lnbtc/exact/client/scheme.d.ts.map +1 -0
  27. package/sdk/dist/node/vendor/x402-lnbtc/exact/client/scheme.js +108 -0
  28. package/sdk/dist/node/vendor/x402-lnbtc/exact/client/scheme.js.map +1 -0
  29. package/sdk/dist/node/vendor/x402-lnbtc/jcs.d.ts +19 -0
  30. package/sdk/dist/node/vendor/x402-lnbtc/jcs.d.ts.map +1 -0
  31. package/sdk/dist/node/vendor/x402-lnbtc/jcs.js +81 -0
  32. package/sdk/dist/node/vendor/x402-lnbtc/jcs.js.map +1 -0
  33. package/sdk/dist/node/vendor/x402-lnbtc/types.d.ts +81 -0
  34. package/sdk/dist/node/vendor/x402-lnbtc/types.d.ts.map +1 -0
  35. package/sdk/dist/node/vendor/x402-lnbtc/types.js +2 -0
  36. package/sdk/dist/node/vendor/x402-lnbtc/types.js.map +1 -0
  37. package/sdk/dist/node/vendor/x402-lnbtc/validation.d.ts +94 -0
  38. package/sdk/dist/node/vendor/x402-lnbtc/validation.d.ts.map +1 -0
  39. package/sdk/dist/node/vendor/x402-lnbtc/validation.js +165 -0
  40. package/sdk/dist/node/vendor/x402-lnbtc/validation.js.map +1 -0
@@ -2634,8 +2634,14 @@ usage(projectId): Promise<AiUsageResult>
2634
2634
  generateImage(opts: { prompt, aspect?, orgId? }): Promise<GenerateImageResult> // $0.03 via x402 / MPP, no projectId
2635
2635
  ```
2636
2636
 
2637
- `orgId` is the paying organization and is read only on the MPP Lightning
2638
- rail: a principal that belongs to several organizations is refused
2637
+ On the `lightning` rail, `generateImage` pays the x402 `exact` scheme on
2638
+ Bitcoin Lightning when the gateway offers it (an `lnbtc:` entry in the 402,
2639
+ its invoice bound to this exact request), and MPP Lightning otherwise; the
2640
+ result's `payment` reports the `lnbtc:` network and the payment hash as
2641
+ `transaction`. A Lightning invoice bound to a different request is refused
2642
+ before paying (`LIGHTNING_REQUEST_BINDING_MISMATCH`).
2643
+
2644
+ `orgId` is the paying organization and is read only by MPP Lightning: a principal that belongs to several organizations is refused
2639
2645
  `ORGANIZATION_SELECTION_REQUIRED` (HTTP 400, `details.org_ids` lists
2640
2646
  the candidates) unless the body names one; x402 and Tempo ignore it. When
2641
2647
  `orgId` is omitted and the gateway answers that code, `generateImage` retries
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run402-mcp",
3
- "version": "4.113.0",
3
+ "version": "4.114.1",
4
4
  "packageManager": "npm@11.19.0",
5
5
  "mcpName": "com.run402/mcp",
6
6
  "description": "MCP server for Run402 — full-stack backend infrastructure for AI agents: Postgres, auth, storage, serverless functions and atomic deploys. Paid with x402/MPP. Includes $0.03 image generation.",
@@ -25,7 +25,7 @@
25
25
  ],
26
26
  "scripts": {
27
27
  "build:core": "rm -rf core/dist && tsc -p core/tsconfig.json",
28
- "build:sdk": "rm -rf sdk/dist sdk/core-dist && mkdir -p sdk/core-dist && cp core/dist/*.js sdk/core-dist/ && cp core/dist/*.d.ts sdk/core-dist/ && tsc -p sdk/tsconfig.json",
28
+ "build:sdk": "rm -rf sdk/dist sdk/core-dist && mkdir -p sdk/core-dist && cp core/dist/*.js sdk/core-dist/ && cp core/dist/*.d.ts sdk/core-dist/ && tsc -p sdk/tsconfig.json && cp sdk/src/node/vendor/x402-lnbtc/LICENSE sdk/src/node/vendor/x402-lnbtc/VENDORED.md sdk/dist/node/vendor/x402-lnbtc/",
29
29
  "build": "rm -rf dist cli/core-dist cli/sdk/dist cli/sdk/core-dist && npm run build:core && npm run build:sdk && tsc && mkdir -p cli/core-dist cli/sdk/dist cli/sdk/core-dist && cp core/dist/*.js cli/core-dist/ && cp -R sdk/dist/. cli/sdk/dist/ && cp sdk/core-dist/*.js cli/sdk/core-dist/ && mkdir -p dist/docs && cp sdk/llms-sdk.txt docs-site/src/content/docs/mcp/run.md dist/docs/",
30
30
  "lint": "eslint",
31
31
  "start": "node dist/index.js",
@@ -78,9 +78,9 @@
78
78
  "@noble/curves": "^2.0.1",
79
79
  "@noble/hashes": "^2.0.1",
80
80
  "@scure/base": "1.2.6",
81
- "@x402/evm": "2.26.0",
82
- "@x402/extensions": "2.26.0",
83
- "@x402/fetch": "2.26.0",
81
+ "@x402/evm": "2.28.0",
82
+ "@x402/extensions": "2.28.0",
83
+ "@x402/fetch": "2.28.0",
84
84
  "acorn": "8.18.0",
85
85
  "ipaddr.js": "1.9.1",
86
86
  "json-canonicalize": "2.0.0",
@@ -41,6 +41,8 @@ export interface LightningFetchOptions {
41
41
  onPaid?: (paymentHash: string) => void;
42
42
  /** The wait between post-settlement retries; tests pass an instant one. */
43
43
  sleep?: (ms: number) => Promise<void>;
44
+ /** Unix seconds for x402 Lightning invoice checks; tests pin it. */
45
+ clock?: () => number;
44
46
  }
45
47
  export declare class LightningPaymentError extends Error {
46
48
  readonly code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"lightning-paid-fetch.d.ts","sourceRoot":"","sources":["../../src/node/lightning-paid-fetch.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG3E,KAAK,OAAO,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAEvC,eAAO,MAAM,4BAA4B,kDAAkD,CAAC;AAI5F,gHAAgH;AAChH,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAehD,4GAA4G;AAC5G,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAK7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA2BlH;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAChF,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACvG;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,gFAAgF;IAChF,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,IAAI,EAAE,MAAM;aAAmC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAA/E,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAkB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAIjH;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAkB3G;AAyBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAS1G;AAUD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAuF5E"}
1
+ {"version":3,"file":"lightning-paid-fetch.d.ts","sourceRoot":"","sources":["../../src/node/lightning-paid-fetch.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAS3E,KAAK,OAAO,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAEvC,eAAO,MAAM,4BAA4B,kDAAkD,CAAC;AAI5F,gHAAgH;AAChH,eAAO,MAAM,wBAAwB,SAAU,CAAC;AAehD,4GAA4G;AAC5G,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAK7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA2BlH;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IAChF,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACvG;AAED,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,gFAAgF;IAChF,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;aAClB,IAAI,EAAE,MAAM;aAAmC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;gBAA/E,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAkB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;CAIjH;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,GAAG,kBAAkB,GAAG,IAAI,CAkB3G;AAyBD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAS1G;AA0BD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAuG5E"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * The Lightning rail's buyer: a `fetch` that selects Run402's MPP Lightning
3
- * safety profile on every request, pays the one fixed BOLT11 challenge a 402
2
+ * The Lightning rail's buyer. Where the seller offers the x402 `exact` scheme
3
+ * on Lightning (`lightning-x402-lnbtc.ts`) it pays that; otherwise it is a
4
+ * `fetch` that selects Run402's MPP Lightning safety profile on every request, pays the one fixed BOLT11 challenge a 402
4
5
  * carries from the agent's own wallet (the budgeted sub-wallet on Run402's
5
6
  * Hub, over NWC), presents the preimage as the credential on a byte-identical
6
7
  * retry, and falls back to the x402 buyer when the seller offers no Lightning
@@ -20,6 +21,7 @@
20
21
  */
21
22
  import { createHash } from "node:crypto";
22
23
  import { loadLightningStack } from "./_paid-stack.js";
24
+ import { explicitRequestHeaders, isX402LightningCandidate, payX402Lightning, readX402LightningOffer, } from "./lightning-x402-lnbtc.js";
23
25
  import { NwcError, NwcWallet } from "./nwc.js";
24
26
  export const RUN402_MPP_LIGHTNING_PROFILE = "run402-mpp-lightning-charge-draft00-safety-v1";
25
27
  const ACCEPT_PAYMENT = `lightning/charge;profile=${RUN402_MPP_LIGHTNING_PROFILE}, tempo/charge;q=0.5`;
@@ -166,6 +168,21 @@ function defaultIdempotencyKey(input, init) {
166
168
  const digest = createHash("sha256").update(`${method}\n${url}\n${body}`).digest("hex");
167
169
  return `lnc_${digest.slice(0, 32)}`;
168
170
  }
171
+ /**
172
+ * The all-in debit cap, shared by both Lightning protocols: the charge plus
173
+ * routing-fee headroom must fit the rail's ceiling and the wallet's remaining
174
+ * budget. Throws before anything is paid.
175
+ */
176
+ async function checkLightningCaps(wallet, amountSats) {
177
+ const allIn = amountSats + FEE_HEADROOM_SATS;
178
+ if (allIn > LIGHTNING_MAX_DEBIT_SATS) {
179
+ throw new LightningPaymentError("LIGHTNING_DEBIT_ABOVE_CAP", `A Lightning charge of ${amountSats} sats exceeds the ${LIGHTNING_MAX_DEBIT_SATS}-sat ceiling.`, { amount_sats: amountSats, cap_sats: LIGHTNING_MAX_DEBIT_SATS, next_action: "pay over x402 (run402 init --switch-rail)" });
180
+ }
181
+ const budget = await wallet.getBudgetSats().catch(() => null);
182
+ if (budget && budget.totalSats !== null && budget.totalSats - budget.usedSats < allIn) {
183
+ throw new LightningPaymentError("LIGHTNING_BUDGET_EXHAUSTED", `The Lightning wallet's remaining budget (${budget.totalSats - budget.usedSats} sats) cannot cover ${allIn} sats.`, { remaining_sats: budget.totalSats - budget.usedSats, required_sats: allIn, next_action: "pay over x402 (run402 init --switch-rail), or ask the platform for a new wallet" });
184
+ }
185
+ }
169
186
  export function createLightningFetch(options) {
170
187
  const baseFetch = options.baseFetch ?? ((input, init) => globalThis.fetch(input, init));
171
188
  const wallet = options.wallet ?? new NwcWallet(options.pairingUri);
@@ -183,6 +200,30 @@ export function createLightningFetch(options) {
183
200
  const other = (await fallback()) ?? baseFetch;
184
201
  return other(input, init);
185
202
  }
203
+ // x402 `exact` on Lightning first where the seller offers it: a request
204
+ // without the MPP profile reaches the seller's x402 paywall, whose 402
205
+ // names an `lnbtc` entry while its Hub can issue. No entry (the Hub is
206
+ // paused, or this surface has none) falls through to MPP Lightning.
207
+ if (isX402LightningCandidate(input, init)) {
208
+ const probe = await baseFetch(input, { ...init, headers: explicitRequestHeaders(init) });
209
+ if (probe.status !== 402)
210
+ return probe;
211
+ const offer = readX402LightningOffer(probe);
212
+ await probe.body?.cancel().catch(() => undefined);
213
+ if (offer) {
214
+ return payX402Lightning({
215
+ input,
216
+ init,
217
+ offer,
218
+ wallet,
219
+ baseFetch,
220
+ fail: (code, message, details) => new LightningPaymentError(code, message, details),
221
+ checkCaps: (amountSats) => checkLightningCaps(wallet, amountSats),
222
+ onPaid: options.onPaid,
223
+ ...(options.clock ? { clock: options.clock } : {}),
224
+ });
225
+ }
226
+ }
186
227
  // Deterministic over the request bytes: a retry of the identical call
187
228
  // (after a crash, a timeout, or a gateway hiccup between payment and
188
229
  // fulfilment) lands on the same payment intent and is fulfilled without
@@ -204,14 +245,7 @@ export function createLightningFetch(options) {
204
245
  return x402(input, init);
205
246
  }
206
247
  await first.body?.cancel().catch(() => undefined);
207
- const allIn = challenge.amountSats + FEE_HEADROOM_SATS;
208
- if (allIn > LIGHTNING_MAX_DEBIT_SATS) {
209
- throw new LightningPaymentError("LIGHTNING_DEBIT_ABOVE_CAP", `A Lightning charge of ${challenge.amountSats} sats exceeds the ${LIGHTNING_MAX_DEBIT_SATS}-sat ceiling.`, { amount_sats: challenge.amountSats, cap_sats: LIGHTNING_MAX_DEBIT_SATS, next_action: "pay over x402 (run402 init --switch-rail)" });
210
- }
211
- const budget = await wallet.getBudgetSats().catch(() => null);
212
- if (budget && budget.totalSats !== null && budget.totalSats - budget.usedSats < allIn) {
213
- throw new LightningPaymentError("LIGHTNING_BUDGET_EXHAUSTED", `The Lightning wallet's remaining budget (${budget.totalSats - budget.usedSats} sats) cannot cover ${allIn} sats.`, { remaining_sats: budget.totalSats - budget.usedSats, required_sats: allIn, next_action: "pay over x402 (run402 init --switch-rail), or ask the platform for a new wallet" });
214
- }
248
+ await checkLightningCaps(wallet, challenge.amountSats);
215
249
  let preimage;
216
250
  try {
217
251
  preimage = (await wallet.payInvoice(challenge.invoice)).preimage;
@@ -1 +1 @@
1
- {"version":3,"file":"lightning-paid-fetch.js","sourceRoot":"","sources":["../../src/node/lightning-paid-fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lightning-paid-fetch.js","sourceRoot":"","sources":["../../src/node/lightning-paid-fetch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ type FetchFn = typeof globalThis.fetch;
2
+ export interface X402LnbtcRequirements {
3
+ scheme: string;
4
+ network: string;
5
+ amount: string;
6
+ asset: string;
7
+ payTo: string;
8
+ maxTimeoutSeconds: number;
9
+ extra: Record<string, unknown>;
10
+ }
11
+ export interface X402LnbtcOffer {
12
+ paymentRequired: {
13
+ x402Version: number;
14
+ resource?: {
15
+ url?: string;
16
+ description?: string;
17
+ mimeType?: string;
18
+ };
19
+ accepts: X402LnbtcRequirements[];
20
+ };
21
+ requirements: X402LnbtcRequirements;
22
+ }
23
+ /** The thrown error type, shared with the MPP Lightning buyer. */
24
+ export interface X402LnbtcErrorFactory {
25
+ (code: string, message: string, details?: Record<string, unknown>): Error;
26
+ }
27
+ export interface X402LnbtcWallet {
28
+ payInvoice(bolt11: string): Promise<{
29
+ preimage: string;
30
+ }>;
31
+ lookupInvoice(paymentHash: string): Promise<{
32
+ state: string | null;
33
+ preimage: string | null;
34
+ } | null>;
35
+ }
36
+ /** A POST to a Run402 surface that offers x402 on Lightning. */
37
+ export declare function isX402LightningCandidate(input: RequestInfo | URL, init: RequestInit | undefined): boolean;
38
+ /** The x402 v2 challenge's `exact` entry on an `lnbtc:` network with an invoice, or null. */
39
+ export declare function readX402LightningOffer(response: Response): X402LnbtcOffer | null;
40
+ /**
41
+ * The request headers made explicit: a string body without a content type is
42
+ * sent by fetch as `text/plain;charset=UTF-8`, and the request hash must bind
43
+ * the value actually sent, so it is set here rather than left to fetch.
44
+ */
45
+ export declare function explicitRequestHeaders(init: RequestInit | undefined): Headers;
46
+ export interface PayX402LightningOptions {
47
+ input: RequestInfo | URL;
48
+ init: RequestInit | undefined;
49
+ offer: X402LnbtcOffer;
50
+ wallet: X402LnbtcWallet;
51
+ baseFetch: FetchFn;
52
+ fail: X402LnbtcErrorFactory;
53
+ /** Checks the all-in cost (sats) against the rail's ceiling and the wallet's budget; throws to refuse. */
54
+ checkCaps: (amountSats: number) => Promise<void>;
55
+ onPaid?: (paymentHash: string) => void;
56
+ /** Unix seconds; the invoice checks' clock. Tests pin it; production uses the system clock. */
57
+ clock?: () => number;
58
+ }
59
+ /** Pay the offer and send the paid retry. */
60
+ export declare function payX402Lightning(options: PayX402LightningOptions): Promise<Response>;
61
+ export {};
62
+ //# sourceMappingURL=lightning-x402-lnbtc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightning-x402-lnbtc.d.ts","sourceRoot":"","sources":["../../src/node/lightning-x402-lnbtc.ts"],"names":[],"mappings":"AAsBA,KAAK,OAAO,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAQvC,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACrE,OAAO,EAAE,qBAAqB,EAAE,CAAC;KAClC,CAAC;IACF,YAAY,EAAE,qBAAqB,CAAC;CACrC;AAED,kEAAkE;AAClE,MAAM,WAAW,qBAAqB;IACpC,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;CAC3E;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;CACvG;AAMD,gEAAgE;AAChE,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAQzG;AAED,6FAA6F;AAC7F,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,GAAG,IAAI,CAkBhF;AAWD;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,CAM7E;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC;IACzB,IAAI,EAAE,WAAW,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,cAAc,CAAC;IACtB,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,qBAAqB,CAAC;IAC5B,0GAA0G;IAC1G,SAAS,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,+FAA+F;IAC/F,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CACtB;AAED,6CAA6C;AAC7C,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuF1F"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * The Lightning rail's x402 buyer: pays the x402 Foundation's `exact` scheme on
3
+ * Bitcoin Lightning (`lnbtc`) from the agent's own Lightning wallet.
4
+ *
5
+ * The seller's 402 carries an `accepts[]` entry on an `lnbtc:` network whose
6
+ * `extra.invoice` is a BOLT11 invoice committing (by description hash) to the
7
+ * exact request. The vendored client scheme recomputes that request hash from
8
+ * the request this buyer is about to send, refuses to pay anything bound to
9
+ * another request or signed by another key, pays, and checks the preimage.
10
+ * The paid retry is the same request plus `PAYMENT-SIGNATURE`.
11
+ *
12
+ * Run402 offers it on `POST /generate-image/v1` (spec `x402-lightning-exact`);
13
+ * the Lightning fetch prefers it there over MPP Lightning. The preimage and the
14
+ * pairing secret never reach a log or an error.
15
+ */
16
+ import { decodeInvoice } from "./vendor/x402-lnbtc/bolt11.js";
17
+ import { httpRequestBinding } from "./vendor/x402-lnbtc/binding.js";
18
+ import { LnbtcError } from "./vendor/x402-lnbtc/constants.js";
19
+ import { ExactLnbtcScheme } from "./vendor/x402-lnbtc/exact/client/scheme.js";
20
+ import { NwcError } from "./nwc.js";
21
+ /** Run402 surfaces that offer x402 `exact` on `lnbtc`. */
22
+ const X402_LNBTC_PATHS = [/^\/generate-image\/v1$/];
23
+ /** The fetch default for a string body without an explicit content type. */
24
+ const STRING_BODY_CONTENT_TYPE = "text/plain;charset=UTF-8";
25
+ function requestUrl(input) {
26
+ return typeof input === "string" ? input : input instanceof URL ? input.toString() : input.url;
27
+ }
28
+ /** A POST to a Run402 surface that offers x402 on Lightning. */
29
+ export function isX402LightningCandidate(input, init) {
30
+ const method = (init?.method ?? (typeof input === "object" && "method" in input ? input.method : "GET")).toUpperCase();
31
+ if (method !== "POST")
32
+ return false;
33
+ try {
34
+ return X402_LNBTC_PATHS.some((pattern) => pattern.test(new URL(requestUrl(input)).pathname));
35
+ }
36
+ catch {
37
+ return false;
38
+ }
39
+ }
40
+ /** The x402 v2 challenge's `exact` entry on an `lnbtc:` network with an invoice, or null. */
41
+ export function readX402LightningOffer(response) {
42
+ if (response.status !== 402)
43
+ return null;
44
+ const header = response.headers.get("payment-required");
45
+ if (!header)
46
+ return null;
47
+ let decoded;
48
+ try {
49
+ decoded = JSON.parse(Buffer.from(header, "base64").toString("utf8"));
50
+ }
51
+ catch {
52
+ return null;
53
+ }
54
+ const paymentRequired = decoded;
55
+ if (!paymentRequired || paymentRequired.x402Version !== 2 || !Array.isArray(paymentRequired.accepts))
56
+ return null;
57
+ const requirements = paymentRequired.accepts.find((entry) => entry?.scheme === "exact" &&
58
+ typeof entry.network === "string" && entry.network.startsWith("lnbtc:") &&
59
+ typeof entry.extra?.invoice === "string" && entry.extra.invoice.length > 0);
60
+ return requirements ? { paymentRequired, requirements } : null;
61
+ }
62
+ /** The body bytes exactly as fetch will send them, or null when they cannot be known up front. */
63
+ function bodyBytes(body) {
64
+ if (body === undefined || body === null)
65
+ return new Uint8Array(0);
66
+ if (typeof body === "string")
67
+ return new TextEncoder().encode(body);
68
+ if (body instanceof Uint8Array)
69
+ return body;
70
+ if (body instanceof ArrayBuffer)
71
+ return new Uint8Array(body);
72
+ return null;
73
+ }
74
+ /**
75
+ * The request headers made explicit: a string body without a content type is
76
+ * sent by fetch as `text/plain;charset=UTF-8`, and the request hash must bind
77
+ * the value actually sent, so it is set here rather than left to fetch.
78
+ */
79
+ export function explicitRequestHeaders(init) {
80
+ const headers = new Headers(init?.headers ?? {});
81
+ if (typeof init?.body === "string" && !headers.has("content-type")) {
82
+ headers.set("content-type", STRING_BODY_CONTENT_TYPE);
83
+ }
84
+ return headers;
85
+ }
86
+ /** Pay the offer and send the paid retry. */
87
+ export async function payX402Lightning(options) {
88
+ const { input, init, offer, wallet, fail } = options;
89
+ const url = requestUrl(input);
90
+ const method = (init?.method ?? "POST").toUpperCase();
91
+ const bytes = bodyBytes(init?.body);
92
+ if (!bytes) {
93
+ throw fail("LIGHTNING_BODY_NOT_REPLAYABLE", "An x402 Lightning payment binds the exact body bytes; a streamed body cannot be paid for.");
94
+ }
95
+ const headers = explicitRequestHeaders(init);
96
+ const params = offer.requirements.extra.requestBindingParams;
97
+ const boundHeaders = Array.isArray(params?.headers) ? params.headers.filter((name) => typeof name === "string") : [];
98
+ const amountMsat = BigInt(offer.requirements.amount);
99
+ await options.checkCaps(Number((amountMsat + 999n) / 1000n));
100
+ const payer = {
101
+ payInvoice: async (invoice) => {
102
+ const decoded = decodeInvoice(invoice);
103
+ let preimage;
104
+ try {
105
+ preimage = (await wallet.payInvoice(invoice)).preimage;
106
+ }
107
+ catch (error) {
108
+ // Unknown outcome: resolve by hash before ever paying again.
109
+ if (error instanceof NwcError && (error.code === "TIMEOUT" || error.code === "RELAY_CLOSED" || error.code === "RELAY_UNREACHABLE")) {
110
+ const looked = await wallet.lookupInvoice(decoded.paymentHash).catch(() => null);
111
+ if (!looked?.preimage) {
112
+ throw fail("LIGHTNING_PAYMENT_OUTCOME_UNKNOWN", "The Lightning payment's outcome is unknown; check the wallet before paying again.", { payment_hash: decoded.paymentHash });
113
+ }
114
+ preimage = looked.preimage;
115
+ }
116
+ else if (error instanceof NwcError) {
117
+ throw fail(`LIGHTNING_${error.code}`, `The Lightning wallet refused the payment (${error.code}).`, { payment_hash: decoded.paymentHash, next_action: "pay over x402 (run402 init --switch-rail)" });
118
+ }
119
+ else {
120
+ throw error;
121
+ }
122
+ }
123
+ return { invoice, paymentHash: decoded.paymentHash, amountMsat: decoded.amountMsat, status: "paid", preimage };
124
+ },
125
+ };
126
+ const scheme = new ExactLnbtcScheme({
127
+ payer,
128
+ ...(options.clock ? { clock: options.clock } : {}),
129
+ requestBinding: () => httpRequestBinding({
130
+ method,
131
+ url,
132
+ body: bytes,
133
+ boundHeaders,
134
+ getHeader: (name) => (headers.has(name) ? [headers.get(name)] : undefined),
135
+ }),
136
+ });
137
+ let payload;
138
+ try {
139
+ const abort = await scheme.schemeHooks.onBeforePaymentCreation?.({
140
+ paymentRequired: offer.paymentRequired,
141
+ selectedRequirements: offer.requirements,
142
+ });
143
+ if (abort && "abort" in abort && abort.abort) {
144
+ throw new LnbtcError(abort.reason);
145
+ }
146
+ const result = await scheme.createPaymentPayload(2, offer.requirements);
147
+ payload = result.payload;
148
+ }
149
+ catch (error) {
150
+ if (error instanceof LnbtcError) {
151
+ const mismatch = error.reason === "invalid_exact_lnbtc_request_mismatch" ||
152
+ error.reason === "invalid_exact_lnbtc_invoice_request_mismatch";
153
+ throw fail(mismatch ? "LIGHTNING_REQUEST_BINDING_MISMATCH" : "LIGHTNING_X402_INVOICE_REFUSED", mismatch
154
+ ? "The seller's Lightning invoice is bound to a different request than the one being sent; nothing was paid."
155
+ : `The seller's x402 Lightning offer failed validation (${error.reason}); nothing was paid.`, { reason: error.reason });
156
+ }
157
+ throw error;
158
+ }
159
+ const paymentHash = decodeInvoice(String(offer.requirements.extra.invoice)).paymentHash;
160
+ options.onPaid?.(paymentHash);
161
+ const signature = Buffer.from(JSON.stringify({
162
+ x402Version: 2,
163
+ resource: offer.paymentRequired.resource,
164
+ accepted: offer.requirements,
165
+ payload,
166
+ })).toString("base64");
167
+ headers.set("payment-signature", signature);
168
+ return options.baseFetch(input, { ...init, headers });
169
+ }
170
+ //# sourceMappingURL=lightning-x402-lnbtc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lightning-x402-lnbtc.js","sourceRoot":"","sources":["../../src/node/lightning-x402-lnbtc.ts"],"names":[],"mappings":"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"}