@contextvm/sdk 0.12.5 → 0.13.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 (76) hide show
  1. package/dist/esm/core/constants.d.ts +2 -0
  2. package/dist/esm/core/constants.d.ts.map +1 -1
  3. package/dist/esm/core/constants.js +2 -0
  4. package/dist/esm/core/constants.js.map +1 -1
  5. package/dist/esm/payments/authorization-store.d.ts +55 -0
  6. package/dist/esm/payments/authorization-store.d.ts.map +1 -0
  7. package/dist/esm/payments/authorization-store.js +115 -0
  8. package/dist/esm/payments/authorization-store.js.map +1 -0
  9. package/dist/esm/payments/canonical-identity.d.ts +21 -0
  10. package/dist/esm/payments/canonical-identity.d.ts.map +1 -0
  11. package/dist/esm/payments/canonical-identity.js +54 -0
  12. package/dist/esm/payments/canonical-identity.js.map +1 -0
  13. package/dist/esm/payments/client-payments.d.ts +43 -0
  14. package/dist/esm/payments/client-payments.d.ts.map +1 -1
  15. package/dist/esm/payments/client-payments.js +248 -28
  16. package/dist/esm/payments/client-payments.js.map +1 -1
  17. package/dist/esm/payments/constants.d.ts +12 -0
  18. package/dist/esm/payments/constants.d.ts.map +1 -1
  19. package/dist/esm/payments/constants.js +12 -0
  20. package/dist/esm/payments/constants.js.map +1 -1
  21. package/dist/esm/payments/server-explicit-gating.d.ts +13 -0
  22. package/dist/esm/payments/server-explicit-gating.d.ts.map +1 -0
  23. package/dist/esm/payments/server-explicit-gating.js +189 -0
  24. package/dist/esm/payments/server-explicit-gating.js.map +1 -0
  25. package/dist/esm/payments/server-payments-utils.d.ts +39 -0
  26. package/dist/esm/payments/server-payments-utils.d.ts.map +1 -0
  27. package/dist/esm/payments/server-payments-utils.js +117 -0
  28. package/dist/esm/payments/server-payments-utils.js.map +1 -0
  29. package/dist/esm/payments/server-payments.d.ts +10 -1
  30. package/dist/esm/payments/server-payments.d.ts.map +1 -1
  31. package/dist/esm/payments/server-payments.js +74 -150
  32. package/dist/esm/payments/server-payments.js.map +1 -1
  33. package/dist/esm/payments/server-transport-payments.d.ts +6 -0
  34. package/dist/esm/payments/server-transport-payments.d.ts.map +1 -1
  35. package/dist/esm/payments/server-transport-payments.js +46 -3
  36. package/dist/esm/payments/server-transport-payments.js.map +1 -1
  37. package/dist/esm/payments/types.d.ts +77 -9
  38. package/dist/esm/payments/types.d.ts.map +1 -1
  39. package/dist/esm/payments/types.js.map +1 -1
  40. package/dist/esm/transport/capability-negotiator.d.ts +17 -2
  41. package/dist/esm/transport/capability-negotiator.d.ts.map +1 -1
  42. package/dist/esm/transport/capability-negotiator.js +27 -2
  43. package/dist/esm/transport/capability-negotiator.js.map +1 -1
  44. package/dist/esm/transport/middleware.d.ts +8 -0
  45. package/dist/esm/transport/middleware.d.ts.map +1 -1
  46. package/dist/esm/transport/nostr-client/inbound-coordinator.d.ts +1 -1
  47. package/dist/esm/transport/nostr-client/inbound-coordinator.d.ts.map +1 -1
  48. package/dist/esm/transport/nostr-client/inbound-coordinator.js +16 -1
  49. package/dist/esm/transport/nostr-client/inbound-coordinator.js.map +1 -1
  50. package/dist/esm/transport/nostr-client/outbound-sender.d.ts.map +1 -1
  51. package/dist/esm/transport/nostr-client/outbound-sender.js +2 -2
  52. package/dist/esm/transport/nostr-client/outbound-sender.js.map +1 -1
  53. package/dist/esm/transport/nostr-client/server-metadata-store.d.ts +4 -0
  54. package/dist/esm/transport/nostr-client/server-metadata-store.d.ts.map +1 -1
  55. package/dist/esm/transport/nostr-client/server-metadata-store.js +7 -0
  56. package/dist/esm/transport/nostr-client/server-metadata-store.js.map +1 -1
  57. package/dist/esm/transport/nostr-client-transport.d.ts +9 -0
  58. package/dist/esm/transport/nostr-client-transport.d.ts.map +1 -1
  59. package/dist/esm/transport/nostr-client-transport.js +19 -3
  60. package/dist/esm/transport/nostr-client-transport.js.map +1 -1
  61. package/dist/esm/transport/nostr-server/inbound-coordinator.d.ts +3 -0
  62. package/dist/esm/transport/nostr-server/inbound-coordinator.d.ts.map +1 -1
  63. package/dist/esm/transport/nostr-server/inbound-coordinator.js +58 -3
  64. package/dist/esm/transport/nostr-server/inbound-coordinator.js.map +1 -1
  65. package/dist/esm/transport/nostr-server/outbound-response-router.d.ts +7 -0
  66. package/dist/esm/transport/nostr-server/outbound-response-router.d.ts.map +1 -1
  67. package/dist/esm/transport/nostr-server/outbound-response-router.js +43 -1
  68. package/dist/esm/transport/nostr-server/outbound-response-router.js.map +1 -1
  69. package/dist/esm/transport/nostr-server/session-store.d.ts +7 -0
  70. package/dist/esm/transport/nostr-server/session-store.d.ts.map +1 -1
  71. package/dist/esm/transport/nostr-server/session-store.js.map +1 -1
  72. package/dist/esm/transport/nostr-server-transport.d.ts +16 -1
  73. package/dist/esm/transport/nostr-server-transport.d.ts.map +1 -1
  74. package/dist/esm/transport/nostr-server-transport.js +18 -0
  75. package/dist/esm/transport/nostr-server-transport.js.map +1 -1
  76. package/package.json +1 -1
@@ -1,11 +1,29 @@
1
1
  import { isJSONRPCNotification, isJSONRPCResultResponse, isJSONRPCErrorResponse, } from '@contextvm/mcp-sdk/types.js';
2
2
  import { NostrClientTransport } from '../transport/nostr-client-transport.js';
3
+ import { LruCache } from '../core/utils/lru-cache.js';
3
4
  import { createLogger } from '../core/utils/logger.js';
4
- import { DEFAULT_SYNTHETIC_PROGRESS_INTERVAL_MS, DEFAULT_PAYMENT_TTL_MS, PAYMENT_ACCEPTED_METHOD, PAYMENT_REJECTED_METHOD, PAYMENT_REQUIRED_METHOD, } from './constants.js';
5
+ import { DEFAULT_SYNTHETIC_PROGRESS_INTERVAL_MS, DEFAULT_PAYMENT_TTL_MS, PAYMENT_ACCEPTED_METHOD, PAYMENT_REJECTED_METHOD, PAYMENT_REQUIRED_METHOD, PAYMENT_REQUIRED_ERROR_CODE, PAYMENT_PENDING_ERROR_CODE, } from './constants.js';
5
6
  function supportsOnmessageWithContext(transport) {
6
7
  // Avoid using the `in` operator here; prefer an ES3-compatible check.
7
8
  return Object.prototype.hasOwnProperty.call(transport, 'onmessageWithContext');
8
9
  }
10
+ function isExplicitPaymentRequiredError(msg) {
11
+ return (isJSONRPCErrorResponse(msg) &&
12
+ msg.error.code === PAYMENT_REQUIRED_ERROR_CODE &&
13
+ typeof msg.error.data === 'object' &&
14
+ msg.error.data !== null &&
15
+ Array.isArray(msg.error.data.payment_options) &&
16
+ msg.error.data.payment_options.length >
17
+ 0);
18
+ }
19
+ function isExplicitPaymentPendingError(msg) {
20
+ return (isJSONRPCErrorResponse(msg) &&
21
+ msg.error.code === PAYMENT_PENDING_ERROR_CODE &&
22
+ typeof msg.error.data === 'object' &&
23
+ msg.error.data !== null &&
24
+ typeof msg.error.data.retry_after ===
25
+ 'number');
26
+ }
9
27
  function isPaymentRequiredNotification(msg) {
10
28
  return isJSONRPCNotification(msg) && msg.method === PAYMENT_REQUIRED_METHOD;
11
29
  }
@@ -21,7 +39,7 @@ function isPaymentRequiredNotification(msg) {
21
39
  * as an unhandled notification and the MCP request times out naturally.
22
40
  */
23
41
  export function withClientPayments(transport, options) {
24
- var _a, _b;
42
+ var _a, _b, _c;
25
43
  const logger = createLogger('client-payments');
26
44
  const syntheticProgressIntervalMs = (_a = options.syntheticProgressIntervalMs) !== null && _a !== void 0 ? _a : DEFAULT_SYNTHETIC_PROGRESS_INTERVAL_MS;
27
45
  const defaultPaymentTtlMs = (_b = options.defaultPaymentTtlMs) !== null && _b !== void 0 ? _b : DEFAULT_PAYMENT_TTL_MS;
@@ -67,12 +85,26 @@ export function withClientPayments(transport, options) {
67
85
  return;
68
86
  maybeStopScheduler();
69
87
  };
70
- const stopAllSyntheticProgress = () => {
88
+ const pendingTimers = new Set();
89
+ const retryCounts = new Map();
90
+ const rawRequestCache = new LruCache(1000);
91
+ const MAX_RETRIES = (_c = options.maxPendingRetries) !== null && _c !== void 0 ? _c : 10;
92
+ /**
93
+ * Disposes all client-side payment state: synthetic progress, pending retry
94
+ * timers, retry counters, and the raw-request cache. Called on transport close.
95
+ */
96
+ const disposeClientState = () => {
71
97
  syntheticProgress.clear();
72
98
  if (syntheticProgressScheduler) {
73
99
  clearInterval(syntheticProgressScheduler);
74
100
  syntheticProgressScheduler = undefined;
75
101
  }
102
+ for (const timer of pendingTimers) {
103
+ clearTimeout(timer);
104
+ }
105
+ pendingTimers.clear();
106
+ retryCounts.clear();
107
+ rawRequestCache.clear();
76
108
  };
77
109
  // Ensure CEP-8 discovery/negotiation: when using Nostr transports, always advertise
78
110
  // supported PMIs derived from the handler list (preference order = handler order).
@@ -81,6 +113,12 @@ export function withClientPayments(transport, options) {
81
113
  logger.debug('advertised client PMIs', {
82
114
  pmis: options.handlers.map((h) => h.pmi),
83
115
  });
116
+ if (options.paymentInteraction === 'explicit_gating') {
117
+ transport.setPaymentInteraction('explicit_gating');
118
+ logger.debug('advertised requested payment interaction mode', {
119
+ mode: 'explicit_gating',
120
+ });
121
+ }
84
122
  }
85
123
  const handlersByPmi = new Map(options.handlers.map((h) => [h.pmi, h]));
86
124
  // Warn on duplicate PMI handlers — Map construction silently keeps only the last.
@@ -98,10 +136,143 @@ export function withClientPayments(transport, options) {
98
136
  let onmessage;
99
137
  let onerror;
100
138
  let onclose;
101
- async function maybeHandlePaymentRequired(message, requestEventId) {
102
- if (!isPaymentRequiredNotification(message)) {
139
+ /** Emits a synthesized JSON-RPC error to the upstream consumer via `onmessage`. */
140
+ const synthesizePaymentError = (params) => {
141
+ onmessage === null || onmessage === void 0 ? void 0 : onmessage({
142
+ jsonrpc: '2.0',
143
+ id: params.id,
144
+ error: {
145
+ code: params.code,
146
+ message: params.message,
147
+ data: params.data,
148
+ },
149
+ });
150
+ };
151
+ /**
152
+ * Handles explicit-gating -32042 (invoke `onPaymentRequired`, then retry) and
153
+ * -32043 (backoff, then retry). Both are intercepted here, never forwarded.
154
+ */
155
+ async function handleExplicitPaymentError(message, requestEventId) {
156
+ var _a;
157
+ if (isExplicitPaymentRequiredError(message)) {
158
+ const errorMsg = message;
159
+ const data = errorMsg.error.data;
160
+ if (!options.onPaymentRequired) {
161
+ onmessage === null || onmessage === void 0 ? void 0 : onmessage(message);
162
+ return;
163
+ }
164
+ const requestId = errorMsg.id;
165
+ const rawRequest = requestId != null ? rawRequestCache.get(String(requestId)) : undefined;
166
+ if (!rawRequest) {
167
+ logger.warn('missing raw original request, cannot retry explicit payment', { requestEventId });
168
+ onmessage === null || onmessage === void 0 ? void 0 : onmessage(message);
169
+ return;
170
+ }
171
+ logger.info('invoking onPaymentRequired for explicit gating', {
172
+ requestEventId,
173
+ optionsCount: data.payment_options.length,
174
+ });
175
+ try {
176
+ const result = await options.onPaymentRequired({
177
+ options: data.payment_options,
178
+ instructions: data.instructions,
179
+ originalRequest: rawRequest,
180
+ });
181
+ if (result.paid) {
182
+ logger.info('explicit payment satisfied, retrying original request', {
183
+ requestEventId,
184
+ method: rawRequest.method,
185
+ });
186
+ await transport.send(rawRequest);
187
+ return;
188
+ }
189
+ logger.debug('onPaymentRequired returned paid=false', {
190
+ requestEventId,
191
+ reason: result.reason,
192
+ });
193
+ synthesizePaymentError({
194
+ id: errorMsg.id,
195
+ code: PAYMENT_REQUIRED_ERROR_CODE,
196
+ message: 'Payment Required',
197
+ data: { reason: result.reason || 'user_cancelled' },
198
+ });
199
+ }
200
+ catch (err) {
201
+ logger.error('onPaymentRequired callback failed', {
202
+ requestEventId,
203
+ error: err instanceof Error ? err.message : String(err),
204
+ });
205
+ synthesizePaymentError({
206
+ id: errorMsg.id,
207
+ code: PAYMENT_REQUIRED_ERROR_CODE,
208
+ message: 'Payment Required',
209
+ data: {
210
+ reason: err instanceof Error ? err.message : String(err),
211
+ type: 'payment_handler_error',
212
+ },
213
+ });
214
+ }
103
215
  return;
104
216
  }
217
+ // -32043 Payment Pending
218
+ if (isExplicitPaymentPendingError(message)) {
219
+ const errorMsg = message;
220
+ const data = errorMsg.error.data;
221
+ const retryAfterSeconds = data.retry_after;
222
+ const requestId = errorMsg.id;
223
+ const rawRequest = requestId != null ? rawRequestCache.get(String(requestId)) : undefined;
224
+ if (!rawRequest) {
225
+ logger.warn('missing raw original request, cannot retry explicit payment pending', { requestEventId });
226
+ onmessage === null || onmessage === void 0 ? void 0 : onmessage(message);
227
+ return;
228
+ }
229
+ const requestIdKey = errorMsg.id;
230
+ const retries = (_a = retryCounts.get(requestIdKey)) !== null && _a !== void 0 ? _a : 0;
231
+ if (retries >= MAX_RETRIES) {
232
+ logger.error('max explicit payment retries exceeded', {
233
+ requestEventId,
234
+ id: requestIdKey,
235
+ maxRetries: MAX_RETRIES,
236
+ });
237
+ onmessage === null || onmessage === void 0 ? void 0 : onmessage(message);
238
+ return;
239
+ }
240
+ retryCounts.set(requestIdKey, retries + 1);
241
+ logger.info('payment pending, retrying after backoff', {
242
+ requestEventId,
243
+ retryAfterSeconds,
244
+ retryCount: retries + 1,
245
+ });
246
+ const baseDelayMs = (retryAfterSeconds !== null && retryAfterSeconds !== void 0 ? retryAfterSeconds : 1) * 1000;
247
+ const exponentialMultiplier = Math.pow(1.5, retries);
248
+ const delayMs = Math.min(baseDelayMs * exponentialMultiplier, 10000);
249
+ const timer = setTimeout(() => {
250
+ pendingTimers.delete(timer);
251
+ transport.send(rawRequest).catch((err) => {
252
+ logger.error('failed to retry pending request', {
253
+ requestEventId,
254
+ error: err instanceof Error ? err.message : String(err),
255
+ });
256
+ synthesizePaymentError({
257
+ id: rawRequest.id,
258
+ code: PAYMENT_PENDING_ERROR_CODE,
259
+ message: 'Failed to retry pending request',
260
+ data: {
261
+ reason: err instanceof Error ? err.message : String(err),
262
+ },
263
+ });
264
+ });
265
+ }, delayMs);
266
+ pendingTimers.add(timer);
267
+ }
268
+ }
269
+ /**
270
+ * Handles transparent `notifications/payment_required`: satisfies the request
271
+ * in-band via configured handlers, gated by `paymentPolicy`, `canHandle`, and
272
+ * the effective-mode guard.
273
+ */
274
+ async function handleTransparentPaymentRequired(message, requestEventId) {
275
+ var _a, _b;
105
276
  const handler = handlersByPmi.get(message.params.pmi);
106
277
  if (!handler) {
107
278
  logger.debug('no handler for PMI, ignoring payment_required', {
@@ -122,6 +293,27 @@ export function withClientPayments(transport, options) {
122
293
  });
123
294
  return;
124
295
  }
296
+ // CEP-8: a client that required explicit_gating SHOULD NOT auto-satisfy a
297
+ // transparent payment_required when the server did not accept it.
298
+ if (isNostrTransport &&
299
+ options.paymentInteraction === 'explicit_gating' &&
300
+ transport.getEffectivePaymentInteraction() !== 'explicit_gating') {
301
+ logger.warn('declining transparent payment_required: explicit_gating was not accepted by the server', { requestEventId, pmi: message.params.pmi });
302
+ if ((pending === null || pending === void 0 ? void 0 : pending.originalRequestId) != null) {
303
+ synthesizePaymentError({
304
+ id: pending.originalRequestId,
305
+ code: -32000,
306
+ message: 'Payment declined: explicit_gating was not accepted by the server',
307
+ data: {
308
+ pmi: message.params.pmi,
309
+ amount: message.params.amount,
310
+ method: (_a = pending.originalRequestContext) === null || _a === void 0 ? void 0 : _a.method,
311
+ capability: (_b = pending.originalRequestContext) === null || _b === void 0 ? void 0 : _b.capability,
312
+ },
313
+ });
314
+ }
315
+ return;
316
+ }
125
317
  // If the transport can provide the original request's progressToken, emit synthetic
126
318
  // progress notifications locally to keep the upstream MCP request alive while the
127
319
  // payment settles (CEP-8 TTL can exceed the default MCP timeout).
@@ -191,18 +383,15 @@ export function withClientPayments(transport, options) {
191
383
  if (pending.progressToken) {
192
384
  stopSyntheticProgress(pending.progressToken);
193
385
  }
194
- onmessage === null || onmessage === void 0 ? void 0 : onmessage({
195
- jsonrpc: '2.0',
386
+ synthesizePaymentError({
196
387
  id: pending.originalRequestId,
197
- error: {
198
- code: -32000,
199
- message: params.message,
200
- data: {
201
- pmi: req.pmi,
202
- amount: req.amount,
203
- method: (_a = pending.originalRequestContext) === null || _a === void 0 ? void 0 : _a.method,
204
- capability: (_b = pending.originalRequestContext) === null || _b === void 0 ? void 0 : _b.capability,
205
- },
388
+ code: -32000,
389
+ message: params.message,
390
+ data: {
391
+ pmi: req.pmi,
392
+ amount: req.amount,
393
+ method: (_a = pending.originalRequestContext) === null || _a === void 0 ? void 0 : _a.method,
394
+ capability: (_b = pending.originalRequestContext) === null || _b === void 0 ? void 0 : _b.capability,
206
395
  },
207
396
  });
208
397
  };
@@ -259,6 +448,33 @@ export function withClientPayments(transport, options) {
259
448
  inFlightPayReqs.delete(message.params.pay_req);
260
449
  }
261
450
  }
451
+ /** Classifies an inbound payment message and delegates to the relevant handler. */
452
+ async function maybeHandlePaymentRequired(message, requestEventId) {
453
+ if (isExplicitPaymentRequiredError(message) ||
454
+ isExplicitPaymentPendingError(message)) {
455
+ await handleExplicitPaymentError(message, requestEventId);
456
+ return;
457
+ }
458
+ if (isPaymentRequiredNotification(message)) {
459
+ await handleTransparentPaymentRequired(message, requestEventId);
460
+ return;
461
+ }
462
+ }
463
+ /**
464
+ * Runs the payment handler, then forwards to the upstream consumer unless the
465
+ * message is an explicit-gating error (those are re-emitted/retried internally).
466
+ */
467
+ const dispatchAndForward = (message, requestEventId) => {
468
+ void maybeHandlePaymentRequired(message, requestEventId).catch((err) => {
469
+ const error = err instanceof Error ? err : new Error(String(err));
470
+ onerror === null || onerror === void 0 ? void 0 : onerror(error);
471
+ });
472
+ if (isExplicitPaymentRequiredError(message) ||
473
+ isExplicitPaymentPendingError(message)) {
474
+ return;
475
+ }
476
+ onmessage === null || onmessage === void 0 ? void 0 : onmessage(message);
477
+ };
262
478
  const wrapped = {
263
479
  get onmessage() {
264
480
  return onmessage;
@@ -296,13 +512,18 @@ export function withClientPayments(transport, options) {
296
512
  if (isJSONRPCResultResponse(message) ||
297
513
  isJSONRPCErrorResponse(message)) {
298
514
  stopSyntheticProgress(String(message.id));
515
+ if (!isExplicitPaymentRequiredError(message) &&
516
+ !isExplicitPaymentPendingError(message)) {
517
+ const reqId = message.id;
518
+ rawRequestCache.delete(String(reqId));
519
+ retryCounts.delete(reqId);
520
+ }
521
+ }
522
+ if (hasContextPath) {
523
+ return;
299
524
  }
300
525
  // Best-effort: execute handler asynchronously, but never block delivery.
301
- void maybeHandlePaymentRequired(message, 'unknown').catch((err) => {
302
- const error = err instanceof Error ? err : new Error(String(err));
303
- onerror === null || onerror === void 0 ? void 0 : onerror(error);
304
- });
305
- onmessage === null || onmessage === void 0 ? void 0 : onmessage(message);
526
+ dispatchAndForward(message, 'unknown');
306
527
  };
307
528
  if (hasContextPath) {
308
529
  transport.onmessageWithContext = (message, ctx) => {
@@ -339,26 +560,25 @@ export function withClientPayments(transport, options) {
339
560
  }
340
561
  }
341
562
  }
342
- void maybeHandlePaymentRequired(message, requestEventId).catch((err) => {
343
- const error = err instanceof Error ? err : new Error(String(err));
344
- onerror === null || onerror === void 0 ? void 0 : onerror(error);
345
- });
346
563
  // Forward exactly once (see duplicate-delivery guard in `transport.onmessage`).
347
- onmessage === null || onmessage === void 0 ? void 0 : onmessage(message);
564
+ dispatchAndForward(message, requestEventId);
348
565
  };
349
566
  }
350
567
  transport.onerror = (err) => onerror === null || onerror === void 0 ? void 0 : onerror(err);
351
568
  transport.onclose = () => {
352
- stopAllSyntheticProgress();
569
+ disposeClientState();
353
570
  onclose === null || onclose === void 0 ? void 0 : onclose();
354
571
  };
355
572
  await transport.start();
356
573
  },
357
574
  async send(message) {
575
+ if ('method' in message && 'id' in message && message.id != null) {
576
+ rawRequestCache.set(String(message.id), message);
577
+ }
358
578
  await transport.send(message);
359
579
  },
360
580
  async close() {
361
- // stopAllSyntheticProgress is called via transport.onclose, no need to call it here
581
+ // disposeClientState is called via transport.onclose, no need to call it here
362
582
  await transport.close();
363
583
  },
364
584
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client-payments.js","sourceRoot":"","sources":["../../../src/payments/client-payments.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client-payments.js","sourceRoot":"","sources":["../../../src/payments/client-payments.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,16 @@ export declare const PAYMENT_REQUIRED_METHOD = "notifications/payment_required";
18
18
  export declare const PAYMENT_ACCEPTED_METHOD = "notifications/payment_accepted";
19
19
  /** CEP-8 notification method: server rejected payment (or refused to proceed). */
20
20
  export declare const PAYMENT_REJECTED_METHOD = "notifications/payment_rejected";
21
+ /** CEP-8 explicit-gating JSON-RPC error: payment required. */
22
+ export declare const PAYMENT_REQUIRED_ERROR_CODE = -32042;
23
+ /** CEP-8 explicit-gating JSON-RPC error: payment pending. */
24
+ export declare const PAYMENT_PENDING_ERROR_CODE = -32043;
25
+ /**
26
+ * CEP-8 unsupported payment_interaction negotiation error.
27
+ *
28
+ * Uses -32602 (Invalid params) as mandated by CEP-8 spec: the `payment_interaction`
29
+ * tag value is treated as an invalid parameter when the server does not support it.
30
+ * This is an intentional reuse of the standard JSON-RPC code, not a CEP-specific code.
31
+ */
32
+ export declare const UNSUPPORTED_PAYMENT_INTERACTION_ERROR_CODE = -32602;
21
33
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/payments/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,sCAAsC,QAAS,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,mCAAmC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/payments/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,sCAAsC,QAAS,CAAC;AAE7D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C,sEAAsE;AACtE,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,kFAAkF;AAClF,eAAO,MAAM,uBAAuB,mCAAmC,CAAC;AAExE,8DAA8D;AAC9D,eAAO,MAAM,2BAA2B,SAAS,CAAC;AAElD,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B,SAAS,CAAC;AAEjD;;;;;;GAMG;AACH,eAAO,MAAM,0CAA0C,SAAS,CAAC"}
@@ -18,4 +18,16 @@ export const PAYMENT_REQUIRED_METHOD = 'notifications/payment_required';
18
18
  export const PAYMENT_ACCEPTED_METHOD = 'notifications/payment_accepted';
19
19
  /** CEP-8 notification method: server rejected payment (or refused to proceed). */
20
20
  export const PAYMENT_REJECTED_METHOD = 'notifications/payment_rejected';
21
+ /** CEP-8 explicit-gating JSON-RPC error: payment required. */
22
+ export const PAYMENT_REQUIRED_ERROR_CODE = -32042;
23
+ /** CEP-8 explicit-gating JSON-RPC error: payment pending. */
24
+ export const PAYMENT_PENDING_ERROR_CODE = -32043;
25
+ /**
26
+ * CEP-8 unsupported payment_interaction negotiation error.
27
+ *
28
+ * Uses -32602 (Invalid params) as mandated by CEP-8 spec: the `payment_interaction`
29
+ * tag value is treated as an invalid parameter when the server does not support it.
30
+ * This is an intentional reuse of the standard JSON-RPC code, not a CEP-specific code.
31
+ */
32
+ export const UNSUPPORTED_PAYMENT_INTERACTION_ERROR_CODE = -32602;
21
33
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/payments/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,KAAM,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAO,CAAC;AAE9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AAExE,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AAExE,kFAAkF;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/payments/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,KAAM,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAO,CAAC;AAE9C,sEAAsE;AACtE,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AAExE,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AAExE,kFAAkF;AAClF,MAAM,CAAC,MAAM,uBAAuB,GAAG,gCAAgC,CAAC;AAExE,8DAA8D;AAC9D,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAK,CAAC;AAElD,6DAA6D;AAC7D,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAAK,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0CAA0C,GAAG,CAAC,KAAK,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { JSONRPCErrorResponse } from '@contextvm/mcp-sdk/types.js';
2
+ import type { ServerMiddlewareFn, PaymentProcessor } from './types.js';
3
+ import type { ServerPaymentsOptions } from './server-payments.js';
4
+ import type { AuthorizationStore } from './authorization-store.js';
5
+ export interface ExplicitGatingMiddlewareParams {
6
+ options: ServerPaymentsOptions;
7
+ authorizationStore: AuthorizationStore;
8
+ sendResponse: (clientPubkey: string, response: JSONRPCErrorResponse, requestEventId: string) => Promise<void>;
9
+ /** Pre-built PMI → processor map. Built locally when omitted (standalone use). */
10
+ processorsByPmi?: Map<string, PaymentProcessor>;
11
+ }
12
+ export declare function createExplicitGatingMiddleware(params: ExplicitGatingMiddlewareParams): ServerMiddlewareFn;
13
+ //# sourceMappingURL=server-explicit-gating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-explicit-gating.d.ts","sourceRoot":"","sources":["../../../src/payments/server-explicit-gating.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAcnE,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,qBAAqB,CAAC;IAC/B,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,YAAY,EAAE,CACZ,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,oBAAoB,EAC9B,cAAc,EAAE,MAAM,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,kFAAkF;IAClF,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CACjD;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,8BAA8B,GACrC,kBAAkB,CA6NpB"}