@oomol-lab/open-connector 1.6.4 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/assets/open-connector/catalog/apps/aisa.json +6394 -0
  2. package/assets/open-connector/catalog/apps/baizhi_mcp.json +135 -0
  3. package/assets/open-connector/catalog/apps/bilibili.json +2586 -0
  4. package/assets/open-connector/catalog/apps/bitwarden.json +1423 -0
  5. package/assets/open-connector/catalog/apps/cronfree.json +303 -0
  6. package/assets/open-connector/catalog/apps/cufinder.json +368 -0
  7. package/assets/open-connector/catalog/apps/discordbot.json +2888 -248
  8. package/assets/open-connector/catalog/apps/drawio_mcp.json +192 -0
  9. package/assets/open-connector/catalog/apps/firecrawl.json +176 -32
  10. package/assets/open-connector/catalog/apps/framejet.json +273 -0
  11. package/assets/open-connector/catalog/apps/futunn.json +2967 -0
  12. package/assets/open-connector/catalog/apps/gmail.json +298 -0
  13. package/assets/open-connector/catalog/apps/google_analytics.json +4 -1
  14. package/assets/open-connector/catalog/apps/google_bigquery.json +4 -1
  15. package/assets/open-connector/catalog/apps/google_search_console.json +4 -1
  16. package/assets/open-connector/catalog/apps/googlecalendar.json +4 -1
  17. package/assets/open-connector/catalog/apps/googlechat.json +694 -7
  18. package/assets/open-connector/catalog/apps/googledocs.json +4 -1
  19. package/assets/open-connector/catalog/apps/googlesheets.json +4 -1
  20. package/assets/open-connector/catalog/apps/granola.json +23 -0
  21. package/assets/open-connector/catalog/apps/investoday_mcp.json +22228 -197
  22. package/assets/open-connector/catalog/apps/ixspy.json +2274 -0
  23. package/assets/open-connector/catalog/apps/keepa.json +3534 -987
  24. package/assets/open-connector/catalog/apps/linear.json +17 -0
  25. package/assets/open-connector/catalog/apps/linear_mcp.json +510 -0
  26. package/assets/open-connector/catalog/apps/moneyforward_mcp.json +1432 -0
  27. package/assets/open-connector/catalog/apps/notion.json +446 -1
  28. package/assets/open-connector/catalog/apps/notion_mcp.json +490 -0
  29. package/assets/open-connector/catalog/apps/odoo.json +619 -0
  30. package/assets/open-connector/catalog/apps/osv.json +663 -0
  31. package/assets/open-connector/catalog/apps/outlook.json +30 -8
  32. package/assets/open-connector/catalog/apps/outlook_calendar.json +23 -2
  33. package/assets/open-connector/catalog/apps/pdf_vector.json +329 -0
  34. package/assets/open-connector/catalog/apps/postiz.json +334 -0
  35. package/assets/open-connector/catalog/apps/proworkflow.json +529 -0
  36. package/assets/open-connector/catalog/apps/pulsetic.json +406 -0
  37. package/assets/open-connector/catalog/apps/sellersprite_mcp.json +2 -1
  38. package/assets/open-connector/catalog/apps/shopee.json +1785 -0
  39. package/assets/open-connector/catalog/apps/slack.json +304 -0
  40. package/assets/open-connector/catalog/apps/slackbot.json +295 -0
  41. package/assets/open-connector/catalog/apps/speak_ai.json +360 -0
  42. package/assets/open-connector/catalog/apps/tencent_docs.json +3 -0
  43. package/assets/open-connector/catalog/apps/wisburg.json +1528 -0
  44. package/assets/open-connector/catalog/apps/youtube.json +4 -1
  45. package/assets/open-connector/catalog/apps/zerotier.json +3319 -0
  46. package/assets/open-connector/catalog/apps/zyhub.json +1585 -0
  47. package/assets/open-connector/catalog/apps-index.json +1 -1
  48. package/package.json +1 -1
  49. package/src/core/cast.d.ts +10 -0
  50. package/src/core/cast.js +14 -0
  51. package/src/core/guarded-fetch.d.ts +6 -3
  52. package/src/core/guarded-fetch.js +6 -3
  53. package/src/core/json-schema.d.ts +5 -1
  54. package/src/core/json-schema.js +14 -2
  55. package/src/core/provider-scenarios.js +67 -13
  56. package/src/core/request.js +4 -1
  57. package/src/core/types.d.ts +10 -1
  58. package/src/mcp.js +10 -7
  59. package/src/oauth/oauth-client-config-service.d.ts +16 -1
  60. package/src/oauth/oauth-client-config-service.js +59 -3
  61. package/src/oauth/oauth-credential-refresh-service.js +3 -1
  62. package/src/oauth/oauth-flow-service.d.ts +6 -0
  63. package/src/oauth/oauth-flow-service.js +21 -4
  64. package/src/oauth/oauth-token.d.ts +13 -0
  65. package/src/providers/17track/runtime.js +1 -1
  66. package/src/providers/action-contracts.generated.d.ts +32 -8
  67. package/src/providers/aifinmarket/runtime.js +1 -1
  68. package/src/providers/aisa/executors.d.ts +4 -0
  69. package/src/providers/aisa/executors.js +864 -0
  70. package/src/providers/aliyun_ack/runtime.js +1 -1
  71. package/src/providers/aliyun_sls/runtime.js +1 -1
  72. package/src/providers/app_store_server/runtime-helpers.js +1 -1
  73. package/src/providers/baizhi_mcp/actions.d.ts +2 -0
  74. package/src/providers/baizhi_mcp/actions.js +40 -0
  75. package/src/providers/baizhi_mcp/executors.d.ts +3 -0
  76. package/src/providers/baizhi_mcp/executors.js +102 -0
  77. package/src/providers/bazhuayu/runtime.js +2 -2
  78. package/src/providers/bilibili/articles.d.ts +3 -0
  79. package/src/providers/bilibili/articles.js +369 -0
  80. package/src/providers/bilibili/executors.d.ts +8 -0
  81. package/src/providers/bilibili/executors.js +262 -0
  82. package/src/providers/bilibili/runtime.d.ts +95 -0
  83. package/src/providers/bilibili/runtime.js +236 -0
  84. package/src/providers/bilibili/upload.d.ts +14 -0
  85. package/src/providers/bilibili/upload.js +107 -0
  86. package/src/providers/bitwarden/executors.d.ts +3 -0
  87. package/src/providers/bitwarden/executors.js +146 -0
  88. package/src/providers/cloudflare_browser_rendering/executors.js +1 -1
  89. package/src/providers/cloudflare_dns/executors.js +1 -1
  90. package/src/providers/{cloudflare-current-user.js → cloudflare_dns/runtime-user.js} +2 -2
  91. package/src/providers/cloudflare_dns/runtime.d.ts +1 -1
  92. package/src/providers/cloudflare_dns/runtime.js +1 -1
  93. package/src/providers/cloudflare_r2/executors.js +1 -1
  94. package/src/providers/cloudflare_r2/runtime.d.ts +1 -1
  95. package/src/providers/cloudflare_r2/runtime.js +1 -1
  96. package/src/providers/cloudflare_worker/executors.js +1 -1
  97. package/src/providers/cloudflare_worker/runtime.d.ts +1 -1
  98. package/src/providers/cloudflare_worker/runtime.js +1 -1
  99. package/src/providers/cronfree/executors.d.ts +4 -0
  100. package/src/providers/cronfree/executors.js +89 -0
  101. package/src/providers/cufinder/executors.d.ts +4 -0
  102. package/src/providers/cufinder/executors.js +105 -0
  103. package/src/providers/dingtalk_mcp/runtime.js +1 -1
  104. package/src/providers/discordbot/executors.d.ts +0 -9
  105. package/src/providers/discordbot/executors.js +9 -101
  106. package/src/providers/discordbot/runtime-guilds.d.ts +3 -0
  107. package/src/providers/discordbot/runtime-guilds.js +464 -0
  108. package/src/providers/discordbot/runtime.d.ts +42 -0
  109. package/src/providers/discordbot/runtime.js +124 -0
  110. package/src/providers/drawio_mcp/executors.d.ts +3 -0
  111. package/src/providers/drawio_mcp/executors.js +19 -0
  112. package/src/providers/drawio_mcp/runtime.d.ts +8 -0
  113. package/src/providers/drawio_mcp/runtime.js +175 -0
  114. package/src/providers/elevenreader/runtime.js +6 -5
  115. package/src/providers/fastmoss_mcp/executors.js +2 -2
  116. package/src/providers/finchina/executors.js +1 -1
  117. package/src/providers/framejet/executors.d.ts +4 -0
  118. package/src/providers/framejet/executors.js +19 -0
  119. package/src/providers/framejet/runtime.d.ts +16 -0
  120. package/src/providers/framejet/runtime.js +148 -0
  121. package/src/providers/futunn/actions.d.ts +2 -0
  122. package/src/providers/futunn/actions.js +152 -0
  123. package/src/providers/futunn/actions.research.d.ts +2 -0
  124. package/src/providers/futunn/actions.research.js +423 -0
  125. package/src/providers/futunn/actions.trading.d.ts +2 -0
  126. package/src/providers/futunn/actions.trading.js +204 -0
  127. package/src/providers/futunn/executors.d.ts +3 -0
  128. package/src/providers/futunn/executors.js +24 -0
  129. package/src/providers/futunn/runtime-research.d.ts +3 -0
  130. package/src/providers/futunn/runtime-research.js +133 -0
  131. package/src/providers/futunn/runtime-trading.d.ts +3 -0
  132. package/src/providers/futunn/runtime-trading.js +39 -0
  133. package/src/providers/futunn/runtime.d.ts +2 -0
  134. package/src/providers/futunn/runtime.js +50 -0
  135. package/src/providers/futunn/transport.d.ts +11 -0
  136. package/src/providers/futunn/transport.js +76 -0
  137. package/src/providers/gildata/executors.js +1 -1
  138. package/src/providers/gmail/attachment-stream.d.ts +2 -0
  139. package/src/providers/gmail/attachment-stream.js +162 -0
  140. package/src/providers/gmail/executors.d.ts +3 -1
  141. package/src/providers/gmail/executors.js +54 -26
  142. package/src/providers/gmail/message.d.ts +6 -8
  143. package/src/providers/gmail/message.js +4 -0
  144. package/src/providers/gmail/scopes.d.ts +32 -0
  145. package/src/providers/gmail/scopes.js +37 -0
  146. package/src/providers/google_analytics/executors.js +2 -2
  147. package/src/providers/google_analytics/scopes.js +6 -1
  148. package/src/providers/google_bigquery/executors.js +2 -2
  149. package/src/providers/google_bigquery/scopes.js +2 -0
  150. package/src/providers/google_search_console/executors.js +2 -2
  151. package/src/providers/google_search_console/scopes.js +2 -0
  152. package/src/providers/googleads/executors.js +1 -1
  153. package/src/providers/googleads/scopes.d.ts +1 -3
  154. package/src/providers/googleads/scopes.js +2 -4
  155. package/src/providers/googlecalendar/executors.js +1 -1
  156. package/src/providers/googlecalendar/runtime-shared.js +2 -2
  157. package/src/providers/googlecalendar/scopes.js +2 -0
  158. package/src/providers/googlechat/executors.d.ts +1 -3
  159. package/src/providers/googlechat/executors.js +219 -28
  160. package/src/providers/googlechat/members.d.ts +55 -0
  161. package/src/providers/googlechat/members.js +293 -0
  162. package/src/providers/googlechat/runtime.d.ts +16 -0
  163. package/src/providers/googlechat/runtime.js +25 -0
  164. package/src/providers/googlechat/scopes.d.ts +22 -3
  165. package/src/providers/googlechat/scopes.js +30 -7
  166. package/src/providers/googledocs/executors.js +1 -1
  167. package/src/providers/googledrive/executors.js +2 -2
  168. package/src/providers/{google-auth.d.ts → googledrive/runtime-auth.d.ts} +2 -2
  169. package/src/providers/{google-auth.js → googledrive/runtime-auth.js} +3 -3
  170. package/src/providers/googledrive/runtime-collaboration.js +1 -1
  171. package/src/providers/{google-runtime.d.ts → googledrive/runtime-request.d.ts} +1 -1
  172. package/src/providers/{google-runtime.js → googledrive/runtime-request.js} +2 -2
  173. package/src/providers/googleforms/executors.js +2 -2
  174. package/src/providers/googleforms/scopes.d.ts +0 -3
  175. package/src/providers/googleforms/scopes.js +2 -6
  176. package/src/providers/googlemeet/executors.js +2 -2
  177. package/src/providers/googlemeet/scopes.d.ts +0 -3
  178. package/src/providers/googlemeet/scopes.js +2 -6
  179. package/src/providers/googlesheets/executors.js +1 -1
  180. package/src/providers/googlesheets/scopes.js +2 -0
  181. package/src/providers/googleslides/executors.js +2 -2
  182. package/src/providers/googleslides/scopes.d.ts +0 -3
  183. package/src/providers/googleslides/scopes.js +2 -6
  184. package/src/providers/googletasks/executors.js +2 -2
  185. package/src/providers/googletasks/scopes.d.ts +0 -3
  186. package/src/providers/googletasks/scopes.js +2 -6
  187. package/src/providers/granola/actions.js +2 -0
  188. package/src/providers/granola/runtime-mcp.js +2 -0
  189. package/src/providers/granola/runtime.js +2 -2
  190. package/src/providers/indiegogo/executors.js +1 -1
  191. package/src/providers/investoday_mcp/executors.js +2 -2
  192. package/src/providers/investoday_mcp/official-actions.js +19 -372
  193. package/src/providers/investoday_mcp/official-tool-types.d.ts +10 -0
  194. package/src/providers/investoday_mcp/official-tool-types.js +4 -0
  195. package/src/providers/investoday_mcp/official-tools/charts.d.ts +2 -0
  196. package/src/providers/investoday_mcp/official-tools/charts.js +32 -0
  197. package/src/providers/investoday_mcp/official-tools/fixed-income.d.ts +2 -0
  198. package/src/providers/investoday_mcp/official-tools/fixed-income.js +326 -0
  199. package/src/providers/investoday_mcp/official-tools/funds.d.ts +2 -0
  200. package/src/providers/investoday_mcp/official-tools/funds.js +1085 -0
  201. package/src/providers/investoday_mcp/official-tools/hong-kong.d.ts +2 -0
  202. package/src/providers/investoday_mcp/official-tools/hong-kong.js +275 -0
  203. package/src/providers/investoday_mcp/official-tools/indices-industries.d.ts +2 -0
  204. package/src/providers/investoday_mcp/official-tools/indices-industries.js +642 -0
  205. package/src/providers/investoday_mcp/official-tools/macro-calendar.d.ts +2 -0
  206. package/src/providers/investoday_mcp/official-tools/macro-calendar.js +398 -0
  207. package/src/providers/investoday_mcp/official-tools/other.d.ts +2 -0
  208. package/src/providers/investoday_mcp/official-tools/other.js +131 -0
  209. package/src/providers/investoday_mcp/official-tools/research-news.d.ts +2 -0
  210. package/src/providers/investoday_mcp/official-tools/research-news.js +302 -0
  211. package/src/providers/investoday_mcp/official-tools/stocks.d.ts +2 -0
  212. package/src/providers/investoday_mcp/official-tools/stocks.js +2829 -0
  213. package/src/providers/ixspy/executors.d.ts +3 -0
  214. package/src/providers/ixspy/executors.js +220 -0
  215. package/src/providers/iyunbiao/runtime.js +2 -2
  216. package/src/providers/keepa/actions.d.ts +1 -1
  217. package/src/providers/keepa/actions.js +371 -149
  218. package/src/providers/keepa/deal-attributes.d.ts +1 -0
  219. package/src/providers/keepa/deal-attributes.js +26 -0
  220. package/src/providers/keepa/runtime.js +212 -18
  221. package/src/providers/kingdee/executors.js +1 -1
  222. package/src/providers/kingdee/runtime.js +2 -2
  223. package/src/providers/kuaidi100/runtime.js +1 -1
  224. package/src/providers/linear/executors.js +12 -9
  225. package/src/providers/linear_mcp/actions.d.ts +47 -0
  226. package/src/providers/linear_mcp/actions.js +102 -0
  227. package/src/providers/linear_mcp/endpoints.d.ts +3 -0
  228. package/src/providers/linear_mcp/endpoints.js +3 -0
  229. package/src/providers/linear_mcp/executors.d.ts +3 -0
  230. package/src/providers/linear_mcp/executors.js +9 -0
  231. package/src/providers/linear_mcp/runtime-mcp.d.ts +15 -0
  232. package/src/providers/linear_mcp/runtime-mcp.js +238 -0
  233. package/src/providers/lingxing_mcp/runtime.js +1 -1
  234. package/src/providers/mcdonalds_cn_mcp/runtime.js +1 -1
  235. package/src/providers/metabase/mcp-runtime.js +1 -1
  236. package/src/providers/moneyforward_mcp/executors.d.ts +3 -0
  237. package/src/providers/moneyforward_mcp/executors.js +11 -0
  238. package/src/providers/moneyforward_mcp/manifest.d.ts +31 -0
  239. package/src/providers/moneyforward_mcp/manifest.js +204 -0
  240. package/src/providers/moneyforward_mcp/runtime.d.ts +18 -0
  241. package/src/providers/moneyforward_mcp/runtime.js +296 -0
  242. package/src/providers/notion/executors.js +39 -3
  243. package/src/providers/notion_mcp/endpoints.d.ts +3 -0
  244. package/src/providers/notion_mcp/endpoints.js +3 -0
  245. package/src/providers/notion_mcp/executors.d.ts +3 -0
  246. package/src/providers/notion_mcp/executors.js +176 -0
  247. package/src/providers/notion_mcp/mcp-response.d.ts +86 -0
  248. package/src/providers/notion_mcp/mcp-response.js +314 -0
  249. package/src/providers/odoo/executors.d.ts +3 -0
  250. package/src/providers/odoo/executors.js +32 -0
  251. package/src/providers/odoo/runtime.d.ts +16 -0
  252. package/src/providers/odoo/runtime.js +140 -0
  253. package/src/providers/osv/executors.d.ts +2 -0
  254. package/src/providers/osv/executors.js +11 -0
  255. package/src/providers/osv/runtime.d.ts +9 -0
  256. package/src/providers/osv/runtime.js +66 -0
  257. package/src/providers/outlook/executors.js +27 -6
  258. package/src/providers/outlook/microsoft-graph.js +17 -6
  259. package/src/providers/outlook_calendar/executors.js +24 -7
  260. package/src/providers/patsnap_mcp/executors.js +2 -2
  261. package/src/providers/pdf_vector/executors.d.ts +4 -0
  262. package/src/providers/pdf_vector/executors.js +108 -0
  263. package/src/providers/postiz/executors.d.ts +4 -0
  264. package/src/providers/postiz/executors.js +83 -0
  265. package/src/providers/provider-runtime.d.ts +18 -0
  266. package/src/providers/provider-runtime.js +60 -4
  267. package/src/providers/proworkflow/executors.d.ts +4 -0
  268. package/src/providers/proworkflow/executors.js +135 -0
  269. package/src/providers/pulsetic/executors.d.ts +4 -0
  270. package/src/providers/pulsetic/executors.js +126 -0
  271. package/src/providers/registry.generated.js +24 -0
  272. package/src/providers/scrape_creators/catalog.js +1 -1
  273. package/src/providers/scrape_creators/runtime.js +1 -1
  274. package/src/providers/sellersprite_mcp/executors.js +2 -2
  275. package/src/providers/sellersprite_mcp/official-actions.js +3 -2
  276. package/src/providers/sentry/runtime.js +6 -7
  277. package/src/providers/shopee/actions.d.ts +2 -0
  278. package/src/providers/shopee/actions.js +474 -0
  279. package/src/providers/shopee/executors.d.ts +3 -0
  280. package/src/providers/shopee/executors.js +85 -0
  281. package/src/providers/shopee/runtime.d.ts +79 -0
  282. package/src/providers/shopee/runtime.js +693 -0
  283. package/src/providers/slack/actions.js +69 -3
  284. package/src/providers/slack/runtime.js +116 -21
  285. package/src/providers/slickdeals/runtime.js +1 -1
  286. package/src/providers/sorftime_mcp/executors.js +2 -2
  287. package/src/providers/speak_ai/executors.d.ts +3 -0
  288. package/src/providers/speak_ai/executors.js +187 -0
  289. package/src/providers/tikhub/bounded-response.d.ts +1 -1
  290. package/src/providers/tikhub/bounded-response.js +8 -34
  291. package/src/providers/tikhub/endpoint-catalog.js +1 -1
  292. package/src/providers/tikhub/runtime.js +2 -2
  293. package/src/providers/tongdaxin/executors.js +79 -15
  294. package/src/providers/tushare/runtime.js +22 -9
  295. package/src/providers/uspto/executors.js +1 -1
  296. package/src/providers/waffo/executors.js +1 -1
  297. package/src/providers/waffo/runtime.js +1 -1
  298. package/src/providers/wecom_mcp/runtime.js +1 -1
  299. package/src/providers/wisburg/executors.d.ts +4 -0
  300. package/src/providers/wisburg/executors.js +13 -0
  301. package/src/providers/wisburg/runtime.d.ts +12 -0
  302. package/src/providers/wisburg/runtime.js +133 -0
  303. package/src/providers/xydc_mcp/executors.js +2 -2
  304. package/src/providers/youtube/executors.js +1 -1
  305. package/src/providers/youtube/runtime.js +1 -1
  306. package/src/providers/zerotier/executors.d.ts +9 -0
  307. package/src/providers/zerotier/executors.js +629 -0
  308. package/src/providers/zerotier/runtime.d.ts +54 -0
  309. package/src/providers/zerotier/runtime.js +207 -0
  310. package/src/providers/zyhub/executors.d.ts +3 -0
  311. package/src/providers/zyhub/executors.js +240 -0
  312. package/src/server/api/openapi.js +12 -2
  313. package/src/server/api/runtime-api.d.ts +8 -1
  314. package/src/server/api/runtime-api.js +19 -1
  315. package/src/server/connect-server.js +10 -2
  316. package/src/server/files/transit-files.d.ts +3 -2
  317. package/src/server/files/transit-files.js +31 -35
  318. package/src/providers/sentry/scopes.d.ts +0 -1
  319. package/src/providers/sentry/scopes.js +0 -7
  320. /package/src/providers/{cloudflare-current-user.d.ts → cloudflare_dns/runtime-user.d.ts} +0 -0
@@ -0,0 +1,126 @@
1
+ import { optionalNumber, optionalRawString, optionalRecord, optionalString } from "../../core/cast.js";
2
+ import { defineApiKeyProviderExecutors, defineProviderProxy, providerInputError, ProviderRequestError, providerResponseError, providerUserAgent, readProviderJsonBody, requiredResponseRecord, runProviderRequest, } from "../provider-runtime.js";
3
+ const service = "pulsetic";
4
+ const baseUrl = "https://api.pulsetic.com/api/public";
5
+ const handlers = {
6
+ async list_monitors(input, context) {
7
+ return {
8
+ monitors: responseArray(await request("/monitors", query({ page: input.page, per_page: input.perPage }), context, "execute"), "Pulsetic monitors response"),
9
+ };
10
+ },
11
+ async get_monitor(input, context) {
12
+ return {
13
+ monitor: requiredResponseRecord(await request(`/monitors/${monitorId(input.monitorId)}`, undefined, context, "execute"), "Pulsetic monitor response"),
14
+ };
15
+ },
16
+ list_monitor_snapshots(input, context) {
17
+ return history("snapshots", input, context);
18
+ },
19
+ list_monitor_checks(input, context) {
20
+ return history("checks", input, context);
21
+ },
22
+ list_monitor_events(input, context) {
23
+ return history("events", input, context);
24
+ },
25
+ async get_monitor_stats(input, context) {
26
+ return {
27
+ stats: requiredResponseRecord(await request(`/monitors/${monitorId(input.monitorId)}/stats`, undefined, context, "execute"), "Pulsetic monitor stats response"),
28
+ };
29
+ },
30
+ async get_monitor_downtime(input, context) {
31
+ const value = await request(`/monitors/${monitorId(input.monitorId)}/downtime`, query({ seconds: input.seconds }), context, "execute");
32
+ const downtimeSeconds = optionalNumber(value);
33
+ if (downtimeSeconds == null)
34
+ throw providerResponseError("Pulsetic monitor downtime response must be a number");
35
+ return { downtimeSeconds };
36
+ },
37
+ };
38
+ export const executors = defineApiKeyProviderExecutors(service, handlers, {
39
+ skipDnsValidation: true,
40
+ });
41
+ export const proxy = defineProviderProxy({
42
+ service,
43
+ baseUrl,
44
+ auth: { type: "api_key_header", name: "Authorization" },
45
+ skipDnsValidation: true,
46
+ });
47
+ export const credentialValidators = {
48
+ async apiKey(input, { fetcher, signal }) {
49
+ responseArray(await request("/monitors", query({ per_page: 1 }), { apiKey: input.apiKey, fetcher, signal }, "validate"), "Pulsetic monitors response");
50
+ return {
51
+ profile: { accountId: "pulsetic-api-key", displayName: "Pulsetic API Key" },
52
+ grantedScopes: [],
53
+ metadata: { apiBaseUrl: baseUrl, validationEndpoint: "/monitors?per_page=1" },
54
+ };
55
+ },
56
+ };
57
+ async function history(resource, input, context) {
58
+ const params = query({
59
+ start_dt: input.startTime,
60
+ end_dt: input.endTime,
61
+ page: resource === "snapshots" ? input.page : undefined,
62
+ per_page: resource === "snapshots" ? input.perPage : undefined,
63
+ monitor_event_type: resource === "events" ? input.eventType : undefined,
64
+ });
65
+ append(params, "nodes[]", input.nodes);
66
+ append(params, "response_codes[]", input.responseCodes);
67
+ return {
68
+ [resource]: responseArray(await request(`/monitors/${monitorId(input.monitorId)}/${resource}`, params, context, "execute"), `Pulsetic ${resource} response`),
69
+ };
70
+ }
71
+ function responseArray(value, label) {
72
+ if (!Array.isArray(value))
73
+ throw providerResponseError(`${label} must be an array`);
74
+ return value;
75
+ }
76
+ async function request(path, params, context, phase) {
77
+ return runProviderRequest({ signal: context.signal, label: "Pulsetic" }, async (signal) => {
78
+ const url = new URL(path.replace(/^\//, ""), `${baseUrl}/`);
79
+ url.search = params?.toString() ?? "";
80
+ const response = await context.fetcher(url, {
81
+ headers: { accept: "application/json", authorization: context.apiKey, "user-agent": providerUserAgent },
82
+ signal,
83
+ });
84
+ const payload = await readProviderJsonBody(response, {
85
+ emptyBody: null,
86
+ invalidJsonMessage: "Pulsetic returned invalid JSON",
87
+ invalidJsonFallback: response.ok ? undefined : (text) => text.trim(),
88
+ });
89
+ if (!response.ok)
90
+ throw error(response.status, payload, phase);
91
+ return payload;
92
+ });
93
+ }
94
+ function error(status, payload, phase) {
95
+ const record = optionalRecord(payload);
96
+ const message = optionalRawString(payload) ??
97
+ optionalString(record?.message) ??
98
+ optionalString(record?.error) ??
99
+ optionalString(record?.detail) ??
100
+ `Pulsetic request failed with status ${status}`;
101
+ if (status === 429)
102
+ return new ProviderRequestError(429, message, payload);
103
+ if (phase === "validate" && status >= 400 && status < 500)
104
+ return providerInputError(message);
105
+ if (phase === "execute" && [400, 404, 422].includes(status))
106
+ return providerInputError(message);
107
+ return new ProviderRequestError(status || 502, message, payload);
108
+ }
109
+ function query(values) {
110
+ const result = new URLSearchParams();
111
+ for (const [key, value] of Object.entries(values))
112
+ if (value != null)
113
+ result.set(key, String(value));
114
+ return result;
115
+ }
116
+ function append(query, name, value) {
117
+ if (Array.isArray(value))
118
+ for (const item of value)
119
+ query.append(name, String(item));
120
+ }
121
+ function monitorId(value) {
122
+ const id = Number(value);
123
+ if (!Number.isInteger(id) || id < 1)
124
+ throw providerInputError("monitorId must be a positive integer");
125
+ return id;
126
+ }
@@ -40,6 +40,7 @@ export const executorModules = {
40
40
  airfocus: () => import("./airfocus/executors.js"),
41
41
  airmeet: () => import("./airmeet/executors.js"),
42
42
  airtable: () => import("./airtable/executors.js"),
43
+ aisa: () => import("./aisa/executors.js"),
43
44
  aitable_ai: () => import("./aitable_ai/executors.js"),
44
45
  aivoov: () => import("./aivoov/executors.js"),
45
46
  alchemy: () => import("./alchemy/executors.js"),
@@ -119,6 +120,7 @@ export const executorModules = {
119
120
  baidu_maps: () => import("./baidu_maps/executors.js"),
120
121
  baidu_netdisk: () => import("./baidu_netdisk/executors.js"),
121
122
  baixiao: () => import("./baixiao/executors.js"),
123
+ baizhi_mcp: () => import("./baizhi_mcp/executors.js"),
122
124
  balldontlie_worldcup: () => import("./balldontlie_worldcup/executors.js"),
123
125
  bamboohr: () => import("./bamboohr/executors.js"),
124
126
  bannerbear: () => import("./bannerbear/executors.js"),
@@ -146,6 +148,7 @@ export const executorModules = {
146
148
  bigmailer: () => import("./bigmailer/executors.js"),
147
149
  bigml: () => import("./bigml/executors.js"),
148
150
  bigpicture_io: () => import("./bigpicture_io/executors.js"),
151
+ bilibili: () => import("./bilibili/executors.js"),
149
152
  bing_webmaster: () => import("./bing_webmaster/executors.js"),
150
153
  biorxiv_medrxiv: () => import("./biorxiv_medrxiv/executors.js"),
151
154
  bird: () => import("./bird/executors.js"),
@@ -153,6 +156,7 @@ export const executorModules = {
153
156
  bitly: () => import("./bitly/executors.js"),
154
157
  bitquery: () => import("./bitquery/executors.js"),
155
158
  bitrise: () => import("./bitrise/executors.js"),
159
+ bitwarden: () => import("./bitwarden/executors.js"),
156
160
  bland_ai: () => import("./bland_ai/executors.js"),
157
161
  blaze_meter_functional: () => import("./blaze_meter_functional/executors.js"),
158
162
  blaze_meter_performance: () => import("./blaze_meter_performance/executors.js"),
@@ -315,6 +319,7 @@ export const executorModules = {
315
319
  cratedb_cloud: () => import("./cratedb_cloud/executors.js"),
316
320
  credit_repair_cloud: () => import("./credit_repair_cloud/executors.js"),
317
321
  crisp: () => import("./crisp/executors.js"),
322
+ cronfree: () => import("./cronfree/executors.js"),
318
323
  cronitor: () => import("./cronitor/executors.js"),
319
324
  cronly: () => import("./cronly/executors.js"),
320
325
  crossref: () => import("./crossref/executors.js"),
@@ -323,6 +328,7 @@ export const executorModules = {
323
328
  crustdata: () => import("./crustdata/executors.js"),
324
329
  crypto_apis: () => import("./crypto_apis/executors.js"),
325
330
  cubox: () => import("./cubox/executors.js"),
331
+ cufinder: () => import("./cufinder/executors.js"),
326
332
  currencyapi: () => import("./currencyapi/executors.js"),
327
333
  currencyscoop: () => import("./currencyscoop/executors.js"),
328
334
  currents_api: () => import("./currents_api/executors.js"),
@@ -401,6 +407,7 @@ export const executorModules = {
401
407
  doubao_speech: () => import("./doubao_speech/executors.js"),
402
408
  dovetail: () => import("./dovetail/executors.js"),
403
409
  drata: () => import("./drata/executors.js"),
410
+ drawio_mcp: () => import("./drawio_mcp/executors.js"),
404
411
  drimify: () => import("./drimify/executors.js"),
405
412
  dropbox: () => import("./dropbox/executors.js"),
406
413
  dropbox_sign: () => import("./dropbox_sign/executors.js"),
@@ -505,6 +512,7 @@ export const executorModules = {
505
512
  formstack: () => import("./formstack/executors.js"),
506
513
  formstack_documents: () => import("./formstack_documents/executors.js"),
507
514
  foursquare: () => import("./foursquare/executors.js"),
515
+ framejet: () => import("./framejet/executors.js"),
508
516
  fraudlabspro: () => import("./fraudlabspro/executors.js"),
509
517
  freepik: () => import("./freepik/executors.js"),
510
518
  freshdesk: () => import("./freshdesk/executors.js"),
@@ -517,6 +525,7 @@ export const executorModules = {
517
525
  fullenrich: () => import("./fullenrich/executors.js"),
518
526
  fundzwatch: () => import("./fundzwatch/executors.js"),
519
527
  "fusion-api": () => import("./fusion-api/executors.js"),
528
+ futunn: () => import("./futunn/executors.js"),
520
529
  fuxin: () => import("./fuxin/executors.js"),
521
530
  gagelist: () => import("./gagelist/executors.js"),
522
531
  gainsight_nxt: () => import("./gainsight_nxt/executors.js"),
@@ -680,6 +689,7 @@ export const executorModules = {
680
689
  iqair_airvisual: () => import("./iqair_airvisual/executors.js"),
681
690
  it_glue: () => import("./it_glue/executors.js"),
682
691
  itunes_search: () => import("./itunes_search/executors.js"),
692
+ ixspy: () => import("./ixspy/executors.js"),
683
693
  iyunbiao: () => import("./iyunbiao/executors.js"),
684
694
  jamie: () => import("./jamie/executors.js"),
685
695
  jazzhr: () => import("./jazzhr/executors.js"),
@@ -762,6 +772,7 @@ export const executorModules = {
762
772
  lightspeed_vt: () => import("./lightspeed_vt/executors.js"),
763
773
  line: () => import("./line/executors.js"),
764
774
  linear: () => import("./linear/executors.js"),
775
+ linear_mcp: () => import("./linear_mcp/executors.js"),
765
776
  linguapop: () => import("./linguapop/executors.js"),
766
777
  lingvanex_translation_api: () => import("./lingvanex_translation_api/executors.js"),
767
778
  lingxing_mcp: () => import("./lingxing_mcp/executors.js"),
@@ -864,6 +875,7 @@ export const executorModules = {
864
875
  mojo_helpdesk: () => import("./mojo_helpdesk/executors.js"),
865
876
  momentum_io: () => import("./momentum_io/executors.js"),
866
877
  monday: () => import("./monday/executors.js"),
878
+ moneyforward_mcp: () => import("./moneyforward_mcp/executors.js"),
867
879
  mongo_db_atlas_administration: () => import("./mongo_db_atlas_administration/executors.js"),
868
880
  monica_crm: () => import("./monica_crm/executors.js"),
869
881
  moonclerk: () => import("./moonclerk/executors.js"),
@@ -913,6 +925,7 @@ export const executorModules = {
913
925
  northbeam: () => import("./northbeam/executors.js"),
914
926
  northflank: () => import("./northflank/executors.js"),
915
927
  notion: () => import("./notion/executors.js"),
928
+ notion_mcp: () => import("./notion_mcp/executors.js"),
916
929
  novu: () => import("./novu/executors.js"),
917
930
  nozbe_teams: () => import("./nozbe_teams/executors.js"),
918
931
  npm: () => import("./npm/executors.js"),
@@ -925,6 +938,7 @@ export const executorModules = {
925
938
  ocrspace: () => import("./ocrspace/executors.js"),
926
939
  octave: () => import("./octave/executors.js"),
927
940
  octopus_deploy: () => import("./octopus_deploy/executors.js"),
941
+ odoo: () => import("./odoo/executors.js"),
928
942
  oksign: () => import("./oksign/executors.js"),
929
943
  okta: () => import("./okta/executors.js"),
930
944
  omise: () => import("./omise/executors.js"),
@@ -963,6 +977,7 @@ export const executorModules = {
963
977
  orimon: () => import("./orimon/executors.js"),
964
978
  ortto: () => import("./ortto/executors.js"),
965
979
  ossinsight: () => import("./ossinsight/executors.js"),
980
+ osv: () => import("./osv/executors.js"),
966
981
  otter_ai: () => import("./otter_ai/executors.js"),
967
982
  oura: () => import("./oura/executors.js"),
968
983
  outline: () => import("./outline/executors.js"),
@@ -995,6 +1010,7 @@ export const executorModules = {
995
1010
  paystack: () => import("./paystack/executors.js"),
996
1011
  pdf_api_io: () => import("./pdf_api_io/executors.js"),
997
1012
  pdf_co: () => import("./pdf_co/executors.js"),
1013
+ pdf_vector: () => import("./pdf_vector/executors.js"),
998
1014
  pdfless: () => import("./pdfless/executors.js"),
999
1015
  pdfmonkey: () => import("./pdfmonkey/executors.js"),
1000
1016
  peec: () => import("./peec/executors.js"),
@@ -1044,6 +1060,7 @@ export const executorModules = {
1044
1060
  postgrid: () => import("./postgrid/executors.js"),
1045
1061
  postgrid_verify: () => import("./postgrid_verify/executors.js"),
1046
1062
  posthog: () => import("./posthog/executors.js"),
1063
+ postiz: () => import("./postiz/executors.js"),
1047
1064
  postman: () => import("./postman/executors.js"),
1048
1065
  postmark: () => import("./postmark/executors.js"),
1049
1066
  practitest: () => import("./practitest/executors.js"),
@@ -1064,9 +1081,11 @@ export const executorModules = {
1064
1081
  projectmanager: () => import("./projectmanager/executors.js"),
1065
1082
  promptlayer: () => import("./promptlayer/executors.js"),
1066
1083
  prospeo: () => import("./prospeo/executors.js"),
1084
+ proworkflow: () => import("./proworkflow/executors.js"),
1067
1085
  proxiedmail: () => import("./proxiedmail/executors.js"),
1068
1086
  prtg_classic: () => import("./prtg_classic/executors.js"),
1069
1087
  pubmed: () => import("./pubmed/executors.js"),
1088
+ pulsetic: () => import("./pulsetic/executors.js"),
1070
1089
  push_by_techulus: () => import("./push_by_techulus/executors.js"),
1071
1090
  pushbullet: () => import("./pushbullet/executors.js"),
1072
1091
  pushover: () => import("./pushover/executors.js"),
@@ -1206,6 +1225,7 @@ export const executorModules = {
1206
1225
  shipengine: () => import("./shipengine/executors.js"),
1207
1226
  shippo: () => import("./shippo/executors.js"),
1208
1227
  shodan: () => import("./shodan/executors.js"),
1228
+ shopee: () => import("./shopee/executors.js"),
1209
1229
  shopify: () => import("./shopify/executors.js"),
1210
1230
  shopify_admin: () => import("./shopify_admin/executors.js"),
1211
1231
  shopify_partner: () => import("./shopify_partner/executors.js"),
@@ -1254,6 +1274,7 @@ export const executorModules = {
1254
1274
  sonarcloud: () => import("./sonarcloud/executors.js"),
1255
1275
  sorftime: () => import("./sorftime/executors.js"),
1256
1276
  sorftime_mcp: () => import("./sorftime_mcp/executors.js"),
1277
+ speak_ai: () => import("./speak_ai/executors.js"),
1257
1278
  speechmatics: () => import("./speechmatics/executors.js"),
1258
1279
  speedtest_tracker: () => import("./speedtest_tracker/executors.js"),
1259
1280
  spider: () => import("./spider/executors.js"),
@@ -1483,6 +1504,7 @@ export const executorModules = {
1483
1504
  whop: () => import("./whop/executors.js"),
1484
1505
  winston_ai: () => import("./winston_ai/executors.js"),
1485
1506
  wire2air: () => import("./wire2air/executors.js"),
1507
+ wisburg: () => import("./wisburg/executors.js"),
1486
1508
  wise: () => import("./wise/executors.js"),
1487
1509
  wit_ai: () => import("./wit_ai/executors.js"),
1488
1510
  wiza: () => import("./wiza/executors.js"),
@@ -1531,6 +1553,7 @@ export const executorModules = {
1531
1553
  zep: () => import("./zep/executors.js"),
1532
1554
  zeplin: () => import("./zeplin/executors.js"),
1533
1555
  zerobounce: () => import("./zerobounce/executors.js"),
1556
+ zerotier: () => import("./zerotier/executors.js"),
1534
1557
  zhihu: () => import("./zhihu/executors.js"),
1535
1558
  zigpoll: () => import("./zigpoll/executors.js"),
1536
1559
  zip_archive_api: () => import("./zip_archive_api/executors.js"),
@@ -1540,6 +1563,7 @@ export const executorModules = {
1540
1563
  zoom: () => import("./zoom/executors.js"),
1541
1564
  zorus: () => import("./zorus/executors.js"),
1542
1565
  zotero: () => import("./zotero/executors.js"),
1566
+ zyhub: () => import("./zyhub/executors.js"),
1543
1567
  zylvie: () => import("./zylvie/executors.js"),
1544
1568
  zyte_api: () => import("./zyte_api/executors.js"),
1545
1569
  };
@@ -111,7 +111,7 @@ async function fetchOpenApi(fetcher) {
111
111
  try {
112
112
  const response = await fetcher(openApiUrl, {
113
113
  headers: { accept: "application/json" },
114
- redirect: "error",
114
+ redirect: "manual",
115
115
  signal: timeout.signal,
116
116
  });
117
117
  if (!response.ok)
@@ -95,7 +95,7 @@ async function requestJson(method, path, query, body, apiKey, fetcher, phase, pa
95
95
  method,
96
96
  headers,
97
97
  body: serializedBody,
98
- redirect: "error",
98
+ redirect: "manual",
99
99
  signal: timeout.signal,
100
100
  });
101
101
  const text = await readBoundedResponseText(response, responseMaxBytes, "Scrape Creators response");
@@ -15,7 +15,7 @@ const handlers = mapProviderActionHandlers(service, sellerspriteMcpActions, (_ac
15
15
  if (name === "call_tool") {
16
16
  return (input, context) => call(context, required(input.toolName, "toolName"), object(input.arguments));
17
17
  }
18
- return (input, context) => call(context, name, input);
18
+ return (input, context) => call(context, name, name === "traffic_extend" ? { ...input, queryType: input.queryType ?? 2 } : input);
19
19
  });
20
20
  export const executors = defineApiKeyProviderExecutors(service, handlers, {
21
21
  skipDnsValidation: true,
@@ -39,7 +39,7 @@ export const proxy = defineProviderProxy({
39
39
  auth: { type: "api_key_header", name: "secret-key" },
40
40
  skipDnsValidation: true,
41
41
  timeoutMs,
42
- redirect: "error",
42
+ redirect: "manual",
43
43
  customizeRequest({ url, headers }) {
44
44
  if (url.toString() !== endpoint) {
45
45
  throw new ProviderRequestError(400, "SellerSprite MCP proxy only supports the official /mcp endpoint");
@@ -705,7 +705,7 @@ const parameterDescriptionByToolAndName = {
705
705
  "keyword_miner.filterRootWord": "Root-word filter: 0 includes all keywords and 1 includes only root-word matches.",
706
706
  "keyword_miner.matchType": "Keyword match type: 2 for broad or 3 for phrase.",
707
707
  "traffic_extend.asinList": "Amazon ASINs to query, with at most 20 values.",
708
- "traffic_extend.queryType": "Variation query mode: 0 for all variations, 1 for the best-selling variation, or 2 for the current variation.",
708
+ "traffic_extend.queryType": "Variation query mode: 0 for all variations, 1 for the best-selling variation, or 2 for the current variation; defaults to 2.",
709
709
  "aba_research_weekly.searchModel": "Search model from 1 through 6: popular, changing, sustained growth, rapid growth, potential, or long-tail market.",
710
710
  "aba_research_monthly.searchModel": "Search model from 1 through 6: popular, changing, sustained growth, rapid growth, potential, or long-tail market.",
711
711
  "keyword_order.asins": "Amazon ASINs to query, with at most 20 values.",
@@ -788,7 +788,8 @@ function officialParameterSchema(toolName, name, type) {
788
788
  }
789
789
  const integerValues = integerValuesByToolAndParameter[parameterKey];
790
790
  if (type === "integer" && integerValues) {
791
- return { type: "integer", enum: integerValues, description };
791
+ const schema = { type: "integer", enum: integerValues, description };
792
+ return parameterKey === "traffic_extend.queryType" ? s.withDefault(schema, 2) : schema;
792
793
  }
793
794
  const stringValues = stringValuesByToolAndParameter[parameterKey];
794
795
  if (type === "string" && stringValues) {
@@ -1,8 +1,6 @@
1
- import { compactObject, looseArray, optionalRawString, rawStringOrNull } from "../../core/cast.js";
1
+ import { compactObject, looseArray, optionalRawString, optionalStringArray, rawStringOrNull } from "../../core/cast.js";
2
2
  import { ProviderRequestError } from "../provider-runtime.js";
3
- import { sentryProviderScopes } from "./scopes.js";
4
3
  export const sentryApiBaseUrl = "https://sentry.io/api/0/";
5
- const sentryCurrentUserUrl = `${sentryApiBaseUrl}users/me/`;
6
4
  export const sentryActionHandlers = {
7
5
  list_organization_integrations(input, context) {
8
6
  return sentryListOrganizationIntegrations(input, context.accessToken, context.fetcher);
@@ -63,8 +61,9 @@ export const sentryActionHandlers = {
63
61
  },
64
62
  };
65
63
  export async function validateSentryCredential(accessToken, fetcher) {
66
- const { payload } = await requestSentryJson(accessToken, sentryCurrentUserUrl, fetcher, {}, "validate");
67
- const user = asRecord(payload);
64
+ const { payload } = await requestSentryJson(accessToken, sentryApiBaseUrl, fetcher, {}, "validate");
65
+ const payloadRecord = asRecord(payload);
66
+ const user = asRecord(payloadRecord?.user);
68
67
  if (!user) {
69
68
  throw new ProviderRequestError(502, "sentry current user payload is invalid");
70
69
  }
@@ -78,9 +77,9 @@ export async function validateSentryCredential(accessToken, fetcher) {
78
77
  accountId: userId,
79
78
  displayName,
80
79
  },
81
- grantedScopes: sentryProviderScopes,
80
+ grantedScopes: optionalStringArray(asRecord(payloadRecord?.auth)?.scopes) ?? [],
82
81
  metadata: compactObject({
83
- validationEndpoint: "/users/me/",
82
+ validationEndpoint: "/",
84
83
  userId,
85
84
  username: optionalRawString(user.username),
86
85
  email: optionalRawString(user.email),
@@ -0,0 +1,2 @@
1
+ import type { ActionDefinition } from "../../core/types.ts";
2
+ export declare const shopeeActions: ActionDefinition[];