@oomol-lab/open-connector 1.9.1 → 1.9.2

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 (461) hide show
  1. package/assets/open-connector/catalog/apps/aisa.json +1946 -56
  2. package/assets/open-connector/catalog/apps/akta.json +1181 -0
  3. package/assets/open-connector/catalog/apps/asana.json +110 -0
  4. package/assets/open-connector/catalog/apps/calendly.json +103 -0
  5. package/assets/open-connector/catalog/apps/clickup.json +104 -0
  6. package/assets/open-connector/catalog/apps/cloro.json +9289 -0
  7. package/assets/open-connector/catalog/apps/contextdev.json +20670 -0
  8. package/assets/open-connector/catalog/apps/deepseek.json +177 -0
  9. package/assets/open-connector/catalog/apps/defillama.json +23747 -0
  10. package/assets/open-connector/catalog/apps/fireflies.json +103 -0
  11. package/assets/open-connector/catalog/apps/fundable.json +7926 -0
  12. package/assets/open-connector/catalog/apps/intercom.json +110 -0
  13. package/assets/open-connector/catalog/apps/jira.json +110 -0
  14. package/assets/open-connector/catalog/apps/keenable.json +235 -0
  15. package/assets/open-connector/catalog/apps/kolsprite_mcp.json +1227 -0
  16. package/assets/open-connector/catalog/apps/litescrape.json +52514 -0
  17. package/assets/open-connector/catalog/apps/magichour.json +5926 -0
  18. package/assets/open-connector/catalog/apps/minimax.json +24 -14
  19. package/assets/open-connector/catalog/apps/notion.json +731 -76
  20. package/assets/open-connector/catalog/apps/octen.json +5248 -0
  21. package/assets/open-connector/catalog/apps/openrouter.json +10 -0
  22. package/assets/open-connector/catalog/apps/orbit.json +3574 -0
  23. package/assets/open-connector/catalog/apps/pandadoc.json +68 -0
  24. package/assets/open-connector/catalog/apps/pipedrive.json +86 -0
  25. package/assets/open-connector/catalog/apps/ploid.json +9802 -0
  26. package/assets/open-connector/catalog/apps/resend.json +100 -0
  27. package/assets/open-connector/catalog/apps/salesforce.json +2487 -119
  28. package/assets/open-connector/catalog/apps/saperly.json +7056 -0
  29. package/assets/open-connector/catalog/apps/search1api.json +2382 -0
  30. package/assets/open-connector/catalog/apps/sentry.json +129 -0
  31. package/assets/open-connector/catalog/apps/slackbot.json +230 -1
  32. package/assets/open-connector/catalog/apps/surf.json +11378 -0
  33. package/assets/open-connector/catalog/apps/tally.json +113 -0
  34. package/assets/open-connector/catalog/apps/tinyfish.json +6154 -0
  35. package/assets/open-connector/catalog/apps/typeform.json +90 -1
  36. package/assets/open-connector/catalog/apps/vaquill.json +5944 -0
  37. package/assets/open-connector/catalog/apps/vercel.json +110 -0
  38. package/assets/open-connector/catalog/apps/weixin_store.json +1256 -7
  39. package/assets/open-connector/catalog/apps/zoom.json +112 -0
  40. package/assets/open-connector/catalog/apps-index.json +1 -1
  41. package/package.json +1 -1
  42. package/src/core/json-schema.d.ts +11 -3
  43. package/src/core/json-schema.js +13 -3
  44. package/src/providers/action-contracts.generated.d.ts +23 -6
  45. package/src/providers/aisa/executors.js +238 -6
  46. package/src/providers/aisa/firecrawl-actions.d.ts +9 -0
  47. package/src/providers/aisa/firecrawl-actions.js +115 -0
  48. package/src/providers/akta/actions.d.ts +9 -0
  49. package/src/providers/akta/actions.js +420 -0
  50. package/src/providers/akta/executors.d.ts +4 -0
  51. package/src/providers/akta/executors.js +103 -0
  52. package/src/providers/asana/executors.d.ts +2 -0
  53. package/src/providers/asana/executors.js +2 -0
  54. package/src/providers/asana/trigger-on-task-event.d.ts +2 -0
  55. package/src/providers/asana/trigger-on-task-event.definition.d.ts +4 -0
  56. package/src/providers/asana/trigger-on-task-event.definition.js +42 -0
  57. package/src/providers/asana/trigger-on-task-event.js +160 -0
  58. package/src/providers/calendly/executors.d.ts +2 -0
  59. package/src/providers/calendly/executors.js +2 -0
  60. package/src/providers/calendly/trigger-on-booking-event.d.ts +2 -0
  61. package/src/providers/calendly/trigger-on-booking-event.definition.d.ts +5 -0
  62. package/src/providers/calendly/trigger-on-booking-event.definition.js +42 -0
  63. package/src/providers/calendly/trigger-on-booking-event.js +144 -0
  64. package/src/providers/clickup/executors.d.ts +2 -0
  65. package/src/providers/clickup/executors.js +2 -0
  66. package/src/providers/clickup/trigger-on-task-event.d.ts +2 -0
  67. package/src/providers/clickup/trigger-on-task-event.definition.d.ts +4 -0
  68. package/src/providers/clickup/trigger-on-task-event.definition.js +41 -0
  69. package/src/providers/clickup/trigger-on-task-event.js +94 -0
  70. package/src/providers/cloro/actions.d.ts +12 -0
  71. package/src/providers/cloro/actions.js +155 -0
  72. package/src/providers/cloro/executors.d.ts +4 -0
  73. package/src/providers/cloro/executors.js +67 -0
  74. package/src/providers/cloro/inputs.d.ts +10 -0
  75. package/src/providers/cloro/inputs.js +680 -0
  76. package/src/providers/contextdev/actions.d.ts +14 -0
  77. package/src/providers/contextdev/actions.js +647 -0
  78. package/src/providers/contextdev/executors.d.ts +4 -0
  79. package/src/providers/contextdev/executors.js +109 -0
  80. package/src/providers/contextdev/files.d.ts +3 -0
  81. package/src/providers/contextdev/files.js +49 -0
  82. package/src/providers/contextdev/input-schemas.d.ts +49 -0
  83. package/src/providers/contextdev/input-schemas.js +3082 -0
  84. package/src/providers/contextdev/output-schemas.d.ts +49 -0
  85. package/src/providers/contextdev/output-schemas.js +1599 -0
  86. package/src/providers/deepseek/executors.d.ts +0 -5
  87. package/src/providers/deepseek/executors.js +38 -25
  88. package/src/providers/defillama/actions.d.ts +24 -0
  89. package/src/providers/defillama/actions.js +24 -0
  90. package/src/providers/defillama/dimensions-definitions.d.ts +2 -0
  91. package/src/providers/defillama/dimensions-definitions.js +1387 -0
  92. package/src/providers/defillama/ecosystem-definitions.d.ts +2 -0
  93. package/src/providers/defillama/ecosystem-definitions.js +758 -0
  94. package/src/providers/defillama/equities-definitions.d.ts +2 -0
  95. package/src/providers/defillama/equities-definitions.js +733 -0
  96. package/src/providers/defillama/executors.d.ts +4 -0
  97. package/src/providers/defillama/executors.js +196 -0
  98. package/src/providers/defillama/markets-definitions.d.ts +2 -0
  99. package/src/providers/defillama/markets-definitions.js +624 -0
  100. package/src/providers/defillama/shared-schemas.d.ts +71 -0
  101. package/src/providers/defillama/shared-schemas.js +157 -0
  102. package/src/providers/defillama/tvl-definitions.d.ts +2 -0
  103. package/src/providers/defillama/tvl-definitions.js +546 -0
  104. package/src/providers/defillama/yields-definitions.d.ts +2 -0
  105. package/src/providers/defillama/yields-definitions.js +766 -0
  106. package/src/providers/feishu_app_bot/trigger-on-event.js +2 -0
  107. package/src/providers/fireflies/executors.d.ts +2 -0
  108. package/src/providers/fireflies/executors.js +2 -0
  109. package/src/providers/fireflies/trigger-on-meeting-ready.d.ts +2 -0
  110. package/src/providers/fireflies/trigger-on-meeting-ready.definition.d.ts +4 -0
  111. package/src/providers/fireflies/trigger-on-meeting-ready.definition.js +44 -0
  112. package/src/providers/fireflies/trigger-on-meeting-ready.js +60 -0
  113. package/src/providers/fundable/actions.d.ts +8 -0
  114. package/src/providers/fundable/actions.js +1515 -0
  115. package/src/providers/fundable/executors.d.ts +4 -0
  116. package/src/providers/fundable/executors.js +74 -0
  117. package/src/providers/gmail/message.d.ts +1 -6
  118. package/src/providers/gmail/message.js +1 -1
  119. package/src/providers/intercom/executors.d.ts +2 -0
  120. package/src/providers/intercom/executors.js +2 -0
  121. package/src/providers/intercom/trigger-on-conversation-event.d.ts +2 -0
  122. package/src/providers/intercom/trigger-on-conversation-event.definition.d.ts +4 -0
  123. package/src/providers/intercom/trigger-on-conversation-event.definition.js +42 -0
  124. package/src/providers/intercom/trigger-on-conversation-event.js +23 -0
  125. package/src/providers/jira/executors.d.ts +2 -0
  126. package/src/providers/jira/executors.js +2 -0
  127. package/src/providers/jira/trigger-on-issue-event.d.ts +2 -0
  128. package/src/providers/jira/trigger-on-issue-event.definition.d.ts +4 -0
  129. package/src/providers/jira/trigger-on-issue-event.definition.js +44 -0
  130. package/src/providers/jira/trigger-on-issue-event.js +116 -0
  131. package/src/providers/jira/trigger-resource.d.ts +4 -0
  132. package/src/providers/jira/trigger-resource.js +141 -0
  133. package/src/providers/keenable/executors.d.ts +4 -0
  134. package/src/providers/keenable/executors.js +20 -0
  135. package/src/providers/keenable/runtime.d.ts +26 -0
  136. package/src/providers/keenable/runtime.js +89 -0
  137. package/src/providers/kolsprite_mcp/actions.d.ts +2 -0
  138. package/src/providers/kolsprite_mcp/actions.js +519 -0
  139. package/src/providers/kolsprite_mcp/executors.d.ts +4 -0
  140. package/src/providers/kolsprite_mcp/executors.js +89 -0
  141. package/src/providers/litescrape/actions.d.ts +12 -0
  142. package/src/providers/litescrape/actions.js +124 -0
  143. package/src/providers/litescrape/airbnb-schemas.d.ts +2 -0
  144. package/src/providers/litescrape/airbnb-schemas.js +72 -0
  145. package/src/providers/litescrape/aliexpress-schemas.d.ts +2 -0
  146. package/src/providers/litescrape/aliexpress-schemas.js +52 -0
  147. package/src/providers/litescrape/amazon-schemas.d.ts +2 -0
  148. package/src/providers/litescrape/amazon-schemas.js +358 -0
  149. package/src/providers/litescrape/apartments-schemas.d.ts +2 -0
  150. package/src/providers/litescrape/apartments-schemas.js +45 -0
  151. package/src/providers/litescrape/apple-schemas.d.ts +2 -0
  152. package/src/providers/litescrape/apple-schemas.js +215 -0
  153. package/src/providers/litescrape/ashby-schemas.d.ts +2 -0
  154. package/src/providers/litescrape/ashby-schemas.js +82 -0
  155. package/src/providers/litescrape/baidu-schemas.d.ts +2 -0
  156. package/src/providers/litescrape/baidu-schemas.js +31 -0
  157. package/src/providers/litescrape/bestbuy-schemas.d.ts +2 -0
  158. package/src/providers/litescrape/bestbuy-schemas.js +56 -0
  159. package/src/providers/litescrape/bing-schemas.d.ts +2 -0
  160. package/src/providers/litescrape/bing-schemas.js +315 -0
  161. package/src/providers/litescrape/brave-schemas.d.ts +2 -0
  162. package/src/providers/litescrape/brave-schemas.js +101 -0
  163. package/src/providers/litescrape/copilot-schemas.d.ts +2 -0
  164. package/src/providers/litescrape/copilot-schemas.js +590 -0
  165. package/src/providers/litescrape/duckduckgo-schemas.d.ts +2 -0
  166. package/src/providers/litescrape/duckduckgo-schemas.js +64 -0
  167. package/src/providers/litescrape/ebay-schemas.d.ts +2 -0
  168. package/src/providers/litescrape/ebay-schemas.js +300 -0
  169. package/src/providers/litescrape/etsy-schemas.d.ts +2 -0
  170. package/src/providers/litescrape/etsy-schemas.js +52 -0
  171. package/src/providers/litescrape/eventbrite-schemas.d.ts +2 -0
  172. package/src/providers/litescrape/eventbrite-schemas.js +43 -0
  173. package/src/providers/litescrape/executors.d.ts +4 -0
  174. package/src/providers/litescrape/executors.js +138 -0
  175. package/src/providers/litescrape/facebook-schemas.d.ts +2 -0
  176. package/src/providers/litescrape/facebook-schemas.js +283 -0
  177. package/src/providers/litescrape/glassdoor-schemas.d.ts +2 -0
  178. package/src/providers/litescrape/glassdoor-schemas.js +147 -0
  179. package/src/providers/litescrape/google-schemas.d.ts +2 -0
  180. package/src/providers/litescrape/google-schemas.js +1686 -0
  181. package/src/providers/litescrape/homedepot-schemas.d.ts +2 -0
  182. package/src/providers/litescrape/homedepot-schemas.js +58 -0
  183. package/src/providers/litescrape/homes-schemas.d.ts +2 -0
  184. package/src/providers/litescrape/homes-schemas.js +45 -0
  185. package/src/providers/litescrape/ikea-schemas.d.ts +2 -0
  186. package/src/providers/litescrape/ikea-schemas.js +56 -0
  187. package/src/providers/litescrape/indeed-schemas.d.ts +2 -0
  188. package/src/providers/litescrape/indeed-schemas.js +141 -0
  189. package/src/providers/litescrape/instagram-schemas.d.ts +2 -0
  190. package/src/providers/litescrape/instagram-schemas.js +234 -0
  191. package/src/providers/litescrape/kroger-schemas.d.ts +2 -0
  192. package/src/providers/litescrape/kroger-schemas.js +62 -0
  193. package/src/providers/litescrape/levels-schemas.d.ts +2 -0
  194. package/src/providers/litescrape/levels-schemas.js +153 -0
  195. package/src/providers/litescrape/naver-schemas.d.ts +2 -0
  196. package/src/providers/litescrape/naver-schemas.js +107 -0
  197. package/src/providers/litescrape/realtor-schemas.d.ts +2 -0
  198. package/src/providers/litescrape/realtor-schemas.js +47 -0
  199. package/src/providers/litescrape/redfin-schemas.d.ts +2 -0
  200. package/src/providers/litescrape/redfin-schemas.js +112 -0
  201. package/src/providers/litescrape/shared.d.ts +9 -0
  202. package/src/providers/litescrape/shared.js +1 -0
  203. package/src/providers/litescrape/sprouts-schemas.d.ts +2 -0
  204. package/src/providers/litescrape/sprouts-schemas.js +72 -0
  205. package/src/providers/litescrape/target-schemas.d.ts +2 -0
  206. package/src/providers/litescrape/target-schemas.js +56 -0
  207. package/src/providers/litescrape/tiktok-schemas.d.ts +2 -0
  208. package/src/providers/litescrape/tiktok-schemas.js +625 -0
  209. package/src/providers/litescrape/tools.d.ts +2 -0
  210. package/src/providers/litescrape/tools.js +88 -0
  211. package/src/providers/litescrape/tripadvisor-schemas.d.ts +2 -0
  212. package/src/providers/litescrape/tripadvisor-schemas.js +119 -0
  213. package/src/providers/litescrape/walmart-schemas.d.ts +2 -0
  214. package/src/providers/litescrape/walmart-schemas.js +52 -0
  215. package/src/providers/litescrape/wayfair-schemas.d.ts +2 -0
  216. package/src/providers/litescrape/wayfair-schemas.js +52 -0
  217. package/src/providers/litescrape/web-schemas.d.ts +2 -0
  218. package/src/providers/litescrape/web-schemas.js +463 -0
  219. package/src/providers/litescrape/wholefoods-schemas.d.ts +2 -0
  220. package/src/providers/litescrape/wholefoods-schemas.js +56 -0
  221. package/src/providers/litescrape/x-schemas.d.ts +2 -0
  222. package/src/providers/litescrape/x-schemas.js +128 -0
  223. package/src/providers/litescrape/yahoo-schemas.d.ts +2 -0
  224. package/src/providers/litescrape/yahoo-schemas.js +234 -0
  225. package/src/providers/litescrape/yandex-schemas.d.ts +2 -0
  226. package/src/providers/litescrape/yandex-schemas.js +179 -0
  227. package/src/providers/litescrape/yelp-schemas.d.ts +2 -0
  228. package/src/providers/litescrape/yelp-schemas.js +130 -0
  229. package/src/providers/litescrape/youtube-schemas.d.ts +2 -0
  230. package/src/providers/litescrape/youtube-schemas.js +128 -0
  231. package/src/providers/litescrape/zillow-schemas.d.ts +2 -0
  232. package/src/providers/litescrape/zillow-schemas.js +128 -0
  233. package/src/providers/litescrape/ziprecruiter-schemas.d.ts +2 -0
  234. package/src/providers/litescrape/ziprecruiter-schemas.js +96 -0
  235. package/src/providers/magichour/actions.d.ts +22 -0
  236. package/src/providers/magichour/actions.js +308 -0
  237. package/src/providers/magichour/audio-schemas.d.ts +2 -0
  238. package/src/providers/magichour/audio-schemas.js +54 -0
  239. package/src/providers/magichour/executors.d.ts +4 -0
  240. package/src/providers/magichour/executors.js +115 -0
  241. package/src/providers/magichour/image-schemas.d.ts +2 -0
  242. package/src/providers/magichour/image-schemas.js +443 -0
  243. package/src/providers/magichour/project-schemas.d.ts +8 -0
  244. package/src/providers/magichour/project-schemas.js +65 -0
  245. package/src/providers/magichour/shared-schemas.d.ts +8 -0
  246. package/src/providers/magichour/shared-schemas.js +18 -0
  247. package/src/providers/magichour/utility-schemas.d.ts +11 -0
  248. package/src/providers/magichour/utility-schemas.js +150 -0
  249. package/src/providers/magichour/video-schemas.d.ts +2 -0
  250. package/src/providers/magichour/video-schemas.js +629 -0
  251. package/src/providers/magichour/voices.d.ts +1 -0
  252. package/src/providers/magichour/voices.js +1268 -0
  253. package/src/providers/minimax/executors.js +19 -4
  254. package/src/providers/minimax/text-models.d.ts +2 -0
  255. package/src/providers/minimax/text-models.js +34 -0
  256. package/src/providers/moneyforward_mcp/manifest.d.ts +0 -2
  257. package/src/providers/moneyforward_mcp/manifest.js +1 -1
  258. package/src/providers/notion/executors.js +36 -3
  259. package/src/providers/octen/actions.d.ts +6 -0
  260. package/src/providers/octen/actions.js +919 -0
  261. package/src/providers/octen/executors.d.ts +4 -0
  262. package/src/providers/octen/executors.js +125 -0
  263. package/src/providers/octen/inputs.d.ts +2 -0
  264. package/src/providers/octen/inputs.js +2434 -0
  265. package/src/providers/octen/research.d.ts +1 -0
  266. package/src/providers/octen/research.js +86 -0
  267. package/src/providers/openrouter/executors.js +7 -4
  268. package/src/providers/orbit/actions.d.ts +2 -0
  269. package/src/providers/orbit/actions.js +3030 -0
  270. package/src/providers/orbit/executors.d.ts +4 -0
  271. package/src/providers/orbit/executors.js +106 -0
  272. package/src/providers/orbit/routes.d.ts +9 -0
  273. package/src/providers/orbit/routes.js +170 -0
  274. package/src/providers/pandadoc/executors.d.ts +2 -0
  275. package/src/providers/pandadoc/executors.js +2 -0
  276. package/src/providers/pandadoc/trigger-on-document-event.d.ts +2 -0
  277. package/src/providers/pandadoc/trigger-on-document-event.definition.d.ts +4 -0
  278. package/src/providers/pandadoc/trigger-on-document-event.definition.js +33 -0
  279. package/src/providers/pandadoc/trigger-on-document-event.js +96 -0
  280. package/src/providers/pipedrive/executors.d.ts +2 -0
  281. package/src/providers/pipedrive/executors.js +2 -0
  282. package/src/providers/pipedrive/trigger-on-crm-event.d.ts +2 -0
  283. package/src/providers/pipedrive/trigger-on-crm-event.definition.d.ts +4 -0
  284. package/src/providers/pipedrive/trigger-on-crm-event.definition.js +30 -0
  285. package/src/providers/pipedrive/trigger-on-crm-event.js +101 -0
  286. package/src/providers/ploid/actions.d.ts +16 -0
  287. package/src/providers/ploid/actions.js +23 -0
  288. package/src/providers/ploid/endpoints.json +8440 -0
  289. package/src/providers/ploid/executors.d.ts +4 -0
  290. package/src/providers/ploid/executors.js +119 -0
  291. package/src/providers/provider-runtime.d.ts +13 -0
  292. package/src/providers/provider-runtime.js +37 -4
  293. package/src/providers/registry.generated.js +17 -0
  294. package/src/providers/resend/executors.d.ts +2 -0
  295. package/src/providers/resend/executors.js +2 -0
  296. package/src/providers/resend/trigger-on-email-event.d.ts +2 -0
  297. package/src/providers/resend/trigger-on-email-event.definition.d.ts +4 -0
  298. package/src/providers/resend/trigger-on-email-event.definition.js +37 -0
  299. package/src/providers/resend/trigger-on-email-event.js +125 -0
  300. package/src/providers/salesforce/chatter-routes.d.ts +107 -0
  301. package/src/providers/salesforce/chatter-routes.js +140 -0
  302. package/src/providers/salesforce/context.d.ts +2 -2
  303. package/src/providers/salesforce/context.js +7 -4
  304. package/src/providers/salesforce/executors.js +10 -0
  305. package/src/providers/salesforce/runtime-approvals.d.ts +2 -0
  306. package/src/providers/salesforce/runtime-approvals.js +52 -0
  307. package/src/providers/salesforce/runtime-base.js +14 -3
  308. package/src/providers/salesforce/runtime-chatter.d.ts +2 -0
  309. package/src/providers/salesforce/runtime-chatter.js +78 -0
  310. package/src/providers/salesforce/runtime-knowledge.d.ts +2 -0
  311. package/src/providers/salesforce/runtime-knowledge.js +34 -0
  312. package/src/providers/salesforce/runtime-leads.d.ts +2 -0
  313. package/src/providers/salesforce/runtime-leads.js +117 -0
  314. package/src/providers/salesforce/runtime-platform.d.ts +2 -0
  315. package/src/providers/salesforce/runtime-platform.js +67 -0
  316. package/src/providers/saperly/actions.d.ts +17 -0
  317. package/src/providers/saperly/actions.js +869 -0
  318. package/src/providers/saperly/executors.d.ts +4 -0
  319. package/src/providers/saperly/executors.js +113 -0
  320. package/src/providers/saperly/schemas.d.ts +33 -0
  321. package/src/providers/saperly/schemas.js +601 -0
  322. package/src/providers/search1api/actions.d.ts +2 -0
  323. package/src/providers/search1api/actions.js +39 -0
  324. package/src/providers/search1api/executors.d.ts +4 -0
  325. package/src/providers/search1api/executors.js +72 -0
  326. package/src/providers/search1api/runtime.d.ts +3 -0
  327. package/src/providers/search1api/runtime.js +44 -0
  328. package/src/providers/search1api/schemas.d.ts +3 -0
  329. package/src/providers/search1api/schemas.js +1834 -0
  330. package/src/providers/sentry/executors.d.ts +2 -0
  331. package/src/providers/sentry/executors.js +2 -0
  332. package/src/providers/sentry/trigger-on-issue-alert.d.ts +2 -0
  333. package/src/providers/sentry/trigger-on-issue-alert.definition.d.ts +4 -0
  334. package/src/providers/sentry/trigger-on-issue-alert.definition.js +64 -0
  335. package/src/providers/sentry/trigger-on-issue-alert.js +80 -0
  336. package/src/providers/sf_express/runtime.d.ts +0 -16
  337. package/src/providers/sf_express/runtime.js +2 -2
  338. package/src/providers/slack/runtime.d.ts +6 -1
  339. package/src/providers/slack/runtime.js +21 -0
  340. package/src/providers/slackbot/actions.js +17 -1
  341. package/src/providers/slackbot/executors.d.ts +2 -0
  342. package/src/providers/slackbot/executors.js +5 -1
  343. package/src/providers/slackbot/trigger-on-event.d.ts +2 -0
  344. package/src/providers/slackbot/trigger-on-event.definition.d.ts +4 -0
  345. package/src/providers/slackbot/trigger-on-event.definition.js +57 -0
  346. package/src/providers/slackbot/trigger-on-event.js +23 -0
  347. package/src/providers/surf/actions.d.ts +21 -0
  348. package/src/providers/surf/actions.js +26 -0
  349. package/src/providers/surf/discovery-definitions.d.ts +2 -0
  350. package/src/providers/surf/discovery-definitions.js +871 -0
  351. package/src/providers/surf/equity-definitions.d.ts +2 -0
  352. package/src/providers/surf/equity-definitions.js +322 -0
  353. package/src/providers/surf/executors.d.ts +4 -0
  354. package/src/providers/surf/executors.js +131 -0
  355. package/src/providers/surf/market-definitions.d.ts +2 -0
  356. package/src/providers/surf/market-definitions.js +885 -0
  357. package/src/providers/surf/onchain-definitions.d.ts +2 -0
  358. package/src/providers/surf/onchain-definitions.js +901 -0
  359. package/src/providers/surf/prediction-definitions.d.ts +2 -0
  360. package/src/providers/surf/prediction-definitions.js +683 -0
  361. package/src/providers/surf/shared-schemas.d.ts +18 -0
  362. package/src/providers/surf/shared-schemas.js +37 -0
  363. package/src/providers/tally/executors.d.ts +2 -0
  364. package/src/providers/tally/executors.js +2 -0
  365. package/src/providers/tally/trigger-on-form-response.d.ts +2 -0
  366. package/src/providers/tally/trigger-on-form-response.definition.d.ts +4 -0
  367. package/src/providers/tally/trigger-on-form-response.definition.js +54 -0
  368. package/src/providers/tally/trigger-on-form-response.js +166 -0
  369. package/src/providers/tinyfish/actions.d.ts +6 -0
  370. package/src/providers/tinyfish/actions.js +19 -0
  371. package/src/providers/tinyfish/agent-actions.d.ts +2 -0
  372. package/src/providers/tinyfish/agent-actions.js +268 -0
  373. package/src/providers/tinyfish/data-actions.d.ts +2 -0
  374. package/src/providers/tinyfish/data-actions.js +186 -0
  375. package/src/providers/tinyfish/data-schemas.d.ts +7 -0
  376. package/src/providers/tinyfish/data-schemas.js +103 -0
  377. package/src/providers/tinyfish/endpoints.d.ts +14 -0
  378. package/src/providers/tinyfish/endpoints.js +1 -0
  379. package/src/providers/tinyfish/executors.d.ts +4 -0
  380. package/src/providers/tinyfish/executors.js +133 -0
  381. package/src/providers/tinyfish/management-actions.d.ts +2 -0
  382. package/src/providers/tinyfish/management-actions.js +524 -0
  383. package/src/providers/tinyfish/monitor-schemas.d.ts +5 -0
  384. package/src/providers/tinyfish/monitor-schemas.js +65 -0
  385. package/src/providers/tinyfish/research-schemas.d.ts +6 -0
  386. package/src/providers/tinyfish/research-schemas.js +71 -0
  387. package/src/providers/trello/executors.js +5 -2
  388. package/src/providers/typeform/executors.d.ts +2 -0
  389. package/src/providers/typeform/executors.js +2 -0
  390. package/src/providers/typeform/trigger-on-form-response.d.ts +2 -0
  391. package/src/providers/typeform/trigger-on-form-response.definition.d.ts +4 -0
  392. package/src/providers/typeform/trigger-on-form-response.definition.js +40 -0
  393. package/src/providers/typeform/trigger-on-form-response.js +68 -0
  394. package/src/providers/vaquill/actions.d.ts +13 -0
  395. package/src/providers/vaquill/actions.js +529 -0
  396. package/src/providers/vaquill/executors.d.ts +4 -0
  397. package/src/providers/vaquill/executors.js +141 -0
  398. package/src/providers/vaquill/schemas.d.ts +67 -0
  399. package/src/providers/vaquill/schemas.js +4953 -0
  400. package/src/providers/vercel/executors.d.ts +2 -0
  401. package/src/providers/vercel/executors.js +2 -0
  402. package/src/providers/vercel/trigger-on-deployment-event.d.ts +2 -0
  403. package/src/providers/vercel/trigger-on-deployment-event.definition.d.ts +5 -0
  404. package/src/providers/vercel/trigger-on-deployment-event.definition.js +41 -0
  405. package/src/providers/vercel/trigger-on-deployment-event.js +102 -0
  406. package/src/providers/weixin_bot/runtime.d.ts +0 -1
  407. package/src/providers/weixin_bot/runtime.js +1 -1
  408. package/src/providers/weixin_store/access-token.d.ts +3 -3
  409. package/src/providers/weixin_store/access-token.js +15 -7
  410. package/src/providers/weixin_store/executors.js +214 -1
  411. package/src/providers/zoom/executors.d.ts +2 -0
  412. package/src/providers/zoom/executors.js +2 -0
  413. package/src/providers/zoom/trigger-on-recording-ready.d.ts +2 -0
  414. package/src/providers/zoom/trigger-on-recording-ready.definition.d.ts +4 -0
  415. package/src/providers/zoom/trigger-on-recording-ready.definition.js +44 -0
  416. package/src/providers/zoom/trigger-on-recording-ready.js +39 -0
  417. package/src/server/api/action-example.js +12 -1
  418. package/src/server/api/pattern-example.js +35 -1
  419. package/src/server/api/trigger-routes.js +1 -1
  420. package/src/server/connect-app.js +1 -0
  421. package/src/triggers/common/integration.d.ts +15 -3
  422. package/src/triggers/common/integration.js +5 -0
  423. package/src/triggers/common/proxy.d.ts +7 -0
  424. package/src/triggers/managed-webhook.d.ts +13 -0
  425. package/src/triggers/managed-webhook.js +48 -0
  426. package/src/triggers/request.d.ts +5 -1
  427. package/src/triggers/request.js +2 -0
  428. package/src/triggers/resources.d.ts +8 -2
  429. package/src/triggers/resources.js +31 -0
  430. package/src/triggers/signature.d.ts +3 -3
  431. package/src/triggers/signature.js +4 -6
  432. package/src/triggers/sources/configuration-schema.d.ts +5 -0
  433. package/src/triggers/sources/configuration-schema.js +118 -0
  434. package/src/triggers/sources/configuration.d.ts +115 -0
  435. package/src/triggers/sources/configuration.js +1 -0
  436. package/src/triggers/sources/definition.d.ts +61 -0
  437. package/src/triggers/sources/definition.js +3 -0
  438. package/src/triggers/sources/feishu-demands.d.ts +6 -0
  439. package/src/triggers/sources/feishu-demands.js +24 -0
  440. package/src/triggers/sources/feishu-events.d.ts +19 -0
  441. package/src/triggers/sources/feishu-events.js +108 -0
  442. package/src/triggers/sources/feishu.d.ts +3 -0
  443. package/src/triggers/sources/feishu.js +85 -0
  444. package/src/triggers/sources/fireflies.d.ts +3 -0
  445. package/src/triggers/sources/fireflies.js +100 -0
  446. package/src/triggers/sources/intercom.d.ts +3 -0
  447. package/src/triggers/sources/intercom.js +86 -0
  448. package/src/triggers/sources/jira.d.ts +3 -0
  449. package/src/triggers/sources/jira.js +120 -0
  450. package/src/triggers/sources/operation.d.ts +42 -0
  451. package/src/triggers/sources/operation.js +146 -0
  452. package/src/triggers/sources/sentry.d.ts +3 -0
  453. package/src/triggers/sources/sentry.js +125 -0
  454. package/src/triggers/sources/signature.d.ts +1 -0
  455. package/src/triggers/sources/signature.js +10 -0
  456. package/src/triggers/sources/slack.d.ts +3 -0
  457. package/src/triggers/sources/slack.js +127 -0
  458. package/src/triggers/sources/zoom.d.ts +3 -0
  459. package/src/triggers/sources/zoom.js +113 -0
  460. package/src/triggers/trigger-runner.d.ts +2 -0
  461. package/src/triggers/trigger-runner.js +52 -16
@@ -1,4 +1,6 @@
1
1
  import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
2
+ import type { IntegrationDefinition } from "../../triggers/common/integration.ts";
2
3
  export declare const executors: ProviderExecutors;
3
4
  export declare const proxy: ProviderProxyExecutor;
4
5
  export declare const credentialValidators: CredentialValidators;
6
+ export declare const triggers: readonly IntegrationDefinition[];
@@ -1,5 +1,6 @@
1
1
  import { defineOAuthProviderExecutors, defineProviderProxy } from "../provider-runtime.js";
2
2
  import { sentryActionHandlers, sentryApiBaseUrl, validateSentryCredential } from "./runtime.js";
3
+ import { sentryIssueAlert } from "./trigger-on-issue-alert.js";
3
4
  const service = "sentry";
4
5
  export const executors = defineOAuthProviderExecutors(service, sentryActionHandlers);
5
6
  export const proxy = defineProviderProxy({
@@ -12,3 +13,4 @@ export const credentialValidators = {
12
13
  return validateSentryCredential(input.accessToken, fetcher);
13
14
  },
14
15
  };
16
+ export const triggers = [sentryIssueAlert];
@@ -0,0 +1,2 @@
1
+ import type { IntegrationDefinition } from "../../triggers/common/integration.ts";
2
+ export declare const sentryIssueAlert: IntegrationDefinition;
@@ -0,0 +1,4 @@
1
+ import type { TriggerKeySnapshot } from "../../triggers/common/types.ts";
2
+ export declare const snapshot: TriggerKeySnapshot & {
3
+ readonly type: "integration";
4
+ };
@@ -0,0 +1,64 @@
1
+ export const snapshot = {
2
+ key: "sentry.on_issue_alert",
3
+ provider: "sentry",
4
+ name: "on_issue_alert",
5
+ displayName: "Issue Alert",
6
+ description: "Receives Issue Alert Rule notifications from a verified Sentry Custom Integration installation.",
7
+ definitionVersion: 2,
8
+ type: "integration",
9
+ endpoint: {
10
+ methods: ["POST"],
11
+ body: { formats: ["json"], allowArray: false, allowEmpty: false },
12
+ successStatus: 200,
13
+ },
14
+ configInputs: [
15
+ {
16
+ handle: "projectIds",
17
+ jsonSchema: {
18
+ type: "array",
19
+ items: { type: "string", pattern: "^[0-9]+$" },
20
+ uniqueItems: true,
21
+ title: "Project IDs",
22
+ },
23
+ nullable: true,
24
+ },
25
+ {
26
+ handle: "ruleNames",
27
+ jsonSchema: {
28
+ type: "array",
29
+ items: { type: "string", minLength: 1 },
30
+ uniqueItems: true,
31
+ title: "Alert rule names",
32
+ },
33
+ nullable: true,
34
+ },
35
+ {
36
+ handle: "sourceId",
37
+ jsonSchema: { type: "string", pattern: "^source_[0-9a-f]{32}$", title: "Event source" },
38
+ nullable: false,
39
+ },
40
+ {
41
+ handle: "eventTypes",
42
+ jsonSchema: {
43
+ type: "array",
44
+ items: {
45
+ type: "string",
46
+ enum: ["issue.alert"],
47
+ },
48
+ minItems: 1,
49
+ maxItems: 1,
50
+ uniqueItems: true,
51
+ title: "Events",
52
+ },
53
+ nullable: false,
54
+ value: ["issue.alert"],
55
+ },
56
+ ],
57
+ outputs: [
58
+ { handle: "event", jsonSchema: { type: "string" }, nullable: false },
59
+ { handle: "deliveryId", jsonSchema: { type: "string" }, nullable: false },
60
+ { handle: "organizationId", jsonSchema: { type: "string" }, nullable: false },
61
+ { handle: "issueId", jsonSchema: { type: "string" }, nullable: false },
62
+ { handle: "body", jsonSchema: { type: "object" }, nullable: false },
63
+ ],
64
+ };
@@ -0,0 +1,80 @@
1
+ import { PermanentIntegrationError } from "../../triggers/common/integration.js";
2
+ import { isJsonObject } from "../../triggers/common/json.js";
3
+ import { webhookRequest } from "../../triggers/managed-webhook.js";
4
+ import { sentryApplication } from "../../triggers/sources/sentry.js";
5
+ import { snapshot } from "./trigger-on-issue-alert.definition.js";
6
+ export const sentryIssueAlert = {
7
+ snapshot,
8
+ eventSource: "sentry",
9
+ source: sentryApplication,
10
+ async sourceIdentity(context) {
11
+ const accountId = context.connector.providerAccountId;
12
+ const { appId, installationId, organizationId } = context.config;
13
+ if (!accountId ||
14
+ typeof organizationId !== "string" ||
15
+ !organizationId ||
16
+ typeof appId !== "string" ||
17
+ !appId ||
18
+ typeof installationId !== "string" ||
19
+ !installationId)
20
+ throw new PermanentIntegrationError("Sentry requires a verified organization, application UUID and installation UUID.");
21
+ const organizationResponse = await webhookRequest(context, {
22
+ method: "GET",
23
+ endpoint: `/organizations/${encodeURIComponent(organizationId)}/`,
24
+ });
25
+ const organization = organizationResponse.data;
26
+ if (!isJsonObject(organization) || typeof organization.id !== "string" || typeof organization.slug !== "string")
27
+ throw new PermanentIntegrationError("Invalid Sentry organization response.");
28
+ const seen = new Set();
29
+ let cursor;
30
+ for (;;) {
31
+ const result = await webhookRequest(context, {
32
+ method: "GET",
33
+ endpoint: `/organizations/${encodeURIComponent(organizationId)}/sentry-app-installations/`,
34
+ query: cursor == null ? {} : { cursor },
35
+ });
36
+ if (!Array.isArray(result.data))
37
+ throw new PermanentIntegrationError("Invalid Sentry installations response.");
38
+ for (const item of result.data) {
39
+ if (!isJsonObject(item) || !isJsonObject(item.app) || !isJsonObject(item.organization))
40
+ throw new PermanentIntegrationError("Invalid Sentry installation.");
41
+ if (item.uuid !== installationId)
42
+ continue;
43
+ if (item.app.uuid !== appId || item.status !== "installed" || item.organization.slug !== organization.slug)
44
+ throw new PermanentIntegrationError("Sentry integration is not installed in the connected organization.");
45
+ return {
46
+ accountId,
47
+ organizationId: organization.id,
48
+ organizationSlug: organization.slug,
49
+ appId,
50
+ installationId,
51
+ };
52
+ }
53
+ const next = (result.headers?.link ?? "")
54
+ .split(",")
55
+ .find((link) => /rel="next"/.test(link) && /results="true"/.test(link));
56
+ if (next == null)
57
+ break;
58
+ const match = /cursor="([^"]+)"/.exec(next);
59
+ if (!match || seen.has(match[1]))
60
+ throw new PermanentIntegrationError("Invalid Sentry installation pagination.");
61
+ cursor = match[1];
62
+ seen.add(cursor);
63
+ }
64
+ throw new PermanentIntegrationError("Install the selected Sentry integration in the connected organization first.");
65
+ },
66
+ receive(context) {
67
+ if (context.eventSourceId !== context.config.sourceId)
68
+ return { outcome: "respond", status: 404, body: "", contentType: "text/plain" };
69
+ const payload = context.payload;
70
+ if (!isJsonObject(payload) ||
71
+ typeof payload.deliveryId !== "string" ||
72
+ !payload.deliveryId ||
73
+ !isJsonObject(payload.body))
74
+ throw new PermanentIntegrationError("Invalid shared Sentry event.");
75
+ return { outcome: "event", dedupeKey: payload.deliveryId, outputs: payload };
76
+ },
77
+ async reconcile() {
78
+ throw new PermanentIntegrationError("This deployment does not support shared Sentry event sources.");
79
+ },
80
+ };
@@ -1,6 +1,5 @@
1
1
  import type { CredentialValidationResult } from "../../core/types.ts";
2
2
  import type { ProviderFetch, ProviderRuntimeHandler } from "../provider-runtime.ts";
3
- export declare const sfExpressApiBaseUrl = "https://bspgw.sf-express.com/std/service";
4
3
  type SfExpressPhase = "validate" | "execute";
5
4
  /**
6
5
  * The msgDigest algorithm a partnerID is bound to. SF fixes the choice when the
@@ -27,21 +26,6 @@ export declare function optionalFlagNumber(value: unknown): 1 | 0 | undefined;
27
26
  /** Read an optional value-added service list (name + value…value4) from action input. */
28
27
  export declare function readServiceValueList(value: unknown, fieldName: string): Array<Record<string, unknown>> | undefined;
29
28
  export declare function validateSfExpressCredential(values: Record<string, string>, fetcher: ProviderFetch, signal?: AbortSignal): Promise<CredentialValidationResult>;
30
- /**
31
- * Sign one request with the algorithm the application was created against. All
32
- * three sign the same `msgData + timestamp + checkWord` string and differ only
33
- * in how they turn it into msgDigest:
34
- *
35
- * - `standard_md5` runs it through `URLEncoder.encode(text, "UTF-8")`
36
- * first, then Base64(MD5(...)). Skipping that step fails verification for
37
- * every payload, because JSON always carries characters the encoder rewrites.
38
- * - `simple_md5` is the same Base64(MD5(...)) over the raw string.
39
- * - `sm3` is the lowercase hexadecimal SM3 digest of the raw string.
40
- *
41
- * Standard MD5 is the default because SF used it before offering
42
- * the choice and what every application created back then still uses.
43
- */
44
- export declare function signSfExpressPayload(msgData: string, timestamp: string, checkWord: string, algorithm?: SfExpressSignatureAlgorithm): string;
45
29
  /**
46
30
  * Call one SF Express Open Platform service: POST form-urlencoded with the
47
31
  * business JSON in msgData, signed by {@link signSfExpressPayload}. msgData is
@@ -2,7 +2,7 @@ import { createHash, randomUUID } from "node:crypto";
2
2
  import { compactObject, objectArray, optionalBoolean, optionalNumberLike, optionalRecord, optionalString, } from "../../core/cast.js";
3
3
  import { sm3Hex } from "../../core/sm3.js";
4
4
  import { parseProviderJsonBodyText, ProviderRequestError, providerInputError, providerResponseError, providerUserAgent, readProviderJson, requiredInputString, requiredResponseRecord, runProviderRequest, } from "../provider-runtime.js";
5
- export const sfExpressApiBaseUrl = "https://bspgw.sf-express.com/std/service";
5
+ const sfExpressApiBaseUrl = "https://bspgw.sf-express.com/std/service";
6
6
  /** The sandbox gateway; every documented sandbox-environment row names this host. */
7
7
  const sfExpressSandboxBaseUrl = "https://sfapi-sbox.sf-express.com/std/service";
8
8
  /** Endpoints whose production URL differs from the default gateway, per their documented common-parameters sections. */
@@ -157,7 +157,7 @@ function javaFormUrlEncode(value) {
157
157
  * Standard MD5 is the default because SF used it before offering
158
158
  * the choice and what every application created back then still uses.
159
159
  */
160
- export function signSfExpressPayload(msgData, timestamp, checkWord, algorithm = "standard_md5") {
160
+ function signSfExpressPayload(msgData, timestamp, checkWord, algorithm = "standard_md5") {
161
161
  const text = msgData + timestamp + checkWord;
162
162
  if (algorithm === "sm3") {
163
163
  return sm3Hex(text);
@@ -2,11 +2,16 @@ import type { CredentialValidators, ProviderExecutors } from "../../core/types.t
2
2
  import type { ProviderActionHandlers } from "../provider-runtime.ts";
3
3
  import type { OAuthProviderContext } from "../provider-runtime.ts";
4
4
  export declare const slackApiBaseUrl = "https://slack.com/api";
5
- type SlackActionContext = Omit<OAuthProviderContext, "providerSecret" | "tokenType">;
5
+ interface SlackActionContext extends Omit<OAuthProviderContext, "providerSecret" | "tokenType"> {
6
+ /** Stored OAuth response metadata; empty for API-key credentials. */
7
+ metadata: Record<string, unknown>;
8
+ }
6
9
  type SlackOAuthTokenKind = "bot" | "user";
7
10
  export type SlackActionHandler = (input: Record<string, unknown>, context: SlackActionContext) => Promise<unknown>;
8
11
  /** Build Slack executors that reject credentials issued for the other authorization path. */
9
12
  export declare function defineSlackProviderExecutors(service: "slack" | "slackbot", tokenKind: SlackOAuthTokenKind, handlers: Record<string, SlackActionHandler>): ProviderExecutors;
10
13
  export declare const slackActionHandlers: ProviderActionHandlers<"slack", SlackActionHandler>;
11
14
  export declare const slackCredentialValidators: CredentialValidators;
15
+ /** Read the workspace and installer from stored OAuth metadata. */
16
+ export declare function slackbotInstallationHandler(_input: Record<string, unknown>, context: SlackActionContext): Promise<unknown>;
12
17
  export {};
@@ -12,11 +12,13 @@ export function defineSlackProviderExecutors(service, tokenKind, handlers) {
12
12
  async createContext(context, fetcher) {
13
13
  const credential = await context.getCredential(service);
14
14
  let accessToken;
15
+ let metadata = {};
15
16
  if (credential?.authType === "oauth2") {
16
17
  if (readSlackTokenKind(credential.accessToken, credential.metadata) != tokenKind) {
17
18
  throw new ProviderRequestError(401, `Reconnect ${service} with ${tokenKind} authorization before running its actions.`);
18
19
  }
19
20
  accessToken = credential.accessToken;
21
+ metadata = credential.metadata;
20
22
  }
21
23
  else if (credential?.authType === "api_key") {
22
24
  // A pasted token was authorized by no OAuth flow, so the user/bot flow
@@ -31,6 +33,7 @@ export function defineSlackProviderExecutors(service, tokenKind, handlers) {
31
33
  const providerContext = {
32
34
  accessToken,
33
35
  fetcher,
36
+ metadata,
34
37
  signal: context.signal,
35
38
  };
36
39
  if (context.transitFiles) {
@@ -176,6 +179,24 @@ async function slackGetCurrentUser(context) {
176
179
  const identity = readSlackAuthTestIdentity(await slackAuthTest(context));
177
180
  return { teamId: identity.teamId, userId: identity.userId, isBot: identity.botId !== undefined };
178
181
  }
182
+ /** Read the workspace and installer from stored OAuth metadata. */
183
+ export async function slackbotInstallationHandler(_input, context) {
184
+ const team = optionalRecord(context.metadata.team);
185
+ const authedUser = optionalRecord(context.metadata.authed_user);
186
+ const teamId = optionalString(team?.id);
187
+ const authedUserId = optionalString(authedUser?.id);
188
+ const botUserId = optionalString(context.metadata.bot_user_id);
189
+ if (!teamId || !authedUserId || !botUserId) {
190
+ return null;
191
+ }
192
+ return {
193
+ teamId,
194
+ teamName: optionalString(team?.name) ?? null,
195
+ authedUserId,
196
+ botUserId,
197
+ appId: optionalString(context.metadata.app_id) ?? null,
198
+ };
199
+ }
179
200
  async function slackListChannels(input, context) {
180
201
  const url = slackApiUrl("conversations.list");
181
202
  if (input.limit != null) {
@@ -1,7 +1,8 @@
1
+ import { s } from "../../core/json-schema.js";
1
2
  import { defineProviderAction } from "../../core/provider-definition.js";
2
3
  import { slackActions } from "../slack/actions.js";
3
4
  const service = "slackbot";
4
- export const slackbotActions = slackActions
5
+ const sharedActions = slackActions
5
6
  .filter((action) => action.name != "search_messages" && action.name != "search_context" && action.name != "get_current_user")
6
7
  .map((action) => defineProviderAction(service, {
7
8
  name: action.name,
@@ -11,3 +12,18 @@ export const slackbotActions = slackActions
11
12
  inputSchema: action.inputSchema,
12
13
  outputSchema: action.outputSchema,
13
14
  }));
15
+ const getInstallation = defineProviderAction(service, {
16
+ name: "get_installation",
17
+ operationType: "read",
18
+ description: "Get the workspace and authorizing user from stored OAuth metadata. This information is available only for OAuth connections. Returns null for API-key connections or incomplete OAuth metadata. OAuth credentials may be refreshed before execution.",
19
+ requiredScopes: [],
20
+ inputSchema: s.object({}),
21
+ outputSchema: s.nullable(s.object({
22
+ teamId: s.nonEmptyString("The Slack workspace ID the app was installed in."),
23
+ teamName: s.nullable(s.string({ description: "The workspace display name, when the install carried one." })),
24
+ authedUserId: s.nonEmptyString("The Slack user ID of the person who approved the install."),
25
+ botUserId: s.nonEmptyString("The Slack user ID of the app's bot user."),
26
+ appId: s.nullable(s.string({ description: "The Slack app ID, when the install carried one." })),
27
+ }, { required: ["teamId", "teamName", "authedUserId", "botUserId", "appId"] })),
28
+ });
29
+ export const slackbotActions = [...sharedActions, getInstallation];
@@ -1,3 +1,5 @@
1
1
  import type { CredentialValidators, ProviderExecutors } from "../../core/types.ts";
2
+ import type { IntegrationDefinition } from "../../triggers/common/integration.ts";
2
3
  export declare const executors: ProviderExecutors;
3
4
  export declare const credentialValidators: CredentialValidators;
5
+ export declare const triggers: readonly IntegrationDefinition[];
@@ -1,8 +1,11 @@
1
1
  import { getProviderActionHandler, mapProviderActionHandlers } from "../provider-runtime.js";
2
- import { defineSlackProviderExecutors, slackActionHandlers, slackCredentialValidators } from "../slack/runtime.js";
2
+ import { defineSlackProviderExecutors, slackActionHandlers, slackbotInstallationHandler, slackCredentialValidators, } from "../slack/runtime.js";
3
3
  import { slackbotActions } from "./actions.js";
4
+ import { slackBotEvents } from "./trigger-on-event.js";
4
5
  const service = "slackbot";
5
6
  const slackbotActionHandlers = mapProviderActionHandlers(service, slackbotActions, (action) => {
7
+ if (action.name === "get_installation")
8
+ return slackbotInstallationHandler;
6
9
  const handler = getProviderActionHandler(slackActionHandlers, action.name);
7
10
  if (!handler) {
8
11
  throw new Error(`Missing shared Slack handler for action: ${action.name}`);
@@ -11,3 +14,4 @@ const slackbotActionHandlers = mapProviderActionHandlers(service, slackbotAction
11
14
  });
12
15
  export const executors = defineSlackProviderExecutors(service, "bot", slackbotActionHandlers);
13
16
  export const credentialValidators = slackCredentialValidators;
17
+ export const triggers = [slackBotEvents];
@@ -0,0 +1,2 @@
1
+ import type { IntegrationDefinition } from "../../triggers/common/integration.ts";
2
+ export declare const slackBotEvents: IntegrationDefinition;
@@ -0,0 +1,4 @@
1
+ import type { TriggerKeySnapshot } from "../../triggers/common/types.ts";
2
+ export declare const snapshot: TriggerKeySnapshot & {
3
+ readonly type: "integration";
4
+ };
@@ -0,0 +1,57 @@
1
+ export const snapshot = {
2
+ key: "slackbot.on_event",
3
+ provider: "slackbot",
4
+ name: "on_event",
5
+ displayName: "Mention or Direct Message",
6
+ description: "Receives user mentions and new direct messages through a shared Slack application event source. Slack Connect events are excluded.",
7
+ definitionVersion: 2,
8
+ type: "integration",
9
+ endpoint: {
10
+ methods: ["POST"],
11
+ body: { formats: ["json"], allowArray: false, allowEmpty: false },
12
+ successStatus: 200,
13
+ },
14
+ configInputs: [
15
+ {
16
+ handle: "sourceId",
17
+ jsonSchema: { type: "string", pattern: "^source_[0-9a-f]{32}$", title: "Event source" },
18
+ nullable: false,
19
+ },
20
+ {
21
+ handle: "eventTypes",
22
+ jsonSchema: {
23
+ type: "array",
24
+ items: { type: "string", enum: ["app_mention", "message.im"] },
25
+ minItems: 1,
26
+ maxItems: 2,
27
+ uniqueItems: true,
28
+ title: "Events",
29
+ },
30
+ nullable: false,
31
+ value: ["app_mention", "message.im"],
32
+ },
33
+ {
34
+ handle: "channelIds",
35
+ jsonSchema: {
36
+ type: "array",
37
+ items: { type: "string", minLength: 1 },
38
+ maxItems: 100,
39
+ uniqueItems: true,
40
+ title: "Channel IDs",
41
+ },
42
+ nullable: true,
43
+ },
44
+ ],
45
+ outputs: [
46
+ { handle: "event", jsonSchema: { type: "string" }, nullable: false },
47
+ { handle: "deliveryId", jsonSchema: { type: "string" }, nullable: false },
48
+ { handle: "appId", jsonSchema: { type: "string" }, nullable: false },
49
+ { handle: "teamId", jsonSchema: { type: "string" }, nullable: false },
50
+ { handle: "channel", jsonSchema: { type: "string" }, nullable: false },
51
+ { handle: "user", jsonSchema: { type: "string" }, nullable: false },
52
+ { handle: "text", jsonSchema: { type: "string" }, nullable: false },
53
+ { handle: "ts", jsonSchema: { type: "string" }, nullable: false },
54
+ { handle: "threadTs", jsonSchema: { type: "string" }, nullable: true },
55
+ { handle: "body", jsonSchema: { type: "object" }, nullable: false },
56
+ ],
57
+ };
@@ -0,0 +1,23 @@
1
+ import { PermanentIntegrationError } from "../../triggers/common/integration.js";
2
+ import { isJsonObject } from "../../triggers/common/json.js";
3
+ import { slackApplication } from "../../triggers/sources/slack.js";
4
+ import { snapshot } from "./trigger-on-event.definition.js";
5
+ export const slackBotEvents = {
6
+ snapshot,
7
+ eventSource: "slack",
8
+ source: slackApplication,
9
+ receive(context) {
10
+ if (context.eventSourceId !== context.config.sourceId)
11
+ return { outcome: "respond", status: 404, body: "", contentType: "text/plain" };
12
+ const payload = context.payload;
13
+ if (!isJsonObject(payload) ||
14
+ typeof payload.deliveryId !== "string" ||
15
+ !payload.deliveryId ||
16
+ !isJsonObject(payload.body))
17
+ throw new PermanentIntegrationError("Invalid shared Slack event.");
18
+ return { outcome: "event", dedupeKey: payload.deliveryId, outputs: payload };
19
+ },
20
+ async reconcile() {
21
+ throw new PermanentIntegrationError("This deployment does not support shared Slack event sources.");
22
+ },
23
+ };
@@ -0,0 +1,21 @@
1
+ import type { ActionDefinition, JsonSchema } from "../../core/types.ts";
2
+ export interface SurfRoute {
3
+ path: string;
4
+ method: string;
5
+ parameters: Array<{
6
+ name: string;
7
+ in: string;
8
+ field: string;
9
+ }>;
10
+ body: boolean;
11
+ }
12
+ export interface SurfActionDefinition {
13
+ name: string;
14
+ description: string;
15
+ operationType: ActionDefinition["operationType"];
16
+ route: SurfRoute;
17
+ inputSchema: JsonSchema;
18
+ outputSchema: JsonSchema;
19
+ }
20
+ export declare const surfRoutes: Record<string, SurfRoute>;
21
+ export declare const surfActions: ActionDefinition[];
@@ -0,0 +1,26 @@
1
+ import { defineProviderAction } from "../../core/provider-definition.js";
2
+ import { discoveryDefinitions } from "./discovery-definitions.js";
3
+ import { equityDefinitions } from "./equity-definitions.js";
4
+ import { marketDefinitions } from "./market-definitions.js";
5
+ import { onchainDefinitions } from "./onchain-definitions.js";
6
+ import { predictionDefinitions } from "./prediction-definitions.js";
7
+ const actionLifecycles = {
8
+ onchain_sql_job_create: { startActionId: "surf.onchain_sql_job_create", statusActionId: "surf.onchain_sql_job_get" },
9
+ };
10
+ const definitions = [
11
+ ...marketDefinitions,
12
+ ...equityDefinitions,
13
+ ...discoveryDefinitions,
14
+ ...onchainDefinitions,
15
+ ...predictionDefinitions,
16
+ ];
17
+ export const surfRoutes = Object.fromEntries(definitions.map((definition) => [definition.name, definition.route]));
18
+ export const surfActions = definitions.map((definition) => defineProviderAction("surf", {
19
+ name: definition.name,
20
+ description: definition.description,
21
+ operationType: definition.operationType,
22
+ requiredScopes: [],
23
+ inputSchema: definition.inputSchema,
24
+ outputSchema: definition.outputSchema,
25
+ asyncLifecycle: actionLifecycles[definition.name],
26
+ }));
@@ -0,0 +1,2 @@
1
+ import type { SurfActionDefinition } from "./actions.ts";
2
+ export declare const discoveryDefinitions: SurfActionDefinition[];