@oomol-lab/open-connector 1.9.0 → 1.9.1

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 (395) hide show
  1. package/assets/open-connector/catalog/apps/agentearth.json +441 -0
  2. package/assets/open-connector/catalog/apps/appgrowing_mcp.json +863 -0
  3. package/assets/open-connector/catalog/apps/arcmira.json +610 -0
  4. package/assets/open-connector/catalog/apps/bainiu.json +654 -0
  5. package/assets/open-connector/catalog/apps/chaport.json +331 -0
  6. package/assets/open-connector/catalog/apps/cnb.json +1408 -0
  7. package/assets/open-connector/catalog/apps/crtsh.json +123 -0
  8. package/assets/open-connector/catalog/apps/eastmoney_miaoxiang.json +406 -0
  9. package/assets/open-connector/catalog/apps/fastmoss_mcp.json +876 -876
  10. package/assets/open-connector/catalog/apps/ftshare.json +1162 -0
  11. package/assets/open-connector/catalog/apps/fusion-api.json +143 -0
  12. package/assets/open-connector/catalog/apps/fxbaogao.json +308 -0
  13. package/assets/open-connector/catalog/apps/github.json +38 -3
  14. package/assets/open-connector/catalog/apps/hrmos_kintai.json +7519 -0
  15. package/assets/open-connector/catalog/apps/humor_api.json +351 -0
  16. package/assets/open-connector/catalog/apps/kaonavi.json +1723 -0
  17. package/assets/open-connector/catalog/apps/linear_mcp.json +882 -22
  18. package/assets/open-connector/catalog/apps/listinggood.json +362 -0
  19. package/assets/open-connector/catalog/apps/notion_mcp.json +338 -1
  20. package/assets/open-connector/catalog/apps/outlook.json +414 -0
  21. package/assets/open-connector/catalog/apps/porteden.json +1258 -0
  22. package/assets/open-connector/catalog/apps/qiuxiaoce.json +915 -0
  23. package/assets/open-connector/catalog/apps/qqmusic.json +1834 -0
  24. package/assets/open-connector/catalog/apps/rakuraku_seisan.json +217 -0
  25. package/assets/open-connector/catalog/apps/redfox.json +9661 -897
  26. package/assets/open-connector/catalog/apps/salesforce.json +4907 -0
  27. package/assets/open-connector/catalog/apps/sansan.json +4594 -0
  28. package/assets/open-connector/catalog/apps/smarthr.json +8071 -0
  29. package/assets/open-connector/catalog/apps/smooth.json +914 -0
  30. package/assets/open-connector/catalog/apps/tapd.json +727 -0
  31. package/assets/open-connector/catalog/apps/tencent_meeting_mcp.json +1301 -0
  32. package/assets/open-connector/catalog/apps/threatfox.json +203 -0
  33. package/assets/open-connector/catalog/apps/tradebee.json +915 -0
  34. package/assets/open-connector/catalog/apps/twittrapi.json +4914 -0
  35. package/assets/open-connector/catalog/apps/urlhaus.json +246 -0
  36. package/assets/open-connector/catalog/apps/weread.json +1514 -0
  37. package/assets/open-connector/catalog/apps/whatsapp.json +12 -0
  38. package/assets/open-connector/catalog/apps/zhiliaobiaoxun.json +812 -0
  39. package/assets/open-connector/catalog/apps-index.json +1 -1
  40. package/package.json +2 -1
  41. package/src/connection-service.js +55 -11
  42. package/src/core/provider-error-codes.d.ts +9 -0
  43. package/src/core/provider-error-codes.js +13 -0
  44. package/src/core/request.d.ts +2 -0
  45. package/src/core/request.js +11 -2
  46. package/src/mail/imap-smtp/protocol.js +4 -3
  47. package/src/oauth/oauth-flow-service.js +1 -0
  48. package/src/oauth/oauth-token.d.ts +2 -0
  49. package/src/providers/17track/runtime.js +17 -20
  50. package/src/providers/action-contracts.generated.d.ts +36 -6
  51. package/src/providers/agentearth/actions.d.ts +2 -0
  52. package/src/providers/agentearth/actions.js +100 -0
  53. package/src/providers/agentearth/executors.d.ts +4 -0
  54. package/src/providers/agentearth/executors.js +109 -0
  55. package/src/providers/appgrowing_mcp/actions.d.ts +2 -0
  56. package/src/providers/appgrowing_mcp/actions.js +175 -0
  57. package/src/providers/appgrowing_mcp/executors.d.ts +4 -0
  58. package/src/providers/appgrowing_mcp/executors.js +66 -0
  59. package/src/providers/arcmira/executors.d.ts +3 -0
  60. package/src/providers/arcmira/executors.js +8 -0
  61. package/src/providers/arcmira/runtime.d.ts +6 -0
  62. package/src/providers/arcmira/runtime.js +41 -0
  63. package/src/providers/bainiu/actions.d.ts +2 -0
  64. package/src/providers/bainiu/actions.js +108 -0
  65. package/src/providers/bainiu/executors.d.ts +4 -0
  66. package/src/providers/bainiu/executors.js +113 -0
  67. package/src/providers/baixiao/executors.js +1 -1
  68. package/src/providers/bing_webmaster/executors.js +1 -1
  69. package/src/providers/chaport/actions.d.ts +2 -0
  70. package/src/providers/chaport/actions.js +70 -0
  71. package/src/providers/chaport/executors.d.ts +4 -0
  72. package/src/providers/chaport/executors.js +128 -0
  73. package/src/providers/clickup/runtime.js +49 -52
  74. package/src/providers/cnb/actions.d.ts +2 -0
  75. package/src/providers/cnb/actions.js +341 -0
  76. package/src/providers/cnb/executors.d.ts +4 -0
  77. package/src/providers/cnb/executors.js +135 -0
  78. package/src/providers/coupontools/runtime.js +11 -14
  79. package/src/providers/crtsh/executors.d.ts +3 -0
  80. package/src/providers/crtsh/executors.js +19 -0
  81. package/src/providers/crtsh/runtime.d.ts +17 -0
  82. package/src/providers/crtsh/runtime.js +84 -0
  83. package/src/providers/eastmoney_miaoxiang/actions.d.ts +2 -0
  84. package/src/providers/eastmoney_miaoxiang/actions.js +95 -0
  85. package/src/providers/eastmoney_miaoxiang/executors.d.ts +4 -0
  86. package/src/providers/eastmoney_miaoxiang/executors.js +81 -0
  87. package/src/providers/fastmoss_mcp/actions-content.d.ts +2 -0
  88. package/src/providers/fastmoss_mcp/actions-content.js +140 -0
  89. package/src/providers/fastmoss_mcp/actions-creator.d.ts +2 -0
  90. package/src/providers/fastmoss_mcp/actions-creator.js +154 -0
  91. package/src/providers/fastmoss_mcp/actions-product.d.ts +2 -0
  92. package/src/providers/fastmoss_mcp/actions-product.js +167 -0
  93. package/src/providers/fastmoss_mcp/actions-research.d.ts +2 -0
  94. package/src/providers/fastmoss_mcp/actions-research.js +174 -0
  95. package/src/providers/fastmoss_mcp/actions-shop.d.ts +2 -0
  96. package/src/providers/fastmoss_mcp/actions-shop.js +142 -0
  97. package/src/providers/fastmoss_mcp/actions.js +11 -12
  98. package/src/providers/fastmoss_mcp/schemas.d.ts +51 -0
  99. package/src/providers/fastmoss_mcp/schemas.js +52 -0
  100. package/src/providers/ftshare/actions.d.ts +2 -0
  101. package/src/providers/ftshare/actions.js +124 -0
  102. package/src/providers/ftshare/executors.d.ts +4 -0
  103. package/src/providers/ftshare/executors.js +102 -0
  104. package/src/providers/fusion-api/operations.js +37 -0
  105. package/src/providers/fxbaogao/actions.d.ts +2 -0
  106. package/src/providers/fxbaogao/actions.js +74 -0
  107. package/src/providers/fxbaogao/executors.d.ts +4 -0
  108. package/src/providers/fxbaogao/executors.js +155 -0
  109. package/src/providers/github/app-installation.d.ts +37 -0
  110. package/src/providers/github/app-installation.js +233 -0
  111. package/src/providers/github/executors.js +93 -15
  112. package/src/providers/github/runtime-repository.js +21 -1
  113. package/src/providers/github/runtime-shared.d.ts +2 -0
  114. package/src/providers/github/runtime-shared.js +1 -0
  115. package/src/providers/googledrive/runtime-request.js +3 -3
  116. package/src/providers/hrmos_kintai/actions.d.ts +2 -0
  117. package/src/providers/hrmos_kintai/actions.js +139 -0
  118. package/src/providers/hrmos_kintai/attendance-actions.d.ts +2 -0
  119. package/src/providers/hrmos_kintai/attendance-actions.js +276 -0
  120. package/src/providers/hrmos_kintai/business-actions.d.ts +2 -0
  121. package/src/providers/hrmos_kintai/business-actions.js +143 -0
  122. package/src/providers/hrmos_kintai/business-schemas.d.ts +4 -0
  123. package/src/providers/hrmos_kintai/business-schemas.js +320 -0
  124. package/src/providers/hrmos_kintai/executors.d.ts +4 -0
  125. package/src/providers/hrmos_kintai/executors.js +61 -0
  126. package/src/providers/hrmos_kintai/export-actions.d.ts +2 -0
  127. package/src/providers/hrmos_kintai/export-actions.js +58 -0
  128. package/src/providers/hrmos_kintai/operations.d.ts +9 -0
  129. package/src/providers/hrmos_kintai/operations.js +278 -0
  130. package/src/providers/hrmos_kintai/runtime.d.ts +10 -0
  131. package/src/providers/hrmos_kintai/runtime.js +217 -0
  132. package/src/providers/hrmos_kintai/schemas.d.ts +10 -0
  133. package/src/providers/hrmos_kintai/schemas.js +70 -0
  134. package/src/providers/humor_api/actions.d.ts +2 -0
  135. package/src/providers/humor_api/actions.js +96 -0
  136. package/src/providers/humor_api/executors.d.ts +4 -0
  137. package/src/providers/humor_api/executors.js +76 -0
  138. package/src/providers/kaonavi/actions.d.ts +4 -0
  139. package/src/providers/kaonavi/actions.js +144 -0
  140. package/src/providers/kaonavi/additional-actions.d.ts +10 -0
  141. package/src/providers/kaonavi/additional-actions.js +203 -0
  142. package/src/providers/kaonavi/executors.d.ts +4 -0
  143. package/src/providers/kaonavi/executors.js +69 -0
  144. package/src/providers/kaonavi/runtime.d.ts +4 -0
  145. package/src/providers/kaonavi/runtime.js +69 -0
  146. package/src/providers/linear_mcp/actions.d.ts +14 -0
  147. package/src/providers/linear_mcp/actions.js +134 -0
  148. package/src/providers/linear_mcp/runtime-mcp.d.ts +7 -1
  149. package/src/providers/linear_mcp/runtime-mcp.js +140 -28
  150. package/src/providers/linkfox/runtime.js +48 -51
  151. package/src/providers/listinggood/actions.d.ts +2 -0
  152. package/src/providers/listinggood/actions.js +95 -0
  153. package/src/providers/listinggood/executors.d.ts +4 -0
  154. package/src/providers/listinggood/executors.js +99 -0
  155. package/src/providers/mcp-tools.d.ts +3 -0
  156. package/src/providers/mcp-tools.js +5 -4
  157. package/src/providers/notion_mcp/executors.js +53 -24
  158. package/src/providers/notion_mcp/mcp-response.d.ts +26 -0
  159. package/src/providers/notion_mcp/mcp-response.js +95 -0
  160. package/src/providers/omise/executors.js +1 -1
  161. package/src/providers/outlook/executors.js +35 -2
  162. package/src/providers/porteden/actions.d.ts +2 -0
  163. package/src/providers/porteden/actions.js +162 -0
  164. package/src/providers/porteden/executors.d.ts +4 -0
  165. package/src/providers/porteden/executors.js +140 -0
  166. package/src/providers/provider-runtime.d.ts +3 -2
  167. package/src/providers/pushover/runtime.js +28 -31
  168. package/src/providers/qianfan/runtime.js +16 -19
  169. package/src/providers/qiuxiaoce/actions.d.ts +2 -0
  170. package/src/providers/qiuxiaoce/actions.js +248 -0
  171. package/src/providers/qiuxiaoce/executors.d.ts +4 -0
  172. package/src/providers/qiuxiaoce/executors.js +76 -0
  173. package/src/providers/qiuxiaoce/routes.d.ts +1 -0
  174. package/src/providers/qiuxiaoce/routes.js +20 -0
  175. package/src/providers/qqmusic/actions.d.ts +2 -0
  176. package/src/providers/qqmusic/actions.js +229 -0
  177. package/src/providers/qqmusic/executors.d.ts +4 -0
  178. package/src/providers/qqmusic/executors.js +92 -0
  179. package/src/providers/qqmusic/report-schema.d.ts +4 -0
  180. package/src/providers/qqmusic/report-schema.js +119 -0
  181. package/src/providers/rakuraku_seisan/actions.d.ts +2 -0
  182. package/src/providers/rakuraku_seisan/actions.js +50 -0
  183. package/src/providers/rakuraku_seisan/executors.d.ts +4 -0
  184. package/src/providers/rakuraku_seisan/executors.js +40 -0
  185. package/src/providers/rakuraku_seisan/runtime.d.ts +8 -0
  186. package/src/providers/rakuraku_seisan/runtime.js +251 -0
  187. package/src/providers/redfox/actions-account.d.ts +2 -0
  188. package/src/providers/redfox/actions-account.js +24 -0
  189. package/src/providers/redfox/actions-autohome.d.ts +2 -0
  190. package/src/providers/redfox/actions-autohome.js +51 -0
  191. package/src/providers/redfox/actions-baijiahao.d.ts +2 -0
  192. package/src/providers/redfox/actions-baijiahao.js +58 -0
  193. package/src/providers/redfox/actions-bilibili.d.ts +2 -0
  194. package/src/providers/redfox/actions-bilibili.js +67 -0
  195. package/src/providers/redfox/actions-dongchedi.d.ts +2 -0
  196. package/src/providers/redfox/actions-dongchedi.js +49 -0
  197. package/src/providers/redfox/actions-douyin.d.ts +2 -0
  198. package/src/providers/redfox/actions-douyin.js +297 -0
  199. package/src/providers/redfox/actions-generation.d.ts +2 -0
  200. package/src/providers/redfox/actions-generation.js +293 -0
  201. package/src/providers/redfox/actions-instagram.d.ts +2 -0
  202. package/src/providers/redfox/actions-instagram.js +49 -0
  203. package/src/providers/redfox/actions-kuaishou.d.ts +2 -0
  204. package/src/providers/redfox/actions-kuaishou.js +53 -0
  205. package/src/providers/redfox/actions-search.d.ts +2 -0
  206. package/src/providers/redfox/actions-search.js +125 -0
  207. package/src/providers/redfox/actions-tiktok.d.ts +2 -0
  208. package/src/providers/redfox/actions-tiktok.js +136 -0
  209. package/src/providers/redfox/actions-tools.d.ts +2 -0
  210. package/src/providers/redfox/actions-tools.js +151 -0
  211. package/src/providers/redfox/actions-toutiao.d.ts +2 -0
  212. package/src/providers/redfox/actions-toutiao.js +68 -0
  213. package/src/providers/redfox/actions-transcription.d.ts +2 -0
  214. package/src/providers/redfox/actions-transcription.js +165 -0
  215. package/src/providers/redfox/actions-wechat-channel.d.ts +2 -0
  216. package/src/providers/redfox/actions-wechat-channel.js +63 -0
  217. package/src/providers/redfox/actions-wechat.d.ts +2 -0
  218. package/src/providers/redfox/actions-wechat.js +302 -0
  219. package/src/providers/redfox/actions-weibo.d.ts +2 -0
  220. package/src/providers/redfox/actions-weibo.js +61 -0
  221. package/src/providers/redfox/actions-x.d.ts +2 -0
  222. package/src/providers/redfox/actions-x.js +126 -0
  223. package/src/providers/redfox/actions-xiaohongshu.d.ts +2 -0
  224. package/src/providers/redfox/actions-xiaohongshu.js +244 -0
  225. package/src/providers/redfox/actions-yiche.d.ts +2 -0
  226. package/src/providers/redfox/actions-yiche.js +59 -0
  227. package/src/providers/redfox/actions-youtube.d.ts +2 -0
  228. package/src/providers/redfox/actions-youtube.js +64 -0
  229. package/src/providers/redfox/actions-zhihu.d.ts +2 -0
  230. package/src/providers/redfox/actions-zhihu.js +26 -0
  231. package/src/providers/redfox/actions.d.ts +2 -0
  232. package/src/providers/redfox/actions.js +49 -0
  233. package/src/providers/redfox/executors.d.ts +2 -14
  234. package/src/providers/redfox/executors.js +28 -551
  235. package/src/providers/redfox/routes.d.ts +11 -0
  236. package/src/providers/redfox/routes.js +329 -0
  237. package/src/providers/redfox/runtime.d.ts +6 -0
  238. package/src/providers/redfox/runtime.js +151 -0
  239. package/src/providers/redfox/schemas.d.ts +9 -0
  240. package/src/providers/redfox/schemas.js +40 -0
  241. package/src/providers/registry.generated.js +30 -0
  242. package/src/providers/salesforce/context.d.ts +16 -0
  243. package/src/providers/salesforce/context.js +58 -0
  244. package/src/providers/salesforce/executors.d.ts +5 -0
  245. package/src/providers/salesforce/executors.js +54 -0
  246. package/src/providers/salesforce/media.d.ts +9 -0
  247. package/src/providers/salesforce/media.js +66 -0
  248. package/src/providers/salesforce/oauth.d.ts +2 -0
  249. package/src/providers/salesforce/oauth.js +89 -0
  250. package/src/providers/salesforce/runtime-analytics.d.ts +2 -0
  251. package/src/providers/salesforce/runtime-analytics.js +60 -0
  252. package/src/providers/salesforce/runtime-automation.d.ts +2 -0
  253. package/src/providers/salesforce/runtime-automation.js +64 -0
  254. package/src/providers/salesforce/runtime-base.d.ts +2 -0
  255. package/src/providers/salesforce/runtime-base.js +51 -0
  256. package/src/providers/salesforce/runtime-bulk.d.ts +2 -0
  257. package/src/providers/salesforce/runtime-bulk.js +98 -0
  258. package/src/providers/salesforce/runtime-data.d.ts +2 -0
  259. package/src/providers/salesforce/runtime-data.js +207 -0
  260. package/src/providers/salesforce/runtime-files.d.ts +2 -0
  261. package/src/providers/salesforce/runtime-files.js +108 -0
  262. package/src/providers/salesforce/transport.d.ts +9 -0
  263. package/src/providers/salesforce/transport.js +65 -0
  264. package/src/providers/sansan/actions.d.ts +2 -0
  265. package/src/providers/sansan/actions.js +165 -0
  266. package/src/providers/sansan/admin-actions.d.ts +2 -0
  267. package/src/providers/sansan/admin-actions.js +181 -0
  268. package/src/providers/sansan/admin.d.ts +2 -0
  269. package/src/providers/sansan/admin.js +42 -0
  270. package/src/providers/sansan/business-actions.d.ts +2 -0
  271. package/src/providers/sansan/business-actions.js +160 -0
  272. package/src/providers/sansan/business.d.ts +2 -0
  273. package/src/providers/sansan/business.js +51 -0
  274. package/src/providers/sansan/executors.d.ts +4 -0
  275. package/src/providers/sansan/executors.js +59 -0
  276. package/src/providers/sansan/file-schema.d.ts +2 -0
  277. package/src/providers/sansan/file-schema.js +8 -0
  278. package/src/providers/sansan/files.d.ts +11 -0
  279. package/src/providers/sansan/files.js +49 -0
  280. package/src/providers/sansan/organization-actions.d.ts +2 -0
  281. package/src/providers/sansan/organization-actions.js +198 -0
  282. package/src/providers/sansan/organization-columns.d.ts +2 -0
  283. package/src/providers/sansan/organization-columns.js +33 -0
  284. package/src/providers/sansan/organization.d.ts +2 -0
  285. package/src/providers/sansan/organization.js +88 -0
  286. package/src/providers/sansan/read.d.ts +2 -0
  287. package/src/providers/sansan/read.js +25 -0
  288. package/src/providers/sansan/request.d.ts +22 -0
  289. package/src/providers/sansan/request.js +94 -0
  290. package/src/providers/sansan/schemas.d.ts +7 -0
  291. package/src/providers/sansan/schemas.js +72 -0
  292. package/src/providers/shopee/runtime.d.ts +33 -29
  293. package/src/providers/shopee/runtime.js +166 -169
  294. package/src/providers/smarthr/actions.d.ts +2 -0
  295. package/src/providers/smarthr/actions.js +286 -0
  296. package/src/providers/smarthr/employee-runtime.d.ts +1 -0
  297. package/src/providers/smarthr/employee-runtime.js +63 -0
  298. package/src/providers/smarthr/employee-schema.d.ts +3 -0
  299. package/src/providers/smarthr/employee-schema.js +222 -0
  300. package/src/providers/smarthr/executors.d.ts +4 -0
  301. package/src/providers/smarthr/executors.js +35 -0
  302. package/src/providers/smarthr/pagination.d.ts +1 -0
  303. package/src/providers/smarthr/pagination.js +84 -0
  304. package/src/providers/smarthr/resource-routes.d.ts +16 -0
  305. package/src/providers/smarthr/resource-routes.js +163 -0
  306. package/src/providers/smarthr/runtime.d.ts +13 -0
  307. package/src/providers/smarthr/runtime.js +242 -0
  308. package/src/providers/smarthr/supplemental-actions.d.ts +2 -0
  309. package/src/providers/smarthr/supplemental-actions.js +541 -0
  310. package/src/providers/smooth/actions.d.ts +2 -0
  311. package/src/providers/smooth/actions.js +138 -0
  312. package/src/providers/smooth/executors.d.ts +4 -0
  313. package/src/providers/smooth/executors.js +102 -0
  314. package/src/providers/tapd/actions.d.ts +8 -0
  315. package/src/providers/tapd/actions.js +89 -0
  316. package/src/providers/tapd/executors.d.ts +4 -0
  317. package/src/providers/tapd/executors.js +137 -0
  318. package/src/providers/teable/runtime.js +12 -15
  319. package/src/providers/tencent_meeting_mcp/actions.d.ts +2 -0
  320. package/src/providers/tencent_meeting_mcp/actions.js +420 -0
  321. package/src/providers/tencent_meeting_mcp/executors.d.ts +4 -0
  322. package/src/providers/tencent_meeting_mcp/executors.js +117 -0
  323. package/src/providers/threatfox/executors.d.ts +4 -0
  324. package/src/providers/threatfox/executors.js +40 -0
  325. package/src/providers/threatfox/runtime.d.ts +15 -0
  326. package/src/providers/threatfox/runtime.js +128 -0
  327. package/src/providers/ticket_tailor/runtime.js +1 -1
  328. package/src/providers/ticketmaster/runtime.js +3 -6
  329. package/src/providers/timelinesai/runtime.js +13 -16
  330. package/src/providers/tradebee/actions.d.ts +2 -0
  331. package/src/providers/tradebee/actions.js +176 -0
  332. package/src/providers/tradebee/executors.d.ts +4 -0
  333. package/src/providers/tradebee/executors.js +83 -0
  334. package/src/providers/twittrapi/executors.d.ts +4 -0
  335. package/src/providers/twittrapi/executors.js +17 -0
  336. package/src/providers/twittrapi/runtime.d.ts +12 -0
  337. package/src/providers/twittrapi/runtime.js +203 -0
  338. package/src/providers/urlhaus/executors.d.ts +4 -0
  339. package/src/providers/urlhaus/executors.js +40 -0
  340. package/src/providers/urlhaus/runtime.d.ts +15 -0
  341. package/src/providers/urlhaus/runtime.js +142 -0
  342. package/src/providers/wangdian/runtime.js +16 -19
  343. package/src/providers/weread/actions.d.ts +2 -0
  344. package/src/providers/weread/actions.js +424 -0
  345. package/src/providers/weread/executors.d.ts +4 -0
  346. package/src/providers/weread/executors.js +98 -0
  347. package/src/providers/whatsapp/runtime.js +6 -1
  348. package/src/providers/workast/runtime.js +12 -17
  349. package/src/providers/youzan/runtime.js +21 -24
  350. package/src/providers/zenkit/runtime.js +13 -19
  351. package/src/providers/zhiliaobiaoxun/actions.d.ts +2 -0
  352. package/src/providers/zhiliaobiaoxun/actions.js +138 -0
  353. package/src/providers/zhiliaobiaoxun/executors.d.ts +4 -0
  354. package/src/providers/zhiliaobiaoxun/executors.js +78 -0
  355. package/src/server/api/auth.d.ts +2 -0
  356. package/src/server/api/auth.js +2 -1
  357. package/src/server/api/console-catalog-routes.d.ts +17 -0
  358. package/src/server/api/console-catalog-routes.js +88 -0
  359. package/src/server/api/console-oauth-routes.d.ts +18 -0
  360. package/src/server/api/console-oauth-routes.js +298 -0
  361. package/src/server/api/docs-routes.d.ts +12 -0
  362. package/src/server/api/docs-routes.js +38 -0
  363. package/src/server/api/http-utils.d.ts +1 -0
  364. package/src/server/api/http-utils.js +8 -0
  365. package/src/server/api/marketplace-routes.d.ts +7 -0
  366. package/src/server/api/marketplace-routes.js +62 -0
  367. package/src/server/api/mcp-routes.d.ts +18 -0
  368. package/src/server/api/mcp-routes.js +37 -0
  369. package/src/server/api/policy-routes.d.ts +13 -0
  370. package/src/server/api/policy-routes.js +50 -0
  371. package/src/server/api/policy-snapshot.d.ts +14 -0
  372. package/src/server/api/policy-snapshot.js +30 -0
  373. package/src/server/api/run-log-routes.d.ts +7 -0
  374. package/src/server/api/run-log-routes.js +70 -0
  375. package/src/server/api/runtime-api.d.ts +0 -7
  376. package/src/server/api/runtime-api.js +0 -13
  377. package/src/server/api/runtime-app-routes.d.ts +10 -0
  378. package/src/server/api/runtime-app-routes.js +72 -0
  379. package/src/server/api/runtime-catalog-routes.d.ts +37 -0
  380. package/src/server/api/runtime-catalog-routes.js +133 -0
  381. package/src/server/api/runtime-execution-routes.d.ts +16 -0
  382. package/src/server/api/runtime-execution-routes.js +198 -0
  383. package/src/server/api/saas-oauth-routes.d.ts +9 -0
  384. package/src/server/api/saas-oauth-routes.js +27 -0
  385. package/src/server/api/saas-project-routes.d.ts +7 -0
  386. package/src/server/api/saas-project-routes.js +16 -0
  387. package/src/server/api/transit-file-routes.d.ts +9 -0
  388. package/src/server/api/transit-file-routes.js +49 -0
  389. package/src/server/api/trigger-routes.d.ts +15 -0
  390. package/src/server/api/trigger-routes.js +48 -0
  391. package/src/server/connect-app.d.ts +1 -0
  392. package/src/server/connect-app.js +3 -1
  393. package/src/server/connect-server.d.ts +3 -54
  394. package/src/server/connect-server.js +95 -1148
  395. package/src/providers/fastmoss_mcp/official-tools.json +0 -2922
@@ -0,0 +1,329 @@
1
+ export const redfoxRoutes = {
2
+ search_douyin_users: { path: "/story/api/dyData/searchUser" },
3
+ search_douyin_users_broad: { path: "/story/api/dy/data/searchAccount", directResponse: true },
4
+ list_douyin_user_works: { path: "/story/api/dyData/queryWorkList" },
5
+ list_douyin_user_works_broad: {
6
+ path: "/story/api/dy/data/listWorkByAccount",
7
+ directResponse: true,
8
+ },
9
+ search_douyin_works: { path: "/story/api/dyData/searchArticle" },
10
+ search_douyin_works_broad: { path: "/story/api/dy/data/searchWork", directResponse: true },
11
+ get_douyin_work: { path: "/story/api/dyData/queryWork" },
12
+ get_douyin_work_broad: { path: "/story/api/dy/data/workDetail", directResponse: true },
13
+ list_douyin_hot_users: { path: "/story/api/dyData/query" },
14
+ list_douyin_hot_works: { path: "/story/api/dy/search/likesRank", directResponse: true },
15
+ get_douyin_user: { path: "/story/api/dyData/queryUser" },
16
+ search_douyin_ai_creations: { path: "/story/api/parseWork/queryDyAiMsgs" },
17
+ list_douyin_daily_rising_works: {
18
+ path: "/story/api/dy/search/getDailyRank",
19
+ directResponse: true,
20
+ },
21
+ list_douyin_weekly_rising_works: {
22
+ path: "/story/api/dy/search/getWeeklyRank",
23
+ directResponse: true,
24
+ },
25
+ list_xiaohongshu_hot_users: { path: "/story/api/xhsData/query" },
26
+ get_xiaohongshu_user: { path: "/story/api/xhsUser/queryAccountDetail" },
27
+ get_xiaohongshu_work: { path: "/story/api/xhsUser/queryWorkDetail" },
28
+ search_xiaohongshu_users: { path: "/story/api/xhsUser/searchUser" },
29
+ search_xiaohongshu_works: { path: "/story/api/xhsUser/searchArticle" },
30
+ search_xiaohongshu_ai_creations: { path: "/story/api/parseWork/queryXhsAiMsgs" },
31
+ search_xiaohongshu_viral_notes: { path: "/story/api/xhs/search/search", directResponse: true },
32
+ list_xiaohongshu_weekly_viral_notes: {
33
+ path: "/story/api/cozeSkill/getXhsCozeSkillDataSeven",
34
+ method: "GET",
35
+ credentialQuery: true,
36
+ },
37
+ list_xiaohongshu_user_works: { path: "/story/api/xhsUser/queryWorkList" },
38
+ list_xiaohongshu_breakout_notes: { path: "/story/api/cozeSkill/getLowPowderExplosiveArticle" },
39
+ list_xiaohongshu_daily_viral_notes: {
40
+ path: "/story/api/cozeSkill/getXhsCozeSkillDataOne",
41
+ method: "GET",
42
+ credentialQuery: true,
43
+ },
44
+ get_wechat_account: { path: "/story/api/gzhData/queryUser" },
45
+ get_wechat_account_broad: { path: "/story/api/gzh/data/accountInfo" },
46
+ get_wechat_article: { path: "/story/api/gzhData/queryWork" },
47
+ get_wechat_article_broad: { path: "/story/api/gzh/data/workDetail" },
48
+ search_wechat_accounts: { path: "/story/api/gzhData/searchUser" },
49
+ search_wechat_accounts_broad: { path: "/story/api/gzh/data/searchUser" },
50
+ search_wechat_articles: { path: "/story/api/gzhData/searchArticle" },
51
+ search_wechat_articles_broad: { path: "/story/api/gzh/data/searchArticle" },
52
+ list_wechat_account_articles: { path: "/story/api/gzhData/queryWorkList" },
53
+ list_wechat_account_articles_broad: { path: "/story/api/gzh/data/queryWorkList" },
54
+ search_wechat_ai_creations: { path: "/story/api/parseWork/queryAiMsgs" },
55
+ get_wechat_article_by_url: {
56
+ path: "/story/api/gzh/ability/temp/article/content",
57
+ successCodes: [2000, 200],
58
+ },
59
+ list_wechat_high_read_articles: {
60
+ path: "/story/api/cozeSkill/getTenWReadingRank",
61
+ directResponse: true,
62
+ },
63
+ list_wechat_original_viral_articles: { path: "/story/api/cozeSkill/getOriginalRank" },
64
+ list_wechat_reading_growth: {
65
+ path: "/story/api/cozeSkill/getGzhCozeSkillDataRaise",
66
+ method: "GET",
67
+ credentialQuery: true,
68
+ },
69
+ list_wechat_account_rankings: {
70
+ path: "/story/api/cozeSkill/getGzhCozeSkillDataIndex",
71
+ method: "GET",
72
+ credentialQuery: true,
73
+ },
74
+ list_wechat_headline_growth: { path: "/story/api/gzh/heima/rankList", directResponse: true },
75
+ search_wechat_channel_works: { path: "/story/api/sphAllData/searchWork", directResponse: true },
76
+ search_wechat_channel_users: { path: "/story/api/sphAllData/searchUser", directResponse: true },
77
+ get_wechat_channel_work: { path: "/story/api/sphAllData/queryWorkDetail", directResponse: true },
78
+ list_wechat_channel_user_works: {
79
+ path: "/story/api/sphAllData/queryWorkList",
80
+ directResponse: true,
81
+ },
82
+ get_wechat_channel_work_by_url: {
83
+ path: "/story/api/sph/ability/workLinkDetail",
84
+ directResponse: true,
85
+ },
86
+ search_kuaishou_users: { path: "/story/api/ksAllData/searchUser" },
87
+ list_kuaishou_user_works: { path: "/story/api/ksAllData/queryWorkList" },
88
+ get_kuaishou_work: { path: "/story/api/ksAllData/queryWorkDetail" },
89
+ search_kuaishou_works: { path: "/story/api/ksAllData/searchWork" },
90
+ get_bilibili_work: { path: "/story/api/bili/data/workDetail" },
91
+ get_bilibili_user: { path: "/story/api/bili/data/accountDetail" },
92
+ search_bilibili_users: { path: "/story/api/bili/data/accountSearch" },
93
+ search_bilibili_works: { path: "/story/api/bili/data/workSearch" },
94
+ list_bilibili_user_works: { path: "/story/api/bili/data/accountWorkList" },
95
+ search_toutiao_works: { path: "/story/api/toutiao/searchWork" },
96
+ get_toutiao_work: { path: "/story/api/toutiao/workDetail" },
97
+ list_toutiao_work_comments: { path: "/story/api/toutiao/workComment", directResponse: true },
98
+ search_toutiao_users: { path: "/story/api/toutiao/searchAccount", directResponse: true },
99
+ list_toutiao_user_works: { path: "/story/api/toutiao/userWorkList" },
100
+ get_tiktok_work: { path: "/story/api/tiktok/ability/awemeDetail", directResponse: true },
101
+ list_tiktok_user_works: { path: "/story/api/tiktok/ability/userAwemeList", directResponse: true },
102
+ search_tiktok_works: { path: "/story/api/tiktok/ability/searchVideo", directResponse: true },
103
+ search_tiktok_users: { path: "/story/api/tiktok/ability/searchUser" },
104
+ list_tiktok_topic_works: {
105
+ path: "/story/api/tiktok/ability/topicAwemeList",
106
+ directResponse: true,
107
+ },
108
+ search_tiktok_topics: { path: "/story/api/tiktok/ability/searchTopic", directResponse: true },
109
+ list_tiktok_user_following: { path: "/story/api/tiktok/ability/userFollowing" },
110
+ list_tiktok_user_liked_works: {
111
+ path: "/story/api/tiktok/ability/userFavoriteAwemeList",
112
+ directResponse: true,
113
+ },
114
+ list_tiktok_work_comments: {
115
+ path: "/story/api/tiktok/ability/commentList",
116
+ directResponse: true,
117
+ },
118
+ list_tiktok_comment_replies: { path: "/story/api/tiktok/ability/commentReply" },
119
+ list_x_post_comments: { path: "/story/api/x/tweetComments", directResponse: true },
120
+ get_x_user: { path: "/story/api/x/userInfo" },
121
+ search_x_posts: { path: "/story/api/x/search" },
122
+ get_x_post: { path: "/story/api/x/tweetDetail" },
123
+ list_x_hot_users: { path: "/story/api/x/hotAccount/rankList", directResponse: true },
124
+ list_x_user_following: { path: "/story/api/x/userFollowing" },
125
+ list_x_user_posts: { path: "/story/api/x/userTimeline" },
126
+ get_youtube_transcript: { path: "/story/api/youtube/transcript" },
127
+ search_youtube_videos: { path: "/story/api/youtube/searchVideo" },
128
+ get_youtube_video: { path: "/story/api/youtube/videoDetail" },
129
+ list_youtube_video_comments: { path: "/story/api/youtube/videoComments" },
130
+ get_youtube_subtitles: { path: "/story/api/youtube/info" },
131
+ search_instagram: { path: "/story/api/ins/search" },
132
+ get_instagram_user: { path: "/story/api/ins/userInfo" },
133
+ get_instagram_post: { path: "/story/api/ins/postDetail" },
134
+ list_instagram_post_comments: { path: "/story/api/ins/postComment" },
135
+ search_autohome_works: { path: "/story/api/autohome/searchWork" },
136
+ get_autohome_article: { path: "/story/api/autohome/articleDetail" },
137
+ get_autohome_video: { path: "/story/api/autohome/videoDetail" },
138
+ list_autohome_user_works: { path: "/story/api/autohome/workList" },
139
+ search_dongchedi_works: { path: "/story/api/dongchedi/searchWork", successCodes: [2000, 200] },
140
+ get_dongchedi_work: { path: "/story/api/dongchedi/workDetail", successCodes: [2000, 200] },
141
+ search_dongchedi_users: { path: "/story/api/dongchedi/searchUser" },
142
+ get_dongchedi_user_works: { path: "/story/api/dongchedi/accountWorks" },
143
+ get_yiche_video: { path: "/story/api/yiche/videoDetail" },
144
+ search_yiche_users: { path: "/story/api/yiche/searchAccount" },
145
+ list_yiche_user_works: { path: "/story/api/yiche/workList" },
146
+ search_yiche_works: { path: "/story/api/yiche/searchWork" },
147
+ get_yiche_article: { path: "/story/api/yiche/articleDetailV2" },
148
+ get_weibo_work: { path: "/story/api/weibo/ability/opusDetail", directResponse: true },
149
+ get_weibo_user: { path: "/story/api/weibo/ability/userDetail", directResponse: true },
150
+ search_weibo_users: { path: "/story/api/weibo/ability/accountSearch", directResponse: true },
151
+ search_weibo_works: { path: "/story/api/weibo/ability/searchWork", directResponse: true },
152
+ list_weibo_hot_searches: { path: "/story/api/weibo/ability/hotSearch", directResponse: true },
153
+ get_baijiahao_article: { path: "/story/api/bjh/ability/opusHtml", directResponse: true },
154
+ get_baijiahao_video: { path: "/story/api/bjh/ability/videoDetail", directResponse: true },
155
+ get_baijiahao_user: { path: "/story/api/bjh/ability/accountDetail", directResponse: true },
156
+ search_baijiahao_works: { path: "/story/api/bjh/ability/searchWork", directResponse: true },
157
+ search_baijiahao_users: { path: "/story/api/bjh/ability/accountSearch", directResponse: true },
158
+ search_zhihu_works: { path: "/story/api/zhihu/ability/searchWork", directResponse: true },
159
+ get_bilibili_audio: { path: "/story/api/parseWork/audioExtract/bilibili" },
160
+ parse_video: { path: "/story/api/parseWork/parse" },
161
+ get_youtube_video_download: {
162
+ path: "/story/api/parseWork/videoDownload/youtube",
163
+ directResponse: true,
164
+ },
165
+ get_x_video_download: { path: "/story/api/parseWork/videoDownload/x", directResponse: true },
166
+ get_tiktok_video_download: {
167
+ path: "/story/api/parseWork/videoDownload/tiktok",
168
+ directResponse: true,
169
+ },
170
+ get_xiaohongshu_video_download: {
171
+ path: "/story/api/parseWork/videoDownload/xhs",
172
+ directResponse: true,
173
+ },
174
+ get_wechat_channel_video_download: {
175
+ path: "/story/api/parseWork/videoDownload/sph",
176
+ directResponse: true,
177
+ },
178
+ get_douyin_video_download: {
179
+ path: "/story/api/parseWork/videoDownload/douyin",
180
+ directResponse: true,
181
+ },
182
+ get_kuaishou_video_download: {
183
+ path: "/story/api/parseWork/videoDownload/kuaishou",
184
+ directResponse: true,
185
+ },
186
+ get_bilibili_video_download: {
187
+ path: "/story/api/parseWork/videoDownload/bilibili",
188
+ directResponse: true,
189
+ },
190
+ get_instagram_video_download: {
191
+ path: "/story/api/parseWork/videoDownload/instagram",
192
+ directResponse: true,
193
+ },
194
+ list_aggregated_hot_topics: { path: "/story/api/hotKeyword/list", directResponse: true },
195
+ search_hot_topics: {
196
+ path: "/story/api/hotSpot/getListByPlatformWithKeyword",
197
+ directResponse: true,
198
+ },
199
+ list_platform_hot_topics: {
200
+ path: "/story/api/hotSpot/getListByPlatform",
201
+ method: "GET",
202
+ credentialQuery: true,
203
+ },
204
+ submit_douyin_transcription: {
205
+ path: "/story/api/parseWork/audioTextExtract/submit/douyin",
206
+ taskRole: "submit",
207
+ },
208
+ get_douyin_transcription: {
209
+ path: "/story/api/parseWork/audioTextExtract/result/douyin",
210
+ directResponse: true,
211
+ taskRole: "result",
212
+ },
213
+ submit_xiaohongshu_comments: { path: "/story/api/xhs/commentSubmit", taskRole: "submit" },
214
+ get_xiaohongshu_comments: { path: "/story/api/xhs/commentResult", taskRole: "result" },
215
+ submit_xiaohongshu_transcription: {
216
+ path: "/story/api/parseWork/audioTextExtract/submit/xhs",
217
+ taskRole: "submit",
218
+ },
219
+ get_xiaohongshu_transcription: {
220
+ path: "/story/api/parseWork/audioTextExtract/result/xhs",
221
+ directResponse: true,
222
+ taskRole: "result",
223
+ },
224
+ submit_wechat_channel_transcription: {
225
+ path: "/story/api/parseWork/sphSubtitle/submit",
226
+ taskRole: "submit",
227
+ },
228
+ get_wechat_channel_transcription: {
229
+ path: "/story/api/parseWork/sphSubtitle/result",
230
+ directResponse: true,
231
+ taskRole: "result",
232
+ },
233
+ submit_kuaishou_transcription: {
234
+ path: "/story/api/parseWork/audioTextExtract/submit/kuaishou",
235
+ taskRole: "submit",
236
+ },
237
+ get_kuaishou_transcription: {
238
+ path: "/story/api/parseWork/audioTextExtract/result/kuaishou",
239
+ directResponse: true,
240
+ taskRole: "result",
241
+ },
242
+ submit_bilibili_transcription: {
243
+ path: "/story/api/parseWork/bilibiliSubtitle/submit",
244
+ taskRole: "submit",
245
+ },
246
+ get_bilibili_transcription: {
247
+ path: "/story/api/parseWork/bilibiliSubtitle/result",
248
+ taskRole: "result",
249
+ },
250
+ submit_gpt_image_2_generation: {
251
+ path: "/story/api/parseWork/imageGen/gptImage2Submit",
252
+ taskRole: "submit",
253
+ },
254
+ get_gpt_image_2_generation: {
255
+ path: "/story/api/parseWork/imageGen/gptImage2Result",
256
+ taskRole: "result",
257
+ },
258
+ submit_gpt_image_2_5_generation: {
259
+ path: "/story/api/parseWork/imageGen/gptImage25Submit",
260
+ taskRole: "submit",
261
+ },
262
+ get_gpt_image_2_5_generation: {
263
+ path: "/story/api/parseWork/imageGen/gptImage25Result",
264
+ taskRole: "result",
265
+ },
266
+ submit_gemini_banana_2_1_generation: {
267
+ path: "/story/api/parseWork/imageGen/geminiBanana21Submit",
268
+ taskRole: "submit",
269
+ },
270
+ get_gemini_banana_2_1_generation: {
271
+ path: "/story/api/parseWork/imageGen/geminiBanana21Result",
272
+ taskRole: "result",
273
+ },
274
+ submit_seedream_pro_generation: {
275
+ path: "/story/api/parseWork/imageGen/arkProSubmit",
276
+ taskRole: "submit",
277
+ parseImageUrls: true,
278
+ },
279
+ get_seedream_pro_generation: {
280
+ path: "/story/api/parseWork/imageGen/arkProResult",
281
+ taskRole: "result",
282
+ parseImageUrls: true,
283
+ },
284
+ submit_seedream_lite_generation: {
285
+ path: "/story/api/parseWork/imageGen/arkSubmit",
286
+ taskRole: "submit",
287
+ parseImageUrls: true,
288
+ },
289
+ get_seedream_lite_generation: {
290
+ path: "/story/api/parseWork/imageGen/arkResult",
291
+ taskRole: "result",
292
+ parseImageUrls: true,
293
+ },
294
+ submit_seedance_video_generation: {
295
+ path: "/story/api/parseWork/videoGen/seedanceSubmit",
296
+ validateImageRoles: true,
297
+ taskRole: "submit",
298
+ },
299
+ get_seedance_video_generation: {
300
+ path: "/story/api/parseWork/videoGen/seedanceResult",
301
+ taskRole: "result",
302
+ },
303
+ submit_kimi_search: { path: "/story/api/kimi/submit", directResponse: true, taskRole: "submit" },
304
+ get_kimi_search: { path: "/story/api/kimi/result", directResponse: true, taskRole: "result" },
305
+ submit_yuanbao_search: { path: "/story/api/deepSearch/ybSubmit", taskRole: "submit" },
306
+ get_yuanbao_search: { path: "/story/api/deepSearch/ybResult", taskRole: "result" },
307
+ submit_qwen_search: { path: "/story/api/deepSearch/qwSubmit", taskRole: "submit" },
308
+ get_qwen_search: { path: "/story/api/deepSearch/qwResult", taskRole: "result" },
309
+ submit_baidu_search: { path: "/story/api/deepSearch/bdSubmit", taskRole: "submit" },
310
+ get_baidu_search: { path: "/story/api/deepSearch/bdResult", taskRole: "result" },
311
+ submit_doubao_search: { path: "/story/api/deepSearch/dbSubmit", taskRole: "submit" },
312
+ get_doubao_search: { path: "/story/api/deepSearch/dbResult", taskRole: "result" },
313
+ submit_deepseek_search: { path: "/story/api/deepSearch/dsSubmit", taskRole: "submit" },
314
+ get_deepseek_search: {
315
+ path: "/story/api/deepSearch/dsResult",
316
+ successCodes: [2000, 200],
317
+ taskRole: "result",
318
+ },
319
+ get_account_balance: {
320
+ path: "/story/web/points/api-key/balance",
321
+ method: "GET",
322
+ credentialQuery: true,
323
+ },
324
+ list_api_usage: {
325
+ path: "/story/web/points/api-key/consume-flows",
326
+ method: "GET",
327
+ credentialQuery: true,
328
+ },
329
+ };
@@ -0,0 +1,6 @@
1
+ import type { CredentialValidationResult } from "../../core/types.ts";
2
+ import type { ApiKeyProviderContext } from "../provider-runtime.ts";
3
+ import type { RedfoxRoute } from "./routes.ts";
4
+ export declare const redfoxApiBaseUrl = "https://redfox.hk";
5
+ export declare function validateRedfoxCredential(input: Record<string, string>, fetcher: typeof fetch, signal?: AbortSignal): Promise<CredentialValidationResult>;
6
+ export declare function executeRedfoxAction(endpoint: RedfoxRoute, input: Record<string, unknown>, context: ApiKeyProviderContext): Promise<unknown>;
@@ -0,0 +1,151 @@
1
+ import { optionalRecord, optionalRawString } from "../../core/cast.js";
2
+ import { ProviderRequestError, requiredInputString, requiredResponseRecord, providerUserAgent, runProviderRequest, } from "../provider-runtime.js";
3
+ import { redfoxRoutes } from "./routes.js";
4
+ export const redfoxApiBaseUrl = "https://redfox.hk";
5
+ const validationEndpoint = "/story/web/points/api-key/balance";
6
+ export async function validateRedfoxCredential(input, fetcher, signal) {
7
+ const endpoint = redfoxRoutes.get_account_balance;
8
+ await requestRedfox({
9
+ endpoint,
10
+ input: {},
11
+ apiKey: requiredInputString(input.apiKey, "API Key"),
12
+ fetcher,
13
+ parentSignal: signal,
14
+ });
15
+ return {
16
+ profile: { displayName: "RedFoxHub API Key" },
17
+ grantedScopes: [],
18
+ metadata: {
19
+ apiBaseUrl: redfoxApiBaseUrl,
20
+ validationEndpoint,
21
+ },
22
+ };
23
+ }
24
+ export async function executeRedfoxAction(endpoint, input, context) {
25
+ if (endpoint.validateImageRoles)
26
+ validateImageRoles(input);
27
+ return requestRedfox({
28
+ endpoint,
29
+ input,
30
+ apiKey: context.apiKey,
31
+ fetcher: context.fetcher,
32
+ parentSignal: context.signal,
33
+ });
34
+ }
35
+ async function requestRedfox({ endpoint, input, apiKey, fetcher, parentSignal }) {
36
+ try {
37
+ return await runProviderRequest({ label: "RedFoxHub", signal: parentSignal }, async (signal) => {
38
+ const url = new URL(endpoint.path, redfoxApiBaseUrl);
39
+ const method = endpoint.method ?? "POST";
40
+ if (method === "GET") {
41
+ for (const [key, value] of Object.entries(input)) {
42
+ if (value !== undefined)
43
+ url.searchParams.set(key, String(value));
44
+ }
45
+ }
46
+ if (endpoint.credentialQuery)
47
+ url.searchParams.set("apiKey", apiKey);
48
+ const response = await fetcher(url, {
49
+ method,
50
+ headers: {
51
+ accept: "application/json",
52
+ "content-type": "application/json",
53
+ REDFOX_API_KEY: apiKey,
54
+ "user-agent": providerUserAgent,
55
+ },
56
+ body: method === "POST" ? JSON.stringify(input) : undefined,
57
+ signal,
58
+ });
59
+ const text = await response.text();
60
+ let payload;
61
+ try {
62
+ payload = JSON.parse(text);
63
+ }
64
+ catch {
65
+ if (!response.ok) {
66
+ throw redfoxError(response.status, `RedFoxHub request failed with ${response.status}`, response.status);
67
+ }
68
+ throw new ProviderRequestError(502, "RedFoxHub returned invalid JSON", undefined, "provider_error");
69
+ }
70
+ const record = optionalRecord(payload);
71
+ const message = optionalRawString(record?.msg) ?? optionalRawString(record?.message) ?? optionalRawString(record?.error);
72
+ if (!response.ok) {
73
+ throw redfoxError(response.status, message, response.status);
74
+ }
75
+ let normalizedPayload = payload;
76
+ if (endpoint.directResponse && record?.code === undefined) {
77
+ if (payload === null || (record === undefined && !Array.isArray(payload))) {
78
+ throw new ProviderRequestError(502, "RedFoxHub returned an invalid response", undefined, "provider_error");
79
+ }
80
+ normalizedPayload = { code: 2000, msg: "成功", data: payload };
81
+ }
82
+ const wrapper = requiredResponseRecord(normalizedPayload, "RedFoxHub response");
83
+ const code = typeof wrapper.code === "number" ? wrapper.code : Number(optionalRawString(wrapper.code) ?? Number.NaN);
84
+ if (!Number.isInteger(code)) {
85
+ throw new ProviderRequestError(502, "RedFoxHub response did not include code", undefined, "provider_error");
86
+ }
87
+ if (!(endpoint.successCodes ?? [2000]).includes(code)) {
88
+ throw redfoxError(code, message);
89
+ }
90
+ let data = wrapper.data;
91
+ if (endpoint.taskRole) {
92
+ const taskData = requiredResponseRecord(data, "RedFoxHub task data");
93
+ if (endpoint.taskRole === "submit" && !optionalRawString(taskData.taskId)?.trim()) {
94
+ throw new ProviderRequestError(502, "RedFoxHub did not return a taskId", undefined, "provider_error");
95
+ }
96
+ if (endpoint.taskRole === "result" && !optionalRawString(taskData.status)?.trim()) {
97
+ throw new ProviderRequestError(502, "RedFoxHub did not return a task status", undefined, "provider_error");
98
+ }
99
+ if (endpoint.parseImageUrls && typeof taskData.imageUrls === "string") {
100
+ let imageUrls;
101
+ try {
102
+ imageUrls = JSON.parse(taskData.imageUrls);
103
+ }
104
+ catch {
105
+ throw new ProviderRequestError(502, "RedFoxHub returned invalid imageUrls JSON", undefined, "provider_error");
106
+ }
107
+ if (!Array.isArray(imageUrls) || imageUrls.some((item) => typeof item !== "string")) {
108
+ throw new ProviderRequestError(502, "RedFoxHub returned invalid imageUrls", undefined, "provider_error");
109
+ }
110
+ data = { ...taskData, imageUrls };
111
+ }
112
+ }
113
+ return { ...wrapper, code, msg: optionalRawString(wrapper.msg) ?? message ?? "", data };
114
+ });
115
+ }
116
+ catch (error) {
117
+ if (error instanceof ProviderRequestError) {
118
+ const message = error.message
119
+ .replaceAll(apiKey, "[REDACTED]")
120
+ .replaceAll(encodeURIComponent(apiKey), "[REDACTED]");
121
+ if (message !== error.message) {
122
+ throw new ProviderRequestError(error.status, message, error.details, error.code);
123
+ }
124
+ }
125
+ throw error;
126
+ }
127
+ }
128
+ function redfoxError(code, message, httpStatus) {
129
+ const text = message || `RedFoxHub returned code ${code}`;
130
+ if (code === 429)
131
+ return new ProviderRequestError(429, text, undefined, "rate_limited");
132
+ if ([400, 404, 422].includes(code))
133
+ return new ProviderRequestError(400, text, undefined, "invalid_input");
134
+ return new ProviderRequestError(httpStatus ?? 502, text, {
135
+ upstreamCode: code,
136
+ }, "provider_error");
137
+ }
138
+ function validateImageRoles(input) {
139
+ const images = input.imageWithRoles;
140
+ if (!Array.isArray(images))
141
+ return;
142
+ for (const [role, maximum] of [
143
+ ["first_frame", 1],
144
+ ["last_frame", 1],
145
+ ["reference_image", 9],
146
+ ]) {
147
+ if (images.filter((image) => optionalRecord(image)?.role === role).length > maximum) {
148
+ throw new ProviderRequestError(400, `${role} allows at most ${maximum} images`, undefined, "invalid_input");
149
+ }
150
+ }
151
+ }
@@ -0,0 +1,9 @@
1
+ import type { JsonSchema } from "../../core/types.ts";
2
+ export declare const responseSchema: JsonSchema;
3
+ export declare const taskInputSchema: JsonSchema;
4
+ export declare const taskSubmissionSchema: JsonSchema;
5
+ export declare const searchResultSchema: JsonSchema;
6
+ export declare const transcriptionResultSchema: JsonSchema;
7
+ export declare const commentsResultSchema: JsonSchema;
8
+ export declare const videoResultSchema: JsonSchema;
9
+ export declare const imageResultSchema: JsonSchema;
@@ -0,0 +1,40 @@
1
+ import { s } from "../../core/json-schema.js";
2
+ function responseWithData(data) {
3
+ return s.looseRequiredObject("The normalized RedFoxHub response.", {
4
+ code: s.integer("Upstream business status code; 2000 or an endpoint-specific 200 means success."),
5
+ msg: s.string("Upstream response message."),
6
+ data,
7
+ });
8
+ }
9
+ export const responseSchema = responseWithData(s.unknown("The upstream payload, including pagination and platform-specific fields."));
10
+ export const taskInputSchema = s.object("Request parameters.", {
11
+ taskId: s.nonEmptyString("Task ID returned by the corresponding submit action."),
12
+ }, { required: ["taskId"] });
13
+ export const taskSubmissionSchema = responseWithData(s.looseRequiredObject("Task metadata and results. Additional upstream fields are preserved.", {
14
+ taskId: s.string("Task ID returned by the submit action."),
15
+ }));
16
+ function taskResult(properties) {
17
+ return responseWithData(s.object("Task metadata and results. Additional upstream fields are preserved.", {
18
+ taskId: s.string("Task ID returned by the submit action."),
19
+ status: s.string("Upstream task status; see the action polling lifecycle."),
20
+ failReason: s.nullableString("Reason the task failed."),
21
+ ...properties,
22
+ }, { required: ["status"], additionalProperties: true }));
23
+ }
24
+ export const searchResultSchema = taskResult({
25
+ result: s.unknown("AI search results, including content and source references."),
26
+ });
27
+ export const transcriptionResultSchema = taskResult({
28
+ text: s.string("Extracted transcript text."),
29
+ stampSents: s.array("Transcript segments with timestamps.", s.unknown("Transcript segment.")),
30
+ });
31
+ export const commentsResultSchema = taskResult({
32
+ commentList: s.array("Collected comments.", s.unknown("Comment data.")),
33
+ });
34
+ export const videoResultSchema = taskResult({
35
+ videoUrl: s.nullableString("Generated video URL."),
36
+ lastFrameUrl: s.nullableString("Generated last-frame image URL."),
37
+ });
38
+ export const imageResultSchema = taskResult({
39
+ imageUrls: s.nullable(s.array("Generated image URLs.", s.string("Generated image URL."))),
40
+ });