@apify/actors-mcp-server 0.20.1-beta.5 → 0.20.1-beta.7
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/apify_client.d.ts +2 -3
- package/dist/apify_client.d.ts.map +1 -1
- package/dist/apify_client.js +24 -4
- package/dist/apify_client.js.map +1 -1
- package/dist/payments/skyfire.d.ts.map +1 -1
- package/dist/payments/skyfire.js +11 -6
- package/dist/payments/skyfire.js.map +1 -1
- package/dist/test_kit/tsconfig.tsbuildinfo +1 -1
- package/dist/tools/actors/actor_executor.d.ts.map +1 -1
- package/dist/tools/actors/actor_executor.js +3 -5
- package/dist/tools/actors/actor_executor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/logging.d.ts +0 -8
- package/dist/utils/logging.d.ts.map +1 -1
- package/dist/utils/logging.js +0 -21
- package/dist/utils/logging.js.map +1 -1
- package/package.json +2 -1
package/dist/apify_client.d.ts
CHANGED
|
@@ -43,9 +43,8 @@ export declare class ApifyClient extends _ApifyClient {
|
|
|
43
43
|
* for the API or against the Actor's standby origin (`tools/actors/send_server_actor_request.ts`), and the
|
|
44
44
|
* status after: a non-2xx response resolves, and so does a 3xx with `maxRedirects: 0`. It skips
|
|
45
45
|
* `httpClient.call()`, which retries (a write could apply twice, and a body over the size cap is downloaded
|
|
46
|
-
* again) and turns a streamed error body into a junk message; that also skips its
|
|
47
|
-
*
|
|
48
|
-
* never buffered whole.
|
|
46
|
+
* again) and turns a streamed error body into a junk message; that also skips its User-Agent. axios aborts a
|
|
47
|
+
* body over `MAX_INLINE_BYTES` mid-stream (checked in axios 1.16.1), so it is never buffered whole.
|
|
49
48
|
*/
|
|
50
49
|
export declare function sendApifyApiRequest(apifyClient: ApifyClient, config: Pick<AxiosRequestConfig, 'url' | 'method' | 'params' | 'data' | 'headers' | 'responseType' | 'signal' | 'maxRedirects'>): Promise<AxiosResponse<unknown>>;
|
|
51
50
|
/** The mid-consumption abort axios raises when a body crosses `maxContentLength`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apify_client.d.ts","sourceRoot":"","sources":["../src/apify_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"apify_client.d.ts","sourceRoot":"","sources":["../src/apify_client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAM1D,eAAO,MAAM,qBAAqB,2BAA2B,CAAC;AAE9D,oIAAoI;AACpI,eAAO,MAAM,cAAc;;;CAGjB,CAAC;AACX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAgBlF,KAAK,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,GAAG;IAClE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,mGAAmG;IACnG,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,oEAAoE;IACpE,aAAa,CAAC,EAAE,cAAc,CAAC;CAClC,CAAC;AAEF,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,CAGjD;AAED,qBAAa,WAAY,SAAQ,YAAY;IACzC;;;OAGG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,cAAc,CAAC;IACxC,8CAA8C;IAC9C,mBAAmB,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;gBAEjD,OAAO,EAAE,0BAA0B;CAuClD;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACrC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,IAAI,CACR,kBAAkB,EAClB,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,cAAc,GAAG,QAAQ,GAAG,cAAc,CAChG,GACF,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAEjC;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE7D;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAYlH"}
|
package/dist/apify_client.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ApifyClient as _ApifyClient } from 'apify-client';
|
|
2
2
|
import { isAxiosError } from 'axios';
|
|
3
|
+
import { ProxyAgent } from 'proxy-agent';
|
|
3
4
|
import { API_PUBLIC_BASE_URL, API_PUBLIC_BASE_URL_STAGING, MAX_INLINE_BYTES, STAGING_MCP_HOSTNAME } from './const.js';
|
|
4
5
|
// Appended to the client's User-Agent via apify-client's userAgentSuffix option.
|
|
5
6
|
const USER_AGENT_ORIGIN = 'Origin/mcp-server';
|
|
@@ -10,6 +11,18 @@ export const REQUEST_ORIGIN = {
|
|
|
10
11
|
MCP: 'MCP',
|
|
11
12
|
APIFY_AI: 'APIFY_AI',
|
|
12
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* How long an idle keep-alive socket stays open. apify-client builds a private agent per `ApifyClient` and
|
|
16
|
+
* keeps a free socket for the whole request timeout (360 s), so a server that constructs a client per session
|
|
17
|
+
* and per tool call accumulates idle TLS sockets for minutes after each call. An in-flight request
|
|
18
|
+
* is unaffected: axios sets `config.timeout` on the active socket, and the agent timeout applies once it is free.
|
|
19
|
+
*/
|
|
20
|
+
const FREE_SOCKET_TIMEOUT_MILLIS = 15000;
|
|
21
|
+
/**
|
|
22
|
+
* One keep-alive pool for every client in the process, so sockets are reused across instances and closed
|
|
23
|
+
* when idle. A `ProxyAgent`, like apify-client's own, so `HTTPS_PROXY` and `NO_PROXY` keep working.
|
|
24
|
+
*/
|
|
25
|
+
const sharedAgent = new ProxyAgent({ keepAlive: true, timeout: FREE_SOCKET_TIMEOUT_MILLIS, scheduling: 'lifo' });
|
|
13
26
|
export function getApifyAPIBaseUrl() {
|
|
14
27
|
// Workaround for Actor server where the platform APIFY_API_BASE_URL did not work with getActorDefinition from actors.ts
|
|
15
28
|
if (process.env.APIFY_IS_AT_HOME)
|
|
@@ -54,7 +67,15 @@ export class ApifyClient extends _ApifyClient {
|
|
|
54
67
|
// Signed storage links (`getRecordPublicUrl`) are handed to clients, so they take the client-facing origin.
|
|
55
68
|
publicBaseUrl: (_c = clientOptions.publicBaseUrl) !== null && _c !== void 0 ? _c : getApifyAPIPublicBaseUrl(),
|
|
56
69
|
userAgentSuffix: USER_AGENT_ORIGIN,
|
|
57
|
-
|
|
70
|
+
// Per-request agents win over the instance defaults apify-client sets on first use.
|
|
71
|
+
requestInterceptors: [
|
|
72
|
+
(config) => ({
|
|
73
|
+
...config,
|
|
74
|
+
httpAgent: sharedAgent,
|
|
75
|
+
httpsAgent: sharedAgent,
|
|
76
|
+
headers: { ...config.headers, ...staticHeaders },
|
|
77
|
+
}),
|
|
78
|
+
],
|
|
58
79
|
});
|
|
59
80
|
/**
|
|
60
81
|
* Sent in the X-Apify-Request-Origin header; connections to an Actor's MCP server send it too. Always set; optional
|
|
@@ -82,9 +103,8 @@ export class ApifyClient extends _ApifyClient {
|
|
|
82
103
|
* for the API or against the Actor's standby origin (`tools/actors/send_server_actor_request.ts`), and the
|
|
83
104
|
* status after: a non-2xx response resolves, and so does a 3xx with `maxRedirects: 0`. It skips
|
|
84
105
|
* `httpClient.call()`, which retries (a write could apply twice, and a body over the size cap is downloaded
|
|
85
|
-
* again) and turns a streamed error body into a junk message; that also skips its
|
|
86
|
-
*
|
|
87
|
-
* never buffered whole.
|
|
106
|
+
* again) and turns a streamed error body into a junk message; that also skips its User-Agent. axios aborts a
|
|
107
|
+
* body over `MAX_INLINE_BYTES` mid-stream (checked in axios 1.16.1), so it is never buffered whole.
|
|
88
108
|
*/
|
|
89
109
|
export async function sendApifyApiRequest(apifyClient, config) {
|
|
90
110
|
return apifyClient.httpClient.axios.request({ ...config, maxContentLength: MAX_INLINE_BYTES });
|
package/dist/apify_client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apify_client.js","sourceRoot":"","sources":["../src/apify_client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"apify_client.js","sourceRoot":"","sources":["../src/apify_client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyfire.d.ts","sourceRoot":"","sources":["../../src/payments/skyfire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"skyfire.d.ts","sourceRoot":"","sources":["../../src/payments/skyfire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAQlE;;;;;GAKG;AACH,qBAAa,sBAAuB,YAAW,eAAe;IAC1D,QAAQ,CAAC,EAAE,EAAG,SAAS,CAAU;IACjC,QAAQ,CAAC,qBAAqB,QAAQ;WAEzB,MAAM,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAItD,kBAAkB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;IAqB9C,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI;IAO7D,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,cAAc;IAWhE,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAK3E,aAAa,IAAI,MAAM,GAAG,IAAI;IAI9B,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;CAW3C"}
|
package/dist/payments/skyfire.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import { redactSkyfirePayId } from '../utils/logging.js';
|
|
2
1
|
import { appendToolDescription, cloneToolEntry } from '../utils/tools.js';
|
|
3
2
|
import { PAYMENT_PROTOCOL_HEADER, SKYFIRE_PAY_ID_KEY, SKYFIRE_PAY_ID_PROPERTY_DESCRIPTION, SKYFIRE_README_CONTENT, SKYFIRE_TOOL_INSTRUCTIONS, } from './const.js';
|
|
3
|
+
const REDACTED_VALUE = '[REDACTED]';
|
|
4
|
+
const isPlainRecord = (value) => {
|
|
5
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
6
|
+
};
|
|
4
7
|
/**
|
|
5
8
|
* Skyfire payment provider.
|
|
6
9
|
*
|
|
@@ -66,11 +69,13 @@ export class SkyfirePaymentProvider {
|
|
|
66
69
|
return SKYFIRE_README_CONTENT;
|
|
67
70
|
}
|
|
68
71
|
redactForLogging(args) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
if (!isPlainRecord(args) || !(SKYFIRE_PAY_ID_KEY in args)) {
|
|
73
|
+
return args;
|
|
74
|
+
}
|
|
75
|
+
if (args[SKYFIRE_PAY_ID_KEY] === REDACTED_VALUE) {
|
|
76
|
+
return args;
|
|
77
|
+
}
|
|
78
|
+
return { ...args, [SKYFIRE_PAY_ID_KEY]: REDACTED_VALUE };
|
|
74
79
|
}
|
|
75
80
|
}
|
|
76
81
|
//# sourceMappingURL=skyfire.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyfire.js","sourceRoot":"","sources":["../../src/payments/skyfire.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"skyfire.js","sourceRoot":"","sources":["../../src/payments/skyfire.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACH,uBAAuB,EACvB,kBAAkB,EAClB,mCAAmC,EACnC,sBAAsB,EACtB,yBAAyB,GAC5B,MAAM,YAAY,CAAC;AAGpB,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,MAAM,aAAa,GAAG,CAAC,KAAc,EAAoC,EAAE;IACvE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChF,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,OAAO,sBAAsB;IAAnC;QACa;;;;mBAAK,SAAkB;WAAC;QACxB;;;;mBAAwB,IAAI;WAAC;IAiE1C,CAAC;IA/DG,MAAM,CAAC,KAAK,CAAC,MAAM;QACf,OAAO,IAAI,sBAAsB,EAAE,CAAC;IACxC,CAAC;IAED,kBAAkB,CAAC,IAAe;QAC9B,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAEpC,qBAAqB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAEzD,0DAA0D;QAC1D,IAAI,MAAM,CAAC,WAAW,IAAI,YAAY,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,UAAqC,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC7B,KAAK,CAAC,kBAAkB,CAAC,GAAG;oBACxB,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,mCAAmC;iBACnD,CAAC;YACN,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,IAA6B;QACzC,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,SAAS,EAAE,CAAC;YACzC,OAAO,qBAAqB,kBAAkB,yFAAyF,kBAAkB,IAAI,CAAC;QAClK,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,iBAAiB,CAAC,IAA6B;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,OAAO;gBACH,CAAC,kBAAkB,CAAC,EAAE,KAAK;gBAC3B,CAAC,uBAAuB,CAAC,EAAE,SAAS;aACvC,CAAC;QACN,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,IAA6B;QAC7C,MAAM,EAAE,CAAC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,aAAa;QACT,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAED,gBAAgB,CAAC,IAAa;QAC1B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,IAAI,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,cAAc,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAC;IAC7D,CAAC;CACJ"}
|