@apify/mcpc 0.1.11-beta.4 → 0.1.11-beta.5
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/CHANGELOG.md +43 -35
- package/README.md +62 -26
- package/dist/bridge/index.js +61 -41
- package/dist/bridge/index.js.map +1 -1
- package/dist/cli/commands/sessions.d.ts.map +1 -1
- package/dist/cli/commands/sessions.js +157 -158
- package/dist/cli/commands/sessions.js.map +1 -1
- package/dist/cli/commands/tools.d.ts +1 -1
- package/dist/cli/commands/tools.d.ts.map +1 -1
- package/dist/cli/commands/tools.js +77 -17
- package/dist/cli/commands/tools.js.map +1 -1
- package/dist/cli/commands/x402.d.ts.map +1 -1
- package/dist/cli/commands/x402.js +20 -6
- package/dist/cli/commands/x402.js.map +1 -1
- package/dist/cli/helpers.d.ts +1 -1
- package/dist/cli/helpers.d.ts.map +1 -1
- package/dist/cli/helpers.js +4 -18
- package/dist/cli/helpers.js.map +1 -1
- package/dist/cli/index.js +45 -38
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/output.d.ts +4 -2
- package/dist/cli/output.d.ts.map +1 -1
- package/dist/cli/output.js +74 -23
- package/dist/cli/output.js.map +1 -1
- package/dist/cli/parser.d.ts.map +1 -1
- package/dist/cli/parser.js +0 -2
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/shell.js +4 -4
- package/dist/cli/shell.js.map +1 -1
- package/dist/core/mcp-client.d.ts +10 -4
- package/dist/core/mcp-client.d.ts.map +1 -1
- package/dist/core/mcp-client.js +75 -7
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/transports.d.ts.map +1 -1
- package/dist/core/transports.js +3 -0
- package/dist/core/transports.js.map +1 -1
- package/dist/lib/auth/keychain.d.ts.map +1 -1
- package/dist/lib/auth/keychain.js +40 -15
- package/dist/lib/auth/keychain.js.map +1 -1
- package/dist/lib/auth/oauth-flow.d.ts.map +1 -1
- package/dist/lib/auth/oauth-flow.js +87 -10
- package/dist/lib/auth/oauth-flow.js.map +1 -1
- package/dist/lib/auth/oauth-utils.d.ts.map +1 -1
- package/dist/lib/auth/oauth-utils.js +3 -2
- package/dist/lib/auth/oauth-utils.js.map +1 -1
- package/dist/lib/bridge-client.js +1 -1
- package/dist/lib/bridge-manager.js +1 -1
- package/dist/lib/bridge-manager.js.map +1 -1
- package/dist/lib/proxy.d.ts +6 -0
- package/dist/lib/proxy.d.ts.map +1 -0
- package/dist/lib/proxy.js +13 -0
- package/dist/lib/proxy.js.map +1 -0
- package/dist/lib/session-client.d.ts +6 -3
- package/dist/lib/session-client.d.ts.map +1 -1
- package/dist/lib/session-client.js +13 -6
- package/dist/lib/session-client.js.map +1 -1
- package/dist/lib/types.d.ts +9 -3
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/x402/fetch-middleware.d.ts.map +1 -1
- package/dist/lib/x402/fetch-middleware.js +41 -8
- package/dist/lib/x402/fetch-middleware.js.map +1 -1
- package/docs/TODOs.md +0 -2
- package/package.json +1 -1
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { signPayment, parsePaymentRequired, } from './signer.js';
|
|
2
2
|
import { createLogger } from '../logger.js';
|
|
3
3
|
const logger = createLogger('x402-middleware');
|
|
4
|
+
const MCP_PAYMENT_META_KEY = 'x402/payment';
|
|
4
5
|
export function createX402FetchMiddleware(baseFetch, options) {
|
|
5
6
|
const { wallet, getToolByName } = options;
|
|
6
7
|
return async (url, init) => {
|
|
7
8
|
const proactiveHeader = await tryProactiveSigning(init, wallet, getToolByName);
|
|
8
9
|
if (proactiveHeader) {
|
|
9
10
|
logger.debug('Proactively signing x402 payment for tools/call');
|
|
10
|
-
const enhancedInit =
|
|
11
|
+
const enhancedInit = injectPayment(init, proactiveHeader);
|
|
11
12
|
const response = await baseFetch(url, enhancedInit);
|
|
12
13
|
if (response.status !== 402) {
|
|
13
14
|
return response;
|
|
@@ -89,7 +90,7 @@ async function handle402Fallback(url, originalInit, response402, baseFetch, wall
|
|
|
89
90
|
resource: header.resource,
|
|
90
91
|
});
|
|
91
92
|
logger.debug(`402 fallback payment signed: $${result.amountUsd.toFixed(4)} to ${result.to} on ${result.networkLabel}`);
|
|
92
|
-
const retryInit =
|
|
93
|
+
const retryInit = injectPayment(originalInit, result.paymentSignatureBase64);
|
|
93
94
|
return await baseFetch(url, retryInit);
|
|
94
95
|
}
|
|
95
96
|
catch (error) {
|
|
@@ -122,12 +123,44 @@ function extractToolCallName(body) {
|
|
|
122
123
|
return undefined;
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
|
-
function
|
|
126
|
+
function injectPayment(init, paymentSignatureBase64) {
|
|
126
127
|
const headers = new Headers(init?.headers);
|
|
127
|
-
headers.set('PAYMENT-SIGNATURE',
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
headers.set('PAYMENT-SIGNATURE', paymentSignatureBase64);
|
|
129
|
+
const result = { ...init, headers };
|
|
130
|
+
if (init?.body && typeof init.body === 'string') {
|
|
131
|
+
try {
|
|
132
|
+
const paymentPayload = JSON.parse(Buffer.from(paymentSignatureBase64, 'base64').toString('utf-8'));
|
|
133
|
+
result.body = injectPaymentMeta(init.body, paymentPayload);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
logger.debug('Failed to inject payment into body _meta:', error);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
function injectPaymentMeta(body, paymentPayload) {
|
|
142
|
+
try {
|
|
143
|
+
const parsed = JSON.parse(body);
|
|
144
|
+
if (Array.isArray(parsed)) {
|
|
145
|
+
return body;
|
|
146
|
+
}
|
|
147
|
+
const req = parsed;
|
|
148
|
+
if (req.method === 'tools/call' && req.params) {
|
|
149
|
+
return JSON.stringify({
|
|
150
|
+
...req,
|
|
151
|
+
params: {
|
|
152
|
+
...req.params,
|
|
153
|
+
_meta: {
|
|
154
|
+
...(req.params._meta || {}),
|
|
155
|
+
[MCP_PAYMENT_META_KEY]: paymentPayload,
|
|
156
|
+
},
|
|
157
|
+
},
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
return body;
|
|
161
|
+
}
|
|
162
|
+
catch {
|
|
163
|
+
return body;
|
|
164
|
+
}
|
|
132
165
|
}
|
|
133
166
|
//# sourceMappingURL=fetch-middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-middleware.js","sourceRoot":"","sources":["../../../src/lib/x402/fetch-middleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch-middleware.js","sourceRoot":"","sources":["../../../src/lib/x402/fetch-middleware.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,WAAW,EACX,oBAAoB,GAIrB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAG/C,MAAM,oBAAoB,GAAG,cAAc,CAAC;AA+C5C,MAAM,UAAU,yBAAyB,CACvC,SAAoB,EACpB,OAAmC;IAEnC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAE1C,OAAO,KAAK,EAAE,GAAiB,EAAE,IAAkB,EAAqB,EAAE;QAExE,MAAM,eAAe,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAC/E,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;YAChE,MAAM,YAAY,GAAG,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAGpD,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,QAAQ,CAAC;YAClB,CAAC;YAGD,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;YAC9E,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QAGD,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAG5C,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC5B,OAAO,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;AACJ,CAAC;AAMD,KAAK,UAAU,mBAAmB,CAChC,IAA6B,EAC7B,MAAoB,EACpB,aAAkD;IAElD,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;QAClC,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACxD,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,MAAM,IAAI,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,KAAK,CAAC,SAAS,QAAQ,kDAAkD,CAAC,CAAC;QAClF,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,MAAM,IAAI,GAAI,IAA+C,CAAC,KAAK,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;IACxB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChF,MAAM,CAAC,KAAK,CACV,SAAS,QAAQ,oEAAoE,CACtF,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAGD,MAAM,MAAM,GAA0B;QACpC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,IAAI;QACjD,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;KACzC,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,KAAK,CACV,8BAA8B,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,YAAY,EAAE,CACtG,CAAC;QACF,OAAO,MAAM,CAAC,sBAAsB,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,sCAAsC,QAAQ,IAAI,EAAE,KAAK,CAAC,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAKD,KAAK,UAAU,iBAAiB,CAC9B,GAAiB,EACjB,YAAqC,EACrC,WAAqB,EACrB,SAAoB,EACpB,MAAoB;IAGpB,MAAM,qBAAqB,GACzB,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAE7F,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,MAAM,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAC7E,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;IAE9E,IAAI,MAA6B,CAAC;IAClC,IAAI,MAA6B,CAAC;IAClC,IAAI,CAAC;QACH,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QAC/D,OAAO,WAAW,CAAC;IACrB,CAAC;IAGD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;YAC/B,MAAM;YACN,MAAM;YACN,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CACV,iCAAiC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,YAAY,EAAE,CACzG,CAAC;QAGF,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC7E,OAAO,MAAM,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC;AAMD,SAAS,mBAAmB,CAAC,IAAqC;IAChE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAGzC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,MAAwB,CAAC;YACrC,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gBACpD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAGD,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAsB,CAAC;YACnC,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;gBACpD,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAMD,SAAS,aAAa,CAAC,IAA6B,EAAE,sBAA8B;IAElF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAgB,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC;IAGjD,IAAI,IAAI,EAAE,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAC/B,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CACrC,CAAC;YAC7B,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;QAEnE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAOD,SAAS,iBAAiB,CAAC,IAAY,EAAE,cAAuC;IAC9E,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAMzC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,GAAG,GAAG,MAAwB,CAAC;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,SAAS,CAAC;gBACpB,GAAG,GAAG;gBACN,MAAM,EAAE;oBACN,GAAG,GAAG,CAAC,MAAM;oBACb,KAAK,EAAE;wBACL,GAAG,CAAE,GAAG,CAAC,MAAM,CAAC,KAAiC,IAAI,EAAE,CAAC;wBACxD,CAAC,oBAAoB,CAAC,EAAE,cAAc;qBACvC;iBACF;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/docs/TODOs.md
CHANGED