402-mcp 4.2.1 → 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 +60 -22
- package/build/config.d.ts +12 -1
- package/build/config.js +53 -12
- package/build/config.js.map +1 -1
- package/build/fetch/resilient-fetch.d.ts +7 -2
- package/build/fetch/resilient-fetch.js +32 -10
- package/build/fetch/resilient-fetch.js.map +1 -1
- package/build/fetch/socks-proxy.d.ts +25 -0
- package/build/fetch/socks-proxy.js +41 -0
- package/build/fetch/socks-proxy.js.map +1 -0
- package/build/fetch/ssrf-guard.d.ts +10 -0
- package/build/fetch/ssrf-guard.js +17 -1
- package/build/fetch/ssrf-guard.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 +186 -120
- package/build/index.js.map +1 -1
- package/build/l402/bolt11.js +3 -2
- package/build/l402/bolt11.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-preview.js +9 -3
- package/build/tools/fetch-preview.js.map +1 -1
- package/build/tools/fetch.d.ts +7 -1
- package/build/tools/fetch.js +281 -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 +73 -34
- package/llms.txt +52 -24
- package/package.json +6 -5
- package/src/widgets/dist/payment-confirmation.html +28 -28
- package/src/widgets/dist/service-directory.html +39 -30
- package/src/widgets/dist/wallet-dashboard.html +28 -28
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
/**
|
|
3
|
+
* Outcome of asking the human directly. `unsupported` means the client cannot
|
|
4
|
+
* show an elicitation form, so nobody was asked.
|
|
5
|
+
*/
|
|
6
|
+
export type HumanConfirmation = 'accepted' | 'declined' | 'unsupported';
|
|
7
|
+
export type ConfirmWithHuman = (message: string) => Promise<HumanConfirmation>;
|
|
8
|
+
/**
|
|
9
|
+
* Asks the human through MCP elicitation. The answer comes from the client's
|
|
10
|
+
* own UI, not from the agent, so an agent cannot approve its own request.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createElicitConfirm(server: McpServer): ConfirmWithHuman;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asks the human through MCP elicitation. The answer comes from the client's
|
|
3
|
+
* own UI, not from the agent, so an agent cannot approve its own request.
|
|
4
|
+
*/
|
|
5
|
+
export function createElicitConfirm(server) {
|
|
6
|
+
return async (message) => {
|
|
7
|
+
if (!server.server.getClientCapabilities()?.elicitation)
|
|
8
|
+
return 'unsupported';
|
|
9
|
+
try {
|
|
10
|
+
const result = await server.server.elicitInput({
|
|
11
|
+
message,
|
|
12
|
+
requestedSchema: {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {
|
|
15
|
+
confirm: { type: 'boolean', title: 'I approve', description: message },
|
|
16
|
+
},
|
|
17
|
+
required: ['confirm'],
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
return result.action === 'accept' && result.content?.confirm === true ? 'accepted' : 'declined';
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return 'unsupported';
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=confirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../src/tools/confirm.ts"],"names":[],"mappings":"AAUA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiB;IACnD,OAAO,KAAK,EAAE,OAAe,EAAE,EAAE;QAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,EAAE,WAAW;YAAE,OAAO,aAAa,CAAA;QAC7E,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC7C,OAAO;gBACP,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE;qBACvE;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF,CAAC,CAAA;YACF,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAA;QACjG,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,aAAa,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -50,6 +50,10 @@ export async function handleFetchPreview(args, deps) {
|
|
|
50
50
|
if (deps.isIETFPayment(response.headers)) {
|
|
51
51
|
const ietf = deps.parseIETFPayment(wwwAuth);
|
|
52
52
|
if (ietf?.invoice && ietf.amountSats && ietf.paymentHash) {
|
|
53
|
+
// Preview what the invoice charges, not what the server says it does.
|
|
54
|
+
const invoice = deps.decodeBolt11(ietf.invoice);
|
|
55
|
+
const matches = invoice.costSats === ietf.amountSats
|
|
56
|
+
&& invoice.paymentHash === ietf.paymentHash.toLowerCase();
|
|
53
57
|
const expiresAt = ietf.expires
|
|
54
58
|
? new Date(ietf.expires).getTime()
|
|
55
59
|
: Date.now() + 3600_000;
|
|
@@ -57,14 +61,16 @@ export async function handleFetchPreview(args, deps) {
|
|
|
57
61
|
status: 'preview',
|
|
58
62
|
endpoint: url,
|
|
59
63
|
protocol: 'ietf-payment',
|
|
60
|
-
costSats:
|
|
64
|
+
costSats: invoice.costSats,
|
|
61
65
|
paymentMethod: deps.walletMethod() ?? 'none',
|
|
62
|
-
paymentHash:
|
|
66
|
+
paymentHash: invoice.paymentHash,
|
|
63
67
|
expiresAt,
|
|
64
68
|
realm: ietf.realm,
|
|
65
69
|
intent: ietf.intent,
|
|
66
70
|
widgetHint: 'payment-confirmation',
|
|
67
|
-
message:
|
|
71
|
+
message: matches
|
|
72
|
+
? `Payment of ${invoice.costSats} sats required to access ${new URL(url).hostname}. Confirm to proceed.`
|
|
73
|
+
: `The server states ${ietf.amountSats} sats but its invoice ${invoice.costSats === null ? 'has no readable amount' : `charges ${invoice.costSats} sats`}. l402-fetch will refuse to pay it.`,
|
|
68
74
|
};
|
|
69
75
|
}
|
|
70
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-preview.js","sourceRoot":"","sources":["../../src/tools/fetch-preview.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAA;AASvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAuBlD,6DAA6D;AAC7D,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;IAC9B,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE,SAAS;IACpD,qBAAqB,EAAE,IAAI,EAAE,SAAS;CACvC,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAA0G,EAC1G,IAAsB;IAEtB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEvD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACvD,MAAM,UAAU,GAA2B,EAAE,CAAA;YAC7C,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACjB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;wBAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;oBACnB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;gBAC5B,OAAO,EAAE,UAAU;aACpB,CAAC,CAAA;YAEF,2CAA2C;YAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO;oBACL,MAAM,EAAE,MAAe;oBACvB,QAAQ,EAAE,GAAG;oBACb,UAAU,EAAE,QAAQ,CAAC,MAAM;oBAC3B,OAAO,EAAE,sBAAsB;iBAChC,CAAA;YACH,CAAC;YAED,+CAA+C;YAC/C,IAAI,aAAa,GAA4B,EAAE,CAAA;YAC/C,IAAI,CAAC;gBAAC,aAAa,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA6B,CAAA;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,uBAAuB,CAAC,CAAC;YAE1G,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAA;YAE9D,4DAA4D;YAC5D,6CAA6C;YAE7C,0CAA0C;YAC1C,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA;gBAC3C,IAAI,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBACzD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO;wBAC5B,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE;wBAClC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAA;oBAEzB,OAAO;wBACL,MAAM,EAAE,SAAkB;wBAC1B,QAAQ,EAAE,GAAG;wBACb,QAAQ,EAAE,cAAc;wBACxB,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch-preview.js","sourceRoot":"","sources":["../../src/tools/fetch-preview.ts"],"names":[],"mappings":"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"}
|
package/build/tools/fetch.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { X402Challenge } from '../x402/parse.js';
|
|
|
11
11
|
import type { XCashuChallenge } from '../xcashu/parse.js';
|
|
12
12
|
import type { LnurlcashChallenge } from '../xlnurlcash/parse.js';
|
|
13
13
|
import type { IETFPaymentChallenge } from '../ietf-payment/parse.js';
|
|
14
|
+
import type { PendingPayment } from '../store/pending-payments.js';
|
|
14
15
|
export interface FetchDeps {
|
|
15
16
|
credentialStore: CredentialStore;
|
|
16
17
|
fetchFn: (url: string | URL, init?: RequestInit, options?: ResilientFetchOptions) => Promise<Response>;
|
|
@@ -71,6 +72,11 @@ export interface FetchDeps {
|
|
|
71
72
|
parseIETFPayment: (header: string) => IETFPaymentChallenge | null;
|
|
72
73
|
/** Builds base64url credential for Authorization: Payment header. */
|
|
73
74
|
buildIETFCredential: (challenge: IETFPaymentChallenge, preimage: string) => string;
|
|
75
|
+
/** Ledger of unknown-outcome payments; any entry for a service pauses auto-pay to it. */
|
|
76
|
+
pendingPayments: {
|
|
77
|
+
add(entry: PendingPayment): void;
|
|
78
|
+
unresolvedFor(origins: string[], pubkey?: string): PendingPayment[];
|
|
79
|
+
};
|
|
74
80
|
}
|
|
75
81
|
/** Makes an HTTP request with automatic L402/x402 payment and credential reuse. Pays the invoice if within budget, stores the credential, and retries. */
|
|
76
82
|
export declare function handleFetch(args: {
|
|
@@ -82,6 +88,7 @@ export declare function handleFetch(args: {
|
|
|
82
88
|
autoPay?: boolean;
|
|
83
89
|
pubkey?: string;
|
|
84
90
|
txHash?: string;
|
|
91
|
+
maxCostSats?: number;
|
|
85
92
|
}, deps: FetchDeps): Promise<{
|
|
86
93
|
content: {
|
|
87
94
|
type: "text";
|
|
@@ -97,7 +104,6 @@ export declare function handleFetch(args: {
|
|
|
97
104
|
data: string;
|
|
98
105
|
mimeType: string;
|
|
99
106
|
})[];
|
|
100
|
-
isError?: undefined;
|
|
101
107
|
}>;
|
|
102
108
|
/** Registers the l402-fetch tool with the MCP server. */
|
|
103
109
|
export declare function registerFetchTool(server: McpServer, deps: FetchDeps): void;
|