@oomol-lab/open-connector 1.9.0 → 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 (844) hide show
  1. package/assets/open-connector/catalog/apps/agentearth.json +441 -0
  2. package/assets/open-connector/catalog/apps/aisa.json +1946 -56
  3. package/assets/open-connector/catalog/apps/akta.json +1181 -0
  4. package/assets/open-connector/catalog/apps/appgrowing_mcp.json +863 -0
  5. package/assets/open-connector/catalog/apps/arcmira.json +610 -0
  6. package/assets/open-connector/catalog/apps/asana.json +110 -0
  7. package/assets/open-connector/catalog/apps/bainiu.json +654 -0
  8. package/assets/open-connector/catalog/apps/calendly.json +103 -0
  9. package/assets/open-connector/catalog/apps/chaport.json +331 -0
  10. package/assets/open-connector/catalog/apps/clickup.json +104 -0
  11. package/assets/open-connector/catalog/apps/cloro.json +9289 -0
  12. package/assets/open-connector/catalog/apps/cnb.json +1408 -0
  13. package/assets/open-connector/catalog/apps/contextdev.json +20670 -0
  14. package/assets/open-connector/catalog/apps/crtsh.json +123 -0
  15. package/assets/open-connector/catalog/apps/deepseek.json +177 -0
  16. package/assets/open-connector/catalog/apps/defillama.json +23747 -0
  17. package/assets/open-connector/catalog/apps/eastmoney_miaoxiang.json +406 -0
  18. package/assets/open-connector/catalog/apps/fastmoss_mcp.json +876 -876
  19. package/assets/open-connector/catalog/apps/fireflies.json +103 -0
  20. package/assets/open-connector/catalog/apps/ftshare.json +1162 -0
  21. package/assets/open-connector/catalog/apps/fundable.json +7926 -0
  22. package/assets/open-connector/catalog/apps/fusion-api.json +143 -0
  23. package/assets/open-connector/catalog/apps/fxbaogao.json +308 -0
  24. package/assets/open-connector/catalog/apps/github.json +38 -3
  25. package/assets/open-connector/catalog/apps/hrmos_kintai.json +7519 -0
  26. package/assets/open-connector/catalog/apps/humor_api.json +351 -0
  27. package/assets/open-connector/catalog/apps/intercom.json +110 -0
  28. package/assets/open-connector/catalog/apps/jira.json +110 -0
  29. package/assets/open-connector/catalog/apps/kaonavi.json +1723 -0
  30. package/assets/open-connector/catalog/apps/keenable.json +235 -0
  31. package/assets/open-connector/catalog/apps/kolsprite_mcp.json +1227 -0
  32. package/assets/open-connector/catalog/apps/linear_mcp.json +882 -22
  33. package/assets/open-connector/catalog/apps/listinggood.json +362 -0
  34. package/assets/open-connector/catalog/apps/litescrape.json +52514 -0
  35. package/assets/open-connector/catalog/apps/magichour.json +5926 -0
  36. package/assets/open-connector/catalog/apps/minimax.json +24 -14
  37. package/assets/open-connector/catalog/apps/notion.json +731 -76
  38. package/assets/open-connector/catalog/apps/notion_mcp.json +338 -1
  39. package/assets/open-connector/catalog/apps/octen.json +5248 -0
  40. package/assets/open-connector/catalog/apps/openrouter.json +10 -0
  41. package/assets/open-connector/catalog/apps/orbit.json +3574 -0
  42. package/assets/open-connector/catalog/apps/outlook.json +414 -0
  43. package/assets/open-connector/catalog/apps/pandadoc.json +68 -0
  44. package/assets/open-connector/catalog/apps/pipedrive.json +86 -0
  45. package/assets/open-connector/catalog/apps/ploid.json +9802 -0
  46. package/assets/open-connector/catalog/apps/porteden.json +1258 -0
  47. package/assets/open-connector/catalog/apps/qiuxiaoce.json +915 -0
  48. package/assets/open-connector/catalog/apps/qqmusic.json +1834 -0
  49. package/assets/open-connector/catalog/apps/rakuraku_seisan.json +217 -0
  50. package/assets/open-connector/catalog/apps/redfox.json +9661 -897
  51. package/assets/open-connector/catalog/apps/resend.json +100 -0
  52. package/assets/open-connector/catalog/apps/salesforce.json +7275 -0
  53. package/assets/open-connector/catalog/apps/sansan.json +4594 -0
  54. package/assets/open-connector/catalog/apps/saperly.json +7056 -0
  55. package/assets/open-connector/catalog/apps/search1api.json +2382 -0
  56. package/assets/open-connector/catalog/apps/sentry.json +129 -0
  57. package/assets/open-connector/catalog/apps/slackbot.json +230 -1
  58. package/assets/open-connector/catalog/apps/smarthr.json +8071 -0
  59. package/assets/open-connector/catalog/apps/smooth.json +914 -0
  60. package/assets/open-connector/catalog/apps/surf.json +11378 -0
  61. package/assets/open-connector/catalog/apps/tally.json +113 -0
  62. package/assets/open-connector/catalog/apps/tapd.json +727 -0
  63. package/assets/open-connector/catalog/apps/tencent_meeting_mcp.json +1301 -0
  64. package/assets/open-connector/catalog/apps/threatfox.json +203 -0
  65. package/assets/open-connector/catalog/apps/tinyfish.json +6154 -0
  66. package/assets/open-connector/catalog/apps/tradebee.json +915 -0
  67. package/assets/open-connector/catalog/apps/twittrapi.json +4914 -0
  68. package/assets/open-connector/catalog/apps/typeform.json +90 -1
  69. package/assets/open-connector/catalog/apps/urlhaus.json +246 -0
  70. package/assets/open-connector/catalog/apps/vaquill.json +5944 -0
  71. package/assets/open-connector/catalog/apps/vercel.json +110 -0
  72. package/assets/open-connector/catalog/apps/weixin_store.json +1256 -7
  73. package/assets/open-connector/catalog/apps/weread.json +1514 -0
  74. package/assets/open-connector/catalog/apps/whatsapp.json +12 -0
  75. package/assets/open-connector/catalog/apps/zhiliaobiaoxun.json +812 -0
  76. package/assets/open-connector/catalog/apps/zoom.json +112 -0
  77. package/assets/open-connector/catalog/apps-index.json +1 -1
  78. package/package.json +2 -1
  79. package/src/connection-service.js +55 -11
  80. package/src/core/json-schema.d.ts +11 -3
  81. package/src/core/json-schema.js +13 -3
  82. package/src/core/provider-error-codes.d.ts +9 -0
  83. package/src/core/provider-error-codes.js +13 -0
  84. package/src/core/request.d.ts +2 -0
  85. package/src/core/request.js +11 -2
  86. package/src/mail/imap-smtp/protocol.js +4 -3
  87. package/src/oauth/oauth-flow-service.js +1 -0
  88. package/src/oauth/oauth-token.d.ts +2 -0
  89. package/src/providers/17track/runtime.js +17 -20
  90. package/src/providers/action-contracts.generated.d.ts +58 -11
  91. package/src/providers/agentearth/actions.d.ts +2 -0
  92. package/src/providers/agentearth/actions.js +100 -0
  93. package/src/providers/agentearth/executors.d.ts +4 -0
  94. package/src/providers/agentearth/executors.js +109 -0
  95. package/src/providers/aisa/executors.js +238 -6
  96. package/src/providers/aisa/firecrawl-actions.d.ts +9 -0
  97. package/src/providers/aisa/firecrawl-actions.js +115 -0
  98. package/src/providers/akta/actions.d.ts +9 -0
  99. package/src/providers/akta/actions.js +420 -0
  100. package/src/providers/akta/executors.d.ts +4 -0
  101. package/src/providers/akta/executors.js +103 -0
  102. package/src/providers/appgrowing_mcp/actions.d.ts +2 -0
  103. package/src/providers/appgrowing_mcp/actions.js +175 -0
  104. package/src/providers/appgrowing_mcp/executors.d.ts +4 -0
  105. package/src/providers/appgrowing_mcp/executors.js +66 -0
  106. package/src/providers/arcmira/executors.d.ts +3 -0
  107. package/src/providers/arcmira/executors.js +8 -0
  108. package/src/providers/arcmira/runtime.d.ts +6 -0
  109. package/src/providers/arcmira/runtime.js +41 -0
  110. package/src/providers/asana/executors.d.ts +2 -0
  111. package/src/providers/asana/executors.js +2 -0
  112. package/src/providers/asana/trigger-on-task-event.d.ts +2 -0
  113. package/src/providers/asana/trigger-on-task-event.definition.d.ts +4 -0
  114. package/src/providers/asana/trigger-on-task-event.definition.js +42 -0
  115. package/src/providers/asana/trigger-on-task-event.js +160 -0
  116. package/src/providers/bainiu/actions.d.ts +2 -0
  117. package/src/providers/bainiu/actions.js +108 -0
  118. package/src/providers/bainiu/executors.d.ts +4 -0
  119. package/src/providers/bainiu/executors.js +113 -0
  120. package/src/providers/baixiao/executors.js +1 -1
  121. package/src/providers/bing_webmaster/executors.js +1 -1
  122. package/src/providers/calendly/executors.d.ts +2 -0
  123. package/src/providers/calendly/executors.js +2 -0
  124. package/src/providers/calendly/trigger-on-booking-event.d.ts +2 -0
  125. package/src/providers/calendly/trigger-on-booking-event.definition.d.ts +5 -0
  126. package/src/providers/calendly/trigger-on-booking-event.definition.js +42 -0
  127. package/src/providers/calendly/trigger-on-booking-event.js +144 -0
  128. package/src/providers/chaport/actions.d.ts +2 -0
  129. package/src/providers/chaport/actions.js +70 -0
  130. package/src/providers/chaport/executors.d.ts +4 -0
  131. package/src/providers/chaport/executors.js +128 -0
  132. package/src/providers/clickup/executors.d.ts +2 -0
  133. package/src/providers/clickup/executors.js +2 -0
  134. package/src/providers/clickup/runtime.js +49 -52
  135. package/src/providers/clickup/trigger-on-task-event.d.ts +2 -0
  136. package/src/providers/clickup/trigger-on-task-event.definition.d.ts +4 -0
  137. package/src/providers/clickup/trigger-on-task-event.definition.js +41 -0
  138. package/src/providers/clickup/trigger-on-task-event.js +94 -0
  139. package/src/providers/cloro/actions.d.ts +12 -0
  140. package/src/providers/cloro/actions.js +155 -0
  141. package/src/providers/cloro/executors.d.ts +4 -0
  142. package/src/providers/cloro/executors.js +67 -0
  143. package/src/providers/cloro/inputs.d.ts +10 -0
  144. package/src/providers/cloro/inputs.js +680 -0
  145. package/src/providers/cnb/actions.d.ts +2 -0
  146. package/src/providers/cnb/actions.js +341 -0
  147. package/src/providers/cnb/executors.d.ts +4 -0
  148. package/src/providers/cnb/executors.js +135 -0
  149. package/src/providers/contextdev/actions.d.ts +14 -0
  150. package/src/providers/contextdev/actions.js +647 -0
  151. package/src/providers/contextdev/executors.d.ts +4 -0
  152. package/src/providers/contextdev/executors.js +109 -0
  153. package/src/providers/contextdev/files.d.ts +3 -0
  154. package/src/providers/contextdev/files.js +49 -0
  155. package/src/providers/contextdev/input-schemas.d.ts +49 -0
  156. package/src/providers/contextdev/input-schemas.js +3082 -0
  157. package/src/providers/contextdev/output-schemas.d.ts +49 -0
  158. package/src/providers/contextdev/output-schemas.js +1599 -0
  159. package/src/providers/coupontools/runtime.js +11 -14
  160. package/src/providers/crtsh/executors.d.ts +3 -0
  161. package/src/providers/crtsh/executors.js +19 -0
  162. package/src/providers/crtsh/runtime.d.ts +17 -0
  163. package/src/providers/crtsh/runtime.js +84 -0
  164. package/src/providers/deepseek/executors.d.ts +0 -5
  165. package/src/providers/deepseek/executors.js +38 -25
  166. package/src/providers/defillama/actions.d.ts +24 -0
  167. package/src/providers/defillama/actions.js +24 -0
  168. package/src/providers/defillama/dimensions-definitions.d.ts +2 -0
  169. package/src/providers/defillama/dimensions-definitions.js +1387 -0
  170. package/src/providers/defillama/ecosystem-definitions.d.ts +2 -0
  171. package/src/providers/defillama/ecosystem-definitions.js +758 -0
  172. package/src/providers/defillama/equities-definitions.d.ts +2 -0
  173. package/src/providers/defillama/equities-definitions.js +733 -0
  174. package/src/providers/defillama/executors.d.ts +4 -0
  175. package/src/providers/defillama/executors.js +196 -0
  176. package/src/providers/defillama/markets-definitions.d.ts +2 -0
  177. package/src/providers/defillama/markets-definitions.js +624 -0
  178. package/src/providers/defillama/shared-schemas.d.ts +71 -0
  179. package/src/providers/defillama/shared-schemas.js +157 -0
  180. package/src/providers/defillama/tvl-definitions.d.ts +2 -0
  181. package/src/providers/defillama/tvl-definitions.js +546 -0
  182. package/src/providers/defillama/yields-definitions.d.ts +2 -0
  183. package/src/providers/defillama/yields-definitions.js +766 -0
  184. package/src/providers/eastmoney_miaoxiang/actions.d.ts +2 -0
  185. package/src/providers/eastmoney_miaoxiang/actions.js +95 -0
  186. package/src/providers/eastmoney_miaoxiang/executors.d.ts +4 -0
  187. package/src/providers/eastmoney_miaoxiang/executors.js +81 -0
  188. package/src/providers/fastmoss_mcp/actions-content.d.ts +2 -0
  189. package/src/providers/fastmoss_mcp/actions-content.js +140 -0
  190. package/src/providers/fastmoss_mcp/actions-creator.d.ts +2 -0
  191. package/src/providers/fastmoss_mcp/actions-creator.js +154 -0
  192. package/src/providers/fastmoss_mcp/actions-product.d.ts +2 -0
  193. package/src/providers/fastmoss_mcp/actions-product.js +167 -0
  194. package/src/providers/fastmoss_mcp/actions-research.d.ts +2 -0
  195. package/src/providers/fastmoss_mcp/actions-research.js +174 -0
  196. package/src/providers/fastmoss_mcp/actions-shop.d.ts +2 -0
  197. package/src/providers/fastmoss_mcp/actions-shop.js +142 -0
  198. package/src/providers/fastmoss_mcp/actions.js +11 -12
  199. package/src/providers/fastmoss_mcp/schemas.d.ts +51 -0
  200. package/src/providers/fastmoss_mcp/schemas.js +52 -0
  201. package/src/providers/feishu_app_bot/trigger-on-event.js +2 -0
  202. package/src/providers/fireflies/executors.d.ts +2 -0
  203. package/src/providers/fireflies/executors.js +2 -0
  204. package/src/providers/fireflies/trigger-on-meeting-ready.d.ts +2 -0
  205. package/src/providers/fireflies/trigger-on-meeting-ready.definition.d.ts +4 -0
  206. package/src/providers/fireflies/trigger-on-meeting-ready.definition.js +44 -0
  207. package/src/providers/fireflies/trigger-on-meeting-ready.js +60 -0
  208. package/src/providers/ftshare/actions.d.ts +2 -0
  209. package/src/providers/ftshare/actions.js +124 -0
  210. package/src/providers/ftshare/executors.d.ts +4 -0
  211. package/src/providers/ftshare/executors.js +102 -0
  212. package/src/providers/fundable/actions.d.ts +8 -0
  213. package/src/providers/fundable/actions.js +1515 -0
  214. package/src/providers/fundable/executors.d.ts +4 -0
  215. package/src/providers/fundable/executors.js +74 -0
  216. package/src/providers/fusion-api/operations.js +37 -0
  217. package/src/providers/fxbaogao/actions.d.ts +2 -0
  218. package/src/providers/fxbaogao/actions.js +74 -0
  219. package/src/providers/fxbaogao/executors.d.ts +4 -0
  220. package/src/providers/fxbaogao/executors.js +155 -0
  221. package/src/providers/github/app-installation.d.ts +37 -0
  222. package/src/providers/github/app-installation.js +233 -0
  223. package/src/providers/github/executors.js +93 -15
  224. package/src/providers/github/runtime-repository.js +21 -1
  225. package/src/providers/github/runtime-shared.d.ts +2 -0
  226. package/src/providers/github/runtime-shared.js +1 -0
  227. package/src/providers/gmail/message.d.ts +1 -6
  228. package/src/providers/gmail/message.js +1 -1
  229. package/src/providers/googledrive/runtime-request.js +3 -3
  230. package/src/providers/hrmos_kintai/actions.d.ts +2 -0
  231. package/src/providers/hrmos_kintai/actions.js +139 -0
  232. package/src/providers/hrmos_kintai/attendance-actions.d.ts +2 -0
  233. package/src/providers/hrmos_kintai/attendance-actions.js +276 -0
  234. package/src/providers/hrmos_kintai/business-actions.d.ts +2 -0
  235. package/src/providers/hrmos_kintai/business-actions.js +143 -0
  236. package/src/providers/hrmos_kintai/business-schemas.d.ts +4 -0
  237. package/src/providers/hrmos_kintai/business-schemas.js +320 -0
  238. package/src/providers/hrmos_kintai/executors.d.ts +4 -0
  239. package/src/providers/hrmos_kintai/executors.js +61 -0
  240. package/src/providers/hrmos_kintai/export-actions.d.ts +2 -0
  241. package/src/providers/hrmos_kintai/export-actions.js +58 -0
  242. package/src/providers/hrmos_kintai/operations.d.ts +9 -0
  243. package/src/providers/hrmos_kintai/operations.js +278 -0
  244. package/src/providers/hrmos_kintai/runtime.d.ts +10 -0
  245. package/src/providers/hrmos_kintai/runtime.js +217 -0
  246. package/src/providers/hrmos_kintai/schemas.d.ts +10 -0
  247. package/src/providers/hrmos_kintai/schemas.js +70 -0
  248. package/src/providers/humor_api/actions.d.ts +2 -0
  249. package/src/providers/humor_api/actions.js +96 -0
  250. package/src/providers/humor_api/executors.d.ts +4 -0
  251. package/src/providers/humor_api/executors.js +76 -0
  252. package/src/providers/intercom/executors.d.ts +2 -0
  253. package/src/providers/intercom/executors.js +2 -0
  254. package/src/providers/intercom/trigger-on-conversation-event.d.ts +2 -0
  255. package/src/providers/intercom/trigger-on-conversation-event.definition.d.ts +4 -0
  256. package/src/providers/intercom/trigger-on-conversation-event.definition.js +42 -0
  257. package/src/providers/intercom/trigger-on-conversation-event.js +23 -0
  258. package/src/providers/jira/executors.d.ts +2 -0
  259. package/src/providers/jira/executors.js +2 -0
  260. package/src/providers/jira/trigger-on-issue-event.d.ts +2 -0
  261. package/src/providers/jira/trigger-on-issue-event.definition.d.ts +4 -0
  262. package/src/providers/jira/trigger-on-issue-event.definition.js +44 -0
  263. package/src/providers/jira/trigger-on-issue-event.js +116 -0
  264. package/src/providers/jira/trigger-resource.d.ts +4 -0
  265. package/src/providers/jira/trigger-resource.js +141 -0
  266. package/src/providers/kaonavi/actions.d.ts +4 -0
  267. package/src/providers/kaonavi/actions.js +144 -0
  268. package/src/providers/kaonavi/additional-actions.d.ts +10 -0
  269. package/src/providers/kaonavi/additional-actions.js +203 -0
  270. package/src/providers/kaonavi/executors.d.ts +4 -0
  271. package/src/providers/kaonavi/executors.js +69 -0
  272. package/src/providers/kaonavi/runtime.d.ts +4 -0
  273. package/src/providers/kaonavi/runtime.js +69 -0
  274. package/src/providers/keenable/executors.d.ts +4 -0
  275. package/src/providers/keenable/executors.js +20 -0
  276. package/src/providers/keenable/runtime.d.ts +26 -0
  277. package/src/providers/keenable/runtime.js +89 -0
  278. package/src/providers/kolsprite_mcp/actions.d.ts +2 -0
  279. package/src/providers/kolsprite_mcp/actions.js +519 -0
  280. package/src/providers/kolsprite_mcp/executors.d.ts +4 -0
  281. package/src/providers/kolsprite_mcp/executors.js +89 -0
  282. package/src/providers/linear_mcp/actions.d.ts +14 -0
  283. package/src/providers/linear_mcp/actions.js +134 -0
  284. package/src/providers/linear_mcp/runtime-mcp.d.ts +7 -1
  285. package/src/providers/linear_mcp/runtime-mcp.js +140 -28
  286. package/src/providers/linkfox/runtime.js +48 -51
  287. package/src/providers/listinggood/actions.d.ts +2 -0
  288. package/src/providers/listinggood/actions.js +95 -0
  289. package/src/providers/listinggood/executors.d.ts +4 -0
  290. package/src/providers/listinggood/executors.js +99 -0
  291. package/src/providers/litescrape/actions.d.ts +12 -0
  292. package/src/providers/litescrape/actions.js +124 -0
  293. package/src/providers/litescrape/airbnb-schemas.d.ts +2 -0
  294. package/src/providers/litescrape/airbnb-schemas.js +72 -0
  295. package/src/providers/litescrape/aliexpress-schemas.d.ts +2 -0
  296. package/src/providers/litescrape/aliexpress-schemas.js +52 -0
  297. package/src/providers/litescrape/amazon-schemas.d.ts +2 -0
  298. package/src/providers/litescrape/amazon-schemas.js +358 -0
  299. package/src/providers/litescrape/apartments-schemas.d.ts +2 -0
  300. package/src/providers/litescrape/apartments-schemas.js +45 -0
  301. package/src/providers/litescrape/apple-schemas.d.ts +2 -0
  302. package/src/providers/litescrape/apple-schemas.js +215 -0
  303. package/src/providers/litescrape/ashby-schemas.d.ts +2 -0
  304. package/src/providers/litescrape/ashby-schemas.js +82 -0
  305. package/src/providers/litescrape/baidu-schemas.d.ts +2 -0
  306. package/src/providers/litescrape/baidu-schemas.js +31 -0
  307. package/src/providers/litescrape/bestbuy-schemas.d.ts +2 -0
  308. package/src/providers/litescrape/bestbuy-schemas.js +56 -0
  309. package/src/providers/litescrape/bing-schemas.d.ts +2 -0
  310. package/src/providers/litescrape/bing-schemas.js +315 -0
  311. package/src/providers/litescrape/brave-schemas.d.ts +2 -0
  312. package/src/providers/litescrape/brave-schemas.js +101 -0
  313. package/src/providers/litescrape/copilot-schemas.d.ts +2 -0
  314. package/src/providers/litescrape/copilot-schemas.js +590 -0
  315. package/src/providers/litescrape/duckduckgo-schemas.d.ts +2 -0
  316. package/src/providers/litescrape/duckduckgo-schemas.js +64 -0
  317. package/src/providers/litescrape/ebay-schemas.d.ts +2 -0
  318. package/src/providers/litescrape/ebay-schemas.js +300 -0
  319. package/src/providers/litescrape/etsy-schemas.d.ts +2 -0
  320. package/src/providers/litescrape/etsy-schemas.js +52 -0
  321. package/src/providers/litescrape/eventbrite-schemas.d.ts +2 -0
  322. package/src/providers/litescrape/eventbrite-schemas.js +43 -0
  323. package/src/providers/litescrape/executors.d.ts +4 -0
  324. package/src/providers/litescrape/executors.js +138 -0
  325. package/src/providers/litescrape/facebook-schemas.d.ts +2 -0
  326. package/src/providers/litescrape/facebook-schemas.js +283 -0
  327. package/src/providers/litescrape/glassdoor-schemas.d.ts +2 -0
  328. package/src/providers/litescrape/glassdoor-schemas.js +147 -0
  329. package/src/providers/litescrape/google-schemas.d.ts +2 -0
  330. package/src/providers/litescrape/google-schemas.js +1686 -0
  331. package/src/providers/litescrape/homedepot-schemas.d.ts +2 -0
  332. package/src/providers/litescrape/homedepot-schemas.js +58 -0
  333. package/src/providers/litescrape/homes-schemas.d.ts +2 -0
  334. package/src/providers/litescrape/homes-schemas.js +45 -0
  335. package/src/providers/litescrape/ikea-schemas.d.ts +2 -0
  336. package/src/providers/litescrape/ikea-schemas.js +56 -0
  337. package/src/providers/litescrape/indeed-schemas.d.ts +2 -0
  338. package/src/providers/litescrape/indeed-schemas.js +141 -0
  339. package/src/providers/litescrape/instagram-schemas.d.ts +2 -0
  340. package/src/providers/litescrape/instagram-schemas.js +234 -0
  341. package/src/providers/litescrape/kroger-schemas.d.ts +2 -0
  342. package/src/providers/litescrape/kroger-schemas.js +62 -0
  343. package/src/providers/litescrape/levels-schemas.d.ts +2 -0
  344. package/src/providers/litescrape/levels-schemas.js +153 -0
  345. package/src/providers/litescrape/naver-schemas.d.ts +2 -0
  346. package/src/providers/litescrape/naver-schemas.js +107 -0
  347. package/src/providers/litescrape/realtor-schemas.d.ts +2 -0
  348. package/src/providers/litescrape/realtor-schemas.js +47 -0
  349. package/src/providers/litescrape/redfin-schemas.d.ts +2 -0
  350. package/src/providers/litescrape/redfin-schemas.js +112 -0
  351. package/src/providers/litescrape/shared.d.ts +9 -0
  352. package/src/providers/litescrape/shared.js +1 -0
  353. package/src/providers/litescrape/sprouts-schemas.d.ts +2 -0
  354. package/src/providers/litescrape/sprouts-schemas.js +72 -0
  355. package/src/providers/litescrape/target-schemas.d.ts +2 -0
  356. package/src/providers/litescrape/target-schemas.js +56 -0
  357. package/src/providers/litescrape/tiktok-schemas.d.ts +2 -0
  358. package/src/providers/litescrape/tiktok-schemas.js +625 -0
  359. package/src/providers/litescrape/tools.d.ts +2 -0
  360. package/src/providers/litescrape/tools.js +88 -0
  361. package/src/providers/litescrape/tripadvisor-schemas.d.ts +2 -0
  362. package/src/providers/litescrape/tripadvisor-schemas.js +119 -0
  363. package/src/providers/litescrape/walmart-schemas.d.ts +2 -0
  364. package/src/providers/litescrape/walmart-schemas.js +52 -0
  365. package/src/providers/litescrape/wayfair-schemas.d.ts +2 -0
  366. package/src/providers/litescrape/wayfair-schemas.js +52 -0
  367. package/src/providers/litescrape/web-schemas.d.ts +2 -0
  368. package/src/providers/litescrape/web-schemas.js +463 -0
  369. package/src/providers/litescrape/wholefoods-schemas.d.ts +2 -0
  370. package/src/providers/litescrape/wholefoods-schemas.js +56 -0
  371. package/src/providers/litescrape/x-schemas.d.ts +2 -0
  372. package/src/providers/litescrape/x-schemas.js +128 -0
  373. package/src/providers/litescrape/yahoo-schemas.d.ts +2 -0
  374. package/src/providers/litescrape/yahoo-schemas.js +234 -0
  375. package/src/providers/litescrape/yandex-schemas.d.ts +2 -0
  376. package/src/providers/litescrape/yandex-schemas.js +179 -0
  377. package/src/providers/litescrape/yelp-schemas.d.ts +2 -0
  378. package/src/providers/litescrape/yelp-schemas.js +130 -0
  379. package/src/providers/litescrape/youtube-schemas.d.ts +2 -0
  380. package/src/providers/litescrape/youtube-schemas.js +128 -0
  381. package/src/providers/litescrape/zillow-schemas.d.ts +2 -0
  382. package/src/providers/litescrape/zillow-schemas.js +128 -0
  383. package/src/providers/litescrape/ziprecruiter-schemas.d.ts +2 -0
  384. package/src/providers/litescrape/ziprecruiter-schemas.js +96 -0
  385. package/src/providers/magichour/actions.d.ts +22 -0
  386. package/src/providers/magichour/actions.js +308 -0
  387. package/src/providers/magichour/audio-schemas.d.ts +2 -0
  388. package/src/providers/magichour/audio-schemas.js +54 -0
  389. package/src/providers/magichour/executors.d.ts +4 -0
  390. package/src/providers/magichour/executors.js +115 -0
  391. package/src/providers/magichour/image-schemas.d.ts +2 -0
  392. package/src/providers/magichour/image-schemas.js +443 -0
  393. package/src/providers/magichour/project-schemas.d.ts +8 -0
  394. package/src/providers/magichour/project-schemas.js +65 -0
  395. package/src/providers/magichour/shared-schemas.d.ts +8 -0
  396. package/src/providers/magichour/shared-schemas.js +18 -0
  397. package/src/providers/magichour/utility-schemas.d.ts +11 -0
  398. package/src/providers/magichour/utility-schemas.js +150 -0
  399. package/src/providers/magichour/video-schemas.d.ts +2 -0
  400. package/src/providers/magichour/video-schemas.js +629 -0
  401. package/src/providers/magichour/voices.d.ts +1 -0
  402. package/src/providers/magichour/voices.js +1268 -0
  403. package/src/providers/mcp-tools.d.ts +3 -0
  404. package/src/providers/mcp-tools.js +5 -4
  405. package/src/providers/minimax/executors.js +19 -4
  406. package/src/providers/minimax/text-models.d.ts +2 -0
  407. package/src/providers/minimax/text-models.js +34 -0
  408. package/src/providers/moneyforward_mcp/manifest.d.ts +0 -2
  409. package/src/providers/moneyforward_mcp/manifest.js +1 -1
  410. package/src/providers/notion/executors.js +36 -3
  411. package/src/providers/notion_mcp/executors.js +53 -24
  412. package/src/providers/notion_mcp/mcp-response.d.ts +26 -0
  413. package/src/providers/notion_mcp/mcp-response.js +95 -0
  414. package/src/providers/octen/actions.d.ts +6 -0
  415. package/src/providers/octen/actions.js +919 -0
  416. package/src/providers/octen/executors.d.ts +4 -0
  417. package/src/providers/octen/executors.js +125 -0
  418. package/src/providers/octen/inputs.d.ts +2 -0
  419. package/src/providers/octen/inputs.js +2434 -0
  420. package/src/providers/octen/research.d.ts +1 -0
  421. package/src/providers/octen/research.js +86 -0
  422. package/src/providers/omise/executors.js +1 -1
  423. package/src/providers/openrouter/executors.js +7 -4
  424. package/src/providers/orbit/actions.d.ts +2 -0
  425. package/src/providers/orbit/actions.js +3030 -0
  426. package/src/providers/orbit/executors.d.ts +4 -0
  427. package/src/providers/orbit/executors.js +106 -0
  428. package/src/providers/orbit/routes.d.ts +9 -0
  429. package/src/providers/orbit/routes.js +170 -0
  430. package/src/providers/outlook/executors.js +35 -2
  431. package/src/providers/pandadoc/executors.d.ts +2 -0
  432. package/src/providers/pandadoc/executors.js +2 -0
  433. package/src/providers/pandadoc/trigger-on-document-event.d.ts +2 -0
  434. package/src/providers/pandadoc/trigger-on-document-event.definition.d.ts +4 -0
  435. package/src/providers/pandadoc/trigger-on-document-event.definition.js +33 -0
  436. package/src/providers/pandadoc/trigger-on-document-event.js +96 -0
  437. package/src/providers/pipedrive/executors.d.ts +2 -0
  438. package/src/providers/pipedrive/executors.js +2 -0
  439. package/src/providers/pipedrive/trigger-on-crm-event.d.ts +2 -0
  440. package/src/providers/pipedrive/trigger-on-crm-event.definition.d.ts +4 -0
  441. package/src/providers/pipedrive/trigger-on-crm-event.definition.js +30 -0
  442. package/src/providers/pipedrive/trigger-on-crm-event.js +101 -0
  443. package/src/providers/ploid/actions.d.ts +16 -0
  444. package/src/providers/ploid/actions.js +23 -0
  445. package/src/providers/ploid/endpoints.json +8440 -0
  446. package/src/providers/ploid/executors.d.ts +4 -0
  447. package/src/providers/ploid/executors.js +119 -0
  448. package/src/providers/porteden/actions.d.ts +2 -0
  449. package/src/providers/porteden/actions.js +162 -0
  450. package/src/providers/porteden/executors.d.ts +4 -0
  451. package/src/providers/porteden/executors.js +140 -0
  452. package/src/providers/provider-runtime.d.ts +16 -2
  453. package/src/providers/provider-runtime.js +37 -4
  454. package/src/providers/pushover/runtime.js +28 -31
  455. package/src/providers/qianfan/runtime.js +16 -19
  456. package/src/providers/qiuxiaoce/actions.d.ts +2 -0
  457. package/src/providers/qiuxiaoce/actions.js +248 -0
  458. package/src/providers/qiuxiaoce/executors.d.ts +4 -0
  459. package/src/providers/qiuxiaoce/executors.js +76 -0
  460. package/src/providers/qiuxiaoce/routes.d.ts +1 -0
  461. package/src/providers/qiuxiaoce/routes.js +20 -0
  462. package/src/providers/qqmusic/actions.d.ts +2 -0
  463. package/src/providers/qqmusic/actions.js +229 -0
  464. package/src/providers/qqmusic/executors.d.ts +4 -0
  465. package/src/providers/qqmusic/executors.js +92 -0
  466. package/src/providers/qqmusic/report-schema.d.ts +4 -0
  467. package/src/providers/qqmusic/report-schema.js +119 -0
  468. package/src/providers/rakuraku_seisan/actions.d.ts +2 -0
  469. package/src/providers/rakuraku_seisan/actions.js +50 -0
  470. package/src/providers/rakuraku_seisan/executors.d.ts +4 -0
  471. package/src/providers/rakuraku_seisan/executors.js +40 -0
  472. package/src/providers/rakuraku_seisan/runtime.d.ts +8 -0
  473. package/src/providers/rakuraku_seisan/runtime.js +251 -0
  474. package/src/providers/redfox/actions-account.d.ts +2 -0
  475. package/src/providers/redfox/actions-account.js +24 -0
  476. package/src/providers/redfox/actions-autohome.d.ts +2 -0
  477. package/src/providers/redfox/actions-autohome.js +51 -0
  478. package/src/providers/redfox/actions-baijiahao.d.ts +2 -0
  479. package/src/providers/redfox/actions-baijiahao.js +58 -0
  480. package/src/providers/redfox/actions-bilibili.d.ts +2 -0
  481. package/src/providers/redfox/actions-bilibili.js +67 -0
  482. package/src/providers/redfox/actions-dongchedi.d.ts +2 -0
  483. package/src/providers/redfox/actions-dongchedi.js +49 -0
  484. package/src/providers/redfox/actions-douyin.d.ts +2 -0
  485. package/src/providers/redfox/actions-douyin.js +297 -0
  486. package/src/providers/redfox/actions-generation.d.ts +2 -0
  487. package/src/providers/redfox/actions-generation.js +293 -0
  488. package/src/providers/redfox/actions-instagram.d.ts +2 -0
  489. package/src/providers/redfox/actions-instagram.js +49 -0
  490. package/src/providers/redfox/actions-kuaishou.d.ts +2 -0
  491. package/src/providers/redfox/actions-kuaishou.js +53 -0
  492. package/src/providers/redfox/actions-search.d.ts +2 -0
  493. package/src/providers/redfox/actions-search.js +125 -0
  494. package/src/providers/redfox/actions-tiktok.d.ts +2 -0
  495. package/src/providers/redfox/actions-tiktok.js +136 -0
  496. package/src/providers/redfox/actions-tools.d.ts +2 -0
  497. package/src/providers/redfox/actions-tools.js +151 -0
  498. package/src/providers/redfox/actions-toutiao.d.ts +2 -0
  499. package/src/providers/redfox/actions-toutiao.js +68 -0
  500. package/src/providers/redfox/actions-transcription.d.ts +2 -0
  501. package/src/providers/redfox/actions-transcription.js +165 -0
  502. package/src/providers/redfox/actions-wechat-channel.d.ts +2 -0
  503. package/src/providers/redfox/actions-wechat-channel.js +63 -0
  504. package/src/providers/redfox/actions-wechat.d.ts +2 -0
  505. package/src/providers/redfox/actions-wechat.js +302 -0
  506. package/src/providers/redfox/actions-weibo.d.ts +2 -0
  507. package/src/providers/redfox/actions-weibo.js +61 -0
  508. package/src/providers/redfox/actions-x.d.ts +2 -0
  509. package/src/providers/redfox/actions-x.js +126 -0
  510. package/src/providers/redfox/actions-xiaohongshu.d.ts +2 -0
  511. package/src/providers/redfox/actions-xiaohongshu.js +244 -0
  512. package/src/providers/redfox/actions-yiche.d.ts +2 -0
  513. package/src/providers/redfox/actions-yiche.js +59 -0
  514. package/src/providers/redfox/actions-youtube.d.ts +2 -0
  515. package/src/providers/redfox/actions-youtube.js +64 -0
  516. package/src/providers/redfox/actions-zhihu.d.ts +2 -0
  517. package/src/providers/redfox/actions-zhihu.js +26 -0
  518. package/src/providers/redfox/actions.d.ts +2 -0
  519. package/src/providers/redfox/actions.js +49 -0
  520. package/src/providers/redfox/executors.d.ts +2 -14
  521. package/src/providers/redfox/executors.js +28 -551
  522. package/src/providers/redfox/routes.d.ts +11 -0
  523. package/src/providers/redfox/routes.js +329 -0
  524. package/src/providers/redfox/runtime.d.ts +6 -0
  525. package/src/providers/redfox/runtime.js +151 -0
  526. package/src/providers/redfox/schemas.d.ts +9 -0
  527. package/src/providers/redfox/schemas.js +40 -0
  528. package/src/providers/registry.generated.js +47 -0
  529. package/src/providers/resend/executors.d.ts +2 -0
  530. package/src/providers/resend/executors.js +2 -0
  531. package/src/providers/resend/trigger-on-email-event.d.ts +2 -0
  532. package/src/providers/resend/trigger-on-email-event.definition.d.ts +4 -0
  533. package/src/providers/resend/trigger-on-email-event.definition.js +37 -0
  534. package/src/providers/resend/trigger-on-email-event.js +125 -0
  535. package/src/providers/salesforce/chatter-routes.d.ts +107 -0
  536. package/src/providers/salesforce/chatter-routes.js +140 -0
  537. package/src/providers/salesforce/context.d.ts +16 -0
  538. package/src/providers/salesforce/context.js +61 -0
  539. package/src/providers/salesforce/executors.d.ts +5 -0
  540. package/src/providers/salesforce/executors.js +64 -0
  541. package/src/providers/salesforce/media.d.ts +9 -0
  542. package/src/providers/salesforce/media.js +66 -0
  543. package/src/providers/salesforce/oauth.d.ts +2 -0
  544. package/src/providers/salesforce/oauth.js +89 -0
  545. package/src/providers/salesforce/runtime-analytics.d.ts +2 -0
  546. package/src/providers/salesforce/runtime-analytics.js +60 -0
  547. package/src/providers/salesforce/runtime-approvals.d.ts +2 -0
  548. package/src/providers/salesforce/runtime-approvals.js +52 -0
  549. package/src/providers/salesforce/runtime-automation.d.ts +2 -0
  550. package/src/providers/salesforce/runtime-automation.js +64 -0
  551. package/src/providers/salesforce/runtime-base.d.ts +2 -0
  552. package/src/providers/salesforce/runtime-base.js +62 -0
  553. package/src/providers/salesforce/runtime-bulk.d.ts +2 -0
  554. package/src/providers/salesforce/runtime-bulk.js +98 -0
  555. package/src/providers/salesforce/runtime-chatter.d.ts +2 -0
  556. package/src/providers/salesforce/runtime-chatter.js +78 -0
  557. package/src/providers/salesforce/runtime-data.d.ts +2 -0
  558. package/src/providers/salesforce/runtime-data.js +207 -0
  559. package/src/providers/salesforce/runtime-files.d.ts +2 -0
  560. package/src/providers/salesforce/runtime-files.js +108 -0
  561. package/src/providers/salesforce/runtime-knowledge.d.ts +2 -0
  562. package/src/providers/salesforce/runtime-knowledge.js +34 -0
  563. package/src/providers/salesforce/runtime-leads.d.ts +2 -0
  564. package/src/providers/salesforce/runtime-leads.js +117 -0
  565. package/src/providers/salesforce/runtime-platform.d.ts +2 -0
  566. package/src/providers/salesforce/runtime-platform.js +67 -0
  567. package/src/providers/salesforce/transport.d.ts +9 -0
  568. package/src/providers/salesforce/transport.js +65 -0
  569. package/src/providers/sansan/actions.d.ts +2 -0
  570. package/src/providers/sansan/actions.js +165 -0
  571. package/src/providers/sansan/admin-actions.d.ts +2 -0
  572. package/src/providers/sansan/admin-actions.js +181 -0
  573. package/src/providers/sansan/admin.d.ts +2 -0
  574. package/src/providers/sansan/admin.js +42 -0
  575. package/src/providers/sansan/business-actions.d.ts +2 -0
  576. package/src/providers/sansan/business-actions.js +160 -0
  577. package/src/providers/sansan/business.d.ts +2 -0
  578. package/src/providers/sansan/business.js +51 -0
  579. package/src/providers/sansan/executors.d.ts +4 -0
  580. package/src/providers/sansan/executors.js +59 -0
  581. package/src/providers/sansan/file-schema.d.ts +2 -0
  582. package/src/providers/sansan/file-schema.js +8 -0
  583. package/src/providers/sansan/files.d.ts +11 -0
  584. package/src/providers/sansan/files.js +49 -0
  585. package/src/providers/sansan/organization-actions.d.ts +2 -0
  586. package/src/providers/sansan/organization-actions.js +198 -0
  587. package/src/providers/sansan/organization-columns.d.ts +2 -0
  588. package/src/providers/sansan/organization-columns.js +33 -0
  589. package/src/providers/sansan/organization.d.ts +2 -0
  590. package/src/providers/sansan/organization.js +88 -0
  591. package/src/providers/sansan/read.d.ts +2 -0
  592. package/src/providers/sansan/read.js +25 -0
  593. package/src/providers/sansan/request.d.ts +22 -0
  594. package/src/providers/sansan/request.js +94 -0
  595. package/src/providers/sansan/schemas.d.ts +7 -0
  596. package/src/providers/sansan/schemas.js +72 -0
  597. package/src/providers/saperly/actions.d.ts +17 -0
  598. package/src/providers/saperly/actions.js +869 -0
  599. package/src/providers/saperly/executors.d.ts +4 -0
  600. package/src/providers/saperly/executors.js +113 -0
  601. package/src/providers/saperly/schemas.d.ts +33 -0
  602. package/src/providers/saperly/schemas.js +601 -0
  603. package/src/providers/search1api/actions.d.ts +2 -0
  604. package/src/providers/search1api/actions.js +39 -0
  605. package/src/providers/search1api/executors.d.ts +4 -0
  606. package/src/providers/search1api/executors.js +72 -0
  607. package/src/providers/search1api/runtime.d.ts +3 -0
  608. package/src/providers/search1api/runtime.js +44 -0
  609. package/src/providers/search1api/schemas.d.ts +3 -0
  610. package/src/providers/search1api/schemas.js +1834 -0
  611. package/src/providers/sentry/executors.d.ts +2 -0
  612. package/src/providers/sentry/executors.js +2 -0
  613. package/src/providers/sentry/trigger-on-issue-alert.d.ts +2 -0
  614. package/src/providers/sentry/trigger-on-issue-alert.definition.d.ts +4 -0
  615. package/src/providers/sentry/trigger-on-issue-alert.definition.js +64 -0
  616. package/src/providers/sentry/trigger-on-issue-alert.js +80 -0
  617. package/src/providers/sf_express/runtime.d.ts +0 -16
  618. package/src/providers/sf_express/runtime.js +2 -2
  619. package/src/providers/shopee/runtime.d.ts +33 -29
  620. package/src/providers/shopee/runtime.js +166 -169
  621. package/src/providers/slack/runtime.d.ts +6 -1
  622. package/src/providers/slack/runtime.js +21 -0
  623. package/src/providers/slackbot/actions.js +17 -1
  624. package/src/providers/slackbot/executors.d.ts +2 -0
  625. package/src/providers/slackbot/executors.js +5 -1
  626. package/src/providers/slackbot/trigger-on-event.d.ts +2 -0
  627. package/src/providers/slackbot/trigger-on-event.definition.d.ts +4 -0
  628. package/src/providers/slackbot/trigger-on-event.definition.js +57 -0
  629. package/src/providers/slackbot/trigger-on-event.js +23 -0
  630. package/src/providers/smarthr/actions.d.ts +2 -0
  631. package/src/providers/smarthr/actions.js +286 -0
  632. package/src/providers/smarthr/employee-runtime.d.ts +1 -0
  633. package/src/providers/smarthr/employee-runtime.js +63 -0
  634. package/src/providers/smarthr/employee-schema.d.ts +3 -0
  635. package/src/providers/smarthr/employee-schema.js +222 -0
  636. package/src/providers/smarthr/executors.d.ts +4 -0
  637. package/src/providers/smarthr/executors.js +35 -0
  638. package/src/providers/smarthr/pagination.d.ts +1 -0
  639. package/src/providers/smarthr/pagination.js +84 -0
  640. package/src/providers/smarthr/resource-routes.d.ts +16 -0
  641. package/src/providers/smarthr/resource-routes.js +163 -0
  642. package/src/providers/smarthr/runtime.d.ts +13 -0
  643. package/src/providers/smarthr/runtime.js +242 -0
  644. package/src/providers/smarthr/supplemental-actions.d.ts +2 -0
  645. package/src/providers/smarthr/supplemental-actions.js +541 -0
  646. package/src/providers/smooth/actions.d.ts +2 -0
  647. package/src/providers/smooth/actions.js +138 -0
  648. package/src/providers/smooth/executors.d.ts +4 -0
  649. package/src/providers/smooth/executors.js +102 -0
  650. package/src/providers/surf/actions.d.ts +21 -0
  651. package/src/providers/surf/actions.js +26 -0
  652. package/src/providers/surf/discovery-definitions.d.ts +2 -0
  653. package/src/providers/surf/discovery-definitions.js +871 -0
  654. package/src/providers/surf/equity-definitions.d.ts +2 -0
  655. package/src/providers/surf/equity-definitions.js +322 -0
  656. package/src/providers/surf/executors.d.ts +4 -0
  657. package/src/providers/surf/executors.js +131 -0
  658. package/src/providers/surf/market-definitions.d.ts +2 -0
  659. package/src/providers/surf/market-definitions.js +885 -0
  660. package/src/providers/surf/onchain-definitions.d.ts +2 -0
  661. package/src/providers/surf/onchain-definitions.js +901 -0
  662. package/src/providers/surf/prediction-definitions.d.ts +2 -0
  663. package/src/providers/surf/prediction-definitions.js +683 -0
  664. package/src/providers/surf/shared-schemas.d.ts +18 -0
  665. package/src/providers/surf/shared-schemas.js +37 -0
  666. package/src/providers/tally/executors.d.ts +2 -0
  667. package/src/providers/tally/executors.js +2 -0
  668. package/src/providers/tally/trigger-on-form-response.d.ts +2 -0
  669. package/src/providers/tally/trigger-on-form-response.definition.d.ts +4 -0
  670. package/src/providers/tally/trigger-on-form-response.definition.js +54 -0
  671. package/src/providers/tally/trigger-on-form-response.js +166 -0
  672. package/src/providers/tapd/actions.d.ts +8 -0
  673. package/src/providers/tapd/actions.js +89 -0
  674. package/src/providers/tapd/executors.d.ts +4 -0
  675. package/src/providers/tapd/executors.js +137 -0
  676. package/src/providers/teable/runtime.js +12 -15
  677. package/src/providers/tencent_meeting_mcp/actions.d.ts +2 -0
  678. package/src/providers/tencent_meeting_mcp/actions.js +420 -0
  679. package/src/providers/tencent_meeting_mcp/executors.d.ts +4 -0
  680. package/src/providers/tencent_meeting_mcp/executors.js +117 -0
  681. package/src/providers/threatfox/executors.d.ts +4 -0
  682. package/src/providers/threatfox/executors.js +40 -0
  683. package/src/providers/threatfox/runtime.d.ts +15 -0
  684. package/src/providers/threatfox/runtime.js +128 -0
  685. package/src/providers/ticket_tailor/runtime.js +1 -1
  686. package/src/providers/ticketmaster/runtime.js +3 -6
  687. package/src/providers/timelinesai/runtime.js +13 -16
  688. package/src/providers/tinyfish/actions.d.ts +6 -0
  689. package/src/providers/tinyfish/actions.js +19 -0
  690. package/src/providers/tinyfish/agent-actions.d.ts +2 -0
  691. package/src/providers/tinyfish/agent-actions.js +268 -0
  692. package/src/providers/tinyfish/data-actions.d.ts +2 -0
  693. package/src/providers/tinyfish/data-actions.js +186 -0
  694. package/src/providers/tinyfish/data-schemas.d.ts +7 -0
  695. package/src/providers/tinyfish/data-schemas.js +103 -0
  696. package/src/providers/tinyfish/endpoints.d.ts +14 -0
  697. package/src/providers/tinyfish/endpoints.js +1 -0
  698. package/src/providers/tinyfish/executors.d.ts +4 -0
  699. package/src/providers/tinyfish/executors.js +133 -0
  700. package/src/providers/tinyfish/management-actions.d.ts +2 -0
  701. package/src/providers/tinyfish/management-actions.js +524 -0
  702. package/src/providers/tinyfish/monitor-schemas.d.ts +5 -0
  703. package/src/providers/tinyfish/monitor-schemas.js +65 -0
  704. package/src/providers/tinyfish/research-schemas.d.ts +6 -0
  705. package/src/providers/tinyfish/research-schemas.js +71 -0
  706. package/src/providers/tradebee/actions.d.ts +2 -0
  707. package/src/providers/tradebee/actions.js +176 -0
  708. package/src/providers/tradebee/executors.d.ts +4 -0
  709. package/src/providers/tradebee/executors.js +83 -0
  710. package/src/providers/trello/executors.js +5 -2
  711. package/src/providers/twittrapi/executors.d.ts +4 -0
  712. package/src/providers/twittrapi/executors.js +17 -0
  713. package/src/providers/twittrapi/runtime.d.ts +12 -0
  714. package/src/providers/twittrapi/runtime.js +203 -0
  715. package/src/providers/typeform/executors.d.ts +2 -0
  716. package/src/providers/typeform/executors.js +2 -0
  717. package/src/providers/typeform/trigger-on-form-response.d.ts +2 -0
  718. package/src/providers/typeform/trigger-on-form-response.definition.d.ts +4 -0
  719. package/src/providers/typeform/trigger-on-form-response.definition.js +40 -0
  720. package/src/providers/typeform/trigger-on-form-response.js +68 -0
  721. package/src/providers/urlhaus/executors.d.ts +4 -0
  722. package/src/providers/urlhaus/executors.js +40 -0
  723. package/src/providers/urlhaus/runtime.d.ts +15 -0
  724. package/src/providers/urlhaus/runtime.js +142 -0
  725. package/src/providers/vaquill/actions.d.ts +13 -0
  726. package/src/providers/vaquill/actions.js +529 -0
  727. package/src/providers/vaquill/executors.d.ts +4 -0
  728. package/src/providers/vaquill/executors.js +141 -0
  729. package/src/providers/vaquill/schemas.d.ts +67 -0
  730. package/src/providers/vaquill/schemas.js +4953 -0
  731. package/src/providers/vercel/executors.d.ts +2 -0
  732. package/src/providers/vercel/executors.js +2 -0
  733. package/src/providers/vercel/trigger-on-deployment-event.d.ts +2 -0
  734. package/src/providers/vercel/trigger-on-deployment-event.definition.d.ts +5 -0
  735. package/src/providers/vercel/trigger-on-deployment-event.definition.js +41 -0
  736. package/src/providers/vercel/trigger-on-deployment-event.js +102 -0
  737. package/src/providers/wangdian/runtime.js +16 -19
  738. package/src/providers/weixin_bot/runtime.d.ts +0 -1
  739. package/src/providers/weixin_bot/runtime.js +1 -1
  740. package/src/providers/weixin_store/access-token.d.ts +3 -3
  741. package/src/providers/weixin_store/access-token.js +15 -7
  742. package/src/providers/weixin_store/executors.js +214 -1
  743. package/src/providers/weread/actions.d.ts +2 -0
  744. package/src/providers/weread/actions.js +424 -0
  745. package/src/providers/weread/executors.d.ts +4 -0
  746. package/src/providers/weread/executors.js +98 -0
  747. package/src/providers/whatsapp/runtime.js +6 -1
  748. package/src/providers/workast/runtime.js +12 -17
  749. package/src/providers/youzan/runtime.js +21 -24
  750. package/src/providers/zenkit/runtime.js +13 -19
  751. package/src/providers/zhiliaobiaoxun/actions.d.ts +2 -0
  752. package/src/providers/zhiliaobiaoxun/actions.js +138 -0
  753. package/src/providers/zhiliaobiaoxun/executors.d.ts +4 -0
  754. package/src/providers/zhiliaobiaoxun/executors.js +78 -0
  755. package/src/providers/zoom/executors.d.ts +2 -0
  756. package/src/providers/zoom/executors.js +2 -0
  757. package/src/providers/zoom/trigger-on-recording-ready.d.ts +2 -0
  758. package/src/providers/zoom/trigger-on-recording-ready.definition.d.ts +4 -0
  759. package/src/providers/zoom/trigger-on-recording-ready.definition.js +44 -0
  760. package/src/providers/zoom/trigger-on-recording-ready.js +39 -0
  761. package/src/server/api/action-example.js +12 -1
  762. package/src/server/api/auth.d.ts +2 -0
  763. package/src/server/api/auth.js +2 -1
  764. package/src/server/api/console-catalog-routes.d.ts +17 -0
  765. package/src/server/api/console-catalog-routes.js +88 -0
  766. package/src/server/api/console-oauth-routes.d.ts +18 -0
  767. package/src/server/api/console-oauth-routes.js +298 -0
  768. package/src/server/api/docs-routes.d.ts +12 -0
  769. package/src/server/api/docs-routes.js +38 -0
  770. package/src/server/api/http-utils.d.ts +1 -0
  771. package/src/server/api/http-utils.js +8 -0
  772. package/src/server/api/marketplace-routes.d.ts +7 -0
  773. package/src/server/api/marketplace-routes.js +62 -0
  774. package/src/server/api/mcp-routes.d.ts +18 -0
  775. package/src/server/api/mcp-routes.js +37 -0
  776. package/src/server/api/pattern-example.js +35 -1
  777. package/src/server/api/policy-routes.d.ts +13 -0
  778. package/src/server/api/policy-routes.js +50 -0
  779. package/src/server/api/policy-snapshot.d.ts +14 -0
  780. package/src/server/api/policy-snapshot.js +30 -0
  781. package/src/server/api/run-log-routes.d.ts +7 -0
  782. package/src/server/api/run-log-routes.js +70 -0
  783. package/src/server/api/runtime-api.d.ts +0 -7
  784. package/src/server/api/runtime-api.js +0 -13
  785. package/src/server/api/runtime-app-routes.d.ts +10 -0
  786. package/src/server/api/runtime-app-routes.js +72 -0
  787. package/src/server/api/runtime-catalog-routes.d.ts +37 -0
  788. package/src/server/api/runtime-catalog-routes.js +133 -0
  789. package/src/server/api/runtime-execution-routes.d.ts +16 -0
  790. package/src/server/api/runtime-execution-routes.js +198 -0
  791. package/src/server/api/saas-oauth-routes.d.ts +9 -0
  792. package/src/server/api/saas-oauth-routes.js +27 -0
  793. package/src/server/api/saas-project-routes.d.ts +7 -0
  794. package/src/server/api/saas-project-routes.js +16 -0
  795. package/src/server/api/transit-file-routes.d.ts +9 -0
  796. package/src/server/api/transit-file-routes.js +49 -0
  797. package/src/server/api/trigger-routes.d.ts +15 -0
  798. package/src/server/api/trigger-routes.js +48 -0
  799. package/src/server/connect-app.d.ts +1 -0
  800. package/src/server/connect-app.js +4 -1
  801. package/src/server/connect-server.d.ts +3 -54
  802. package/src/server/connect-server.js +95 -1148
  803. package/src/triggers/common/integration.d.ts +15 -3
  804. package/src/triggers/common/integration.js +5 -0
  805. package/src/triggers/common/proxy.d.ts +7 -0
  806. package/src/triggers/managed-webhook.d.ts +13 -0
  807. package/src/triggers/managed-webhook.js +48 -0
  808. package/src/triggers/request.d.ts +5 -1
  809. package/src/triggers/request.js +2 -0
  810. package/src/triggers/resources.d.ts +8 -2
  811. package/src/triggers/resources.js +31 -0
  812. package/src/triggers/signature.d.ts +3 -3
  813. package/src/triggers/signature.js +4 -6
  814. package/src/triggers/sources/configuration-schema.d.ts +5 -0
  815. package/src/triggers/sources/configuration-schema.js +118 -0
  816. package/src/triggers/sources/configuration.d.ts +115 -0
  817. package/src/triggers/sources/configuration.js +1 -0
  818. package/src/triggers/sources/definition.d.ts +61 -0
  819. package/src/triggers/sources/definition.js +3 -0
  820. package/src/triggers/sources/feishu-demands.d.ts +6 -0
  821. package/src/triggers/sources/feishu-demands.js +24 -0
  822. package/src/triggers/sources/feishu-events.d.ts +19 -0
  823. package/src/triggers/sources/feishu-events.js +108 -0
  824. package/src/triggers/sources/feishu.d.ts +3 -0
  825. package/src/triggers/sources/feishu.js +85 -0
  826. package/src/triggers/sources/fireflies.d.ts +3 -0
  827. package/src/triggers/sources/fireflies.js +100 -0
  828. package/src/triggers/sources/intercom.d.ts +3 -0
  829. package/src/triggers/sources/intercom.js +86 -0
  830. package/src/triggers/sources/jira.d.ts +3 -0
  831. package/src/triggers/sources/jira.js +120 -0
  832. package/src/triggers/sources/operation.d.ts +42 -0
  833. package/src/triggers/sources/operation.js +146 -0
  834. package/src/triggers/sources/sentry.d.ts +3 -0
  835. package/src/triggers/sources/sentry.js +125 -0
  836. package/src/triggers/sources/signature.d.ts +1 -0
  837. package/src/triggers/sources/signature.js +10 -0
  838. package/src/triggers/sources/slack.d.ts +3 -0
  839. package/src/triggers/sources/slack.js +127 -0
  840. package/src/triggers/sources/zoom.d.ts +3 -0
  841. package/src/triggers/sources/zoom.js +113 -0
  842. package/src/triggers/trigger-runner.d.ts +2 -0
  843. package/src/triggers/trigger-runner.js +52 -16
  844. package/src/providers/fastmoss_mcp/official-tools.json +0 -2922
@@ -0,0 +1,869 @@
1
+ import { s } from "../../core/json-schema.js";
2
+ import { defineProviderAction } from "../../core/provider-definition.js";
3
+ import * as schemas from "./schemas.js";
4
+ const actionLifecycles = {
5
+ place_call: { startActionId: "saperly.place_call", statusActionId: "saperly.get_call" },
6
+ create_custom_voice: { startActionId: "saperly.create_custom_voice", statusActionId: "saperly.get_custom_voice" },
7
+ };
8
+ const saperlyEndpoints = [
9
+ {
10
+ name: "health",
11
+ method: "GET",
12
+ path: "/health",
13
+ pathKeys: [],
14
+ queryKeys: [],
15
+ outputKind: "object",
16
+ operationType: "read",
17
+ description: "Liveness probe",
18
+ inputSchema: s.object("Parameters for health.", {}, { required: [] }),
19
+ outputSchema: schemas.healthOutput,
20
+ },
21
+ {
22
+ name: "list_workspace_members",
23
+ method: "GET",
24
+ path: "/workspaces/{slug}/members",
25
+ pathKeys: ["slug"],
26
+ queryKeys: [],
27
+ outputKind: "list",
28
+ operationType: "read",
29
+ description: "List the workspace members",
30
+ inputSchema: s.object("Parameters for list workspace members.", {
31
+ slug: s.string("The workspace's URL slug.", { minLength: 1 }),
32
+ }, { required: ["slug"] }),
33
+ outputSchema: schemas.listWorkspaceMembersOutput,
34
+ },
35
+ {
36
+ name: "list_workspace_keys",
37
+ method: "GET",
38
+ path: "/workspaces/{slug}/api-tokens",
39
+ pathKeys: ["slug"],
40
+ queryKeys: [],
41
+ outputKind: "list",
42
+ operationType: "read",
43
+ description: "List the workspace API tokens",
44
+ inputSchema: s.object("Parameters for list workspace keys.", {
45
+ slug: s.string("The workspace's URL slug.", { minLength: 1 }),
46
+ }, { required: ["slug"] }),
47
+ outputSchema: schemas.listWorkspaceKeysOutput,
48
+ },
49
+ {
50
+ name: "create_workspace_key",
51
+ method: "POST",
52
+ path: "/workspaces/{slug}/api-tokens",
53
+ pathKeys: ["slug"],
54
+ queryKeys: [],
55
+ outputKind: "object",
56
+ operationType: "write",
57
+ description: "Create a scoped API token",
58
+ inputSchema: s.object("Parameters for create workspace key.", {
59
+ name: s.string("Human-readable name.", { minLength: 1, maxLength: 100 }),
60
+ scopes: s.array("Granted API key scopes.", s.stringEnum("Scopes item.", ["read", "write", "admin"]), {
61
+ minItems: 1,
62
+ maxItems: 3,
63
+ }),
64
+ numberScope: s.nullable(s.array("Phone number allow-list; null or empty means all numbers within the parent grant.", s.string("Number scope item."))),
65
+ spendLimitCents: s.nullable(s.number("Per-key spending cap in cents.", { minimum: 1 })),
66
+ spendLimitResetPeriod: s.nullable(s.stringEnum("Monthly reset or null for a lifetime cap.", ["monthly"])),
67
+ slug: s.string("The workspace's URL slug.", { minLength: 1 }),
68
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
69
+ }, { required: ["name", "scopes", "slug"] }),
70
+ outputSchema: schemas.createWorkspaceKeyOutput,
71
+ },
72
+ {
73
+ name: "list_workspace_webhooks",
74
+ method: "GET",
75
+ path: "/workspaces/{slug}/webhooks",
76
+ pathKeys: ["slug"],
77
+ queryKeys: [],
78
+ outputKind: "list",
79
+ operationType: "read",
80
+ description: "List the workspace webhook endpoints",
81
+ inputSchema: s.object("Parameters for list workspace webhooks.", {
82
+ slug: s.string("The workspace's URL slug.", { minLength: 1 }),
83
+ }, { required: ["slug"] }),
84
+ outputSchema: schemas.listWorkspaceWebhooksOutput,
85
+ },
86
+ {
87
+ name: "create_workspace_webhook",
88
+ method: "POST",
89
+ path: "/workspaces/{slug}/webhooks",
90
+ pathKeys: ["slug"],
91
+ queryKeys: [],
92
+ outputKind: "object",
93
+ operationType: "write",
94
+ description: "Create a webhook endpoint",
95
+ inputSchema: s.object("Parameters for create workspace webhook.", {
96
+ url: s.string("The HTTPS URL Saperly will POST each subscribed event to.", {
97
+ minLength: 1,
98
+ maxLength: 2048,
99
+ }),
100
+ events: s.array("The event types this endpoint subscribes to (e.g. `call.completed`, `message.received`). At least one.", s.string("Events item."), { minItems: 1 }),
101
+ description: s.nullable(s.string("An optional human label for the endpoint.", { maxLength: 500 })),
102
+ slug: s.string("The workspace's URL slug.", { minLength: 1 }),
103
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
104
+ }, { required: ["url", "events", "slug"] }),
105
+ outputSchema: schemas.createWorkspaceWebhookOutput,
106
+ },
107
+ {
108
+ name: "list_webhook_deliveries",
109
+ method: "GET",
110
+ path: "/workspaces/{slug}/webhooks/{webhookId}/deliveries",
111
+ pathKeys: ["slug", "webhookId"],
112
+ queryKeys: [],
113
+ outputKind: "list",
114
+ operationType: "read",
115
+ description: "List a webhook endpoint's recent delivery attempts",
116
+ inputSchema: s.object("Parameters for list webhook deliveries.", {
117
+ slug: s.string("The URL-safe slug identifying the workspace.", { minLength: 1 }),
118
+ webhookId: s.string("The id of the webhook endpoint whose delivery history to read.", {
119
+ minLength: 1,
120
+ }),
121
+ }, { required: ["slug", "webhookId"] }),
122
+ outputSchema: schemas.listWebhookDeliveriesOutput,
123
+ },
124
+ {
125
+ name: "list_workspace_audit_events",
126
+ method: "GET",
127
+ path: "/workspaces/{slug}/audit-events",
128
+ pathKeys: ["slug"],
129
+ queryKeys: [],
130
+ outputKind: "list",
131
+ operationType: "read",
132
+ description: "List the workspace audit-log events",
133
+ inputSchema: s.object("Parameters for list workspace audit events.", {
134
+ slug: s.string("The workspace's URL slug.", { minLength: 1 }),
135
+ }, { required: ["slug"] }),
136
+ outputSchema: schemas.listWorkspaceAuditEventsOutput,
137
+ },
138
+ {
139
+ name: "revoke_workspace_key",
140
+ method: "POST",
141
+ path: "/workspaces/{slug}/api-tokens/{tokenId}/revoke",
142
+ pathKeys: ["slug", "tokenId"],
143
+ queryKeys: [],
144
+ outputKind: "object",
145
+ operationType: "destructive",
146
+ description: "Revoke an API token",
147
+ inputSchema: s.object("Parameters for revoke workspace key.", {
148
+ slug: s.string("The URL-safe slug identifying the workspace.", { minLength: 1 }),
149
+ tokenId: s.string("The id of the API token to revoke.", { minLength: 1 }),
150
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
151
+ }, { required: ["slug", "tokenId"] }),
152
+ outputSchema: schemas.revokeWorkspaceKeyOutput,
153
+ },
154
+ {
155
+ name: "send_workspace_invitation",
156
+ method: "POST",
157
+ path: "/workspaces/{slug}/invitations",
158
+ pathKeys: ["slug"],
159
+ queryKeys: [],
160
+ outputKind: "object",
161
+ operationType: "write",
162
+ description: "Invite a member by email",
163
+ inputSchema: s.object("Parameters for send workspace invitation.", {
164
+ to: s.string("The email address to send the workspace invitation to.", {
165
+ minLength: 3,
166
+ maxLength: 320,
167
+ pattern: "^[^\\s@]+@[^\\s@]+$",
168
+ }),
169
+ slug: s.string("The workspace's URL slug.", { minLength: 1 }),
170
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
171
+ }, { required: ["to", "slug"] }),
172
+ outputSchema: schemas.sendWorkspaceInvitationOutput,
173
+ },
174
+ {
175
+ name: "ask_assistant",
176
+ method: "POST",
177
+ path: "/assistant/answer",
178
+ pathKeys: [],
179
+ queryKeys: [],
180
+ outputKind: "object",
181
+ operationType: "destructive",
182
+ description: "Ask the workspace assistant a question; the assistant may use workspace tools.",
183
+ inputSchema: s.object("Parameters for ask assistant.", {
184
+ workspaceSlug: s.string("Workspace URL slug.", { minLength: 1, maxLength: 100 }),
185
+ question: s.string("Question for the workspace assistant.", {
186
+ minLength: 1,
187
+ maxLength: 2000,
188
+ }),
189
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
190
+ }, { required: ["workspaceSlug", "question"] }),
191
+ outputSchema: schemas.askAssistantOutput,
192
+ },
193
+ {
194
+ name: "list_numbers",
195
+ method: "GET",
196
+ path: "/numbers",
197
+ pathKeys: [],
198
+ queryKeys: [],
199
+ outputKind: "list",
200
+ operationType: "read",
201
+ description: "List all phone numbers in the workspace",
202
+ inputSchema: s.object("Parameters for list numbers.", {}, { required: [] }),
203
+ outputSchema: schemas.listNumbersOutput,
204
+ },
205
+ {
206
+ name: "provision_number",
207
+ method: "POST",
208
+ path: "/numbers",
209
+ pathKeys: [],
210
+ queryKeys: [],
211
+ outputKind: "object",
212
+ operationType: "write",
213
+ description: "Provision a phone number",
214
+ inputSchema: s.object("Parameters for provision number.", {
215
+ country: s.nullable(s.string("ISO 3166-1 alpha-2 country code to provision a number in (e.g. `US`, `GB`). Defaults to `US`.")),
216
+ numberType: s.nullable(s.string("The kind of number to provision (e.g. `local`, `toll_free`, `mobile`, `national`). Defaults to `local`.")),
217
+ areaCode: s.nullable(s.string("Preferred area code / city prefix to search within the country (e.g. `415`). Omit to take any available number.")),
218
+ expectedMonthlyPriceCents: s.nullable(s.number("The monthly price (in cents) you quoted to the customer. If the live order price exceeds it, provision fails with `PriceChanged` instead of charging \u2014 resubmit with `approveHigherPrice: true` to accept the higher price.")),
219
+ expectedUpfrontPriceCents: s.nullable(s.number("The one-time upfront price (in cents) you quoted to the customer. If the live order price exceeds it, provision fails with `PriceChanged` instead of charging \u2014 resubmit with `approveHigherPrice: true` to accept the higher price.")),
220
+ approveHigherPrice: s.nullable(s.boolean("Set true to accept a live order price higher than the `expected*` values you quoted, instead of failing with `PriceChanged`.")),
221
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
222
+ }, { required: [] }),
223
+ outputSchema: schemas.provisionNumberOutput,
224
+ },
225
+ {
226
+ name: "get_number",
227
+ method: "GET",
228
+ path: "/numbers/{id}",
229
+ pathKeys: ["id"],
230
+ queryKeys: [],
231
+ outputKind: "object",
232
+ operationType: "read",
233
+ description: "Get a phone number by id",
234
+ inputSchema: s.object("Parameters for get number.", {
235
+ id: s.string("The phone number's id.", { minLength: 1 }),
236
+ }, { required: ["id"] }),
237
+ outputSchema: schemas.provisionNumberOutput,
238
+ },
239
+ {
240
+ name: "release_number",
241
+ method: "POST",
242
+ path: "/numbers/{id}/release",
243
+ pathKeys: ["id"],
244
+ queryKeys: [],
245
+ outputKind: "object",
246
+ operationType: "destructive",
247
+ description: "Release a phone number",
248
+ inputSchema: s.object("Parameters for release number.", {
249
+ id: s.string("The phone number's id.", { minLength: 1 }),
250
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
251
+ }, { required: ["id"] }),
252
+ outputSchema: schemas.releaseNumberOutput,
253
+ },
254
+ {
255
+ name: "assign_connection",
256
+ method: "POST",
257
+ path: "/numbers/{id}/connection",
258
+ pathKeys: ["id"],
259
+ queryKeys: [],
260
+ outputKind: "object",
261
+ operationType: "write",
262
+ description: "Bind a connection to a number",
263
+ inputSchema: s.object("Parameters for assign connection.", {
264
+ connectionId: s.string("The id of the connection to bind to this number. The connection becomes the handler that answers calls and messages on the line."),
265
+ id: s.string("The phone number's id.", { minLength: 1 }),
266
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
267
+ }, { required: ["connectionId", "id"] }),
268
+ outputSchema: schemas.provisionNumberOutput,
269
+ },
270
+ {
271
+ name: "set_number_webhook",
272
+ method: "POST",
273
+ path: "/numbers/{id}/webhook",
274
+ pathKeys: ["id"],
275
+ queryKeys: [],
276
+ outputKind: "object",
277
+ operationType: "write",
278
+ description: "Set a number's manual-mode brain URL",
279
+ inputSchema: s.object("Parameters for set number webhook.", {
280
+ url: s.string("The per-number MANUAL-mode brain URL: a public `https://` endpoint Saperly POSTs each conversation turn to for a manual-mode line, as a fallback when the connection has no `manualWebhookUrl` and no live agent socket. This is NOT for receiving call/SMS event notifications \u2014 for those, register a workspace webhook endpoint (`POST /workspaces/:slug/webhooks`)."),
281
+ id: s.string("The phone number's id.", { minLength: 1 }),
282
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
283
+ }, { required: ["url", "id"] }),
284
+ outputSchema: schemas.provisionNumberOutput,
285
+ },
286
+ {
287
+ name: "set_sms_sender",
288
+ method: "POST",
289
+ path: "/numbers/{id}/sms-sender",
290
+ pathKeys: ["id"],
291
+ queryKeys: [],
292
+ outputKind: "object",
293
+ operationType: "write",
294
+ description: "Set the alphanumeric SMS sender id",
295
+ inputSchema: s.object("Parameters for set sms sender.", {
296
+ smsSenderId: s.nullable(s.string("Alphanumeric sender id (1\u201311 alphanumeric characters) to present on international SMS, or `null` to clear the override and send from the phone number itself.")),
297
+ id: s.string("The phone number's id.", { minLength: 1 }),
298
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
299
+ }, { required: ["smsSenderId", "id"] }),
300
+ outputSchema: schemas.provisionNumberOutput,
301
+ },
302
+ {
303
+ name: "set_caller_id",
304
+ method: "POST",
305
+ path: "/numbers/{id}/caller-id",
306
+ pathKeys: ["id"],
307
+ queryKeys: [],
308
+ outputKind: "object",
309
+ operationType: "write",
310
+ description: "Set the outbound caller ID name (CNAM)",
311
+ inputSchema: s.object("Parameters for set caller id.", {
312
+ callerIdName: s.nullable(s.string("Outbound caller ID name (1\u201315 letters, digits, or spaces) registered as the line's CNAM listing, or `null` to clear it and show the bare number.")),
313
+ id: s.string("The phone number's id.", { minLength: 1 }),
314
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
315
+ }, { required: ["callerIdName", "id"] }),
316
+ outputSchema: schemas.provisionNumberOutput,
317
+ },
318
+ {
319
+ name: "list_connections",
320
+ method: "GET",
321
+ path: "/connections",
322
+ pathKeys: [],
323
+ queryKeys: [],
324
+ outputKind: "list",
325
+ operationType: "read",
326
+ description: "List all connections in the workspace",
327
+ inputSchema: s.object("Parameters for list connections.", {}, { required: [] }),
328
+ outputSchema: schemas.listConnectionsOutput,
329
+ },
330
+ {
331
+ name: "create_connection",
332
+ method: "POST",
333
+ path: "/connections",
334
+ pathKeys: [],
335
+ queryKeys: [],
336
+ outputKind: "object",
337
+ operationType: "write",
338
+ description: "Create a connection (provisions inline)",
339
+ inputSchema: s.object("Parameters for create connection.", {
340
+ name: s.string("A human-readable name for the connection (1\u2013120 characters).", {
341
+ minLength: 1,
342
+ maxLength: 120,
343
+ }),
344
+ mode: s.nullable(s.stringEnum("How the line is handled. 'hosted' (default): an in-network voice assistant (cascade STT \u2192 LLM \u2192 TTS) is the brain. 'manual': your own LLM is the brain \u2014 Saperly forwards text turns and executes the directives you return. Audio stays in-network in both modes.", ["hosted", "manual"])),
345
+ backend: s.nullable(s.stringEnum("The hosted brain backend. Today only 'network' (an in-network voice assistant) is available; 'openai_realtime' is disabled and rejected on create/update.", ["network", "openai_realtime"])),
346
+ instructions: s.nullable(s.string("The system prompt that defines the assistant's behavior. Put any opening line here \u2014 there is no separate greeting field.")),
347
+ llm: s.nullable(s.object("The model the hosted assistant runs. Omit to use the managed default. Hosted mode only.", {
348
+ kind: s.stringEnum("Always 'managed' \u2014 the hosted assistant runs the model in-network.", [
349
+ "managed",
350
+ ]),
351
+ model: s.string('The in-network managed model the hosted assistant runs, e.g. "openai/gpt-4o".'),
352
+ }, { required: ["kind", "model"] })),
353
+ tts: s.nullable(s.object('The hosted assistant\'s text-to-speech voice. Omit `tts` to use the managed default voice; otherwise `{ "voiceId": "<id from GET /voices>" }` is enough.', {
354
+ provider: s.nullable(s.string("The text-to-speech provider. Optional \u2014 defaults to the in-network provider, which is all you normally need.")),
355
+ voiceId: s.string("The voice the hosted assistant speaks with. Use an `id` returned by `GET /voices` (optionally filtered by `?language=`). Hosted mode only."),
356
+ }, { required: ["voiceId"] })),
357
+ backgroundAudio: s.anyOf("Background audio.", [
358
+ s.object("Background audio.", {
359
+ type: s.stringEnum("Configuration type.", ["off"]),
360
+ }, { required: ["type"] }),
361
+ s.object("Background audio.", {
362
+ type: s.stringEnum("Configuration type.", ["office"]),
363
+ volume: s.number("Office background audio volume."),
364
+ }, { required: ["type", "volume"] }),
365
+ s.literal(null, {
366
+ description: "Background audio.",
367
+ }),
368
+ ]),
369
+ language: s.nullable(s.string('The spoken language as a BCP-47 tag (e.g. "en", "es", "en-US"). On hosted lines it is the in-network transcription hint \u2014 which language the caller speaks (pair it with a voice that speaks the same language, and instruct the model to reply in it). On manual lines it is the Conversation Relay language, steering in-network transcription AND the spoken voice. Discover the supported set from `GET /languages` (or filter `GET /voices` by language); any well-formed tag is accepted. Send "" to clear it (auto-detect).')),
370
+ mcpServers: s.nullable(s.array("MCP servers the hosted assistant may call as tools during a conversation. Hosted mode only.", s.object("A Model Context Protocol server the hosted assistant may call as tools mid-conversation. Hosted mode only.", {
371
+ url: s.string("Public `https://` URL of your streamable-HTTP MCP server (commonly ending in `/mcp`). SSE-only servers are not supported."),
372
+ auth: s.nullable(s.object("How Saperly authenticates to your MCP server. Use { type: 'none' } (or omit `auth`) for an open server.", {
373
+ type: s.stringEnum("Configuration type.", ["bearer", "none"]),
374
+ token: s.nullable(s.string("Bearer token sent as `Authorization: Bearer <token>` on every request to your server. Required when `type` is 'bearer'; stored encrypted and never returned in reads.")),
375
+ }, { required: ["type"] })),
376
+ allowedTools: s.nullable(s.array("Allow-list of tool names to expose to the assistant. Omit to expose every tool the server advertises.", s.string("Allowed tools item."))),
377
+ }, { required: ["url"] }))),
378
+ callControl: s.nullable(s.object("Which call-control actions the connection's brain may take, projected to whichever backend handles the call. Omitted fields fall back to defaults (end-call + DTMF on, transfer off).", {
379
+ endCall: s.nullable(s.boolean("Allow the brain to hang up the call. Defaults on.")),
380
+ sendDtmf: s.nullable(s.boolean("Allow the brain to send DTMF (touch-tone) digits. Defaults on.")),
381
+ transfer: s.nullable(s.object("Blind-transfer enablement and its allowed targets.", {
382
+ targets: s.array("Allowed blind-transfer destinations (E.164 numbers or `sip:` URIs). Transfer only takes effect with at least one target.", s.string("Targets item.")),
383
+ from: s.nullable(s.string("Optional caller ID to present on the transferred leg.")),
384
+ }, { required: ["targets"] })),
385
+ }, { required: [] })),
386
+ complianceEnabled: s.nullable(s.boolean("When true (the default), the do-not-message tool is exposed and `disclosure` is spoken as the line's first, uninterruptible utterance (the TCPA notice). When on with no `disclosure`, a standard org-named default is filled in.")),
387
+ smsAutoReply: s.nullable(s.boolean("Hosted-line opt-in to auto-answer inbound SMS with the model. Defaults off. (Manual lines forward to their webhook brain regardless.)")),
388
+ disclosure: s.nullable(s.string("The TCPA notice spoken first, uninterruptibly, when `complianceEnabled` is on. Leave empty with compliance on and Saperly fills a standard org-named default.")),
389
+ openaiRealtime: s.nullable(s.object("Config for the OpenAI-Realtime hosted backend. Only meaningful when `backend` is 'openai_realtime' (currently disabled). The OpenAI project is operator-hosted and not settable here.", {
390
+ model: s.string("The OpenAI Realtime model id."),
391
+ voice: s.nullable(s.string("The OpenAI Realtime voice. Distinct from the hosted `tts.voiceId` \u2014 this names a built-in OpenAI Realtime voice.")),
392
+ }, { required: ["model"] })),
393
+ manualWebhookUrl: s.nullable(s.string('Manual-mode webhook-brain URL: where Saperly POSTs each turn (signed with the connection\'s `manualSecret`) when no live agent socket is connected. Only meaningful for manual mode; send "" to clear it.')),
394
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
395
+ }, { required: ["name"] }),
396
+ outputSchema: schemas.createConnectionOutput,
397
+ },
398
+ {
399
+ name: "get_connection",
400
+ method: "GET",
401
+ path: "/connections/{id}",
402
+ pathKeys: ["id"],
403
+ queryKeys: [],
404
+ outputKind: "object",
405
+ operationType: "read",
406
+ description: "Get a connection by id",
407
+ inputSchema: s.object("Parameters for get connection.", {
408
+ id: s.string("The connection's id.", { minLength: 1 }),
409
+ }, { required: ["id"] }),
410
+ outputSchema: schemas.createConnectionOutput,
411
+ },
412
+ {
413
+ name: "update_connection",
414
+ method: "PATCH",
415
+ path: "/connections/{id}",
416
+ pathKeys: ["id"],
417
+ queryKeys: [],
418
+ outputKind: "object",
419
+ operationType: "write",
420
+ description: "Update a connection (re-syncs the carrier)",
421
+ inputSchema: s.object("Parameters for update connection.", {
422
+ name: s.nullable(s.string("A human-readable name for the connection (1\u2013120 characters).", {
423
+ minLength: 1,
424
+ maxLength: 120,
425
+ })),
426
+ mode: s.nullable(s.stringEnum("How the line is handled. 'hosted' (default): an in-network voice assistant (cascade STT \u2192 LLM \u2192 TTS) is the brain. 'manual': your own LLM is the brain \u2014 Saperly forwards text turns and executes the directives you return. Audio stays in-network in both modes.", ["hosted", "manual"])),
427
+ backend: s.nullable(s.stringEnum("The hosted brain backend. Today only 'network' is available; 'openai_realtime' is disabled and rejected.", ["network", "openai_realtime"])),
428
+ instructions: s.nullable(s.string("The system prompt that defines the assistant's behavior.")),
429
+ llm: s.nullable(s.object("The model the hosted assistant runs. Omit to use the managed default. Hosted mode only.", {
430
+ kind: s.stringEnum("Always 'managed' \u2014 the hosted assistant runs the model in-network.", [
431
+ "managed",
432
+ ]),
433
+ model: s.string('The in-network managed model the hosted assistant runs, e.g. "openai/gpt-4o".'),
434
+ }, { required: ["kind", "model"] })),
435
+ tts: s.nullable(s.object('The hosted assistant\'s text-to-speech voice. Omit `tts` to use the managed default voice; otherwise `{ "voiceId": "<id from GET /voices>" }` is enough.', {
436
+ provider: s.nullable(s.string("The text-to-speech provider. Optional \u2014 defaults to the in-network provider, which is all you normally need.")),
437
+ voiceId: s.string("The voice the hosted assistant speaks with. Use an `id` returned by `GET /voices` (optionally filtered by `?language=`). Hosted mode only."),
438
+ }, { required: ["voiceId"] })),
439
+ backgroundAudio: s.anyOf("Background audio.", [
440
+ s.object("Background audio.", {
441
+ type: s.stringEnum("Configuration type.", ["off"]),
442
+ }, { required: ["type"] }),
443
+ s.object("Background audio.", {
444
+ type: s.stringEnum("Configuration type.", ["office"]),
445
+ volume: s.number("Office background audio volume."),
446
+ }, { required: ["type", "volume"] }),
447
+ s.literal(null, {
448
+ description: "Background audio.",
449
+ }),
450
+ ]),
451
+ language: s.nullable(s.string('The spoken language as a BCP-47 tag (e.g. "en", "es", "en-US"). Hosted: the in-network transcription hint. Manual: the Conversation Relay language (steers in-network transcription + the spoken voice). Discover values from `GET /languages`. Send "" to clear it back to auto-detect.')),
452
+ mcpServers: s.nullable(s.array("Replaces the full set of MCP servers on the connection (send `[]` to clear). Hosted mode only.", s.object("A Model Context Protocol server the hosted assistant may call as tools mid-conversation. Hosted mode only.", {
453
+ url: s.string("Public `https://` URL of your streamable-HTTP MCP server (commonly ending in `/mcp`). SSE-only servers are not supported."),
454
+ auth: s.nullable(s.object("How Saperly authenticates to your MCP server. Use { type: 'none' } (or omit `auth`) for an open server.", {
455
+ type: s.stringEnum("Configuration type.", ["bearer", "none"]),
456
+ token: s.nullable(s.string("Bearer token sent as `Authorization: Bearer <token>` on every request to your server. Required when `type` is 'bearer'; stored encrypted and never returned in reads.")),
457
+ }, { required: ["type"] })),
458
+ allowedTools: s.nullable(s.array("Allow-list of tool names to expose to the assistant. Omit to expose every tool the server advertises.", s.string("Allowed tools item."))),
459
+ }, { required: ["url"] }))),
460
+ callControl: s.nullable(s.object("Which call-control actions the connection's brain may take, projected to whichever backend handles the call. Omitted fields fall back to defaults (end-call + DTMF on, transfer off).", {
461
+ endCall: s.nullable(s.boolean("Allow the brain to hang up the call. Defaults on.")),
462
+ sendDtmf: s.nullable(s.boolean("Allow the brain to send DTMF (touch-tone) digits. Defaults on.")),
463
+ transfer: s.nullable(s.object("Blind-transfer enablement and its allowed targets.", {
464
+ targets: s.array("Allowed blind-transfer destinations (E.164 numbers or `sip:` URIs). Transfer only takes effect with at least one target.", s.string("Targets item.")),
465
+ from: s.nullable(s.string("Optional caller ID to present on the transferred leg.")),
466
+ }, { required: ["targets"] })),
467
+ }, { required: [] })),
468
+ complianceEnabled: s.nullable(s.boolean("Toggle the do-not-message tool + the TCPA `disclosure` opener.")),
469
+ smsAutoReply: s.nullable(s.boolean("Hosted-line opt-in to auto-answer inbound SMS with the model. Default off.")),
470
+ disclosure: s.nullable(s.string("The TCPA notice spoken first, uninterruptibly, when compliance is on.")),
471
+ openaiRealtime: s.nullable(s.object("Config for the OpenAI-Realtime hosted backend. Only meaningful when `backend` is 'openai_realtime' (currently disabled). The OpenAI project is operator-hosted and not settable here.", {
472
+ model: s.string("The OpenAI Realtime model id."),
473
+ voice: s.nullable(s.string("The OpenAI Realtime voice. Distinct from the hosted `tts.voiceId` \u2014 this names a built-in OpenAI Realtime voice.")),
474
+ }, { required: ["model"] })),
475
+ manualWebhookUrl: s.nullable(s.string('Manual-mode webhook-brain URL. Only meaningful for manual mode; send "" to clear it.')),
476
+ id: s.string("The connection's id.", { minLength: 1 }),
477
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
478
+ }, { required: ["id"] }),
479
+ outputSchema: schemas.createConnectionOutput,
480
+ },
481
+ {
482
+ name: "delete_connection",
483
+ method: "DELETE",
484
+ path: "/connections/{id}",
485
+ pathKeys: ["id"],
486
+ queryKeys: [],
487
+ outputKind: "object",
488
+ operationType: "destructive",
489
+ description: "Delete a connection",
490
+ inputSchema: s.object("Parameters for delete connection.", {
491
+ id: s.string("The connection's id.", { minLength: 1 }),
492
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
493
+ }, { required: ["id"] }),
494
+ outputSchema: schemas.deleteConnectionOutput,
495
+ },
496
+ {
497
+ name: "send_message",
498
+ method: "POST",
499
+ path: "/messages",
500
+ pathKeys: [],
501
+ queryKeys: [],
502
+ outputKind: "object",
503
+ operationType: "write",
504
+ description: "Send an SMS message",
505
+ inputSchema: s.object("Parameters for send message.", {
506
+ fromNumberId: s.string("The id of one of your numbers to send the SMS from. Must be a number you own; with a scoped key it must also be within the key's number allow-list."),
507
+ to: s.string("The recipient phone number in E.164 format (e.g. `+14155550123`)."),
508
+ body: s.string("The message text (1\u20131600 characters). Long messages are split into multiple segments automatically and billed per segment.", { minLength: 1, maxLength: 1600 }),
509
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
510
+ }, { required: ["fromNumberId", "to", "body"] }),
511
+ outputSchema: schemas.sendMessageOutput,
512
+ },
513
+ {
514
+ name: "list_messages",
515
+ method: "GET",
516
+ path: "/messages",
517
+ pathKeys: [],
518
+ queryKeys: ["numberId"],
519
+ outputKind: "list",
520
+ operationType: "read",
521
+ description: "List messages (optionally filtered by number)",
522
+ inputSchema: s.object("Parameters for list messages.", {
523
+ numberId: s.nullable(s.string("Filter to messages sent from or received on this number. Omit to list every message in the workspace.")),
524
+ }, { required: [] }),
525
+ outputSchema: schemas.listMessagesOutput,
526
+ },
527
+ {
528
+ name: "place_call",
529
+ method: "POST",
530
+ path: "/calls",
531
+ pathKeys: [],
532
+ queryKeys: [],
533
+ outputKind: "object",
534
+ operationType: "write",
535
+ description: "Place an outbound call",
536
+ inputSchema: s.object("Parameters for place call.", {
537
+ fromNumberId: s.string("The Saperly number id to place the call from."),
538
+ to: s.string('The destination in E.164 format, e.g. "+15555550123".'),
539
+ connectionId: s.nullable(s.string("Optional. Use this connection for the call instead of the number's bound one.")),
540
+ instructions: s.nullable(s.string("A per-call system prompt that overrides the connection's saved instructions for this call only. Omit to run the call on the line's saved config. (Voice/model/language are not per-call overridable via the API \u2014 set them on the connection.)")),
541
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
542
+ }, { required: ["fromNumberId", "to"] }),
543
+ outputSchema: schemas.placeCallOutput,
544
+ },
545
+ {
546
+ name: "list_calls",
547
+ method: "GET",
548
+ path: "/calls",
549
+ pathKeys: [],
550
+ queryKeys: [],
551
+ outputKind: "list",
552
+ operationType: "read",
553
+ description: "List calls",
554
+ inputSchema: s.object("Parameters for list calls.", {}, { required: [] }),
555
+ outputSchema: schemas.listCallsOutput,
556
+ },
557
+ {
558
+ name: "end_call",
559
+ method: "POST",
560
+ path: "/calls/{id}/end",
561
+ pathKeys: ["id"],
562
+ queryKeys: [],
563
+ outputKind: "object",
564
+ operationType: "destructive",
565
+ description: "End a live call",
566
+ inputSchema: s.object("Parameters for end call.", {
567
+ id: s.string("The call's id.", { minLength: 1 }),
568
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
569
+ }, { required: ["id"] }),
570
+ outputSchema: schemas.placeCallOutput,
571
+ },
572
+ {
573
+ name: "transfer_call",
574
+ method: "POST",
575
+ path: "/calls/{id}/transfer",
576
+ pathKeys: ["id"],
577
+ queryKeys: [],
578
+ outputKind: "object",
579
+ operationType: "write",
580
+ description: "Blind-transfer a live call",
581
+ inputSchema: s.object("Parameters for transfer call.", {
582
+ to: s.string('Where to blind-transfer the live leg \u2014 an E.164 number (e.g. "+15551230000") or a `sip:` URI.'),
583
+ id: s.string("The call's id.", { minLength: 1 }),
584
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
585
+ }, { required: ["to", "id"] }),
586
+ outputSchema: schemas.placeCallOutput,
587
+ },
588
+ {
589
+ name: "get_call",
590
+ method: "GET",
591
+ path: "/calls/{id}",
592
+ pathKeys: ["id"],
593
+ queryKeys: [],
594
+ outputKind: "object",
595
+ operationType: "read",
596
+ description: "Get a call by id",
597
+ inputSchema: s.object("Parameters for get call.", {
598
+ id: s.string("The call's id.", { minLength: 1 }),
599
+ }, { required: ["id"] }),
600
+ outputSchema: schemas.placeCallOutput,
601
+ },
602
+ {
603
+ name: "get_recording",
604
+ method: "GET",
605
+ path: "/calls/{id}/recording",
606
+ pathKeys: ["id"],
607
+ queryKeys: [],
608
+ outputKind: "recording",
609
+ operationType: "read",
610
+ description: "Get a temporary download URL for a completed call recording.",
611
+ inputSchema: s.object("Parameters for get recording.", {
612
+ id: s.string("The call's id.", { minLength: 1 }),
613
+ }, { required: ["id"] }),
614
+ outputSchema: schemas.getRecordingOutput,
615
+ },
616
+ {
617
+ name: "get_transcript",
618
+ method: "GET",
619
+ path: "/calls/{id}/transcript",
620
+ pathKeys: ["id"],
621
+ queryKeys: [],
622
+ outputKind: "transcript",
623
+ operationType: "read",
624
+ description: "Get a call transcript",
625
+ inputSchema: s.object("Parameters for get transcript.", {
626
+ id: s.string("The call's id.", { minLength: 1 }),
627
+ }, { required: ["id"] }),
628
+ outputSchema: schemas.getTranscriptOutput,
629
+ },
630
+ {
631
+ name: "list_voices",
632
+ method: "GET",
633
+ path: "/voices",
634
+ pathKeys: [],
635
+ queryKeys: ["language"],
636
+ outputKind: "list",
637
+ operationType: "read",
638
+ description: "List available voices (optionally filtered by language)",
639
+ inputSchema: s.object("Parameters for list voices.", {
640
+ language: s.nullable(s.string('Filter voices by language \u2014 a case-insensitive BCP-47 prefix. "en" matches "en", "en-US", "en-GB", \u2026 Omit to list every voice.')),
641
+ }, { required: [] }),
642
+ outputSchema: schemas.listVoicesOutput,
643
+ },
644
+ {
645
+ name: "list_custom_voices",
646
+ method: "GET",
647
+ path: "/custom-voices",
648
+ pathKeys: [],
649
+ queryKeys: [],
650
+ outputKind: "list",
651
+ operationType: "read",
652
+ description: "List custom voices",
653
+ inputSchema: s.object("Parameters for list custom voices.", {}, { required: [] }),
654
+ outputSchema: schemas.listCustomVoicesOutput,
655
+ },
656
+ {
657
+ name: "create_custom_voice",
658
+ method: "POST",
659
+ path: "/custom-voices",
660
+ pathKeys: [],
661
+ queryKeys: [],
662
+ outputKind: "object",
663
+ operationType: "write",
664
+ description: "Upload a voice sample from a public URL; poll get_custom_voice until the voice is active or failed.",
665
+ inputSchema: s.object("Parameters for create custom voice.", {
666
+ name: s.string("Human-readable name."),
667
+ language: s.string("Spoken language code."),
668
+ gender: s.stringEnum("Voice gender.", ["male", "female", "neutral"]),
669
+ audioUrl: s.string("Public URL of a voice sample to download and upload; connector limit is 20 MiB.", {
670
+ format: "uri",
671
+ }),
672
+ fileName: s.string("Audio filename with an extension matching the sample format.", {
673
+ minLength: 1,
674
+ }),
675
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
676
+ }, { required: ["name", "language", "gender", "audioUrl", "idempotencyKey"] }),
677
+ outputSchema: schemas.createCustomVoiceOutput,
678
+ },
679
+ {
680
+ name: "get_custom_voice",
681
+ method: "GET",
682
+ path: "/custom-voices/{id}",
683
+ pathKeys: ["id"],
684
+ queryKeys: [],
685
+ outputKind: "object",
686
+ operationType: "read",
687
+ description: "Get custom voice",
688
+ inputSchema: s.object("Parameters for get custom voice.", {
689
+ id: s.string("Resource identifier.", { minLength: 1 }),
690
+ }, { required: ["id"] }),
691
+ outputSchema: schemas.createCustomVoiceOutput,
692
+ },
693
+ {
694
+ name: "delete_custom_voice",
695
+ method: "DELETE",
696
+ path: "/custom-voices/{id}",
697
+ pathKeys: ["id"],
698
+ queryKeys: [],
699
+ outputKind: "object",
700
+ operationType: "destructive",
701
+ description: "Delete custom voice",
702
+ inputSchema: s.object("Parameters for delete custom voice.", {
703
+ id: s.string("Resource identifier.", { minLength: 1 }),
704
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
705
+ }, { required: ["id"] }),
706
+ outputSchema: schemas.deleteConnectionOutput,
707
+ },
708
+ {
709
+ name: "list_languages",
710
+ method: "GET",
711
+ path: "/languages",
712
+ pathKeys: [],
713
+ queryKeys: [],
714
+ outputKind: "list",
715
+ operationType: "read",
716
+ description: "List the supported spoken languages",
717
+ inputSchema: s.object("Parameters for list languages.", {}, { required: [] }),
718
+ outputSchema: schemas.listLanguagesOutput,
719
+ },
720
+ {
721
+ name: "get_usage",
722
+ method: "GET",
723
+ path: "/usage",
724
+ pathKeys: [],
725
+ queryKeys: ["since"],
726
+ outputKind: "object",
727
+ operationType: "read",
728
+ description: "Get a usage summary (optionally since a timestamp)",
729
+ inputSchema: s.object("Parameters for get usage.", {
730
+ since: s.nullable(s.string("Lower bound of the reporting window as an ISO-8601 timestamp (e.g. `2026-01-01T00:00:00Z`). Only usage at or after this instant is counted. Omit for all-time totals.")),
731
+ }, { required: [] }),
732
+ outputSchema: schemas.getUsageOutput,
733
+ },
734
+ {
735
+ name: "list_consent",
736
+ method: "GET",
737
+ path: "/consent",
738
+ pathKeys: [],
739
+ queryKeys: [],
740
+ outputKind: "list",
741
+ operationType: "read",
742
+ description: "List all consent records in the workspace",
743
+ inputSchema: s.object("Parameters for list consent.", {}, { required: [] }),
744
+ outputSchema: schemas.listConsentOutput,
745
+ },
746
+ {
747
+ name: "record_consent",
748
+ method: "POST",
749
+ path: "/consent",
750
+ pathKeys: [],
751
+ queryKeys: [],
752
+ outputKind: "object",
753
+ operationType: "write",
754
+ description: "Record consent for a contact",
755
+ inputSchema: s.object("Parameters for record consent.", {
756
+ numberId: s.string("The id of your number the consent is scoped to."),
757
+ peerNumber: s.string("The contact phone number, in E.164 format (e.g. `+14155550123`), that the consent applies to."),
758
+ consentType: s.stringEnum("How consent was obtained: `implied_inbound` (the contact messaged you first) or `explicit_outbound` (the contact explicitly agreed to be contacted).", ["implied_inbound", "explicit_outbound"]),
759
+ source: s.string('A free-text note recording where or how consent was captured, kept for your audit trail (e.g. "web signup form").'),
760
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
761
+ }, { required: ["numberId", "peerNumber", "consentType", "source"] }),
762
+ outputSchema: schemas.recordConsentOutput,
763
+ },
764
+ {
765
+ name: "revoke_consent",
766
+ method: "POST",
767
+ path: "/consent/revoke",
768
+ pathKeys: [],
769
+ queryKeys: [],
770
+ outputKind: "object",
771
+ operationType: "destructive",
772
+ description: "Revoke consent for a contact",
773
+ inputSchema: s.object("Parameters for revoke consent.", {
774
+ numberId: s.string("The id of your number the consent to revoke is scoped to."),
775
+ peerNumber: s.string("The contact phone number, in E.164 format (e.g. `+14155550123`), whose consent should be revoked."),
776
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
777
+ }, { required: ["numberId", "peerNumber"] }),
778
+ outputSchema: schemas.revokeWorkspaceKeyOutput,
779
+ },
780
+ {
781
+ name: "check_consent",
782
+ method: "GET",
783
+ path: "/consent/check",
784
+ pathKeys: [],
785
+ queryKeys: ["numberId", "peerNumber"],
786
+ outputKind: "object",
787
+ operationType: "read",
788
+ description: "Check whether a contact has active consent",
789
+ inputSchema: s.object("Parameters for check consent.", {
790
+ numberId: s.string("The id of your number to check consent against."),
791
+ peerNumber: s.string("The contact phone number, in E.164 format (e.g. `+14155550123`), to check for active consent."),
792
+ }, { required: ["numberId", "peerNumber"] }),
793
+ outputSchema: schemas.checkConsentOutput,
794
+ },
795
+ {
796
+ name: "get_price_quote",
797
+ method: "GET",
798
+ path: "/pricing/quote",
799
+ pathKeys: [],
800
+ queryKeys: ["country", "numberType"],
801
+ outputKind: "object",
802
+ operationType: "read",
803
+ description: "Quote the price of a phone number",
804
+ inputSchema: s.object("Parameters for get price quote.", {
805
+ country: s.string("ISO 3166-1 alpha-2 country code to price a number in (e.g. `US`, `GB`)."),
806
+ numberType: s.string("The kind of number to price (e.g. `local`, `toll_free`, `mobile`, `national`)."),
807
+ }, { required: ["country", "numberType"] }),
808
+ outputSchema: schemas.getPriceQuoteOutput,
809
+ },
810
+ {
811
+ name: "list_keys",
812
+ method: "GET",
813
+ path: "/api-tokens",
814
+ pathKeys: [],
815
+ queryKeys: [],
816
+ outputKind: "list",
817
+ operationType: "read",
818
+ description: "List the workspace's API keys",
819
+ inputSchema: s.object("Parameters for list keys.", {}, { required: [] }),
820
+ outputSchema: schemas.listWorkspaceKeysOutput,
821
+ },
822
+ {
823
+ name: "mint_key",
824
+ method: "POST",
825
+ path: "/api-tokens",
826
+ pathKeys: [],
827
+ queryKeys: [],
828
+ outputKind: "object",
829
+ operationType: "write",
830
+ description: "Mint a scoped API key",
831
+ inputSchema: s.object("Parameters for mint key.", {
832
+ name: s.string("Human-readable name.", { minLength: 1, maxLength: 100 }),
833
+ scopes: s.array("Granted API key scopes.", s.stringEnum("Scopes item.", ["read", "write", "admin"]), {
834
+ minItems: 1,
835
+ maxItems: 3,
836
+ }),
837
+ numberScope: s.nullable(s.array("Phone number allow-list; null or empty means all numbers within the parent grant.", s.string("Number scope item."))),
838
+ spendLimitCents: s.nullable(s.number("Per-key spending cap in cents.", { minimum: 1 })),
839
+ spendLimitResetPeriod: s.nullable(s.stringEnum("Monthly reset or null for a lifetime cap.", ["monthly"])),
840
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
841
+ }, { required: ["name", "scopes"] }),
842
+ outputSchema: schemas.createWorkspaceKeyOutput,
843
+ },
844
+ {
845
+ name: "revoke_key",
846
+ method: "POST",
847
+ path: "/api-tokens/{id}/revoke",
848
+ pathKeys: ["id"],
849
+ queryKeys: [],
850
+ outputKind: "object",
851
+ operationType: "destructive",
852
+ description: "Revoke an API key",
853
+ inputSchema: s.object("Parameters for revoke key.", {
854
+ id: s.string("The API key's id.", { minLength: 1 }),
855
+ idempotencyKey: s.string("Caller-supplied stable idempotency key. Use a UUID v4 and reuse it for retries of the same request.", { minLength: 1 }),
856
+ }, { required: ["id"] }),
857
+ outputSchema: schemas.revokeWorkspaceKeyOutput,
858
+ },
859
+ ];
860
+ export const saperlyActions = saperlyEndpoints.map((endpoint) => defineProviderAction("saperly", {
861
+ name: endpoint.name,
862
+ description: endpoint.description,
863
+ operationType: endpoint.operationType,
864
+ requiredScopes: [],
865
+ inputSchema: endpoint.inputSchema,
866
+ outputSchema: endpoint.outputSchema,
867
+ asyncLifecycle: actionLifecycles[endpoint.name],
868
+ }));
869
+ export const saperlyEndpointByName = new Map(saperlyEndpoints.map((endpoint) => [endpoint.name, endpoint]));