402-mcp 4.2.2 → 4.3.0
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 +44 -15
- package/build/config.d.ts +6 -0
- package/build/config.js +41 -10
- package/build/config.js.map +1 -1
- package/build/fetch/resilient-fetch.js +15 -4
- package/build/fetch/resilient-fetch.js.map +1 -1
- package/build/fetch/transport.d.ts +1 -0
- package/build/fetch/transport.js +37 -14
- package/build/fetch/transport.js.map +1 -1
- package/build/http-security.d.ts +13 -0
- package/build/http-security.js +38 -0
- package/build/http-security.js.map +1 -0
- package/build/index.js +184 -119
- package/build/index.js.map +1 -1
- package/build/spend-tracker.d.ts +31 -4
- package/build/spend-tracker.js +102 -17
- package/build/spend-tracker.js.map +1 -1
- package/build/store/cashu-tokens.d.ts +19 -0
- package/build/store/cashu-tokens.js +32 -0
- package/build/store/cashu-tokens.js.map +1 -1
- package/build/store/credentials.d.ts +5 -0
- package/build/store/credentials.js +1 -0
- package/build/store/credentials.js.map +1 -1
- package/build/store/pending-payments.d.ts +36 -0
- package/build/store/pending-payments.js +88 -0
- package/build/store/pending-payments.js.map +1 -0
- package/build/tools/buy-credits.d.ts +9 -0
- package/build/tools/buy-credits.js +40 -3
- package/build/tools/buy-credits.js.map +1 -1
- package/build/tools/config.d.ts +5 -0
- package/build/tools/config.js.map +1 -1
- package/build/tools/confirm.d.ts +12 -0
- package/build/tools/confirm.js +27 -0
- package/build/tools/confirm.js.map +1 -0
- package/build/tools/fetch.d.ts +7 -1
- package/build/tools/fetch.js +255 -140
- package/build/tools/fetch.js.map +1 -1
- package/build/tools/nostr-subscribe.js.map +1 -1
- package/build/tools/pay.d.ts +9 -0
- package/build/tools/pay.js +65 -8
- package/build/tools/pay.js.map +1 -1
- package/build/tools/reconcile.d.ts +33 -0
- package/build/tools/reconcile.js +111 -0
- package/build/tools/reconcile.js.map +1 -0
- package/build/tools/redeem-cashu.js +1 -1
- package/build/tools/redeem-cashu.js.map +1 -1
- package/build/tools/register-widgets.js +5 -5
- package/build/tools/register-widgets.js.map +1 -1
- package/build/tools/search.js +17 -3
- package/build/tools/search.js.map +1 -1
- package/build/tools/untrusted.d.ts +3 -0
- package/build/tools/untrusted.js +18 -0
- package/build/tools/untrusted.js.map +1 -0
- package/build/wallet/cashu.js +101 -21
- package/build/wallet/cashu.js.map +1 -1
- package/build/wallet/lnurlcash.js +25 -7
- package/build/wallet/lnurlcash.js.map +1 -1
- package/build/wallet/nwc.js +51 -3
- package/build/wallet/nwc.js.map +1 -1
- package/build/wallet/types.d.ts +17 -0
- package/build/x402/parse.d.ts +15 -3
- package/build/x402/parse.js +23 -9
- package/build/x402/parse.js.map +1 -1
- package/build/x402/payment.js +11 -6
- package/build/x402/payment.js.map +1 -1
- package/llms-full.txt +71 -33
- package/llms.txt +48 -21
- package/package.json +3 -3
- package/src/widgets/dist/service-directory.html +11 -2
package/build/tools/fetch.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { safeErrorMessage } from './safe-error.js';
|
|
3
3
|
import { filterResponseHeaders } from './safe-headers.js';
|
|
4
|
+
import { untrusted } from './untrusted.js';
|
|
4
5
|
const HEX_RE = /^[0-9a-fA-F]+$/;
|
|
5
6
|
const MACAROON_RE = /^[A-Za-z0-9+/_\-=]+$/;
|
|
6
7
|
/** Headers that must not be set by the caller (hop-by-hop). */
|
|
@@ -8,23 +9,112 @@ const BLOCKED_HEADERS = new Set([
|
|
|
8
9
|
'host', 'transfer-encoding', 'connection', 'upgrade',
|
|
9
10
|
'proxy-authorization', 'te', 'trailer',
|
|
10
11
|
]);
|
|
12
|
+
const RECONCILE_HINT = 'Call l402-reconcile with this paymentHash before paying this service again.';
|
|
11
13
|
function parseBalance(value) {
|
|
12
14
|
if (value === null)
|
|
13
15
|
return null;
|
|
14
16
|
const parsed = parseInt(value, 10);
|
|
15
17
|
return Number.isFinite(parsed) && parsed >= 0 ? parsed : null;
|
|
16
18
|
}
|
|
19
|
+
/** A payment that may have executed. Always an error, so the agent does not pay again. */
|
|
20
|
+
function paymentUnknown(result, costSats, paymentHash, protocol) {
|
|
21
|
+
return {
|
|
22
|
+
content: [{
|
|
23
|
+
type: 'text',
|
|
24
|
+
text: JSON.stringify({
|
|
25
|
+
status: 402,
|
|
26
|
+
protocol,
|
|
27
|
+
paymentState: 'unknown',
|
|
28
|
+
costSats,
|
|
29
|
+
paymentHash,
|
|
30
|
+
method: result.method,
|
|
31
|
+
message: result.outcome === 'unknown'
|
|
32
|
+
? (result.reason ?? `Payment may have executed. ${RECONCILE_HINT}`)
|
|
33
|
+
: `The wallet reported payment without a settlement preimage. ${RECONCILE_HINT}`,
|
|
34
|
+
}, null, 2),
|
|
35
|
+
}],
|
|
36
|
+
isError: true,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/** A payment that definitely did not execute. */
|
|
40
|
+
function paymentFailed(result, costSats, paymentHash, protocol) {
|
|
41
|
+
return {
|
|
42
|
+
content: [{
|
|
43
|
+
type: 'text',
|
|
44
|
+
text: JSON.stringify({
|
|
45
|
+
status: 402,
|
|
46
|
+
protocol,
|
|
47
|
+
paymentState: 'failed',
|
|
48
|
+
costSats,
|
|
49
|
+
paymentHash,
|
|
50
|
+
method: result.method,
|
|
51
|
+
message: `Payment failed and no money moved${result.reason ? `: ${result.reason}` : '.'}`,
|
|
52
|
+
}, null, 2),
|
|
53
|
+
}],
|
|
54
|
+
isError: true,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Whether a stored credential may be sent to every one of `origins`. One
|
|
59
|
+
* stored before origins were recorded is bound only to the origin it is keyed
|
|
60
|
+
* by, if it is keyed by one.
|
|
61
|
+
*/
|
|
62
|
+
function isBoundTo(cred, key, origins) {
|
|
63
|
+
const bound = cred.origins ?? (isOrigin(key) ? [key] : []);
|
|
64
|
+
return origins.every(o => bound.includes(o));
|
|
65
|
+
}
|
|
66
|
+
function isOrigin(value) {
|
|
67
|
+
try {
|
|
68
|
+
return new URL(value).origin === value;
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
17
74
|
/** Makes an HTTP request with automatic L402/x402 payment and credential reuse. Pays the invoice if within budget, stores the credential, and retries. */
|
|
18
75
|
export async function handleFetch(args, deps) {
|
|
19
76
|
// When multiple URLs are provided (from l402-search results), use transport fallback.
|
|
20
77
|
// The first URL in `urls` is also the primary URL for identity, origin, and payment.
|
|
21
78
|
const primaryUrl = args.urls?.length ? args.urls[0] : args.url;
|
|
22
79
|
const origin = new URL(primaryUrl).origin;
|
|
80
|
+
// Every origin this request may reach. A payment made here is recorded
|
|
81
|
+
// against all of them, and an unresolved one for any of them blocks auto-pay.
|
|
82
|
+
const candidateOrigins = [...new Set((args.urls?.length ? args.urls : [args.url]).map(u => new URL(u).origin))];
|
|
83
|
+
const recordUnknown = (entry) => {
|
|
84
|
+
deps.pendingPayments.add({
|
|
85
|
+
...entry,
|
|
86
|
+
paymentHash: entry.paymentHash.toLowerCase(),
|
|
87
|
+
origins: candidateOrigins,
|
|
88
|
+
...(args.pubkey ? { pubkey: args.pubkey } : {}),
|
|
89
|
+
createdAt: new Date().toISOString(),
|
|
90
|
+
});
|
|
91
|
+
};
|
|
23
92
|
// When a pubkey is provided (from search results) use it as the credential key so
|
|
24
93
|
// credentials are shared across all transport URLs for the same service.
|
|
25
94
|
// For direct URL calls without a pubkey, fall back to origin-based keying.
|
|
26
|
-
|
|
27
|
-
|
|
95
|
+
//
|
|
96
|
+
// The pubkey is only the agent's claim, so a credential is sent only to the
|
|
97
|
+
// origins it was bought from: `url=https://evil pubkey=<X>` must not hand
|
|
98
|
+
// X's credential to evil. A credential that is not bound to every origin
|
|
99
|
+
// this request may reach is left alone, and anything bought here is kept
|
|
100
|
+
// under the origin instead so it cannot overwrite X's.
|
|
101
|
+
let credKey = args.pubkey ?? origin;
|
|
102
|
+
let cred = deps.credentialStore.get(credKey);
|
|
103
|
+
if (cred && !isBoundTo(cred, credKey, candidateOrigins)) {
|
|
104
|
+
cred = undefined;
|
|
105
|
+
if (args.pubkey) {
|
|
106
|
+
credKey = origin;
|
|
107
|
+
cred = deps.credentialStore.get(credKey);
|
|
108
|
+
if (cred && !isBoundTo(cred, credKey, candidateOrigins))
|
|
109
|
+
cred = undefined;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// The most this call may auto-pay. maxCostSats lets an agent hold the server
|
|
113
|
+
// to the price it showed in a preview; it can only lower the configured cap.
|
|
114
|
+
const autoPayCap = args.maxCostSats !== undefined ? Math.min(args.maxCostSats, deps.maxAutoPaySats) : deps.maxAutoPaySats;
|
|
115
|
+
const capLabel = args.maxCostSats !== undefined && args.maxCostSats < deps.maxAutoPaySats
|
|
116
|
+
? `maxCostSats (${args.maxCostSats})`
|
|
117
|
+
: `MAX_AUTO_PAY_SATS (${deps.maxAutoPaySats})`;
|
|
28
118
|
const reqHeaders = {};
|
|
29
119
|
// Copy user headers, stripping dangerous hop-by-hop/security-sensitive ones
|
|
30
120
|
if (args.headers) {
|
|
@@ -72,13 +162,32 @@ export async function handleFetch(args, deps) {
|
|
|
72
162
|
text: JSON.stringify({
|
|
73
163
|
status: response.status,
|
|
74
164
|
headers: filterResponseHeaders(response.headers),
|
|
75
|
-
body,
|
|
165
|
+
body: untrusted(body, origin),
|
|
76
166
|
creditsRemaining: balance,
|
|
77
167
|
satsPaid: 0,
|
|
78
168
|
}, null, 2),
|
|
79
169
|
}],
|
|
80
170
|
};
|
|
81
171
|
}
|
|
172
|
+
// An earlier payment to this service may have gone through. Paying again
|
|
173
|
+
// before that is settled could buy the same thing twice.
|
|
174
|
+
if (args.autoPay) {
|
|
175
|
+
const unresolved = deps.pendingPayments.unresolvedFor(candidateOrigins, args.pubkey);
|
|
176
|
+
if (unresolved.length > 0) {
|
|
177
|
+
return {
|
|
178
|
+
content: [{
|
|
179
|
+
type: 'text',
|
|
180
|
+
text: JSON.stringify({
|
|
181
|
+
status: 402,
|
|
182
|
+
paymentState: 'blocked',
|
|
183
|
+
unresolvedPayments: unresolved.map(p => p.paymentHash),
|
|
184
|
+
message: `Auto-pay to this service is paused: ${unresolved.length} earlier payment(s) to it have an unknown outcome. Call l402-reconcile with each paymentHash before paying again.`,
|
|
185
|
+
}, null, 2),
|
|
186
|
+
}],
|
|
187
|
+
isError: true,
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
}
|
|
82
191
|
// 402 response - parse the challenge body (shared by L402 and x402 paths)
|
|
83
192
|
let challengeBody = {};
|
|
84
193
|
try {
|
|
@@ -93,7 +202,7 @@ export async function handleFetch(args, deps) {
|
|
|
93
202
|
const lnurlcashChallenge = deps.parseLnurlcash(lnurlcashHeader);
|
|
94
203
|
if (lnurlcashChallenge) {
|
|
95
204
|
const lnurlcashAutoPay = args.autoPay ?? false;
|
|
96
|
-
if (lnurlcashAutoPay && lnurlcashChallenge.amount <=
|
|
205
|
+
if (lnurlcashAutoPay && lnurlcashChallenge.amount <= autoPayCap) {
|
|
97
206
|
const lnurlcashWithinLimit = deps.spendTracker.tryRecord(lnurlcashChallenge.amount, deps.maxSpendPerMinuteSats);
|
|
98
207
|
if (lnurlcashWithinLimit) {
|
|
99
208
|
const lnurlcashResult = await deps.payLnurlcash(lnurlcashChallenge);
|
|
@@ -117,7 +226,7 @@ export async function handleFetch(args, deps) {
|
|
|
117
226
|
text: JSON.stringify({
|
|
118
227
|
status: retryResponse.status,
|
|
119
228
|
headers: filterResponseHeaders(retryResponse.headers),
|
|
120
|
-
body: retryBody,
|
|
229
|
+
body: untrusted(retryBody, origin),
|
|
121
230
|
creditsRemaining: retryBalance,
|
|
122
231
|
satsPaid: lnurlcashResult.amountSats,
|
|
123
232
|
paymentMethod: 'lnurlcash',
|
|
@@ -138,7 +247,7 @@ export async function handleFetch(args, deps) {
|
|
|
138
247
|
const xcashuChallenge = deps.parseXCashu(xcashuHeader);
|
|
139
248
|
if (xcashuChallenge) {
|
|
140
249
|
const xcashuAutoPay = args.autoPay ?? false;
|
|
141
|
-
if (xcashuAutoPay && xcashuChallenge.amount <=
|
|
250
|
+
if (xcashuAutoPay && xcashuChallenge.amount <= autoPayCap) {
|
|
142
251
|
const xcashuWithinLimit = deps.spendTracker.tryRecord(xcashuChallenge.amount, deps.maxSpendPerMinuteSats);
|
|
143
252
|
if (xcashuWithinLimit) {
|
|
144
253
|
const xcashuResult = await deps.payXCashu(xcashuChallenge);
|
|
@@ -158,7 +267,7 @@ export async function handleFetch(args, deps) {
|
|
|
158
267
|
text: JSON.stringify({
|
|
159
268
|
status: retryResponse.status,
|
|
160
269
|
headers: filterResponseHeaders(retryResponse.headers),
|
|
161
|
-
body: retryBody,
|
|
270
|
+
body: untrusted(retryBody, origin),
|
|
162
271
|
creditsRemaining: retryBalance,
|
|
163
272
|
satsPaid: xcashuResult.amountSats,
|
|
164
273
|
paymentMethod: 'xcashu',
|
|
@@ -218,85 +327,79 @@ export async function handleFetch(args, deps) {
|
|
|
218
327
|
}
|
|
219
328
|
ietfChallenge.paymentHash = ietfInvoice.paymentHash ?? undefined;
|
|
220
329
|
const ietfAutoPay = args.autoPay ?? false;
|
|
221
|
-
if (ietfAutoPay && ietfChallenge.amountSats <=
|
|
330
|
+
if (ietfAutoPay && ietfChallenge.amountSats <= autoPayCap) {
|
|
222
331
|
const ietfWithinLimit = deps.spendTracker.tryRecord(ietfChallenge.amountSats, deps.maxSpendPerMinuteSats);
|
|
223
332
|
if (ietfWithinLimit) {
|
|
224
333
|
const ietfPayResult = await deps.payInvoice(ietfChallenge.invoice, { serverOrigin: origin });
|
|
334
|
+
// A payment attempt ends here whatever happens: falling through to
|
|
335
|
+
// the L402 rail after this would pay a second invoice.
|
|
225
336
|
if (!ietfPayResult.paid && ietfPayResult.outcome !== 'unknown') {
|
|
226
337
|
deps.spendTracker.unrecord(ietfChallenge.amountSats);
|
|
338
|
+
return paymentFailed(ietfPayResult, ietfChallenge.amountSats, ietfChallenge.paymentHash, 'ietf-payment');
|
|
227
339
|
}
|
|
228
|
-
if (ietfPayResult.outcome === 'unknown') {
|
|
340
|
+
if (ietfPayResult.outcome === 'unknown' || !ietfPayResult.preimage) {
|
|
341
|
+
if (ietfChallenge.paymentHash) {
|
|
342
|
+
recordUnknown({ paymentHash: ietfChallenge.paymentHash, invoice: ietfChallenge.invoice, costSats: ietfChallenge.amountSats, protocol: 'ietf-payment', method: ietfPayResult.method });
|
|
343
|
+
}
|
|
344
|
+
return paymentUnknown(ietfPayResult, ietfChallenge.amountSats, ietfChallenge.paymentHash, 'ietf-payment');
|
|
345
|
+
}
|
|
346
|
+
if (!HEX_RE.test(ietfPayResult.preimage) || ietfPayResult.preimage.length !== 64) {
|
|
347
|
+
if (ietfChallenge.paymentHash) {
|
|
348
|
+
recordUnknown({ paymentHash: ietfChallenge.paymentHash, invoice: ietfChallenge.invoice, costSats: ietfChallenge.amountSats, protocol: 'ietf-payment', method: ietfPayResult.method });
|
|
349
|
+
}
|
|
229
350
|
return {
|
|
230
|
-
content: [{
|
|
231
|
-
|
|
232
|
-
text: JSON.stringify({
|
|
233
|
-
status: 402,
|
|
234
|
-
protocol: 'ietf-payment',
|
|
351
|
+
content: [{ type: 'text', text: JSON.stringify({
|
|
352
|
+
error: 'Payment was reported but the settlement preimage contains invalid characters; refusing to send it',
|
|
235
353
|
paymentState: 'unknown',
|
|
236
|
-
costSats: ietfChallenge.amountSats,
|
|
237
354
|
paymentHash: ietfChallenge.paymentHash,
|
|
238
|
-
message:
|
|
239
|
-
}
|
|
240
|
-
}],
|
|
355
|
+
message: RECONCILE_HINT,
|
|
356
|
+
}) }],
|
|
241
357
|
isError: true,
|
|
242
358
|
};
|
|
243
359
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
return {
|
|
266
|
-
content: [{
|
|
267
|
-
type: 'text',
|
|
268
|
-
text: JSON.stringify({
|
|
269
|
-
status: retryResponse.status,
|
|
270
|
-
headers: filterResponseHeaders(retryResponse.headers),
|
|
271
|
-
body: retryBody,
|
|
272
|
-
satsPaid: ietfChallenge.amountSats,
|
|
273
|
-
paymentMethod: 'ietf-payment',
|
|
274
|
-
}, null, 2),
|
|
275
|
-
}],
|
|
276
|
-
};
|
|
277
|
-
}
|
|
360
|
+
const credential = deps.buildIETFCredential(ietfChallenge, ietfPayResult.preimage);
|
|
361
|
+
const retryHeaders = { ...reqHeaders };
|
|
362
|
+
retryHeaders['Authorization'] = `Payment ${credential}`;
|
|
363
|
+
const retryResponse = await doFetch(primaryUrl, {
|
|
364
|
+
method: args.method ?? 'GET',
|
|
365
|
+
headers: retryHeaders,
|
|
366
|
+
body: args.body,
|
|
367
|
+
});
|
|
368
|
+
const retryBody = await retryResponse.text();
|
|
369
|
+
return {
|
|
370
|
+
content: [{
|
|
371
|
+
type: 'text',
|
|
372
|
+
text: JSON.stringify({
|
|
373
|
+
status: retryResponse.status,
|
|
374
|
+
headers: filterResponseHeaders(retryResponse.headers),
|
|
375
|
+
body: untrusted(retryBody, origin),
|
|
376
|
+
satsPaid: ietfChallenge.amountSats,
|
|
377
|
+
paymentMethod: 'ietf-payment',
|
|
378
|
+
}, null, 2),
|
|
379
|
+
}],
|
|
380
|
+
};
|
|
278
381
|
}
|
|
279
382
|
}
|
|
280
|
-
// IETF Payment detected but not auto-paid
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
383
|
+
// IETF Payment detected but not auto-paid: return challenge details.
|
|
384
|
+
// Never fall through to another rail for the same request.
|
|
385
|
+
return {
|
|
386
|
+
content: [{
|
|
387
|
+
type: 'text',
|
|
388
|
+
text: JSON.stringify({
|
|
389
|
+
status: 402,
|
|
390
|
+
protocol: 'ietf-payment',
|
|
391
|
+
costSats: ietfChallenge.amountSats,
|
|
392
|
+
paymentHash: ietfChallenge.paymentHash,
|
|
393
|
+
realm: ietfChallenge.realm,
|
|
394
|
+
intent: ietfChallenge.intent,
|
|
395
|
+
message: !ietfAutoPay
|
|
396
|
+
? `Payment of ${ietfChallenge.amountSats} sats required (IETF Payment). autoPay disabled.`
|
|
397
|
+
: ietfChallenge.amountSats > autoPayCap
|
|
398
|
+
? `Payment of ${ietfChallenge.amountSats} sats required. Exceeds ${capLabel}.`
|
|
399
|
+
: `Payment of ${ietfChallenge.amountSats} sats required. ${deps.spendTracker.refusal(ietfChallenge.amountSats, deps.maxSpendPerMinuteSats) ?? 'Spend limit reached.'}`,
|
|
400
|
+
}, null, 2),
|
|
401
|
+
}],
|
|
402
|
+
};
|
|
300
403
|
}
|
|
301
404
|
}
|
|
302
405
|
// L402 challenge: Lightning payment
|
|
@@ -321,7 +424,7 @@ export async function handleFetch(args, deps) {
|
|
|
321
424
|
// otherwise tryRecord inflates the spend tracker and blocks legitimate payments.
|
|
322
425
|
// For human wallets, allow re-purchase even when credits are exhausted —
|
|
323
426
|
// the human decides whether to pay by scanning the QR code.
|
|
324
|
-
const shouldAttemptPay = (!creditsExhausted || isHumanWallet) && autoPay && challenge && decoded.costSats !== null && decoded.costSats <=
|
|
427
|
+
const shouldAttemptPay = (!creditsExhausted || isHumanWallet) && autoPay && challenge && decoded.costSats !== null && decoded.costSats <= autoPayCap;
|
|
325
428
|
// Use tryRecord as the authoritative gate — atomically checks AND records
|
|
326
429
|
// the spend before payment, closing the TOCTOU gap between check and pay.
|
|
327
430
|
const withinSpendLimit = shouldAttemptPay && deps.spendTracker.tryRecord(decoded.costSats, deps.maxSpendPerMinuteSats);
|
|
@@ -390,89 +493,100 @@ export async function handleFetch(args, deps) {
|
|
|
390
493
|
return { content };
|
|
391
494
|
}
|
|
392
495
|
const payResult = await deps.payInvoice(challenge.invoice, { serverOrigin: origin });
|
|
393
|
-
// Roll back spend-limit reservation
|
|
496
|
+
// Roll back the spend-limit reservation only for a definite failure,
|
|
497
|
+
// and report it as one rather than as a fresh challenge to pay.
|
|
394
498
|
if (!payResult.paid && payResult.outcome !== 'unknown') {
|
|
395
499
|
deps.spendTracker.unrecord(decoded.costSats);
|
|
500
|
+
return paymentFailed(payResult, decoded.costSats, decoded.paymentHash, 'l402');
|
|
501
|
+
}
|
|
502
|
+
// Unknown, or reported paid with no preimage: the money may have moved.
|
|
503
|
+
if (payResult.outcome === 'unknown' || !payResult.preimage) {
|
|
504
|
+
if (decoded.paymentHash) {
|
|
505
|
+
recordUnknown({ paymentHash: decoded.paymentHash, invoice: challenge.invoice, costSats: decoded.costSats, protocol: 'l402', method: payResult.method, macaroon: challenge.macaroon });
|
|
506
|
+
}
|
|
507
|
+
return paymentUnknown(payResult, decoded.costSats, decoded.paymentHash, 'l402');
|
|
396
508
|
}
|
|
397
|
-
|
|
509
|
+
// Validate preimage (hex) and macaroon (base64-safe) before storage
|
|
510
|
+
// to prevent header injection via Authorization: L402 {macaroon}:{preimage}
|
|
511
|
+
if (!HEX_RE.test(payResult.preimage) || payResult.preimage.length !== 64 || !MACAROON_RE.test(challenge.macaroon)) {
|
|
512
|
+
if (decoded.paymentHash) {
|
|
513
|
+
recordUnknown({ paymentHash: decoded.paymentHash, invoice: challenge.invoice, costSats: decoded.costSats, protocol: 'l402', method: payResult.method });
|
|
514
|
+
}
|
|
398
515
|
return {
|
|
399
516
|
content: [{
|
|
400
517
|
type: 'text',
|
|
401
518
|
text: JSON.stringify({
|
|
402
|
-
|
|
519
|
+
error: 'Payment was reported but the credential contains invalid characters; refusing to store it',
|
|
403
520
|
paymentState: 'unknown',
|
|
404
|
-
costSats: decoded.costSats,
|
|
405
521
|
paymentHash: decoded.paymentHash,
|
|
406
|
-
message:
|
|
407
|
-
}
|
|
522
|
+
message: RECONCILE_HINT,
|
|
523
|
+
}),
|
|
408
524
|
}],
|
|
409
525
|
isError: true,
|
|
410
526
|
};
|
|
411
527
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
creditBalance: null,
|
|
435
|
-
storedAt: new Date().toISOString(),
|
|
436
|
-
lastUsed: new Date().toISOString(),
|
|
437
|
-
server: serverInfo.type === 'toll-booth' ? 'toll-booth' : null,
|
|
438
|
-
});
|
|
439
|
-
// Retry the request with new credentials (reuse filtered headers)
|
|
440
|
-
const retryHeaders = { ...reqHeaders };
|
|
441
|
-
retryHeaders['Authorization'] = `L402 ${challenge.macaroon}:${payResult.preimage}`;
|
|
442
|
-
const retryResponse = await doFetch(primaryUrl, {
|
|
443
|
-
method: args.method ?? 'GET',
|
|
444
|
-
headers: retryHeaders,
|
|
445
|
-
body: args.body,
|
|
446
|
-
});
|
|
447
|
-
const retryBalance = parseBalance(retryResponse.headers.get('x-credit-balance'));
|
|
448
|
-
if (retryBalance !== null) {
|
|
449
|
-
deps.credentialStore.updateBalance(credKey, retryBalance);
|
|
450
|
-
}
|
|
451
|
-
const retryBody = await retryResponse.text();
|
|
452
|
-
return {
|
|
453
|
-
content: [{
|
|
454
|
-
type: 'text',
|
|
455
|
-
text: JSON.stringify({
|
|
456
|
-
status: retryResponse.status,
|
|
457
|
-
headers: filterResponseHeaders(retryResponse.headers),
|
|
458
|
-
body: retryBody,
|
|
459
|
-
creditsRemaining: retryBalance,
|
|
460
|
-
satsPaid: decoded.costSats,
|
|
461
|
-
}, null, 2),
|
|
462
|
-
}],
|
|
463
|
-
};
|
|
528
|
+
// Store credential and retry
|
|
529
|
+
deps.credentialStore.set(credKey, {
|
|
530
|
+
origins: candidateOrigins,
|
|
531
|
+
macaroon: challenge.macaroon,
|
|
532
|
+
preimage: payResult.preimage,
|
|
533
|
+
paymentHash: decoded.paymentHash ?? '',
|
|
534
|
+
creditBalance: null,
|
|
535
|
+
storedAt: new Date().toISOString(),
|
|
536
|
+
lastUsed: new Date().toISOString(),
|
|
537
|
+
server: serverInfo.type === 'toll-booth' ? 'toll-booth' : null,
|
|
538
|
+
});
|
|
539
|
+
// Retry the request with new credentials (reuse filtered headers)
|
|
540
|
+
const retryHeaders = { ...reqHeaders };
|
|
541
|
+
retryHeaders['Authorization'] = `L402 ${challenge.macaroon}:${payResult.preimage}`;
|
|
542
|
+
const retryResponse = await doFetch(primaryUrl, {
|
|
543
|
+
method: args.method ?? 'GET',
|
|
544
|
+
headers: retryHeaders,
|
|
545
|
+
body: args.body,
|
|
546
|
+
});
|
|
547
|
+
const retryBalance = parseBalance(retryResponse.headers.get('x-credit-balance'));
|
|
548
|
+
if (retryBalance !== null) {
|
|
549
|
+
deps.credentialStore.updateBalance(credKey, retryBalance);
|
|
464
550
|
}
|
|
551
|
+
const retryBody = await retryResponse.text();
|
|
552
|
+
return {
|
|
553
|
+
content: [{
|
|
554
|
+
type: 'text',
|
|
555
|
+
text: JSON.stringify({
|
|
556
|
+
status: retryResponse.status,
|
|
557
|
+
headers: filterResponseHeaders(retryResponse.headers),
|
|
558
|
+
body: untrusted(retryBody, origin),
|
|
559
|
+
creditsRemaining: retryBalance,
|
|
560
|
+
satsPaid: decoded.costSats,
|
|
561
|
+
}, null, 2),
|
|
562
|
+
}],
|
|
563
|
+
};
|
|
564
|
+
}
|
|
565
|
+
// Step 5: Return 402 challenge for agent decision. Cache it, so that
|
|
566
|
+
// l402-pay can pay exactly this invoice by its paymentHash.
|
|
567
|
+
if (challenge && decoded.paymentHash) {
|
|
568
|
+
deps.challengeCache.set({
|
|
569
|
+
invoice: challenge.invoice,
|
|
570
|
+
macaroon: challenge.macaroon,
|
|
571
|
+
paymentHash: decoded.paymentHash,
|
|
572
|
+
costSats: decoded.costSats,
|
|
573
|
+
expiresAt: Date.now() + decoded.expiry * 1000,
|
|
574
|
+
url: primaryUrl,
|
|
575
|
+
});
|
|
465
576
|
}
|
|
466
|
-
// Step 5: Return 402 challenge for agent decision
|
|
467
577
|
const message = creditsExhausted
|
|
468
578
|
? `Insufficient credits for ${origin}${decoded.costSats !== null ? ` (this endpoint costs ${decoded.costSats} sats)` : ''}. Use l402-buy-credits to purchase more credits${tiers ? ' — tier options are included below' : ''}.`
|
|
469
|
-
:
|
|
470
|
-
?
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
579
|
+
: decoded.costSats === null
|
|
580
|
+
? challenge
|
|
581
|
+
? 'Payment required, but the invoice states no amount, so it cannot be checked against the spending limits and will not be paid automatically.'
|
|
582
|
+
: 'Payment required, but the response carries no payment challenge this client can read.'
|
|
583
|
+
: !autoPay
|
|
584
|
+
? `Payment of ${decoded.costSats} sats required. autoPay disabled.`
|
|
585
|
+
: decoded.costSats > autoPayCap
|
|
586
|
+
? `Payment of ${decoded.costSats} sats required. Exceeds ${capLabel}.`
|
|
587
|
+
: !withinSpendLimit
|
|
588
|
+
? (deps.spendTracker.refusal(decoded.costSats ?? 0, deps.maxSpendPerMinuteSats) ?? 'Spend limit reached.')
|
|
589
|
+
: `Payment of ${decoded.costSats} sats required.`;
|
|
476
590
|
return {
|
|
477
591
|
content: [{
|
|
478
592
|
type: 'text',
|
|
@@ -501,7 +615,7 @@ export async function handleFetch(args, deps) {
|
|
|
501
615
|
/** Registers the l402-fetch tool with the MCP server. */
|
|
502
616
|
export function registerFetchTool(server, deps) {
|
|
503
617
|
server.registerTool('l402-fetch', {
|
|
504
|
-
description: 'Fetch a URL
|
|
618
|
+
description: 'Fetch a URL, paying its HTTP 402 challenge (L402, IETF Payment, Cashu or LNURLcash) when autoPay is true and the price is within MAX_AUTO_PAY_SATS, maxCostSats and the spend limits. Reuses stored credentials. Without autoPay, a 402 comes back with its price and paymentHash so the user can decide; l402-pay can then pay it. For x402 services, which this server supports only in an experimental custom format, returns the payment details for the user to pay in their own wallet. Response bodies are marked as untrusted content. With widget hosts, call l402-fetch-preview first to show the price.',
|
|
505
619
|
annotations: { destructiveHint: true, openWorldHint: true },
|
|
506
620
|
inputSchema: {
|
|
507
621
|
url: z.url().describe('The primary URL to request. When using search results, pass the first URL here and all URLs in the urls field.'),
|
|
@@ -512,6 +626,7 @@ export function registerFetchTool(server, deps) {
|
|
|
512
626
|
autoPay: z.boolean().optional().default(false).describe('Automatically pay if within MAX_AUTO_PAY_SATS budget'),
|
|
513
627
|
pubkey: z.string().max(128).optional().describe('Service pubkey from l402-search results — used to share credentials across all transport URLs for the same service'),
|
|
514
628
|
txHash: z.string().regex(/^0x[0-9a-fA-F]{64}$/).optional().describe('Transaction hash from a completed x402 on-chain payment. When provided, retries the request with X-Payment header for server verification.'),
|
|
629
|
+
maxCostSats: z.number().int().nonnegative().optional().describe('Most this call may pay, in sats. Pass the price the user saw in l402-fetch-preview so a server cannot charge more than it showed. Lowers MAX_AUTO_PAY_SATS for this call; never raises it.'),
|
|
515
630
|
},
|
|
516
631
|
}, async (args) => handleFetch(args, deps));
|
|
517
632
|
}
|
package/build/tools/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/tools/fetch.ts"],"names":[],"mappings":"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"}
|