@oomol-lab/open-connector 1.9.2 → 1.9.3

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 (486) hide show
  1. package/README.md +4 -2
  2. package/assets/open-connector/catalog/apps/allratestoday.json +174 -0
  3. package/assets/open-connector/catalog/apps/slackbot.json +20 -1
  4. package/assets/open-connector/catalog/apps-index.json +1 -1
  5. package/package.json +1 -1
  6. package/src/connection-error.d.ts +7 -0
  7. package/src/connection-error.js +10 -0
  8. package/src/connection-service.d.ts +2 -50
  9. package/src/connection-service.js +6 -130
  10. package/src/connection-store.d.ts +41 -0
  11. package/src/connection-store.js +1 -0
  12. package/src/core/guarded-fetch.d.ts +3 -0
  13. package/src/core/guarded-fetch.js +8 -1
  14. package/src/core/provider-network-policy.d.ts +15 -0
  15. package/src/core/provider-network-policy.js +11 -0
  16. package/src/core/request.d.ts +18 -14
  17. package/src/core/request.js +11 -35
  18. package/src/credential-resolver.d.ts +24 -0
  19. package/src/credential-resolver.js +131 -0
  20. package/src/mcp.js +1 -1
  21. package/src/oauth/oauth-client-config-service.d.ts +1 -1
  22. package/src/oauth/oauth-client-config-service.js +14 -2
  23. package/src/oauth/oauth-credential-refresh-service.js +1 -1
  24. package/src/oauth/oauth-flow-service.d.ts +9 -1
  25. package/src/oauth/oauth-flow-service.js +11 -1
  26. package/src/providers/abuseipdb/executors.js +3 -4
  27. package/src/providers/action-contracts.generated.d.ts +1 -0
  28. package/src/providers/addressfinder/executors.js +2 -3
  29. package/src/providers/aeroleads/executors.js +3 -3
  30. package/src/providers/affinity/runtime.js +6 -7
  31. package/src/providers/aftership/executors.js +2 -2
  32. package/src/providers/agent_mail/runtime.js +2 -2
  33. package/src/providers/agentql/runtime.js +2 -2
  34. package/src/providers/agenty/runtime.js +5 -6
  35. package/src/providers/agiled/runtime.d.ts +0 -1
  36. package/src/providers/agiled/runtime.js +2 -3
  37. package/src/providers/agility/runtime.js +2 -3
  38. package/src/providers/ahrefs/runtime.js +3 -3
  39. package/src/providers/aifinmarket/runtime.js +6 -7
  40. package/src/providers/airtable/executors.js +3 -3
  41. package/src/providers/alchemy/runtime.js +2 -2
  42. package/src/providers/algolia/runtime.js +3 -3
  43. package/src/providers/aliyun_oss/executors.js +7 -7
  44. package/src/providers/allratestoday/executors.d.ts +3 -0
  45. package/src/providers/allratestoday/executors.js +18 -0
  46. package/src/providers/allratestoday/runtime.d.ts +17 -0
  47. package/src/providers/allratestoday/runtime.js +104 -0
  48. package/src/providers/alpaca/runtime.js +2 -3
  49. package/src/providers/alpha_vantage/runtime.js +2 -2
  50. package/src/providers/alt_text_ai/runtime.js +2 -2
  51. package/src/providers/altiria/executors.js +3 -3
  52. package/src/providers/amap/runtime.js +3 -3
  53. package/src/providers/ambee/runtime.js +2 -2
  54. package/src/providers/ambivo/executors.js +3 -3
  55. package/src/providers/amilia/runtime.js +1 -1
  56. package/src/providers/amplemarket/runtime.js +2 -2
  57. package/src/providers/amplitude/runtime.js +3 -3
  58. package/src/providers/anysearch/runtime.js +4 -4
  59. package/src/providers/apaleo/runtime.js +2 -2
  60. package/src/providers/api_sports/executors.js +3 -4
  61. package/src/providers/apiverve/executors.js +2 -3
  62. package/src/providers/apollo/executors.js +2 -3
  63. package/src/providers/appcircle/runtime.js +5 -5
  64. package/src/providers/appdrag/executors.js +2 -3
  65. package/src/providers/arcgis_online/executors.js +2 -2
  66. package/src/providers/auth0_management/runtime.js +2 -3
  67. package/src/providers/autoblogger/executors.js +3 -3
  68. package/src/providers/baidu_maps/runtime.js +3 -3
  69. package/src/providers/baidu_netdisk/runtime-mcp.js +3 -4
  70. package/src/providers/bark/executors.js +5 -5
  71. package/src/providers/bitrise/runtime.js +3 -3
  72. package/src/providers/bouncer/executors.js +3 -4
  73. package/src/providers/browse_ai/runtime.js +3 -4
  74. package/src/providers/browserstack/executors.js +6 -7
  75. package/src/providers/buildkite/runtime.js +3 -3
  76. package/src/providers/bunnycdn/runtime.js +3 -3
  77. package/src/providers/businessmap/runtime.js +6 -7
  78. package/src/providers/buttondown/runtime.js +2 -2
  79. package/src/providers/byteforms/runtime.js +2 -2
  80. package/src/providers/calendly/runtime.js +2 -2
  81. package/src/providers/captainbi/runtime.js +6 -6
  82. package/src/providers/castingwords/runtime.js +1 -1
  83. package/src/providers/chatpdf/runtime.js +4 -4
  84. package/src/providers/check/executors.js +3 -4
  85. package/src/providers/checkly/executors.js +3 -4
  86. package/src/providers/chengxin/runtime.js +3 -3
  87. package/src/providers/cincopa/executors.js +3 -4
  88. package/src/providers/circle/executors.js +3 -4
  89. package/src/providers/clearout/executors.js +1 -2
  90. package/src/providers/clickhelp/runtime.js +5 -5
  91. package/src/providers/clickhouse/runtime.js +4 -4
  92. package/src/providers/clinicalkey/runtime.js +3 -3
  93. package/src/providers/clinicaltrials_gov/runtime.js +4 -5
  94. package/src/providers/clockify/runtime.js +4 -4
  95. package/src/providers/close/runtime.js +3 -3
  96. package/src/providers/cloudconvert/runtime.js +8 -9
  97. package/src/providers/cloudflare_dns/runtime.js +2 -2
  98. package/src/providers/cloudflare_email_routing/runtime.js +2 -2
  99. package/src/providers/cloudflare_r2/runtime.js +5 -5
  100. package/src/providers/cloudflare_worker/runtime.js +10 -10
  101. package/src/providers/cloudinary/runtime.js +4 -4
  102. package/src/providers/cloudlayer/runtime.js +5 -5
  103. package/src/providers/codacy/runtime.js +2 -2
  104. package/src/providers/codemagic/runtime.js +2 -2
  105. package/src/providers/confluence/executors.js +4 -4
  106. package/src/providers/confluence/runtime.d.ts +0 -1
  107. package/src/providers/confluence/runtime.js +6 -7
  108. package/src/providers/contactout/runtime.js +5 -5
  109. package/src/providers/contentful/runtime.js +2 -2
  110. package/src/providers/contentstack_content_delivery/runtime.js +1 -1
  111. package/src/providers/cronly/runtime.js +2 -2
  112. package/src/providers/crossref/runtime.js +3 -3
  113. package/src/providers/cutt_ly/runtime.js +3 -3
  114. package/src/providers/cyberimpact/runtime.js +3 -3
  115. package/src/providers/dachser/executors.js +2 -2
  116. package/src/providers/dailybot/runtime.js +1 -1
  117. package/src/providers/databox/runtime.js +2 -2
  118. package/src/providers/databricks/runtime.js +2 -2
  119. package/src/providers/datacite/runtime.js +1 -1
  120. package/src/providers/datadog/executors.js +3 -4
  121. package/src/providers/datascope/runtime.js +2 -2
  122. package/src/providers/daytona/executors.js +3 -3
  123. package/src/providers/deepgram/runtime.js +2 -2
  124. package/src/providers/deepl/runtime.js +4 -4
  125. package/src/providers/detrack/executors.js +5 -5
  126. package/src/providers/deutschlandgpt/runtime.js +2 -2
  127. package/src/providers/dialmycalls/runtime.js +4 -4
  128. package/src/providers/diffbot/executors.js +4 -4
  129. package/src/providers/digistore24/executors.js +3 -3
  130. package/src/providers/dingtalk_bot/executors.js +1 -1
  131. package/src/providers/discourse/executors.d.ts +0 -1
  132. package/src/providers/discourse/executors.js +6 -7
  133. package/src/providers/docugenerate/runtime.js +3 -3
  134. package/src/providers/doppler/runtime.shared.js +3 -3
  135. package/src/providers/doppler_marketing_automation/runtime.js +4 -4
  136. package/src/providers/dovetail/runtime.js +2 -2
  137. package/src/providers/dropcontact/runtime.js +3 -3
  138. package/src/providers/dub/executors.js +6 -6
  139. package/src/providers/dumplingai/runtime.js +2 -2
  140. package/src/providers/elevenlabs/executors.js +4 -4
  141. package/src/providers/elevenreader/runtime.js +1 -1
  142. package/src/providers/emailoctopus/runtime.js +4 -4
  143. package/src/providers/embase/runtime.js +3 -3
  144. package/src/providers/emelia/executors.js +2 -2
  145. package/src/providers/enigma/executors.js +3 -3
  146. package/src/providers/eodhd_apis/executors.js +2 -2
  147. package/src/providers/eventzilla/runtime.js +3 -4
  148. package/src/providers/evervault/runtime.js +1 -1
  149. package/src/providers/excalidraw_mcp/runtime.js +3 -4
  150. package/src/providers/excel/runtime.js +6 -6
  151. package/src/providers/expofp/runtime.js +2 -2
  152. package/src/providers/faktoora/runtime.js +5 -5
  153. package/src/providers/fast_note_sync/runtime.js +2 -2
  154. package/src/providers/feathery/executors.js +2 -3
  155. package/src/providers/feishu_app_bot/executors.js +2 -3
  156. package/src/providers/feishu_custom_bot/executors.js +2 -3
  157. package/src/providers/ffhub/executors.js +2 -3
  158. package/src/providers/fidel_api/executors.js +2 -3
  159. package/src/providers/files_com/executors.js +2 -3
  160. package/src/providers/fireberry/runtime.d.ts +0 -1
  161. package/src/providers/fireberry/runtime.js +3 -4
  162. package/src/providers/firehydrant/executors.js +2 -3
  163. package/src/providers/float/executors.js +2 -3
  164. package/src/providers/flomo/executors.js +5 -6
  165. package/src/providers/flowiseai/executors.js +2 -3
  166. package/src/providers/fluxguard/executors.js +2 -3
  167. package/src/providers/folk/executors.js +2 -3
  168. package/src/providers/football_data/executors.js +2 -3
  169. package/src/providers/forem/executors.js +2 -3
  170. package/src/providers/formbricks/executors.js +2 -3
  171. package/src/providers/formsite/executors.js +3 -4
  172. package/src/providers/formspree/executors.js +2 -2
  173. package/src/providers/freshdesk/executors.js +3 -4
  174. package/src/providers/freshservice/executors.js +3 -4
  175. package/src/providers/freshteam/runtime.js +3 -4
  176. package/src/providers/full_contact/executors.js +3 -3
  177. package/src/providers/fusion-api/runtime.js +2 -3
  178. package/src/providers/gagelist/executors.js +3 -3
  179. package/src/providers/gainsight_nxt/executors.js +2 -2
  180. package/src/providers/gamma/executors.js +4 -3
  181. package/src/providers/gangtise/runtime.js +3 -4
  182. package/src/providers/gatherup/runtime.js +1 -1
  183. package/src/providers/geckoboard/executors.js +2 -3
  184. package/src/providers/gemini/runtime.d.ts +0 -1
  185. package/src/providers/gemini/runtime.js +5 -6
  186. package/src/providers/genpage/runtime.js +2 -2
  187. package/src/providers/geokeo/executors.js +4 -4
  188. package/src/providers/getnote/runtime.js +2 -3
  189. package/src/providers/github/runtime-shared.js +2 -2
  190. package/src/providers/glyphic/runtime.js +3 -4
  191. package/src/providers/gmail/executors.js +125 -27
  192. package/src/providers/gong/runtime.js +6 -7
  193. package/src/providers/googlecalendar/runtime-shared.js +3 -4
  194. package/src/providers/googledrive/runtime-request.js +2 -3
  195. package/src/providers/googlesheets/runtime-shared.js +3 -4
  196. package/src/providers/gorgias/runtime.js +4 -4
  197. package/src/providers/gotify/executors.js +7 -8
  198. package/src/providers/greenhouse/executors.js +3 -3
  199. package/src/providers/gumloop/executors.js +2 -3
  200. package/src/providers/gumroad/executors.js +2 -3
  201. package/src/providers/habitica/executors.js +2 -3
  202. package/src/providers/hackerrank_work/executors.js +2 -3
  203. package/src/providers/harvest/executors.js +3 -4
  204. package/src/providers/haveibeenpwned/executors.js +2 -3
  205. package/src/providers/headout/executors.js +3 -4
  206. package/src/providers/healthchecks_io/executors.js +2 -3
  207. package/src/providers/helium10/runtime.js +4 -5
  208. package/src/providers/helpdesk/runtime.js +4 -4
  209. package/src/providers/home_assistant/runtime-ws.js +9 -10
  210. package/src/providers/hotjar/executors.js +4 -4
  211. package/src/providers/httpsms/runtime.js +3 -4
  212. package/src/providers/hub_planner/executors.js +3 -3
  213. package/src/providers/hubspot/runtime.js +3 -4
  214. package/src/providers/humaans/runtime.js +3 -3
  215. package/src/providers/hunter/runtime.js +3 -3
  216. package/src/providers/icypeas/executors.js +3 -4
  217. package/src/providers/ima/runtime.js +7 -7
  218. package/src/providers/infolobby/runtime.js +6 -6
  219. package/src/providers/instabot/runtime.js +6 -6
  220. package/src/providers/instatus/runtime.js +4 -4
  221. package/src/providers/intuiface/executors.js +3 -3
  222. package/src/providers/iplocate/runtime.js +4 -5
  223. package/src/providers/ipregistry/executors.js +2 -2
  224. package/src/providers/jiminny/runtime.js +4 -4
  225. package/src/providers/jin10/executors.js +4 -5
  226. package/src/providers/jira/executors.js +4 -4
  227. package/src/providers/kaleido/runtime.js +2 -2
  228. package/src/providers/kandji/runtime.js +2 -2
  229. package/src/providers/keygen/executors.js +4 -4
  230. package/src/providers/keyword/runtime.js +2 -2
  231. package/src/providers/kie_ai/executors.js +1 -1
  232. package/src/providers/kintone/runtime.js +1 -1
  233. package/src/providers/kit/runtime.js +2 -2
  234. package/src/providers/klangio/runtime.js +4 -4
  235. package/src/providers/klaviyo/executors.js +1 -1
  236. package/src/providers/klazify/executors.js +3 -3
  237. package/src/providers/klipfolio/runtime.js +3 -3
  238. package/src/providers/knack/executors.js +1 -1
  239. package/src/providers/kommo/runtime.js +2 -2
  240. package/src/providers/kontent_ai/executors.js +3 -4
  241. package/src/providers/l2s/executors.js +3 -4
  242. package/src/providers/latchshot/executors.js +2 -2
  243. package/src/providers/leadboxer/runtime.js +4 -4
  244. package/src/providers/leadiq/runtime.js +4 -4
  245. package/src/providers/linguapop/runtime.js +1 -1
  246. package/src/providers/lingvanex_translation_api/runtime.js +5 -6
  247. package/src/providers/lingxing_mcp/runtime.js +3 -4
  248. package/src/providers/linkup/runtime.js +5 -6
  249. package/src/providers/liveagent/executors.js +6 -6
  250. package/src/providers/loops/executors.js +2 -2
  251. package/src/providers/loyjoy/runtime.js +2 -2
  252. package/src/providers/loyverse/executors.js +4 -4
  253. package/src/providers/lusha/runtime.js +3 -3
  254. package/src/providers/mailbluster/runtime.js +3 -4
  255. package/src/providers/mailcoach/runtime.js +4 -4
  256. package/src/providers/mailgenius/executors.js +3 -4
  257. package/src/providers/mailjet/runtime.js +3 -3
  258. package/src/providers/mails_so/runtime.js +1 -1
  259. package/src/providers/mailsoftly/runtime.js +5 -5
  260. package/src/providers/mailtrap/runtime.js +4 -5
  261. package/src/providers/manus/runtime.js +3 -3
  262. package/src/providers/mautic/runtime.js +3 -3
  263. package/src/providers/megaventory/runtime.js +3 -3
  264. package/src/providers/memberstack/runtime.js +2 -2
  265. package/src/providers/mendeley/executors.js +2 -3
  266. package/src/providers/mindbody/runtime.js +3 -3
  267. package/src/providers/minerstat/executors.js +3 -3
  268. package/src/providers/mintlify/runtime.js +3 -3
  269. package/src/providers/missive/executors.js +3 -5
  270. package/src/providers/mixpanel/executors.js +3 -3
  271. package/src/providers/mobile_text_alerts/runtime.js +3 -3
  272. package/src/providers/mocean/executors.js +3 -3
  273. package/src/providers/moco/executors.js +5 -5
  274. package/src/providers/moesif/runtime.js +4 -4
  275. package/src/providers/monday/runtime-common.js +3 -3
  276. package/src/providers/monica_crm/runtime.js +4 -4
  277. package/src/providers/moorcheh/runtime.js +3 -3
  278. package/src/providers/more_trees/runtime.d.ts +0 -1
  279. package/src/providers/more_trees/runtime.js +7 -8
  280. package/src/providers/moxie/runtime.js +2 -2
  281. package/src/providers/msg91/runtime.js +4 -4
  282. package/src/providers/mx/runtime.js +1 -1
  283. package/src/providers/needle/runtime.js +3 -4
  284. package/src/providers/netlify/runtime.js +2 -3
  285. package/src/providers/niftyimages/executors.js +2 -2
  286. package/src/providers/northbeam/runtime.js +1 -1
  287. package/src/providers/nozbe_teams/executors.js +4 -4
  288. package/src/providers/npm/runtime.js +4 -4
  289. package/src/providers/nusii_proposals/runtime.js +2 -2
  290. package/src/providers/ocr_web_service/executors.js +4 -4
  291. package/src/providers/octopus_deploy/executors.js +3 -3
  292. package/src/providers/oksign/runtime.js +3 -4
  293. package/src/providers/one_drive/executors.js +6 -6
  294. package/src/providers/one_password_events/runtime.js +1 -1
  295. package/src/providers/onfleet/runtime.js +3 -3
  296. package/src/providers/onlyoffice_docspace/runtime.js +4 -4
  297. package/src/providers/oomnitza/runtime.js +3 -4
  298. package/src/providers/otter_ai/executors.js +2 -2
  299. package/src/providers/oura/runtime.js +1 -1
  300. package/src/providers/paddle/executors.js +3 -3
  301. package/src/providers/pagerduty/runtime.js +2 -2
  302. package/src/providers/paradym/runtime.js +4 -4
  303. package/src/providers/parallel/runtime.js +3 -3
  304. package/src/providers/partner_stack_partner/runtime.js +1 -1
  305. package/src/providers/payrexx/runtime.js +5 -6
  306. package/src/providers/permit_io/runtime.js +2 -2
  307. package/src/providers/pinboard/executors.js +5 -6
  308. package/src/providers/pinpoint/runtime.js +2 -2
  309. package/src/providers/placid/runtime.js +3 -3
  310. package/src/providers/plain/runtime.js +5 -5
  311. package/src/providers/planetscale/runtime.js +2 -2
  312. package/src/providers/planhat/executors.js +6 -6
  313. package/src/providers/plausible_analytics/runtime.js +3 -3
  314. package/src/providers/posthog/runtime.js +3 -3
  315. package/src/providers/predis_ai/executors.js +3 -3
  316. package/src/providers/printavo/runtime.js +2 -2
  317. package/src/providers/prospeo/runtime.js +2 -3
  318. package/src/providers/provider-runtime.d.ts +13 -1
  319. package/src/providers/provider-runtime.js +25 -10
  320. package/src/providers/push_by_techulus/executors.js +3 -4
  321. package/src/providers/pushover/runtime.js +4 -5
  322. package/src/providers/pushsafer/runtime.js +4 -5
  323. package/src/providers/pylon/runtime.js +2 -2
  324. package/src/providers/qase/runtime.js +3 -3
  325. package/src/providers/qdrant/runtime.js +1 -1
  326. package/src/providers/qichacha/runtime.js +2 -2
  327. package/src/providers/qingflow/runtime.js +2 -2
  328. package/src/providers/quickchart/runtime.js +2 -2
  329. package/src/providers/quintadb/runtime.js +2 -2
  330. package/src/providers/quo/runtime.js +2 -2
  331. package/src/providers/rawg/runtime.js +4 -4
  332. package/src/providers/razorpay/runtime.js +4 -5
  333. package/src/providers/readme/runtime.js +6 -6
  334. package/src/providers/referralhero/runtime.js +3 -3
  335. package/src/providers/registry.generated.js +1 -0
  336. package/src/providers/render/executors.js +3 -3
  337. package/src/providers/respond_io/executors.js +3 -3
  338. package/src/providers/reversecontact/runtime.js +3 -3
  339. package/src/providers/ritekit/executors.js +2 -2
  340. package/src/providers/riveter/executors.js +2 -3
  341. package/src/providers/rocket_chat/executors.js +3 -4
  342. package/src/providers/rocket_reach/executors.js +3 -4
  343. package/src/providers/saucelabs/runtime.js +4 -4
  344. package/src/providers/scopus/runtime.js +3 -3
  345. package/src/providers/scrape_do/executors.js +2 -2
  346. package/src/providers/scraperapi/runtime.js +4 -4
  347. package/src/providers/scrapfly/executors.js +2 -2
  348. package/src/providers/scrapingant/executors.js +6 -7
  349. package/src/providers/scrapingbee/executors.js +3 -3
  350. package/src/providers/scrapingdog/executors.js +1 -1
  351. package/src/providers/screenshot_fyi/executors.js +3 -4
  352. package/src/providers/screenshotbase/runtime.js +3 -3
  353. package/src/providers/search_api/runtime.js +2 -2
  354. package/src/providers/securitytrails/executors.js +2 -2
  355. package/src/providers/semantic_scholar/executors.js +2 -2
  356. package/src/providers/sendbird/executors.js +2 -2
  357. package/src/providers/sendfox/executors.js +3 -3
  358. package/src/providers/sendgrid/executors.js +5 -5
  359. package/src/providers/sendmator/runtime.js +3 -4
  360. package/src/providers/seqera/runtime.js +3 -4
  361. package/src/providers/serveravatar/executors.js +3 -3
  362. package/src/providers/sheetdb/runtime.js +2 -2
  363. package/src/providers/short_menu/runtime.js +3 -3
  364. package/src/providers/shortcut/runtime.js +3 -3
  365. package/src/providers/shortpixel/runtime.js +2 -2
  366. package/src/providers/shotstack/runtime.js +4 -4
  367. package/src/providers/signpath/runtime.js +2 -2
  368. package/src/providers/signwell/runtime.js +5 -6
  369. package/src/providers/similarweb_digitalrank_api/runtime.js +3 -3
  370. package/src/providers/simla/runtime.js +5 -5
  371. package/src/providers/simplybook_me/executors.js +6 -6
  372. package/src/providers/sitespeakai/runtime.js +3 -3
  373. package/src/providers/slickdeals/runtime.js +2 -3
  374. package/src/providers/smartsuite/runtime.js +3 -3
  375. package/src/providers/sonarcloud/runtime.js +5 -5
  376. package/src/providers/sorftime/runtime.js +8 -8
  377. package/src/providers/spider/runtime.js +2 -2
  378. package/src/providers/splunk_http_event_collector/runtime.js +7 -8
  379. package/src/providers/sportsdata/runtime.js +4 -4
  380. package/src/providers/spyfu/runtime.js +4 -5
  381. package/src/providers/square/runtime.js +4 -4
  382. package/src/providers/stannp/runtime.js +2 -2
  383. package/src/providers/stripe/executors.js +2 -2
  384. package/src/providers/supermemory/runtime.js +3 -3
  385. package/src/providers/survey_monkey/runtime.js +3 -3
  386. package/src/providers/taiga/runtime.js +4 -4
  387. package/src/providers/talenox/executors.js +4 -4
  388. package/src/providers/tally/runtime.js +3 -3
  389. package/src/providers/tavily/runtime.js +3 -4
  390. package/src/providers/teamcamp/executors.js +2 -2
  391. package/src/providers/teamtailor/executors.js +2 -2
  392. package/src/providers/telegram/executors.js +6 -7
  393. package/src/providers/teltel/executors.js +2 -2
  394. package/src/providers/templated/executors.js +3 -3
  395. package/src/providers/tencent_docs/runtime.js +4 -4
  396. package/src/providers/tencent_maps/runtime.js +3 -3
  397. package/src/providers/textcortex/runtime.js +3 -3
  398. package/src/providers/the_cat_api/runtime.js +3 -3
  399. package/src/providers/the_colony/runtime.js +3 -3
  400. package/src/providers/the_odds_api/runtime.js +3 -4
  401. package/src/providers/the_official_board/runtime.js +4 -4
  402. package/src/providers/thehive/runtime.js +1 -1
  403. package/src/providers/tikhub/endpoint-catalog.js +2 -3
  404. package/src/providers/tiktok_business/runtime.js +2 -2
  405. package/src/providers/timecamp/runtime.js +2 -2
  406. package/src/providers/timelink/runtime.js +2 -2
  407. package/src/providers/totp/runtime.js +4 -5
  408. package/src/providers/trawlingweb/runtime.js +2 -2
  409. package/src/providers/trilium/runtime.js +2 -2
  410. package/src/providers/triple_whale/runtime.js +3 -3
  411. package/src/providers/truvera/runtime.js +2 -2
  412. package/src/providers/tuskr/runtime.js +2 -2
  413. package/src/providers/typebot/runtime.js +2 -2
  414. package/src/providers/typeform/runtime.js +2 -2
  415. package/src/providers/uptimerobot/executors.js +3 -4
  416. package/src/providers/v2ex/runtime.js +8 -9
  417. package/src/providers/valyu/runtime.js +3 -3
  418. package/src/providers/vapi/runtime.js +4 -4
  419. package/src/providers/vectorshift/runtime.js +3 -3
  420. package/src/providers/venafitlsprotectcloud/runtime.js +2 -3
  421. package/src/providers/venafitlsprotectdatacenter/runtime.js +2 -3
  422. package/src/providers/vida/runtime.js +4 -4
  423. package/src/providers/vonage/runtime.js +3 -3
  424. package/src/providers/walmart_marketplace/runtime.js +5 -5
  425. package/src/providers/weatherapi/executors.js +3 -4
  426. package/src/providers/web_of_science/runtime.js +4 -4
  427. package/src/providers/web_of_science_expanded/runtime.js +9 -9
  428. package/src/providers/webex/runtime.js +3 -3
  429. package/src/providers/webinarjam/runtime.js +4 -4
  430. package/src/providers/webscraping_ai/runtime.js +3 -3
  431. package/src/providers/webvizio/runtime.js +3 -4
  432. package/src/providers/wecom_bot/smart-runtime.js +4 -5
  433. package/src/providers/wecom_mcp/runtime.js +3 -4
  434. package/src/providers/wejam_ai/runtime.js +3 -3
  435. package/src/providers/wolfram_alpha_api/runtime.js +3 -3
  436. package/src/providers/woocommerce/runtime.js +1 -1
  437. package/src/providers/woodpecker_co/executors.js +3 -4
  438. package/src/providers/woot/runtime.js +6 -6
  439. package/src/providers/workable/runtime.js +3 -3
  440. package/src/providers/workday/runtime.js +4 -4
  441. package/src/providers/workiom/runtime.js +2 -2
  442. package/src/providers/workiz/runtime.js +2 -2
  443. package/src/providers/workpath/executors.js +3 -4
  444. package/src/providers/worksnaps/executors.js +2 -2
  445. package/src/providers/y_gy/runtime.js +2 -2
  446. package/src/providers/zenscrape/runtime.js +3 -3
  447. package/src/providers/zep/runtime.js +4 -4
  448. package/src/providers/zeplin/runtime.js +2 -2
  449. package/src/providers/zhihu/executors.js +6 -6
  450. package/src/providers/zylvie/runtime.js +4 -4
  451. package/src/saas/saas-cleanup-service.d.ts +2 -0
  452. package/src/saas/saas-cleanup-service.js +2 -1
  453. package/src/saas/saas-execution-service.d.ts +1 -1
  454. package/src/server/actions/action-runner.js +1 -1
  455. package/src/server/api/auth.js +3 -0
  456. package/src/server/api/connection-routes.js +1 -1
  457. package/src/server/api/console-catalog-routes.js +1 -1
  458. package/src/server/api/console-oauth-routes.d.ts +3 -1
  459. package/src/server/api/console-oauth-routes.js +22 -9
  460. package/src/server/api/oauth-completion-page.d.ts +57 -0
  461. package/src/server/api/oauth-completion-page.js +135 -10
  462. package/src/server/api/openapi.d.ts +5 -0
  463. package/src/server/api/openapi.js +62 -2
  464. package/src/server/api/runtime-api.d.ts +2 -1
  465. package/src/server/api/runtime-app-routes.js +1 -1
  466. package/src/server/api/runtime-execution-routes.js +2 -1
  467. package/src/server/connect-app.d.ts +4 -0
  468. package/src/server/connect-app.js +14 -1
  469. package/src/server/connect-server.d.ts +6 -0
  470. package/src/server/connect-server.js +114 -4
  471. package/src/server/connector-runtime.d.ts +6 -8
  472. package/src/server/connector-runtime.js +8 -28
  473. package/src/server/proxy/proxy-runner.js +1 -1
  474. package/src/server/slack-event-verification.d.ts +37 -0
  475. package/src/server/slack-event-verification.js +91 -0
  476. package/src/server/storage/connection-request-store.d.ts +1 -1
  477. package/src/server/storage/connection-store.d.ts +1 -1
  478. package/src/server/storage/postgres/runtime-store.d.ts +1 -1
  479. package/src/server/storage/runtime-database.d.ts +1 -1
  480. package/src/server/storage/saas-project-store.d.ts +1 -1
  481. package/src/triggers/maintenance.d.ts +2 -0
  482. package/src/triggers/maintenance.js +2 -1
  483. package/src/triggers/sources/slack-signature.d.ts +10 -0
  484. package/src/triggers/sources/slack-signature.js +13 -0
  485. package/src/triggers/sources/slack.js +9 -11
  486. package/src/triggers/trigger-runner.js +1 -1
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalNumber, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
2
- import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, providerUserAgent, ProviderRequestError, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, } from "../provider-runtime.js";
2
+ import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, providerUserAgent, ProviderRequestError, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, providerInputError, } from "../provider-runtime.js";
3
3
  const service = "autoblogger";
4
4
  const autobloggerApiBaseUrl = "https://dash.autoblogging.ai/api/v1";
5
5
  const articlesPath = "/articles";
@@ -219,7 +219,7 @@ async function readAutobloggerPayload(response) {
219
219
  function createAutobloggerError(status, payload, phase) {
220
220
  const message = readErrorMessage(payload) ?? `autoblogger request failed with ${status}`;
221
221
  if (status === 400 || status === 404) {
222
- return new ProviderRequestError(400, message);
222
+ return providerInputError(message);
223
223
  }
224
224
  else if (status === 401 || looksLikeAuthError(payload)) {
225
225
  return new ProviderRequestError(phase === "validate" ? 401 : 400, message);
@@ -245,7 +245,7 @@ function readErrorMessage(payload) {
245
245
  : undefined;
246
246
  }
247
247
  function readDashboardEmail(value) {
248
- return requiredString(value, "dashboardEmail", (message) => new ProviderRequestError(400, message));
248
+ return requiredString(value, "dashboardEmail", providerInputError);
249
249
  }
250
250
  function requiredResponseString(value, fieldName) {
251
251
  return requiredString(value, fieldName, () => new ProviderRequestError(502, `autoblogger response missing ${fieldName}`));
@@ -1,6 +1,6 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
3
- import { providerUserAgent, ProviderRequestError, readProviderTextBody } from "../provider-runtime.js";
3
+ import { providerUserAgent, ProviderRequestError, readProviderTextBody, providerInputError, providerResponseError, } from "../provider-runtime.js";
4
4
  export const baiduMapsApiBaseUrl = "https://api.map.baidu.com";
5
5
  export const baiduMapsValidationPath = "/reverse_geocoding/v3/";
6
6
  // Errors mapped from Baidu Maps `status` field to ProviderRequestError codes.
@@ -464,7 +464,7 @@ function normalizeBaiduMapsError(response, payload, phase) {
464
464
  return new ProviderRequestError(429, message);
465
465
  }
466
466
  if (baiduMapsInputStatuses.has(status)) {
467
- return new ProviderRequestError(400, message);
467
+ return providerInputError(message);
468
468
  }
469
469
  if (baiduMapsAuthStatuses.has(status)) {
470
470
  return new ProviderRequestError(phase === "validate" ? 400 : 401, message);
@@ -472,7 +472,7 @@ function normalizeBaiduMapsError(response, payload, phase) {
472
472
  // A non-zero Baidu status we don't specifically classify. Baidu returns
473
473
  // HTTP 200 even for errors, so `response.status` is 200 here and would be
474
474
  // misclassified as a client error; surface an explicit upstream failure.
475
- return new ProviderRequestError(502, message);
475
+ return providerResponseError(message);
476
476
  }
477
477
  // No numeric Baidu status: fall back to the HTTP status when it is itself an
478
478
  // error, otherwise treat the unexpected body as an upstream failure.
@@ -4,11 +4,10 @@ import { SdkError, SdkErrorCode } from "@modelcontextprotocol/client";
4
4
  import { posix } from "node:path";
5
5
  import { compactObject, optionalInteger, optionalString } from "../../core/cast.js";
6
6
  import { withMcpClient } from "../mcp-client.js";
7
- import { ProviderRequestError } from "../provider-runtime.js";
7
+ import { ProviderRequestError, defaultProviderRequestTimeoutMs } from "../provider-runtime.js";
8
8
  import { baiduNetdiskFileCategories, baiduNetdiskListTypes, baiduNetdiskSemanticMatchSources, isBaiduNetdiskAbsolutePath, } from "./actions.js";
9
9
  import { normalizeBaiduNetdiskError, parseBaiduNetdiskJson } from "./runtime.js";
10
10
  const baiduNetdiskMcpEndpoint = new URL("https://mcp-pan.baidu.com/sse");
11
- const requestTimeoutMs = 30_000;
12
11
  const baiduNetdiskListToolByType = {
13
12
  all: "file_list",
14
13
  document: "file_doc_list",
@@ -44,7 +43,7 @@ const semanticSourceByCode = new Map([
44
43
  ]);
45
44
  export async function verifyBaiduNetdiskMcpConnection(accessToken, fetcher) {
46
45
  await withBaiduNetdiskMcpClient(accessToken, fetcher, async (client) => {
47
- const result = await client.listTools({}, { timeout: requestTimeoutMs });
46
+ const result = await client.listTools({}, { timeout: defaultProviderRequestTimeoutMs });
48
47
  const toolsByName = new Map(result.tools.map((tool) => [tool.name, tool]));
49
48
  for (const toolName of requiredToolNames) {
50
49
  const tool = toolsByName.get(toolName);
@@ -175,7 +174,7 @@ export async function withBaiduNetdiskMcpClient(accessToken, fetcher, run) {
175
174
  }
176
175
  async function callBaiduNetdiskMcpTool(name, args, phase, context) {
177
176
  return withBaiduNetdiskMcpClient(context.accessToken, context.fetcher, async (client) => {
178
- const result = await client.callTool({ name, arguments: args }, { timeout: requestTimeoutMs });
177
+ const result = await client.callTool({ name, arguments: args }, { timeout: defaultProviderRequestTimeoutMs });
179
178
  let payload;
180
179
  try {
181
180
  payload =
@@ -1,7 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { compactObject, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
3
3
  import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
4
- import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, toProviderProxyError, } from "../provider-runtime.js";
4
+ import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, toProviderProxyError, providerInputError, } from "../provider-runtime.js";
5
5
  const service = "bark";
6
6
  const barkDefaultBaseUrl = "https://api.day.app";
7
7
  const barkSuccessCode = 200;
@@ -203,7 +203,7 @@ function parseBarkPushUrl(value, allowPrivateNetwork) {
203
203
  url = assertPublicHttpUrl(value, {
204
204
  fieldName: "Bark push URL",
205
205
  allowPrivateNetwork,
206
- createError: (message) => new ProviderRequestError(400, message),
206
+ createError: providerInputError,
207
207
  });
208
208
  }
209
209
  catch (error) {
@@ -233,7 +233,7 @@ function normalizeBarkBaseUrl(value, allowPrivateNetwork = isPrivateNetworkAcces
233
233
  const url = assertPublicHttpUrl(candidate, {
234
234
  fieldName: "Bark baseUrl",
235
235
  allowPrivateNetwork,
236
- createError: (message) => new ProviderRequestError(400, message),
236
+ createError: providerInputError,
237
237
  });
238
238
  if (url.protocol !== "https:" && !allowPrivateNetwork) {
239
239
  throw new ProviderRequestError(400, "Bark baseUrl must use https");
@@ -332,10 +332,10 @@ function readBarkErrorMessage(payload) {
332
332
  }
333
333
  function mapBarkHttpError(status, message, phase) {
334
334
  if (status === 401 || status === 403 || (phase === "validate" && status === 404)) {
335
- return new ProviderRequestError(400, message);
335
+ return providerInputError(message);
336
336
  }
337
337
  if (status === 400 || status === 404 || status === 422) {
338
- return new ProviderRequestError(400, message);
338
+ return providerInputError(message);
339
339
  }
340
340
  if (status === 429) {
341
341
  return new ProviderRequestError(429, message);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
2
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const bitriseApiBaseUrl = "https://api.bitrise.io/v0.1";
4
4
  export const bitriseActionHandlers = {
5
5
  list_apps(input, context) {
@@ -16,7 +16,7 @@ export const bitriseActionHandlers = {
16
16
  },
17
17
  };
18
18
  export async function validateBitriseCredential(input, fetcher, signal) {
19
- const apiKey = requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message));
19
+ const apiKey = requiredString(input.apiKey, "apiKey", providerInputError);
20
20
  const profilePayload = await requestBitriseJson({
21
21
  apiKey,
22
22
  path: "/me",
@@ -190,7 +190,7 @@ function createBitriseError(response, payload, phase) {
190
190
  return new ProviderRequestError(429, message);
191
191
  }
192
192
  if (response.status >= 500) {
193
- return new ProviderRequestError(502, message);
193
+ return providerResponseError(message);
194
194
  }
195
195
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
196
196
  return new ProviderRequestError(response.status, message);
@@ -1,8 +1,7 @@
1
1
  import { compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString, requiredString, stringArray, } from "../../core/cast.js";
2
- import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerInputError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerInputError, ProviderRequestError, providerUserAgent, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "bouncer";
4
4
  const bouncerApiBaseUrl = "https://api.usebouncer.com";
5
- const bouncerDefaultRequestTimeoutMs = 30_000;
6
5
  export const bouncerActionHandlers = {
7
6
  get_credits(_input, context) {
8
7
  return requestBouncerCredits({
@@ -171,7 +170,7 @@ async function requestBouncerVerifyEmail(input) {
171
170
  phase: input.phase,
172
171
  query: {
173
172
  email: input.email,
174
- timeout: String(bouncerDefaultRequestTimeoutMs / 1000),
173
+ timeout: String(defaultProviderRequestTimeoutMs / 1000),
175
174
  },
176
175
  });
177
176
  return normalizeBouncerVerifyEmail(payload, "/v1.1/email/verify");
@@ -340,7 +339,7 @@ async function requestBouncerJson(input) {
340
339
  url.searchParams.set(key, value);
341
340
  }
342
341
  }
343
- const timeout = createProviderTimeout(input.signal, bouncerDefaultRequestTimeoutMs);
342
+ const timeout = createProviderTimeout(input.signal);
344
343
  try {
345
344
  const headers = {
346
345
  accept: "application/json",
@@ -1,7 +1,6 @@
1
1
  import { compactObject, optionalBoolean, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  export const browseAiApiBaseUrl = "https://api.browse.ai/v2/";
4
- const browseAiDefaultRequestTimeoutMs = 30_000;
5
4
  export const browseAiActionHandlers = {
6
5
  async list_robots(_input, context) {
7
6
  const payload = await requestBrowseAiJson({
@@ -143,7 +142,7 @@ export async function validateBrowseAiCredential(apiKey, fetcher, signal) {
143
142
  };
144
143
  }
145
144
  async function requestBrowseAiJson(input) {
146
- const timeout = createProviderTimeout(input.signal, browseAiDefaultRequestTimeoutMs);
145
+ const timeout = createProviderTimeout(input.signal);
147
146
  const url = new URL(input.path, browseAiApiBaseUrl);
148
147
  for (const [key, value] of Object.entries(input.query ?? {})) {
149
148
  if (value !== undefined) {
@@ -171,7 +170,7 @@ async function requestBrowseAiJson(input) {
171
170
  }
172
171
  catch (error) {
173
172
  if (timeout.didTimeout() && isAbortLikeError(error)) {
174
- throw new ProviderRequestError(504, `browse_ai ${url.pathname} request timed out after ${Math.max(1, Math.ceil(browseAiDefaultRequestTimeoutMs / 1000))} seconds`);
173
+ throw new ProviderRequestError(504, `browse_ai ${url.pathname} request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
175
174
  }
176
175
  throw new ProviderRequestError(502, error instanceof Error ? `Browse AI request failed: ${error.message}` : "Browse AI request failed");
177
176
  }
@@ -1,9 +1,8 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { compactObject, optionalInteger, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
3
- import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, requireApiKeyCredential, } from "../provider-runtime.js";
3
+ import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, requireApiKeyCredential, providerInputError, providerResponseError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
4
  const service = "browserstack";
5
5
  const browserstackApiBaseUrl = "https://api.browserstack.com";
6
- const browserstackDefaultRequestTimeoutMs = 30_000;
7
6
  export const browserstackActionHandlers = {
8
7
  list_builds(input, context) {
9
8
  return listBuilds(input, context);
@@ -131,7 +130,7 @@ async function requestBrowserstackJson(input) {
131
130
  url.searchParams.set(key, String(value));
132
131
  }
133
132
  }
134
- const timeout = createProviderTimeout(input.context.signal, browserstackDefaultRequestTimeoutMs);
133
+ const timeout = createProviderTimeout(input.context.signal);
135
134
  try {
136
135
  const response = await input.context.fetcher(url, {
137
136
  method: input.method,
@@ -154,7 +153,7 @@ async function requestBrowserstackJson(input) {
154
153
  throw error;
155
154
  }
156
155
  if (timeout.didTimeout()) {
157
- throw new ProviderRequestError(504, `BrowserStack request timed out after ${browserstackDefaultRequestTimeoutMs}ms`);
156
+ throw new ProviderRequestError(504, `BrowserStack request timed out after ${defaultProviderRequestTimeoutMs}ms`);
158
157
  }
159
158
  throw error;
160
159
  }
@@ -180,9 +179,9 @@ function mapBrowserstackError(status, payload) {
180
179
  return new ProviderRequestError(401, message);
181
180
  }
182
181
  if (status >= 400 && status < 500) {
183
- return new ProviderRequestError(400, message);
182
+ return providerInputError(message);
184
183
  }
185
- return new ProviderRequestError(502, message);
184
+ return providerResponseError(message);
186
185
  }
187
186
  function readErrorMessage(payload) {
188
187
  if (typeof payload === "string" && payload.trim()) {
@@ -198,7 +197,7 @@ function requireUsername(value) {
198
197
  return requiredString(value, "username", (message) => new ProviderRequestError(400, `browserstack ${message}`));
199
198
  }
200
199
  function requireInputString(input, fieldName) {
201
- return requiredString(input[fieldName], fieldName, (message) => new ProviderRequestError(400, message));
200
+ return requiredString(input[fieldName], fieldName, providerInputError);
202
201
  }
203
202
  function readWrappedObjectArray(payload, key, context) {
204
203
  if (!Array.isArray(payload)) {
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, providerInputError, } from "../provider-runtime.js";
3
3
  export const buildkiteApiBaseUrl = "https://api.buildkite.com/v2";
4
4
  export const buildkiteActionHandlers = {
5
5
  get_current_access_token(input, context) {
@@ -328,10 +328,10 @@ async function toBuildkiteError(response, phase, notFoundAsInvalidInput) {
328
328
  return new ProviderRequestError(phase === "validate" ? 400 : 403, message);
329
329
  }
330
330
  if (response.status === 404 && notFoundAsInvalidInput) {
331
- return new ProviderRequestError(400, message);
331
+ return providerInputError(message);
332
332
  }
333
333
  if (response.status === 422) {
334
- return new ProviderRequestError(400, message);
334
+ return providerInputError(message);
335
335
  }
336
336
  if (response.status === 429) {
337
337
  return new ProviderRequestError(429, message);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { isAbortLikeError, ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { isAbortLikeError, ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const bunnyApiBaseUrl = "https://api.bunny.net";
4
4
  const validationPath = "/pullzone";
5
5
  export const bunnycdnActionHandlers = {
@@ -170,7 +170,7 @@ function normalizePullZoneListPayload(payload) {
170
170
  function sanitizePullZone(value, message) {
171
171
  const record = optionalRecord(value);
172
172
  if (!record) {
173
- throw new ProviderRequestError(502, message);
173
+ throw providerResponseError(message);
174
174
  }
175
175
  return removeBunnyCertificateKeys(record);
176
176
  }
@@ -197,7 +197,7 @@ function createBunnyError(response, payload, phase) {
197
197
  response.statusText ??
198
198
  `bunnycdn request failed with status ${response.status}`;
199
199
  if (phase === "validate" && (response.status === 400 || response.status === 401 || response.status === 403)) {
200
- return new ProviderRequestError(400, message);
200
+ return providerInputError(message);
201
201
  }
202
202
  return new ProviderRequestError(response.status, message);
203
203
  }
@@ -1,6 +1,5 @@
1
1
  import { compactObject, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
3
- const businessmapDefaultRequestTimeoutMs = 30_000;
2
+ import { createProviderTimeout, isAbortLikeError, ProviderRequestError, providerUserAgent, providerInputError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
3
  const businessmapValidationPath = "/workspaces";
5
4
  export const businessmapActionHandlers = {
6
5
  async list_workspaces(input, context) {
@@ -186,7 +185,7 @@ export function normalizeBusinessmapAccountUrl(value) {
186
185
  };
187
186
  }
188
187
  async function requestBusinessmapJson(input) {
189
- const timeout = createProviderTimeout(input.signal, businessmapDefaultRequestTimeoutMs);
188
+ const timeout = createProviderTimeout(input.signal);
190
189
  try {
191
190
  const response = await input.fetcher(buildBusinessmapUrl(input), {
192
191
  method: input.method ?? "GET",
@@ -210,7 +209,7 @@ async function requestBusinessmapJson(input) {
210
209
  throw error;
211
210
  }
212
211
  if (timeout.didTimeout() || isAbortLikeError(error)) {
213
- throw new ProviderRequestError(504, `Businessmap request timed out after ${Math.max(1, Math.ceil(businessmapDefaultRequestTimeoutMs / 1000))} seconds`);
212
+ throw new ProviderRequestError(504, `Businessmap request timed out after ${Math.max(1, Math.ceil(defaultProviderRequestTimeoutMs / 1000))} seconds`);
214
213
  }
215
214
  throw new ProviderRequestError(502, error instanceof Error ? `Businessmap request failed: ${error.message}` : "Businessmap request failed");
216
215
  }
@@ -251,10 +250,10 @@ async function readBusinessmapPayload(response) {
251
250
  function createBusinessmapError(response, payload, mode, notFoundAsInvalidInput) {
252
251
  const message = extractBusinessmapErrorMessage(payload) ?? `Businessmap request failed with ${response.status}`;
253
252
  if (mode === "validate" && (response.status === 401 || response.status === 403)) {
254
- return new ProviderRequestError(400, message);
253
+ return providerInputError(message);
255
254
  }
256
255
  if (notFoundAsInvalidInput && response.status === 404) {
257
- return new ProviderRequestError(400, message);
256
+ return providerInputError(message);
258
257
  }
259
258
  return new ProviderRequestError(response.status, message);
260
259
  }
@@ -328,7 +327,7 @@ function omitKeys(input, keys) {
328
327
  }
329
328
  function requireNonEmptyObject(input, message) {
330
329
  if (Object.keys(input).length === 0) {
331
- throw new ProviderRequestError(400, message);
330
+ throw providerInputError(message);
332
331
  }
333
332
  }
334
333
  function requirePositiveInteger(value, fieldName) {
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
3
3
  export const buttondownApiBaseUrl = "https://api.buttondown.com/v1/";
4
4
  export const buttondownActionHandlers = {
5
5
  get_account(_input, context) {
@@ -236,7 +236,7 @@ function createButtondownError(response, payload, phase) {
236
236
  const status = response.status;
237
237
  const message = extractErrorMessage(payload) ?? `Buttondown request failed with status ${status}`;
238
238
  if (phase === "validate" && (status === 401 || status === 403)) {
239
- return new ProviderRequestError(400, message);
239
+ return providerInputError(message);
240
240
  }
241
241
  return new ProviderRequestError(status, message);
242
242
  }
@@ -1,5 +1,5 @@
1
1
  import { optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
3
3
  export const byteformsApiBaseUrl = "https://api.forms.bytesuite.io";
4
4
  const validationPath = "/api/form";
5
5
  export const byteformsActionHandlers = {
@@ -124,7 +124,7 @@ function readCursor(cursor) {
124
124
  async function createByteformsError(response, mode) {
125
125
  const message = await readByteformsErrorMessage(response);
126
126
  if (mode === "validate" && (response.status === 401 || response.status === 403)) {
127
- return new ProviderRequestError(400, message);
127
+ return providerInputError(message);
128
128
  }
129
129
  return new ProviderRequestError(response.status, message);
130
130
  }
@@ -1,5 +1,5 @@
1
1
  import { booleanString, compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString, } from "../../core/cast.js";
2
- import { providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
2
+ import { providerUserAgent, ProviderRequestError, providerResponseError } from "../provider-runtime.js";
3
3
  export const calendlyApiOrigin = "https://api.calendly.com";
4
4
  const calendlyValidationPath = "/users/me";
5
5
  export const calendlyActionHandlers = {
@@ -854,7 +854,7 @@ function createCalendlyTransportError(error, phase) {
854
854
  if (isAbortError(error)) {
855
855
  return new ProviderRequestError(504, message);
856
856
  }
857
- return new ProviderRequestError(502, message);
857
+ return providerResponseError(message);
858
858
  }
859
859
  function isAbortError(error) {
860
860
  return error instanceof DOMException && error.name === "AbortError";
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalInteger as asOptionalInteger, optionalRecord as asOptionalObject, optionalString as asOptionalString, } from "../../core/cast.js";
2
- import { createProviderTimeout, providerUserAgent as connectorUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, providerUserAgent as connectorUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const captainBiApiBaseUrl = "https://openapi.captainbi.com";
4
4
  export const captainBiTokenUrl = `${captainBiApiBaseUrl}/oauth2/token`;
5
5
  const defaultPage = 1;
@@ -285,7 +285,7 @@ function mapCaptainBiHttpError(status, payload, phase, operation) {
285
285
  return new ProviderRequestError(429, message);
286
286
  }
287
287
  if (phase === "validate" && [400, 401, 403].includes(status)) {
288
- return new ProviderRequestError(400, message);
288
+ return providerInputError(message);
289
289
  }
290
290
  if (status === 401 || (operation === "access token exchange" && [400, 403].includes(status))) {
291
291
  return new ProviderRequestError(401, message);
@@ -296,21 +296,21 @@ function mapCaptainBiHttpError(status, payload, phase, operation) {
296
296
  if ([400, 404, 409, 422].includes(status)) {
297
297
  return new ProviderRequestError(status === 404 ? 404 : 400, message);
298
298
  }
299
- return new ProviderRequestError(502, message);
299
+ return providerResponseError(message);
300
300
  }
301
301
  function mapCaptainBiBusinessError(code, payload, phase, operation) {
302
302
  const message = readString(payload, "msg", "message", "error") ??
303
303
  `CaptainBI ${operation} failed${code == null ? "" : ` with code ${code}`}`;
304
304
  switch (code) {
305
305
  case 100903:
306
- return new ProviderRequestError(400, message);
306
+ return providerInputError(message);
307
307
  case 100904:
308
308
  case 100910:
309
309
  return new ProviderRequestError(429, message);
310
310
  case 100902:
311
311
  case 100906:
312
312
  case 100907:
313
- return phase === "validate" ? new ProviderRequestError(400, message) : new ProviderRequestError(401, message);
313
+ return phase === "validate" ? providerInputError(message) : new ProviderRequestError(401, message);
314
314
  case 100901:
315
315
  case 100905:
316
316
  case 100908:
@@ -321,7 +321,7 @@ function mapCaptainBiBusinessError(code, payload, phase, operation) {
321
321
  case 100914:
322
322
  return new ProviderRequestError(403, message);
323
323
  default:
324
- return new ProviderRequestError(502, message);
324
+ return providerResponseError(message);
325
325
  }
326
326
  }
327
327
  function readCaptainBiErrorMessage(payload) {
@@ -180,7 +180,7 @@ function createCastingwordsError(status, payload, phase) {
180
180
  return new ProviderRequestError(429, message);
181
181
  }
182
182
  if (status === 400) {
183
- return new ProviderRequestError(400, message);
183
+ return providerInputError(message);
184
184
  }
185
185
  if (status === 401 || status === 403) {
186
186
  return new ProviderRequestError(phase === "validate" ? 401 : status, message);
@@ -1,5 +1,5 @@
1
1
  import { optionalRecord, optionalString } from "../../core/cast.js";
2
- import { providerUserAgent, ProviderRequestError } from "../provider-runtime.js";
2
+ import { providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const chatpdfApiBaseUrl = "https://api.chatpdf.com/v1";
4
4
  export const chatpdfActionHandlers = {
5
5
  async add_source_url(input, context) {
@@ -98,7 +98,7 @@ function createChatpdfError(response, payload) {
98
98
  return new ProviderRequestError(429, message);
99
99
  }
100
100
  if (response.status === 400 || response.status === 404 || response.status === 422) {
101
- return new ProviderRequestError(400, message);
101
+ return providerInputError(message);
102
102
  }
103
103
  return new ProviderRequestError(response.status >= 500 ? 502 : response.status, message);
104
104
  }
@@ -115,13 +115,13 @@ function extractErrorMessage(payload) {
115
115
  function requireObject(value, message) {
116
116
  const record = optionalRecord(value);
117
117
  if (!record) {
118
- throw new ProviderRequestError(502, message);
118
+ throw providerResponseError(message);
119
119
  }
120
120
  return record;
121
121
  }
122
122
  function requireString(value, message) {
123
123
  if (typeof value !== "string" || value.length === 0) {
124
- throw new ProviderRequestError(502, message);
124
+ throw providerResponseError(message);
125
125
  }
126
126
  return value;
127
127
  }
@@ -1,9 +1,8 @@
1
1
  import { compactObject, optionalInteger, optionalRecord, optionalString, requiredRecord, requiredString, } from "../../core/cast.js";
2
- import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, } from "../provider-runtime.js";
2
+ import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "check";
4
4
  const sandboxApiBaseUrl = "https://sandbox.checkhq.com";
5
5
  const productionApiBaseUrl = "https://api.checkhq.com";
6
- const requestTimeoutMs = 30_000;
7
6
  export const checkActionHandlers = {
8
7
  async validate_address(input, context) {
9
8
  const payload = await requestCheckJson({
@@ -110,8 +109,8 @@ export const credentialValidators = {
110
109
  };
111
110
  async function requestCheckJson(input) {
112
111
  const signal = input.context.signal
113
- ? AbortSignal.any([input.context.signal, AbortSignal.timeout(requestTimeoutMs)])
114
- : AbortSignal.timeout(requestTimeoutMs);
112
+ ? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
113
+ : AbortSignal.timeout(defaultProviderRequestTimeoutMs);
115
114
  let response;
116
115
  let payload;
117
116
  try {
@@ -1,8 +1,7 @@
1
1
  import { optionalBoolean, optionalRecord, optionalString, requiredRecord, requiredString } from "../../core/cast.js";
2
- import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, } from "../provider-runtime.js";
2
+ import { defineProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, requireApiKeyCredential, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "checkly";
4
4
  const apiBaseUrl = "https://api.checklyhq.com";
5
- const requestTimeoutMs = 30_000;
6
5
  export const checklyActionHandlers = {
7
6
  async get_current_account(_input, context) {
8
7
  return { account: await requestChecklyJson({ context, path: "/v1/accounts/me", phase: "execute" }) };
@@ -134,8 +133,8 @@ export const proxy = defineProviderProxy({
134
133
  });
135
134
  async function requestChecklyJson(input) {
136
135
  const signal = input.context.signal
137
- ? AbortSignal.any([input.context.signal, AbortSignal.timeout(requestTimeoutMs)])
138
- : AbortSignal.timeout(requestTimeoutMs);
136
+ ? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
137
+ : AbortSignal.timeout(defaultProviderRequestTimeoutMs);
139
138
  let response;
140
139
  let payload;
141
140
  try {
@@ -1,5 +1,5 @@
1
1
  import { compactObject, looseArray, optionalRecord as asOptionalObject, optionalString as asOptionalString, } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, providerInputError } from "../provider-runtime.js";
3
3
  function requiredApiKey(input) {
4
4
  if (input.apiKey?.trim())
5
5
  return input.apiKey.trim();
@@ -238,10 +238,10 @@ function createChengxinError(input) {
238
238
  input.code === "3" ||
239
239
  input.code === "401" ||
240
240
  input.code === "403") {
241
- return input.phase === "validate" ? new ProviderRequestError(400, message) : new ProviderRequestError(401, message);
241
+ return input.phase === "validate" ? providerInputError(message) : new ProviderRequestError(401, message);
242
242
  }
243
243
  if (input.status >= 400 && input.status < 500) {
244
- return new ProviderRequestError(400, message);
244
+ return providerInputError(message);
245
245
  }
246
246
  return new ProviderRequestError(input.status || 502, message);
247
247
  }
@@ -1,9 +1,8 @@
1
1
  import { compactObject, optionalInteger, optionalRecord, optionalString, requiredRecord, requiredString, } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "cincopa";
4
4
  const apiBaseUrl = "https://api.cincopa.com/v2";
5
5
  const validationPath = "/ping.json";
6
- const requestTimeoutMs = 30_000;
7
6
  export const cincopaActionHandlers = {
8
7
  async list_galleries(input, context) {
9
8
  const body = await requestBody({
@@ -110,8 +109,8 @@ async function requestBody(input, label) {
110
109
  }
111
110
  async function requestJson(input) {
112
111
  const signal = input.context.signal
113
- ? AbortSignal.any([input.context.signal, AbortSignal.timeout(requestTimeoutMs)])
114
- : AbortSignal.timeout(requestTimeoutMs);
112
+ ? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
113
+ : AbortSignal.timeout(defaultProviderRequestTimeoutMs);
115
114
  let response;
116
115
  let payload;
117
116
  try {
@@ -1,8 +1,7 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerResponseError, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "circle";
4
4
  const apiBaseUrl = "https://app.circle.so/api/admin/v2";
5
- const requestTimeoutMs = 30_000;
6
5
  export const circleActionHandlers = {
7
6
  async get_community(_input, context) {
8
7
  return {
@@ -122,8 +121,8 @@ export const credentialValidators = {
122
121
  };
123
122
  async function requestCircleJson(input) {
124
123
  const signal = input.context.signal
125
- ? AbortSignal.any([input.context.signal, AbortSignal.timeout(requestTimeoutMs)])
126
- : AbortSignal.timeout(requestTimeoutMs);
124
+ ? AbortSignal.any([input.context.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
125
+ : AbortSignal.timeout(defaultProviderRequestTimeoutMs);
127
126
  let response;
128
127
  let payload;
129
128
  try {
@@ -2,7 +2,6 @@ import { compactObject, optionalNumber, optionalRecord, optionalString } from ".
2
2
  import { createProviderTimeout, defineProviderExecutors, defineProviderProxy, isAbortLikeError, ProviderRequestError, providerUserAgent, requireApiKeyCredential, } from "../provider-runtime.js";
3
3
  const service = "clearout";
4
4
  const clearoutDefaultBaseUrl = "https://api.clearout.io/v2";
5
- const clearoutDefaultRequestTimeoutMs = 30_000;
6
5
  export const clearoutActionHandlers = {
7
6
  get_available_credits(_input, context) {
8
7
  return requestClearoutJson({
@@ -105,7 +104,7 @@ function executeEmailAttributeCheck(input, context, path) {
105
104
  });
106
105
  }
107
106
  async function requestClearoutJson(input) {
108
- const timeout = createProviderTimeout(input.context.signal, input.timeoutMs ?? clearoutDefaultRequestTimeoutMs);
107
+ const timeout = createProviderTimeout(input.context.signal, input.timeoutMs);
109
108
  try {
110
109
  const response = await input.context.fetcher(buildUrl(input.context.baseUrl, input.path), {
111
110
  method: input.method,