@oomol-lab/open-connector 1.9.1 → 1.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (461) hide show
  1. package/assets/open-connector/catalog/apps/aisa.json +1946 -56
  2. package/assets/open-connector/catalog/apps/akta.json +1181 -0
  3. package/assets/open-connector/catalog/apps/asana.json +110 -0
  4. package/assets/open-connector/catalog/apps/calendly.json +103 -0
  5. package/assets/open-connector/catalog/apps/clickup.json +104 -0
  6. package/assets/open-connector/catalog/apps/cloro.json +9289 -0
  7. package/assets/open-connector/catalog/apps/contextdev.json +20670 -0
  8. package/assets/open-connector/catalog/apps/deepseek.json +177 -0
  9. package/assets/open-connector/catalog/apps/defillama.json +23747 -0
  10. package/assets/open-connector/catalog/apps/fireflies.json +103 -0
  11. package/assets/open-connector/catalog/apps/fundable.json +7926 -0
  12. package/assets/open-connector/catalog/apps/intercom.json +110 -0
  13. package/assets/open-connector/catalog/apps/jira.json +110 -0
  14. package/assets/open-connector/catalog/apps/keenable.json +235 -0
  15. package/assets/open-connector/catalog/apps/kolsprite_mcp.json +1227 -0
  16. package/assets/open-connector/catalog/apps/litescrape.json +52514 -0
  17. package/assets/open-connector/catalog/apps/magichour.json +5926 -0
  18. package/assets/open-connector/catalog/apps/minimax.json +24 -14
  19. package/assets/open-connector/catalog/apps/notion.json +731 -76
  20. package/assets/open-connector/catalog/apps/octen.json +5248 -0
  21. package/assets/open-connector/catalog/apps/openrouter.json +10 -0
  22. package/assets/open-connector/catalog/apps/orbit.json +3574 -0
  23. package/assets/open-connector/catalog/apps/pandadoc.json +68 -0
  24. package/assets/open-connector/catalog/apps/pipedrive.json +86 -0
  25. package/assets/open-connector/catalog/apps/ploid.json +9802 -0
  26. package/assets/open-connector/catalog/apps/resend.json +100 -0
  27. package/assets/open-connector/catalog/apps/salesforce.json +2487 -119
  28. package/assets/open-connector/catalog/apps/saperly.json +7056 -0
  29. package/assets/open-connector/catalog/apps/search1api.json +2382 -0
  30. package/assets/open-connector/catalog/apps/sentry.json +129 -0
  31. package/assets/open-connector/catalog/apps/slackbot.json +230 -1
  32. package/assets/open-connector/catalog/apps/surf.json +11378 -0
  33. package/assets/open-connector/catalog/apps/tally.json +113 -0
  34. package/assets/open-connector/catalog/apps/tinyfish.json +6154 -0
  35. package/assets/open-connector/catalog/apps/typeform.json +90 -1
  36. package/assets/open-connector/catalog/apps/vaquill.json +5944 -0
  37. package/assets/open-connector/catalog/apps/vercel.json +110 -0
  38. package/assets/open-connector/catalog/apps/weixin_store.json +1256 -7
  39. package/assets/open-connector/catalog/apps/zoom.json +112 -0
  40. package/assets/open-connector/catalog/apps-index.json +1 -1
  41. package/package.json +1 -1
  42. package/src/core/json-schema.d.ts +11 -3
  43. package/src/core/json-schema.js +13 -3
  44. package/src/providers/action-contracts.generated.d.ts +23 -6
  45. package/src/providers/aisa/executors.js +238 -6
  46. package/src/providers/aisa/firecrawl-actions.d.ts +9 -0
  47. package/src/providers/aisa/firecrawl-actions.js +115 -0
  48. package/src/providers/akta/actions.d.ts +9 -0
  49. package/src/providers/akta/actions.js +420 -0
  50. package/src/providers/akta/executors.d.ts +4 -0
  51. package/src/providers/akta/executors.js +103 -0
  52. package/src/providers/asana/executors.d.ts +2 -0
  53. package/src/providers/asana/executors.js +2 -0
  54. package/src/providers/asana/trigger-on-task-event.d.ts +2 -0
  55. package/src/providers/asana/trigger-on-task-event.definition.d.ts +4 -0
  56. package/src/providers/asana/trigger-on-task-event.definition.js +42 -0
  57. package/src/providers/asana/trigger-on-task-event.js +160 -0
  58. package/src/providers/calendly/executors.d.ts +2 -0
  59. package/src/providers/calendly/executors.js +2 -0
  60. package/src/providers/calendly/trigger-on-booking-event.d.ts +2 -0
  61. package/src/providers/calendly/trigger-on-booking-event.definition.d.ts +5 -0
  62. package/src/providers/calendly/trigger-on-booking-event.definition.js +42 -0
  63. package/src/providers/calendly/trigger-on-booking-event.js +144 -0
  64. package/src/providers/clickup/executors.d.ts +2 -0
  65. package/src/providers/clickup/executors.js +2 -0
  66. package/src/providers/clickup/trigger-on-task-event.d.ts +2 -0
  67. package/src/providers/clickup/trigger-on-task-event.definition.d.ts +4 -0
  68. package/src/providers/clickup/trigger-on-task-event.definition.js +41 -0
  69. package/src/providers/clickup/trigger-on-task-event.js +94 -0
  70. package/src/providers/cloro/actions.d.ts +12 -0
  71. package/src/providers/cloro/actions.js +155 -0
  72. package/src/providers/cloro/executors.d.ts +4 -0
  73. package/src/providers/cloro/executors.js +67 -0
  74. package/src/providers/cloro/inputs.d.ts +10 -0
  75. package/src/providers/cloro/inputs.js +680 -0
  76. package/src/providers/contextdev/actions.d.ts +14 -0
  77. package/src/providers/contextdev/actions.js +647 -0
  78. package/src/providers/contextdev/executors.d.ts +4 -0
  79. package/src/providers/contextdev/executors.js +109 -0
  80. package/src/providers/contextdev/files.d.ts +3 -0
  81. package/src/providers/contextdev/files.js +49 -0
  82. package/src/providers/contextdev/input-schemas.d.ts +49 -0
  83. package/src/providers/contextdev/input-schemas.js +3082 -0
  84. package/src/providers/contextdev/output-schemas.d.ts +49 -0
  85. package/src/providers/contextdev/output-schemas.js +1599 -0
  86. package/src/providers/deepseek/executors.d.ts +0 -5
  87. package/src/providers/deepseek/executors.js +38 -25
  88. package/src/providers/defillama/actions.d.ts +24 -0
  89. package/src/providers/defillama/actions.js +24 -0
  90. package/src/providers/defillama/dimensions-definitions.d.ts +2 -0
  91. package/src/providers/defillama/dimensions-definitions.js +1387 -0
  92. package/src/providers/defillama/ecosystem-definitions.d.ts +2 -0
  93. package/src/providers/defillama/ecosystem-definitions.js +758 -0
  94. package/src/providers/defillama/equities-definitions.d.ts +2 -0
  95. package/src/providers/defillama/equities-definitions.js +733 -0
  96. package/src/providers/defillama/executors.d.ts +4 -0
  97. package/src/providers/defillama/executors.js +196 -0
  98. package/src/providers/defillama/markets-definitions.d.ts +2 -0
  99. package/src/providers/defillama/markets-definitions.js +624 -0
  100. package/src/providers/defillama/shared-schemas.d.ts +71 -0
  101. package/src/providers/defillama/shared-schemas.js +157 -0
  102. package/src/providers/defillama/tvl-definitions.d.ts +2 -0
  103. package/src/providers/defillama/tvl-definitions.js +546 -0
  104. package/src/providers/defillama/yields-definitions.d.ts +2 -0
  105. package/src/providers/defillama/yields-definitions.js +766 -0
  106. package/src/providers/feishu_app_bot/trigger-on-event.js +2 -0
  107. package/src/providers/fireflies/executors.d.ts +2 -0
  108. package/src/providers/fireflies/executors.js +2 -0
  109. package/src/providers/fireflies/trigger-on-meeting-ready.d.ts +2 -0
  110. package/src/providers/fireflies/trigger-on-meeting-ready.definition.d.ts +4 -0
  111. package/src/providers/fireflies/trigger-on-meeting-ready.definition.js +44 -0
  112. package/src/providers/fireflies/trigger-on-meeting-ready.js +60 -0
  113. package/src/providers/fundable/actions.d.ts +8 -0
  114. package/src/providers/fundable/actions.js +1515 -0
  115. package/src/providers/fundable/executors.d.ts +4 -0
  116. package/src/providers/fundable/executors.js +74 -0
  117. package/src/providers/gmail/message.d.ts +1 -6
  118. package/src/providers/gmail/message.js +1 -1
  119. package/src/providers/intercom/executors.d.ts +2 -0
  120. package/src/providers/intercom/executors.js +2 -0
  121. package/src/providers/intercom/trigger-on-conversation-event.d.ts +2 -0
  122. package/src/providers/intercom/trigger-on-conversation-event.definition.d.ts +4 -0
  123. package/src/providers/intercom/trigger-on-conversation-event.definition.js +42 -0
  124. package/src/providers/intercom/trigger-on-conversation-event.js +23 -0
  125. package/src/providers/jira/executors.d.ts +2 -0
  126. package/src/providers/jira/executors.js +2 -0
  127. package/src/providers/jira/trigger-on-issue-event.d.ts +2 -0
  128. package/src/providers/jira/trigger-on-issue-event.definition.d.ts +4 -0
  129. package/src/providers/jira/trigger-on-issue-event.definition.js +44 -0
  130. package/src/providers/jira/trigger-on-issue-event.js +116 -0
  131. package/src/providers/jira/trigger-resource.d.ts +4 -0
  132. package/src/providers/jira/trigger-resource.js +141 -0
  133. package/src/providers/keenable/executors.d.ts +4 -0
  134. package/src/providers/keenable/executors.js +20 -0
  135. package/src/providers/keenable/runtime.d.ts +26 -0
  136. package/src/providers/keenable/runtime.js +89 -0
  137. package/src/providers/kolsprite_mcp/actions.d.ts +2 -0
  138. package/src/providers/kolsprite_mcp/actions.js +519 -0
  139. package/src/providers/kolsprite_mcp/executors.d.ts +4 -0
  140. package/src/providers/kolsprite_mcp/executors.js +89 -0
  141. package/src/providers/litescrape/actions.d.ts +12 -0
  142. package/src/providers/litescrape/actions.js +124 -0
  143. package/src/providers/litescrape/airbnb-schemas.d.ts +2 -0
  144. package/src/providers/litescrape/airbnb-schemas.js +72 -0
  145. package/src/providers/litescrape/aliexpress-schemas.d.ts +2 -0
  146. package/src/providers/litescrape/aliexpress-schemas.js +52 -0
  147. package/src/providers/litescrape/amazon-schemas.d.ts +2 -0
  148. package/src/providers/litescrape/amazon-schemas.js +358 -0
  149. package/src/providers/litescrape/apartments-schemas.d.ts +2 -0
  150. package/src/providers/litescrape/apartments-schemas.js +45 -0
  151. package/src/providers/litescrape/apple-schemas.d.ts +2 -0
  152. package/src/providers/litescrape/apple-schemas.js +215 -0
  153. package/src/providers/litescrape/ashby-schemas.d.ts +2 -0
  154. package/src/providers/litescrape/ashby-schemas.js +82 -0
  155. package/src/providers/litescrape/baidu-schemas.d.ts +2 -0
  156. package/src/providers/litescrape/baidu-schemas.js +31 -0
  157. package/src/providers/litescrape/bestbuy-schemas.d.ts +2 -0
  158. package/src/providers/litescrape/bestbuy-schemas.js +56 -0
  159. package/src/providers/litescrape/bing-schemas.d.ts +2 -0
  160. package/src/providers/litescrape/bing-schemas.js +315 -0
  161. package/src/providers/litescrape/brave-schemas.d.ts +2 -0
  162. package/src/providers/litescrape/brave-schemas.js +101 -0
  163. package/src/providers/litescrape/copilot-schemas.d.ts +2 -0
  164. package/src/providers/litescrape/copilot-schemas.js +590 -0
  165. package/src/providers/litescrape/duckduckgo-schemas.d.ts +2 -0
  166. package/src/providers/litescrape/duckduckgo-schemas.js +64 -0
  167. package/src/providers/litescrape/ebay-schemas.d.ts +2 -0
  168. package/src/providers/litescrape/ebay-schemas.js +300 -0
  169. package/src/providers/litescrape/etsy-schemas.d.ts +2 -0
  170. package/src/providers/litescrape/etsy-schemas.js +52 -0
  171. package/src/providers/litescrape/eventbrite-schemas.d.ts +2 -0
  172. package/src/providers/litescrape/eventbrite-schemas.js +43 -0
  173. package/src/providers/litescrape/executors.d.ts +4 -0
  174. package/src/providers/litescrape/executors.js +138 -0
  175. package/src/providers/litescrape/facebook-schemas.d.ts +2 -0
  176. package/src/providers/litescrape/facebook-schemas.js +283 -0
  177. package/src/providers/litescrape/glassdoor-schemas.d.ts +2 -0
  178. package/src/providers/litescrape/glassdoor-schemas.js +147 -0
  179. package/src/providers/litescrape/google-schemas.d.ts +2 -0
  180. package/src/providers/litescrape/google-schemas.js +1686 -0
  181. package/src/providers/litescrape/homedepot-schemas.d.ts +2 -0
  182. package/src/providers/litescrape/homedepot-schemas.js +58 -0
  183. package/src/providers/litescrape/homes-schemas.d.ts +2 -0
  184. package/src/providers/litescrape/homes-schemas.js +45 -0
  185. package/src/providers/litescrape/ikea-schemas.d.ts +2 -0
  186. package/src/providers/litescrape/ikea-schemas.js +56 -0
  187. package/src/providers/litescrape/indeed-schemas.d.ts +2 -0
  188. package/src/providers/litescrape/indeed-schemas.js +141 -0
  189. package/src/providers/litescrape/instagram-schemas.d.ts +2 -0
  190. package/src/providers/litescrape/instagram-schemas.js +234 -0
  191. package/src/providers/litescrape/kroger-schemas.d.ts +2 -0
  192. package/src/providers/litescrape/kroger-schemas.js +62 -0
  193. package/src/providers/litescrape/levels-schemas.d.ts +2 -0
  194. package/src/providers/litescrape/levels-schemas.js +153 -0
  195. package/src/providers/litescrape/naver-schemas.d.ts +2 -0
  196. package/src/providers/litescrape/naver-schemas.js +107 -0
  197. package/src/providers/litescrape/realtor-schemas.d.ts +2 -0
  198. package/src/providers/litescrape/realtor-schemas.js +47 -0
  199. package/src/providers/litescrape/redfin-schemas.d.ts +2 -0
  200. package/src/providers/litescrape/redfin-schemas.js +112 -0
  201. package/src/providers/litescrape/shared.d.ts +9 -0
  202. package/src/providers/litescrape/shared.js +1 -0
  203. package/src/providers/litescrape/sprouts-schemas.d.ts +2 -0
  204. package/src/providers/litescrape/sprouts-schemas.js +72 -0
  205. package/src/providers/litescrape/target-schemas.d.ts +2 -0
  206. package/src/providers/litescrape/target-schemas.js +56 -0
  207. package/src/providers/litescrape/tiktok-schemas.d.ts +2 -0
  208. package/src/providers/litescrape/tiktok-schemas.js +625 -0
  209. package/src/providers/litescrape/tools.d.ts +2 -0
  210. package/src/providers/litescrape/tools.js +88 -0
  211. package/src/providers/litescrape/tripadvisor-schemas.d.ts +2 -0
  212. package/src/providers/litescrape/tripadvisor-schemas.js +119 -0
  213. package/src/providers/litescrape/walmart-schemas.d.ts +2 -0
  214. package/src/providers/litescrape/walmart-schemas.js +52 -0
  215. package/src/providers/litescrape/wayfair-schemas.d.ts +2 -0
  216. package/src/providers/litescrape/wayfair-schemas.js +52 -0
  217. package/src/providers/litescrape/web-schemas.d.ts +2 -0
  218. package/src/providers/litescrape/web-schemas.js +463 -0
  219. package/src/providers/litescrape/wholefoods-schemas.d.ts +2 -0
  220. package/src/providers/litescrape/wholefoods-schemas.js +56 -0
  221. package/src/providers/litescrape/x-schemas.d.ts +2 -0
  222. package/src/providers/litescrape/x-schemas.js +128 -0
  223. package/src/providers/litescrape/yahoo-schemas.d.ts +2 -0
  224. package/src/providers/litescrape/yahoo-schemas.js +234 -0
  225. package/src/providers/litescrape/yandex-schemas.d.ts +2 -0
  226. package/src/providers/litescrape/yandex-schemas.js +179 -0
  227. package/src/providers/litescrape/yelp-schemas.d.ts +2 -0
  228. package/src/providers/litescrape/yelp-schemas.js +130 -0
  229. package/src/providers/litescrape/youtube-schemas.d.ts +2 -0
  230. package/src/providers/litescrape/youtube-schemas.js +128 -0
  231. package/src/providers/litescrape/zillow-schemas.d.ts +2 -0
  232. package/src/providers/litescrape/zillow-schemas.js +128 -0
  233. package/src/providers/litescrape/ziprecruiter-schemas.d.ts +2 -0
  234. package/src/providers/litescrape/ziprecruiter-schemas.js +96 -0
  235. package/src/providers/magichour/actions.d.ts +22 -0
  236. package/src/providers/magichour/actions.js +308 -0
  237. package/src/providers/magichour/audio-schemas.d.ts +2 -0
  238. package/src/providers/magichour/audio-schemas.js +54 -0
  239. package/src/providers/magichour/executors.d.ts +4 -0
  240. package/src/providers/magichour/executors.js +115 -0
  241. package/src/providers/magichour/image-schemas.d.ts +2 -0
  242. package/src/providers/magichour/image-schemas.js +443 -0
  243. package/src/providers/magichour/project-schemas.d.ts +8 -0
  244. package/src/providers/magichour/project-schemas.js +65 -0
  245. package/src/providers/magichour/shared-schemas.d.ts +8 -0
  246. package/src/providers/magichour/shared-schemas.js +18 -0
  247. package/src/providers/magichour/utility-schemas.d.ts +11 -0
  248. package/src/providers/magichour/utility-schemas.js +150 -0
  249. package/src/providers/magichour/video-schemas.d.ts +2 -0
  250. package/src/providers/magichour/video-schemas.js +629 -0
  251. package/src/providers/magichour/voices.d.ts +1 -0
  252. package/src/providers/magichour/voices.js +1268 -0
  253. package/src/providers/minimax/executors.js +19 -4
  254. package/src/providers/minimax/text-models.d.ts +2 -0
  255. package/src/providers/minimax/text-models.js +34 -0
  256. package/src/providers/moneyforward_mcp/manifest.d.ts +0 -2
  257. package/src/providers/moneyforward_mcp/manifest.js +1 -1
  258. package/src/providers/notion/executors.js +36 -3
  259. package/src/providers/octen/actions.d.ts +6 -0
  260. package/src/providers/octen/actions.js +919 -0
  261. package/src/providers/octen/executors.d.ts +4 -0
  262. package/src/providers/octen/executors.js +125 -0
  263. package/src/providers/octen/inputs.d.ts +2 -0
  264. package/src/providers/octen/inputs.js +2434 -0
  265. package/src/providers/octen/research.d.ts +1 -0
  266. package/src/providers/octen/research.js +86 -0
  267. package/src/providers/openrouter/executors.js +7 -4
  268. package/src/providers/orbit/actions.d.ts +2 -0
  269. package/src/providers/orbit/actions.js +3030 -0
  270. package/src/providers/orbit/executors.d.ts +4 -0
  271. package/src/providers/orbit/executors.js +106 -0
  272. package/src/providers/orbit/routes.d.ts +9 -0
  273. package/src/providers/orbit/routes.js +170 -0
  274. package/src/providers/pandadoc/executors.d.ts +2 -0
  275. package/src/providers/pandadoc/executors.js +2 -0
  276. package/src/providers/pandadoc/trigger-on-document-event.d.ts +2 -0
  277. package/src/providers/pandadoc/trigger-on-document-event.definition.d.ts +4 -0
  278. package/src/providers/pandadoc/trigger-on-document-event.definition.js +33 -0
  279. package/src/providers/pandadoc/trigger-on-document-event.js +96 -0
  280. package/src/providers/pipedrive/executors.d.ts +2 -0
  281. package/src/providers/pipedrive/executors.js +2 -0
  282. package/src/providers/pipedrive/trigger-on-crm-event.d.ts +2 -0
  283. package/src/providers/pipedrive/trigger-on-crm-event.definition.d.ts +4 -0
  284. package/src/providers/pipedrive/trigger-on-crm-event.definition.js +30 -0
  285. package/src/providers/pipedrive/trigger-on-crm-event.js +101 -0
  286. package/src/providers/ploid/actions.d.ts +16 -0
  287. package/src/providers/ploid/actions.js +23 -0
  288. package/src/providers/ploid/endpoints.json +8440 -0
  289. package/src/providers/ploid/executors.d.ts +4 -0
  290. package/src/providers/ploid/executors.js +119 -0
  291. package/src/providers/provider-runtime.d.ts +13 -0
  292. package/src/providers/provider-runtime.js +37 -4
  293. package/src/providers/registry.generated.js +17 -0
  294. package/src/providers/resend/executors.d.ts +2 -0
  295. package/src/providers/resend/executors.js +2 -0
  296. package/src/providers/resend/trigger-on-email-event.d.ts +2 -0
  297. package/src/providers/resend/trigger-on-email-event.definition.d.ts +4 -0
  298. package/src/providers/resend/trigger-on-email-event.definition.js +37 -0
  299. package/src/providers/resend/trigger-on-email-event.js +125 -0
  300. package/src/providers/salesforce/chatter-routes.d.ts +107 -0
  301. package/src/providers/salesforce/chatter-routes.js +140 -0
  302. package/src/providers/salesforce/context.d.ts +2 -2
  303. package/src/providers/salesforce/context.js +7 -4
  304. package/src/providers/salesforce/executors.js +10 -0
  305. package/src/providers/salesforce/runtime-approvals.d.ts +2 -0
  306. package/src/providers/salesforce/runtime-approvals.js +52 -0
  307. package/src/providers/salesforce/runtime-base.js +14 -3
  308. package/src/providers/salesforce/runtime-chatter.d.ts +2 -0
  309. package/src/providers/salesforce/runtime-chatter.js +78 -0
  310. package/src/providers/salesforce/runtime-knowledge.d.ts +2 -0
  311. package/src/providers/salesforce/runtime-knowledge.js +34 -0
  312. package/src/providers/salesforce/runtime-leads.d.ts +2 -0
  313. package/src/providers/salesforce/runtime-leads.js +117 -0
  314. package/src/providers/salesforce/runtime-platform.d.ts +2 -0
  315. package/src/providers/salesforce/runtime-platform.js +67 -0
  316. package/src/providers/saperly/actions.d.ts +17 -0
  317. package/src/providers/saperly/actions.js +869 -0
  318. package/src/providers/saperly/executors.d.ts +4 -0
  319. package/src/providers/saperly/executors.js +113 -0
  320. package/src/providers/saperly/schemas.d.ts +33 -0
  321. package/src/providers/saperly/schemas.js +601 -0
  322. package/src/providers/search1api/actions.d.ts +2 -0
  323. package/src/providers/search1api/actions.js +39 -0
  324. package/src/providers/search1api/executors.d.ts +4 -0
  325. package/src/providers/search1api/executors.js +72 -0
  326. package/src/providers/search1api/runtime.d.ts +3 -0
  327. package/src/providers/search1api/runtime.js +44 -0
  328. package/src/providers/search1api/schemas.d.ts +3 -0
  329. package/src/providers/search1api/schemas.js +1834 -0
  330. package/src/providers/sentry/executors.d.ts +2 -0
  331. package/src/providers/sentry/executors.js +2 -0
  332. package/src/providers/sentry/trigger-on-issue-alert.d.ts +2 -0
  333. package/src/providers/sentry/trigger-on-issue-alert.definition.d.ts +4 -0
  334. package/src/providers/sentry/trigger-on-issue-alert.definition.js +64 -0
  335. package/src/providers/sentry/trigger-on-issue-alert.js +80 -0
  336. package/src/providers/sf_express/runtime.d.ts +0 -16
  337. package/src/providers/sf_express/runtime.js +2 -2
  338. package/src/providers/slack/runtime.d.ts +6 -1
  339. package/src/providers/slack/runtime.js +21 -0
  340. package/src/providers/slackbot/actions.js +17 -1
  341. package/src/providers/slackbot/executors.d.ts +2 -0
  342. package/src/providers/slackbot/executors.js +5 -1
  343. package/src/providers/slackbot/trigger-on-event.d.ts +2 -0
  344. package/src/providers/slackbot/trigger-on-event.definition.d.ts +4 -0
  345. package/src/providers/slackbot/trigger-on-event.definition.js +57 -0
  346. package/src/providers/slackbot/trigger-on-event.js +23 -0
  347. package/src/providers/surf/actions.d.ts +21 -0
  348. package/src/providers/surf/actions.js +26 -0
  349. package/src/providers/surf/discovery-definitions.d.ts +2 -0
  350. package/src/providers/surf/discovery-definitions.js +871 -0
  351. package/src/providers/surf/equity-definitions.d.ts +2 -0
  352. package/src/providers/surf/equity-definitions.js +322 -0
  353. package/src/providers/surf/executors.d.ts +4 -0
  354. package/src/providers/surf/executors.js +131 -0
  355. package/src/providers/surf/market-definitions.d.ts +2 -0
  356. package/src/providers/surf/market-definitions.js +885 -0
  357. package/src/providers/surf/onchain-definitions.d.ts +2 -0
  358. package/src/providers/surf/onchain-definitions.js +901 -0
  359. package/src/providers/surf/prediction-definitions.d.ts +2 -0
  360. package/src/providers/surf/prediction-definitions.js +683 -0
  361. package/src/providers/surf/shared-schemas.d.ts +18 -0
  362. package/src/providers/surf/shared-schemas.js +37 -0
  363. package/src/providers/tally/executors.d.ts +2 -0
  364. package/src/providers/tally/executors.js +2 -0
  365. package/src/providers/tally/trigger-on-form-response.d.ts +2 -0
  366. package/src/providers/tally/trigger-on-form-response.definition.d.ts +4 -0
  367. package/src/providers/tally/trigger-on-form-response.definition.js +54 -0
  368. package/src/providers/tally/trigger-on-form-response.js +166 -0
  369. package/src/providers/tinyfish/actions.d.ts +6 -0
  370. package/src/providers/tinyfish/actions.js +19 -0
  371. package/src/providers/tinyfish/agent-actions.d.ts +2 -0
  372. package/src/providers/tinyfish/agent-actions.js +268 -0
  373. package/src/providers/tinyfish/data-actions.d.ts +2 -0
  374. package/src/providers/tinyfish/data-actions.js +186 -0
  375. package/src/providers/tinyfish/data-schemas.d.ts +7 -0
  376. package/src/providers/tinyfish/data-schemas.js +103 -0
  377. package/src/providers/tinyfish/endpoints.d.ts +14 -0
  378. package/src/providers/tinyfish/endpoints.js +1 -0
  379. package/src/providers/tinyfish/executors.d.ts +4 -0
  380. package/src/providers/tinyfish/executors.js +133 -0
  381. package/src/providers/tinyfish/management-actions.d.ts +2 -0
  382. package/src/providers/tinyfish/management-actions.js +524 -0
  383. package/src/providers/tinyfish/monitor-schemas.d.ts +5 -0
  384. package/src/providers/tinyfish/monitor-schemas.js +65 -0
  385. package/src/providers/tinyfish/research-schemas.d.ts +6 -0
  386. package/src/providers/tinyfish/research-schemas.js +71 -0
  387. package/src/providers/trello/executors.js +5 -2
  388. package/src/providers/typeform/executors.d.ts +2 -0
  389. package/src/providers/typeform/executors.js +2 -0
  390. package/src/providers/typeform/trigger-on-form-response.d.ts +2 -0
  391. package/src/providers/typeform/trigger-on-form-response.definition.d.ts +4 -0
  392. package/src/providers/typeform/trigger-on-form-response.definition.js +40 -0
  393. package/src/providers/typeform/trigger-on-form-response.js +68 -0
  394. package/src/providers/vaquill/actions.d.ts +13 -0
  395. package/src/providers/vaquill/actions.js +529 -0
  396. package/src/providers/vaquill/executors.d.ts +4 -0
  397. package/src/providers/vaquill/executors.js +141 -0
  398. package/src/providers/vaquill/schemas.d.ts +67 -0
  399. package/src/providers/vaquill/schemas.js +4953 -0
  400. package/src/providers/vercel/executors.d.ts +2 -0
  401. package/src/providers/vercel/executors.js +2 -0
  402. package/src/providers/vercel/trigger-on-deployment-event.d.ts +2 -0
  403. package/src/providers/vercel/trigger-on-deployment-event.definition.d.ts +5 -0
  404. package/src/providers/vercel/trigger-on-deployment-event.definition.js +41 -0
  405. package/src/providers/vercel/trigger-on-deployment-event.js +102 -0
  406. package/src/providers/weixin_bot/runtime.d.ts +0 -1
  407. package/src/providers/weixin_bot/runtime.js +1 -1
  408. package/src/providers/weixin_store/access-token.d.ts +3 -3
  409. package/src/providers/weixin_store/access-token.js +15 -7
  410. package/src/providers/weixin_store/executors.js +214 -1
  411. package/src/providers/zoom/executors.d.ts +2 -0
  412. package/src/providers/zoom/executors.js +2 -0
  413. package/src/providers/zoom/trigger-on-recording-ready.d.ts +2 -0
  414. package/src/providers/zoom/trigger-on-recording-ready.definition.d.ts +4 -0
  415. package/src/providers/zoom/trigger-on-recording-ready.definition.js +44 -0
  416. package/src/providers/zoom/trigger-on-recording-ready.js +39 -0
  417. package/src/server/api/action-example.js +12 -1
  418. package/src/server/api/pattern-example.js +35 -1
  419. package/src/server/api/trigger-routes.js +1 -1
  420. package/src/server/connect-app.js +1 -0
  421. package/src/triggers/common/integration.d.ts +15 -3
  422. package/src/triggers/common/integration.js +5 -0
  423. package/src/triggers/common/proxy.d.ts +7 -0
  424. package/src/triggers/managed-webhook.d.ts +13 -0
  425. package/src/triggers/managed-webhook.js +48 -0
  426. package/src/triggers/request.d.ts +5 -1
  427. package/src/triggers/request.js +2 -0
  428. package/src/triggers/resources.d.ts +8 -2
  429. package/src/triggers/resources.js +31 -0
  430. package/src/triggers/signature.d.ts +3 -3
  431. package/src/triggers/signature.js +4 -6
  432. package/src/triggers/sources/configuration-schema.d.ts +5 -0
  433. package/src/triggers/sources/configuration-schema.js +118 -0
  434. package/src/triggers/sources/configuration.d.ts +115 -0
  435. package/src/triggers/sources/configuration.js +1 -0
  436. package/src/triggers/sources/definition.d.ts +61 -0
  437. package/src/triggers/sources/definition.js +3 -0
  438. package/src/triggers/sources/feishu-demands.d.ts +6 -0
  439. package/src/triggers/sources/feishu-demands.js +24 -0
  440. package/src/triggers/sources/feishu-events.d.ts +19 -0
  441. package/src/triggers/sources/feishu-events.js +108 -0
  442. package/src/triggers/sources/feishu.d.ts +3 -0
  443. package/src/triggers/sources/feishu.js +85 -0
  444. package/src/triggers/sources/fireflies.d.ts +3 -0
  445. package/src/triggers/sources/fireflies.js +100 -0
  446. package/src/triggers/sources/intercom.d.ts +3 -0
  447. package/src/triggers/sources/intercom.js +86 -0
  448. package/src/triggers/sources/jira.d.ts +3 -0
  449. package/src/triggers/sources/jira.js +120 -0
  450. package/src/triggers/sources/operation.d.ts +42 -0
  451. package/src/triggers/sources/operation.js +146 -0
  452. package/src/triggers/sources/sentry.d.ts +3 -0
  453. package/src/triggers/sources/sentry.js +125 -0
  454. package/src/triggers/sources/signature.d.ts +1 -0
  455. package/src/triggers/sources/signature.js +10 -0
  456. package/src/triggers/sources/slack.d.ts +3 -0
  457. package/src/triggers/sources/slack.js +127 -0
  458. package/src/triggers/sources/zoom.d.ts +3 -0
  459. package/src/triggers/sources/zoom.js +113 -0
  460. package/src/triggers/trigger-runner.d.ts +2 -0
  461. package/src/triggers/trigger-runner.js +52 -16
@@ -0,0 +1,871 @@
1
+ import { s } from "../../core/json-schema.js";
2
+ import { arrayResponseSchema, dataSchema, metaSchema, objectResponseSchema, orderSchema, fromSchema, projectIdSchema, projectSearchQuerySchema, } from "./shared-schemas.js";
3
+ export const discoveryDefinitions = [
4
+ {
5
+ name: "fund_detail",
6
+ description: "Fund Profile Detail.",
7
+ operationType: "read",
8
+ route: {
9
+ path: "/gateway/v1/fund/detail",
10
+ method: "GET",
11
+ parameters: [
12
+ { name: "id", in: "query", field: "id" },
13
+ { name: "q", in: "query", field: "q" },
14
+ ],
15
+ body: false,
16
+ },
17
+ inputSchema: {
18
+ ...s.object("Parameters for Fund Profile Detail.", {
19
+ id: s.withExamples(s.string("Surf fund UUID. PREFERRED — always use this when available from a previous response (e.g. id from /search/fund). Takes priority over q."), ["ef3b6da9-283d-4080-b3c7-87b1b45924dc"]),
20
+ q: s.withExamples(s.string("Fuzzy fund name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.", { maxLength: 100 }), ["a16z"]),
21
+ }, { required: [], additionalProperties: false }),
22
+ anyOf: [{ required: ["id"] }, { required: ["q"] }],
23
+ },
24
+ outputSchema: objectResponseSchema,
25
+ },
26
+ {
27
+ name: "fund_portfolio",
28
+ description: "Fund Portfolio.",
29
+ operationType: "read",
30
+ route: {
31
+ path: "/gateway/v1/fund/portfolio",
32
+ method: "GET",
33
+ parameters: [
34
+ { name: "id", in: "query", field: "id" },
35
+ { name: "q", in: "query", field: "q" },
36
+ { name: "limit", in: "query", field: "limit" },
37
+ { name: "offset", in: "query", field: "offset" },
38
+ { name: "is_lead", in: "query", field: "is_lead" },
39
+ { name: "invested_after", in: "query", field: "invested_after" },
40
+ { name: "invested_before", in: "query", field: "invested_before" },
41
+ { name: "sort_by", in: "query", field: "sort_by" },
42
+ { name: "order", in: "query", field: "order" },
43
+ ],
44
+ body: false,
45
+ },
46
+ inputSchema: s.object("Parameters for Fund Portfolio.", {
47
+ id: s.withExamples(s.string("Surf fund UUID. PREFERRED — always use this when available from a previous response (e.g. id from /search/fund). Takes priority over q."), ["ef3b6da9-283d-4080-b3c7-87b1b45924dc"]),
48
+ q: s.withExamples(s.string("Fuzzy fund name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.", { maxLength: 100 }), ["a16z"]),
49
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
50
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
51
+ is_lead: s.withExamples(s.withEnum(s.string("Filter by lead investor status. Omit or leave empty for all investments."), [
52
+ "true",
53
+ "false",
54
+ "",
55
+ ]), ["true"]),
56
+ invested_after: s.withExamples(s.integer("Only include investments at or after this Unix timestamp (seconds)"), [1704067200]),
57
+ invested_before: s.withExamples(s.integer("Only include investments before this Unix timestamp (seconds)"), [1735689600]),
58
+ sort_by: s.withExamples(s.withEnum(s.string('Field to sort results by Default: "invested_at".'), [
59
+ "invested_at",
60
+ "recent_raise",
61
+ "total_raise",
62
+ ]), ["recent_raise"]),
63
+ order: orderSchema,
64
+ }, { required: [], additionalProperties: false }),
65
+ outputSchema: arrayResponseSchema,
66
+ },
67
+ {
68
+ name: "fund_ranking",
69
+ description: "Fund Ranking.",
70
+ operationType: "read",
71
+ route: {
72
+ path: "/gateway/v1/fund/ranking",
73
+ method: "GET",
74
+ parameters: [
75
+ { name: "metric", in: "query", field: "metric" },
76
+ { name: "limit", in: "query", field: "limit" },
77
+ { name: "offset", in: "query", field: "offset" },
78
+ ],
79
+ body: false,
80
+ },
81
+ inputSchema: s.object("Parameters for Fund Ranking.", {
82
+ metric: s.withExamples(s.withEnum(s.string("Ranking metric. Can be `tier` (lower is better) or `portfolio_count` (number of invested projects)."), ["tier", "portfolio_count"]), ["tier"]),
83
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
84
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
85
+ }, { required: ["metric"], additionalProperties: false }),
86
+ outputSchema: arrayResponseSchema,
87
+ },
88
+ {
89
+ name: "signal_detail",
90
+ description: "Signal Detail.",
91
+ operationType: "read",
92
+ route: {
93
+ path: "/gateway/v1/heatscore/detail",
94
+ method: "GET",
95
+ parameters: [
96
+ { name: "id", in: "query", field: "id" },
97
+ { name: "project_slug", in: "query", field: "project_slug" },
98
+ { name: "time_range", in: "query", field: "time_range" },
99
+ ],
100
+ body: false,
101
+ },
102
+ inputSchema: s.object("Parameters for Signal Detail.", {
103
+ id: s.withExamples(s.string("Surf token UUID. Pass exactly one of id or project_slug."), [
104
+ "25c6612a-395c-4974-94eb-3b5f9f4b2ed7",
105
+ ]),
106
+ project_slug: s.withExamples(s.string("Project slug. Pass exactly one of id or project_slug."), ["synapse"]),
107
+ time_range: s.withExamples(s.withEnum(s.string('Window to compute signal score over: 24h or 7d. Default: "24h".'), ["24h", "7d"]), ["24h"]),
108
+ }, { required: [], additionalProperties: false }),
109
+ outputSchema: objectResponseSchema,
110
+ },
111
+ {
112
+ name: "signal_projects",
113
+ description: "Signal Projects.",
114
+ operationType: "read",
115
+ route: {
116
+ path: "/gateway/v1/heatscore/projects",
117
+ method: "GET",
118
+ parameters: [
119
+ { name: "time_range", in: "query", field: "time_range" },
120
+ { name: "limit", in: "query", field: "limit" },
121
+ { name: "offset", in: "query", field: "offset" },
122
+ ],
123
+ body: false,
124
+ },
125
+ inputSchema: s.object("Parameters for Signal Projects.", {
126
+ time_range: s.withExamples(s.withEnum(s.string('Window to compute signal scores over: 24h or 7d. Returns a ranked snapshot, not a time-series. Default: "24h".'), ["24h", "7d"]), ["24h"]),
127
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
128
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
129
+ }, { required: [], additionalProperties: false }),
130
+ outputSchema: arrayResponseSchema,
131
+ },
132
+ {
133
+ name: "signal_token_of_the_day",
134
+ description: "Signal Token Of The Day.",
135
+ operationType: "read",
136
+ route: {
137
+ path: "/gateway/v1/heatscore/token-of-the-day",
138
+ method: "GET",
139
+ parameters: [
140
+ { name: "limit", in: "query", field: "limit" },
141
+ { name: "offset", in: "query", field: "offset" },
142
+ ],
143
+ body: false,
144
+ },
145
+ inputSchema: s.object("Parameters for Signal Token Of The Day.", {
146
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
147
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
148
+ }, { required: [], additionalProperties: false }),
149
+ outputSchema: arrayResponseSchema,
150
+ },
151
+ {
152
+ name: "signal_token_of_week",
153
+ description: "Signal Token Of The Week.",
154
+ operationType: "read",
155
+ route: {
156
+ path: "/gateway/v1/heatscore/token-of-week",
157
+ method: "GET",
158
+ parameters: [
159
+ { name: "limit", in: "query", field: "limit" },
160
+ { name: "offset", in: "query", field: "offset" },
161
+ ],
162
+ body: false,
163
+ },
164
+ inputSchema: s.object("Parameters for Signal Token Of The Week.", {
165
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
166
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
167
+ }, { required: [], additionalProperties: false }),
168
+ outputSchema: arrayResponseSchema,
169
+ },
170
+ {
171
+ name: "news_detail",
172
+ description: "News Article Detail.",
173
+ operationType: "read",
174
+ route: {
175
+ path: "/gateway/v1/news/detail",
176
+ method: "GET",
177
+ parameters: [{ name: "id", in: "query", field: "id" }],
178
+ body: false,
179
+ },
180
+ inputSchema: s.object("Parameters for News Article Detail.", {
181
+ id: s.withExamples(s.string("Article ID (returned as id in feed/search results)"), [
182
+ "e54e0ac4-1ef8-44d2-928e-52df465e2c81",
183
+ ]),
184
+ }, { required: ["id"], additionalProperties: false }),
185
+ outputSchema: objectResponseSchema,
186
+ },
187
+ {
188
+ name: "news_feed",
189
+ description: "Crypto News Feed.",
190
+ operationType: "read",
191
+ route: {
192
+ path: "/gateway/v1/news/feed",
193
+ method: "GET",
194
+ parameters: [
195
+ { name: "source", in: "query", field: "source" },
196
+ { name: "project", in: "query", field: "project" },
197
+ { name: "from", in: "query", field: "from" },
198
+ { name: "to", in: "query", field: "to" },
199
+ { name: "sort_by", in: "query", field: "sort_by" },
200
+ { name: "limit", in: "query", field: "limit" },
201
+ { name: "offset", in: "query", field: "offset" },
202
+ ],
203
+ body: false,
204
+ },
205
+ inputSchema: s.object("Parameters for Crypto News Feed.", {
206
+ source: s.withExamples(s.withEnum(s.string("Filter by news source"), [
207
+ "coindesk",
208
+ "cointelegraph",
209
+ "theblock",
210
+ "decrypt",
211
+ "dlnews",
212
+ "blockbeats",
213
+ "bitcoincom",
214
+ "coinpedia",
215
+ "ambcrypto",
216
+ "cryptodaily",
217
+ "cryptopotato",
218
+ "phemex",
219
+ "panews",
220
+ "odaily",
221
+ "tradingview",
222
+ "chaincatcher",
223
+ "techflow",
224
+ ]), ["coindesk"]),
225
+ project: s.withExamples(s.string("Comma-separated project names to filter by"), ["bitcoin,ethereum"]),
226
+ from: s.withExamples(s.string("Filter articles published on or after this time. Accepts Unix seconds or date string (2024-01-01)"), ["2024-01-01"]),
227
+ to: s.withExamples(s.string("Filter articles published on or before this time. Accepts Unix seconds or date string (2024-02-01)"), ["2024-02-01"]),
228
+ sort_by: s.withExamples(s.withEnum(s.string('Sort order: recency (newest first) or trending (deterministic newest-first alias until engagement ranking is available) Default: "recency".'), ["recency", "trending"]), ["recency"]),
229
+ limit: s.withExamples(s.integer("Results per page (max 50) Default: 20.", { minimum: 1, maximum: 50 }), [20]),
230
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
231
+ }, { required: [], additionalProperties: false }),
232
+ outputSchema: arrayResponseSchema,
233
+ },
234
+ {
235
+ name: "project_ai_news",
236
+ description: "Project AI News.",
237
+ operationType: "read",
238
+ route: {
239
+ path: "/gateway/v1/project/ai-news",
240
+ method: "GET",
241
+ parameters: [
242
+ { name: "id", in: "query", field: "id" },
243
+ { name: "q", in: "query", field: "q" },
244
+ { name: "limit", in: "query", field: "limit" },
245
+ { name: "offset", in: "query", field: "offset" },
246
+ { name: "lang", in: "query", field: "lang" },
247
+ ],
248
+ body: false,
249
+ },
250
+ inputSchema: s.object("Parameters for Project AI News.", {
251
+ id: projectIdSchema,
252
+ q: projectSearchQuerySchema,
253
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 50 }), [20]),
254
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
255
+ lang: s.withExamples(s.withEnum(s.string('Language for AI-generated content Default: "en".'), ["en", "zh", "ja", "kr"]), ["en"]),
256
+ }, { required: [], additionalProperties: false }),
257
+ outputSchema: arrayResponseSchema,
258
+ },
259
+ {
260
+ name: "project_defi_metrics",
261
+ description: "Project DeFi Metrics.",
262
+ operationType: "read",
263
+ route: {
264
+ path: "/gateway/v1/project/defi/metrics",
265
+ method: "GET",
266
+ parameters: [
267
+ { name: "id", in: "query", field: "id" },
268
+ { name: "q", in: "query", field: "q" },
269
+ { name: "metric", in: "query", field: "metric" },
270
+ { name: "from", in: "query", field: "from" },
271
+ { name: "to", in: "query", field: "to" },
272
+ { name: "chain", in: "query", field: "chain" },
273
+ { name: "limit", in: "query", field: "limit" },
274
+ { name: "offset", in: "query", field: "offset" },
275
+ ],
276
+ body: false,
277
+ },
278
+ inputSchema: s.object("Parameters for Project DeFi Metrics.", {
279
+ id: projectIdSchema,
280
+ q: s.withExamples(s.string("Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names."), ["uniswap"]),
281
+ metric: s.withExamples(s.withEnum(s.string('Metric to query. Can be `volume`, `fees` (or `fee` alias), `revenue`, `tvl`, or `users`. Defaults to tvl. Default: "tvl".'), ["volume", "fee", "fees", "revenue", "tvl", "users"]), ["tvl"]),
282
+ from: fromSchema,
283
+ to: s.withExamples(s.string("End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`)"), ["2024-02-01"]),
284
+ chain: s.withExamples(s.withEnum(s.string("Filter by chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, or `solana`."), ["ethereum", "polygon", "bsc", "arbitrum", "optimism", "base", "avalanche", "fantom", "solana"]), ["ethereum"]),
285
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
286
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
287
+ }, { required: [], additionalProperties: false }),
288
+ outputSchema: arrayResponseSchema,
289
+ },
290
+ {
291
+ name: "project_defi_ranking",
292
+ description: "DeFi Protocol Ranking.",
293
+ operationType: "read",
294
+ route: {
295
+ path: "/gateway/v1/project/defi/ranking",
296
+ method: "GET",
297
+ parameters: [
298
+ { name: "metric", in: "query", field: "metric" },
299
+ { name: "limit", in: "query", field: "limit" },
300
+ { name: "offset", in: "query", field: "offset" },
301
+ ],
302
+ body: false,
303
+ },
304
+ inputSchema: s.object("Parameters for DeFi Protocol Ranking.", {
305
+ metric: s.withExamples(s.withEnum(s.string("Ranking metric. Can be `tvl`, `revenue`, `fees`, `volume`, or `users`."), [
306
+ "tvl",
307
+ "revenue",
308
+ "fees",
309
+ "volume",
310
+ "users",
311
+ ]), ["tvl"]),
312
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
313
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
314
+ }, { required: ["metric"], additionalProperties: false }),
315
+ outputSchema: arrayResponseSchema,
316
+ },
317
+ {
318
+ name: "project_detail",
319
+ description: "Aggregated Project Detail.",
320
+ operationType: "read",
321
+ route: {
322
+ path: "/gateway/v1/project/detail",
323
+ method: "GET",
324
+ parameters: [
325
+ { name: "id", in: "query", field: "id" },
326
+ { name: "x_id", in: "query", field: "x_id" },
327
+ { name: "handle", in: "query", field: "handle" },
328
+ { name: "q", in: "query", field: "q" },
329
+ { name: "fields", in: "query", field: "fields" },
330
+ ],
331
+ body: false,
332
+ },
333
+ inputSchema: s.object("Parameters for Aggregated Project Detail.", {
334
+ id: projectIdSchema,
335
+ x_id: s.withExamples(s.string("Numeric X (Twitter) account ID. Resolves to the associated project."), [
336
+ "984188226826010624",
337
+ ]),
338
+ handle: s.withExamples(s.string("X (Twitter) handle without @. Resolves to the associated project via twitter account lookup."), ["uniswap"]),
339
+ q: projectSearchQuerySchema,
340
+ fields: s.withExamples(s.string('Comma-separated sub-resources to include. Can be `overview`, `token_info`, `tokenomics`, `funding`, `team`, `contracts`, `social`, or `tge_status`. Default: "overview,token_info,tokenomics,funding,team,contracts,social,tge_status".'), ["overview,token_info,funding"]),
341
+ }, { required: [], additionalProperties: false }),
342
+ outputSchema: objectResponseSchema,
343
+ },
344
+ {
345
+ name: "project_pulse",
346
+ description: "Project Pulse [Deprecated].",
347
+ operationType: "read",
348
+ route: {
349
+ path: "/gateway/v1/project/pulse",
350
+ method: "GET",
351
+ parameters: [
352
+ { name: "id", in: "query", field: "id" },
353
+ { name: "q", in: "query", field: "q" },
354
+ { name: "limit", in: "query", field: "limit" },
355
+ { name: "offset", in: "query", field: "offset" },
356
+ { name: "lang", in: "query", field: "lang" },
357
+ ],
358
+ body: false,
359
+ },
360
+ inputSchema: s.object("Parameters for Project Pulse [Deprecated].", {
361
+ id: projectIdSchema,
362
+ q: projectSearchQuerySchema,
363
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 50 }), [20]),
364
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
365
+ lang: s.withExamples(s.withEnum(s.string('Language for AI-generated content Default: "en".'), ["en", "zh", "ja", "kr"]), ["en"]),
366
+ }, { required: [], additionalProperties: false }),
367
+ outputSchema: arrayResponseSchema,
368
+ },
369
+ {
370
+ name: "search_airdrop",
371
+ description: "Airdrop Search.",
372
+ operationType: "read",
373
+ route: {
374
+ path: "/gateway/v1/search/airdrop",
375
+ method: "GET",
376
+ parameters: [
377
+ { name: "q", in: "query", field: "q" },
378
+ { name: "phase", in: "query", field: "phase" },
379
+ { name: "reward_type", in: "query", field: "reward_type" },
380
+ { name: "task_type", in: "query", field: "task_type" },
381
+ { name: "has_open", in: "query", field: "has_open" },
382
+ { name: "sort_by", in: "query", field: "sort_by" },
383
+ { name: "order", in: "query", field: "order" },
384
+ { name: "limit", in: "query", field: "limit" },
385
+ { name: "offset", in: "query", field: "offset" },
386
+ { name: "include_tasks", in: "query", field: "include_tasks" },
387
+ ],
388
+ body: false,
389
+ },
390
+ inputSchema: s.object("Parameters for Airdrop Search.", {
391
+ q: s.withExamples(s.string("Search keyword for coin name", { maxLength: 100 }), ["airdrop"]),
392
+ phase: s.withExamples(s.string('Comma-separated lifecycle phases. `active` = tasks open, can participate (POTENTIAL + CONFIRMED). `claimable` = eligible, can claim (SNAPSHOT + VERIFICATION + REWARD_AVAILABLE). `completed` = done (DISTRIBUTED). Defaults to `active,claimable` to show actionable airdrops. Default: "active,claimable".'), ["active"]),
393
+ reward_type: s.withExamples(s.withEnum(s.string("Filter by reward type"), [
394
+ "airdrop",
395
+ "points",
396
+ "whitelist",
397
+ "nft",
398
+ "role",
399
+ "ambassador",
400
+ ]), ["airdrop"]),
401
+ task_type: s.withExamples(s.withEnum(s.string("Filter activities containing tasks of this type"), [
402
+ "social",
403
+ "bounty-platforms",
404
+ "testnet",
405
+ "mainnet",
406
+ "role",
407
+ "form",
408
+ "liquidity",
409
+ "mint-nft",
410
+ "game",
411
+ "trading",
412
+ "staking",
413
+ "depin",
414
+ "node",
415
+ "ambassador",
416
+ "hold",
417
+ "check-wallet",
418
+ "mint-domain",
419
+ "predictions",
420
+ "deploy",
421
+ ]), ["social"]),
422
+ has_open: s.withExamples(s.boolean("Only return activities with currently OPEN tasks Default: false."), [true]),
423
+ sort_by: s.withExamples(s.withEnum(s.string('Field to sort results by Default: "last_status_update".'), [
424
+ "total_raise",
425
+ "xscore",
426
+ "last_status_update",
427
+ ]), ["last_status_update"]),
428
+ order: orderSchema,
429
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
430
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
431
+ include_tasks: s.withExamples(s.boolean("Include full task list per activity Default: false."), [true]),
432
+ }, { required: [], additionalProperties: false }),
433
+ outputSchema: arrayResponseSchema,
434
+ },
435
+ {
436
+ name: "search_airdrop_activities",
437
+ description: "Airdrop Activities.",
438
+ operationType: "read",
439
+ route: {
440
+ path: "/gateway/v1/search/airdrop/activities",
441
+ method: "GET",
442
+ parameters: [
443
+ { name: "limit", in: "query", field: "limit" },
444
+ { name: "offset", in: "query", field: "offset" },
445
+ ],
446
+ body: false,
447
+ },
448
+ inputSchema: s.object("Parameters for Airdrop Activities.", {
449
+ limit: s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }),
450
+ offset: s.integer("Pagination offset Default: 0.", { minimum: 0 }),
451
+ }, { required: [], additionalProperties: false }),
452
+ outputSchema: arrayResponseSchema,
453
+ },
454
+ {
455
+ name: "search_events",
456
+ description: "Project Event Search.",
457
+ operationType: "read",
458
+ route: {
459
+ path: "/gateway/v1/search/events",
460
+ method: "GET",
461
+ parameters: [
462
+ { name: "id", in: "query", field: "id" },
463
+ { name: "q", in: "query", field: "q" },
464
+ { name: "type", in: "query", field: "type" },
465
+ { name: "limit", in: "query", field: "limit" },
466
+ { name: "offset", in: "query", field: "offset" },
467
+ ],
468
+ body: false,
469
+ },
470
+ inputSchema: s.object("Parameters for Project Event Search.", {
471
+ id: projectIdSchema,
472
+ q: projectSearchQuerySchema,
473
+ type: s.withExamples(s.withEnum(s.string("Filter by event type. Can be `launch`, `upgrade`, `partnership`, `news`, `airdrop`, `listing`, or `twitter`."), ["launch", "upgrade", "partnership", "news", "airdrop", "listing", "twitter"]), ["launch"]),
474
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
475
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
476
+ }, { required: [], additionalProperties: false }),
477
+ outputSchema: arrayResponseSchema,
478
+ },
479
+ {
480
+ name: "search_fund",
481
+ description: "Fund Search.",
482
+ operationType: "read",
483
+ route: {
484
+ path: "/gateway/v1/search/fund",
485
+ method: "GET",
486
+ parameters: [
487
+ { name: "q", in: "query", field: "q" },
488
+ { name: "limit", in: "query", field: "limit" },
489
+ { name: "offset", in: "query", field: "offset" },
490
+ ],
491
+ body: false,
492
+ },
493
+ inputSchema: s.object("Parameters for Fund Search.", {
494
+ q: s.withExamples(s.string("Search keyword — fund name like `a16z`, `paradigm`, or `coinbase ventures`", {
495
+ maxLength: 100,
496
+ }), ["a16z"]),
497
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
498
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
499
+ }, { required: ["q"], additionalProperties: false }),
500
+ outputSchema: arrayResponseSchema,
501
+ },
502
+ {
503
+ name: "search_fundraising",
504
+ description: "Fundraising Event Search.",
505
+ operationType: "read",
506
+ route: {
507
+ path: "/gateway/v1/search/fundraising",
508
+ method: "GET",
509
+ parameters: [
510
+ { name: "q", in: "query", field: "q" },
511
+ { name: "from", in: "query", field: "from" },
512
+ { name: "to", in: "query", field: "to" },
513
+ { name: "source", in: "query", field: "source" },
514
+ { name: "lang", in: "query", field: "lang" },
515
+ { name: "min_importance", in: "query", field: "min_importance" },
516
+ { name: "sort_by", in: "query", field: "sort_by" },
517
+ { name: "order", in: "query", field: "order" },
518
+ { name: "limit", in: "query", field: "limit" },
519
+ { name: "offset", in: "query", field: "offset" },
520
+ ],
521
+ body: false,
522
+ },
523
+ inputSchema: s.object("Parameters for Fundraising Event Search.", {
524
+ q: s.withExamples(s.string("Optional project name, alias, symbol, title, or summary search query. When provided, the trimmed query must contain 2-100 Unicode characters.", { minLength: 2, maxLength: 100 }), ["elliptic"]),
525
+ from: s.withExamples(s.string("Inclusive event-time lower bound. Accepts Unix seconds, YYYY-MM-DD, or RFC3339; date-only values start at 00:00:00 UTC."), ["2026-07-01"]),
526
+ to: s.withExamples(s.string("Inclusive event-time upper bound. Accepts Unix seconds, YYYY-MM-DD, or RFC3339; date-only values end at 23:59:59 UTC. Defaults to the current time."), ["2026-07-10"]),
527
+ source: s.withExamples(s.withEnum(s.string("Filter by public source type: social or news."), ["social", "news"]), ["social"]),
528
+ lang: s.withExamples(s.withEnum(s.string('Display and search language. Missing translated fields fall back to English. ko is accepted as an alias for kr. Default: "en".'), ["en", "zh", "ja", "kr", "ko"]), ["en"]),
529
+ min_importance: s.withExamples(s.integer("Minimum importance score from 1 to 5. Omit to include unscored events.", {
530
+ minimum: 1,
531
+ maximum: 5,
532
+ }), [3]),
533
+ sort_by: s.withExamples(s.withEnum(s.string('Sort by recency, query relevance, or importance. Relevance requires q. Default: "recency".'), ["recency", "relevance", "importance"]), ["recency"]),
534
+ order: s.withExamples(s.withEnum(s.string('Sort order. Relevance only supports desc. Default: "desc".'), ["asc", "desc"]), ["desc"]),
535
+ limit: s.withExamples(s.integer("Results per page. Default: 20.", { minimum: 1, maximum: 100 }), [20]),
536
+ offset: s.withExamples(s.integer("Pagination offset. The offset plus limit cannot exceed 10000. Default: 0.", {
537
+ minimum: 0,
538
+ }), [0]),
539
+ }, { required: [], additionalProperties: false }),
540
+ outputSchema: arrayResponseSchema,
541
+ },
542
+ {
543
+ name: "search_news",
544
+ description: "News Article Search.",
545
+ operationType: "read",
546
+ route: {
547
+ path: "/gateway/v1/search/news",
548
+ method: "GET",
549
+ parameters: [
550
+ { name: "q", in: "query", field: "q" },
551
+ { name: "limit", in: "query", field: "limit" },
552
+ { name: "offset", in: "query", field: "offset" },
553
+ ],
554
+ body: false,
555
+ },
556
+ inputSchema: s.object("Parameters for News Article Search.", {
557
+ q: s.withExamples(s.string("Search keyword or phrase"), ["bitcoin ETF"]),
558
+ limit: s.withExamples(s.integer("Results per page Default: 10.", { minimum: 1, maximum: 100 }), [10]),
559
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
560
+ }, { required: ["q"], additionalProperties: false }),
561
+ outputSchema: arrayResponseSchema,
562
+ },
563
+ {
564
+ name: "search_prediction_market",
565
+ description: "Search Prediction Markets.",
566
+ operationType: "read",
567
+ route: {
568
+ path: "/gateway/v1/search/prediction-market",
569
+ method: "GET",
570
+ parameters: [
571
+ { name: "condition_id", in: "query", field: "condition_id" },
572
+ { name: "market_ticker", in: "query", field: "market_ticker" },
573
+ { name: "platform", in: "query", field: "platform" },
574
+ { name: "category", in: "query", field: "category" },
575
+ { name: "status", in: "query", field: "status" },
576
+ { name: "sort_by", in: "query", field: "sort_by" },
577
+ { name: "order", in: "query", field: "order" },
578
+ { name: "smart_money", in: "query", field: "smart_money" },
579
+ { name: "q", in: "query", field: "q" },
580
+ { name: "limit", in: "query", field: "limit" },
581
+ { name: "offset", in: "query", field: "offset" },
582
+ ],
583
+ body: false,
584
+ },
585
+ inputSchema: s.object("Parameters for Search Prediction Markets.", {
586
+ condition_id: s.string("Polymarket condition ID for single-market lookup"),
587
+ market_ticker: s.string("Kalshi market ticker for single-market lookup"),
588
+ platform: s.withEnum(s.string("Filter by platform (omit for both)"), ["polymarket", "kalshi"]),
589
+ category: s.withEnum(s.string("Filter by Surf-curated category"), [
590
+ "crypto",
591
+ "culture",
592
+ "economics",
593
+ "financials",
594
+ "politics",
595
+ "stem",
596
+ "sports",
597
+ ]),
598
+ status: s.withEnum(s.string('Market status filter Default: "active".'), ["active", "closed", "finalized"]),
599
+ sort_by: s.withEnum(s.string('Sort field Default: "volume_7d".'), [
600
+ "volume_1d",
601
+ "volume_7d",
602
+ "volume_30d",
603
+ "open_interest",
604
+ "trade_count_7d",
605
+ "days_to_resolution",
606
+ ]),
607
+ order: s.withEnum(s.string('Sort direction Default: "desc".'), ["asc", "desc"]),
608
+ smart_money: s.withEnum(s.string("Filter by smart money direction (Polymarket only)"), ["bullish", "bearish"]),
609
+ q: s.string("Search markets by keyword in question text or ticker. Results include slug and event fields when available, but machine slugs are not searched."),
610
+ limit: s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }),
611
+ offset: s.integer("Pagination offset Default: 0.", { minimum: 0 }),
612
+ }, { required: [], additionalProperties: false }),
613
+ outputSchema: arrayResponseSchema,
614
+ },
615
+ {
616
+ name: "search_project",
617
+ description: "Project Search.",
618
+ operationType: "read",
619
+ route: {
620
+ path: "/gateway/v1/search/project",
621
+ method: "GET",
622
+ parameters: [
623
+ { name: "q", in: "query", field: "q" },
624
+ { name: "limit", in: "query", field: "limit" },
625
+ { name: "offset", in: "query", field: "offset" },
626
+ ],
627
+ body: false,
628
+ },
629
+ inputSchema: s.object("Parameters for Project Search.", {
630
+ q: s.withExamples(s.string("Search keyword — project name or ticker like `uniswap`, `bitcoin`, or `ETH`", {
631
+ maxLength: 100,
632
+ }), ["bitcoin"]),
633
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
634
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
635
+ }, { required: ["q"], additionalProperties: false }),
636
+ outputSchema: arrayResponseSchema,
637
+ },
638
+ {
639
+ name: "search_token",
640
+ description: "Token Symbol Resolution.",
641
+ operationType: "read",
642
+ route: {
643
+ path: "/gateway/v1/search/token",
644
+ method: "GET",
645
+ parameters: [
646
+ { name: "q", in: "query", field: "q" },
647
+ { name: "chain", in: "query", field: "chain" },
648
+ { name: "limit", in: "query", field: "limit" },
649
+ { name: "offset", in: "query", field: "offset" },
650
+ ],
651
+ body: false,
652
+ },
653
+ inputSchema: s.object("Parameters for Token Symbol Resolution.", {
654
+ q: s.withExamples(s.string("Exact token ticker symbol to resolve (case-insensitive), like `USDC` or `PEPE`. NOT a contract address, trading pair, or fuzzy token name.", { maxLength: 50 }), ["USDC"]),
655
+ chain: s.withExamples(s.withEnum(s.string("Restrict resolution to one supported chain. Omit to search all supported chains."), [
656
+ "ethereum",
657
+ "base",
658
+ "bsc",
659
+ "arbitrum",
660
+ "solana",
661
+ "polygon",
662
+ "optimism",
663
+ "avalanche",
664
+ "fantom",
665
+ "tron",
666
+ "linea",
667
+ "mantle",
668
+ "blast",
669
+ "gnosis",
670
+ "zksync",
671
+ "scroll",
672
+ ]), ["solana"]),
673
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
674
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
675
+ }, { required: ["q"], additionalProperties: false }),
676
+ outputSchema: arrayResponseSchema,
677
+ },
678
+ {
679
+ name: "search_wallet",
680
+ description: "Wallet Search.",
681
+ operationType: "read",
682
+ route: {
683
+ path: "/gateway/v1/search/wallet",
684
+ method: "GET",
685
+ parameters: [
686
+ { name: "q", in: "query", field: "q" },
687
+ { name: "limit", in: "query", field: "limit" },
688
+ { name: "offset", in: "query", field: "offset" },
689
+ ],
690
+ body: false,
691
+ },
692
+ inputSchema: s.object("Parameters for Wallet Search.", {
693
+ q: s.withExamples(s.string("Search keyword like `binance`, `vitalik.eth`, or `0xd8dA...`"), ["vitalik.eth"]),
694
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
695
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
696
+ }, { required: ["q"], additionalProperties: false }),
697
+ outputSchema: arrayResponseSchema,
698
+ },
699
+ {
700
+ name: "search_web",
701
+ description: "Web Search.",
702
+ operationType: "read",
703
+ route: {
704
+ path: "/gateway/v1/search/web",
705
+ method: "GET",
706
+ parameters: [
707
+ { name: "q", in: "query", field: "q" },
708
+ { name: "limit", in: "query", field: "limit" },
709
+ { name: "offset", in: "query", field: "offset" },
710
+ { name: "site", in: "query", field: "site" },
711
+ { name: "include_content", in: "query", field: "include_content" },
712
+ ],
713
+ body: false,
714
+ },
715
+ inputSchema: s.object("Parameters for Web Search.", {
716
+ q: s.withExamples(s.string("Search query like `bitcoin price prediction 2026`"), [
717
+ "bitcoin price prediction 2026",
718
+ ]),
719
+ limit: s.withExamples(s.integer("Results per page Default: 20.", { minimum: 1, maximum: 100 }), [20]),
720
+ offset: s.withExamples(s.integer("Pagination offset Default: 0.", { minimum: 0 }), [0]),
721
+ site: s.withExamples(s.string("Comma-separated domain filter like `coindesk.com` or `cointelegraph.com`"), [
722
+ "coindesk.com,cointelegraph.com",
723
+ ]),
724
+ include_content: s.withExamples(s.boolean("When false (default), search returns title/url/description only — fast (~2-3s) URL discovery. Set true to also include full markdown content for each result (~5-30KB per result, ~10-15s for limit=5). Use true only when the caller needs page content inline and won't follow up with `/web/fetch`. Default: false."), [false]),
725
+ }, { required: ["q"], additionalProperties: false }),
726
+ outputSchema: arrayResponseSchema,
727
+ },
728
+ {
729
+ name: "social_mindshare",
730
+ description: "Project Mindshare Time Series.",
731
+ operationType: "read",
732
+ route: {
733
+ path: "/gateway/v1/social/mindshare",
734
+ method: "GET",
735
+ parameters: [
736
+ { name: "id", in: "query", field: "id" },
737
+ { name: "q", in: "query", field: "q" },
738
+ { name: "interval", in: "query", field: "interval" },
739
+ { name: "from", in: "query", field: "from" },
740
+ { name: "to", in: "query", field: "to" },
741
+ { name: "include_tag_percents", in: "query", field: "include_tag_percents" },
742
+ { name: "source", in: "query", field: "source" },
743
+ ],
744
+ body: false,
745
+ },
746
+ inputSchema: s.object("Parameters for Project Mindshare Time Series.", {
747
+ id: s.withExamples(s.string("Surf project UUID. Provide one of `id` or `q`."), [
748
+ "25c6612a-395c-4974-94eb-3b5f9f4b2ed7",
749
+ ]),
750
+ q: s.withExamples(s.string("Entity name to resolve like `uniswap`, `ethereum`, or `aave`. Provide one of `id` or `q`."), ["uniswap"]),
751
+ interval: s.withExamples(s.withEnum(s.string("Bucket size for each point in the returned time-series: `5m`, `1h`, `1d`, or `7d`. This is NOT a window — the default window is 30 days; pass `from`/`to` to bound the range. Not the same parameter as `time_range` (which does not exist on this endpoint). Note: when `include_tag_percents=true`, `5m` falls back to hourly data for the per-tag series (Argus has no 5m granularity for tag percentages)."), ["5m", "1h", "1d", "7d"]), ["1d"]),
752
+ from: s.withExamples(s.string("Start timestamp. Accepts Unix seconds (1704067200) or date string (2024-01-01)"), ["1704067200"]),
753
+ to: s.withExamples(s.string("End timestamp. Accepts Unix seconds (1706745600) or date string (2024-02-01)"), [
754
+ "1706745600",
755
+ ]),
756
+ include_tag_percents: s.withExamples(s.boolean("Set to `true` to additionally return per-tag mindshare percentage time-series in the `tag_percents` field. A project can belong to multiple tags; each tag returns its own sparse time-series (values are 0~100 percentages, not ratios). Default `false` — response shape is byte-identical to the legacy format. Default: false."), [true]),
757
+ source: s.withEnum(s.string('Data lane: `x` (X/Twitter, default) or `binance_square` (Binance Square). Response shape is identical across sources. Default: "x".'), ["x", "binance_square"]),
758
+ }, { required: ["interval"], additionalProperties: false }),
759
+ outputSchema: s.object("Surf response with the original provider envelope and fields.", {
760
+ $schema: s.string("Response JSON Schema URL."),
761
+ data: dataSchema,
762
+ meta: metaSchema,
763
+ tag_percents: s.array("Per-tag mindshare percentage series, present when requested.", {
764
+ description: "Upstream result item, preserving all provider fields.",
765
+ }),
766
+ }, { required: [], additionalProperties: true }),
767
+ },
768
+ {
769
+ name: "web_fetch",
770
+ description: "Web Page Fetch.",
771
+ operationType: "read",
772
+ route: {
773
+ path: "/gateway/v1/web/fetch",
774
+ method: "GET",
775
+ parameters: [
776
+ { name: "url", in: "query", field: "url" },
777
+ { name: "target_selector", in: "query", field: "target_selector" },
778
+ { name: "remove_selector", in: "query", field: "remove_selector" },
779
+ { name: "wait_for_selector", in: "query", field: "wait_for_selector" },
780
+ { name: "timeout", in: "query", field: "timeout" },
781
+ ],
782
+ body: false,
783
+ },
784
+ inputSchema: s.object("Parameters for Web Page Fetch.", {
785
+ url: s.withExamples(s.string("URL to fetch and parse"), ["https://ethereum.org"]),
786
+ target_selector: s.withExamples(s.string("CSS selector to extract specific content"), ["article.main-content"]),
787
+ remove_selector: s.withExamples(s.string("CSS selector to remove unwanted elements"), ["nav,footer,.ads"]),
788
+ wait_for_selector: s.withExamples(s.string("CSS selector to wait for before extracting"), [".content-loaded"]),
789
+ timeout: s.withExamples(s.integer("Request timeout in milliseconds Default: 30000.", {
790
+ minimum: 1000,
791
+ maximum: 60000,
792
+ }), [5000]),
793
+ }, { required: ["url"], additionalProperties: false }),
794
+ outputSchema: objectResponseSchema,
795
+ },
796
+ {
797
+ name: "x_tweets",
798
+ description: "X Tweets by IDs.",
799
+ operationType: "read",
800
+ route: {
801
+ path: "/gateway/v1/x/tweets",
802
+ method: "GET",
803
+ parameters: [{ name: "ids", in: "query", field: "ids" }],
804
+ body: false,
805
+ },
806
+ inputSchema: s.object("Parameters for X Tweets by IDs.", {
807
+ ids: {
808
+ ...s.withExamples(s.string("Comma-separated numeric tweet IDs, from 1 to 100 values; each ID must contain 1 to 19 digits without leading zeros", { minLength: 1, maxLength: 1999, pattern: "^(0|[1-9][0-9]*)(,(0|[1-9][0-9]*))*$" }), ["1228393702244134912"]),
809
+ patternDescription: "comma-separated canonical numeric tweet IDs",
810
+ },
811
+ }, { required: ["ids"], additionalProperties: false }),
812
+ outputSchema: arrayResponseSchema,
813
+ },
814
+ {
815
+ name: "research",
816
+ description: "Research crypto and equity markets with Surf Research 2.0 and return non-streaming Responses JSON. Use previous_response_id to continue a response chain. surf-2.0-instant favors latency; surf-2.0 supports optional nested reasoning.effort for deeper analysis, with higher latency and credit cost.",
817
+ operationType: "write",
818
+ route: { path: "/gateway/v1/responses", method: "POST", parameters: [], body: true },
819
+ inputSchema: s.object("Research request parameters.", {
820
+ model: s.withEnum(s.string("Surf research model."), ["surf-2.0", "surf-2.0-instant"]),
821
+ input: {
822
+ description: "Prompt text or a Responses-compatible array of input items.",
823
+ anyOf: [
824
+ s.string("Plain-text research prompt."),
825
+ s.array("Responses-compatible input items.", s.object("Input item preserving Responses-compatible fields.", {}, { required: [], additionalProperties: true })),
826
+ ],
827
+ },
828
+ instructions: s.string("System or developer instructions guiding the answer."),
829
+ stream: {
830
+ ...s.boolean("Transport is normalized to non-streaming JSON; only false is accepted."),
831
+ const: false,
832
+ },
833
+ include: s.array("Additional response fields requested from the backend.", s.string("Response field identifier.")),
834
+ max_output_tokens: s.integer("Maximum generated output tokens."),
835
+ metadata: s.object("Client metadata; reserved Surf identity keys are ignored upstream.", {}, { required: [], additionalProperties: true }),
836
+ previous_response_id: s.string("Previous response ID for continuing a response chain."),
837
+ prompt: s.object("Reusable prompt configuration in Responses format.", {}, { required: [], additionalProperties: true }),
838
+ reasoning: s.object("Responses reasoning configuration; omit for a fast single-pass answer.", {
839
+ effort: s.withEnum(s.string("Reasoning effort; surf-2.0 latency and credit cost increase with effort."), [
840
+ "none",
841
+ "minimal",
842
+ "low",
843
+ "medium",
844
+ "high",
845
+ "xhigh",
846
+ ]),
847
+ }, { required: [], additionalProperties: true }),
848
+ }, { required: ["model", "input"], additionalProperties: false }),
849
+ outputSchema: s.object("Surf Research response preserving all output items and metadata.", {
850
+ id: s.string("Response identifier."),
851
+ object: s.string("Response object type."),
852
+ created_at: s.integer("Response creation timestamp in Unix seconds."),
853
+ status: s.string("Response generation status."),
854
+ model: s.string("Model used for the response."),
855
+ output: s.array("Responses output items, including messages and content.", s.object("Output item with original provider fields.", {}, { required: [], additionalProperties: true })),
856
+ output_text: s.string("Generated answer text when supplied."),
857
+ usage: s.object("Input, output, and total token usage.", {}, { required: [], additionalProperties: true }),
858
+ metadata: s.object("Response metadata.", {}, { required: [], additionalProperties: true }),
859
+ error: { description: "Response error." },
860
+ incomplete_details: { description: "Response incomplete details." },
861
+ }, { required: [], additionalProperties: true }),
862
+ },
863
+ {
864
+ name: "credit_balance",
865
+ description: "Read the current API account credit balance.",
866
+ operationType: "read",
867
+ route: { path: "/gateway/v1/me/credit-balance", method: "GET", parameters: [], body: false },
868
+ inputSchema: s.object("Credit balance query parameters.", {}, { required: [], additionalProperties: false }),
869
+ outputSchema: s.object("Credit balance response preserving the provider envelope.", {}, { required: [], additionalProperties: true }),
870
+ },
871
+ ];