@apify/actors-mcp-server 0.12.1-beta.3 → 0.13.1-beta.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 +6 -5
- 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 +139 -14
- 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 +4 -2
- 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 +560 -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 +273 -668
- 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 +332 -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 +29 -22
- 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 +35 -26
- 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 +5 -5
- 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 +19 -17
- package/dist/mcp/tool_dispatch.js.map +1 -1
- package/dist/tools/actors/call_actor.js +1 -1
- 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 +4 -4
- package/dist/tools/actors/fetch_actor_details.js.map +1 -1
- package/dist/tools/actors/search_actors.js +2 -2
- 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 +2 -0
- package/dist/tools/dev/report_problem.js.map +1 -1
- package/dist/tools/runs/get_actor_run.js +2 -2
- 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 +2 -0
- package/dist/tools/runs/get_actor_run_log.js.map +1 -1
- package/dist/tools/storage/get_dataset_items.js +2 -2
- 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.map +1 -1
- package/dist/tools/widgets/search_actors_widget.js +2 -2
- 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.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 +7 -0
- package/dist/utils/tool_status.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +6 -2
- package/server.json +1 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
2
1
|
import log from '@apify/log';
|
|
3
2
|
import { FAILURE_CATEGORY, TOOL_STATUS } from '../const.js';
|
|
4
3
|
import { withReportProblemNudge } from '../tools/dev/report_problem.js';
|
|
@@ -49,14 +48,18 @@ export async function emitTaskStatusNotification(taskId, mcpSessionId, taskStore
|
|
|
49
48
|
* @param params.apifyClient - ApifyClient configured with payment headers or the standard token
|
|
50
49
|
* @param params.apifyToken - Apify API token
|
|
51
50
|
* @param params.progressToken - Progress token for notifications
|
|
52
|
-
* @param params.extra - Extra request handler context
|
|
53
51
|
* @param params.mcpSessionId - MCP session ID for telemetry
|
|
54
52
|
* @param params.actorName - Actor name, used for telemetry and error diagnostics
|
|
55
53
|
* @param params.actorId - Actor ID, used for telemetry and error diagnostics
|
|
56
|
-
* @param params.
|
|
54
|
+
* @param params.taskStore - Task store (legacy) for status/result persistence
|
|
55
|
+
* @param params.server - v1 SDK server (legacy) for task-status notifications and logging
|
|
56
|
+
* @param params.sendNotification - Progress-notification sink for the running tool
|
|
57
57
|
*/
|
|
58
|
+
// TODO(#1156): collapse this flat param list (and its siblings in tool_call_engine.ts and
|
|
59
|
+
// tool_dispatch.ts) into lifetime-scoped session/request context objects.
|
|
58
60
|
export async function executeToolAndUpdateTask(params) {
|
|
59
|
-
const { taskId, tool, toolArgs, logSafeArgs, apifyClient, apifyToken, progressToken,
|
|
61
|
+
const { taskId, tool, toolArgs, logSafeArgs, apifyClient, apifyToken, progressToken, mcpSessionId, actorName, actorId, clientContext, taskStore, server, tools, actorStore, paymentProvider, telemetryEnabled, telemetryEnv, transportType, sendNotification, } = params;
|
|
62
|
+
const emitLog = async (msg) => server.sendLoggingMessage(msg);
|
|
60
63
|
let toolStatus = TOOL_STATUS.SUCCEEDED;
|
|
61
64
|
// Always populate actor fields so they're tracked on both success and failure paths.
|
|
62
65
|
let callDiagnostics = { ...buildActorFields(actorName, actorId) };
|
|
@@ -72,7 +75,8 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
72
75
|
toolName: getToolFullName(tool),
|
|
73
76
|
mcpSessionId,
|
|
74
77
|
apifyToken,
|
|
75
|
-
|
|
78
|
+
telemetryEnabled,
|
|
79
|
+
transportType,
|
|
76
80
|
clientContext,
|
|
77
81
|
});
|
|
78
82
|
const finishTaskTracking = (status, diagnostics, result) => {
|
|
@@ -87,21 +91,21 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
87
91
|
callDiagnostics: diagnostics,
|
|
88
92
|
args: toolArgs,
|
|
89
93
|
result,
|
|
90
|
-
|
|
94
|
+
telemetryEnv,
|
|
91
95
|
});
|
|
92
96
|
};
|
|
93
97
|
// Terminal step shared by every task outcome: store the result (expiry-tolerant),
|
|
94
98
|
// emit the status notification, record telemetry.
|
|
95
99
|
const completeTask = async (storeStatus, taskResult, status, diagnostics) => {
|
|
96
|
-
await storeTaskResultOrSkipIfExpired(
|
|
97
|
-
await emitTaskStatusNotification(taskId, mcpSessionId,
|
|
100
|
+
await storeTaskResultOrSkipIfExpired(taskStore, tool.name, taskId, storeStatus, taskResult, mcpSessionId);
|
|
101
|
+
await emitTaskStatusNotification(taskId, mcpSessionId, taskStore, server);
|
|
98
102
|
finishTaskTracking(status, diagnostics, taskResult);
|
|
99
103
|
};
|
|
100
104
|
// Once a task is cancelled the spec forbids writing a result; every storage path
|
|
101
105
|
// must short-circuit here. `logSuffix` is concatenated after "Task was cancelled"
|
|
102
106
|
// so we keep the existing log format and the existing telemetry status per path.
|
|
103
107
|
const skipIfTaskCancelled = async (logSuffix, status, diagnostics) => {
|
|
104
|
-
if (!(await isTaskCancelled(taskId, mcpSessionId,
|
|
108
|
+
if (!(await isTaskCancelled(taskId, mcpSessionId, taskStore)))
|
|
105
109
|
return false;
|
|
106
110
|
log.debug(`[executeToolAndUpdateTask] Task was cancelled${logSuffix}`, { taskId, mcpSessionId });
|
|
107
111
|
finishTaskTracking(status, diagnostics);
|
|
@@ -112,13 +116,12 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
112
116
|
// Actor run stops instead of consuming compute until natural completion.
|
|
113
117
|
// Per MCP tasks spec, request-level aborts (client disconnect,
|
|
114
118
|
// notifications/cancelled for the original request ID) MUST NOT cancel
|
|
115
|
-
// the task —
|
|
119
|
+
// the task — the request signal is intentionally not chained here.
|
|
116
120
|
const cancelWatcher = createTaskCancellationWatcher({
|
|
117
121
|
taskId,
|
|
118
122
|
mcpSessionId,
|
|
119
|
-
taskStore
|
|
123
|
+
taskStore,
|
|
120
124
|
});
|
|
121
|
-
const taskExtra = { ...extra, signal: cancelWatcher.signal };
|
|
122
125
|
try {
|
|
123
126
|
log.debug('[executeToolAndUpdateTask] Updating task status to working', {
|
|
124
127
|
taskId,
|
|
@@ -130,7 +133,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
130
133
|
// apart from a genuine store error.
|
|
131
134
|
// noinspection ExceptionCaughtLocallyJS
|
|
132
135
|
try {
|
|
133
|
-
await
|
|
136
|
+
await taskStore.updateTaskStatus(taskId, 'working', undefined, mcpSessionId);
|
|
134
137
|
}
|
|
135
138
|
catch (err) {
|
|
136
139
|
if (await skipIfTaskCancelled(' before execution started, skipping', TOOL_STATUS.ABORTED, {
|
|
@@ -139,34 +142,38 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
139
142
|
return;
|
|
140
143
|
throw err;
|
|
141
144
|
}
|
|
142
|
-
await emitTaskStatusNotification(taskId, mcpSessionId,
|
|
145
|
+
await emitTaskStatusNotification(taskId, mcpSessionId, taskStore, server);
|
|
143
146
|
// Execute the tool and get the result
|
|
144
147
|
let result = {};
|
|
145
148
|
// Callback to propagate Actor run statusMessage into the task store and emit a push notification.
|
|
146
149
|
// TODO(TC-3): cancel arriving while this is scheduled throws cancelled → working;
|
|
147
150
|
// currently swallowed by progress.ts's tick catch — guard or catch explicitly.
|
|
148
151
|
const onStatusMessage = async (message) => {
|
|
149
|
-
await
|
|
150
|
-
await emitTaskStatusNotification(taskId, mcpSessionId,
|
|
152
|
+
await taskStore.updateTaskStatus(taskId, 'working', message, mcpSessionId);
|
|
153
|
+
await emitTaskStatusNotification(taskId, mcpSessionId, taskStore, server);
|
|
151
154
|
};
|
|
152
155
|
// ACTOR_MCP never reads the tracker (matching the sync path, which passes null for it);
|
|
153
156
|
// INTERNAL/ACTOR get one built from taskId + onStatusMessage, which dispatch consumes
|
|
154
157
|
// and stops.
|
|
155
158
|
const progressTracker = tool.type === TOOL_TYPE.ACTOR_MCP
|
|
156
159
|
? null
|
|
157
|
-
: createProgressTracker(progressToken,
|
|
160
|
+
: createProgressTracker(progressToken, sendNotification, taskId, onStatusMessage);
|
|
158
161
|
const dispatchResult = await dispatchToolCall({
|
|
159
162
|
tool,
|
|
160
163
|
toolArgs,
|
|
161
164
|
logSafeArgs,
|
|
162
165
|
apifyToken,
|
|
163
166
|
apifyClient,
|
|
164
|
-
apifyMcpServer,
|
|
165
167
|
mcpSessionId,
|
|
166
168
|
progressToken,
|
|
167
169
|
progressTracker,
|
|
168
170
|
shouldForwardNotifications: false,
|
|
169
|
-
|
|
171
|
+
signal: cancelWatcher.signal,
|
|
172
|
+
sendNotification,
|
|
173
|
+
emitLog,
|
|
174
|
+
actorStore,
|
|
175
|
+
paymentProvider,
|
|
176
|
+
tools,
|
|
170
177
|
actorName,
|
|
171
178
|
actorId,
|
|
172
179
|
taskMode: true,
|
|
@@ -182,7 +189,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
182
189
|
// synchronous CallTool path, which task-mode calls like call-actor bypass).
|
|
183
190
|
result = withReportProblemNudge({
|
|
184
191
|
result,
|
|
185
|
-
tools
|
|
192
|
+
tools,
|
|
186
193
|
failingToolName: tool.name,
|
|
187
194
|
failureCategory: callDiagnostics.failure_category,
|
|
188
195
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -300,7 +307,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
300
307
|
isError: true,
|
|
301
308
|
internalToolStatus: toolStatus,
|
|
302
309
|
},
|
|
303
|
-
tools
|
|
310
|
+
tools,
|
|
304
311
|
failingToolName: tool.name,
|
|
305
312
|
failureCategory: callDiagnostics.failure_category,
|
|
306
313
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -312,7 +319,7 @@ export async function executeToolAndUpdateTask(params) {
|
|
|
312
319
|
// Compile-time exhaustiveness guard (same `satisfies never` idiom as dispatchToolCall's
|
|
313
320
|
// default arm): a new TOOL_CALL_ERROR_KIND makes `errorResult` non-`never` here and fails
|
|
314
321
|
// to compile. Unreachable at runtime.
|
|
315
|
-
throw new
|
|
322
|
+
throw new Error(`Unknown tool-call error kind "${errorResult.kind}"`);
|
|
316
323
|
}
|
|
317
324
|
}
|
|
318
325
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task_execution.js","sourceRoot":"","sources":["../../src/mcp/task_execution.ts"],"names":[],"mappings":"AAIA,OAAO,
|
|
1
|
+
{"version":3,"file":"task_execution.js","sourceRoot":"","sources":["../../src/mcp/task_execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -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":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAK7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKzF,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,2BAA2B,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKnH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAI/E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,sFAAsF;AACtF,MAAM,MAAM,eAAe,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG;IACvB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACjD,qBAAqB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,GAAG,SAAS,CAAC;IAEnF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,eAAe,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;CACpC,CAAC;AAEF,8FAA8F;AAC9F,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAC9C,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,4BAA4B,CACxC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAChD,qBAAqB,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,GAAG,SAAS,EAClF,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GAAG,SAAS,GAC5B;IACC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,eAAe,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;CACrF,CAUA;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,GAAG,SAAS,CAGnG;AAED,8DAA8D;AAC9D,wBAAsB,eAAe,CAAC,MAAM,EAAE;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;IAC1C,IAAI,EAAE,WAAW,CAAC;IAClB,cAAc,EAAE,cAAc,CAAC;IAC/B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,2BAA2B,GAAG,IAAI,CAAC;IAClD,aAAa,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC5C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,MAAM,CAAC,EAAE,WAAW,CAAC;CACxB,GAAG,OAAO,CAAC,YAAY,GAAG,eAAe,GAAG,iBAAiB,CAAC,CAiL9D;AAED,+EAA+E;AAC/E,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAC3C,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,MAAM,EAAE,WAAW,CAAC;IACpB,gBAAgB,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,OAAO,EAAE,CAAC,GAAG,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE,GACF,OAAO,CAAC,eAAe,CAAC,CAmF1B;AAED,oGAAoG;AACpG,wBAAgB,qBAAqB,CACjC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE;IACJ,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,GACF,eAAe,CAyDjB"}
|
|
@@ -2,7 +2,6 @@
|
|
|
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 { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
5
|
import dedent from 'dedent';
|
|
7
6
|
import log from '@apify/log';
|
|
8
7
|
import { ALLOWED_TASK_TOOL_EXECUTION_MODES, FAILURE_CATEGORY, HELPER_TOOLS, TOOL_STATUS } from '../const.js';
|
|
@@ -16,7 +15,7 @@ import { logHttpError } from '../utils/logging.js';
|
|
|
16
15
|
import { respondOk } from '../utils/mcp.js';
|
|
17
16
|
import { getRequestOriginForClient } from '../utils/mcp_clients.js';
|
|
18
17
|
import { createProgressTracker } from '../utils/progress.js';
|
|
19
|
-
import { extractAjvErrorDetails } from '../utils/tool_status.js';
|
|
18
|
+
import { extractAjvErrorDetails, isMcpError } from '../utils/tool_status.js';
|
|
20
19
|
import { buildActorFields, extractActorId, extractActorName, getToolFullName } from '../utils/tools.js';
|
|
21
20
|
import { buildToolCallErrorResult, TOOL_CALL_ERROR_KIND } from './tool_call_error_mapper.js';
|
|
22
21
|
import { dispatchToolCall } from './tool_dispatch.js';
|
|
@@ -32,13 +31,22 @@ export function buildPreflightFailureOutcome(standbyRejection, paymentRequiredRe
|
|
|
32
31
|
result: (standbyRejection !== null && standbyRejection !== void 0 ? standbyRejection : paymentRequiredResult),
|
|
33
32
|
};
|
|
34
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* The tool a `tools/call` names, accepting a legacy alias or an Actor's full name. The single
|
|
36
|
+
* resolution rule: a shell that needs the tool before {@link prepareToolCall} returns (e.g. for its
|
|
37
|
+
* `outputSchema`) must resolve it the same way, or the two can disagree about which tool was called.
|
|
38
|
+
*/
|
|
39
|
+
export function resolveToolEntry(name, tools) {
|
|
40
|
+
var _a;
|
|
41
|
+
const newName = (_a = legacyToolNameToNew(name)) !== null && _a !== void 0 ? _a : name;
|
|
42
|
+
return Array.from(tools.values()).find((tool) => tool.name === newName || getToolFullName(tool) === newName);
|
|
43
|
+
}
|
|
35
44
|
/** Prepares a call; protocol errors are left to the shell. */
|
|
36
45
|
export async function prepareToolCall(params) {
|
|
37
|
-
var _a, _b
|
|
38
|
-
const {
|
|
46
|
+
var _a, _b;
|
|
47
|
+
const { apifyToken, name, meta, requestHeaders, isTaskRequest, telemetryData, clientContext, tools, paymentProvider, allowUnauthMode, } = params;
|
|
39
48
|
let { args } = params;
|
|
40
|
-
|
|
41
|
-
if (!apifyToken && !((_a = options.paymentProvider) === null || _a === void 0 ? void 0 : _a.allowsUnauthenticated) && !options.allowUnauthMode) {
|
|
49
|
+
if (!apifyToken && !(paymentProvider === null || paymentProvider === void 0 ? void 0 : paymentProvider.allowsUnauthenticated) && !allowUnauthMode) {
|
|
42
50
|
return {
|
|
43
51
|
message: dedent `
|
|
44
52
|
Apify API token is required but was not provided.
|
|
@@ -49,10 +57,9 @@ export async function prepareToolCall(params) {
|
|
|
49
57
|
callDiagnostics: { failure_category: FAILURE_CATEGORY.AUTH },
|
|
50
58
|
};
|
|
51
59
|
}
|
|
52
|
-
const
|
|
53
|
-
const toolEntry = Array.from(tools.values()).find((t) => t.name === newName || getToolFullName(t) === newName);
|
|
60
|
+
const toolEntry = resolveToolEntry(name, tools);
|
|
54
61
|
if (!toolEntry) {
|
|
55
|
-
const availableTools =
|
|
62
|
+
const availableTools = Array.from(tools.keys());
|
|
56
63
|
return {
|
|
57
64
|
message: dedent `
|
|
58
65
|
Tool "${name}" was not found.
|
|
@@ -92,7 +99,7 @@ export async function prepareToolCall(params) {
|
|
|
92
99
|
args = decodeDotPropertyNames(args);
|
|
93
100
|
decodedArgs = args;
|
|
94
101
|
const { toolArgsWithoutPayment: toolArgs, toolArgsRedacted: logSafeArgs, apifyClient, paymentRequiredResult, } = prepareToolCallContext({
|
|
95
|
-
provider:
|
|
102
|
+
provider: paymentProvider,
|
|
96
103
|
tool,
|
|
97
104
|
args: args,
|
|
98
105
|
apifyToken,
|
|
@@ -127,7 +134,7 @@ export async function prepareToolCall(params) {
|
|
|
127
134
|
decodedArgs,
|
|
128
135
|
};
|
|
129
136
|
}
|
|
130
|
-
const taskSupport = (
|
|
137
|
+
const taskSupport = (_a = tool.execution) === null || _a === void 0 ? void 0 : _a.taskSupport;
|
|
131
138
|
if (isTaskRequest && !ALLOWED_TASK_TOOL_EXECUTION_MODES.includes(taskSupport)) {
|
|
132
139
|
return {
|
|
133
140
|
message: dedent `
|
|
@@ -144,7 +151,6 @@ export async function prepareToolCall(params) {
|
|
|
144
151
|
};
|
|
145
152
|
}
|
|
146
153
|
// Standby Actors need a specific rejection instead of a generic 402 in both modes.
|
|
147
|
-
const { paymentProvider } = options;
|
|
148
154
|
const isCallActorTool = tool.name === HELPER_TOOLS.ACTOR_CALL || tool.name === HELPER_TOOLS.ACTOR_CALL_WIDGET;
|
|
149
155
|
const actorArg = toolArgs === null || toolArgs === void 0 ? void 0 : toolArgs.actor;
|
|
150
156
|
const standbyRejection = paymentProvider && isCallActorTool && typeof actorArg === 'string' && actorArg.length > 0
|
|
@@ -169,15 +175,15 @@ export async function prepareToolCall(params) {
|
|
|
169
175
|
}
|
|
170
176
|
catch (error) {
|
|
171
177
|
// Keep protocol errors as JSON-RPC errors; classify other failures with actor context.
|
|
172
|
-
if (error
|
|
178
|
+
if (isMcpError(error))
|
|
173
179
|
throw error;
|
|
174
180
|
const outcome = classifyToolCallError(error, {
|
|
175
|
-
|
|
181
|
+
tools,
|
|
176
182
|
toolName: name,
|
|
177
183
|
failingToolName: resolvedToolName,
|
|
178
184
|
actorName,
|
|
179
185
|
actorId,
|
|
180
|
-
isAborted: Boolean((
|
|
186
|
+
isAborted: Boolean((_b = params.signal) === null || _b === void 0 ? void 0 : _b.aborted),
|
|
181
187
|
mcpSessionId: params.mcpSessionId,
|
|
182
188
|
});
|
|
183
189
|
return { ...outcome, resolvedToolName, decodedArgs };
|
|
@@ -185,13 +191,12 @@ export async function prepareToolCall(params) {
|
|
|
185
191
|
}
|
|
186
192
|
/** Runs pre-flight handling and dispatch, returning the exact wire payload. */
|
|
187
193
|
export async function executeSyncToolCall(prepared, params) {
|
|
188
|
-
|
|
189
|
-
const { apifyMcpServer, apifyToken, toolName, mcpSessionId, progressToken, extra } = params;
|
|
194
|
+
const { apifyToken, toolName, mcpSessionId, progressToken, tools, actorStore, paymentProvider, signal, sendNotification, emitLog, } = params;
|
|
190
195
|
const { tool, toolArgs, logSafeArgs, apifyClient, actorName, actorId, standbyRejection, paymentRequiredResult } = prepared;
|
|
191
196
|
const resolvedToolName = getToolFullName(tool);
|
|
192
197
|
const nudge = (result, callDiagnostics) => withReportProblemNudge({
|
|
193
198
|
result,
|
|
194
|
-
tools
|
|
199
|
+
tools,
|
|
195
200
|
failingToolName: resolvedToolName,
|
|
196
201
|
failureCategory: callDiagnostics.failure_category,
|
|
197
202
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -210,7 +215,7 @@ export async function executeSyncToolCall(prepared, params) {
|
|
|
210
215
|
const progressTrackerOptIn = tool.type === TOOL_TYPE.ACTOR ||
|
|
211
216
|
(tool.type === TOOL_TYPE.INTERNAL &&
|
|
212
217
|
(tool.name === HELPER_TOOLS.ACTOR_CALL || tool.name === HELPER_TOOLS.ACTOR_RUNS_GET));
|
|
213
|
-
const progressTracker = progressTrackerOptIn ? createProgressTracker(progressToken,
|
|
218
|
+
const progressTracker = progressTrackerOptIn ? createProgressTracker(progressToken, sendNotification) : null;
|
|
214
219
|
try {
|
|
215
220
|
const dispatchResult = await dispatchToolCall({
|
|
216
221
|
tool,
|
|
@@ -218,12 +223,16 @@ export async function executeSyncToolCall(prepared, params) {
|
|
|
218
223
|
logSafeArgs,
|
|
219
224
|
apifyToken,
|
|
220
225
|
apifyClient,
|
|
221
|
-
apifyMcpServer,
|
|
222
226
|
mcpSessionId,
|
|
223
227
|
progressToken,
|
|
224
228
|
progressTracker,
|
|
225
229
|
shouldForwardNotifications: true,
|
|
226
|
-
|
|
230
|
+
signal,
|
|
231
|
+
sendNotification,
|
|
232
|
+
emitLog,
|
|
233
|
+
actorStore,
|
|
234
|
+
paymentProvider,
|
|
235
|
+
tools,
|
|
227
236
|
actorName,
|
|
228
237
|
actorId,
|
|
229
238
|
taskMode: false,
|
|
@@ -236,25 +245,25 @@ export async function executeSyncToolCall(prepared, params) {
|
|
|
236
245
|
}
|
|
237
246
|
catch (error) {
|
|
238
247
|
// Protocol errors stay JSON-RPC errors; a 402-coded McpError must not become a payment result.
|
|
239
|
-
if (error
|
|
248
|
+
if (isMcpError(error))
|
|
240
249
|
throw error;
|
|
241
250
|
return classifyToolCallError(error, {
|
|
242
|
-
|
|
251
|
+
tools,
|
|
243
252
|
toolName,
|
|
244
253
|
failingToolName: resolvedToolName,
|
|
245
254
|
actorName,
|
|
246
255
|
actorId,
|
|
247
|
-
isAborted: Boolean(
|
|
256
|
+
isAborted: Boolean(signal.aborted),
|
|
248
257
|
mcpSessionId,
|
|
249
258
|
});
|
|
250
259
|
}
|
|
251
260
|
}
|
|
252
261
|
/** Maps non-protocol errors to v1 tool results, including diagnostics and report-problem nudges. */
|
|
253
262
|
export function classifyToolCallError(error, params) {
|
|
254
|
-
const {
|
|
263
|
+
const { tools, toolName, failingToolName, actorName, actorId, isAborted, mcpSessionId } = params;
|
|
255
264
|
const nudge = (result, callDiagnostics) => withReportProblemNudge({
|
|
256
265
|
result,
|
|
257
|
-
tools
|
|
266
|
+
tools,
|
|
258
267
|
failingToolName,
|
|
259
268
|
failureCategory: callDiagnostics.failure_category,
|
|
260
269
|
failureHttpStatus: callDiagnostics.failure_http_status,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_call_engine.js","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"tool_call_engine.js","sourceRoot":"","sources":["../../src/mcp/tool_call_engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -12,8 +12,8 @@ import { getPackageVersion } from '../utils/version.js';
|
|
|
12
12
|
*/
|
|
13
13
|
export async function prepareTelemetryData(params) {
|
|
14
14
|
var _a, _b;
|
|
15
|
-
const { toolName, mcpSessionId, apifyToken,
|
|
16
|
-
if (!
|
|
15
|
+
const { toolName, mcpSessionId, apifyToken, telemetryEnabled, transportType, clientContext } = params;
|
|
16
|
+
if (!telemetryEnabled) {
|
|
17
17
|
return { telemetryData: null, userId: null };
|
|
18
18
|
}
|
|
19
19
|
// Get userId from cache or fetch from API
|
|
@@ -32,7 +32,7 @@ export async function prepareTelemetryData(params) {
|
|
|
32
32
|
mcp_protocol_version: (clientContext === null || clientContext === void 0 ? void 0 : clientContext.protocolVersion) || '',
|
|
33
33
|
mcp_client_capabilities: (clientContext === null || clientContext === void 0 ? void 0 : clientContext.capabilities) || null,
|
|
34
34
|
mcp_session_id: mcpSessionId || '',
|
|
35
|
-
transport_type:
|
|
35
|
+
transport_type: transportType || '',
|
|
36
36
|
tool_name: toolName,
|
|
37
37
|
tool_status: TOOL_STATUS.SUCCEEDED, // Will be updated in finally
|
|
38
38
|
tool_exec_time_ms: 0, // Will be calculated in finally
|
|
@@ -72,13 +72,13 @@ export function logToolCallAndTelemetry(params) {
|
|
|
72
72
|
// threads them back. Applied uniformly, last. See deriveResourceIds.
|
|
73
73
|
...deriveResourceIds(params.args, params.result),
|
|
74
74
|
};
|
|
75
|
-
trackToolCall(params.userId, params.
|
|
75
|
+
trackToolCall(params.userId, params.telemetryEnv, finalizedTelemetryData);
|
|
76
76
|
// A successful report-problem call also emits a dedicated feedback event carrying the
|
|
77
77
|
// submission. A downstream Segment destination fans it out to Slack/GitHub.
|
|
78
78
|
if (params.toolName === HELPER_TOOLS.PROBLEM_REPORT &&
|
|
79
79
|
params.toolStatus === TOOL_STATUS.SUCCEEDED &&
|
|
80
80
|
params.args) {
|
|
81
|
-
trackReportedProblem(params.userId, params.
|
|
81
|
+
trackReportedProblem(params.userId, params.telemetryEnv, buildReportedProblemProperties(finalizedTelemetryData, params.args));
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool_call_telemetry.js","sourceRoot":"","sources":["../../src/mcp/tool_call_telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool_call_telemetry.js","sourceRoot":"","sources":["../../src/mcp/tool_call_telemetry.ts"],"names":[],"mappings":"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"}
|