@apify/actors-mcp-server 0.13.0 → 0.14.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.
- package/dist/const.d.ts +6 -5
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +8 -7
- package/dist/const.js.map +1 -1
- package/dist/dev_server.d.ts +18 -6
- package/dist/dev_server.d.ts.map +1 -1
- package/dist/dev_server.js +141 -16
- package/dist/dev_server.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/legacy_server.d.ts +75 -0
- package/dist/mcp/legacy_server.d.ts.map +1 -0
- package/dist/mcp/legacy_server.js +563 -0
- package/dist/mcp/legacy_server.js.map +1 -0
- package/dist/mcp/server.d.ts +110 -86
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +275 -670
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/stateless_server.d.ts +58 -0
- package/dist/mcp/stateless_server.d.ts.map +1 -0
- package/dist/mcp/stateless_server.js +335 -0
- package/dist/mcp/stateless_server.js.map +1 -0
- package/dist/mcp/task_execution.d.ts +15 -8
- package/dist/mcp/task_execution.d.ts.map +1 -1
- package/dist/mcp/task_execution.js +31 -24
- package/dist/mcp/task_execution.js.map +1 -1
- package/dist/mcp/tool_call_engine.d.ts +23 -10
- package/dist/mcp/tool_call_engine.d.ts.map +1 -1
- package/dist/mcp/tool_call_engine.js +37 -28
- package/dist/mcp/tool_call_engine.js.map +1 -1
- package/dist/mcp/tool_call_telemetry.d.ts +4 -4
- package/dist/mcp/tool_call_telemetry.d.ts.map +1 -1
- package/dist/mcp/tool_call_telemetry.js +7 -7
- package/dist/mcp/tool_call_telemetry.js.map +1 -1
- package/dist/mcp/tool_dispatch.d.ts +19 -15
- package/dist/mcp/tool_dispatch.d.ts.map +1 -1
- package/dist/mcp/tool_dispatch.js +21 -19
- package/dist/mcp/tool_dispatch.js.map +1 -1
- package/dist/tools/actors/call_actor.js +3 -3
- package/dist/tools/actors/call_actor.js.map +1 -1
- package/dist/tools/actors/fetch_actor_details.d.ts.map +1 -1
- package/dist/tools/actors/fetch_actor_details.js +6 -6
- package/dist/tools/actors/fetch_actor_details.js.map +1 -1
- package/dist/tools/actors/search_actors.js +4 -4
- package/dist/tools/actors/search_actors.js.map +1 -1
- package/dist/tools/dev/report_problem.d.ts.map +1 -1
- package/dist/tools/dev/report_problem.js +4 -2
- package/dist/tools/dev/report_problem.js.map +1 -1
- package/dist/tools/runs/get_actor_run.js +4 -4
- package/dist/tools/runs/get_actor_run.js.map +1 -1
- package/dist/tools/runs/get_actor_run_log.d.ts.map +1 -1
- package/dist/tools/runs/get_actor_run_log.js +4 -2
- package/dist/tools/runs/get_actor_run_log.js.map +1 -1
- package/dist/tools/storage/get_dataset_items.js +4 -4
- package/dist/tools/storage/get_dataset_items.js.map +1 -1
- package/dist/tools/storage/storage_helpers.d.ts +1 -1
- package/dist/tools/storage/storage_helpers.d.ts.map +1 -1
- package/dist/tools/storage/storage_helpers.js +2 -2
- package/dist/tools/storage/storage_helpers.js.map +1 -1
- package/dist/tools/widgets/search_actors_widget.js +4 -4
- package/dist/tools/widgets/search_actors_widget.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +16 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/dist/types.js.map +1 -1
- package/dist/utils/tool_status.d.ts +6 -0
- package/dist/utils/tool_status.d.ts.map +1 -1
- package/dist/utils/tool_status.js +9 -2
- package/dist/utils/tool_status.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +10 -2
- package/server.json +1 -1
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
3
|
-
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="732a2716-76a9-532b-ab1c-5563e14aa9bf")}catch(e){}}();
|
|
4
3
|
import log from '@apify/log';
|
|
5
4
|
import { FAILURE_CATEGORY, TOOL_STATUS } from '../const.js';
|
|
6
5
|
import { withReportProblemNudge } from '../tools/dev/report_problem.js';
|
|
@@ -51,14 +50,18 @@ export async function emitTaskStatusNotification(taskId, mcpSessionId, taskStore
|
|
|
51
50
|
* @param params.apifyClient - ApifyClient configured with payment headers or the standard token
|
|
52
51
|
* @param params.apifyToken - Apify API token
|
|
53
52
|
* @param params.progressToken - Progress token for notifications
|
|
54
|
-
* @param params.extra - Extra request handler context
|
|
55
53
|
* @param params.mcpSessionId - MCP session ID for telemetry
|
|
56
54
|
* @param params.actorName - Actor name, used for telemetry and error diagnostics
|
|
57
55
|
* @param params.actorId - Actor ID, used for telemetry and error diagnostics
|
|
58
|
-
* @param params.
|
|
56
|
+
* @param params.taskStore - Task store (legacy) for status/result persistence
|
|
57
|
+
* @param params.server - v1 SDK server (legacy) for task-status notifications and logging
|
|
58
|
+
* @param params.sendNotification - Progress-notification sink for the running tool
|
|
59
59
|
*/
|
|
60
|
+
// TODO(#1156): collapse this flat param list (and its siblings in tool_call_engine.ts and
|
|
61
|
+
// tool_dispatch.ts) into lifetime-scoped session/request context objects.
|
|
60
62
|
export async function executeToolAndUpdateTask(params) {
|
|
61
|
-
const { taskId, tool, toolArgs, logSafeArgs, apifyClient, apifyToken, progressToken,
|
|
63
|
+
const { taskId, tool, toolArgs, logSafeArgs, apifyClient, apifyToken, progressToken, mcpSessionId, actorName, actorId, clientContext, taskStore, server, tools, actorStore, paymentProvider, telemetryEnabled, telemetryEnv, transportType, sendNotification, } = params;
|
|
64
|
+
const emitLog = async (msg) => server.sendLoggingMessage(msg);
|
|
62
65
|
let toolStatus = TOOL_STATUS.SUCCEEDED;
|
|
63
66
|
// Always populate actor fields so they're tracked on both success and failure paths.
|
|
64
67
|
let callDiagnostics = { ...buildActorFields(actorName, actorId) };
|
|
@@ -74,7 +77,8 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
74
77
|
toolName: getToolFullName(tool),
|
|
75
78
|
mcpSessionId,
|
|
76
79
|
apifyToken,
|
|
77
|
-
|
|
80
|
+
telemetryEnabled,
|
|
81
|
+
transportType,
|
|
78
82
|
clientContext,
|
|
79
83
|
});
|
|
80
84
|
const finishTaskTracking = (status, diagnostics, result) => {
|
|
@@ -89,21 +93,21 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
89
93
|
callDiagnostics: diagnostics,
|
|
90
94
|
args: toolArgs,
|
|
91
95
|
result,
|
|
92
|
-
|
|
96
|
+
telemetryEnv,
|
|
93
97
|
});
|
|
94
98
|
};
|
|
95
99
|
// Terminal step shared by every task outcome: store the result (expiry-tolerant),
|
|
96
100
|
// emit the status notification, record telemetry.
|
|
97
101
|
const completeTask = async (storeStatus, taskResult, status, diagnostics) => {
|
|
98
|
-
await storeTaskResultOrSkipIfExpired(
|
|
99
|
-
await emitTaskStatusNotification(taskId, mcpSessionId,
|
|
102
|
+
await storeTaskResultOrSkipIfExpired(taskStore, tool.name, taskId, storeStatus, taskResult, mcpSessionId);
|
|
103
|
+
await emitTaskStatusNotification(taskId, mcpSessionId, taskStore, server);
|
|
100
104
|
finishTaskTracking(status, diagnostics, taskResult);
|
|
101
105
|
};
|
|
102
106
|
// Once a task is cancelled the spec forbids writing a result; every storage path
|
|
103
107
|
// must short-circuit here. `logSuffix` is concatenated after "Task was cancelled"
|
|
104
108
|
// so we keep the existing log format and the existing telemetry status per path.
|
|
105
109
|
const skipIfTaskCancelled = async (logSuffix, status, diagnostics) => {
|
|
106
|
-
if (!(await isTaskCancelled(taskId, mcpSessionId,
|
|
110
|
+
if (!(await isTaskCancelled(taskId, mcpSessionId, taskStore)))
|
|
107
111
|
return false;
|
|
108
112
|
log.debug(`[executeToolAndUpdateTask] Task was cancelled${logSuffix}`, { taskId, mcpSessionId });
|
|
109
113
|
finishTaskTracking(status, diagnostics);
|
|
@@ -114,13 +118,12 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
114
118
|
// Actor run stops instead of consuming compute until natural completion.
|
|
115
119
|
// Per MCP tasks spec, request-level aborts (client disconnect,
|
|
116
120
|
// notifications/cancelled for the original request ID) MUST NOT cancel
|
|
117
|
-
// the task —
|
|
121
|
+
// the task — the request signal is intentionally not chained here.
|
|
118
122
|
const cancelWatcher = createTaskCancellationWatcher({
|
|
119
123
|
taskId,
|
|
120
124
|
mcpSessionId,
|
|
121
|
-
taskStore
|
|
125
|
+
taskStore,
|
|
122
126
|
});
|
|
123
|
-
const taskExtra = { ...extra, signal: cancelWatcher.signal };
|
|
124
127
|
try {
|
|
125
128
|
log.debug('[executeToolAndUpdateTask] Updating task status to working', {
|
|
126
129
|
taskId,
|
|
@@ -132,7 +135,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
132
135
|
// apart from a genuine store error.
|
|
133
136
|
// noinspection ExceptionCaughtLocallyJS
|
|
134
137
|
try {
|
|
135
|
-
await
|
|
138
|
+
await taskStore.updateTaskStatus(taskId, 'working', undefined, mcpSessionId);
|
|
136
139
|
}
|
|
137
140
|
catch (err) {
|
|
138
141
|
if (await skipIfTaskCancelled(' before execution started, skipping', TOOL_STATUS.ABORTED, {
|
|
@@ -141,34 +144,38 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
141
144
|
return;
|
|
142
145
|
throw err;
|
|
143
146
|
}
|
|
144
|
-
await emitTaskStatusNotification(taskId, mcpSessionId,
|
|
147
|
+
await emitTaskStatusNotification(taskId, mcpSessionId, taskStore, server);
|
|
145
148
|
// Execute the tool and get the result
|
|
146
149
|
let result = {};
|
|
147
150
|
// Callback to propagate Actor run statusMessage into the task store and emit a push notification.
|
|
148
151
|
// TODO(TC-3): cancel arriving while this is scheduled throws cancelled → working;
|
|
149
152
|
// currently swallowed by progress.ts's tick catch — guard or catch explicitly.
|
|
150
153
|
const onStatusMessage = async (message) => {
|
|
151
|
-
await
|
|
152
|
-
await emitTaskStatusNotification(taskId, mcpSessionId,
|
|
154
|
+
await taskStore.updateTaskStatus(taskId, 'working', message, mcpSessionId);
|
|
155
|
+
await emitTaskStatusNotification(taskId, mcpSessionId, taskStore, server);
|
|
153
156
|
};
|
|
154
157
|
// ACTOR_MCP never reads the tracker (matching the sync path, which passes null for it);
|
|
155
158
|
// INTERNAL/ACTOR get one built from taskId + onStatusMessage, which dispatch consumes
|
|
156
159
|
// and stops.
|
|
157
160
|
const progressTracker = tool.type === TOOL_TYPE.ACTOR_MCP
|
|
158
161
|
? null
|
|
159
|
-
: createProgressTracker(progressToken,
|
|
162
|
+
: createProgressTracker(progressToken, sendNotification, taskId, onStatusMessage);
|
|
160
163
|
const dispatchResult = await dispatchToolCall({
|
|
161
164
|
tool,
|
|
162
165
|
toolArgs,
|
|
163
166
|
logSafeArgs,
|
|
164
167
|
apifyToken,
|
|
165
168
|
apifyClient,
|
|
166
|
-
apifyMcpServer,
|
|
167
169
|
mcpSessionId,
|
|
168
170
|
progressToken,
|
|
169
171
|
progressTracker,
|
|
170
172
|
shouldForwardNotifications: false,
|
|
171
|
-
|
|
173
|
+
signal: cancelWatcher.signal,
|
|
174
|
+
sendNotification,
|
|
175
|
+
emitLog,
|
|
176
|
+
actorStore,
|
|
177
|
+
paymentProvider,
|
|
178
|
+
tools,
|
|
172
179
|
actorName,
|
|
173
180
|
actorId,
|
|
174
181
|
taskMode: true,
|
|
@@ -184,7 +191,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
184
191
|
// synchronous CallTool path, which task-mode calls like call-actor bypass).
|
|
185
192
|
result = withReportProblemNudge({
|
|
186
193
|
result,
|
|
187
|
-
tools
|
|
194
|
+
tools,
|
|
188
195
|
failingToolName: tool.name,
|
|
189
196
|
failureCategory: callDiagnostics.failure_category,
|
|
190
197
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -302,7 +309,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
302
309
|
isError: true,
|
|
303
310
|
internalToolStatus: toolStatus,
|
|
304
311
|
},
|
|
305
|
-
tools
|
|
312
|
+
tools,
|
|
306
313
|
failingToolName: tool.name,
|
|
307
314
|
failureCategory: callDiagnostics.failure_category,
|
|
308
315
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -314,7 +321,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
314
321
|
// Compile-time exhaustiveness guard (same `satisfies never` idiom as dispatchToolCall's
|
|
315
322
|
// default arm): a new TOOL_CALL_ERROR_KIND makes `errorResult` non-`never` here and fails
|
|
316
323
|
// to compile. Unreachable at runtime.
|
|
317
|
-
throw new
|
|
324
|
+
throw new Error(`Unknown tool-call error kind "${errorResult.kind}"`);
|
|
318
325
|
}
|
|
319
326
|
}
|
|
320
327
|
finally {
|
|
@@ -322,4 +329,4 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
322
329
|
}
|
|
323
330
|
}
|
|
324
331
|
//# sourceMappingURL=task_execution.js.map
|
|
325
|
-
//# debugId=
|
|
332
|
+
//# debugId=732a2716-76a9-532b-ab1c-5563e14aa9bf
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_execution.js","sources":["../../src/mcp/task_execution.ts"],"sourceRoot":"","names":[],"mappings":";;AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"task_execution.js","sources":["../../src/mcp/task_execution.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"732a2716-76a9-532b-ab1c-5563e14aa9bf"}
|
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
* Shared tools/call spine: gate, resolve, prepare payment/validation context, then dispatch.
|
|
3
3
|
* Returns neutral outcomes; the shell constructs protocol errors and side-channel notifications.
|
|
4
4
|
*/
|
|
5
|
-
import type {
|
|
6
|
-
import type { Notification, Request } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import type { ServerNotification } from '@modelcontextprotocol/sdk/types.js';
|
|
7
6
|
import type { ApifyClient } from '../apify_client.js';
|
|
8
|
-
import type { PaymentMeta, RequestHeaders } from '../payments/types.js';
|
|
9
|
-
import type { CallDiagnostics, ToolCallTelemetryProperties, ToolEntry, ToolStatus } from '../types.js';
|
|
7
|
+
import type { PaymentMeta, PaymentProvider, RequestHeaders } from '../payments/types.js';
|
|
8
|
+
import type { ActorStore, CallDiagnostics, ToolCallTelemetryProperties, ToolEntry, ToolStatus } from '../types.js';
|
|
10
9
|
import type { buildPaymentRequiredResponse } from '../utils/payment_errors.js';
|
|
11
10
|
import type { McpClientContext } from './client_context.js';
|
|
12
|
-
import type { ActorsMcpServer } from './server.js';
|
|
13
11
|
/** A pre-dispatch failure that the shell converts to v1's protocol-error sequence. */
|
|
14
12
|
export type InvalidToolCall = {
|
|
15
13
|
message: string;
|
|
@@ -48,9 +46,14 @@ export declare function buildPreflightFailureOutcome(standbyRejection: Record<st
|
|
|
48
46
|
callDiagnostics: CallDiagnostics;
|
|
49
47
|
result: Record<string, unknown> | ReturnType<typeof buildPaymentRequiredResponse>;
|
|
50
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* The tool a `tools/call` names, accepting a legacy alias or an Actor's full name. The single
|
|
51
|
+
* resolution rule: a shell that needs the tool before {@link prepareToolCall} returns (e.g. for its
|
|
52
|
+
* `outputSchema`) must resolve it the same way, or the two can disagree about which tool was called.
|
|
53
|
+
*/
|
|
54
|
+
export declare function resolveToolEntry(name: string, tools: Map<string, ToolEntry>): ToolEntry | undefined;
|
|
51
55
|
/** Prepares a call; protocol errors are left to the shell. */
|
|
52
56
|
export declare function prepareToolCall(params: {
|
|
53
|
-
apifyMcpServer: ActorsMcpServer;
|
|
54
57
|
apifyToken: string;
|
|
55
58
|
name: string;
|
|
56
59
|
args: Record<string, unknown> | undefined;
|
|
@@ -60,20 +63,30 @@ export declare function prepareToolCall(params: {
|
|
|
60
63
|
mcpSessionId: string | undefined;
|
|
61
64
|
telemetryData: ToolCallTelemetryProperties | null;
|
|
62
65
|
clientContext: McpClientContext | undefined;
|
|
63
|
-
|
|
66
|
+
tools: Map<string, ToolEntry>;
|
|
67
|
+
paymentProvider?: PaymentProvider;
|
|
68
|
+
allowUnauthMode?: boolean;
|
|
69
|
+
signal?: AbortSignal;
|
|
64
70
|
}): Promise<PreparedCall | InvalidToolCall | PreparedCallError>;
|
|
65
71
|
/** Runs pre-flight handling and dispatch, returning the exact wire payload. */
|
|
66
72
|
export declare function executeSyncToolCall(prepared: PreparedCall, params: {
|
|
67
|
-
apifyMcpServer: ActorsMcpServer;
|
|
68
73
|
apifyToken: string;
|
|
69
74
|
toolName: string;
|
|
70
75
|
mcpSessionId: string | undefined;
|
|
71
76
|
progressToken: string | number | undefined;
|
|
72
|
-
|
|
77
|
+
tools: Map<string, ToolEntry>;
|
|
78
|
+
actorStore?: ActorStore;
|
|
79
|
+
paymentProvider?: PaymentProvider;
|
|
80
|
+
signal: AbortSignal;
|
|
81
|
+
sendNotification: (notification: ServerNotification) => Promise<void>;
|
|
82
|
+
emitLog: (msg: {
|
|
83
|
+
level: string;
|
|
84
|
+
data?: unknown;
|
|
85
|
+
}) => Promise<void>;
|
|
73
86
|
}): Promise<ToolCallOutcome>;
|
|
74
87
|
/** Maps non-protocol errors to v1 tool results, including diagnostics and report-problem nudges. */
|
|
75
88
|
export declare function classifyToolCallError(error: unknown, params: {
|
|
76
|
-
|
|
89
|
+
tools: Map<string, ToolEntry>;
|
|
77
90
|
toolName: string;
|
|
78
91
|
failingToolName: string;
|
|
79
92
|
actorName: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_call_engine.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"tool_call_engine.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* Returns neutral outcomes; the shell constructs protocol errors and side-channel notifications.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
7
|
-
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="29531e2a-8545-5dc2-8f98-73723f2ba8d7")}catch(e){}}();
|
|
8
7
|
import dedent from 'dedent';
|
|
9
8
|
import log from '@apify/log';
|
|
10
9
|
import { ALLOWED_TASK_TOOL_EXECUTION_MODES, FAILURE_CATEGORY, HELPER_TOOLS, TOOL_STATUS } from '../const.js';
|
|
@@ -18,7 +17,7 @@ import { logHttpError } from '../utils/logging.js';
|
|
|
18
17
|
import { respondOk } from '../utils/mcp.js';
|
|
19
18
|
import { getRequestOriginForClient } from '../utils/mcp_clients.js';
|
|
20
19
|
import { createProgressTracker } from '../utils/progress.js';
|
|
21
|
-
import { extractAjvErrorDetails } from '../utils/tool_status.js';
|
|
20
|
+
import { extractAjvErrorDetails, isMcpError } from '../utils/tool_status.js';
|
|
22
21
|
import { buildActorFields, extractActorId, extractActorName, getToolFullName } from '../utils/tools.js';
|
|
23
22
|
import { buildToolCallErrorResult, TOOL_CALL_ERROR_KIND } from './tool_call_error_mapper.js';
|
|
24
23
|
import { dispatchToolCall } from './tool_dispatch.js';
|
|
@@ -34,13 +33,22 @@ export function buildPreflightFailureOutcome(standbyRejection, paymentRequiredRe
|
|
|
34
33
|
result: (standbyRejection !== null && standbyRejection !== void 0 ? standbyRejection : paymentRequiredResult),
|
|
35
34
|
};
|
|
36
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* The tool a `tools/call` names, accepting a legacy alias or an Actor's full name. The single
|
|
38
|
+
* resolution rule: a shell that needs the tool before {@link prepareToolCall} returns (e.g. for its
|
|
39
|
+
* `outputSchema`) must resolve it the same way, or the two can disagree about which tool was called.
|
|
40
|
+
*/
|
|
41
|
+
export function resolveToolEntry(name, tools) {
|
|
42
|
+
var _a;
|
|
43
|
+
const newName = (_a = legacyToolNameToNew(name)) !== null && _a !== void 0 ? _a : name;
|
|
44
|
+
return Array.from(tools.values()).find((tool) => tool.name === newName || getToolFullName(tool) === newName);
|
|
45
|
+
}
|
|
37
46
|
/** Prepares a call; protocol errors are left to the shell. */
|
|
38
47
|
export async function prepareToolCall(params) {
|
|
39
|
-
var _a, _b
|
|
40
|
-
const {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
const { apifyToken, name, meta, requestHeaders, isTaskRequest, telemetryData, clientContext, tools, paymentProvider, allowUnauthMode, } = params;
|
|
41
50
|
let { args } = params;
|
|
42
|
-
|
|
43
|
-
if (!apifyToken && !((_a = options.paymentProvider) === null || _a === void 0 ? void 0 : _a.allowsUnauthenticated) && !options.allowUnauthMode) {
|
|
51
|
+
if (!apifyToken && !(paymentProvider === null || paymentProvider === void 0 ? void 0 : paymentProvider.allowsUnauthenticated) && !allowUnauthMode) {
|
|
44
52
|
return {
|
|
45
53
|
message: dedent `
|
|
46
54
|
Apify API token is required but was not provided.
|
|
@@ -51,10 +59,9 @@ export async function prepareToolCall(params) {
|
|
|
51
59
|
callDiagnostics: { failure_category: FAILURE_CATEGORY.AUTH },
|
|
52
60
|
};
|
|
53
61
|
}
|
|
54
|
-
const
|
|
55
|
-
const toolEntry = Array.from(tools.values()).find((t) => t.name === newName || getToolFullName(t) === newName);
|
|
62
|
+
const toolEntry = resolveToolEntry(name, tools);
|
|
56
63
|
if (!toolEntry) {
|
|
57
|
-
const availableTools =
|
|
64
|
+
const availableTools = Array.from(tools.keys());
|
|
58
65
|
return {
|
|
59
66
|
message: dedent `
|
|
60
67
|
Tool "${name}" was not found.
|
|
@@ -94,7 +101,7 @@ export async function prepareToolCall(params) {
|
|
|
94
101
|
args = decodeDotPropertyNames(args);
|
|
95
102
|
decodedArgs = args;
|
|
96
103
|
const { toolArgsWithoutPayment: toolArgs, toolArgsRedacted: logSafeArgs, apifyClient, paymentRequiredResult, } = prepareToolCallContext({
|
|
97
|
-
provider:
|
|
104
|
+
provider: paymentProvider,
|
|
98
105
|
tool,
|
|
99
106
|
args: args,
|
|
100
107
|
apifyToken,
|
|
@@ -129,7 +136,7 @@ export async function prepareToolCall(params) {
|
|
|
129
136
|
decodedArgs,
|
|
130
137
|
};
|
|
131
138
|
}
|
|
132
|
-
const taskSupport = (
|
|
139
|
+
const taskSupport = (_a = tool.execution) === null || _a === void 0 ? void 0 : _a.taskSupport;
|
|
133
140
|
if (isTaskRequest && !ALLOWED_TASK_TOOL_EXECUTION_MODES.includes(taskSupport)) {
|
|
134
141
|
return {
|
|
135
142
|
message: dedent `
|
|
@@ -146,7 +153,6 @@ export async function prepareToolCall(params) {
|
|
|
146
153
|
};
|
|
147
154
|
}
|
|
148
155
|
// Standby Actors need a specific rejection instead of a generic 402 in both modes.
|
|
149
|
-
const { paymentProvider } = options;
|
|
150
156
|
const isCallActorTool = tool.name === HELPER_TOOLS.ACTOR_CALL || tool.name === HELPER_TOOLS.ACTOR_CALL_WIDGET;
|
|
151
157
|
const actorArg = toolArgs === null || toolArgs === void 0 ? void 0 : toolArgs.actor;
|
|
152
158
|
const standbyRejection = paymentProvider && isCallActorTool && typeof actorArg === 'string' && actorArg.length > 0
|
|
@@ -171,15 +177,15 @@ export async function prepareToolCall(params) {
|
|
|
171
177
|
}
|
|
172
178
|
catch (error) {
|
|
173
179
|
// Keep protocol errors as JSON-RPC errors; classify other failures with actor context.
|
|
174
|
-
if (error
|
|
180
|
+
if (isMcpError(error))
|
|
175
181
|
throw error;
|
|
176
182
|
const outcome = classifyToolCallError(error, {
|
|
177
|
-
|
|
183
|
+
tools,
|
|
178
184
|
toolName: name,
|
|
179
185
|
failingToolName: resolvedToolName,
|
|
180
186
|
actorName,
|
|
181
187
|
actorId,
|
|
182
|
-
isAborted: Boolean((
|
|
188
|
+
isAborted: Boolean((_b = params.signal) === null || _b === void 0 ? void 0 : _b.aborted),
|
|
183
189
|
mcpSessionId: params.mcpSessionId,
|
|
184
190
|
});
|
|
185
191
|
return { ...outcome, resolvedToolName, decodedArgs };
|
|
@@ -187,13 +193,12 @@ export async function prepareToolCall(params) {
|
|
|
187
193
|
}
|
|
188
194
|
/** Runs pre-flight handling and dispatch, returning the exact wire payload. */
|
|
189
195
|
export async function executeSyncToolCall(prepared, params) {
|
|
190
|
-
|
|
191
|
-
const { apifyMcpServer, apifyToken, toolName, mcpSessionId, progressToken, extra } = params;
|
|
196
|
+
const { apifyToken, toolName, mcpSessionId, progressToken, tools, actorStore, paymentProvider, signal, sendNotification, emitLog, } = params;
|
|
192
197
|
const { tool, toolArgs, logSafeArgs, apifyClient, actorName, actorId, standbyRejection, paymentRequiredResult } = prepared;
|
|
193
198
|
const resolvedToolName = getToolFullName(tool);
|
|
194
199
|
const nudge = (result, callDiagnostics) => withReportProblemNudge({
|
|
195
200
|
result,
|
|
196
|
-
tools
|
|
201
|
+
tools,
|
|
197
202
|
failingToolName: resolvedToolName,
|
|
198
203
|
failureCategory: callDiagnostics.failure_category,
|
|
199
204
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -212,7 +217,7 @@ export async function executeSyncToolCall(prepared, params) {
|
|
|
212
217
|
const progressTrackerOptIn = tool.type === TOOL_TYPE.ACTOR ||
|
|
213
218
|
(tool.type === TOOL_TYPE.INTERNAL &&
|
|
214
219
|
(tool.name === HELPER_TOOLS.ACTOR_CALL || tool.name === HELPER_TOOLS.ACTOR_RUNS_GET));
|
|
215
|
-
const progressTracker = progressTrackerOptIn ? createProgressTracker(progressToken,
|
|
220
|
+
const progressTracker = progressTrackerOptIn ? createProgressTracker(progressToken, sendNotification) : null;
|
|
216
221
|
try {
|
|
217
222
|
const dispatchResult = await dispatchToolCall({
|
|
218
223
|
tool,
|
|
@@ -220,12 +225,16 @@ export async function executeSyncToolCall(prepared, params) {
|
|
|
220
225
|
logSafeArgs,
|
|
221
226
|
apifyToken,
|
|
222
227
|
apifyClient,
|
|
223
|
-
apifyMcpServer,
|
|
224
228
|
mcpSessionId,
|
|
225
229
|
progressToken,
|
|
226
230
|
progressTracker,
|
|
227
231
|
shouldForwardNotifications: true,
|
|
228
|
-
|
|
232
|
+
signal,
|
|
233
|
+
sendNotification,
|
|
234
|
+
emitLog,
|
|
235
|
+
actorStore,
|
|
236
|
+
paymentProvider,
|
|
237
|
+
tools,
|
|
229
238
|
actorName,
|
|
230
239
|
actorId,
|
|
231
240
|
taskMode: false,
|
|
@@ -238,25 +247,25 @@ export async function executeSyncToolCall(prepared, params) {
|
|
|
238
247
|
}
|
|
239
248
|
catch (error) {
|
|
240
249
|
// Protocol errors stay JSON-RPC errors; a 402-coded McpError must not become a payment result.
|
|
241
|
-
if (error
|
|
250
|
+
if (isMcpError(error))
|
|
242
251
|
throw error;
|
|
243
252
|
return classifyToolCallError(error, {
|
|
244
|
-
|
|
253
|
+
tools,
|
|
245
254
|
toolName,
|
|
246
255
|
failingToolName: resolvedToolName,
|
|
247
256
|
actorName,
|
|
248
257
|
actorId,
|
|
249
|
-
isAborted: Boolean(
|
|
258
|
+
isAborted: Boolean(signal.aborted),
|
|
250
259
|
mcpSessionId,
|
|
251
260
|
});
|
|
252
261
|
}
|
|
253
262
|
}
|
|
254
263
|
/** Maps non-protocol errors to v1 tool results, including diagnostics and report-problem nudges. */
|
|
255
264
|
export function classifyToolCallError(error, params) {
|
|
256
|
-
const {
|
|
265
|
+
const { tools, toolName, failingToolName, actorName, actorId, isAborted, mcpSessionId } = params;
|
|
257
266
|
const nudge = (result, callDiagnostics) => withReportProblemNudge({
|
|
258
267
|
result,
|
|
259
|
-
tools
|
|
268
|
+
tools,
|
|
260
269
|
failingToolName,
|
|
261
270
|
failureCategory: callDiagnostics.failure_category,
|
|
262
271
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -301,4 +310,4 @@ export function classifyToolCallError(error, params) {
|
|
|
301
310
|
}
|
|
302
311
|
}
|
|
303
312
|
//# sourceMappingURL=tool_call_engine.js.map
|
|
304
|
-
//# debugId=
|
|
313
|
+
//# debugId=29531e2a-8545-5dc2-8f98-73723f2ba8d7
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_call_engine.js","sources":["../../src/mcp/tool_call_engine.ts"],"sourceRoot":"","names":[],"mappings":"AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"tool_call_engine.js","sources":["../../src/mcp/tool_call_engine.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"29531e2a-8545-5dc2-8f98-73723f2ba8d7"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { CallDiagnostics, ToolCallTelemetryProperties, ToolStatus } from '../types.js';
|
|
1
|
+
import type { CallDiagnostics, TelemetryEnv, ToolCallTelemetryProperties, ToolStatus, TransportType } from '../types.js';
|
|
2
2
|
import type { McpClientContext } from './client_context.js';
|
|
3
|
-
import type { ActorsMcpServer } from './server.js';
|
|
4
3
|
type PrepareTelemetryDataParams = {
|
|
5
4
|
toolName: string;
|
|
6
5
|
mcpSessionId: string | undefined;
|
|
7
6
|
apifyToken: string;
|
|
8
|
-
|
|
7
|
+
telemetryEnabled: boolean;
|
|
8
|
+
transportType?: TransportType;
|
|
9
9
|
clientContext: McpClientContext | undefined;
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
@@ -32,7 +32,7 @@ type LogToolCallAndTelemetryParams = {
|
|
|
32
32
|
callDiagnostics?: CallDiagnostics;
|
|
33
33
|
args?: Record<string, unknown>;
|
|
34
34
|
result?: unknown;
|
|
35
|
-
|
|
35
|
+
telemetryEnv: TelemetryEnv;
|
|
36
36
|
};
|
|
37
37
|
export declare function logToolCallAndTelemetry(params: LogToolCallAndTelemetryParams): void;
|
|
38
38
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_call_telemetry.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_call_telemetry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"tool_call_telemetry.d.ts","sourceRoot":"","sources":["../../src/mcp/tool_call_telemetry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,eAAe,EACf,YAAY,EACZ,2BAA2B,EAC3B,UAAU,EACV,aAAa,EAChB,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,KAAK,0BAA0B,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,EAAE,gBAAgB,GAAG,SAAS,CAAC;CAC/C,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,CACtC,MAAM,EAAE,0BAA0B,GACnC,OAAO,CAAC;IAAE,aAAa,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CA6BvF;AAED;;;;;GAKG;AACH,KAAK,6BAA6B,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAClD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,YAAY,CAAC;CAC9B,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,6BAA6B,GAAG,IAAI,CAmDnF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="
|
|
2
|
+
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="6ff2e69c-b770-5b2a-8574-df6ee5588db4")}catch(e){}}();
|
|
3
3
|
import log from '@apify/log';
|
|
4
4
|
import { ApifyClient } from '../apify_client.js';
|
|
5
5
|
import { HELPER_TOOLS, TOOL_STATUS } from '../const.js';
|
|
@@ -14,8 +14,8 @@ import { getPackageVersion } from '../utils/version.js';
|
|
|
14
14
|
*/
|
|
15
15
|
export async function prepareTelemetryData(params) {
|
|
16
16
|
var _a, _b;
|
|
17
|
-
const { toolName, mcpSessionId, apifyToken,
|
|
18
|
-
if (!
|
|
17
|
+
const { toolName, mcpSessionId, apifyToken, telemetryEnabled, transportType, clientContext } = params;
|
|
18
|
+
if (!telemetryEnabled) {
|
|
19
19
|
return { telemetryData: null, userId: null };
|
|
20
20
|
}
|
|
21
21
|
// Get userId from cache or fetch from API
|
|
@@ -34,7 +34,7 @@ export async function prepareTelemetryData(params) {
|
|
|
34
34
|
mcp_protocol_version: (clientContext === null || clientContext === void 0 ? void 0 : clientContext.protocolVersion) || '',
|
|
35
35
|
mcp_client_capabilities: (clientContext === null || clientContext === void 0 ? void 0 : clientContext.capabilities) || null,
|
|
36
36
|
mcp_session_id: mcpSessionId || '',
|
|
37
|
-
transport_type:
|
|
37
|
+
transport_type: transportType || '',
|
|
38
38
|
tool_name: toolName,
|
|
39
39
|
tool_status: TOOL_STATUS.SUCCEEDED, // Will be updated in finally
|
|
40
40
|
tool_exec_time_ms: 0, // Will be calculated in finally
|
|
@@ -74,15 +74,15 @@ export function logToolCallAndTelemetry(params) {
|
|
|
74
74
|
// threads them back. Applied uniformly, last. See deriveResourceIds.
|
|
75
75
|
...deriveResourceIds(params.args, params.result),
|
|
76
76
|
};
|
|
77
|
-
trackToolCall(params.userId, params.
|
|
77
|
+
trackToolCall(params.userId, params.telemetryEnv, finalizedTelemetryData);
|
|
78
78
|
// A successful report-problem call also emits a dedicated feedback event carrying the
|
|
79
79
|
// submission. A downstream Segment destination fans it out to Slack/GitHub.
|
|
80
80
|
if (params.toolName === HELPER_TOOLS.PROBLEM_REPORT &&
|
|
81
81
|
params.toolStatus === TOOL_STATUS.SUCCEEDED &&
|
|
82
82
|
params.args) {
|
|
83
|
-
trackReportedProblem(params.userId, params.
|
|
83
|
+
trackReportedProblem(params.userId, params.telemetryEnv, buildReportedProblemProperties(finalizedTelemetryData, params.args));
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
//# sourceMappingURL=tool_call_telemetry.js.map
|
|
88
|
-
//# debugId=
|
|
88
|
+
//# debugId=6ff2e69c-b770-5b2a-8574-df6ee5588db4
|