@apify/actors-mcp-server 0.11.5-beta.8 → 0.11.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/dist/apify_client.js +4 -1
- package/dist/apify_client.js.map +1 -1
- package/dist/const.d.ts +40 -25
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +43 -27
- package/dist/const.js.map +1 -1
- package/dist/dev_server.js +4 -1
- package/dist/dev_server.js.map +1 -1
- package/dist/errors.js +4 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/index_internals.d.ts +35 -4
- package/dist/index_internals.d.ts.map +1 -1
- package/dist/index_internals.js +14 -5
- package/dist/index_internals.js.map +1 -1
- package/dist/input.js +4 -1
- package/dist/input.js.map +1 -1
- package/dist/instrument.js +4 -1
- package/dist/instrument.js.map +1 -1
- package/dist/mcp/actors.js +4 -1
- package/dist/mcp/actors.js.map +1 -1
- package/dist/mcp/client.js +4 -1
- package/dist/mcp/client.js.map +1 -1
- package/dist/mcp/const.js +4 -1
- package/dist/mcp/const.js.map +1 -1
- package/dist/mcp/proxy.js +5 -2
- package/dist/mcp/proxy.js.map +1 -1
- package/dist/mcp/server.d.ts +2 -2
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +14 -10
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/utils.d.ts +2 -2
- package/dist/mcp/utils.d.ts.map +1 -1
- package/dist/mcp/utils.js +6 -3
- package/dist/mcp/utils.js.map +1 -1
- package/dist/payments/const.d.ts +2 -2
- package/dist/payments/const.d.ts.map +1 -1
- package/dist/payments/const.js +15 -12
- package/dist/payments/const.js.map +1 -1
- package/dist/payments/helpers.js +4 -1
- package/dist/payments/helpers.js.map +1 -1
- package/dist/payments/index.js +4 -1
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/resolve.js +4 -1
- package/dist/payments/resolve.js.map +1 -1
- package/dist/payments/skyfire.js +4 -1
- package/dist/payments/skyfire.js.map +1 -1
- package/dist/payments/types.js +4 -1
- package/dist/payments/types.js.map +1 -1
- package/dist/payments/x402.js +4 -1
- package/dist/payments/x402.js.map +1 -1
- package/dist/prompts/index.js +4 -1
- package/dist/prompts/index.js.map +1 -1
- package/dist/resources/resource_service.d.ts +2 -2
- package/dist/resources/resource_service.d.ts.map +1 -1
- package/dist/resources/resource_service.js +7 -4
- package/dist/resources/resource_service.js.map +1 -1
- package/dist/resources/widgets.js +4 -1
- package/dist/resources/widgets.js.map +1 -1
- package/dist/server_card.js +4 -1
- package/dist/server_card.js.map +1 -1
- package/dist/state.js +4 -1
- package/dist/state.js.map +1 -1
- package/dist/stdio.js +4 -1
- package/dist/stdio.js.map +1 -1
- package/dist/telemetry.js +4 -1
- package/dist/telemetry.js.map +1 -1
- package/dist/tools/{utils.d.ts → actor_input_schema.d.ts} +2 -17
- package/dist/tools/actor_input_schema.d.ts.map +1 -0
- package/dist/tools/{utils.js → actor_input_schema.js} +5 -49
- package/dist/tools/actor_input_schema.js.map +1 -0
- package/dist/tools/actor_tool_naming.d.ts +17 -0
- package/dist/tools/actor_tool_naming.d.ts.map +1 -0
- package/dist/tools/actor_tool_naming.js +52 -0
- package/dist/tools/actor_tool_naming.js.map +1 -0
- package/dist/tools/actors/actor_definition.js +4 -1
- package/dist/tools/actors/actor_definition.js.map +1 -1
- package/dist/tools/actors/actor_executor.js +5 -2
- package/dist/tools/actors/actor_executor.js.map +1 -1
- package/dist/tools/actors/actor_run_response.js +10 -7
- package/dist/tools/actors/actor_run_response.js.map +1 -1
- package/dist/tools/actors/actor_tools_factory.d.ts +1 -1
- package/dist/tools/actors/actor_tools_factory.d.ts.map +1 -1
- package/dist/tools/actors/actor_tools_factory.js +10 -6
- package/dist/tools/actors/actor_tools_factory.js.map +1 -1
- package/dist/tools/actors/add_actor.d.ts +1 -1
- package/dist/tools/actors/add_actor.d.ts.map +1 -1
- package/dist/tools/actors/add_actor.js +8 -5
- package/dist/tools/actors/add_actor.js.map +1 -1
- package/dist/tools/actors/call_actor.d.ts +133 -3
- package/dist/tools/actors/call_actor.d.ts.map +1 -1
- package/dist/tools/actors/call_actor.js +560 -6
- package/dist/tools/actors/call_actor.js.map +1 -1
- package/dist/tools/actors/fetch_actor_details.d.ts +89 -2
- package/dist/tools/actors/fetch_actor_details.d.ts.map +1 -1
- package/dist/tools/actors/fetch_actor_details.js +239 -3
- package/dist/tools/actors/fetch_actor_details.js.map +1 -1
- package/dist/tools/actors/search_actors.d.ts +25 -2
- package/dist/tools/actors/search_actors.d.ts.map +1 -1
- package/dist/tools/actors/search_actors.js +129 -6
- package/dist/tools/actors/search_actors.js.map +1 -1
- package/dist/tools/docs/fetch_apify_docs.d.ts +1 -1
- package/dist/tools/docs/fetch_apify_docs.d.ts.map +1 -1
- package/dist/tools/docs/fetch_apify_docs.js +10 -7
- package/dist/tools/docs/fetch_apify_docs.js.map +1 -1
- package/dist/tools/docs/search_apify_docs.d.ts +1 -1
- package/dist/tools/docs/search_apify_docs.d.ts.map +1 -1
- package/dist/tools/docs/search_apify_docs.js +8 -5
- package/dist/tools/docs/search_apify_docs.js.map +1 -1
- package/dist/tools/index.d.ts +2 -2
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +12 -9
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/registry.d.ts +6 -6
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +35 -32
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/runs/abort_actor_run.js +6 -3
- package/dist/tools/runs/abort_actor_run.js.map +1 -1
- package/dist/tools/runs/get_actor_run.d.ts +29 -2
- package/dist/tools/runs/get_actor_run.d.ts.map +1 -1
- package/dist/tools/runs/get_actor_run.js +115 -4
- package/dist/tools/runs/get_actor_run.js.map +1 -1
- package/dist/tools/runs/{run_collection.d.ts → get_actor_run_list.d.ts} +2 -2
- package/dist/tools/runs/get_actor_run_list.d.ts.map +1 -0
- package/dist/tools/runs/{run_collection.js → get_actor_run_list.js} +7 -4
- package/dist/tools/runs/get_actor_run_list.js.map +1 -0
- package/dist/tools/runs/get_actor_run_log.js +6 -3
- package/dist/tools/runs/get_actor_run_log.js.map +1 -1
- package/dist/tools/storage/get_dataset.js +8 -5
- package/dist/tools/storage/get_dataset.js.map +1 -1
- package/dist/tools/storage/get_dataset_items.js +7 -4
- package/dist/tools/storage/get_dataset_items.js.map +1 -1
- package/dist/tools/storage/{dataset_collection.d.ts → get_dataset_list.d.ts} +2 -2
- package/dist/tools/storage/get_dataset_list.d.ts.map +1 -0
- package/dist/tools/storage/{dataset_collection.js → get_dataset_list.js} +9 -6
- package/dist/tools/storage/get_dataset_list.js.map +1 -0
- package/dist/tools/storage/get_dataset_schema.js +8 -5
- package/dist/tools/storage/get_dataset_schema.js.map +1 -1
- package/dist/tools/storage/get_key_value_store.js +7 -4
- package/dist/tools/storage/get_key_value_store.js.map +1 -1
- package/dist/tools/storage/get_key_value_store_keys.js +6 -3
- package/dist/tools/storage/get_key_value_store_keys.js.map +1 -1
- package/dist/tools/storage/get_key_value_store_list.d.ts +6 -0
- package/dist/tools/storage/get_key_value_store_list.d.ts.map +1 -0
- package/dist/tools/storage/{key_value_store_collection.js → get_key_value_store_list.js} +9 -6
- package/dist/tools/storage/get_key_value_store_list.js.map +1 -0
- package/dist/tools/storage/get_key_value_store_record.js +6 -3
- package/dist/tools/storage/get_key_value_store_record.js.map +1 -1
- package/dist/tools/storage/storage_helpers.js +11 -8
- package/dist/tools/storage/storage_helpers.js.map +1 -1
- package/dist/tools/structured_output_schemas.js +4 -1
- package/dist/tools/structured_output_schemas.js.map +1 -1
- package/dist/tools/widgets/call_actor_widget.d.ts +1 -1
- package/dist/tools/widgets/call_actor_widget.d.ts.map +1 -1
- package/dist/tools/widgets/call_actor_widget.js +16 -13
- package/dist/tools/widgets/call_actor_widget.js.map +1 -1
- package/dist/tools/widgets/fetch_actor_details_widget.d.ts +1 -1
- package/dist/tools/widgets/fetch_actor_details_widget.d.ts.map +1 -1
- package/dist/tools/widgets/fetch_actor_details_widget.js +10 -7
- package/dist/tools/widgets/fetch_actor_details_widget.js.map +1 -1
- package/dist/tools/widgets/get_actor_run_widget.d.ts +1 -1
- package/dist/tools/widgets/get_actor_run_widget.d.ts.map +1 -1
- package/dist/tools/widgets/get_actor_run_widget.js +9 -6
- package/dist/tools/widgets/get_actor_run_widget.js.map +1 -1
- package/dist/tools/widgets/search_actors_widget.d.ts +1 -1
- package/dist/tools/widgets/search_actors_widget.d.ts.map +1 -1
- package/dist/tools/widgets/search_actors_widget.js +9 -6
- package/dist/tools/widgets/search_actors_widget.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +6 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -3
- package/dist/types.js.map +1 -1
- package/dist/utils/actor.js +4 -1
- package/dist/utils/actor.js.map +1 -1
- package/dist/utils/actor_card.js +4 -1
- package/dist/utils/actor_card.js.map +1 -1
- package/dist/utils/actor_details.js +5 -2
- package/dist/utils/actor_details.js.map +1 -1
- package/dist/utils/actor_search.js +4 -1
- package/dist/utils/actor_search.js.map +1 -1
- package/dist/utils/ajv.js +4 -1
- package/dist/utils/ajv.js.map +1 -1
- package/dist/utils/apify_docs.d.ts.map +1 -1
- package/dist/utils/apify_docs.js +20 -4
- package/dist/utils/apify_docs.js.map +1 -1
- package/dist/utils/apify_errors.js +4 -1
- package/dist/utils/apify_errors.js.map +1 -1
- package/dist/utils/apify_properties.js +4 -1
- package/dist/utils/apify_properties.js.map +1 -1
- package/dist/utils/auth.js +4 -1
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/console_link.js +4 -1
- package/dist/utils/console_link.js.map +1 -1
- package/dist/utils/encode_text.js +4 -1
- package/dist/utils/encode_text.js.map +1 -1
- package/dist/utils/generic.js +4 -1
- package/dist/utils/generic.js.map +1 -1
- package/dist/utils/logging.js +4 -1
- package/dist/utils/logging.js.map +1 -1
- package/dist/utils/mcp.js +4 -1
- package/dist/utils/mcp.js.map +1 -1
- package/dist/utils/mcp_clients.js +4 -1
- package/dist/utils/mcp_clients.js.map +1 -1
- package/dist/utils/payment_errors.js +4 -1
- package/dist/utils/payment_errors.js.map +1 -1
- package/dist/utils/pricing_info.js +4 -1
- package/dist/utils/pricing_info.js.map +1 -1
- package/dist/utils/progress.js +4 -1
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/schema_generation.js +4 -1
- package/dist/utils/schema_generation.js.map +1 -1
- package/dist/utils/server-instructions/index.d.ts +2 -2
- package/dist/utils/server-instructions/index.d.ts.map +1 -1
- package/dist/utils/server-instructions/index.js +23 -20
- package/dist/utils/server-instructions/index.js.map +1 -1
- package/dist/utils/server_mode.d.ts +5 -5
- package/dist/utils/server_mode.d.ts.map +1 -1
- package/dist/utils/server_mode.js +14 -11
- package/dist/utils/server_mode.js.map +1 -1
- package/dist/utils/tool_categories_helpers.d.ts +2 -2
- package/dist/utils/tool_categories_helpers.d.ts.map +1 -1
- package/dist/utils/tool_categories_helpers.js +4 -1
- package/dist/utils/tool_categories_helpers.js.map +1 -1
- package/dist/utils/tool_status.js +4 -1
- package/dist/utils/tool_status.js.map +1 -1
- package/dist/utils/tools.d.ts +2 -2
- package/dist/utils/tools.d.ts.map +1 -1
- package/dist/utils/tools.js +6 -3
- package/dist/utils/tools.js.map +1 -1
- package/dist/utils/tools_loader.d.ts +3 -3
- package/dist/utils/tools_loader.d.ts.map +1 -1
- package/dist/utils/tools_loader.js +22 -19
- package/dist/utils/tools_loader.js.map +1 -1
- package/dist/utils/ttl_lru.js +4 -1
- package/dist/utils/ttl_lru.js.map +1 -1
- package/dist/utils/userid_cache.js +4 -1
- package/dist/utils/userid_cache.js.map +1 -1
- package/dist/utils/version.js +4 -1
- package/dist/utils/version.js.map +1 -1
- package/dist/web/dist/actor-detail-widget.js +2 -0
- package/dist/web/dist/actor-run-widget.js +2 -0
- package/dist/web/dist/search-actors-widget.js +2 -0
- package/package.json +1 -1
- package/dist/tools/actors/call_actor_common.d.ts +0 -132
- package/dist/tools/actors/call_actor_common.d.ts.map +0 -1
- package/dist/tools/actors/call_actor_common.js +0 -554
- package/dist/tools/actors/call_actor_common.js.map +0 -1
- package/dist/tools/actors/fetch_actor_details_common.d.ts +0 -89
- package/dist/tools/actors/fetch_actor_details_common.d.ts.map +0 -1
- package/dist/tools/actors/fetch_actor_details_common.js +0 -235
- package/dist/tools/actors/fetch_actor_details_common.js.map +0 -1
- package/dist/tools/actors/search_actors_common.d.ts +0 -25
- package/dist/tools/actors/search_actors_common.d.ts.map +0 -1
- package/dist/tools/actors/search_actors_common.js +0 -125
- package/dist/tools/actors/search_actors_common.js.map +0 -1
- package/dist/tools/runs/get_actor_run_common.d.ts +0 -29
- package/dist/tools/runs/get_actor_run_common.d.ts.map +0 -1
- package/dist/tools/runs/get_actor_run_common.js +0 -111
- package/dist/tools/runs/get_actor_run_common.js.map +0 -1
- package/dist/tools/runs/run_collection.d.ts.map +0 -1
- package/dist/tools/runs/run_collection.js.map +0 -1
- package/dist/tools/storage/dataset_collection.d.ts.map +0 -1
- package/dist/tools/storage/dataset_collection.js.map +0 -1
- package/dist/tools/storage/key_value_store_collection.d.ts +0 -6
- package/dist/tools/storage/key_value_store_collection.d.ts.map +0 -1
- package/dist/tools/storage/key_value_store_collection.js.map +0 -1
- package/dist/tools/utils.d.ts.map +0 -1
- package/dist/tools/utils.js.map +0 -1
|
@@ -1,554 +0,0 @@
|
|
|
1
|
-
import dedent from 'dedent';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import log from '@apify/log';
|
|
4
|
-
import { ApifyClient } from '../../apify_client.js';
|
|
5
|
-
import { APIFY_ERROR_TYPE_CANNOT_START_ACTOR_RUNS, APIFY_ERROR_TYPE_FULL_PERMISSION_NOT_APPROVED, APIFY_ERROR_TYPE_MEMORY_LIMIT_EXCEEDED, FAILURE_CATEGORY, HelperTools, TOOL_STATUS, } from '../../const.js';
|
|
6
|
-
import { ACTOR_LOAD_ERROR_KIND, ActorLoadError } from '../../errors.js';
|
|
7
|
-
import { connectMCPClient } from '../../mcp/client.js';
|
|
8
|
-
import { getActorDefinitionCached, getActorMcpUrlCached } from '../../utils/actor.js';
|
|
9
|
-
import { compileSchema } from '../../utils/ajv.js';
|
|
10
|
-
import { ACTOR_RUN_LIMIT_MESSAGE, isActorRunLimitError, isMemoryQuotaError, isPermissionApprovalError, remoteMcpFailureDetail, } from '../../utils/apify_errors.js';
|
|
11
|
-
import { getConsoleLinkContext } from '../../utils/console_link.js';
|
|
12
|
-
import { getHttpStatusCode, logHttpError } from '../../utils/logging.js';
|
|
13
|
-
import { buildMCPResponse } from '../../utils/mcp.js';
|
|
14
|
-
import { classifyFailureCategory, extractAjvErrorDetails, getToolStatusFromError } from '../../utils/tool_status.js';
|
|
15
|
-
import { extractActorId } from '../../utils/tools.js';
|
|
16
|
-
import { buildGetActorRunSuccessResponse } from '../runs/get_actor_run_common.js';
|
|
17
|
-
import { actorNameToToolName, isActorBlockedUnderPaymentProvider } from '../utils.js';
|
|
18
|
-
import { abortRunOnSignal, buildStartRunResponse, CALL_ACTOR_WAIT_SECS_DEFAULT, fetchActorRunData, } from './actor_run_response.js';
|
|
19
|
-
import { fixActorNameInputAndLog, getActorsAsTools } from './actor_tools_factory.js';
|
|
20
|
-
// ---------------------------------------------------------------------------
|
|
21
|
-
// Shared call-actor description building blocks
|
|
22
|
-
// ---------------------------------------------------------------------------
|
|
23
|
-
const RAG_WEB_BROWSER_TOOL = actorNameToToolName('apify/rag-web-browser');
|
|
24
|
-
export const CALL_ACTOR_MCP_MISSING_TOOL_NAME_MSG = `When calling an MCP server Actor, you must specify the tool name in the actor parameter as "{actorName}:{toolName}" in the "actor" input property.`;
|
|
25
|
-
/** Shared MCP server instructions — identical in both modes. */
|
|
26
|
-
export const CALL_ACTOR_MCP_SERVER_SECTION = `For MCP server Actors:
|
|
27
|
-
- Use fetch-actor-details with output={ mcpTools: true } to list available tools
|
|
28
|
-
- Call using format: "actorName:toolName" (e.g., "apify/actors-mcp-server:fetch-apify-docs")`;
|
|
29
|
-
/** Shared "two ways to run" + USAGE section — identical in both modes. */
|
|
30
|
-
export const CALL_ACTOR_USAGE_SECTION = `There are two ways to run Actors:
|
|
31
|
-
1. Dedicated Actor tools (e.g., ${RAG_WEB_BROWSER_TOOL}): These are pre-configured tools, offering a simpler and more direct experience.
|
|
32
|
-
2. Generic call-actor tool (${HelperTools.ACTOR_CALL}): Use this when a dedicated tool is not available or when you want to run any Actor dynamically. This tool is especially useful if you do not want to add specific tools or your client does not support dynamic tool registration.
|
|
33
|
-
|
|
34
|
-
USAGE:
|
|
35
|
-
- Always use dedicated tools when available (e.g., ${RAG_WEB_BROWSER_TOOL})
|
|
36
|
-
- Use the generic call-actor tool only if a dedicated tool does not exist for your Actor.`;
|
|
37
|
-
/** Shared examples section — identical in both modes. */
|
|
38
|
-
export const CALL_ACTOR_EXAMPLES_SECTION = `EXAMPLES:
|
|
39
|
-
- user_input: Get instagram posts using apify/instagram-scraper`;
|
|
40
|
-
const WIDGET_ADDENDUM = dedent `
|
|
41
|
-
WIDGET ALTERNATIVE (apps mode):
|
|
42
|
-
- If the user explicitly asks to see live progress, call ${HelperTools.ACTOR_CALL_WIDGET} instead — it renders an interactive UI that tracks the run.
|
|
43
|
-
- For silent name resolution before this call, use ${HelperTools.STORE_SEARCH} (not ${HelperTools.STORE_SEARCH_WIDGET}, which renders UI).
|
|
44
|
-
`;
|
|
45
|
-
function buildCallActorDescriptionSections(includeWidget) {
|
|
46
|
-
const sections = [
|
|
47
|
-
'Call any Actor from the Apify Store.',
|
|
48
|
-
dedent `
|
|
49
|
-
WORKFLOW:
|
|
50
|
-
1. Use ${HelperTools.ACTOR_GET_DETAILS} to get the Actor's input schema
|
|
51
|
-
2. Call this tool with the actor name and proper input based on the schema
|
|
52
|
-
|
|
53
|
-
If the actor name is not in "username/name" format and ${HelperTools.STORE_SEARCH} is available in this session, use it to resolve the correct Actor first.
|
|
54
|
-
`,
|
|
55
|
-
CALL_ACTOR_MCP_SERVER_SECTION,
|
|
56
|
-
dedent `
|
|
57
|
-
IMPORTANT:
|
|
58
|
-
- Waits up to waitSecs (default 30s) for completion; returns run status, storage IDs, and field metadata
|
|
59
|
-
- Use ${HelperTools.DATASET_GET_ITEMS} with the datasetId to fetch results; non-terminal runs include a nextStep with polling instructions
|
|
60
|
-
- Use dedicated Actor tools when available for better experience
|
|
61
|
-
`,
|
|
62
|
-
CALL_ACTOR_USAGE_SECTION,
|
|
63
|
-
dedent `
|
|
64
|
-
- Use \`waitSecs\` (0–45) to control how long to wait. Default 30s returns results for fast actors. Use \`waitSecs: 0\` to start and return immediately for long-running actors.
|
|
65
|
-
`,
|
|
66
|
-
CALL_ACTOR_EXAMPLES_SECTION,
|
|
67
|
-
];
|
|
68
|
-
if (includeWidget)
|
|
69
|
-
sections.push(WIDGET_ADDENDUM);
|
|
70
|
-
return sections.join('\n\n');
|
|
71
|
-
}
|
|
72
|
-
export function buildCallActorDescription() {
|
|
73
|
-
return buildCallActorDescriptionSections(false);
|
|
74
|
-
}
|
|
75
|
-
export function buildCallActorAppsDescription() {
|
|
76
|
-
return buildCallActorDescriptionSections(true);
|
|
77
|
-
}
|
|
78
|
-
/** Exported for native actor tool error handling in server.ts — no logging, no telemetry. */
|
|
79
|
-
export function buildPermissionApprovalResponse(error) {
|
|
80
|
-
var _a;
|
|
81
|
-
const approvalUrl = typeof ((_a = error.data) === null || _a === void 0 ? void 0 : _a.approvalUrl) === 'string' ? error.data.approvalUrl : undefined;
|
|
82
|
-
return buildMCPResponse({
|
|
83
|
-
texts: [error.message, ...(approvalUrl ? [`Approve here: ${approvalUrl}`] : [])],
|
|
84
|
-
isError: true,
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
function buildPermissionApprovalErrorResponse(actorName, error, actorId, mcpSessionId) {
|
|
88
|
-
logHttpError(error, 'Failed to call Actor — permission approval required', {
|
|
89
|
-
actorName,
|
|
90
|
-
mcpSessionId,
|
|
91
|
-
failureCategory: FAILURE_CATEGORY.PERMISSION_APPROVAL_REQUIRED,
|
|
92
|
-
});
|
|
93
|
-
return {
|
|
94
|
-
...buildPermissionApprovalResponse(error),
|
|
95
|
-
toolTelemetry: {
|
|
96
|
-
toolStatus: TOOL_STATUS.SOFT_FAIL,
|
|
97
|
-
failureCategory: FAILURE_CATEGORY.PERMISSION_APPROVAL_REQUIRED,
|
|
98
|
-
failureHttpStatus: error.statusCode,
|
|
99
|
-
failureDetail: APIFY_ERROR_TYPE_FULL_PERMISSION_NOT_APPROVED,
|
|
100
|
-
actorId,
|
|
101
|
-
},
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
export function buildCallActorErrorResponse(params) {
|
|
105
|
-
const { actorName, error, actorId, mcpSessionId, actorGetDetailsTool } = params;
|
|
106
|
-
if (isPermissionApprovalError(error)) {
|
|
107
|
-
return buildPermissionApprovalErrorResponse(actorName, error, actorId, mcpSessionId);
|
|
108
|
-
}
|
|
109
|
-
const errMsg = error instanceof Error ? error.message : String(error);
|
|
110
|
-
const failureCategory = classifyFailureCategory(error);
|
|
111
|
-
logHttpError(error, 'Failed to call Actor', {
|
|
112
|
-
actorName,
|
|
113
|
-
mcpSessionId,
|
|
114
|
-
failureCategory,
|
|
115
|
-
});
|
|
116
|
-
const telemetry = {
|
|
117
|
-
toolStatus: getToolStatusFromError(error, false),
|
|
118
|
-
failureCategory,
|
|
119
|
-
failureHttpStatus: getHttpStatusCode(error),
|
|
120
|
-
failureDetail: errMsg.slice(0, 200),
|
|
121
|
-
actorId,
|
|
122
|
-
};
|
|
123
|
-
if (isMemoryQuotaError(error)) {
|
|
124
|
-
// Deliberately do NOT mention actor-runs-abort as a recovery path — nudging the LLM
|
|
125
|
-
// toward "free capacity" risks aborting unrelated in-flight runs the user cares about.
|
|
126
|
-
return buildMCPResponse({
|
|
127
|
-
texts: [
|
|
128
|
-
`Failed to call Actor '${actorName}': ${errMsg}`,
|
|
129
|
-
`Account memory quota exceeded for your plan. Retry with a smaller callOptions.memory, or wait for current runs to finish before retrying.`,
|
|
130
|
-
],
|
|
131
|
-
isError: true,
|
|
132
|
-
telemetry: { ...telemetry, failureDetail: APIFY_ERROR_TYPE_MEMORY_LIMIT_EXCEEDED },
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
if (isActorRunLimitError(error)) {
|
|
136
|
-
return buildMCPResponse({
|
|
137
|
-
texts: [`Failed to call Actor '${actorName}': ${errMsg}`, ACTOR_RUN_LIMIT_MESSAGE],
|
|
138
|
-
isError: true,
|
|
139
|
-
telemetry: { ...telemetry, failureDetail: APIFY_ERROR_TYPE_CANNOT_START_ACTOR_RUNS },
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
return buildMCPResponse({
|
|
143
|
-
texts: [
|
|
144
|
-
`Failed to call Actor '${actorName}': ${errMsg}`,
|
|
145
|
-
`Please verify the Actor name, input parameters, and ensure the Actor exists.`,
|
|
146
|
-
// "if available" — search-actors may not be loaded in apps-mode partial tool selections.
|
|
147
|
-
`If ${HelperTools.STORE_SEARCH} is available in this session, you can use it to search for available Actors, or get Actor details using: ${actorGetDetailsTool}.`,
|
|
148
|
-
],
|
|
149
|
-
isError: true,
|
|
150
|
-
telemetry,
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
export const callOptionsSchema = z.object({
|
|
154
|
-
memory: z
|
|
155
|
-
.number()
|
|
156
|
-
.min(128, 'Memory must be at least 128 MB')
|
|
157
|
-
.max(32768, 'Memory cannot exceed 32 GB (32768 MB)')
|
|
158
|
-
.optional().describe(dedent `
|
|
159
|
-
Memory per run in MB. Power of 2 from 128 to 32768.
|
|
160
|
-
Apify also caps total memory across all your concurrent runs (account plan limit); if a run is rejected because that quota would be exceeded, retry with a smaller value.
|
|
161
|
-
`),
|
|
162
|
-
timeout: z.number().min(0, 'Timeout must be 0 or greater').optional().describe(dedent `
|
|
163
|
-
Maximum runtime for the Actor in seconds. After this time elapses, the Actor will be automatically terminated.
|
|
164
|
-
Use 0 for infinite timeout (no time limit).
|
|
165
|
-
`),
|
|
166
|
-
build: z
|
|
167
|
-
.string()
|
|
168
|
-
.optional()
|
|
169
|
-
.describe('Tag or number of the Actor build to run (e.g., "latest", "beta", "1.2.345"). If omitted, the Actor\'s default build is used.'),
|
|
170
|
-
maxItems: z.number().int().positive().optional().describe(dedent `
|
|
171
|
-
Pay-per-result Actors only — ignored otherwise.
|
|
172
|
-
Caps billed dataset items; does NOT limit production. Prefer the Actor's own input fields (e.g. maxResults) to bound work.
|
|
173
|
-
`),
|
|
174
|
-
maxTotalChargeUsd: z.number().positive().optional().describe(dedent `
|
|
175
|
-
Pay-per-event Actors only — ignored otherwise.
|
|
176
|
-
Caps total USD billed; does NOT limit work. Prefer the Actor's own input fields to bound work.
|
|
177
|
-
`),
|
|
178
|
-
});
|
|
179
|
-
/** Zod schema for call-actor arguments — shared between default and apps variants. */
|
|
180
|
-
export const callActorArgs = z.object({
|
|
181
|
-
actor: z.string().describe(dedent `
|
|
182
|
-
The name of the Actor to call. Format: "username/name" (e.g., "apify/rag-web-browser").
|
|
183
|
-
|
|
184
|
-
For MCP server Actors, use format "actorName:toolName" to call a specific tool (e.g., "apify/actors-mcp-server:fetch-apify-docs").
|
|
185
|
-
`),
|
|
186
|
-
input: z.object({}).passthrough().describe('The input JSON to pass to the Actor. Required.'),
|
|
187
|
-
waitSecs: z
|
|
188
|
-
.number()
|
|
189
|
-
.int()
|
|
190
|
-
.min(0, 'waitSecs must be 0 or greater')
|
|
191
|
-
.max(45, 'waitSecs cannot exceed 45')
|
|
192
|
-
.default(CALL_ACTOR_WAIT_SECS_DEFAULT)
|
|
193
|
-
.optional()
|
|
194
|
-
.describe('Seconds to wait for completion (0–45, default 30). Returns with current run status if not terminal within waitSecs.'),
|
|
195
|
-
callOptions: callOptionsSchema
|
|
196
|
-
.optional()
|
|
197
|
-
.describe('Optional run config: memory (MB), timeout (s), build, maxItems (pay-per-result cap), maxTotalChargeUsd (pay-per-event cap).'),
|
|
198
|
-
});
|
|
199
|
-
export const callActorInputSchema = z.toJSONSchema(callActorArgs);
|
|
200
|
-
export const callActorAjvValidate = compileSchema({ ...z.toJSONSchema(callActorArgs), additionalProperties: true });
|
|
201
|
-
/**
|
|
202
|
-
* Returns a rejection MCP response when the requested Actor is a standby
|
|
203
|
-
* (or MCP-server) Actor AND the session uses a third-party payment provider.
|
|
204
|
-
* Otherwise returns `null`.
|
|
205
|
-
*
|
|
206
|
-
* Standby Actors cannot be paid for via x402 / Skyfire — calling them in
|
|
207
|
-
* payment mode is a hard input error, so this guard must run BEFORE the
|
|
208
|
-
* generic payment-required short-circuit in the tool-call handler so the
|
|
209
|
-
* agent receives the precise reason instead of a generic 402.
|
|
210
|
-
*
|
|
211
|
-
* Uses `actorDefinitionCache` — one definition fetch on a cold cache.
|
|
212
|
-
*/
|
|
213
|
-
export async function checkPaymentProviderStandbyConflict(params) {
|
|
214
|
-
const { actorName, paymentProvider, apifyToken, mcpSessionId } = params;
|
|
215
|
-
const normalizedActorName = fixActorNameInputAndLog(actorName, { mcpSessionId });
|
|
216
|
-
const { baseActorName } = resolveActorContext(normalizedActorName);
|
|
217
|
-
// Token-based client — payment headers are only relevant for actual Actor runs.
|
|
218
|
-
const apifyClientForDefinition = new ApifyClient({ token: apifyToken });
|
|
219
|
-
const actorDefinitionWithInfo = await getActorDefinitionCached(baseActorName, apifyClientForDefinition);
|
|
220
|
-
if (!actorDefinitionWithInfo) {
|
|
221
|
-
return null;
|
|
222
|
-
}
|
|
223
|
-
const actorInfo = {
|
|
224
|
-
definition: actorDefinitionWithInfo.definition,
|
|
225
|
-
actor: actorDefinitionWithInfo.info,
|
|
226
|
-
webServerMcpPath: null,
|
|
227
|
-
};
|
|
228
|
-
if (!isActorBlockedUnderPaymentProvider(actorInfo)) {
|
|
229
|
-
return null;
|
|
230
|
-
}
|
|
231
|
-
log.softFail('Rejecting call-actor for standby Actor under third-party payment provider', {
|
|
232
|
-
actorName: baseActorName,
|
|
233
|
-
paymentProviderId: paymentProvider.id,
|
|
234
|
-
mcpSessionId,
|
|
235
|
-
failureCategory: FAILURE_CATEGORY.INVALID_INPUT,
|
|
236
|
-
});
|
|
237
|
-
return buildMCPResponse({
|
|
238
|
-
texts: [ActorLoadError.standbyPaymentNotSupported(normalizedActorName).message],
|
|
239
|
-
isError: true,
|
|
240
|
-
telemetry: { toolStatus: TOOL_STATUS.SOFT_FAIL, failureCategory: FAILURE_CATEGORY.INVALID_INPUT },
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Resolves MCP URL and parses the "actor:tool" format.
|
|
245
|
-
* Shared pre-processing step used by both default and apps variants.
|
|
246
|
-
*/
|
|
247
|
-
export function resolveActorContext(actorName) {
|
|
248
|
-
const mcpToolMatch = actorName.match(/^(.+):(.+)$/);
|
|
249
|
-
if (mcpToolMatch) {
|
|
250
|
-
return {
|
|
251
|
-
baseActorName: mcpToolMatch[1],
|
|
252
|
-
mcpToolName: mcpToolMatch[2],
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
return { baseActorName: actorName, mcpToolName: undefined };
|
|
256
|
-
}
|
|
257
|
-
/**
|
|
258
|
-
* Handles the MCP tool call flow (when actorName contains ":toolName").
|
|
259
|
-
* Returns a response if handled, or null if this is not an MCP tool call.
|
|
260
|
-
*/
|
|
261
|
-
export async function handleMcpToolCall(params) {
|
|
262
|
-
const { baseActorName, mcpToolName, input, isActorMcpServer, mcpServerUrl, apifyToken, mcpSessionId } = params;
|
|
263
|
-
if (!isActorMcpServer) {
|
|
264
|
-
return buildMCPResponse({
|
|
265
|
-
texts: [`Actor '${baseActorName}' is not an MCP server.`],
|
|
266
|
-
isError: true,
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
if (!input) {
|
|
270
|
-
return buildMCPResponse({
|
|
271
|
-
texts: [
|
|
272
|
-
`Input is required for MCP tool '${mcpToolName}'. Please provide the input parameter based on the tool's input schema.`,
|
|
273
|
-
],
|
|
274
|
-
isError: true,
|
|
275
|
-
});
|
|
276
|
-
}
|
|
277
|
-
let client = null;
|
|
278
|
-
try {
|
|
279
|
-
client = await connectMCPClient(mcpServerUrl, apifyToken, mcpSessionId);
|
|
280
|
-
if (!client) {
|
|
281
|
-
return buildMCPResponse({
|
|
282
|
-
texts: [`Failed to connect to MCP server ${mcpServerUrl}`],
|
|
283
|
-
isError: true,
|
|
284
|
-
});
|
|
285
|
-
}
|
|
286
|
-
const result = await client.callTool({
|
|
287
|
-
name: mcpToolName,
|
|
288
|
-
arguments: input,
|
|
289
|
-
});
|
|
290
|
-
// `call-actor` declares `actorRunOutputSchema`, so MCP SDK ≥ 1.11.4 rejects any response
|
|
291
|
-
// without `structuredContent` (unless `isError: true`) with -32600. The pass-through has no
|
|
292
|
-
// Apify run, so synthesize a sentinel `RunResponse` matching the schema's `required` keys;
|
|
293
|
-
// the remote tool's payload still flows through `content`. Also forward `isError` so a
|
|
294
|
-
// failing remote tool surfaces as a failure here.
|
|
295
|
-
const isErrorFromRemote = result.isError === true;
|
|
296
|
-
return {
|
|
297
|
-
content: result.content,
|
|
298
|
-
isError: isErrorFromRemote,
|
|
299
|
-
structuredContent: {
|
|
300
|
-
runId: 'mcp-passthrough',
|
|
301
|
-
actorId: baseActorName,
|
|
302
|
-
actorName: baseActorName,
|
|
303
|
-
status: isErrorFromRemote ? 'FAILED' : 'SUCCEEDED',
|
|
304
|
-
storages: {},
|
|
305
|
-
summary: `Called MCP tool '${mcpToolName}' on '${baseActorName}'.`,
|
|
306
|
-
nextStep: 'Response content carries the remote MCP tool result; no Apify run was started.',
|
|
307
|
-
},
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
catch (error) {
|
|
311
|
-
logHttpError(error, `Failed to call MCP tool '${mcpToolName}' on Actor '${baseActorName}'`, {
|
|
312
|
-
actorName: baseActorName,
|
|
313
|
-
toolName: mcpToolName,
|
|
314
|
-
});
|
|
315
|
-
return buildMCPResponse({
|
|
316
|
-
texts: [
|
|
317
|
-
`Failed to call MCP tool '${mcpToolName}' on Actor '${baseActorName}': ${remoteMcpFailureDetail(error)}`,
|
|
318
|
-
],
|
|
319
|
-
isError: true,
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
finally {
|
|
323
|
-
if (client)
|
|
324
|
-
await client.close();
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Validates the actor and its input, returning the resolved actor tool or an error response.
|
|
329
|
-
* Shared validation logic used by both default and openai execution paths.
|
|
330
|
-
*/
|
|
331
|
-
export async function resolveAndValidateActor(params) {
|
|
332
|
-
var _a;
|
|
333
|
-
const { actorName, input, toolArgs } = params;
|
|
334
|
-
const { apifyClient } = toolArgs;
|
|
335
|
-
const { tools, errors } = await getActorsAsTools([actorName], apifyClient, {
|
|
336
|
-
mcpSessionId: toolArgs.mcpSessionId,
|
|
337
|
-
});
|
|
338
|
-
// NOT_FOUND falls through to the structured "Actor not found" response below.
|
|
339
|
-
// Any other error (LOAD_FAILED / STANDBY_PAYMENT_NOT_SUPPORTED) is rethrown so the
|
|
340
|
-
// outer call-actor handler reports it; STANDBY is also caught upstream by the
|
|
341
|
-
// call-time guard in server.ts, so it's a defensive fallback here.
|
|
342
|
-
if (errors[0] && errors[0].kind !== ACTOR_LOAD_ERROR_KIND.NOT_FOUND) {
|
|
343
|
-
throw errors[0];
|
|
344
|
-
}
|
|
345
|
-
const actor = tools[0];
|
|
346
|
-
if (!actor) {
|
|
347
|
-
return {
|
|
348
|
-
error: buildMCPResponse({
|
|
349
|
-
texts: [
|
|
350
|
-
dedent `
|
|
351
|
-
Actor '${actorName}' was not found.
|
|
352
|
-
Please verify Actor ID or name format (e.g., "username/name" like "apify/rag-web-browser") and ensure that the Actor exists.
|
|
353
|
-
You can search for available Actors using the tool: ${HelperTools.STORE_SEARCH}.
|
|
354
|
-
`,
|
|
355
|
-
],
|
|
356
|
-
isError: true,
|
|
357
|
-
telemetry: {
|
|
358
|
-
toolStatus: TOOL_STATUS.SOFT_FAIL,
|
|
359
|
-
failureCategory: FAILURE_CATEGORY.INVALID_INPUT,
|
|
360
|
-
failureHttpStatus: 404,
|
|
361
|
-
failureDetail: `Actor '${actorName}' was not found`,
|
|
362
|
-
},
|
|
363
|
-
}),
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
const actorId = extractActorId(actor);
|
|
367
|
-
if (!input) {
|
|
368
|
-
log.softFail('Input is required for Actor', {
|
|
369
|
-
actorName,
|
|
370
|
-
mcpSessionId: toolArgs.mcpSessionId,
|
|
371
|
-
failureCategory: FAILURE_CATEGORY.INVALID_INPUT,
|
|
372
|
-
});
|
|
373
|
-
return {
|
|
374
|
-
error: buildMCPResponse({
|
|
375
|
-
texts: [
|
|
376
|
-
`Input is required for Actor '${actorName}'. Please provide the input parameter based on the Actor's input schema.`,
|
|
377
|
-
`The input schema for this Actor was retrieved and is shown below:`,
|
|
378
|
-
`\`\`\`json\n${JSON.stringify(actor.inputSchema)}\n\`\`\``,
|
|
379
|
-
],
|
|
380
|
-
isError: true,
|
|
381
|
-
telemetry: {
|
|
382
|
-
toolStatus: TOOL_STATUS.SOFT_FAIL,
|
|
383
|
-
failureCategory: FAILURE_CATEGORY.INVALID_INPUT,
|
|
384
|
-
actorId,
|
|
385
|
-
failureDetail: 'input is required',
|
|
386
|
-
},
|
|
387
|
-
}),
|
|
388
|
-
};
|
|
389
|
-
}
|
|
390
|
-
if (!actor.ajvValidate(input)) {
|
|
391
|
-
const { errors } = actor.ajvValidate;
|
|
392
|
-
const ajvDetails = extractAjvErrorDetails(errors !== null && errors !== void 0 ? errors : null);
|
|
393
|
-
const validationSummary = (_a = errors === null || errors === void 0 ? void 0 : errors.map((e) => e.message).join(', ')) !== null && _a !== void 0 ? _a : '';
|
|
394
|
-
log.softFail('Input validation failed for Actor', {
|
|
395
|
-
actorName,
|
|
396
|
-
mcpSessionId: toolArgs.mcpSessionId,
|
|
397
|
-
failureCategory: FAILURE_CATEGORY.INVALID_INPUT,
|
|
398
|
-
validationKeyword: ajvDetails.validation_keyword,
|
|
399
|
-
validationPath: ajvDetails.validation_path,
|
|
400
|
-
validationMissingProperty: ajvDetails.validation_missing_property,
|
|
401
|
-
});
|
|
402
|
-
const content = [
|
|
403
|
-
`Input validation failed for Actor '${actorName}'. Please ensure your input matches the Actor's input schema.`,
|
|
404
|
-
`Input schema:\n\`\`\`json\n${JSON.stringify(actor.inputSchema)}\n\`\`\``,
|
|
405
|
-
];
|
|
406
|
-
if (validationSummary) {
|
|
407
|
-
content.push(`Validation errors: ${validationSummary}`);
|
|
408
|
-
}
|
|
409
|
-
return {
|
|
410
|
-
error: buildMCPResponse({
|
|
411
|
-
texts: content,
|
|
412
|
-
isError: true,
|
|
413
|
-
telemetry: {
|
|
414
|
-
toolStatus: TOOL_STATUS.SOFT_FAIL,
|
|
415
|
-
failureCategory: FAILURE_CATEGORY.INVALID_INPUT,
|
|
416
|
-
actorId,
|
|
417
|
-
failureDetail: validationSummary.slice(0, 200) || 'input validation failed',
|
|
418
|
-
ajvErrorDetails: ajvDetails,
|
|
419
|
-
},
|
|
420
|
-
}),
|
|
421
|
-
};
|
|
422
|
-
}
|
|
423
|
-
return { actor };
|
|
424
|
-
}
|
|
425
|
-
/**
|
|
426
|
-
* Performs the pre-execution checks common to both modes:
|
|
427
|
-
* - Parses args
|
|
428
|
-
* - Resolves actor/MCP context
|
|
429
|
-
* - Handles payment provider restrictions
|
|
430
|
-
* - Handles MCP tool calls
|
|
431
|
-
*
|
|
432
|
-
* Returns either an early response (error or MCP tool result) or the parsed context for mode-specific execution.
|
|
433
|
-
*
|
|
434
|
-
* Applies the same `actor` string normalization as `getActorsAsTools` **before** MCP URL lookup and routing so
|
|
435
|
-
* clients cannot pass a clean-enough id for definition fetch but a dirty id to `apifyClient.actor()` (see Mezmo:
|
|
436
|
-
* e.g. trailing `` ` `` on `apify/rag-web-browser`).
|
|
437
|
-
*/
|
|
438
|
-
export async function callActorPreExecute(toolArgs, options) {
|
|
439
|
-
const { args, apifyToken, mcpSessionId } = toolArgs;
|
|
440
|
-
const parsedArgs = callActorArgs.parse(args);
|
|
441
|
-
const actorName = fixActorNameInputAndLog(parsedArgs.actor, { mcpSessionId, route: options.route });
|
|
442
|
-
const parsed = { ...parsedArgs, actor: actorName };
|
|
443
|
-
const { baseActorName, mcpToolName } = resolveActorContext(parsed.actor);
|
|
444
|
-
// For definition resolution we always use a token-based client; payment provider is only for actual Actor runs.
|
|
445
|
-
// Standby/MCP-server Actors under a third-party payment provider are rejected upstream by
|
|
446
|
-
// `checkPaymentProviderStandbyConflict` in the generic tool-call handler — see src/mcp/server.ts.
|
|
447
|
-
const apifyClientForDefinition = new ApifyClient({ token: apifyToken });
|
|
448
|
-
const mcpServerUrlOrFalse = await getActorMcpUrlCached(baseActorName, apifyClientForDefinition);
|
|
449
|
-
const isActorMcpServer = !!mcpServerUrlOrFalse;
|
|
450
|
-
// Handle the case where LLM does not respect instructions when calling MCP server Actors
|
|
451
|
-
// and does not provide the tool name.
|
|
452
|
-
const isMcpToolNameInvalid = mcpToolName === undefined || mcpToolName.trim().length === 0;
|
|
453
|
-
if (isActorMcpServer && isMcpToolNameInvalid) {
|
|
454
|
-
return {
|
|
455
|
-
earlyResponse: buildMCPResponse({
|
|
456
|
-
texts: [CALL_ACTOR_MCP_MISSING_TOOL_NAME_MSG],
|
|
457
|
-
isError: true,
|
|
458
|
-
}),
|
|
459
|
-
};
|
|
460
|
-
}
|
|
461
|
-
// Handle MCP tool calls
|
|
462
|
-
if (mcpToolName) {
|
|
463
|
-
const mcpResult = await handleMcpToolCall({
|
|
464
|
-
baseActorName,
|
|
465
|
-
mcpToolName,
|
|
466
|
-
input: parsed.input,
|
|
467
|
-
isActorMcpServer,
|
|
468
|
-
mcpServerUrl: mcpServerUrlOrFalse,
|
|
469
|
-
apifyToken,
|
|
470
|
-
mcpSessionId,
|
|
471
|
-
});
|
|
472
|
-
if (mcpResult) {
|
|
473
|
-
return { earlyResponse: mcpResult };
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
return { parsed, baseActorName, mcpToolName };
|
|
477
|
-
}
|
|
478
|
-
/**
|
|
479
|
-
* Shared start-then-wait flow for call-actor variants (default + apps).
|
|
480
|
-
* `taskMode` is honored — when true, `waitSecs` is ignored and the SDK waits until terminal.
|
|
481
|
-
*/
|
|
482
|
-
export async function executeCallActor(toolArgs) {
|
|
483
|
-
const preResult = await callActorPreExecute(toolArgs, { route: HelperTools.ACTOR_CALL });
|
|
484
|
-
if ('earlyResponse' in preResult) {
|
|
485
|
-
return preResult.earlyResponse;
|
|
486
|
-
}
|
|
487
|
-
const { parsed, baseActorName } = preResult;
|
|
488
|
-
const { input, callOptions } = parsed;
|
|
489
|
-
// Task mode waits until terminal (waitSecs=undefined uses SDK default ~999999s); caller's waitSecs is ignored.
|
|
490
|
-
// Non-task mode: pass waitSecs so the SDK blocks up to that many seconds before returning.
|
|
491
|
-
const waitSecs = toolArgs.taskMode ? undefined : parsed.waitSecs;
|
|
492
|
-
let resolvedActorId;
|
|
493
|
-
try {
|
|
494
|
-
const resolution = await resolveAndValidateActor({
|
|
495
|
-
actorName: baseActorName,
|
|
496
|
-
input: input,
|
|
497
|
-
toolArgs,
|
|
498
|
-
});
|
|
499
|
-
if ('error' in resolution) {
|
|
500
|
-
return resolution.error;
|
|
501
|
-
}
|
|
502
|
-
resolvedActorId = extractActorId(resolution.actor);
|
|
503
|
-
const { apifyClient } = toolArgs;
|
|
504
|
-
const abortSignal = toolArgs.extra.signal;
|
|
505
|
-
if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted)
|
|
506
|
-
return {};
|
|
507
|
-
const actorRun = await apifyClient.actor(baseActorName).start(input, callOptions);
|
|
508
|
-
log.debug('Started Actor run', {
|
|
509
|
-
actorName: baseActorName,
|
|
510
|
-
runId: actorRun.id,
|
|
511
|
-
mcpSessionId: toolArgs.mcpSessionId,
|
|
512
|
-
waitSecs,
|
|
513
|
-
});
|
|
514
|
-
// Abort can arrive while start() was in flight — abort the newly created run.
|
|
515
|
-
if (abortSignal === null || abortSignal === void 0 ? void 0 : abortSignal.aborted) {
|
|
516
|
-
await abortRunOnSignal(actorRun.id, apifyClient);
|
|
517
|
-
return {};
|
|
518
|
-
}
|
|
519
|
-
const linkContext = await getConsoleLinkContext(toolArgs.apifyToken, apifyClient);
|
|
520
|
-
// waitSecs:0 means "fire and forget" — start() already returned the full run, skip re-fetch.
|
|
521
|
-
if (waitSecs === 0) {
|
|
522
|
-
const response = buildStartRunResponse({ actorName: baseActorName, actorRun, linkContext });
|
|
523
|
-
return { ...response, toolTelemetry: { actorId: resolvedActorId } };
|
|
524
|
-
}
|
|
525
|
-
const fetchResult = await fetchActorRunData({
|
|
526
|
-
runId: actorRun.id,
|
|
527
|
-
waitSecs,
|
|
528
|
-
actorName: baseActorName,
|
|
529
|
-
client: apifyClient,
|
|
530
|
-
progressTracker: toolArgs.progressTracker,
|
|
531
|
-
abortSignal,
|
|
532
|
-
mcpSessionId: toolArgs.mcpSessionId,
|
|
533
|
-
onAbort: abortRunOnSignal,
|
|
534
|
-
});
|
|
535
|
-
if ('aborted' in fetchResult)
|
|
536
|
-
return {};
|
|
537
|
-
if ('error' in fetchResult)
|
|
538
|
-
return fetchResult.error;
|
|
539
|
-
return {
|
|
540
|
-
...buildGetActorRunSuccessResponse({ ...fetchResult.result, widget: false, linkContext }),
|
|
541
|
-
toolTelemetry: { actorId: resolvedActorId },
|
|
542
|
-
};
|
|
543
|
-
}
|
|
544
|
-
catch (error) {
|
|
545
|
-
return buildCallActorErrorResponse({
|
|
546
|
-
actorName: baseActorName,
|
|
547
|
-
error,
|
|
548
|
-
actorId: resolvedActorId,
|
|
549
|
-
mcpSessionId: toolArgs.mcpSessionId,
|
|
550
|
-
actorGetDetailsTool: HelperTools.ACTOR_GET_DETAILS,
|
|
551
|
-
});
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
//# sourceMappingURL=call_actor_common.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"call_actor_common.js","sourceRoot":"","sources":["../../../src/tools/actors/call_actor_common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import type { ConsoleLinkContext, HelperTool, InternalToolArgs } from '../../types.js';
|
|
3
|
-
import { type ActorDetailsResult } from '../../utils/actor_details.js';
|
|
4
|
-
import { buildMCPResponse } from '../../utils/mcp.js';
|
|
5
|
-
/**
|
|
6
|
-
* Shared schema for actor details output options.
|
|
7
|
-
*
|
|
8
|
-
* Behavior:
|
|
9
|
-
* - If output is undefined or empty object: use defaults (all true except mcpTools and outputSchema)
|
|
10
|
-
* - If any property is explicitly set: only include sections with explicit true values
|
|
11
|
-
*/
|
|
12
|
-
export declare const actorDetailsOutputOptionsSchema: z.ZodObject<{
|
|
13
|
-
description: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
-
stats: z.ZodOptional<z.ZodBoolean>;
|
|
15
|
-
pricing: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
-
rating: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
-
metadata: z.ZodOptional<z.ZodBoolean>;
|
|
18
|
-
inputSchema: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
-
readme: z.ZodOptional<z.ZodBoolean>;
|
|
20
|
-
outputSchema: z.ZodOptional<z.ZodBoolean>;
|
|
21
|
-
mcpTools: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
-
}, z.core.$strip>;
|
|
23
|
-
export declare const actorDetailsOutputDefaults: {
|
|
24
|
-
description: boolean;
|
|
25
|
-
stats: boolean;
|
|
26
|
-
pricing: boolean;
|
|
27
|
-
rating: boolean;
|
|
28
|
-
metadata: boolean;
|
|
29
|
-
inputSchema: boolean;
|
|
30
|
-
readme: boolean;
|
|
31
|
-
outputSchema: boolean;
|
|
32
|
-
mcpTools: boolean;
|
|
33
|
-
};
|
|
34
|
-
export type ResolvedOutputOptions = typeof actorDetailsOutputDefaults;
|
|
35
|
-
/**
|
|
36
|
-
* Resolve output options with smart defaults.
|
|
37
|
-
* If output is undefined/empty, returns defaults.
|
|
38
|
-
* If any property is explicitly set, undefined properties are treated as false.
|
|
39
|
-
*/
|
|
40
|
-
export declare function resolveOutputOptions(output?: z.infer<typeof actorDetailsOutputOptionsSchema>): ResolvedOutputOptions;
|
|
41
|
-
/**
|
|
42
|
-
* Zod schema for fetch-actor-details arguments — used by the mode-independent
|
|
43
|
-
* base tool. The `-widget` sibling has its own `actor`-only schema in
|
|
44
|
-
* `src/tools/widgets/fetch_actor_details_widget.ts`.
|
|
45
|
-
*/
|
|
46
|
-
export declare const fetchActorDetailsToolArgsSchema: z.ZodObject<{
|
|
47
|
-
actor: z.ZodString;
|
|
48
|
-
output: z.ZodOptional<z.ZodObject<{
|
|
49
|
-
description: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
-
stats: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
-
pricing: z.ZodOptional<z.ZodBoolean>;
|
|
52
|
-
rating: z.ZodOptional<z.ZodBoolean>;
|
|
53
|
-
metadata: z.ZodOptional<z.ZodBoolean>;
|
|
54
|
-
inputSchema: z.ZodOptional<z.ZodBoolean>;
|
|
55
|
-
readme: z.ZodOptional<z.ZodBoolean>;
|
|
56
|
-
outputSchema: z.ZodOptional<z.ZodBoolean>;
|
|
57
|
-
mcpTools: z.ZodOptional<z.ZodBoolean>;
|
|
58
|
-
}, z.core.$strip>>;
|
|
59
|
-
}, z.core.$strip>;
|
|
60
|
-
/**
|
|
61
|
-
* Tool metadata for the mode-independent `fetch-actor-details` — everything
|
|
62
|
-
* except the `call` handler. No widget `_meta`; the `-widget` sibling (apps-only)
|
|
63
|
-
* carries its own widget metadata.
|
|
64
|
-
*/
|
|
65
|
-
export declare const fetchActorDetailsMetadata: Omit<HelperTool, 'call'>;
|
|
66
|
-
/**
|
|
67
|
-
* Build error response for when actor is not found.
|
|
68
|
-
*/
|
|
69
|
-
export declare function buildActorNotFoundResponse(actorName: string): ReturnType<typeof buildMCPResponse>;
|
|
70
|
-
/**
|
|
71
|
-
* Build text and structured response for actor details.
|
|
72
|
-
* Pure/sync: the caller pre-resolves `mcpToolsMessage` when `output.mcpTools` is true.
|
|
73
|
-
*/
|
|
74
|
-
export declare function buildActorDetailsTextResponse(options: {
|
|
75
|
-
details: ActorDetailsResult;
|
|
76
|
-
output: ResolvedOutputOptions;
|
|
77
|
-
actorOutputSchema?: Record<string, unknown> | null;
|
|
78
|
-
mcpToolsMessage?: string;
|
|
79
|
-
linkContext?: ConsoleLinkContext;
|
|
80
|
-
}): {
|
|
81
|
-
texts: string[];
|
|
82
|
-
structuredContent: Record<string, unknown>;
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Shared handler for the base fetch-actor-details tool.
|
|
86
|
-
* Returns the same text + structured response in both modes.
|
|
87
|
-
*/
|
|
88
|
-
export declare function buildFetchActorDetailsResult(toolArgs: InternalToolArgs): Promise<ReturnType<typeof buildMCPResponse>>;
|
|
89
|
-
//# sourceMappingURL=fetch_actor_details_common.d.ts.map
|