@apify/actors-mcp-server 0.10.7-beta.2 → 0.10.7-beta.3

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.
@@ -1,10 +1,26 @@
1
1
  import type { ToolEntry } from '../types.js';
2
2
  import type { PaymentHeaders, PaymentMeta, PaymentProvider, RequestHeaders } from './types.js';
3
3
  /**
4
- * x402 payment requirements returned by the Apify API.
5
- * Decoded from the base64 `payment-required` response header.
4
+ * One entry in a 402 `accepts` array. Mirrors the public x402 v2 wire shape;
5
+ * carried verbatim from the Apify API.
6
6
  */
7
- export type X402PaymentRequirements = Record<string, unknown>;
7
+ export type X402PaymentAccept = {
8
+ scheme?: string;
9
+ network?: string;
10
+ amount?: string;
11
+ asset?: string;
12
+ payTo?: string;
13
+ maxTimeoutSeconds?: number;
14
+ extra?: Record<string, unknown>;
15
+ };
16
+ /**
17
+ * Decoded `payment-required` payload returned by the Apify API.
18
+ */
19
+ export type X402PaymentRequirements = {
20
+ x402Version?: number;
21
+ resource?: Record<string, unknown>;
22
+ accepts?: X402PaymentAccept[];
23
+ };
8
24
  /**
9
25
  * Fetches x402 payment requirements from the Apify API.
10
26
  * Uses a module-level cache with a 30-minute TTL to prevent blocking SSE setup on every connection.
@@ -41,10 +57,11 @@ export declare class X402PaymentProvider implements PaymentProvider {
41
57
  */
42
58
  static create(): Promise<X402PaymentProvider>;
43
59
  /**
44
- * Extracts the first accept entry from the full payment requirements.
45
- * This is the flattened payment info that goes into _meta.x402 for tool schemas.
60
+ * Picks the preferred accept entry for flat `_meta.x402` advertising.
61
+ * Order follows `X402_PREFERRED_SCHEMES`; falls back to the first entry
62
+ * when no preferred scheme matches.
46
63
  */
47
- private getFirstAcceptEntry;
64
+ private selectPreferredAcceptEntry;
48
65
  decorateToolSchema(tool: ToolEntry): ToolEntry;
49
66
  validatePayment(_args: Record<string, unknown>, meta?: PaymentMeta, requestHeaders?: RequestHeaders): string | null;
50
67
  getPaymentHeaders(_args: Record<string, unknown>, meta?: PaymentMeta, requestHeaders?: RequestHeaders): PaymentHeaders;
@@ -1 +1 @@
1
- {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../src/payments/x402.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAuB/F;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAW9D;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CA+CjG;AA4BD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAI3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAH1C,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,qBAAqB,QAAQ;gBAET,YAAY,CAAC,EAAE,uBAAuB,YAAA;IAEnE;;;OAGG;WACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKnD;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAO3B,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAyB9C,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAInH,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,cAAc;IAOtH,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK3E,sBAAsB,IAAI,uBAAuB,GAAG,SAAS;IAI7D,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAI3C"}
1
+ {"version":3,"file":"x402.d.ts","sourceRoot":"","sources":["../../src/payments/x402.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAiC/F;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACjC,CAAC;AAWF;;;;;;;;GAQG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,uBAAuB,GAAG,SAAS,CAAC,CA+CjG;AA4BD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAoB,YAAW,eAAe;IAI3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAH1C,QAAQ,CAAC,EAAE,EAAG,MAAM,CAAU;IAC9B,QAAQ,CAAC,qBAAqB,QAAQ;gBAET,YAAY,CAAC,EAAE,uBAAuB,YAAA;IAEnE;;;OAGG;WACU,MAAM,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAKnD;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAQlC,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IA8B9C,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI;IAInH,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,cAAc,GAAG,cAAc;IAOtH,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK3E,sBAAsB,IAAI,uBAAuB,GAAG,SAAS;IAI7D,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAI3C"}
@@ -17,6 +17,15 @@ const X402_TOOL_INSTRUCTIONS = [
17
17
  'Include a valid x402 payment signature in the request metadata (_meta["x402/payment"]).',
18
18
  'Your MCP client must support the x402 payment protocol.',
19
19
  ].join(' ');
20
+ /**
21
+ * Preferred scheme order when selecting the flat fields exposed on `_meta.x402`.
22
+ *
23
+ * `exact` first to keep the flat-fields contract back-compatible with clients
24
+ * that don't iterate `accepts[]` — they continue to sign `exact` payments as
25
+ * before this PR. Clients that walk `accepts[]` (post-#876 — the current
26
+ * mcpc, the canary) can opt into `upto` via their scheme preference.
27
+ */
28
+ const X402_PREFERRED_SCHEMES = ['exact', 'upto'];
20
29
  // Module-level cache for X402 payment requirements.
21
30
  // We cache the Promise itself (rather than just the JSON result) to prevent the "thundering herd"
22
31
  // problem during server startup, where multiple concurrent incoming requests might otherwise
@@ -149,31 +158,37 @@ export class X402PaymentProvider {
149
158
  return new X402PaymentProvider(requirements);
150
159
  }
151
160
  /**
152
- * Extracts the first accept entry from the full payment requirements.
153
- * This is the flattened payment info that goes into _meta.x402 for tool schemas.
161
+ * Picks the preferred accept entry for flat `_meta.x402` advertising.
162
+ * Order follows `X402_PREFERRED_SCHEMES`; falls back to the first entry
163
+ * when no preferred scheme matches.
154
164
  */
155
- getFirstAcceptEntry() {
156
- if (!this.requirements)
157
- return undefined;
158
- const accepts = this.requirements.accepts;
159
- if (!Array.isArray(accepts) || accepts.length === 0)
160
- return undefined;
165
+ selectPreferredAcceptEntry(accepts) {
166
+ for (const preferred of X402_PREFERRED_SCHEMES) {
167
+ const match = accepts.find((entry) => entry.scheme === preferred);
168
+ if (match)
169
+ return match;
170
+ }
161
171
  return accepts[0];
162
172
  }
163
173
  decorateToolSchema(tool) {
164
174
  if (!tool.paymentRequired)
165
175
  return tool;
166
176
  const cloned = cloneToolEntry(tool);
167
- // Add _meta.x402 to signal payment requirement to clients (idempotent)
168
- // Only include the first accept entry (scheme, network, amount, asset, payTo, etc.)
169
- // matching the demo server format — NOT the full API response
177
+ // Flat preferred fields stay for back-compat with clients that don't iterate `accepts[]`.
170
178
  if (!cloned._meta) {
171
179
  cloned._meta = {};
172
180
  }
173
181
  const metaRecord = cloned._meta;
174
182
  if (!metaRecord.x402) {
175
- const acceptEntry = this.getFirstAcceptEntry();
176
- metaRecord.x402 = { paymentRequired: true, ...acceptEntry };
183
+ const reqs = this.requirements ? structuredClone(this.requirements) : undefined;
184
+ const acceptsRaw = reqs === null || reqs === void 0 ? void 0 : reqs.accepts;
185
+ const accepts = Array.isArray(acceptsRaw) && acceptsRaw.length > 0 ? acceptsRaw : undefined;
186
+ const preferred = accepts ? this.selectPreferredAcceptEntry(accepts) : undefined;
187
+ metaRecord.x402 = {
188
+ paymentRequired: true,
189
+ ...(preferred !== null && preferred !== void 0 ? preferred : {}),
190
+ ...(accepts && { accepts }),
191
+ };
177
192
  }
178
193
  // Append x402 instructions to description (idempotent)
179
194
  if (cloned.description && !cloned.description.includes(X402_TOOL_INSTRUCTIONS)) {
@@ -1 +1 @@
1
- {"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/payments/x402.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"x402.js","sourceRoot":"","sources":["../../src/payments/x402.ts"],"names":[],"mappings":"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"}