@contextvm/sdk 0.4.1 → 0.4.2
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/dist/esm/payments/client-payments.d.ts.map +1 -1
- package/dist/esm/payments/client-payments.js +39 -0
- package/dist/esm/payments/client-payments.js.map +1 -1
- package/dist/esm/payments/server-payments.d.ts.map +1 -1
- package/dist/esm/payments/server-payments.js +37 -0
- package/dist/esm/payments/server-payments.js.map +1 -1
- package/package.json +9 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-payments.d.ts","sourceRoot":"","sources":["../../../src/payments/client-payments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAM/E,OAAO,EAAE,cAAc,EAA+B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"client-payments.d.ts","sourceRoot":"","sources":["../../../src/payments/client-payments.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAM/E,OAAO,EAAE,cAAc,EAA+B,MAAM,YAAY,CAAC;AAUzE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;CACrC;AAWD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,qBAAqB,GAC7B,SAAS,CAsKX"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isJSONRPCNotification, } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import { NostrClientTransport } from '../transport/nostr-client-transport.js';
|
|
3
|
+
import { createLogger } from '../core/utils/logger.js';
|
|
3
4
|
function isPaymentRequiredNotification(msg) {
|
|
4
5
|
return (isJSONRPCNotification(msg) &&
|
|
5
6
|
msg.method === 'notifications/payment_required');
|
|
@@ -8,10 +9,14 @@ function isPaymentRequiredNotification(msg) {
|
|
|
8
9
|
* Wraps a transport to automatically handle CEP-8 payment requests.
|
|
9
10
|
*/
|
|
10
11
|
export function withClientPayments(transport, options) {
|
|
12
|
+
const logger = createLogger('client-payments');
|
|
11
13
|
// Ensure CEP-8 discovery/negotiation: when using Nostr transports, always advertise
|
|
12
14
|
// supported PMIs derived from the handler list (preference order = handler order).
|
|
13
15
|
if (transport instanceof NostrClientTransport) {
|
|
14
16
|
transport.setClientPmis(options.handlers.map((h) => h.pmi));
|
|
17
|
+
logger.debug('advertised client PMIs', {
|
|
18
|
+
pmis: options.handlers.map((h) => h.pmi),
|
|
19
|
+
});
|
|
15
20
|
}
|
|
16
21
|
const handlersByPmi = new Map(options.handlers.map((h) => [h.pmi, h]));
|
|
17
22
|
// Prevent double-paying if relays or servers deliver duplicate payment_required notifications.
|
|
@@ -25,11 +30,19 @@ export function withClientPayments(transport, options) {
|
|
|
25
30
|
}
|
|
26
31
|
const handler = handlersByPmi.get(message.params.pmi);
|
|
27
32
|
if (!handler) {
|
|
33
|
+
logger.debug('no handler for PMI, ignoring payment_required', {
|
|
34
|
+
pmi: message.params.pmi,
|
|
35
|
+
requestEventId,
|
|
36
|
+
});
|
|
28
37
|
return;
|
|
29
38
|
}
|
|
30
39
|
// Best-effort client-side dedupe keyed by pay_req.
|
|
31
40
|
// IMPORTANT: claim synchronously before any await to avoid double-pay races.
|
|
32
41
|
if (inFlightPayReqs.has(message.params.pay_req)) {
|
|
42
|
+
logger.debug('duplicate pay_req detected, skipping', {
|
|
43
|
+
payReq: message.params.pay_req.substring(0, 20) + '...',
|
|
44
|
+
requestEventId,
|
|
45
|
+
});
|
|
33
46
|
return;
|
|
34
47
|
}
|
|
35
48
|
inFlightPayReqs.add(message.params.pay_req);
|
|
@@ -40,11 +53,37 @@ export function withClientPayments(transport, options) {
|
|
|
40
53
|
description: message.params.description,
|
|
41
54
|
requestEventId,
|
|
42
55
|
};
|
|
56
|
+
logger.info('processing payment_required', {
|
|
57
|
+
requestEventId,
|
|
58
|
+
pmi: message.params.pmi,
|
|
59
|
+
amount: message.params.amount,
|
|
60
|
+
});
|
|
43
61
|
const canHandle = handler.canHandle ? await handler.canHandle(req) : true;
|
|
44
62
|
if (!canHandle) {
|
|
63
|
+
logger.debug('handler declined to handle', {
|
|
64
|
+
requestEventId,
|
|
65
|
+
pmi: message.params.pmi,
|
|
66
|
+
});
|
|
45
67
|
return;
|
|
46
68
|
}
|
|
69
|
+
logger.debug('invoking payment handler', {
|
|
70
|
+
requestEventId,
|
|
71
|
+
handler: handler.constructor.name,
|
|
72
|
+
pmi: message.params.pmi,
|
|
73
|
+
});
|
|
47
74
|
await handler.handle(req);
|
|
75
|
+
logger.info('payment handler completed successfully', {
|
|
76
|
+
requestEventId,
|
|
77
|
+
pmi: message.params.pmi,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
logger.error('payment handler failed', {
|
|
82
|
+
requestEventId,
|
|
83
|
+
pmi: message.params.pmi,
|
|
84
|
+
error: error instanceof Error ? error.message : String(error),
|
|
85
|
+
});
|
|
86
|
+
throw error;
|
|
48
87
|
}
|
|
49
88
|
finally {
|
|
50
89
|
inFlightPayReqs.delete(message.params.pay_req);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-payments.js","sourceRoot":"","sources":["../../../src/payments/client-payments.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,GAEtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"client-payments.js","sourceRoot":"","sources":["../../../src/payments/client-payments.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-payments.d.ts","sourceRoot":"","sources":["../../../src/payments/server-payments.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAE5B,gBAAgB,EAGhB,gBAAgB,EAGhB,cAAc,EACd,kBAAkB,EAEnB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"server-payments.d.ts","sourceRoot":"","sources":["../../../src/payments/server-payments.ts"],"names":[],"mappings":"AACA,OAAO,EACL,4BAA4B,EAE5B,gBAAgB,EAGhB,gBAAgB,EAGhB,cAAc,EACd,kBAAkB,EAEnB,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,SAAS,gBAAgB,EAAE,CAAC;IACxC,kBAAkB,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAEhD,6EAA6E;IAC7E,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAuHD;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,MAAM,EAAE;IACrD,MAAM,EAAE,4BAA4B,CAAC;IACrC,OAAO,EAAE,qBAAqB,CAAC;CAChC,GAAG,kBAAkB,CAuMrB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { isJsonRpcRequest, } from './types.js';
|
|
2
2
|
import { LruCache } from '../core/utils/lru-cache.js';
|
|
3
3
|
import { withTimeout } from '../core/utils/utils.js';
|
|
4
|
+
import { createLogger } from '../core/utils/logger.js';
|
|
4
5
|
function purgeExpiredPending(params) {
|
|
5
6
|
let checked = 0;
|
|
6
7
|
for (const [key, value] of params.pending.entries()) {
|
|
@@ -83,6 +84,7 @@ function isResolvePriceRejection(quote) {
|
|
|
83
84
|
export function createServerPaymentsMiddleware(params) {
|
|
84
85
|
var _a, _b;
|
|
85
86
|
const { sender, options } = params;
|
|
87
|
+
const logger = createLogger('server-payments');
|
|
86
88
|
const processorsByPmi = new Map(options.processors.map((p) => [p.pmi, p]));
|
|
87
89
|
const paymentTtlMs = (_a = options.paymentTtlMs) !== null && _a !== void 0 ? _a : 300000;
|
|
88
90
|
const pending = new LruCache((_b = options.maxPendingPayments) !== null && _b !== void 0 ? _b : 1000);
|
|
@@ -97,6 +99,12 @@ export function createServerPaymentsMiddleware(params) {
|
|
|
97
99
|
await forward(message);
|
|
98
100
|
return;
|
|
99
101
|
}
|
|
102
|
+
logger.debug('priced capability matched', {
|
|
103
|
+
method: message.method,
|
|
104
|
+
requestEventId: String(message.id),
|
|
105
|
+
pricedMethod: priced.method,
|
|
106
|
+
pricedName: priced.name,
|
|
107
|
+
});
|
|
100
108
|
const requestEventId = String(message.id);
|
|
101
109
|
const now = Date.now();
|
|
102
110
|
// Opportunistic cleanup so one-shot spam doesn't accumulate until reuse.
|
|
@@ -105,6 +113,9 @@ export function createServerPaymentsMiddleware(params) {
|
|
|
105
113
|
if (existing && existing.expiresAtMs > now) {
|
|
106
114
|
// Duplicate request event id: await the in-flight work deterministically.
|
|
107
115
|
// This avoids double-charge races and avoids black-holing duplicates.
|
|
116
|
+
logger.debug('duplicate request event detected, awaiting in-flight', {
|
|
117
|
+
requestEventId,
|
|
118
|
+
});
|
|
108
119
|
await existing.inFlight;
|
|
109
120
|
return;
|
|
110
121
|
}
|
|
@@ -132,6 +143,12 @@ export function createServerPaymentsMiddleware(params) {
|
|
|
132
143
|
: { amount: priced.amount, description: priced.description };
|
|
133
144
|
// Handle rejection: emit payment_rejected and do not forward.
|
|
134
145
|
if (isResolvePriceRejection(quote)) {
|
|
146
|
+
logger.info('payment rejected', {
|
|
147
|
+
requestEventId,
|
|
148
|
+
pmi: processor.pmi,
|
|
149
|
+
amount: priced.amount,
|
|
150
|
+
reason: quote.message,
|
|
151
|
+
});
|
|
135
152
|
const rejectedNotification = createPaymentRejectedNotification({
|
|
136
153
|
pmi: processor.pmi,
|
|
137
154
|
amount: priced.amount,
|
|
@@ -162,11 +179,22 @@ export function createServerPaymentsMiddleware(params) {
|
|
|
162
179
|
ttl: paymentRequired.ttl,
|
|
163
180
|
_meta: mergedMeta,
|
|
164
181
|
});
|
|
182
|
+
logger.info('payment required notification sent', {
|
|
183
|
+
requestEventId,
|
|
184
|
+
pmi: paymentRequired.pmi,
|
|
185
|
+
amount: paymentRequired.amount,
|
|
186
|
+
ttl: paymentRequired.ttl,
|
|
187
|
+
});
|
|
165
188
|
await sender.sendNotification(ctx.clientPubkey, requiredNotification, requestEventId);
|
|
166
189
|
const verifyTimeoutMs = getVerificationTimeoutMs({
|
|
167
190
|
ttlSeconds: paymentRequired.ttl,
|
|
168
191
|
});
|
|
169
192
|
const effectiveTimeoutMs = Math.min(verifyTimeoutMs, paymentTtlMs);
|
|
193
|
+
logger.debug('verifying payment', {
|
|
194
|
+
requestEventId,
|
|
195
|
+
pmi: paymentRequired.pmi,
|
|
196
|
+
timeoutMs: effectiveTimeoutMs,
|
|
197
|
+
});
|
|
170
198
|
const controller = new AbortController();
|
|
171
199
|
const verified = await withTimeout(processor.verifyPayment({
|
|
172
200
|
pay_req: paymentRequired.pay_req,
|
|
@@ -174,12 +202,21 @@ export function createServerPaymentsMiddleware(params) {
|
|
|
174
202
|
clientPubkey: ctx.clientPubkey,
|
|
175
203
|
abortSignal: controller.signal,
|
|
176
204
|
}), effectiveTimeoutMs, 'verifyPayment timed out').finally(() => controller.abort());
|
|
205
|
+
logger.info('payment accepted', {
|
|
206
|
+
requestEventId,
|
|
207
|
+
pmi: paymentRequired.pmi,
|
|
208
|
+
amount: paymentRequired.amount,
|
|
209
|
+
});
|
|
177
210
|
const acceptedNotification = createPaymentAcceptedNotification({
|
|
178
211
|
amount: paymentRequired.amount,
|
|
179
212
|
pmi: paymentRequired.pmi,
|
|
180
213
|
_meta: verified._meta,
|
|
181
214
|
});
|
|
182
215
|
await sender.sendNotification(ctx.clientPubkey, acceptedNotification, requestEventId);
|
|
216
|
+
logger.debug('forwarding priced request after payment', {
|
|
217
|
+
requestEventId,
|
|
218
|
+
method: message.method,
|
|
219
|
+
});
|
|
183
220
|
await forward(message);
|
|
184
221
|
}
|
|
185
222
|
})();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-payments.js","sourceRoot":"","sources":["../../../src/payments/server-payments.ts"],"names":[],"mappings":"AACA,OAAO,EAWL,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"server-payments.js","sourceRoot":"","sources":["../../../src/payments/server-payments.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contextvm/sdk",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.2",
|
|
4
4
|
"description": "CtxVM SDK for JavaScript/TypeScript",
|
|
5
5
|
"license": "LGPL-3.0-1",
|
|
6
6
|
"author": "ContextVM",
|
|
@@ -63,6 +63,14 @@
|
|
|
63
63
|
"./transport": {
|
|
64
64
|
"types": "./dist/esm/transport/index.d.ts",
|
|
65
65
|
"default": "./dist/esm/transport/index.js"
|
|
66
|
+
},
|
|
67
|
+
"./payments": {
|
|
68
|
+
"types": "./dist/esm/payments/index.d.ts",
|
|
69
|
+
"default": "./dist/esm/payments/index.js"
|
|
70
|
+
},
|
|
71
|
+
"./payments/*": {
|
|
72
|
+
"types": "./dist/esm/payments/*.d.ts",
|
|
73
|
+
"default": "./dist/esm/payments/*.js"
|
|
66
74
|
}
|
|
67
75
|
},
|
|
68
76
|
"types": "./dist/esm/index.d.ts",
|