@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
@@ -1,3 +1,4 @@
1
+ import type { ProviderErrorCode } from "../core/provider-error-codes.ts";
1
2
  import type { ProviderDispatchContext, ProviderHttpDispatchOptions } from "../core/provider-http-dispatch.ts";
2
3
  import type { ActionExecutor, ExecutionContext, ExecutionResult, ProviderExecutors, ProviderProxyExecutor, ProxyExecutionResult, ProxyResponse, ResolvedCredential, TransitFileWriter } from "../core/types.ts";
3
4
  import type { ProviderActionNames } from "./action-contracts.generated.ts";
@@ -149,8 +150,8 @@ export interface ProviderInputFile {
149
150
  export declare class ProviderRequestError extends Error {
150
151
  readonly status: number;
151
152
  readonly details?: unknown;
152
- readonly code?: string;
153
- constructor(status: number, message: string, details?: unknown, code?: string);
153
+ readonly code?: ProviderErrorCode;
154
+ constructor(status: number, message: string, details?: unknown, code?: ProviderErrorCode);
154
155
  }
155
156
  /** A dispatch denial is retryable and must not be wrapped as a bad provider credential. */
156
157
  export declare class ProviderDispatchRequestError extends ProviderRequestError {
@@ -1,7 +1,7 @@
1
1
  import { Buffer } from "node:buffer";
2
2
  import { createHash } from "node:crypto";
3
3
  import { compactObject, optionalString, requiredString } from "../../core/cast.js";
4
- import { defineApiKeyProviderExecutors, mapProviderActionSources, ProviderRequestError, providerUserAgent, readTransitFileInput, } from "../provider-runtime.js";
4
+ import { defineApiKeyProviderExecutors, mapProviderActionSources, ProviderRequestError, providerUserAgent, readTransitFileInput, providerInputError, providerResponseError, } from "../provider-runtime.js";
5
5
  const pushoverApiBaseUrl = "https://api.pushover.net";
6
6
  export const pushoverVersionedApiBaseUrl = `${pushoverApiBaseUrl}/1`;
7
7
  const pushoverIconBaseUrl = `${pushoverApiBaseUrl}/icons`;
@@ -12,9 +12,6 @@ const pushoverDefaultRealtimeTimeoutSeconds = 60;
12
12
  const pushoverMaxRealtimeTimeoutSeconds = 300;
13
13
  const pushoverMaxAttachmentBytes = 5 * 1024 * 1024;
14
14
  const pushoverOpenClientOsCode = "O";
15
- function pushoverError(_code, message, status = 500, details) {
16
- return new ProviderRequestError(status, message, details);
17
- }
18
15
  function createTimeoutSignal(input) {
19
16
  const controller = new AbortController();
20
17
  let didTimeout = false;
@@ -123,7 +120,7 @@ export const pushoverActionHandlers = {
123
120
  };
124
121
  const pushoverExecutorHandlers = mapProviderActionSources("pushover", pushoverActionHandlers, (_name, handler) => (input, context) => handler({ apiKey: context.apiKey, values: {}, input, transitFiles: context.transitFiles }, context.fetcher));
125
122
  export async function validatePushoverCredential(input, fetcher) {
126
- const apiKey = requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message));
123
+ const apiKey = requiredString(input.apiKey, "apiKey", providerInputError);
127
124
  const appLimits = await requestPushoverJson({
128
125
  path: "/apps/limits.json",
129
126
  query: {
@@ -301,9 +298,9 @@ async function getPushoverAppIconImage(input, fetcher) {
301
298
  signal: timeout.signal,
302
299
  });
303
300
  if (!response.ok) {
304
- throw pushoverError(response.status === 404 ? "invalid_input" : "provider_error", response.status === 404
301
+ throw new ProviderRequestError(response.status === 404 ? 400 : 502, response.status === 404
305
302
  ? `unknown pushover icon: ${parsed.icon}`
306
- : `pushover icon request failed with ${response.status} ${response.statusText}`.trim(), response.status === 404 ? 400 : 502);
303
+ : `pushover icon request failed with ${response.status} ${response.statusText}`.trim());
307
304
  }
308
305
  const bytes = Buffer.from(await response.arrayBuffer());
309
306
  return {
@@ -562,7 +559,7 @@ async function renamePushoverGroup(input, fetcher) {
562
559
  async function assignPushoverLicense(input, fetcher) {
563
560
  const parsed = input.input;
564
561
  if (!parsed.user && !parsed.email) {
565
- throw pushoverError("invalid_input", "user or email is required", 400);
562
+ throw providerInputError("user or email is required");
566
563
  }
567
564
  const appToken = resolveAppToken(input, parsed.token);
568
565
  const payload = await requestPushoverJson({
@@ -728,7 +725,7 @@ async function acknowledgePushoverClientMessages(input, fetcher) {
728
725
  async function listenPushoverClientWebsocket(input) {
729
726
  const parsed = input.input;
730
727
  if (typeof globalThis.WebSocket !== "function") {
731
- throw pushoverError("provider_not_configured", "WebSocket is unavailable in this runtime");
728
+ throw new ProviderRequestError(500, "WebSocket is unavailable in this runtime");
732
729
  }
733
730
  const timeoutSeconds = Math.min(Math.max(parsed.timeout ?? pushoverDefaultRealtimeTimeoutSeconds, 1), pushoverMaxRealtimeTimeoutSeconds);
734
731
  return new Promise((resolve, reject) => {
@@ -780,7 +777,7 @@ async function listenPushoverClientWebsocket(input) {
780
777
  }
781
778
  });
782
779
  socket.addEventListener("error", () => {
783
- settleReject(pushoverError("provider_error", "pushover realtime websocket connection failed", 502));
780
+ settleReject(providerResponseError("pushover realtime websocket connection failed"));
784
781
  });
785
782
  socket.addEventListener("close", () => {
786
783
  settleResolve();
@@ -806,7 +803,7 @@ async function requestPushoverJson(input) {
806
803
  const text = await response.text();
807
804
  const payload = parseJsonObject(text);
808
805
  if (!payload) {
809
- throw pushoverError("provider_error", `pushover request returned a non-JSON response from ${input.path}`, 502);
806
+ throw providerResponseError(`pushover request returned a non-JSON response from ${input.path}`);
810
807
  }
811
808
  const status = readOptionalInteger(payload.status);
812
809
  if (response.ok && status === 1) {
@@ -826,9 +823,9 @@ async function requestPushoverJson(input) {
826
823
  throw error;
827
824
  }
828
825
  if (timeout.didTimeout) {
829
- throw pushoverError("provider_error", `pushover request timed out after ${(input.timeoutMs ?? pushoverDefaultTimeoutMs) / 1000} seconds`, 504);
826
+ throw new ProviderRequestError(504, `pushover request timed out after ${(input.timeoutMs ?? pushoverDefaultTimeoutMs) / 1000} seconds`);
830
827
  }
831
- throw pushoverError("provider_error", error instanceof Error ? error.message : "pushover request failed", 502);
828
+ throw providerResponseError(error instanceof Error ? error.message : "pushover request failed");
832
829
  }
833
830
  finally {
834
831
  timeout.cleanup();
@@ -850,24 +847,24 @@ function normalizePushoverRequestError(input) {
850
847
  ? "two-factor authentication code required"
851
848
  : `pushover request failed with ${input.response.status}`);
852
849
  if (input.response.status === 429) {
853
- return pushoverError("rate_limited", message, 429);
850
+ return new ProviderRequestError(429, message);
854
851
  }
855
852
  if (input.phase === "validate") {
856
- return pushoverError("invalid_input", message, 400);
853
+ return providerInputError(message);
857
854
  }
858
855
  if (isCredentialProblem(input.payload, input.response.status, input.credentialKind)) {
859
856
  if (input.credentialKind === "client_secret" || input.credentialKind === "public") {
860
- return pushoverError("invalid_input", message, 400);
857
+ return providerInputError(message);
861
858
  }
862
859
  if (input.tokenSource === "connection") {
863
- return pushoverError("credential_expired", message);
860
+ return new ProviderRequestError(500, message);
864
861
  }
865
- return pushoverError("invalid_input", message, 400);
862
+ return providerInputError(message);
866
863
  }
867
864
  if (input.response.status >= 400 && input.response.status < 500) {
868
- return pushoverError("invalid_input", message, 400);
865
+ return providerInputError(message);
869
866
  }
870
- return pushoverError("provider_error", errors[0] ?? input.rawBody ?? message, input.response.status >= 500 ? 502 : 500);
867
+ return new ProviderRequestError(input.response.status >= 500 ? 502 : 500, errors[0] ?? input.rawBody ?? message);
871
868
  }
872
869
  function isCredentialProblem(payload, status, credentialKind) {
873
870
  if (status === 401 || status === 403) {
@@ -897,7 +894,7 @@ function resolveAppToken(input, override) {
897
894
  };
898
895
  }
899
896
  return {
900
- token: requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(400, message)),
897
+ token: requiredString(input.apiKey, "apiKey", providerInputError),
901
898
  source: "connection",
902
899
  };
903
900
  }
@@ -911,7 +908,7 @@ function resolveTeamToken(input, override) {
911
908
  }
912
909
  const connectedToken = readOptionalString(input.values?.teamToken);
913
910
  if (!connectedToken) {
914
- throw pushoverError("invalid_input", "team token is required; provide input.token or configure Team API Token in the provider connection", 400);
911
+ throw providerInputError("team token is required; provide input.token or configure Team API Token in the provider connection");
915
912
  }
916
913
  return {
917
914
  token: connectedToken,
@@ -922,7 +919,7 @@ async function resolvePushoverAttachment(input) {
922
919
  const hasTransitAttachment = input.attachment != null;
923
920
  const hasInlineAttachment = Boolean(input.attachmentBase64 || input.attachmentType);
924
921
  if (hasTransitAttachment && hasInlineAttachment) {
925
- throw pushoverError("invalid_input", "provide either attachment or attachment_base64/attachment_type, not both", 400);
922
+ throw providerInputError("provide either attachment or attachment_base64/attachment_type, not both");
926
923
  }
927
924
  if (input.attachment) {
928
925
  const transitFile = await readTransitFileInput(input.attachment, input);
@@ -935,7 +932,7 @@ async function resolvePushoverAttachment(input) {
935
932
  return undefined;
936
933
  }
937
934
  if (!input.attachmentBase64 || !input.attachmentType) {
938
- throw pushoverError("invalid_input", "attachment_base64 and attachment_type are required together", 400);
935
+ throw providerInputError("attachment_base64 and attachment_type are required together");
939
936
  }
940
937
  const bytes = decodeBase64Attachment(input.attachmentBase64);
941
938
  ensureAttachmentSize(bytes, "attachment");
@@ -947,7 +944,7 @@ async function resolvePushoverAttachment(input) {
947
944
  }
948
945
  function ensureAttachmentSize(bytes, name) {
949
946
  if (bytes.byteLength > pushoverMaxAttachmentBytes) {
950
- throw pushoverError("invalid_input", `${name} exceeds the 5MB Pushover attachment limit`, 400);
947
+ throw providerInputError(`${name} exceeds the 5MB Pushover attachment limit`);
951
948
  }
952
949
  }
953
950
  function decodeBase64Attachment(value) {
@@ -957,10 +954,10 @@ function decodeBase64Attachment(value) {
957
954
  bytes = Buffer.from(normalized, "base64");
958
955
  }
959
956
  catch {
960
- throw pushoverError("invalid_input", "attachment_base64 must be valid base64", 400);
957
+ throw providerInputError("attachment_base64 must be valid base64");
961
958
  }
962
959
  if (bytes.byteLength === 0 || bytes.toString("base64") !== normalized.replace(/\s+/g, "")) {
963
- throw pushoverError("invalid_input", "attachment_base64 must be valid base64", 400);
960
+ throw providerInputError("attachment_base64 must be valid base64");
964
961
  }
965
962
  return Uint8Array.from(bytes);
966
963
  }
@@ -1107,7 +1104,7 @@ function readIdentifierString(preferred, fallback) {
1107
1104
  }
1108
1105
  const fallbackString = normalizeUnknownString(fallback);
1109
1106
  if (!fallbackString) {
1110
- throw pushoverError("provider_error", "pushover response is missing an identifier", 502);
1107
+ throw providerResponseError("pushover response is missing an identifier");
1111
1108
  }
1112
1109
  return fallbackString;
1113
1110
  }
@@ -1134,7 +1131,7 @@ function normalizeUnknownString(value) {
1134
1131
  function readRequiredString(payload, key) {
1135
1132
  const value = normalizeUnknownString(payload[key]);
1136
1133
  if (!value) {
1137
- throw pushoverError("provider_error", `pushover response is missing ${key}`, 502);
1134
+ throw providerResponseError(`pushover response is missing ${key}`);
1138
1135
  }
1139
1136
  return value;
1140
1137
  }
@@ -1148,7 +1145,7 @@ function readNullableString(value) {
1148
1145
  function readRequiredInteger(payload, key) {
1149
1146
  const value = readOptionalInteger(payload[key]);
1150
1147
  if (value == null) {
1151
- throw pushoverError("provider_error", `pushover response is missing ${key}`, 502);
1148
+ throw providerResponseError(`pushover response is missing ${key}`);
1152
1149
  }
1153
1150
  return value;
1154
1151
  }
@@ -1190,7 +1187,7 @@ function readBooleanLike(value) {
1190
1187
  return false;
1191
1188
  }
1192
1189
  }
1193
- throw pushoverError("provider_error", "pushover response is missing a boolean value", 502);
1190
+ throw providerResponseError("pushover response is missing a boolean value");
1194
1191
  }
1195
1192
  function readStringArray(value) {
1196
1193
  return readOptionalArray(value)
@@ -1,12 +1,9 @@
1
1
  import { compactObject, requiredString } from "../../core/cast.js";
2
2
  import { encodePathSegment } from "../../core/request.js";
3
- import { defineApiKeyProviderExecutors, mapProviderActionSources, providerUserAgent, ProviderRequestError, readTransitFileInput, } from "../provider-runtime.js";
3
+ import { defineApiKeyProviderExecutors, mapProviderActionSources, providerUserAgent, ProviderRequestError, readTransitFileInput, providerInputError, providerResponseError, } from "../provider-runtime.js";
4
4
  export const qianfanApiOrigin = "https://qianfan.baidubce.com";
5
5
  export const qianfanApiBaseUrl = `${qianfanApiOrigin}/v2`;
6
6
  const qianfanUserAgent = providerUserAgent;
7
- function qianfanError(_code, message, status = 502) {
8
- return new ProviderRequestError(status, message);
9
- }
10
7
  function requireApiKey(input) {
11
8
  return requiredString(input.apiKey, "apiKey", (message) => new ProviderRequestError(401, message));
12
9
  }
@@ -311,7 +308,7 @@ async function qianfanRequest(apiKey, input, fetcher) {
311
308
  }
312
309
  catch (error) {
313
310
  const message = error instanceof Error ? error.message : "unknown network error";
314
- throw qianfanError("provider_error", `qianfan ${method} ${input.path} failed before receiving response: ${message}`);
311
+ throw providerResponseError(`qianfan ${method} ${input.path} failed before receiving response: ${message}`);
315
312
  }
316
313
  await assertQianfanResponse(response, input.mode ?? "execute");
317
314
  return readQianfanJson(response);
@@ -328,7 +325,7 @@ async function qianfanMultipartRequest(apiKey, input, body, fetcher) {
328
325
  }
329
326
  catch (error) {
330
327
  const message = error instanceof Error ? error.message : "unknown network error";
331
- throw qianfanError("provider_error", `qianfan ${method} ${input.path} failed before receiving response: ${message}`);
328
+ throw providerResponseError(`qianfan ${method} ${input.path} failed before receiving response: ${message}`);
332
329
  }
333
330
  await assertQianfanResponse(response, input.mode ?? "execute");
334
331
  return readQianfanJson(response);
@@ -344,7 +341,7 @@ async function qianfanTextRequest(apiKey, input, fetcher) {
344
341
  }
345
342
  catch (error) {
346
343
  const message = error instanceof Error ? error.message : "unknown network error";
347
- throw qianfanError("provider_error", `qianfan ${method} ${input.path} failed before receiving response: ${message}`);
344
+ throw providerResponseError(`qianfan ${method} ${input.path} failed before receiving response: ${message}`);
348
345
  }
349
346
  await assertQianfanResponse(response, input.mode ?? "execute");
350
347
  let text;
@@ -352,9 +349,9 @@ async function qianfanTextRequest(apiKey, input, fetcher) {
352
349
  text = await response.text();
353
350
  }
354
351
  catch (error) {
355
- throw qianfanError("provider_error", error instanceof Error
352
+ throw new ProviderRequestError(response.status, error instanceof Error
356
353
  ? `failed to read qianfan response body: ${error.message}`
357
- : "failed to read qianfan response body", response.status);
354
+ : "failed to read qianfan response body");
358
355
  }
359
356
  return {
360
357
  content: text,
@@ -371,7 +368,7 @@ function qianfanHeaders(apiKey, includeJsonContentType = true) {
371
368
  }
372
369
  function assertStreamingDisabled(input) {
373
370
  if (input.stream === true) {
374
- throw qianfanError("invalid_input", "stream=true is not supported by connector actions", 400);
371
+ throw providerInputError("stream=true is not supported by connector actions");
375
372
  }
376
373
  }
377
374
  function withoutStreamOptions(input) {
@@ -383,7 +380,7 @@ function requireStringField(input, field) {
383
380
  if (typeof value === "string" && value.length > 0) {
384
381
  return value;
385
382
  }
386
- throw qianfanError("invalid_input", `${field} must be a non-empty string`, 400);
383
+ throw providerInputError(`${field} must be a non-empty string`);
387
384
  }
388
385
  function withQianfanQuery(path, query) {
389
386
  const params = new URLSearchParams();
@@ -409,18 +406,18 @@ async function assertQianfanResponse(response, mode) {
409
406
  }
410
407
  const error = await readQianfanError(response);
411
408
  if (response.status === 429) {
412
- throw qianfanError("rate_limited", error.message, 429);
409
+ throw new ProviderRequestError(429, error.message);
413
410
  }
414
411
  if (mode === "validate" && (response.status === 401 || response.status === 403)) {
415
- throw qianfanError("invalid_input", error.message, 400);
412
+ throw providerInputError(error.message);
416
413
  }
417
414
  if (mode === "execute" && response.status === 401) {
418
- throw qianfanError("credential_expired", error.message);
415
+ throw providerResponseError(error.message);
419
416
  }
420
417
  if (response.status === 400 || response.status === 422) {
421
- throw qianfanError("invalid_input", error.message, 400);
418
+ throw providerInputError(error.message);
422
419
  }
423
- throw qianfanError("provider_error", error.message, response.status);
420
+ throw new ProviderRequestError(response.status, error.message);
424
421
  }
425
422
  async function readQianfanJson(response) {
426
423
  let text;
@@ -428,9 +425,9 @@ async function readQianfanJson(response) {
428
425
  text = await response.text();
429
426
  }
430
427
  catch (error) {
431
- throw qianfanError("provider_error", error instanceof Error
428
+ throw new ProviderRequestError(response.status, error instanceof Error
432
429
  ? `failed to read qianfan response body: ${error.message}`
433
- : "failed to read qianfan response body", response.status);
430
+ : "failed to read qianfan response body");
434
431
  }
435
432
  if (response.status === 204 || text.trim() === "") {
436
433
  return {};
@@ -439,7 +436,7 @@ async function readQianfanJson(response) {
439
436
  return JSON.parse(text);
440
437
  }
441
438
  catch {
442
- throw qianfanError("provider_error", `qianfan returned invalid JSON with ${response.status}: ${text.slice(0, 200)}`, response.status);
439
+ throw new ProviderRequestError(response.status, `qianfan returned invalid JSON with ${response.status}: ${text.slice(0, 200)}`);
443
440
  }
444
441
  }
445
442
  async function readQianfanError(response) {
@@ -0,0 +1,2 @@
1
+ import type { ActionDefinition } from "../../core/types.ts";
2
+ export declare const qiuxiaoceActions: ActionDefinition[];
@@ -0,0 +1,248 @@
1
+ import { jsonSchema as s } from "../../core/json-schema.js";
2
+ import { defineProviderAction } from "../../core/provider-definition.js";
3
+ export const qiuxiaoceActions = [
4
+ defineProviderAction("qiuxiaoce", {
5
+ name: "get_quota",
6
+ description: "Read remaining credits, expiration and today's usage without consuming credits.",
7
+ operationType: "read",
8
+ requiredScopes: [],
9
+ inputSchema: s.object("Parameters for get_quota.", {}, { required: [] }),
10
+ outputSchema: s.looseObject("The get_quota response from QiuXiaoCe.", {
11
+ success: s.boolean("Whether the provider reports success."),
12
+ data: s.looseObject("Credit balance and usage.", {
13
+ credits_remaining: s.integer("Remaining API credits."),
14
+ expires_at: s.nullable(s.string("Credit expiration reported by the provider.")),
15
+ today_used: s.integer("Credits consumed today."),
16
+ }),
17
+ }),
18
+ }),
19
+ defineProviderAction("qiuxiaoce", {
20
+ name: "get_daily_digest",
21
+ description: "List matches for a sales date, including fixture IDs and report availability. Omit date for the current sales day.",
22
+ operationType: "read",
23
+ requiredScopes: [],
24
+ inputSchema: s.object("Parameters for get_daily_digest.", { date: s.string("Calendar date in YYYY-MM-DD format.", { format: "date" }) }, { required: [] }),
25
+ outputSchema: s.looseObject("The get_daily_digest response from QiuXiaoCe.", {
26
+ success: s.boolean("Whether the provider reports success."),
27
+ date: s.string("Calendar date in YYYY-MM-DD format.", { format: "date" }),
28
+ total: s.integer("Total matches."),
29
+ summary: s.looseObject("Report and data readiness counts."),
30
+ matches: s.array("Matches on the selected sales day.", s.looseObject("One upstream record, including provider-specific fields.")),
31
+ }),
32
+ }),
33
+ defineProviderAction("qiuxiaoce", {
34
+ name: "list_fixtures",
35
+ description: "Find fixtures by date, date range, league, team, round, status or fixture ID. Use either date or from/to.",
36
+ operationType: "read",
37
+ requiredScopes: [],
38
+ inputSchema: {
39
+ ...s.object("Parameters for list_fixtures.", {
40
+ date: s.string("Calendar date in YYYY-MM-DD format.", { format: "date" }),
41
+ from: s.string("Calendar date in YYYY-MM-DD format.", { format: "date" }),
42
+ to: s.string("Calendar date in YYYY-MM-DD format.", { format: "date" }),
43
+ league: s.integer("The provider entity ID returned by a discovery action."),
44
+ season: s.integer("Season starting year. Omit to use the provider default season."),
45
+ team: s.integer("The provider entity ID returned by a discovery action."),
46
+ round: s.string("Round name; requires league and season."),
47
+ status: s.stringEnum("Fixture status: not started, finished, or live.", ["NS", "FT", "LIVE"]),
48
+ last: s.integer("Most recent number of matches; requires team."),
49
+ next: s.integer("Upcoming number of matches; requires team."),
50
+ id: s.integer("The provider entity ID returned by a discovery action."),
51
+ }, { required: [] }),
52
+ dependentRequired: {
53
+ from: ["to"],
54
+ to: ["from"],
55
+ round: ["league", "season"],
56
+ last: ["team"],
57
+ next: ["team"],
58
+ },
59
+ not: { required: ["date"], anyOf: [{ required: ["from"] }, { required: ["to"] }] },
60
+ },
61
+ outputSchema: s.looseObject("The list_fixtures response from QiuXiaoCe.", {
62
+ success: s.boolean("Whether the provider reports success."),
63
+ count: s.integer("Number of returned fixtures."),
64
+ fixtures: s.array("Matching fixtures.", s.looseObject("One upstream record, including provider-specific fields.")),
65
+ }),
66
+ }),
67
+ defineProviderAction("qiuxiaoce", {
68
+ name: "get_fixture",
69
+ description: "Read a fixture's kickoff, score, status and teams.",
70
+ operationType: "read",
71
+ requiredScopes: [],
72
+ inputSchema: s.object("Parameters for get_fixture.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
73
+ outputSchema: s.looseObject("The get_fixture response from QiuXiaoCe.", {
74
+ success: s.boolean("Whether the provider reports success."),
75
+ data: s.looseObject("Upstream detail fields, preserved without filtering."),
76
+ }),
77
+ }),
78
+ defineProviderAction("qiuxiaoce", {
79
+ name: "get_fixture_stats",
80
+ description: "Read post-match technical statistics for a fixture.",
81
+ operationType: "read",
82
+ requiredScopes: [],
83
+ inputSchema: s.object("Parameters for get_fixture_stats.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
84
+ outputSchema: s.looseObject("The get_fixture_stats response from QiuXiaoCe.", {
85
+ success: s.boolean("Whether the provider reports success."),
86
+ data: s.looseObject("Upstream detail fields, preserved without filtering."),
87
+ }),
88
+ }),
89
+ defineProviderAction("qiuxiaoce", {
90
+ name: "get_fixture_events",
91
+ description: "Read goals, cards and substitutions for a fixture.",
92
+ operationType: "read",
93
+ requiredScopes: [],
94
+ inputSchema: s.object("Parameters for get_fixture_events.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
95
+ outputSchema: s.looseObject("The get_fixture_events response from QiuXiaoCe.", {
96
+ success: s.boolean("Whether the provider reports success."),
97
+ events: s.array("Fixture events.", s.looseObject("One upstream record, including provider-specific fields.")),
98
+ }),
99
+ }),
100
+ defineProviderAction("qiuxiaoce", {
101
+ name: "get_fixture_lineups",
102
+ description: "Read announced starting lineups and substitutes for a fixture.",
103
+ operationType: "read",
104
+ requiredScopes: [],
105
+ inputSchema: s.object("Parameters for get_fixture_lineups.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
106
+ outputSchema: s.looseObject("The get_fixture_lineups response from QiuXiaoCe.", {
107
+ success: s.boolean("Whether the provider reports success."),
108
+ data: s.looseObject("Upstream detail fields, preserved without filtering."),
109
+ }),
110
+ }),
111
+ defineProviderAction("qiuxiaoce", {
112
+ name: "get_fixture_players",
113
+ description: "Read player-by-player post-match statistics for a fixture.",
114
+ operationType: "read",
115
+ requiredScopes: [],
116
+ inputSchema: s.object("Parameters for get_fixture_players.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
117
+ outputSchema: s.looseObject("The get_fixture_players response from QiuXiaoCe.", {
118
+ success: s.boolean("Whether the provider reports success."),
119
+ data: s.looseObject("Upstream detail fields, preserved without filtering."),
120
+ }),
121
+ }),
122
+ defineProviderAction("qiuxiaoce", {
123
+ name: "search_teams",
124
+ description: "Search teams by name, including Chinese aliases. Verify the returned identity before selecting an ID.",
125
+ operationType: "read",
126
+ requiredScopes: [],
127
+ inputSchema: s.object("Parameters for search_teams.", { search: s.nonEmptyString("Team name keyword, including Chinese aliases.") }, { required: ["search"] }),
128
+ outputSchema: s.looseObject("The search_teams response from QiuXiaoCe.", {
129
+ success: s.boolean("Whether the provider reports success."),
130
+ teams: s.array("Matching teams.", s.looseObject("One upstream record, including provider-specific fields.")),
131
+ }),
132
+ }),
133
+ defineProviderAction("qiuxiaoce", {
134
+ name: "get_team",
135
+ description: "Read a team's names, country, venue and founding information.",
136
+ operationType: "read",
137
+ requiredScopes: [],
138
+ inputSchema: s.object("Parameters for get_team.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
139
+ outputSchema: s.looseObject("The get_team response from QiuXiaoCe.", {
140
+ success: s.boolean("Whether the provider reports success."),
141
+ data: s.looseObject("Upstream detail fields, preserved without filtering."),
142
+ }),
143
+ }),
144
+ defineProviderAction("qiuxiaoce", {
145
+ name: "list_leagues",
146
+ description: "List supported leagues, optionally searching by name or Chinese alias.",
147
+ operationType: "read",
148
+ requiredScopes: [],
149
+ inputSchema: s.object("Parameters for list_leagues.", { q: s.string("Optional league name keyword.") }, { required: [] }),
150
+ outputSchema: s.looseObject("The list_leagues response from QiuXiaoCe.", {
151
+ success: s.boolean("Whether the provider reports success."),
152
+ leagues: s.array("Matching leagues.", s.looseObject("One upstream record, including provider-specific fields.")),
153
+ }),
154
+ }),
155
+ defineProviderAction("qiuxiaoce", {
156
+ name: "get_league",
157
+ description: "Read league details and current standings.",
158
+ operationType: "read",
159
+ requiredScopes: [],
160
+ inputSchema: s.object("Parameters for get_league.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
161
+ outputSchema: s.looseObject("The get_league response from QiuXiaoCe.", {
162
+ success: s.boolean("Whether the provider reports success."),
163
+ data: s.looseObject("Upstream detail fields, preserved without filtering."),
164
+ }),
165
+ }),
166
+ defineProviderAction("qiuxiaoce", {
167
+ name: "get_standings",
168
+ description: "Read league standings for a season, defaulting to the latest available season.",
169
+ operationType: "read",
170
+ requiredScopes: [],
171
+ inputSchema: s.object("Parameters for get_standings.", {
172
+ league: s.integer("The provider entity ID returned by a discovery action."),
173
+ season: s.integer("Season starting year. Omit to use the provider default season."),
174
+ }, { required: ["league"] }),
175
+ outputSchema: s.looseObject("The get_standings response from QiuXiaoCe.", {
176
+ success: s.boolean("Whether the provider reports success."),
177
+ season: s.integer("Season starting year. Omit to use the provider default season."),
178
+ data: s.array("League standings.", s.looseObject("One upstream record, including provider-specific fields.")),
179
+ }),
180
+ }),
181
+ defineProviderAction("qiuxiaoce", {
182
+ name: "list_league_fixtures",
183
+ description: "List all league fixtures and scores for a season.",
184
+ operationType: "read",
185
+ requiredScopes: [],
186
+ inputSchema: s.object("Parameters for list_league_fixtures.", {
187
+ id: s.integer("The provider entity ID returned by a discovery action."),
188
+ season: s.integer("Season starting year. Omit to use the provider default season."),
189
+ }, { required: ["id"] }),
190
+ outputSchema: s.looseObject("The list_league_fixtures response from QiuXiaoCe.", {
191
+ success: s.boolean("Whether the provider reports success."),
192
+ data: s.array("Season records returned by the provider.", s.looseObject("One upstream record, including provider-specific fields.")),
193
+ }),
194
+ }),
195
+ defineProviderAction("qiuxiaoce", {
196
+ name: "list_league_teams",
197
+ description: "List participating teams for a league season.",
198
+ operationType: "read",
199
+ requiredScopes: [],
200
+ inputSchema: s.object("Parameters for list_league_teams.", {
201
+ id: s.integer("The provider entity ID returned by a discovery action."),
202
+ season: s.integer("Season starting year. Omit to use the provider default season."),
203
+ }, { required: ["id"] }),
204
+ outputSchema: s.looseObject("The list_league_teams response from QiuXiaoCe.", {
205
+ success: s.boolean("Whether the provider reports success."),
206
+ data: s.array("Season records returned by the provider.", s.looseObject("One upstream record, including provider-specific fields.")),
207
+ }),
208
+ }),
209
+ defineProviderAction("qiuxiaoce", {
210
+ name: "list_league_top_scorers",
211
+ description: "Read a league season's top scorers.",
212
+ operationType: "read",
213
+ requiredScopes: [],
214
+ inputSchema: s.object("Parameters for list_league_top_scorers.", {
215
+ id: s.integer("The provider entity ID returned by a discovery action."),
216
+ season: s.integer("Season starting year. Omit to use the provider default season."),
217
+ }, { required: ["id"] }),
218
+ outputSchema: s.looseObject("The list_league_top_scorers response from QiuXiaoCe.", {
219
+ success: s.boolean("Whether the provider reports success."),
220
+ data: s.array("Season records returned by the provider.", s.looseObject("One upstream record, including provider-specific fields.")),
221
+ }),
222
+ }),
223
+ defineProviderAction("qiuxiaoce", {
224
+ name: "list_league_top_assists",
225
+ description: "Read a league season's assist leaders.",
226
+ operationType: "read",
227
+ requiredScopes: [],
228
+ inputSchema: s.object("Parameters for list_league_top_assists.", {
229
+ id: s.integer("The provider entity ID returned by a discovery action."),
230
+ season: s.integer("Season starting year. Omit to use the provider default season."),
231
+ }, { required: ["id"] }),
232
+ outputSchema: s.looseObject("The list_league_top_assists response from QiuXiaoCe.", {
233
+ success: s.boolean("Whether the provider reports success."),
234
+ data: s.array("Season records returned by the provider.", s.looseObject("One upstream record, including provider-specific fields.")),
235
+ }),
236
+ }),
237
+ defineProviderAction("qiuxiaoce", {
238
+ name: "list_league_seasons",
239
+ description: "List available season years before querying historical league data.",
240
+ operationType: "read",
241
+ requiredScopes: [],
242
+ inputSchema: s.object("Parameters for list_league_seasons.", { id: s.integer("The provider entity ID returned by a discovery action.") }, { required: ["id"] }),
243
+ outputSchema: s.looseObject("The list_league_seasons response from QiuXiaoCe.", {
244
+ success: s.boolean("Whether the provider reports success."),
245
+ data: s.array("Available season starting years.", s.integer("Season starting year. Omit to use the provider default season.")),
246
+ }),
247
+ }),
248
+ ];
@@ -0,0 +1,4 @@
1
+ import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
2
+ export declare const executors: ProviderExecutors;
3
+ export declare const credentialValidators: CredentialValidators;
4
+ export declare const proxy: ProviderProxyExecutor;