@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, nullableString, optionalBoolean, optionalNumber, optionalString, requiredRecord, } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  const service = "dub";
4
4
  export const dubApiBaseUrl = "https://api.dub.co";
5
5
  const dubLinksPath = "/links";
@@ -227,13 +227,13 @@ function createDubError(response, payload, phase) {
227
227
  return new ProviderRequestError(429, message);
228
228
  }
229
229
  if (phase === "validate" && (response.status === 401 || response.status === 403)) {
230
- return new ProviderRequestError(400, message);
230
+ return providerInputError(message);
231
231
  }
232
232
  if (phase === "execute" && (response.status === 401 || response.status === 403)) {
233
233
  return new ProviderRequestError(401, message);
234
234
  }
235
235
  if (phase === "execute" && [400, 404, 409, 410, 422].includes(response.status)) {
236
- return new ProviderRequestError(400, message);
236
+ return providerInputError(message);
237
237
  }
238
238
  return new ProviderRequestError(response.status || 500, message);
239
239
  }
@@ -249,7 +249,7 @@ function extractDubErrorMessage(payload) {
249
249
  return optionalString(nestedError?.message) ?? optionalString(object.message) ?? optionalString(object.error);
250
250
  }
251
251
  function normalizeLink(payload) {
252
- const object = requiredRecord(payload, "link", (message) => new ProviderRequestError(502, message));
252
+ const object = requiredRecord(payload, "link", providerResponseError);
253
253
  return {
254
254
  id: readRequiredString(object.id, "link.id"),
255
255
  domain: readRequiredString(object.domain, "link.domain"),
@@ -269,7 +269,7 @@ function normalizeLink(payload) {
269
269
  };
270
270
  }
271
271
  function normalizeTag(payload) {
272
- const object = requiredRecord(payload, "tag", (message) => new ProviderRequestError(502, message));
272
+ const object = requiredRecord(payload, "tag", providerResponseError);
273
273
  return {
274
274
  id: readRequiredString(object.id, "tag.id"),
275
275
  name: readRequiredString(object.name, "tag.name"),
@@ -278,7 +278,7 @@ function normalizeTag(payload) {
278
278
  };
279
279
  }
280
280
  function normalizeFolder(payload) {
281
- const object = requiredRecord(payload, "folder", (message) => new ProviderRequestError(502, message));
281
+ const object = requiredRecord(payload, "folder", providerResponseError);
282
282
  return {
283
283
  id: readRequiredString(object.id, "folder.id"),
284
284
  name: readRequiredString(object.name, "folder.name"),
@@ -1,5 +1,5 @@
1
1
  import { 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 dumplingaiApiBaseUrl = "https://app.dumplingai.com";
4
4
  const balancePath = "/api/v2/balance";
5
5
  const requests = {
@@ -70,6 +70,6 @@ function mapError(status, payload, phase) {
70
70
  if (status === 429)
71
71
  return new ProviderRequestError(429, message);
72
72
  if (status === 400 || status === 404 || status === 422)
73
- return new ProviderRequestError(400, message);
73
+ return providerInputError(message);
74
74
  return new ProviderRequestError(status || 502, message);
75
75
  }
@@ -1,7 +1,7 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { booleanString, compactObject, optionalBoolean, optionalInteger, optionalNumber, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
3
3
  import { readBoundedResponseBytes, storeResponseInTransit } from "../../core/request.js";
4
- import { defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, } from "../provider-runtime.js";
4
+ import { defineApiKeyProviderExecutors, defineProviderProxy, ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
5
5
  const elevenlabsApiOrigin = "https://api.elevenlabs.io";
6
6
  const elevenlabsApiBaseUrl = `${elevenlabsApiOrigin}/v1`;
7
7
  const elevenlabsApiV2BaseUrl = `${elevenlabsApiOrigin}/v2`;
@@ -458,13 +458,13 @@ async function createElevenlabsError(response, mode) {
458
458
  return new ProviderRequestError(429, message);
459
459
  }
460
460
  if (mode === "validate" && (response.status === 401 || response.status === 403)) {
461
- return new ProviderRequestError(400, message);
461
+ return providerInputError(message);
462
462
  }
463
463
  if (mode === "execute" && (response.status === 401 || response.status === 403)) {
464
464
  return new ProviderRequestError(401, message);
465
465
  }
466
466
  if (response.status === 400 || response.status === 404 || response.status === 422) {
467
- return new ProviderRequestError(400, message);
467
+ return providerInputError(message);
468
468
  }
469
469
  return new ProviderRequestError(response.status >= 500 ? 502 : response.status, message);
470
470
  }
@@ -829,7 +829,7 @@ async function storeElevenlabsFile(context, name, mimeType, bytes, actionName) {
829
829
  };
830
830
  }
831
831
  function asObject(value) {
832
- return requiredRecord(value, "elevenlabs object", (message) => new ProviderRequestError(502, message));
832
+ return requiredRecord(value, "elevenlabs object", providerResponseError);
833
833
  }
834
834
  function pickFirstString(input, ...keys) {
835
835
  for (const key of keys) {
@@ -228,7 +228,7 @@ async function createElevenreaderError(response, phase) {
228
228
  return new ProviderRequestError(429, message);
229
229
  }
230
230
  if (response.status >= 400 && response.status < 500) {
231
- return new ProviderRequestError(400, message);
231
+ return providerInputError(message);
232
232
  }
233
233
  return new ProviderRequestError(response.status >= 400 && response.status < 600 ? response.status : 502, message);
234
234
  }
@@ -1,6 +1,6 @@
1
1
  import { compactObject, objectArray, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
2
  import { encodePathSegment } from "../../core/request.js";
3
- import { ProviderRequestError, providerUserAgent, requiredInputString } from "../provider-runtime.js";
3
+ import { ProviderRequestError, providerUserAgent, requiredInputString, providerInputError, providerResponseError, } from "../provider-runtime.js";
4
4
  export const emailoctopusApiBaseUrl = "https://emailoctopus.com/api/1.6";
5
5
  const emailoctopusValidationPath = "/lists";
6
6
  export const emailoctopusActionHandlers = {
@@ -274,10 +274,10 @@ function createEmailoctopusHttpError(status, message, mode) {
274
274
  return new ProviderRequestError(429, message);
275
275
  }
276
276
  if (mode === "validate" && status === 401) {
277
- return new ProviderRequestError(400, message);
277
+ return providerInputError(message);
278
278
  }
279
279
  if (status === 400 || status === 404 || status === 422) {
280
- return new ProviderRequestError(400, message);
280
+ return providerInputError(message);
281
281
  }
282
282
  return new ProviderRequestError(status || 500, message);
283
283
  }
@@ -295,7 +295,7 @@ function contactPath(input) {
295
295
  return `/lists/${encodePathSegment(requiredInputString(input.list_id, "list_id"))}/contacts/${encodePathSegment(requiredInputString(input.contact_id, "contact_id"))}`;
296
296
  }
297
297
  function readObjectArray(value, fieldName) {
298
- return Array.isArray(value) ? objectArray(value, fieldName, (message) => new ProviderRequestError(502, message)) : [];
298
+ return Array.isArray(value) ? objectArray(value, fieldName, providerResponseError) : [];
299
299
  }
300
300
  function optionalStringArray(value) {
301
301
  if (!Array.isArray(value)) {
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
2
- import { providerInputError, providerUserAgent, ProviderRequestError, runProviderRequest, } from "../provider-runtime.js";
2
+ import { providerInputError, providerUserAgent, ProviderRequestError, runProviderRequest, providerResponseError, } from "../provider-runtime.js";
3
3
  export const embaseApiBaseUrl = "https://api.elsevier.com/content/embase";
4
4
  export const embaseActionHandlers = {
5
5
  async search_articles(input, context) {
@@ -124,7 +124,7 @@ function createEmbaseError(status, payload, phase) {
124
124
  return new ProviderRequestError(429, message);
125
125
  }
126
126
  if (phase === "validate" && 400 <= status && status < 500) {
127
- return new ProviderRequestError(400, message);
127
+ return providerInputError(message);
128
128
  }
129
129
  if (status === 401) {
130
130
  return new ProviderRequestError(401, message);
@@ -135,7 +135,7 @@ function createEmbaseError(status, payload, phase) {
135
135
  if (400 <= status && status < 500) {
136
136
  return new ProviderRequestError(502, message, status);
137
137
  }
138
- return new ProviderRequestError(502, message);
138
+ return providerResponseError(message);
139
139
  }
140
140
  function extractEmbaseErrorMessage(payload) {
141
141
  if (typeof payload === "string") {
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, readProviderJsonBody, providerInputError, } from "../provider-runtime.js";
3
3
  const service = "emelia";
4
4
  const emeliaApiBaseUrl = "https://api.emelia.io";
5
5
  export const emeliaActionHandlers = {
@@ -120,7 +120,7 @@ function createEmeliaError(response, payload, phase) {
120
120
  return new ProviderRequestError(401, message);
121
121
  }
122
122
  if (response.status === 400 || response.status === 404 || response.status === 422) {
123
- return new ProviderRequestError(400, message);
123
+ return providerInputError(message);
124
124
  }
125
125
  return new ProviderRequestError(response.status || 502, message);
126
126
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, looseArray, optionalBoolean, optionalBooleanOrNull, optionalInteger, optionalNumber, optionalRecord, optionalString, } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerProxyEndpointPrefixes, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerProxyEndpointPrefixes, ProviderRequestError, providerInputError, } from "../provider-runtime.js";
3
3
  const service = "enigma";
4
4
  const enigmaGraphqlApiUrl = "https://api.enigma.com/graphql";
5
5
  const enigmaKybApiUrl = "https://api.enigma.com/v2/kyb/";
@@ -502,7 +502,7 @@ function createEnigmaError(response, payload, phase) {
502
502
  return new ProviderRequestError(429, message);
503
503
  }
504
504
  if (phase === "validate" && (status === 401 || status === 403)) {
505
- return new ProviderRequestError(400, message);
505
+ return providerInputError(message);
506
506
  }
507
507
  if (phase === "execute" && status === 401) {
508
508
  return new ProviderRequestError(401, message);
@@ -511,7 +511,7 @@ function createEnigmaError(response, payload, phase) {
511
511
  return new ProviderRequestError(403, message);
512
512
  }
513
513
  if (status === 400 || status === 404 || status === 422) {
514
- return new ProviderRequestError(400, message);
514
+ return providerInputError(message);
515
515
  }
516
516
  return new ProviderRequestError(status >= 500 ? 502 : status, message);
517
517
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, nullableInteger, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredResponseRecord, } from "../provider-runtime.js";
2
+ import { createProviderTimeout, defineApiKeyProviderExecutors, defineProviderProxy, isAbortLikeError, providerUserAgent, ProviderRequestError, requiredResponseRecord, providerInputError, } from "../provider-runtime.js";
3
3
  const service = "eodhd_apis";
4
4
  const eodhdApisApiBaseUrl = "https://eodhd.com/api";
5
5
  const eodhdApisActionHandlers = {
@@ -222,7 +222,7 @@ async function readEodhdApisPayload(response) {
222
222
  function createEodhdApisError(status, payload) {
223
223
  const message = extractEodhdApisErrorMessage(payload) ?? `EODHD APIs request failed with status ${status}`;
224
224
  if (status === 400 || status === 401 || status === 403 || status === 404 || status === 422) {
225
- return new ProviderRequestError(400, message);
225
+ return providerInputError(message);
226
226
  }
227
227
  if (status === 429) {
228
228
  return new ProviderRequestError(429, message);
@@ -1,8 +1,7 @@
1
1
  import { compactObject, optionalInteger, optionalNumber, 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 eventzillaApiBaseUrl = "https://www.eventzillaapi.net/api/v2";
4
4
  const eventzillaValidationPath = "/users";
5
- const eventzillaDefaultTimeoutMs = 30_000;
6
5
  export const eventzillaActionHandlers = {
7
6
  async list_events(input, context) {
8
7
  const payload = await requestEventzillaJson({
@@ -140,7 +139,7 @@ export async function validateEventzillaCredential(apiKey, fetcher, signal) {
140
139
  };
141
140
  }
142
141
  async function requestEventzillaJson(input, context) {
143
- const timeout = createProviderTimeout(context.signal, eventzillaDefaultTimeoutMs);
142
+ const timeout = createProviderTimeout(context.signal);
144
143
  try {
145
144
  const response = await context.fetcher(buildEventzillaUrl(input.path, input.query), {
146
145
  method: "GET",
@@ -166,7 +165,7 @@ async function requestEventzillaJson(input, context) {
166
165
  throw error;
167
166
  }
168
167
  if (timeout.didTimeout() || isAbortLikeError(error)) {
169
- throw new ProviderRequestError(504, `Eventzilla request timed out after ${Math.ceil(eventzillaDefaultTimeoutMs / 1000)} seconds`, error);
168
+ throw new ProviderRequestError(504, `Eventzilla request timed out after ${Math.ceil(defaultProviderRequestTimeoutMs / 1000)} seconds`, error);
170
169
  }
171
170
  throw new ProviderRequestError(502, error instanceof Error ? `Eventzilla request failed: ${error.message}` : "Eventzilla request failed", error);
172
171
  }
@@ -85,7 +85,7 @@ function mapError(response, payload, phase) {
85
85
  if (response.status === 429)
86
86
  return new ProviderRequestError(429, message);
87
87
  if (phase === "validate" && response.status < 500)
88
- return new ProviderRequestError(400, message);
88
+ return providerInputError(message);
89
89
  if (response.status === 401)
90
90
  return new ProviderRequestError(401, message);
91
91
  if (response.status === 403)
@@ -5,9 +5,8 @@ import { createHash } from "node:crypto";
5
5
  import { optionalRecord, optionalString } from "../../core/cast.js";
6
6
  import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed } from "../../core/request.js";
7
7
  import { withMcpClient } from "../mcp-client.js";
8
- import { ProviderRequestError, providerUserAgent, requiredInputString } from "../provider-runtime.js";
8
+ import { ProviderRequestError, providerUserAgent, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
9
9
  const defaultEndpoint = "https://mcp.excalidraw.com";
10
- const requestTimeoutMs = 30_000;
11
10
  export const excalidrawMcpActionHandlers = {
12
11
  read_me(_input, context) {
13
12
  return callExcalidrawMcpTool(context, "read_me", {});
@@ -70,14 +69,14 @@ export async function callExcalidrawMcpTool(context, toolName, args) {
70
69
  name: toolName,
71
70
  arguments: args,
72
71
  }, {
73
- timeout: requestTimeoutMs,
72
+ timeout: defaultProviderRequestTimeoutMs,
74
73
  signal: context.signal,
75
74
  }));
76
75
  return toolName === "create_view" ? normalizeCreateViewResult(result) : normalizeReadMeResult(result);
77
76
  }
78
77
  async function listExcalidrawMcpTools(context) {
79
78
  const result = await withExcalidrawMcpClient(context, async (client) => client.listTools({}, {
80
- timeout: requestTimeoutMs,
79
+ timeout: defaultProviderRequestTimeoutMs,
81
80
  signal: context.signal,
82
81
  }));
83
82
  return result.tools.map((tool) => tool.name);
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalBoolean, optionalNumber } from "../../core/cast.js";
2
- import { getProviderActionHandler, ProviderRequestError } from "../provider-runtime.js";
2
+ import { getProviderActionHandler, ProviderRequestError, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  import { emptyWorkbookBytes, excelWorkbookMimeType } from "./workbook-template.js";
4
4
  export const graphBaseUrl = "https://graph.microsoft.com/v1.0";
5
5
  const graphHost = "graph.microsoft.com";
@@ -186,7 +186,7 @@ export async function assertExcelResponse(response) {
186
186
  }
187
187
  const { code, message } = await extractExcelError(response);
188
188
  if (response.status === 400) {
189
- throw new ProviderRequestError(400, message);
189
+ throw providerInputError(message);
190
190
  }
191
191
  if (response.status === 401) {
192
192
  throw new ProviderRequestError(401, message);
@@ -198,7 +198,7 @@ export async function assertExcelResponse(response) {
198
198
  throw new ProviderRequestError(403, message);
199
199
  }
200
200
  if (response.status === 404) {
201
- throw new ProviderRequestError(400, message);
201
+ throw providerInputError(message);
202
202
  }
203
203
  if (response.status === 429) {
204
204
  throw new ProviderRequestError(429, message);
@@ -527,7 +527,7 @@ function asUploadSession(value) {
527
527
  async function buildUploadSessionError(response) {
528
528
  const { message } = await extractExcelError(response);
529
529
  if (response.status === 400 || response.status === 409 || response.status === 412) {
530
- return new ProviderRequestError(400, message);
530
+ return providerInputError(message);
531
531
  }
532
532
  if (response.status === 404) {
533
533
  return new ProviderRequestError(404, "excel upload session expired");
@@ -1087,7 +1087,7 @@ async function readJsonResponse(response, label) {
1087
1087
  function buildExcelOperationError(payload, fallbackMessage) {
1088
1088
  const errorPayload = asObjectSafe(payload.error);
1089
1089
  const message = readOptionalString(errorPayload?.message) ?? readOptionalString(payload.message) ?? fallbackMessage;
1090
- return new ProviderRequestError(502, message);
1090
+ return providerResponseError(message);
1091
1091
  }
1092
1092
  function normalizeExtensions(value) {
1093
1093
  if (!Array.isArray(value) || value.length === 0) {
@@ -1363,7 +1363,7 @@ function readAliasedStringArray(input, keys) {
1363
1363
  function requireNonEmptyMutationBody(input, message) {
1364
1364
  const body = compactObject(input);
1365
1365
  if (Object.keys(body).length === 0) {
1366
- throw new ProviderRequestError(400, message);
1366
+ throw providerInputError(message);
1367
1367
  }
1368
1368
  return body;
1369
1369
  }
@@ -1,5 +1,5 @@
1
1
  import { compactObject, optionalBoolean, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent, runProviderRequest } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, runProviderRequest, providerInputError, } from "../provider-runtime.js";
3
3
  export const expofpApiBaseUrl = "https://app.expofp.com/api/v1";
4
4
  export const expofpActionHandlers = {
5
5
  async list_expos(_input, context) {
@@ -109,7 +109,7 @@ function createExpofpError(status, payload, phase) {
109
109
  return new ProviderRequestError(429, message);
110
110
  }
111
111
  if (phase === "validate" && status >= 400 && status < 500) {
112
- return new ProviderRequestError(400, message);
112
+ return providerInputError(message);
113
113
  }
114
114
  if (phase === "execute" && status === 401) {
115
115
  return new ProviderRequestError(401, message);
@@ -1,5 +1,5 @@
1
1
  import { requiredString } from "../../core/cast.js";
2
- import { ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
2
+ import { ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
3
3
  export const faktooraApiBaseUrl = "https://api.faktoora.com/api/v1";
4
4
  const faktooraValidationPath = "/projects";
5
5
  export const faktooraActionHandlers = {
@@ -72,7 +72,7 @@ export const faktooraActionHandlers = {
72
72
  },
73
73
  };
74
74
  export async function validateFaktooraCredential(input, fetcher) {
75
- const apiKey = requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message));
75
+ const apiKey = requiredString(input.apiKey, "apiKey", providerInputError);
76
76
  await requestFaktooraJson({
77
77
  apiKey,
78
78
  fetcher,
@@ -146,15 +146,15 @@ function createFaktooraError(status, payload, phase) {
146
146
  if (status === 429)
147
147
  return new ProviderRequestError(429, message);
148
148
  if ((status === 401 || status === 403) && phase === "validate") {
149
- return new ProviderRequestError(400, message);
149
+ return providerInputError(message);
150
150
  }
151
151
  if (status === 401 || status === 403) {
152
152
  return new ProviderRequestError(401, message);
153
153
  }
154
154
  if (status === 400 || status === 404 || status === 409 || status === 422) {
155
- return new ProviderRequestError(400, message);
155
+ return providerInputError(message);
156
156
  }
157
- return new ProviderRequestError(502, message);
157
+ return providerResponseError(message);
158
158
  }
159
159
  function extractMessage(payload) {
160
160
  if (typeof payload === "string" && payload.trim())
@@ -2,7 +2,7 @@ import { createHash } from "node:crypto";
2
2
  import { posix as path } from "node:path";
3
3
  import { compactObject, optionalInteger, optionalRecord, optionalString, requiredString } from "../../core/cast.js";
4
4
  import { assertPublicHttpUrl, isPrivateNetworkAccessAllowed, readBoundedResponseBytes } from "../../core/request.js";
5
- import { createProviderTimeout, isAbortLikeError, providerFetch, providerInputError, providerUserAgent, ProviderRequestError, readProviderJsonBody, requiredInputString, } from "../provider-runtime.js";
5
+ import { createProviderTimeout, isAbortLikeError, providerFetch, providerInputError, providerUserAgent, ProviderRequestError, readProviderJsonBody, requiredInputString, providerResponseError, } from "../provider-runtime.js";
6
6
  const requestTimeoutMs = 60_000;
7
7
  const attachmentMaxBytes = 20 * 1024 * 1024;
8
8
  export const fastNoteSyncActionHandlers = {
@@ -345,7 +345,7 @@ function mapFastNoteSyncBusinessError(code, message, phase) {
345
345
  return new ProviderRequestError(429, message);
346
346
  if (code === 305 || (code != null && code >= 400 && code < 500))
347
347
  return providerInputError(message);
348
- return new ProviderRequestError(502, message);
348
+ return providerResponseError(message);
349
349
  }
350
350
  function isFastNoteSyncCredentialErrorCode(code) {
351
351
  return code != null && ((code >= 306 && code <= 315) || code === 507 || code === 508);
@@ -1,9 +1,8 @@
1
1
  import { compactObject, optionalRecord, optionalString, recordOrEmpty, stringArray } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "feathery";
4
4
  const featheryApiBaseUrl = "https://api.feathery.io";
5
5
  const featheryValidationPath = "/api/account/";
6
- const featheryRequestTimeoutMs = 30_000;
7
6
  export const featheryActionHandlers = {
8
7
  async get_account_info(_input, context) {
9
8
  return {
@@ -228,7 +227,7 @@ async function requestFeatheryJson(input, fetcher) {
228
227
  url.searchParams.set(key, String(value));
229
228
  }
230
229
  }
231
- const timeoutSignal = AbortSignal.timeout(featheryRequestTimeoutMs);
230
+ const timeoutSignal = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
232
231
  const signal = input.signal ? AbortSignal.any([input.signal, timeoutSignal]) : timeoutSignal;
233
232
  try {
234
233
  const response = await fetcher(url.toString(), {
@@ -25,12 +25,11 @@ import { createFeishuTaskActionHandlers } from "../feishu/shared/task-runtime.js
25
25
  import { createFeishuVcActionHandlers } from "../feishu/shared/vc-runtime.js";
26
26
  import { createFeishuWhiteboardActionHandlers } from "../feishu/shared/whiteboard-runtime.js";
27
27
  import { createFeishuWikiActionHandlers } from "../feishu/shared/wiki-runtime.js";
28
- import { createProviderProxyUrl, defineProviderExecutors, getProviderActionHandler, mapProviderActionHandlers, normalizeProviderProxyHeaders, providerFetch, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireCustomCredential, requiredInputString, toProviderProxyError, } from "../provider-runtime.js";
28
+ import { createProviderProxyUrl, defineProviderExecutors, getProviderActionHandler, mapProviderActionHandlers, normalizeProviderProxyHeaders, providerFetch, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireCustomCredential, requiredInputString, toProviderProxyError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
29
29
  import { feishuAppBotActions, feishuAppBotProviderScopes } from "./actions.js";
30
30
  import { feishuEvents } from "./trigger-on-event.js";
31
31
  const service = "feishu_app_bot";
32
32
  const feishuOpenBaseUrl = "https://open.feishu.cn/open-apis";
33
- const feishuRequestTimeoutMs = 30_000;
34
33
  const feishuTenantAccessTokenRefreshSkewMs = 60_000;
35
34
  const feishuMaxImageUploadSourceBytes = 10 * 1024 * 1024;
36
35
  const feishuMaxFileUploadSourceBytes = 30 * 1024 * 1024;
@@ -1030,7 +1029,7 @@ function normalizeMimeType(value) {
1030
1029
  }
1031
1030
  function createFeishuRequestSignal(parent) {
1032
1031
  const controller = new AbortController();
1033
- const timeout = setTimeout(() => controller.abort(), feishuRequestTimeoutMs);
1032
+ const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
1034
1033
  const abortFromParent = () => controller.abort(parent?.reason);
1035
1034
  if (parent?.aborted) {
1036
1035
  controller.abort(parent.reason);
@@ -1,13 +1,12 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { createHash, createHmac } from "node:crypto";
3
3
  import { compactObject, optionalRecord, optionalString, requiredRecord } from "../../core/cast.js";
4
- import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, } from "../provider-runtime.js";
4
+ import { createProviderFetch, createProviderProxyUrl, defineProviderExecutors, normalizeProviderProxyHeaders, ProviderRequestError, providerUserAgent, readProviderProxyErrorMessage, readProviderProxyResponse, requireApiKeyCredential, requiredInputString, toProviderProxyError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
5
5
  const service = "feishu_custom_bot";
6
6
  const feishuCustomBotApiBaseUrl = "https://open.feishu.cn";
7
7
  const feishuCustomBotWebhookPathPrefix = "/open-apis/bot/v2/hook/";
8
8
  const feishuCustomBotAllowedWebhookHosts = new Set([new URL(feishuCustomBotApiBaseUrl).host]);
9
9
  const feishuCustomBotMaxPayloadBytes = 20 * 1024;
10
- const feishuCustomBotRequestTimeoutMs = 30_000;
11
10
  const feishuCustomBotFetch = createProviderFetch({ skipDnsValidation: true });
12
11
  const feishuCustomBotProbeBadRequestCode = 9499;
13
12
  const feishuCustomBotKeywordNotFoundCode = 19024;
@@ -370,7 +369,7 @@ function requiredFeishuCustomBotObject(value, fieldName) {
370
369
  }
371
370
  function createFeishuCustomBotRequestSignal(parent) {
372
371
  const controller = new AbortController();
373
- const timeout = setTimeout(() => controller.abort(), feishuCustomBotRequestTimeoutMs);
372
+ const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
374
373
  const abortFromParent = () => controller.abort(parent?.reason);
375
374
  if (parent?.aborted) {
376
375
  controller.abort(parent.reason);
@@ -1,9 +1,8 @@
1
1
  import { compactObject, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "ffhub";
4
4
  const ffhubApiBaseUrl = "https://api.ffhub.io/v1/";
5
5
  const ffhubValidationPath = "/status";
6
- const ffhubDefaultTimeoutMs = 30_000;
7
6
  export const ffhubActionHandlers = {
8
7
  async create_ffmpeg_task(input, context) {
9
8
  const payload = await requestFfhub({
@@ -234,7 +233,7 @@ function readNullableInteger(value) {
234
233
  }
235
234
  function createFfhubRequestSignal(parent) {
236
235
  const controller = new AbortController();
237
- const timeout = setTimeout(() => controller.abort(), ffhubDefaultTimeoutMs);
236
+ const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
238
237
  const abortFromParent = () => controller.abort(parent?.reason);
239
238
  if (parent?.aborted) {
240
239
  controller.abort(parent.reason);
@@ -1,8 +1,7 @@
1
1
  import { compactObject, optionalBoolean, optionalNumber, optionalRecord, optionalString } 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 = "fidel_api";
4
4
  const fidelApiBaseUrl = "https://api.fidel.uk/v1";
5
- const fidelApiTimeoutMs = 30_000;
6
5
  export const fidelApiActionHandlers = {
7
6
  async list_brands(input, context) {
8
7
  return normalizeBrandListResponse(await requestFidelJson({
@@ -483,7 +482,7 @@ function tryParseJson(value) {
483
482
  }
484
483
  function createFidelRequestSignal(parent) {
485
484
  const controller = new AbortController();
486
- const timeout = setTimeout(() => controller.abort(), fidelApiTimeoutMs);
485
+ const timeout = setTimeout(() => controller.abort(), defaultProviderRequestTimeoutMs);
487
486
  const abortFromParent = () => controller.abort(parent?.reason);
488
487
  if (parent?.aborted) {
489
488
  controller.abort(parent.reason);
@@ -1,11 +1,10 @@
1
1
  import { compactObject, optionalInteger, optionalRawString, optionalRecord, optionalString, requiredString, } from "../../core/cast.js";
2
2
  import { assertPublicHttpUrl, storeResponseInTransit } from "../../core/request.js";
3
- import { defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderErrorTextBody, readProviderTextBody, requireApiKeyCredential, requiredInputString, } from "../provider-runtime.js";
3
+ import { defineProviderExecutors, defineProviderProxy, providerFetch, providerUserAgent, ProviderRequestError, readProviderErrorTextBody, readProviderTextBody, requireApiKeyCredential, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
4
  const service = "files_com";
5
5
  const filesComApiHostSuffix = ".files.com";
6
6
  const filesComApiPathPrefix = "/api/rest/v1";
7
7
  const filesComValidationEndpoint = "/users/me.json";
8
- const filesComDefaultRequestTimeoutMs = 30_000;
9
8
  export const filesComActionHandlers = {
10
9
  list_folder(input, context) {
11
10
  const page = optionalInteger(input.page);
@@ -346,7 +345,7 @@ function pickAccountLabel(payload) {
346
345
  return optionalString(record.username) ?? optionalString(record.name) ?? optionalString(record.email);
347
346
  }
348
347
  function composeFilesComRequestSignal(parent) {
349
- const timeout = AbortSignal.timeout(filesComDefaultRequestTimeoutMs);
348
+ const timeout = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
350
349
  return parent ? AbortSignal.any([parent, timeout]) : timeout;
351
350
  }
352
351
  function isAbortError(error) {
@@ -1,7 +1,6 @@
1
1
  import type { ProviderActionHandlers } from "../provider-runtime.ts";
2
2
  import type { ApiKeyProviderContext } from "../provider-runtime.ts";
3
3
  export declare const fireberryApiBaseUrl = "https://api.fireberry.com";
4
- export declare const fireberryDefaultRequestTimeoutMs = 30000;
5
4
  type FireberryActionContext = ApiKeyProviderContext;
6
5
  type FireberryActionHandler = (input: Record<string, unknown>, context: FireberryActionContext) => Promise<unknown>;
7
6
  export declare const fireberryActionHandlers: ProviderActionHandlers<"fireberry", FireberryActionHandler>;
@@ -1,8 +1,7 @@
1
1
  import { createHash } from "node:crypto";
2
2
  import { compactObject, optionalNumber, optionalRecord, requiredRecord } from "../../core/cast.js";
3
- import { isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString } from "../provider-runtime.js";
3
+ import { isAbortLikeError, providerUserAgent, ProviderRequestError, requiredInputString, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
4
4
  export const fireberryApiBaseUrl = "https://api.fireberry.com";
5
- export const fireberryDefaultRequestTimeoutMs = 30_000;
6
5
  export const fireberryActionHandlers = {
7
6
  async query_records(input, context) {
8
7
  const payload = await requestFireberryJson({
@@ -163,8 +162,8 @@ async function deleteFireberryRecord(objectName, input, context) {
163
162
  }
164
163
  async function requestFireberryJson(input) {
165
164
  const signal = input.signal
166
- ? AbortSignal.any([input.signal, AbortSignal.timeout(fireberryDefaultRequestTimeoutMs)])
167
- : AbortSignal.timeout(fireberryDefaultRequestTimeoutMs);
165
+ ? AbortSignal.any([input.signal, AbortSignal.timeout(defaultProviderRequestTimeoutMs)])
166
+ : AbortSignal.timeout(defaultProviderRequestTimeoutMs);
168
167
  try {
169
168
  const response = await input.fetcher(buildFireberryUrl(input.path, input.query), {
170
169
  method: input.method,
@@ -1,8 +1,7 @@
1
1
  import { compactObject, looseArray, optionalBoolean, optionalInteger, optionalRecord, optionalString, requiredRecord, } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "firehydrant";
4
4
  const firehydrantApiBaseUrl = "https://api.firehydrant.io/v1";
5
- const firehydrantRequestTimeoutMs = 30_000;
6
5
  export const firehydrantActionHandlers = {
7
6
  list_incidents(input, context) {
8
7
  return listCollection("incidents", "/incidents", input, context, normalizeIncident);
@@ -245,7 +244,7 @@ async function requestJson(input) {
245
244
  url.searchParams.set(key, value);
246
245
  }
247
246
  }
248
- const timeoutSignal = AbortSignal.timeout(firehydrantRequestTimeoutMs);
247
+ const timeoutSignal = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
249
248
  const signal = input.signal ? AbortSignal.any([input.signal, timeoutSignal]) : timeoutSignal;
250
249
  let response;
251
250
  try {
@@ -1,8 +1,7 @@
1
1
  import { compactObject, optionalInteger, optionalNumber, optionalRecord, optionalString } from "../../core/cast.js";
2
- import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, } from "../provider-runtime.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerUserAgent, ProviderRequestError, defaultProviderRequestTimeoutMs, } from "../provider-runtime.js";
3
3
  const service = "float";
4
4
  const floatApiBaseUrl = "https://api.float.com/v3";
5
- const floatDefaultRequestTimeoutMs = 30_000;
6
5
  export const floatActionHandlers = {
7
6
  async list_accounts(input, context) {
8
7
  const response = await requestFloatJson(context, {
@@ -139,7 +138,7 @@ export const credentialValidators = {
139
138
  },
140
139
  };
141
140
  async function requestFloatJson(context, input) {
142
- const timeoutSignal = AbortSignal.timeout(floatDefaultRequestTimeoutMs);
141
+ const timeoutSignal = AbortSignal.timeout(defaultProviderRequestTimeoutMs);
143
142
  const signal = context.signal ? AbortSignal.any([context.signal, timeoutSignal]) : timeoutSignal;
144
143
  try {
145
144
  const response = await context.fetcher(buildFloatUrl(input.path, input.query), {