@apify/actors-mcp-server 0.9.2 → 0.9.3-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.
Files changed (422) hide show
  1. package/README.md +2 -2
  2. package/dist/actor/const.js +1 -4
  3. package/dist/actor/const.js.map +1 -1
  4. package/dist/actor/server.d.ts.map +1 -1
  5. package/dist/actor/server.js +11 -15
  6. package/dist/actor/server.js.map +1 -1
  7. package/dist/actor/types.js +1 -4
  8. package/dist/actor/types.js.map +1 -1
  9. package/dist/actor/utils.js +1 -4
  10. package/dist/actor/utils.js.map +1 -1
  11. package/dist/{apify-client.d.ts → apify_client.d.ts} +1 -1
  12. package/dist/{apify-client.d.ts.map → apify_client.d.ts.map} +1 -1
  13. package/dist/{apify-client.js → apify_client.js} +1 -4
  14. package/dist/apify_client.js.map +1 -0
  15. package/dist/const.d.ts +1 -1
  16. package/dist/const.d.ts.map +1 -1
  17. package/dist/const.js +4 -7
  18. package/dist/const.js.map +1 -1
  19. package/dist/errors.js +1 -4
  20. package/dist/errors.js.map +1 -1
  21. package/dist/index.js +1 -4
  22. package/dist/index.js.map +1 -1
  23. package/dist/index_internals.d.ts +16 -0
  24. package/dist/index_internals.d.ts.map +1 -0
  25. package/dist/index_internals.js +18 -0
  26. package/dist/index_internals.js.map +1 -0
  27. package/dist/input.js +1 -4
  28. package/dist/input.js.map +1 -1
  29. package/dist/instrument.js +1 -4
  30. package/dist/instrument.js.map +1 -1
  31. package/dist/main.js +2 -5
  32. package/dist/main.js.map +1 -1
  33. package/dist/mcp/actors.js +2 -5
  34. package/dist/mcp/actors.js.map +1 -1
  35. package/dist/mcp/client.js +1 -4
  36. package/dist/mcp/client.js.map +1 -1
  37. package/dist/mcp/const.js +1 -4
  38. package/dist/mcp/const.js.map +1 -1
  39. package/dist/mcp/proxy.js +1 -4
  40. package/dist/mcp/proxy.js.map +1 -1
  41. package/dist/mcp/server.d.ts +6 -2
  42. package/dist/mcp/server.d.ts.map +1 -1
  43. package/dist/mcp/server.js +72 -91
  44. package/dist/mcp/server.js.map +1 -1
  45. package/dist/mcp/utils.d.ts +4 -3
  46. package/dist/mcp/utils.d.ts.map +1 -1
  47. package/dist/mcp/utils.js +6 -8
  48. package/dist/mcp/utils.js.map +1 -1
  49. package/dist/prompts/index.js +2 -5
  50. package/dist/prompts/index.js.map +1 -1
  51. package/dist/prompts/{latest-news-on-topic.d.ts → latest_news_on_topic.d.ts} +1 -1
  52. package/dist/prompts/latest_news_on_topic.d.ts.map +1 -0
  53. package/dist/prompts/{latest-news-on-topic.js → latest_news_on_topic.js} +1 -4
  54. package/dist/prompts/latest_news_on_topic.js.map +1 -0
  55. package/dist/resources/resource_service.d.ts +2 -2
  56. package/dist/resources/resource_service.d.ts.map +1 -1
  57. package/dist/resources/resource_service.js +4 -7
  58. package/dist/resources/resource_service.js.map +1 -1
  59. package/dist/resources/widgets.js +1 -4
  60. package/dist/resources/widgets.js.map +1 -1
  61. package/dist/server_card.js +1 -4
  62. package/dist/server_card.js.map +1 -1
  63. package/dist/state.d.ts +1 -1
  64. package/dist/state.js +2 -5
  65. package/dist/state.js.map +1 -1
  66. package/dist/stdio.js +5 -7
  67. package/dist/stdio.js.map +1 -1
  68. package/dist/telemetry.js +1 -4
  69. package/dist/telemetry.js.map +1 -1
  70. package/dist/tools/build.d.ts +1 -1
  71. package/dist/tools/build.js +1 -4
  72. package/dist/tools/build.js.map +1 -1
  73. package/dist/tools/categories.d.ts +49 -9
  74. package/dist/tools/categories.d.ts.map +1 -1
  75. package/dist/tools/categories.js +86 -26
  76. package/dist/tools/categories.js.map +1 -1
  77. package/dist/tools/common/abort_actor_run.d.ts +6 -0
  78. package/dist/tools/common/abort_actor_run.d.ts.map +1 -0
  79. package/dist/tools/common/abort_actor_run.js +48 -0
  80. package/dist/tools/common/abort_actor_run.js.map +1 -0
  81. package/dist/tools/{helpers.d.ts → common/add_actor.d.ts} +2 -2
  82. package/dist/tools/common/add_actor.d.ts.map +1 -0
  83. package/dist/tools/{helpers.js → common/add_actor.js} +7 -10
  84. package/dist/tools/common/add_actor.js.map +1 -0
  85. package/dist/tools/{dataset_collection.d.ts → common/dataset_collection.d.ts} +1 -1
  86. package/dist/tools/common/dataset_collection.d.ts.map +1 -0
  87. package/dist/tools/{dataset_collection.js → common/dataset_collection.js} +6 -9
  88. package/dist/tools/common/dataset_collection.js.map +1 -0
  89. package/dist/tools/common/fetch_apify_docs.d.ts +3 -0
  90. package/dist/tools/common/fetch_apify_docs.d.ts.map +1 -0
  91. package/dist/tools/{fetch-apify-docs.js → common/fetch_apify_docs.js} +10 -13
  92. package/dist/tools/common/fetch_apify_docs.js.map +1 -0
  93. package/dist/tools/{get-actor-output.d.ts → common/get_actor_output.d.ts} +2 -2
  94. package/dist/tools/common/get_actor_output.d.ts.map +1 -0
  95. package/dist/tools/{get-actor-output.js → common/get_actor_output.js} +9 -12
  96. package/dist/tools/common/get_actor_output.js.map +1 -0
  97. package/dist/tools/common/get_actor_run_log.d.ts +7 -0
  98. package/dist/tools/common/get_actor_run_log.d.ts.map +1 -0
  99. package/dist/tools/common/get_actor_run_log.js +52 -0
  100. package/dist/tools/common/get_actor_run_log.js.map +1 -0
  101. package/dist/tools/common/get_dataset.d.ts +6 -0
  102. package/dist/tools/common/get_dataset.d.ts.map +1 -0
  103. package/dist/tools/common/get_dataset.js +55 -0
  104. package/dist/tools/common/get_dataset.js.map +1 -0
  105. package/dist/tools/common/get_dataset_items.d.ts +6 -0
  106. package/dist/tools/common/get_dataset_items.d.ts.map +1 -0
  107. package/dist/tools/common/get_dataset_items.js +98 -0
  108. package/dist/tools/common/get_dataset_items.js.map +1 -0
  109. package/dist/tools/common/get_dataset_schema.d.ts +6 -0
  110. package/dist/tools/common/get_dataset_schema.d.ts.map +1 -0
  111. package/dist/tools/common/get_dataset_schema.js +91 -0
  112. package/dist/tools/common/get_dataset_schema.js.map +1 -0
  113. package/dist/tools/common/get_html_skeleton.d.ts +3 -0
  114. package/dist/tools/common/get_html_skeleton.d.ts.map +1 -0
  115. package/dist/tools/{get-html-skeleton.js → common/get_html_skeleton.js} +10 -13
  116. package/dist/tools/common/get_html_skeleton.js.map +1 -0
  117. package/dist/tools/common/get_key_value_store.d.ts +6 -0
  118. package/dist/tools/common/get_key_value_store.d.ts.map +1 -0
  119. package/dist/tools/common/get_key_value_store.js +45 -0
  120. package/dist/tools/common/get_key_value_store.js.map +1 -0
  121. package/dist/tools/common/get_key_value_store_keys.d.ts +6 -0
  122. package/dist/tools/common/get_key_value_store_keys.d.ts.map +1 -0
  123. package/dist/tools/common/get_key_value_store_keys.js +56 -0
  124. package/dist/tools/common/get_key_value_store_keys.js.map +1 -0
  125. package/dist/tools/common/get_key_value_store_record.d.ts +6 -0
  126. package/dist/tools/common/get_key_value_store_record.d.ts.map +1 -0
  127. package/dist/tools/common/get_key_value_store_record.js +48 -0
  128. package/dist/tools/common/get_key_value_store_record.js.map +1 -0
  129. package/dist/tools/{key_value_store_collection.d.ts → common/key_value_store_collection.d.ts} +1 -1
  130. package/dist/tools/common/key_value_store_collection.d.ts.map +1 -0
  131. package/dist/tools/{key_value_store_collection.js → common/key_value_store_collection.js} +6 -9
  132. package/dist/tools/common/key_value_store_collection.js.map +1 -0
  133. package/dist/tools/{run_collection.d.ts → common/run_collection.d.ts} +1 -1
  134. package/dist/tools/common/run_collection.d.ts.map +1 -0
  135. package/dist/tools/{run_collection.js → common/run_collection.js} +7 -10
  136. package/dist/tools/common/run_collection.js.map +1 -0
  137. package/dist/tools/common/search_apify_docs.d.ts +3 -0
  138. package/dist/tools/common/search_apify_docs.d.ts.map +1 -0
  139. package/dist/tools/{search-apify-docs.js → common/search_apify_docs.js} +8 -11
  140. package/dist/tools/common/search_apify_docs.js.map +1 -0
  141. package/dist/tools/core/actor_execution.d.ts +40 -0
  142. package/dist/tools/core/actor_execution.d.ts.map +1 -0
  143. package/dist/tools/core/actor_execution.js +87 -0
  144. package/dist/tools/core/actor_execution.js.map +1 -0
  145. package/dist/{utils/actor-response.d.ts → tools/core/actor_response.d.ts} +3 -3
  146. package/dist/tools/core/actor_response.d.ts.map +1 -0
  147. package/dist/{utils/actor-response.js → tools/core/actor_response.js} +1 -4
  148. package/dist/tools/core/actor_response.js.map +1 -0
  149. package/dist/tools/core/actor_tools_factory.d.ts +37 -0
  150. package/dist/tools/core/actor_tools_factory.d.ts.map +1 -0
  151. package/dist/tools/core/actor_tools_factory.js +218 -0
  152. package/dist/tools/core/actor_tools_factory.js.map +1 -0
  153. package/dist/tools/core/call_actor_common.d.ts +95 -0
  154. package/dist/tools/core/call_actor_common.d.ts.map +1 -0
  155. package/dist/tools/core/call_actor_common.js +227 -0
  156. package/dist/tools/core/call_actor_common.js.map +1 -0
  157. package/dist/tools/core/fetch_actor_details_common.d.ts +25 -0
  158. package/dist/tools/core/fetch_actor_details_common.d.ts.map +1 -0
  159. package/dist/tools/core/fetch_actor_details_common.js +54 -0
  160. package/dist/tools/core/fetch_actor_details_common.js.map +1 -0
  161. package/dist/tools/core/get_actor_run_common.d.ts +54 -0
  162. package/dist/tools/core/get_actor_run_common.d.ts.map +1 -0
  163. package/dist/tools/core/get_actor_run_common.js +111 -0
  164. package/dist/tools/core/get_actor_run_common.js.map +1 -0
  165. package/dist/tools/core/search_actors_common.d.ts +17 -0
  166. package/dist/tools/core/search_actors_common.d.ts.map +1 -0
  167. package/dist/tools/core/search_actors_common.js +103 -0
  168. package/dist/tools/core/search_actors_common.js.map +1 -0
  169. package/dist/tools/default/actor_executor.d.ts +7 -0
  170. package/dist/tools/default/actor_executor.d.ts.map +1 -0
  171. package/dist/tools/default/actor_executor.js +31 -0
  172. package/dist/tools/default/actor_executor.js.map +1 -0
  173. package/dist/tools/default/call_actor.d.ts +8 -0
  174. package/dist/tools/default/call_actor.d.ts.map +1 -0
  175. package/dist/tools/default/call_actor.js +132 -0
  176. package/dist/tools/default/call_actor.js.map +1 -0
  177. package/dist/tools/default/fetch_actor_details.d.ts +7 -0
  178. package/dist/tools/default/fetch_actor_details.d.ts.map +1 -0
  179. package/dist/tools/default/fetch_actor_details.js +42 -0
  180. package/dist/tools/default/fetch_actor_details.js.map +1 -0
  181. package/dist/tools/default/get_actor_run.d.ts +7 -0
  182. package/dist/tools/default/get_actor_run.d.ts.map +1 -0
  183. package/dist/tools/default/get_actor_run.js +46 -0
  184. package/dist/tools/default/get_actor_run.js.map +1 -0
  185. package/dist/tools/default/search_actors.d.ts +7 -0
  186. package/dist/tools/default/search_actors.d.ts.map +1 -0
  187. package/dist/tools/default/search_actors.js +62 -0
  188. package/dist/tools/default/search_actors.js.map +1 -0
  189. package/dist/tools/index.d.ts +11 -5
  190. package/dist/tools/index.d.ts.map +1 -1
  191. package/dist/tools/index.js +17 -11
  192. package/dist/tools/index.js.map +1 -1
  193. package/dist/tools/openai/actor_executor.d.ts +8 -0
  194. package/dist/tools/openai/actor_executor.d.ts.map +1 -0
  195. package/dist/tools/openai/actor_executor.js +49 -0
  196. package/dist/tools/openai/actor_executor.js.map +1 -0
  197. package/dist/tools/openai/call_actor.d.ts +8 -0
  198. package/dist/tools/openai/call_actor.d.ts.map +1 -0
  199. package/dist/tools/openai/call_actor.js +117 -0
  200. package/dist/tools/openai/call_actor.js.map +1 -0
  201. package/dist/tools/openai/fetch_actor_details.d.ts +7 -0
  202. package/dist/tools/openai/fetch_actor_details.d.ts.map +1 -0
  203. package/dist/tools/openai/fetch_actor_details.js +47 -0
  204. package/dist/tools/openai/fetch_actor_details.js.map +1 -0
  205. package/dist/tools/openai/fetch_actor_details_internal.d.ts +3 -0
  206. package/dist/tools/openai/fetch_actor_details_internal.d.ts.map +1 -0
  207. package/dist/tools/{fetch-actor-details-internal.js → openai/fetch_actor_details_internal.js} +9 -13
  208. package/dist/tools/openai/fetch_actor_details_internal.js.map +1 -0
  209. package/dist/tools/openai/get_actor_run.d.ts +7 -0
  210. package/dist/tools/openai/get_actor_run.d.ts.map +1 -0
  211. package/dist/tools/openai/get_actor_run.js +53 -0
  212. package/dist/tools/openai/get_actor_run.js.map +1 -0
  213. package/dist/tools/openai/search_actors.d.ts +7 -0
  214. package/dist/tools/openai/search_actors.d.ts.map +1 -0
  215. package/dist/tools/openai/search_actors.js +76 -0
  216. package/dist/tools/openai/search_actors.js.map +1 -0
  217. package/dist/tools/openai/search_actors_internal.d.ts +3 -0
  218. package/dist/tools/openai/search_actors_internal.d.ts.map +1 -0
  219. package/dist/tools/{search-actors-internal.js → openai/search_actors_internal.js} +10 -14
  220. package/dist/tools/openai/search_actors_internal.js.map +1 -0
  221. package/dist/tools/{structured-output-schemas.d.ts → structured_output_schemas.d.ts} +1 -1
  222. package/dist/tools/{structured-output-schemas.d.ts.map → structured_output_schemas.d.ts.map} +1 -1
  223. package/dist/tools/{structured-output-schemas.js → structured_output_schemas.js} +1 -4
  224. package/dist/tools/structured_output_schemas.js.map +1 -0
  225. package/dist/tools/utils.js +2 -5
  226. package/dist/tools/utils.js.map +1 -1
  227. package/dist/tsconfig.tsbuildinfo +1 -1
  228. package/dist/types.d.ts +76 -8
  229. package/dist/types.d.ts.map +1 -1
  230. package/dist/types.js +12 -5
  231. package/dist/types.js.map +1 -1
  232. package/dist/utils/actor.d.ts +1 -1
  233. package/dist/utils/actor.js +1 -4
  234. package/dist/utils/actor.js.map +1 -1
  235. package/dist/utils/{actor-card.d.ts → actor_card.d.ts} +2 -2
  236. package/dist/utils/{actor-card.d.ts.map → actor_card.d.ts.map} +1 -1
  237. package/dist/utils/{actor-card.js → actor_card.js} +2 -5
  238. package/dist/utils/actor_card.js.map +1 -0
  239. package/dist/utils/{actor-details.d.ts → actor_details.d.ts} +3 -3
  240. package/dist/utils/{actor-details.d.ts.map → actor_details.d.ts.map} +1 -1
  241. package/dist/utils/{actor-details.js → actor_details.js} +3 -6
  242. package/dist/utils/actor_details.js.map +1 -0
  243. package/dist/utils/{actor-search.d.ts → actor_search.d.ts} +13 -1
  244. package/dist/utils/actor_search.d.ts.map +1 -0
  245. package/dist/utils/{actor-search.js → actor_search.js} +19 -6
  246. package/dist/utils/actor_search.js.map +1 -0
  247. package/dist/utils/ajv.js +1 -4
  248. package/dist/utils/ajv.js.map +1 -1
  249. package/dist/utils/{apify-docs.d.ts → apify_docs.d.ts} +1 -1
  250. package/dist/utils/{apify-docs.d.ts.map → apify_docs.d.ts.map} +1 -1
  251. package/dist/utils/{apify-docs.js → apify_docs.js} +1 -4
  252. package/dist/utils/apify_docs.js.map +1 -0
  253. package/dist/utils/{apify-properties.d.ts → apify_properties.d.ts} +1 -1
  254. package/dist/utils/{apify-properties.d.ts.map → apify_properties.d.ts.map} +1 -1
  255. package/dist/utils/{apify-properties.js → apify_properties.js} +1 -4
  256. package/dist/utils/apify_properties.js.map +1 -0
  257. package/dist/utils/auth.d.ts +2 -0
  258. package/dist/utils/auth.d.ts.map +1 -1
  259. package/dist/utils/auth.js +5 -6
  260. package/dist/utils/auth.js.map +1 -1
  261. package/dist/utils/generic.js +1 -4
  262. package/dist/utils/generic.js.map +1 -1
  263. package/dist/utils/html.js +1 -4
  264. package/dist/utils/html.js.map +1 -1
  265. package/dist/utils/{html-to-md.d.ts → html_to_md.d.ts} +1 -1
  266. package/dist/utils/html_to_md.d.ts.map +1 -0
  267. package/dist/utils/{html-to-md.js → html_to_md.js} +1 -4
  268. package/dist/utils/html_to_md.js.map +1 -0
  269. package/dist/utils/logging.js +1 -4
  270. package/dist/utils/logging.js.map +1 -1
  271. package/dist/utils/mcp.js +1 -4
  272. package/dist/utils/mcp.js.map +1 -1
  273. package/dist/utils/{mcp-clients.d.ts → mcp_clients.d.ts} +1 -1
  274. package/dist/utils/mcp_clients.d.ts.map +1 -0
  275. package/dist/utils/{mcp-clients.js → mcp_clients.js} +1 -4
  276. package/dist/utils/mcp_clients.js.map +1 -0
  277. package/dist/utils/{pricing-info.d.ts → pricing_info.d.ts} +1 -1
  278. package/dist/utils/{pricing-info.d.ts.map → pricing_info.d.ts.map} +1 -1
  279. package/dist/utils/{pricing-info.js → pricing_info.js} +1 -4
  280. package/dist/utils/pricing_info.js.map +1 -0
  281. package/dist/utils/progress.d.ts +1 -1
  282. package/dist/utils/progress.js +1 -4
  283. package/dist/utils/progress.js.map +1 -1
  284. package/dist/utils/{schema-generation.d.ts → schema_generation.d.ts} +1 -1
  285. package/dist/utils/{schema-generation.d.ts.map → schema_generation.d.ts.map} +1 -1
  286. package/dist/utils/{schema-generation.js → schema_generation.js} +1 -4
  287. package/dist/utils/schema_generation.js.map +1 -0
  288. package/dist/utils/server-instructions/common.d.ts +19 -0
  289. package/dist/utils/server-instructions/common.d.ts.map +1 -0
  290. package/dist/utils/{server-instructions.js → server-instructions/common.js} +10 -42
  291. package/dist/utils/server-instructions/common.js.map +1 -0
  292. package/dist/utils/server-instructions/default.d.ts +6 -0
  293. package/dist/utils/server-instructions/default.d.ts.map +1 -0
  294. package/dist/utils/server-instructions/default.js +14 -0
  295. package/dist/utils/server-instructions/default.js.map +1 -0
  296. package/dist/utils/server-instructions/index.d.ts +10 -0
  297. package/dist/utils/server-instructions/index.d.ts.map +1 -0
  298. package/dist/utils/server-instructions/index.js +18 -0
  299. package/dist/utils/server-instructions/index.js.map +1 -0
  300. package/dist/utils/server-instructions/openai.d.ts +7 -0
  301. package/dist/utils/server-instructions/openai.d.ts.map +1 -0
  302. package/dist/utils/server-instructions/openai.js +30 -0
  303. package/dist/utils/server-instructions/openai.js.map +1 -0
  304. package/dist/utils/skyfire.js +1 -4
  305. package/dist/utils/skyfire.js.map +1 -1
  306. package/dist/utils/tool_categories_helpers.d.ts +11 -0
  307. package/dist/utils/tool_categories_helpers.d.ts.map +1 -0
  308. package/dist/utils/tool_categories_helpers.js +21 -0
  309. package/dist/utils/tool_categories_helpers.js.map +1 -0
  310. package/dist/utils/{tool-status.d.ts → tool_status.d.ts} +1 -1
  311. package/dist/utils/tool_status.d.ts.map +1 -0
  312. package/dist/utils/{tool-status.js → tool_status.js} +1 -4
  313. package/dist/utils/tool_status.js.map +1 -0
  314. package/dist/utils/tools.d.ts +12 -2
  315. package/dist/utils/tools.d.ts.map +1 -1
  316. package/dist/utils/tools.js +38 -6
  317. package/dist/utils/tools.js.map +1 -1
  318. package/dist/utils/{tools-loader.d.ts → tools_loader.d.ts} +5 -4
  319. package/dist/utils/tools_loader.d.ts.map +1 -0
  320. package/dist/utils/{tools-loader.js → tools_loader.js} +66 -69
  321. package/dist/utils/tools_loader.js.map +1 -0
  322. package/dist/utils/{ttl-lru.d.ts → ttl_lru.d.ts} +1 -1
  323. package/dist/utils/{ttl-lru.d.ts.map → ttl_lru.d.ts.map} +1 -1
  324. package/dist/utils/{ttl-lru.js → ttl_lru.js} +1 -4
  325. package/dist/utils/ttl_lru.js.map +1 -0
  326. package/dist/utils/{userid-cache.d.ts → userid_cache.d.ts} +2 -2
  327. package/dist/utils/userid_cache.d.ts.map +1 -0
  328. package/dist/utils/{userid-cache.js → userid_cache.js} +2 -5
  329. package/dist/utils/userid_cache.js.map +1 -0
  330. package/dist/utils/version.js +1 -4
  331. package/dist/utils/version.js.map +1 -1
  332. package/dist/web/dist/actor-detail-widget.js +62 -59
  333. package/dist/web/dist/actor-run-widget.js +116 -118
  334. package/dist/web/dist/search-actors-widget.js +91 -88
  335. package/manifest.json +1 -1
  336. package/package.json +8 -8
  337. package/server.json +1 -1
  338. package/dist/apify-client.js.map +0 -1
  339. package/dist/index-internals.d.ts +0 -15
  340. package/dist/index-internals.d.ts.map +0 -1
  341. package/dist/index-internals.js +0 -20
  342. package/dist/index-internals.js.map +0 -1
  343. package/dist/prompts/latest-news-on-topic.d.ts.map +0 -1
  344. package/dist/prompts/latest-news-on-topic.js.map +0 -1
  345. package/dist/tools/actor.d.ts +0 -73
  346. package/dist/tools/actor.d.ts.map +0 -1
  347. package/dist/tools/actor.js +0 -596
  348. package/dist/tools/actor.js.map +0 -1
  349. package/dist/tools/dataset.d.ts +0 -14
  350. package/dist/tools/dataset.d.ts.map +0 -1
  351. package/dist/tools/dataset.js +0 -235
  352. package/dist/tools/dataset.js.map +0 -1
  353. package/dist/tools/dataset_collection.d.ts.map +0 -1
  354. package/dist/tools/dataset_collection.js.map +0 -1
  355. package/dist/tools/fetch-actor-details-internal.d.ts +0 -3
  356. package/dist/tools/fetch-actor-details-internal.d.ts.map +0 -1
  357. package/dist/tools/fetch-actor-details-internal.js.map +0 -1
  358. package/dist/tools/fetch-actor-details.d.ts +0 -3
  359. package/dist/tools/fetch-actor-details.d.ts.map +0 -1
  360. package/dist/tools/fetch-actor-details.js +0 -103
  361. package/dist/tools/fetch-actor-details.js.map +0 -1
  362. package/dist/tools/fetch-apify-docs.d.ts +0 -3
  363. package/dist/tools/fetch-apify-docs.d.ts.map +0 -1
  364. package/dist/tools/fetch-apify-docs.js.map +0 -1
  365. package/dist/tools/get-actor-output.d.ts.map +0 -1
  366. package/dist/tools/get-actor-output.js.map +0 -1
  367. package/dist/tools/get-html-skeleton.d.ts +0 -3
  368. package/dist/tools/get-html-skeleton.d.ts.map +0 -1
  369. package/dist/tools/get-html-skeleton.js.map +0 -1
  370. package/dist/tools/helpers.d.ts.map +0 -1
  371. package/dist/tools/helpers.js.map +0 -1
  372. package/dist/tools/key_value_store.d.ts +0 -14
  373. package/dist/tools/key_value_store.d.ts.map +0 -1
  374. package/dist/tools/key_value_store.js +0 -142
  375. package/dist/tools/key_value_store.js.map +0 -1
  376. package/dist/tools/key_value_store_collection.d.ts.map +0 -1
  377. package/dist/tools/key_value_store_collection.js.map +0 -1
  378. package/dist/tools/run.d.ts +0 -15
  379. package/dist/tools/run.d.ts.map +0 -1
  380. package/dist/tools/run.js +0 -231
  381. package/dist/tools/run.js.map +0 -1
  382. package/dist/tools/run_collection.d.ts.map +0 -1
  383. package/dist/tools/run_collection.js.map +0 -1
  384. package/dist/tools/search-actors-internal.d.ts +0 -3
  385. package/dist/tools/search-actors-internal.d.ts.map +0 -1
  386. package/dist/tools/search-actors-internal.js.map +0 -1
  387. package/dist/tools/search-apify-docs.d.ts +0 -3
  388. package/dist/tools/search-apify-docs.d.ts.map +0 -1
  389. package/dist/tools/search-apify-docs.js.map +0 -1
  390. package/dist/tools/store_collection.d.ts +0 -26
  391. package/dist/tools/store_collection.d.ts.map +0 -1
  392. package/dist/tools/store_collection.js +0 -198
  393. package/dist/tools/store_collection.js.map +0 -1
  394. package/dist/tools/structured-output-schemas.js.map +0 -1
  395. package/dist/utils/actor-card.js.map +0 -1
  396. package/dist/utils/actor-details.js.map +0 -1
  397. package/dist/utils/actor-response.d.ts.map +0 -1
  398. package/dist/utils/actor-response.js.map +0 -1
  399. package/dist/utils/actor-search.d.ts.map +0 -1
  400. package/dist/utils/actor-search.js.map +0 -1
  401. package/dist/utils/apify-docs.js.map +0 -1
  402. package/dist/utils/apify-properties.js.map +0 -1
  403. package/dist/utils/html-to-md.d.ts.map +0 -1
  404. package/dist/utils/html-to-md.js.map +0 -1
  405. package/dist/utils/mcp-clients.d.ts.map +0 -1
  406. package/dist/utils/mcp-clients.js.map +0 -1
  407. package/dist/utils/pricing-info.js.map +0 -1
  408. package/dist/utils/schema-generation.js.map +0 -1
  409. package/dist/utils/server-instructions.d.ts +0 -14
  410. package/dist/utils/server-instructions.d.ts.map +0 -1
  411. package/dist/utils/server-instructions.js.map +0 -1
  412. package/dist/utils/tool-categories-helpers.d.ts +0 -10
  413. package/dist/utils/tool-categories-helpers.d.ts.map +0 -1
  414. package/dist/utils/tool-categories-helpers.js +0 -22
  415. package/dist/utils/tool-categories-helpers.js.map +0 -1
  416. package/dist/utils/tool-status.d.ts.map +0 -1
  417. package/dist/utils/tool-status.js.map +0 -1
  418. package/dist/utils/tools-loader.d.ts.map +0 -1
  419. package/dist/utils/tools-loader.js.map +0 -1
  420. package/dist/utils/ttl-lru.js.map +0 -1
  421. package/dist/utils/userid-cache.d.ts.map +0 -1
  422. package/dist/utils/userid-cache.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ import type { ApifyClient } from '../../apify_client.js';
2
+ import type { ActorInfo, ActorStore, ApifyToken, ToolEntry } from '../../types.js';
3
+ /**
4
+ * Enriches actor tool output schemas with field-level detail from the ActorStore.
5
+ * Uses Promise.allSettled to ensure individual failures don't block other tools.
6
+ */
7
+ export declare function enrichActorToolOutputSchemas(tools: ToolEntry[], actorStore: ActorStore): Promise<void>;
8
+ /**
9
+ * This function is used to fetch normal non-MCP server Actors as a tool.
10
+ *
11
+ * Fetches Actor input schemas by Actor IDs or Actor full names and creates MCP tools.
12
+ *
13
+ * This function retrieves the input schemas for the specified Actors and compiles them into MCP tools.
14
+ * It uses the AJV library to validate the input schemas.
15
+ *
16
+ * Tool name can't contain /, so it is replaced with _
17
+ *
18
+ * The input schema processing workflow:
19
+ * 1. Properties are marked as required using markInputPropertiesAsRequired() to add "REQUIRED" prefix to descriptions
20
+ * 2. Nested properties are built by analyzing editor type (proxy, requestListSources) using buildNestedProperties()
21
+ * 3. Properties are filtered using filterSchemaProperties()
22
+ * 4. Properties are shortened using shortenProperties()
23
+ * 5. Enums are added to descriptions with examples using addEnumsToDescriptionsWithExamples()
24
+ *
25
+ * @param {ActorInfo[]} actorsInfo - An array of ActorInfo objects with webServerMcpPath, definition, and Actor.
26
+ * @returns {Promise<ToolEntry[]>} - A promise that resolves to an array of MCP tools.
27
+ */
28
+ export declare function getNormalActorsAsTools(actorsInfo: ActorInfo[], options?: {
29
+ mcpSessionId?: string;
30
+ actorStore?: ActorStore;
31
+ }): Promise<ToolEntry[]>;
32
+ export declare function getMCPServersAsTools(actorsInfo: ActorInfo[], apifyToken: ApifyToken, mcpSessionId?: string): Promise<ToolEntry[]>;
33
+ export declare function getActorsAsTools(actorIdsOrNames: string[], apifyClient: ApifyClient, options?: {
34
+ mcpSessionId?: string;
35
+ actorStore?: ActorStore;
36
+ }): Promise<ToolEntry[]>;
37
+ //# sourceMappingURL=actor_tools_factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor_tools_factory.d.ts","sourceRoot":"","sources":["../../../src/tools/core/actor_tools_factory.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAWzD,OAAO,KAAK,EACR,SAAS,EACT,UAAU,EAEV,UAAU,EACV,SAAS,EAEZ,MAAM,gBAAgB,CAAC;AAOxB;;;GAGG;AACH,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB5G;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CACxC,UAAU,EAAE,SAAS,EAAE,EACvB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,GAC7D,OAAO,CAAC,SAAS,EAAE,CAAC,CAqEtB;AAED,wBAAsB,oBAAoB,CACtC,UAAU,EAAE,SAAS,EAAE,EACvB,UAAU,EAAE,UAAU,EACtB,YAAY,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,SAAS,EAAE,CAAC,CAuDtB;AAED,wBAAsB,gBAAgB,CAClC,eAAe,EAAE,MAAM,EAAE,EACzB,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,UAAU,CAAA;CAAE,GAC7D,OAAO,CAAC,SAAS,EAAE,CAAC,CAwDtB"}
@@ -0,0 +1,218 @@
1
+ import log from '@apify/log';
2
+ import { ACTOR_MAX_MEMORY_MBYTES, HelperTools, RAG_WEB_BROWSER, RAG_WEB_BROWSER_ADDITIONAL_DESC, } from '../../const.js';
3
+ import { getActorMCPServerPath, getActorMCPServerURL } from '../../mcp/actors.js';
4
+ import { connectMCPClient } from '../../mcp/client.js';
5
+ import { getMCPServerTools } from '../../mcp/proxy.js';
6
+ import { actorDefinitionPrunedCache } from '../../state.js';
7
+ import { ajv } from '../../utils/ajv.js';
8
+ import { logHttpError } from '../../utils/logging.js';
9
+ import { getActorDefinition } from '../build.js';
10
+ import { buildEnrichedCallActorOutputSchema, callActorOutputSchema } from '../structured_output_schemas.js';
11
+ import { actorNameToToolName, buildActorInputSchema, fixedAjvCompile, isActorInfoMcpServer } from '../utils.js';
12
+ /**
13
+ * Enriches actor tool output schemas with field-level detail from the ActorStore.
14
+ * Uses Promise.allSettled to ensure individual failures don't block other tools.
15
+ */
16
+ export async function enrichActorToolOutputSchemas(tools, actorStore) {
17
+ const enrichPromises = tools
18
+ .filter((tool) => tool.type === 'actor')
19
+ .map(async (tool) => {
20
+ try {
21
+ const itemProperties = await actorStore.getActorOutputSchema(tool.actorFullName);
22
+ if (itemProperties && Object.keys(itemProperties).length > 0) {
23
+ // eslint-disable-next-line no-param-reassign
24
+ tool.outputSchema = buildEnrichedCallActorOutputSchema(itemProperties);
25
+ }
26
+ }
27
+ catch (error) {
28
+ log.debug('Failed to enrich output schema for Actor', {
29
+ actorName: tool.actorFullName,
30
+ error: error instanceof Error ? error.message : String(error),
31
+ });
32
+ }
33
+ });
34
+ await Promise.allSettled(enrichPromises);
35
+ }
36
+ /**
37
+ * This function is used to fetch normal non-MCP server Actors as a tool.
38
+ *
39
+ * Fetches Actor input schemas by Actor IDs or Actor full names and creates MCP tools.
40
+ *
41
+ * This function retrieves the input schemas for the specified Actors and compiles them into MCP tools.
42
+ * It uses the AJV library to validate the input schemas.
43
+ *
44
+ * Tool name can't contain /, so it is replaced with _
45
+ *
46
+ * The input schema processing workflow:
47
+ * 1. Properties are marked as required using markInputPropertiesAsRequired() to add "REQUIRED" prefix to descriptions
48
+ * 2. Nested properties are built by analyzing editor type (proxy, requestListSources) using buildNestedProperties()
49
+ * 3. Properties are filtered using filterSchemaProperties()
50
+ * 4. Properties are shortened using shortenProperties()
51
+ * 5. Enums are added to descriptions with examples using addEnumsToDescriptionsWithExamples()
52
+ *
53
+ * @param {ActorInfo[]} actorsInfo - An array of ActorInfo objects with webServerMcpPath, definition, and Actor.
54
+ * @returns {Promise<ToolEntry[]>} - A promise that resolves to an array of MCP tools.
55
+ */
56
+ export async function getNormalActorsAsTools(actorsInfo, options) {
57
+ var _a;
58
+ const { mcpSessionId, actorStore } = options !== null && options !== void 0 ? options : {};
59
+ const tools = [];
60
+ for (const actorInfo of actorsInfo) {
61
+ const { definition } = actorInfo;
62
+ if (!definition)
63
+ continue;
64
+ const isRag = definition.actorFullName === RAG_WEB_BROWSER;
65
+ const { inputSchema } = buildActorInputSchema(definition.actorFullName, definition.input, isRag);
66
+ let description = `This tool calls the Actor "${definition.actorFullName}" and retrieves its output results.
67
+ Use this tool instead of the "${HelperTools.ACTOR_CALL}" if user requests this specific Actor.
68
+ Actor description: ${definition.description}`;
69
+ if (isRag) {
70
+ description += RAG_WEB_BROWSER_ADDITIONAL_DESC;
71
+ }
72
+ const memoryMbytes = Math.min(((_a = definition.defaultRunOptions) === null || _a === void 0 ? void 0 : _a.memoryMbytes) || ACTOR_MAX_MEMORY_MBYTES, ACTOR_MAX_MEMORY_MBYTES);
73
+ let ajvValidate;
74
+ try {
75
+ ajvValidate = fixedAjvCompile(ajv, { ...inputSchema, additionalProperties: true });
76
+ }
77
+ catch (e) {
78
+ log.error('Failed to compile schema', {
79
+ actorName: definition.actorFullName,
80
+ mcpSessionId,
81
+ error: e,
82
+ });
83
+ continue;
84
+ }
85
+ tools.push({
86
+ type: 'actor',
87
+ name: actorNameToToolName(definition.actorFullName),
88
+ actorFullName: definition.actorFullName,
89
+ description,
90
+ inputSchema: inputSchema,
91
+ // reuse the common output schema
92
+ outputSchema: callActorOutputSchema,
93
+ ajvValidate,
94
+ requiresSkyfirePayId: true,
95
+ memoryMbytes,
96
+ icons: definition.pictureUrl
97
+ ? [{ src: definition.pictureUrl, mimeType: 'image/png' }]
98
+ : undefined,
99
+ annotations: {
100
+ title: definition.actorFullName,
101
+ readOnlyHint: false,
102
+ destructiveHint: true,
103
+ openWorldHint: true,
104
+ },
105
+ // Allow long-running tasks for Actor tools, make it optional for now
106
+ execution: {
107
+ taskSupport: 'optional',
108
+ },
109
+ });
110
+ }
111
+ // Enrich output schemas with field-level detail if actorStore is available
112
+ if (actorStore) {
113
+ await enrichActorToolOutputSchemas(tools, actorStore);
114
+ }
115
+ return tools;
116
+ }
117
+ export async function getMCPServersAsTools(actorsInfo, apifyToken, mcpSessionId) {
118
+ /**
119
+ * This is case for the Skyfire request without any Apify token, we do not support
120
+ * standby Actors in this case, so we can skip MCP servers since they would fail anyway (they are standby Actors).
121
+ */
122
+ if (apifyToken === null || apifyToken === undefined) {
123
+ return [];
124
+ }
125
+ // Process all actors in parallel
126
+ const actorToolPromises = actorsInfo.map(async (actorInfo) => {
127
+ const actorId = actorInfo.definition.id;
128
+ if (!actorInfo.webServerMcpPath) {
129
+ log.warning('Actor does not have a web server MCP path, skipping', {
130
+ actorFullName: actorInfo.definition.actorFullName,
131
+ actorId,
132
+ mcpSessionId,
133
+ });
134
+ return [];
135
+ }
136
+ const mcpServerUrl = await getActorMCPServerURL(actorInfo.definition.id, // Real ID of the Actor
137
+ actorInfo.webServerMcpPath);
138
+ log.debug('Retrieved MCP server URL for Actor', {
139
+ actorFullName: actorInfo.definition.actorFullName,
140
+ actorId,
141
+ mcpServerUrl,
142
+ mcpSessionId,
143
+ });
144
+ let client = null;
145
+ try {
146
+ client = await connectMCPClient(mcpServerUrl, apifyToken, mcpSessionId);
147
+ if (!client) {
148
+ // Skip this Actor, connectMCPClient will log the error
149
+ return [];
150
+ }
151
+ return await getMCPServerTools(actorId, client, mcpServerUrl);
152
+ }
153
+ catch (error) {
154
+ logHttpError(error, 'Failed to load tools from MCP server', {
155
+ actorFullName: actorInfo.definition.actorFullName,
156
+ actorId,
157
+ mcpSessionId,
158
+ });
159
+ return [];
160
+ }
161
+ finally {
162
+ if (client)
163
+ await client.close();
164
+ }
165
+ });
166
+ // Wait for all actors to be processed in parallel
167
+ const actorToolsArrays = await Promise.all(actorToolPromises);
168
+ return actorToolsArrays.flat();
169
+ }
170
+ export async function getActorsAsTools(actorIdsOrNames, apifyClient, options) {
171
+ const { mcpSessionId, actorStore } = options !== null && options !== void 0 ? options : {};
172
+ log.debug('Fetching Actors as tools', { actorNames: actorIdsOrNames, mcpSessionId });
173
+ const actorsInfo = await Promise.all(actorIdsOrNames.map(async (actorIdOrName) => {
174
+ const actorDefinitionWithInfoCached = actorDefinitionPrunedCache.get(actorIdOrName);
175
+ if (actorDefinitionWithInfoCached) {
176
+ return {
177
+ definition: actorDefinitionWithInfoCached.definition,
178
+ actor: actorDefinitionWithInfoCached.info,
179
+ webServerMcpPath: getActorMCPServerPath(actorDefinitionWithInfoCached.definition),
180
+ };
181
+ }
182
+ try {
183
+ const actorDefinitionWithInfo = await getActorDefinition(actorIdOrName, apifyClient);
184
+ if (!actorDefinitionWithInfo) {
185
+ log.softFail('Actor not found or definition is not available', { actorName: actorIdOrName, mcpSessionId, statusCode: 404 });
186
+ return null;
187
+ }
188
+ // Cache the Actor definition with info
189
+ actorDefinitionPrunedCache.set(actorIdOrName, actorDefinitionWithInfo);
190
+ return {
191
+ definition: actorDefinitionWithInfo.definition,
192
+ actor: actorDefinitionWithInfo.info,
193
+ webServerMcpPath: getActorMCPServerPath(actorDefinitionWithInfo.definition),
194
+ };
195
+ }
196
+ catch (error) {
197
+ logHttpError(error, 'Failed to fetch Actor definition', {
198
+ actorName: actorIdOrName,
199
+ mcpSessionId,
200
+ });
201
+ return null;
202
+ }
203
+ }));
204
+ const clonedActors = structuredClone(actorsInfo);
205
+ // Filter out nulls - actorInfo can be null if the Actor was not found or an error occurred
206
+ const nonNullActors = clonedActors.filter((actorInfo) => Boolean(actorInfo));
207
+ // Separate Actors with MCP servers and normal Actors
208
+ // for MCP servers if mcp path is configured and also if the Actor standby mode is enabled
209
+ const actorMCPServersInfo = nonNullActors.filter((actorInfo) => isActorInfoMcpServer(actorInfo));
210
+ // all others
211
+ const normalActorsInfo = nonNullActors.filter((actorInfo) => !isActorInfoMcpServer(actorInfo));
212
+ const [normalTools, mcpServerTools] = await Promise.all([
213
+ getNormalActorsAsTools(normalActorsInfo, { mcpSessionId, actorStore }),
214
+ getMCPServersAsTools(actorMCPServersInfo, apifyClient.token, mcpSessionId),
215
+ ]);
216
+ return [...normalTools, ...mcpServerTools];
217
+ }
218
+ //# sourceMappingURL=actor_tools_factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor_tools_factory.js","sourceRoot":"","sources":["../../../src/tools/core/actor_tools_factory.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,YAAY,CAAC;AAG7B,OAAO,EACH,uBAAuB,EACvB,WAAW,EACX,eAAe,EACf,+BAA+B,GAClC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAS5D,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,kCAAkC,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC5G,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEhH;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,KAAkB,EAAE,UAAsB;IACzF,MAAM,cAAc,GAAG,KAAK;SACvB,MAAM,CAAC,CAAC,IAAI,EAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;SAC1D,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QAChB,IAAI,CAAC;YACD,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjF,IAAI,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3D,6CAA6C;gBAC7C,IAAI,CAAC,YAAY,GAAG,kCAAkC,CAAC,cAAc,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,GAAG,CAAC,KAAK,CAAC,0CAA0C,EAAE;gBAClD,SAAS,EAAE,IAAI,CAAC,aAAa;gBAC7B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAChE,CAAC,CAAC;QACP,CAAC;IACL,CAAC,CAAC,CAAC;IAEP,MAAM,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,UAAuB,EACvB,OAA4D;;IAE5D,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACnD,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;QAEjC,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,KAAK,GAAG,UAAU,CAAC,aAAa,KAAK,eAAe,CAAC;QAC3D,MAAM,EAAE,WAAW,EAAE,GAAG,qBAAqB,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEjG,IAAI,WAAW,GAAG,8BAA8B,UAAU,CAAC,aAAa;gCAChD,WAAW,CAAC,UAAU;qBACjC,UAAU,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,KAAK,EAAE,CAAC;YACR,WAAW,IAAI,+BAA+B,CAAC;QACnD,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CACzB,CAAA,MAAA,UAAU,CAAC,iBAAiB,0CAAE,YAAY,KAAI,uBAAuB,EACrE,uBAAuB,CAC1B,CAAC;QAEF,IAAI,WAAW,CAAC;QAChB,IAAI,CAAC;YACD,WAAW,GAAG,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,WAAW,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE;gBAClC,SAAS,EAAE,UAAU,CAAC,aAAa;gBACnC,YAAY;gBACZ,KAAK,EAAE,CAAC;aACX,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,mBAAmB,CAAC,UAAU,CAAC,aAAa,CAAC;YACnD,aAAa,EAAE,UAAU,CAAC,aAAa;YACvC,WAAW;YACX,WAAW,EAAE,WAA8B;YAC3C,iCAAiC;YACjC,YAAY,EAAE,qBAAqB;YACnC,WAAW;YACX,oBAAoB,EAAE,IAAI;YAC1B,YAAY;YACZ,KAAK,EAAE,UAAU,CAAC,UAAU;gBACxB,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;gBACzD,CAAC,CAAC,SAAS;YACf,WAAW,EAAE;gBACT,KAAK,EAAE,UAAU,CAAC,aAAa;gBAC/B,YAAY,EAAE,KAAK;gBACnB,eAAe,EAAE,IAAI;gBACrB,aAAa,EAAE,IAAI;aACtB;YACD,qEAAqE;YACrE,SAAS,EAAE;gBACP,WAAW,EAAE,UAAU;aAC1B;SACJ,CAAC,CAAC;IACP,CAAC;IAED,2EAA2E;IAC3E,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,4BAA4B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACtC,UAAuB,EACvB,UAAsB,EACtB,YAAqB;IAErB;;;MAGE;IACF,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAClD,OAAO,EAAE,CAAC;IACd,CAAC;IAED,iCAAiC;IACjC,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,CAAC;YAC9B,GAAG,CAAC,OAAO,CAAC,qDAAqD,EAAE;gBAC/D,aAAa,EAAE,SAAS,CAAC,UAAU,CAAC,aAAa;gBACjD,OAAO;gBACP,YAAY;aACf,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAC3C,SAAS,CAAC,UAAU,CAAC,EAAE,EAAE,uBAAuB;QAChD,SAAS,CAAC,gBAAgB,CAC7B,CAAC;QACF,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE;YAC5C,aAAa,EAAE,SAAS,CAAC,UAAU,CAAC,aAAa;YACjD,OAAO;YACP,YAAY;YACZ,YAAY;SACf,CAAC,CAAC;QAEH,IAAI,MAAM,GAAkB,IAAI,CAAC;QACjC,IAAI,CAAC;YACD,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;YACxE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,uDAAuD;gBACvD,OAAO,EAAE,CAAC;YACd,CAAC;YACD,OAAO,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,EAAE,sCAAsC,EAAE;gBACxD,aAAa,EAAE,SAAS,CAAC,UAAU,CAAC,aAAa;gBACjD,OAAO;gBACP,YAAY;aACf,CAAC,CAAC;YACH,OAAO,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACP,IAAI,MAAM;gBAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,kDAAkD;IAClD,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9D,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,eAAyB,EACzB,WAAwB,EACxB,OAA4D;IAE5D,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IACnD,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,CAAC;IAErF,MAAM,UAAU,GAAyB,MAAM,OAAO,CAAC,GAAG,CACtD,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;QACxC,MAAM,6BAA6B,GAAG,0BAA0B,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACpF,IAAI,6BAA6B,EAAE,CAAC;YAChC,OAAO;gBACH,UAAU,EAAE,6BAA6B,CAAC,UAAU;gBACpD,KAAK,EAAE,6BAA6B,CAAC,IAAI;gBACzC,gBAAgB,EAAE,qBAAqB,CAAC,6BAA6B,CAAC,UAAU,CAAC;aAEvE,CAAC;QACnB,CAAC;QAED,IAAI,CAAC;YACD,MAAM,uBAAuB,GAAG,MAAM,kBAAkB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YACrF,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAC3B,GAAG,CAAC,QAAQ,CAAC,gDAAgD,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC5H,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,uCAAuC;YACvC,0BAA0B,CAAC,GAAG,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;YACvE,OAAO;gBACH,UAAU,EAAE,uBAAuB,CAAC,UAAU;gBAC9C,KAAK,EAAE,uBAAuB,CAAC,IAAI;gBACnC,gBAAgB,EAAE,qBAAqB,CAAC,uBAAuB,CAAC,UAAU,CAAC;aACjE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,YAAY,CAAC,KAAK,EAAE,kCAAkC,EAAE;gBACpD,SAAS,EAAE,aAAa;gBACxB,YAAY;aACf,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC,CAAC,CACL,CAAC;IAEF,MAAM,YAAY,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEjD,2FAA2F;IAC3F,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,EAA0B,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAErG,qDAAqD;IACrD,0FAA0F;IAC1F,MAAM,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IACjG,aAAa;IACb,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/F,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpD,sBAAsB,CAAC,gBAAgB,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;QACtE,oBAAoB,CAAC,mBAAmB,EAAE,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC;KAC7E,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,95 @@
1
+ import { z } from 'zod';
2
+ import type { InternalToolArgs, ToolInputSchema } from '../../types.js';
3
+ import { getActorsAsTools } from './actor_tools_factory.js';
4
+ /** Shared MCP server instructions — identical in both modes. */
5
+ export declare const CALL_ACTOR_MCP_SERVER_SECTION = "For MCP server Actors:\n- Use fetch-actor-details with output={ mcpTools: true } to list available tools\n- Call using format: \"actorName:toolName\" (e.g., \"apify/actors-mcp-server:fetch-apify-docs\")";
6
+ /** Shared "two ways to run" + USAGE section — identical in both modes. */
7
+ export declare const CALL_ACTOR_USAGE_SECTION: string;
8
+ /** Shared examples section — identical in both modes. */
9
+ export declare const CALL_ACTOR_EXAMPLES_SECTION = "EXAMPLES:\n- user_input: Get instagram posts using apify/instagram-scraper";
10
+ /**
11
+ * Zod schema for call-actor arguments — shared between default and openai variants.
12
+ */
13
+ export declare const callActorArgs: z.ZodObject<{
14
+ actor: z.ZodString;
15
+ input: z.ZodObject<{}, z.core.$loose>;
16
+ async: z.ZodOptional<z.ZodBoolean>;
17
+ previewOutput: z.ZodOptional<z.ZodBoolean>;
18
+ callOptions: z.ZodOptional<z.ZodObject<{
19
+ memory: z.ZodOptional<z.ZodNumber>;
20
+ timeout: z.ZodOptional<z.ZodNumber>;
21
+ }, z.core.$strip>>;
22
+ }, z.core.$strip>;
23
+ /**
24
+ * Compiled AJV input schema — shared between both variants.
25
+ */
26
+ export declare const callActorInputSchema: ToolInputSchema;
27
+ /**
28
+ * Compiled AJV validator with additional properties allowed (for Skyfire pay-id).
29
+ */
30
+ export declare const callActorAjvValidate: import("ajv").ValidateFunction<unknown>;
31
+ /**
32
+ * Parsed call-actor arguments.
33
+ */
34
+ export type CallActorParsedArgs = z.infer<typeof callActorArgs>;
35
+ /**
36
+ * Result of resolving actor and MCP URL before execution.
37
+ * Contains everything needed for the mode-specific execution path.
38
+ */
39
+ export type CallActorResolvedContext = {
40
+ baseActorName: string;
41
+ mcpToolName: string | undefined;
42
+ isActorMcpServer: boolean;
43
+ mcpServerUrl: string | false;
44
+ };
45
+ /**
46
+ * Resolves MCP URL and parses the "actor:tool" format.
47
+ * Shared pre-processing step used by both default and openai variants.
48
+ */
49
+ export declare function resolveActorContext(actorName: string): {
50
+ baseActorName: string;
51
+ mcpToolName: string | undefined;
52
+ };
53
+ /**
54
+ * Handles the MCP tool call flow (when actorName contains ":toolName").
55
+ * Returns a response if handled, or null if this is not an MCP tool call.
56
+ */
57
+ export declare function handleMcpToolCall(params: {
58
+ baseActorName: string;
59
+ mcpToolName: string;
60
+ input: Record<string, unknown>;
61
+ isActorMcpServer: boolean;
62
+ mcpServerUrl: string | false;
63
+ apifyToken: string;
64
+ mcpSessionId?: string;
65
+ }): Promise<object | null>;
66
+ /**
67
+ * Validates the actor and its input, returning the resolved actor tool or an error response.
68
+ * Shared validation logic used by both default and openai execution paths.
69
+ */
70
+ export declare function resolveAndValidateActor(params: {
71
+ actorName: string;
72
+ input: Record<string, unknown>;
73
+ toolArgs: InternalToolArgs;
74
+ }): Promise<{
75
+ error: object;
76
+ } | {
77
+ actor: Awaited<ReturnType<typeof getActorsAsTools>>[0];
78
+ }>;
79
+ /**
80
+ * Performs the pre-execution checks common to both modes:
81
+ * - Parses args
82
+ * - Resolves actor/MCP context
83
+ * - Handles Skyfire restrictions
84
+ * - Handles MCP tool calls
85
+ *
86
+ * Returns either an early response (error or MCP tool result) or the parsed context for mode-specific execution.
87
+ */
88
+ export declare function callActorPreExecute(toolArgs: InternalToolArgs): Promise<{
89
+ earlyResponse: object;
90
+ } | {
91
+ parsed: CallActorParsedArgs;
92
+ baseActorName: string;
93
+ mcpToolName: string | undefined;
94
+ }>;
95
+ //# sourceMappingURL=call_actor_common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call_actor_common.d.ts","sourceRoot":"","sources":["../../../src/tools/core/call_actor_common.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAMxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAQ5D,gEAAgE;AAChE,eAAO,MAAM,6BAA6B,+MAEmD,CAAC;AAE9F,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,QAMqD,CAAC;AAE3F,yDAAyD;AACzD,eAAO,MAAM,2BAA2B,+EACwB,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;iBAyBxB,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAoC,eAAe,CAAC;AAErF;;GAEG;AACH,eAAO,MAAM,oBAAoB,yCAG/B,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CASA;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,KAAK,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA6CzB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;CAC9B,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC,CAwC1F;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CACxE;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GACzB;IACE,MAAM,EAAE,mBAAmB,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CACJ,CAmDA"}
@@ -0,0 +1,227 @@
1
+ import { z } from 'zod';
2
+ import { ApifyClient, createApifyClientWithSkyfireSupport } from '../../apify_client.js';
3
+ import { CALL_ACTOR_MCP_MISSING_TOOL_NAME_MSG, HelperTools, TOOL_STATUS, } from '../../const.js';
4
+ import { connectMCPClient } from '../../mcp/client.js';
5
+ import { getActorMcpUrlCached } from '../../utils/actor.js';
6
+ import { compileSchema } from '../../utils/ajv.js';
7
+ import { logHttpError } from '../../utils/logging.js';
8
+ import { buildMCPResponse } from '../../utils/mcp.js';
9
+ import { actorNameToToolName } from '../utils.js';
10
+ import { getActorsAsTools } from './actor_tools_factory.js';
11
+ // ---------------------------------------------------------------------------
12
+ // Shared call-actor description building blocks
13
+ // ---------------------------------------------------------------------------
14
+ const RAG_WEB_BROWSER_TOOL = actorNameToToolName('apify/rag-web-browser');
15
+ /** Shared MCP server instructions — identical in both modes. */
16
+ export const CALL_ACTOR_MCP_SERVER_SECTION = `For MCP server Actors:
17
+ - Use fetch-actor-details with output={ mcpTools: true } to list available tools
18
+ - Call using format: "actorName:toolName" (e.g., "apify/actors-mcp-server:fetch-apify-docs")`;
19
+ /** Shared "two ways to run" + USAGE section — identical in both modes. */
20
+ export const CALL_ACTOR_USAGE_SECTION = `There are two ways to run Actors:
21
+ 1. Dedicated Actor tools (e.g., ${RAG_WEB_BROWSER_TOOL}): These are pre-configured tools, offering a simpler and more direct experience.
22
+ 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.
23
+
24
+ USAGE:
25
+ - Always use dedicated tools when available (e.g., ${RAG_WEB_BROWSER_TOOL})
26
+ - Use the generic call-actor tool only if a dedicated tool does not exist for your Actor.`;
27
+ /** Shared examples section — identical in both modes. */
28
+ export const CALL_ACTOR_EXAMPLES_SECTION = `EXAMPLES:
29
+ - user_input: Get instagram posts using apify/instagram-scraper`;
30
+ /**
31
+ * Zod schema for call-actor arguments — shared between default and openai variants.
32
+ */
33
+ export const callActorArgs = z.object({
34
+ actor: z.string()
35
+ .describe(`The name of the Actor to call. Format: "username/name" (e.g., "apify/rag-web-browser").
36
+
37
+ For MCP server Actors, use format "actorName:toolName" to call a specific tool (e.g., "apify/actors-mcp-server:fetch-apify-docs").`),
38
+ input: z.object({}).passthrough()
39
+ .describe('The input JSON to pass to the Actor. Required.'),
40
+ async: z.boolean()
41
+ .optional()
42
+ .describe(`When true, starts the run and returns immediately with runId. When false or omitted, behavior depends on the active server mode/tool variant. IMPORTANT: use async=true only when the user explicitly asks to run in the background or does not need immediate results.`),
43
+ previewOutput: z.boolean()
44
+ .optional()
45
+ .describe('When true (default): includes preview items. When false: metadata only (reduces context). Use when fetching fields via get-actor-output.'),
46
+ callOptions: z.object({
47
+ memory: z.number()
48
+ .min(128, 'Memory must be at least 128 MB')
49
+ .max(32768, 'Memory cannot exceed 32 GB (32768 MB)')
50
+ .optional()
51
+ .describe(`Memory allocation for the Actor in MB. Must be a power of 2 (e.g., 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768). Minimum: 128 MB, Maximum: 32768 MB (32 GB).`),
52
+ timeout: z.number()
53
+ .min(0, 'Timeout must be 0 or greater')
54
+ .optional()
55
+ .describe(`Maximum runtime for the Actor in seconds. After this time elapses, the Actor will be automatically terminated. Use 0 for infinite timeout (no time limit). Minimum: 0 seconds (infinite).`),
56
+ }).optional()
57
+ .describe('Optional call options for the Actor run configuration.'),
58
+ });
59
+ /**
60
+ * Compiled AJV input schema — shared between both variants.
61
+ */
62
+ export const callActorInputSchema = z.toJSONSchema(callActorArgs);
63
+ /**
64
+ * Compiled AJV validator with additional properties allowed (for Skyfire pay-id).
65
+ */
66
+ export const callActorAjvValidate = compileSchema({
67
+ ...z.toJSONSchema(callActorArgs),
68
+ additionalProperties: true,
69
+ });
70
+ /**
71
+ * Resolves MCP URL and parses the "actor:tool" format.
72
+ * Shared pre-processing step used by both default and openai variants.
73
+ */
74
+ export function resolveActorContext(actorName) {
75
+ const mcpToolMatch = actorName.match(/^(.+):(.+)$/);
76
+ if (mcpToolMatch) {
77
+ return {
78
+ baseActorName: mcpToolMatch[1],
79
+ mcpToolName: mcpToolMatch[2],
80
+ };
81
+ }
82
+ return { baseActorName: actorName, mcpToolName: undefined };
83
+ }
84
+ /**
85
+ * Handles the MCP tool call flow (when actorName contains ":toolName").
86
+ * Returns a response if handled, or null if this is not an MCP tool call.
87
+ */
88
+ export async function handleMcpToolCall(params) {
89
+ const { baseActorName, mcpToolName, input, isActorMcpServer, mcpServerUrl, apifyToken, mcpSessionId } = params;
90
+ if (!isActorMcpServer) {
91
+ return buildMCPResponse({
92
+ texts: [`Actor '${baseActorName}' is not an MCP server.`],
93
+ isError: true,
94
+ });
95
+ }
96
+ if (!input) {
97
+ return buildMCPResponse({
98
+ texts: [`Input is required for MCP tool '${mcpToolName}'. Please provide the input parameter based on the tool's input schema.`],
99
+ isError: true,
100
+ });
101
+ }
102
+ let client = null;
103
+ try {
104
+ client = await connectMCPClient(mcpServerUrl, apifyToken, mcpSessionId);
105
+ if (!client) {
106
+ return buildMCPResponse({
107
+ texts: [`Failed to connect to MCP server ${mcpServerUrl}`],
108
+ isError: true,
109
+ });
110
+ }
111
+ const result = await client.callTool({
112
+ name: mcpToolName,
113
+ arguments: input,
114
+ });
115
+ return { content: result.content };
116
+ }
117
+ catch (error) {
118
+ logHttpError(error, `Failed to call MCP tool '${mcpToolName}' on Actor '${baseActorName}'`, {
119
+ actorName: baseActorName,
120
+ toolName: mcpToolName,
121
+ });
122
+ return buildMCPResponse({
123
+ texts: [`Failed to call MCP tool '${mcpToolName}' on Actor '${baseActorName}': ${error instanceof Error ? error.message : String(error)}. The MCP server may be temporarily unavailable.`],
124
+ isError: true,
125
+ });
126
+ }
127
+ finally {
128
+ if (client)
129
+ await client.close();
130
+ }
131
+ }
132
+ /**
133
+ * Validates the actor and its input, returning the resolved actor tool or an error response.
134
+ * Shared validation logic used by both default and openai execution paths.
135
+ */
136
+ export async function resolveAndValidateActor(params) {
137
+ const { actorName, input, toolArgs } = params;
138
+ const apifyClient = createApifyClientWithSkyfireSupport(toolArgs.apifyMcpServer, toolArgs.args, toolArgs.apifyToken);
139
+ const [actor] = await getActorsAsTools([actorName], apifyClient, { mcpSessionId: toolArgs.mcpSessionId });
140
+ if (!actor) {
141
+ return {
142
+ error: buildMCPResponse({
143
+ texts: [`Actor '${actorName}' was not found.
144
+ Please verify Actor ID or name format (e.g., "username/name" like "apify/rag-web-browser") and ensure that the Actor exists.
145
+ You can search for available Actors using the tool: ${HelperTools.STORE_SEARCH}.`],
146
+ isError: true,
147
+ toolStatus: TOOL_STATUS.SOFT_FAIL,
148
+ }),
149
+ };
150
+ }
151
+ if (!input) {
152
+ const content = [
153
+ `Input is required for Actor '${actorName}'. Please provide the input parameter based on the Actor's input schema.`,
154
+ `The input schema for this Actor was retrieved and is shown below:`,
155
+ `\`\`\`json\n${JSON.stringify(actor.inputSchema)}\n\`\`\``,
156
+ ];
157
+ return { error: buildMCPResponse({ texts: content, isError: true }) };
158
+ }
159
+ if (!actor.ajvValidate(input)) {
160
+ const { errors } = actor.ajvValidate;
161
+ const content = [
162
+ `Input validation failed for Actor '${actorName}'. Please ensure your input matches the Actor's input schema.`,
163
+ `Input schema:\n\`\`\`json\n${JSON.stringify(actor.inputSchema)}\n\`\`\``,
164
+ ];
165
+ if (errors && errors.length > 0) {
166
+ content.push(`Validation errors: ${errors.map((e) => e.message).join(', ')}`);
167
+ }
168
+ return { error: buildMCPResponse({ texts: content, isError: true }) };
169
+ }
170
+ return { actor };
171
+ }
172
+ /**
173
+ * Performs the pre-execution checks common to both modes:
174
+ * - Parses args
175
+ * - Resolves actor/MCP context
176
+ * - Handles Skyfire restrictions
177
+ * - Handles MCP tool calls
178
+ *
179
+ * Returns either an early response (error or MCP tool result) or the parsed context for mode-specific execution.
180
+ */
181
+ export async function callActorPreExecute(toolArgs) {
182
+ const { args, apifyToken, apifyMcpServer, mcpSessionId } = toolArgs;
183
+ const parsed = callActorArgs.parse(args);
184
+ const { baseActorName, mcpToolName } = resolveActorContext(parsed.actor);
185
+ // For definition resolution we always use token-based client; Skyfire is only for actual Actor runs
186
+ const apifyClientForDefinition = new ApifyClient({ token: apifyToken });
187
+ const mcpServerUrlOrFalse = await getActorMcpUrlCached(baseActorName, apifyClientForDefinition);
188
+ const isActorMcpServer = mcpServerUrlOrFalse && typeof mcpServerUrlOrFalse === 'string';
189
+ // Standby Actors (MCPs) are not supported in Skyfire mode
190
+ if (isActorMcpServer && apifyMcpServer.options.skyfireMode) {
191
+ return {
192
+ earlyResponse: buildMCPResponse({
193
+ texts: [`This Actor (${parsed.actor}) is an MCP server and cannot be accessed using a Skyfire token. To use this Actor, please provide a valid Apify token instead of a Skyfire token.`],
194
+ isError: true,
195
+ toolStatus: TOOL_STATUS.SOFT_FAIL,
196
+ }),
197
+ };
198
+ }
199
+ // Handle the case where LLM does not respect instructions when calling MCP server Actors
200
+ // and does not provide the tool name.
201
+ const isMcpToolNameInvalid = mcpToolName === undefined || mcpToolName.trim().length === 0;
202
+ if (isActorMcpServer && isMcpToolNameInvalid) {
203
+ return {
204
+ earlyResponse: buildMCPResponse({
205
+ texts: [CALL_ACTOR_MCP_MISSING_TOOL_NAME_MSG],
206
+ isError: true,
207
+ }),
208
+ };
209
+ }
210
+ // Handle MCP tool calls
211
+ if (mcpToolName) {
212
+ const mcpResult = await handleMcpToolCall({
213
+ baseActorName,
214
+ mcpToolName,
215
+ input: parsed.input,
216
+ isActorMcpServer: !!isActorMcpServer,
217
+ mcpServerUrl: mcpServerUrlOrFalse,
218
+ apifyToken,
219
+ mcpSessionId,
220
+ });
221
+ if (mcpResult) {
222
+ return { earlyResponse: mcpResult };
223
+ }
224
+ }
225
+ return { parsed, baseActorName, mcpToolName };
226
+ }
227
+ //# sourceMappingURL=call_actor_common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call_actor_common.js","sourceRoot":"","sources":["../../../src/tools/core/call_actor_common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { z } from 'zod';
2
+ import type { HelperTool } from '../../types.js';
3
+ /**
4
+ * Zod schema for fetch-actor-details arguments — shared between default and openai variants.
5
+ */
6
+ export declare const fetchActorDetailsToolArgsSchema: z.ZodObject<{
7
+ actor: z.ZodString;
8
+ output: z.ZodOptional<z.ZodObject<{
9
+ description: z.ZodOptional<z.ZodBoolean>;
10
+ stats: z.ZodOptional<z.ZodBoolean>;
11
+ pricing: z.ZodOptional<z.ZodBoolean>;
12
+ rating: z.ZodOptional<z.ZodBoolean>;
13
+ metadata: z.ZodOptional<z.ZodBoolean>;
14
+ inputSchema: z.ZodOptional<z.ZodBoolean>;
15
+ readme: z.ZodOptional<z.ZodBoolean>;
16
+ outputSchema: z.ZodOptional<z.ZodBoolean>;
17
+ mcpTools: z.ZodOptional<z.ZodBoolean>;
18
+ }, z.core.$strip>>;
19
+ }, z.core.$strip>;
20
+ /**
21
+ * Shared tool metadata for fetch-actor-details — everything except the `call` handler.
22
+ * Used by both default and openai variants.
23
+ */
24
+ export declare const fetchActorDetailsMetadata: Omit<HelperTool, 'call'>;
25
+ //# sourceMappingURL=fetch_actor_details_common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch_actor_details_common.d.ts","sourceRoot":"","sources":["../../../src/tools/core/fetch_actor_details_common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,UAAU,EAAmB,MAAM,gBAAgB,CAAC;AAOlE;;GAEG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;iBAM1C,CAAC;AAiBH;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAiB9D,CAAC"}