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.
Files changed (82) hide show
  1. package/README.md +60 -22
  2. package/build/config.d.ts +12 -1
  3. package/build/config.js +53 -12
  4. package/build/config.js.map +1 -1
  5. package/build/fetch/resilient-fetch.d.ts +7 -2
  6. package/build/fetch/resilient-fetch.js +32 -10
  7. package/build/fetch/resilient-fetch.js.map +1 -1
  8. package/build/fetch/socks-proxy.d.ts +25 -0
  9. package/build/fetch/socks-proxy.js +41 -0
  10. package/build/fetch/socks-proxy.js.map +1 -0
  11. package/build/fetch/ssrf-guard.d.ts +10 -0
  12. package/build/fetch/ssrf-guard.js +17 -1
  13. package/build/fetch/ssrf-guard.js.map +1 -1
  14. package/build/fetch/transport.d.ts +1 -0
  15. package/build/fetch/transport.js +37 -14
  16. package/build/fetch/transport.js.map +1 -1
  17. package/build/http-security.d.ts +13 -0
  18. package/build/http-security.js +38 -0
  19. package/build/http-security.js.map +1 -0
  20. package/build/index.js +186 -120
  21. package/build/index.js.map +1 -1
  22. package/build/l402/bolt11.js +3 -2
  23. package/build/l402/bolt11.js.map +1 -1
  24. package/build/spend-tracker.d.ts +31 -4
  25. package/build/spend-tracker.js +102 -17
  26. package/build/spend-tracker.js.map +1 -1
  27. package/build/store/cashu-tokens.d.ts +19 -0
  28. package/build/store/cashu-tokens.js +32 -0
  29. package/build/store/cashu-tokens.js.map +1 -1
  30. package/build/store/credentials.d.ts +5 -0
  31. package/build/store/credentials.js +1 -0
  32. package/build/store/credentials.js.map +1 -1
  33. package/build/store/pending-payments.d.ts +36 -0
  34. package/build/store/pending-payments.js +88 -0
  35. package/build/store/pending-payments.js.map +1 -0
  36. package/build/tools/buy-credits.d.ts +9 -0
  37. package/build/tools/buy-credits.js +40 -3
  38. package/build/tools/buy-credits.js.map +1 -1
  39. package/build/tools/config.d.ts +5 -0
  40. package/build/tools/config.js.map +1 -1
  41. package/build/tools/confirm.d.ts +12 -0
  42. package/build/tools/confirm.js +27 -0
  43. package/build/tools/confirm.js.map +1 -0
  44. package/build/tools/fetch-preview.js +9 -3
  45. package/build/tools/fetch-preview.js.map +1 -1
  46. package/build/tools/fetch.d.ts +7 -1
  47. package/build/tools/fetch.js +281 -140
  48. package/build/tools/fetch.js.map +1 -1
  49. package/build/tools/nostr-subscribe.js.map +1 -1
  50. package/build/tools/pay.d.ts +9 -0
  51. package/build/tools/pay.js +65 -8
  52. package/build/tools/pay.js.map +1 -1
  53. package/build/tools/reconcile.d.ts +33 -0
  54. package/build/tools/reconcile.js +111 -0
  55. package/build/tools/reconcile.js.map +1 -0
  56. package/build/tools/redeem-cashu.js +1 -1
  57. package/build/tools/redeem-cashu.js.map +1 -1
  58. package/build/tools/register-widgets.js +5 -5
  59. package/build/tools/register-widgets.js.map +1 -1
  60. package/build/tools/search.js +17 -3
  61. package/build/tools/search.js.map +1 -1
  62. package/build/tools/untrusted.d.ts +3 -0
  63. package/build/tools/untrusted.js +18 -0
  64. package/build/tools/untrusted.js.map +1 -0
  65. package/build/wallet/cashu.js +101 -21
  66. package/build/wallet/cashu.js.map +1 -1
  67. package/build/wallet/lnurlcash.js +25 -7
  68. package/build/wallet/lnurlcash.js.map +1 -1
  69. package/build/wallet/nwc.js +51 -3
  70. package/build/wallet/nwc.js.map +1 -1
  71. package/build/wallet/types.d.ts +17 -0
  72. package/build/x402/parse.d.ts +15 -3
  73. package/build/x402/parse.js +23 -9
  74. package/build/x402/parse.js.map +1 -1
  75. package/build/x402/payment.js +11 -6
  76. package/build/x402/payment.js.map +1 -1
  77. package/llms-full.txt +73 -34
  78. package/llms.txt +52 -24
  79. package/package.json +6 -5
  80. package/src/widgets/dist/payment-confirmation.html +28 -28
  81. package/src/widgets/dist/service-directory.html +39 -30
  82. 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: ietf.amountSats,
64
+ costSats: invoice.costSats,
61
65
  paymentMethod: deps.walletMethod() ?? 'none',
62
- paymentHash: ietf.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: `Payment of ${ietf.amountSats} sats required to access ${new URL(url).hostname}. Confirm to proceed.`,
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":"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"}
1
+ {"version":3,"file":"fetch-preview.js","sourceRoot":"","sources":["../../src/tools/fetch-preview.ts"],"names":[],"mappings":"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"}
@@ -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;