@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.
- package/assets/open-connector/catalog/apps/agentearth.json +441 -0
- package/assets/open-connector/catalog/apps/appgrowing_mcp.json +863 -0
- package/assets/open-connector/catalog/apps/arcmira.json +610 -0
- package/assets/open-connector/catalog/apps/bainiu.json +654 -0
- package/assets/open-connector/catalog/apps/chaport.json +331 -0
- package/assets/open-connector/catalog/apps/cnb.json +1408 -0
- package/assets/open-connector/catalog/apps/crtsh.json +123 -0
- package/assets/open-connector/catalog/apps/eastmoney_miaoxiang.json +406 -0
- package/assets/open-connector/catalog/apps/fastmoss_mcp.json +876 -876
- package/assets/open-connector/catalog/apps/ftshare.json +1162 -0
- package/assets/open-connector/catalog/apps/fusion-api.json +143 -0
- package/assets/open-connector/catalog/apps/fxbaogao.json +308 -0
- package/assets/open-connector/catalog/apps/github.json +38 -3
- package/assets/open-connector/catalog/apps/hrmos_kintai.json +7519 -0
- package/assets/open-connector/catalog/apps/humor_api.json +351 -0
- package/assets/open-connector/catalog/apps/kaonavi.json +1723 -0
- package/assets/open-connector/catalog/apps/linear_mcp.json +882 -22
- package/assets/open-connector/catalog/apps/listinggood.json +362 -0
- package/assets/open-connector/catalog/apps/notion_mcp.json +338 -1
- package/assets/open-connector/catalog/apps/outlook.json +414 -0
- package/assets/open-connector/catalog/apps/porteden.json +1258 -0
- package/assets/open-connector/catalog/apps/qiuxiaoce.json +915 -0
- package/assets/open-connector/catalog/apps/qqmusic.json +1834 -0
- package/assets/open-connector/catalog/apps/rakuraku_seisan.json +217 -0
- package/assets/open-connector/catalog/apps/redfox.json +9661 -897
- package/assets/open-connector/catalog/apps/salesforce.json +4907 -0
- package/assets/open-connector/catalog/apps/sansan.json +4594 -0
- package/assets/open-connector/catalog/apps/smarthr.json +8071 -0
- package/assets/open-connector/catalog/apps/smooth.json +914 -0
- package/assets/open-connector/catalog/apps/tapd.json +727 -0
- package/assets/open-connector/catalog/apps/tencent_meeting_mcp.json +1301 -0
- package/assets/open-connector/catalog/apps/threatfox.json +203 -0
- package/assets/open-connector/catalog/apps/tradebee.json +915 -0
- package/assets/open-connector/catalog/apps/twittrapi.json +4914 -0
- package/assets/open-connector/catalog/apps/urlhaus.json +246 -0
- package/assets/open-connector/catalog/apps/weread.json +1514 -0
- package/assets/open-connector/catalog/apps/whatsapp.json +12 -0
- package/assets/open-connector/catalog/apps/zhiliaobiaoxun.json +812 -0
- package/assets/open-connector/catalog/apps-index.json +1 -1
- package/package.json +2 -1
- package/src/connection-service.js +55 -11
- package/src/core/provider-error-codes.d.ts +9 -0
- package/src/core/provider-error-codes.js +13 -0
- package/src/core/request.d.ts +2 -0
- package/src/core/request.js +11 -2
- package/src/mail/imap-smtp/protocol.js +4 -3
- package/src/oauth/oauth-flow-service.js +1 -0
- package/src/oauth/oauth-token.d.ts +2 -0
- package/src/providers/17track/runtime.js +17 -20
- package/src/providers/action-contracts.generated.d.ts +36 -6
- package/src/providers/agentearth/actions.d.ts +2 -0
- package/src/providers/agentearth/actions.js +100 -0
- package/src/providers/agentearth/executors.d.ts +4 -0
- package/src/providers/agentearth/executors.js +109 -0
- package/src/providers/appgrowing_mcp/actions.d.ts +2 -0
- package/src/providers/appgrowing_mcp/actions.js +175 -0
- package/src/providers/appgrowing_mcp/executors.d.ts +4 -0
- package/src/providers/appgrowing_mcp/executors.js +66 -0
- package/src/providers/arcmira/executors.d.ts +3 -0
- package/src/providers/arcmira/executors.js +8 -0
- package/src/providers/arcmira/runtime.d.ts +6 -0
- package/src/providers/arcmira/runtime.js +41 -0
- package/src/providers/bainiu/actions.d.ts +2 -0
- package/src/providers/bainiu/actions.js +108 -0
- package/src/providers/bainiu/executors.d.ts +4 -0
- package/src/providers/bainiu/executors.js +113 -0
- package/src/providers/baixiao/executors.js +1 -1
- package/src/providers/bing_webmaster/executors.js +1 -1
- package/src/providers/chaport/actions.d.ts +2 -0
- package/src/providers/chaport/actions.js +70 -0
- package/src/providers/chaport/executors.d.ts +4 -0
- package/src/providers/chaport/executors.js +128 -0
- package/src/providers/clickup/runtime.js +49 -52
- package/src/providers/cnb/actions.d.ts +2 -0
- package/src/providers/cnb/actions.js +341 -0
- package/src/providers/cnb/executors.d.ts +4 -0
- package/src/providers/cnb/executors.js +135 -0
- package/src/providers/coupontools/runtime.js +11 -14
- package/src/providers/crtsh/executors.d.ts +3 -0
- package/src/providers/crtsh/executors.js +19 -0
- package/src/providers/crtsh/runtime.d.ts +17 -0
- package/src/providers/crtsh/runtime.js +84 -0
- package/src/providers/eastmoney_miaoxiang/actions.d.ts +2 -0
- package/src/providers/eastmoney_miaoxiang/actions.js +95 -0
- package/src/providers/eastmoney_miaoxiang/executors.d.ts +4 -0
- package/src/providers/eastmoney_miaoxiang/executors.js +81 -0
- package/src/providers/fastmoss_mcp/actions-content.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-content.js +140 -0
- package/src/providers/fastmoss_mcp/actions-creator.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-creator.js +154 -0
- package/src/providers/fastmoss_mcp/actions-product.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-product.js +167 -0
- package/src/providers/fastmoss_mcp/actions-research.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-research.js +174 -0
- package/src/providers/fastmoss_mcp/actions-shop.d.ts +2 -0
- package/src/providers/fastmoss_mcp/actions-shop.js +142 -0
- package/src/providers/fastmoss_mcp/actions.js +11 -12
- package/src/providers/fastmoss_mcp/schemas.d.ts +51 -0
- package/src/providers/fastmoss_mcp/schemas.js +52 -0
- package/src/providers/ftshare/actions.d.ts +2 -0
- package/src/providers/ftshare/actions.js +124 -0
- package/src/providers/ftshare/executors.d.ts +4 -0
- package/src/providers/ftshare/executors.js +102 -0
- package/src/providers/fusion-api/operations.js +37 -0
- package/src/providers/fxbaogao/actions.d.ts +2 -0
- package/src/providers/fxbaogao/actions.js +74 -0
- package/src/providers/fxbaogao/executors.d.ts +4 -0
- package/src/providers/fxbaogao/executors.js +155 -0
- package/src/providers/github/app-installation.d.ts +37 -0
- package/src/providers/github/app-installation.js +233 -0
- package/src/providers/github/executors.js +93 -15
- package/src/providers/github/runtime-repository.js +21 -1
- package/src/providers/github/runtime-shared.d.ts +2 -0
- package/src/providers/github/runtime-shared.js +1 -0
- package/src/providers/googledrive/runtime-request.js +3 -3
- package/src/providers/hrmos_kintai/actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/actions.js +139 -0
- package/src/providers/hrmos_kintai/attendance-actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/attendance-actions.js +276 -0
- package/src/providers/hrmos_kintai/business-actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/business-actions.js +143 -0
- package/src/providers/hrmos_kintai/business-schemas.d.ts +4 -0
- package/src/providers/hrmos_kintai/business-schemas.js +320 -0
- package/src/providers/hrmos_kintai/executors.d.ts +4 -0
- package/src/providers/hrmos_kintai/executors.js +61 -0
- package/src/providers/hrmos_kintai/export-actions.d.ts +2 -0
- package/src/providers/hrmos_kintai/export-actions.js +58 -0
- package/src/providers/hrmos_kintai/operations.d.ts +9 -0
- package/src/providers/hrmos_kintai/operations.js +278 -0
- package/src/providers/hrmos_kintai/runtime.d.ts +10 -0
- package/src/providers/hrmos_kintai/runtime.js +217 -0
- package/src/providers/hrmos_kintai/schemas.d.ts +10 -0
- package/src/providers/hrmos_kintai/schemas.js +70 -0
- package/src/providers/humor_api/actions.d.ts +2 -0
- package/src/providers/humor_api/actions.js +96 -0
- package/src/providers/humor_api/executors.d.ts +4 -0
- package/src/providers/humor_api/executors.js +76 -0
- package/src/providers/kaonavi/actions.d.ts +4 -0
- package/src/providers/kaonavi/actions.js +144 -0
- package/src/providers/kaonavi/additional-actions.d.ts +10 -0
- package/src/providers/kaonavi/additional-actions.js +203 -0
- package/src/providers/kaonavi/executors.d.ts +4 -0
- package/src/providers/kaonavi/executors.js +69 -0
- package/src/providers/kaonavi/runtime.d.ts +4 -0
- package/src/providers/kaonavi/runtime.js +69 -0
- package/src/providers/linear_mcp/actions.d.ts +14 -0
- package/src/providers/linear_mcp/actions.js +134 -0
- package/src/providers/linear_mcp/runtime-mcp.d.ts +7 -1
- package/src/providers/linear_mcp/runtime-mcp.js +140 -28
- package/src/providers/linkfox/runtime.js +48 -51
- package/src/providers/listinggood/actions.d.ts +2 -0
- package/src/providers/listinggood/actions.js +95 -0
- package/src/providers/listinggood/executors.d.ts +4 -0
- package/src/providers/listinggood/executors.js +99 -0
- package/src/providers/mcp-tools.d.ts +3 -0
- package/src/providers/mcp-tools.js +5 -4
- package/src/providers/notion_mcp/executors.js +53 -24
- package/src/providers/notion_mcp/mcp-response.d.ts +26 -0
- package/src/providers/notion_mcp/mcp-response.js +95 -0
- package/src/providers/omise/executors.js +1 -1
- package/src/providers/outlook/executors.js +35 -2
- package/src/providers/porteden/actions.d.ts +2 -0
- package/src/providers/porteden/actions.js +162 -0
- package/src/providers/porteden/executors.d.ts +4 -0
- package/src/providers/porteden/executors.js +140 -0
- package/src/providers/provider-runtime.d.ts +3 -2
- package/src/providers/pushover/runtime.js +28 -31
- package/src/providers/qianfan/runtime.js +16 -19
- package/src/providers/qiuxiaoce/actions.d.ts +2 -0
- package/src/providers/qiuxiaoce/actions.js +248 -0
- package/src/providers/qiuxiaoce/executors.d.ts +4 -0
- package/src/providers/qiuxiaoce/executors.js +76 -0
- package/src/providers/qiuxiaoce/routes.d.ts +1 -0
- package/src/providers/qiuxiaoce/routes.js +20 -0
- package/src/providers/qqmusic/actions.d.ts +2 -0
- package/src/providers/qqmusic/actions.js +229 -0
- package/src/providers/qqmusic/executors.d.ts +4 -0
- package/src/providers/qqmusic/executors.js +92 -0
- package/src/providers/qqmusic/report-schema.d.ts +4 -0
- package/src/providers/qqmusic/report-schema.js +119 -0
- package/src/providers/rakuraku_seisan/actions.d.ts +2 -0
- package/src/providers/rakuraku_seisan/actions.js +50 -0
- package/src/providers/rakuraku_seisan/executors.d.ts +4 -0
- package/src/providers/rakuraku_seisan/executors.js +40 -0
- package/src/providers/rakuraku_seisan/runtime.d.ts +8 -0
- package/src/providers/rakuraku_seisan/runtime.js +251 -0
- package/src/providers/redfox/actions-account.d.ts +2 -0
- package/src/providers/redfox/actions-account.js +24 -0
- package/src/providers/redfox/actions-autohome.d.ts +2 -0
- package/src/providers/redfox/actions-autohome.js +51 -0
- package/src/providers/redfox/actions-baijiahao.d.ts +2 -0
- package/src/providers/redfox/actions-baijiahao.js +58 -0
- package/src/providers/redfox/actions-bilibili.d.ts +2 -0
- package/src/providers/redfox/actions-bilibili.js +67 -0
- package/src/providers/redfox/actions-dongchedi.d.ts +2 -0
- package/src/providers/redfox/actions-dongchedi.js +49 -0
- package/src/providers/redfox/actions-douyin.d.ts +2 -0
- package/src/providers/redfox/actions-douyin.js +297 -0
- package/src/providers/redfox/actions-generation.d.ts +2 -0
- package/src/providers/redfox/actions-generation.js +293 -0
- package/src/providers/redfox/actions-instagram.d.ts +2 -0
- package/src/providers/redfox/actions-instagram.js +49 -0
- package/src/providers/redfox/actions-kuaishou.d.ts +2 -0
- package/src/providers/redfox/actions-kuaishou.js +53 -0
- package/src/providers/redfox/actions-search.d.ts +2 -0
- package/src/providers/redfox/actions-search.js +125 -0
- package/src/providers/redfox/actions-tiktok.d.ts +2 -0
- package/src/providers/redfox/actions-tiktok.js +136 -0
- package/src/providers/redfox/actions-tools.d.ts +2 -0
- package/src/providers/redfox/actions-tools.js +151 -0
- package/src/providers/redfox/actions-toutiao.d.ts +2 -0
- package/src/providers/redfox/actions-toutiao.js +68 -0
- package/src/providers/redfox/actions-transcription.d.ts +2 -0
- package/src/providers/redfox/actions-transcription.js +165 -0
- package/src/providers/redfox/actions-wechat-channel.d.ts +2 -0
- package/src/providers/redfox/actions-wechat-channel.js +63 -0
- package/src/providers/redfox/actions-wechat.d.ts +2 -0
- package/src/providers/redfox/actions-wechat.js +302 -0
- package/src/providers/redfox/actions-weibo.d.ts +2 -0
- package/src/providers/redfox/actions-weibo.js +61 -0
- package/src/providers/redfox/actions-x.d.ts +2 -0
- package/src/providers/redfox/actions-x.js +126 -0
- package/src/providers/redfox/actions-xiaohongshu.d.ts +2 -0
- package/src/providers/redfox/actions-xiaohongshu.js +244 -0
- package/src/providers/redfox/actions-yiche.d.ts +2 -0
- package/src/providers/redfox/actions-yiche.js +59 -0
- package/src/providers/redfox/actions-youtube.d.ts +2 -0
- package/src/providers/redfox/actions-youtube.js +64 -0
- package/src/providers/redfox/actions-zhihu.d.ts +2 -0
- package/src/providers/redfox/actions-zhihu.js +26 -0
- package/src/providers/redfox/actions.d.ts +2 -0
- package/src/providers/redfox/actions.js +49 -0
- package/src/providers/redfox/executors.d.ts +2 -14
- package/src/providers/redfox/executors.js +28 -551
- package/src/providers/redfox/routes.d.ts +11 -0
- package/src/providers/redfox/routes.js +329 -0
- package/src/providers/redfox/runtime.d.ts +6 -0
- package/src/providers/redfox/runtime.js +151 -0
- package/src/providers/redfox/schemas.d.ts +9 -0
- package/src/providers/redfox/schemas.js +40 -0
- package/src/providers/registry.generated.js +30 -0
- package/src/providers/salesforce/context.d.ts +16 -0
- package/src/providers/salesforce/context.js +58 -0
- package/src/providers/salesforce/executors.d.ts +5 -0
- package/src/providers/salesforce/executors.js +54 -0
- package/src/providers/salesforce/media.d.ts +9 -0
- package/src/providers/salesforce/media.js +66 -0
- package/src/providers/salesforce/oauth.d.ts +2 -0
- package/src/providers/salesforce/oauth.js +89 -0
- package/src/providers/salesforce/runtime-analytics.d.ts +2 -0
- package/src/providers/salesforce/runtime-analytics.js +60 -0
- package/src/providers/salesforce/runtime-automation.d.ts +2 -0
- package/src/providers/salesforce/runtime-automation.js +64 -0
- package/src/providers/salesforce/runtime-base.d.ts +2 -0
- package/src/providers/salesforce/runtime-base.js +51 -0
- package/src/providers/salesforce/runtime-bulk.d.ts +2 -0
- package/src/providers/salesforce/runtime-bulk.js +98 -0
- package/src/providers/salesforce/runtime-data.d.ts +2 -0
- package/src/providers/salesforce/runtime-data.js +207 -0
- package/src/providers/salesforce/runtime-files.d.ts +2 -0
- package/src/providers/salesforce/runtime-files.js +108 -0
- package/src/providers/salesforce/transport.d.ts +9 -0
- package/src/providers/salesforce/transport.js +65 -0
- package/src/providers/sansan/actions.d.ts +2 -0
- package/src/providers/sansan/actions.js +165 -0
- package/src/providers/sansan/admin-actions.d.ts +2 -0
- package/src/providers/sansan/admin-actions.js +181 -0
- package/src/providers/sansan/admin.d.ts +2 -0
- package/src/providers/sansan/admin.js +42 -0
- package/src/providers/sansan/business-actions.d.ts +2 -0
- package/src/providers/sansan/business-actions.js +160 -0
- package/src/providers/sansan/business.d.ts +2 -0
- package/src/providers/sansan/business.js +51 -0
- package/src/providers/sansan/executors.d.ts +4 -0
- package/src/providers/sansan/executors.js +59 -0
- package/src/providers/sansan/file-schema.d.ts +2 -0
- package/src/providers/sansan/file-schema.js +8 -0
- package/src/providers/sansan/files.d.ts +11 -0
- package/src/providers/sansan/files.js +49 -0
- package/src/providers/sansan/organization-actions.d.ts +2 -0
- package/src/providers/sansan/organization-actions.js +198 -0
- package/src/providers/sansan/organization-columns.d.ts +2 -0
- package/src/providers/sansan/organization-columns.js +33 -0
- package/src/providers/sansan/organization.d.ts +2 -0
- package/src/providers/sansan/organization.js +88 -0
- package/src/providers/sansan/read.d.ts +2 -0
- package/src/providers/sansan/read.js +25 -0
- package/src/providers/sansan/request.d.ts +22 -0
- package/src/providers/sansan/request.js +94 -0
- package/src/providers/sansan/schemas.d.ts +7 -0
- package/src/providers/sansan/schemas.js +72 -0
- package/src/providers/shopee/runtime.d.ts +33 -29
- package/src/providers/shopee/runtime.js +166 -169
- package/src/providers/smarthr/actions.d.ts +2 -0
- package/src/providers/smarthr/actions.js +286 -0
- package/src/providers/smarthr/employee-runtime.d.ts +1 -0
- package/src/providers/smarthr/employee-runtime.js +63 -0
- package/src/providers/smarthr/employee-schema.d.ts +3 -0
- package/src/providers/smarthr/employee-schema.js +222 -0
- package/src/providers/smarthr/executors.d.ts +4 -0
- package/src/providers/smarthr/executors.js +35 -0
- package/src/providers/smarthr/pagination.d.ts +1 -0
- package/src/providers/smarthr/pagination.js +84 -0
- package/src/providers/smarthr/resource-routes.d.ts +16 -0
- package/src/providers/smarthr/resource-routes.js +163 -0
- package/src/providers/smarthr/runtime.d.ts +13 -0
- package/src/providers/smarthr/runtime.js +242 -0
- package/src/providers/smarthr/supplemental-actions.d.ts +2 -0
- package/src/providers/smarthr/supplemental-actions.js +541 -0
- package/src/providers/smooth/actions.d.ts +2 -0
- package/src/providers/smooth/actions.js +138 -0
- package/src/providers/smooth/executors.d.ts +4 -0
- package/src/providers/smooth/executors.js +102 -0
- package/src/providers/tapd/actions.d.ts +8 -0
- package/src/providers/tapd/actions.js +89 -0
- package/src/providers/tapd/executors.d.ts +4 -0
- package/src/providers/tapd/executors.js +137 -0
- package/src/providers/teable/runtime.js +12 -15
- package/src/providers/tencent_meeting_mcp/actions.d.ts +2 -0
- package/src/providers/tencent_meeting_mcp/actions.js +420 -0
- package/src/providers/tencent_meeting_mcp/executors.d.ts +4 -0
- package/src/providers/tencent_meeting_mcp/executors.js +117 -0
- package/src/providers/threatfox/executors.d.ts +4 -0
- package/src/providers/threatfox/executors.js +40 -0
- package/src/providers/threatfox/runtime.d.ts +15 -0
- package/src/providers/threatfox/runtime.js +128 -0
- package/src/providers/ticket_tailor/runtime.js +1 -1
- package/src/providers/ticketmaster/runtime.js +3 -6
- package/src/providers/timelinesai/runtime.js +13 -16
- package/src/providers/tradebee/actions.d.ts +2 -0
- package/src/providers/tradebee/actions.js +176 -0
- package/src/providers/tradebee/executors.d.ts +4 -0
- package/src/providers/tradebee/executors.js +83 -0
- package/src/providers/twittrapi/executors.d.ts +4 -0
- package/src/providers/twittrapi/executors.js +17 -0
- package/src/providers/twittrapi/runtime.d.ts +12 -0
- package/src/providers/twittrapi/runtime.js +203 -0
- package/src/providers/urlhaus/executors.d.ts +4 -0
- package/src/providers/urlhaus/executors.js +40 -0
- package/src/providers/urlhaus/runtime.d.ts +15 -0
- package/src/providers/urlhaus/runtime.js +142 -0
- package/src/providers/wangdian/runtime.js +16 -19
- package/src/providers/weread/actions.d.ts +2 -0
- package/src/providers/weread/actions.js +424 -0
- package/src/providers/weread/executors.d.ts +4 -0
- package/src/providers/weread/executors.js +98 -0
- package/src/providers/whatsapp/runtime.js +6 -1
- package/src/providers/workast/runtime.js +12 -17
- package/src/providers/youzan/runtime.js +21 -24
- package/src/providers/zenkit/runtime.js +13 -19
- package/src/providers/zhiliaobiaoxun/actions.d.ts +2 -0
- package/src/providers/zhiliaobiaoxun/actions.js +138 -0
- package/src/providers/zhiliaobiaoxun/executors.d.ts +4 -0
- package/src/providers/zhiliaobiaoxun/executors.js +78 -0
- package/src/server/api/auth.d.ts +2 -0
- package/src/server/api/auth.js +2 -1
- package/src/server/api/console-catalog-routes.d.ts +17 -0
- package/src/server/api/console-catalog-routes.js +88 -0
- package/src/server/api/console-oauth-routes.d.ts +18 -0
- package/src/server/api/console-oauth-routes.js +298 -0
- package/src/server/api/docs-routes.d.ts +12 -0
- package/src/server/api/docs-routes.js +38 -0
- package/src/server/api/http-utils.d.ts +1 -0
- package/src/server/api/http-utils.js +8 -0
- package/src/server/api/marketplace-routes.d.ts +7 -0
- package/src/server/api/marketplace-routes.js +62 -0
- package/src/server/api/mcp-routes.d.ts +18 -0
- package/src/server/api/mcp-routes.js +37 -0
- package/src/server/api/policy-routes.d.ts +13 -0
- package/src/server/api/policy-routes.js +50 -0
- package/src/server/api/policy-snapshot.d.ts +14 -0
- package/src/server/api/policy-snapshot.js +30 -0
- package/src/server/api/run-log-routes.d.ts +7 -0
- package/src/server/api/run-log-routes.js +70 -0
- package/src/server/api/runtime-api.d.ts +0 -7
- package/src/server/api/runtime-api.js +0 -13
- package/src/server/api/runtime-app-routes.d.ts +10 -0
- package/src/server/api/runtime-app-routes.js +72 -0
- package/src/server/api/runtime-catalog-routes.d.ts +37 -0
- package/src/server/api/runtime-catalog-routes.js +133 -0
- package/src/server/api/runtime-execution-routes.d.ts +16 -0
- package/src/server/api/runtime-execution-routes.js +198 -0
- package/src/server/api/saas-oauth-routes.d.ts +9 -0
- package/src/server/api/saas-oauth-routes.js +27 -0
- package/src/server/api/saas-project-routes.d.ts +7 -0
- package/src/server/api/saas-project-routes.js +16 -0
- package/src/server/api/transit-file-routes.d.ts +9 -0
- package/src/server/api/transit-file-routes.js +49 -0
- package/src/server/api/trigger-routes.d.ts +15 -0
- package/src/server/api/trigger-routes.js +48 -0
- package/src/server/connect-app.d.ts +1 -0
- package/src/server/connect-app.js +3 -1
- package/src/server/connect-server.d.ts +3 -54
- package/src/server/connect-server.js +95 -1148
- package/src/providers/fastmoss_mcp/official-tools.json +0 -2922
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { looseArray, optionalInteger, optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
+
import { parseProviderJsonBodyText, providerInputError, ProviderRequestError, providerUserAgent, readProviderErrorTextBody, readProviderTextBody, requiredInputString, runProviderRequest, setSearchParams, withRetryAfterSeconds, } from "../provider-runtime.js";
|
|
3
|
+
export const crtshApiBaseUrl = "https://crt.sh";
|
|
4
|
+
const defaultLimit = 100;
|
|
5
|
+
export const crtshActionHandlers = {
|
|
6
|
+
async search_certificates(input, context) {
|
|
7
|
+
const domain = domainQueryParam(input.domain);
|
|
8
|
+
const limit = optionalInteger(input.limit) ?? defaultLimit;
|
|
9
|
+
const payload = await requestCrtsh({ context, domain });
|
|
10
|
+
const records = looseArray(payload);
|
|
11
|
+
const certificates = [];
|
|
12
|
+
for (const item of records) {
|
|
13
|
+
const record = optionalRecord(item);
|
|
14
|
+
if (!record)
|
|
15
|
+
continue;
|
|
16
|
+
certificates.push(normalizeCertificate(record));
|
|
17
|
+
if (certificates.length >= limit)
|
|
18
|
+
break;
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
certificates,
|
|
22
|
+
returned: certificates.length,
|
|
23
|
+
total_matches: records.length,
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* crt.sh treats `q` as a SQL LIKE pattern where % is the wildcard. Keep the
|
|
29
|
+
* charset tight so a model-supplied URL or junk never reaches the query string.
|
|
30
|
+
*/
|
|
31
|
+
function domainQueryParam(value) {
|
|
32
|
+
const domain = requiredInputString(value, "domain").trim();
|
|
33
|
+
if (!/^[A-Za-z0-9%][A-Za-z0-9.\-_%]*$/.test(domain)) {
|
|
34
|
+
throw providerInputError("domain must be a domain such as example.com, optionally with % wildcards like %.example.com.");
|
|
35
|
+
}
|
|
36
|
+
return domain;
|
|
37
|
+
}
|
|
38
|
+
async function requestCrtsh(request) {
|
|
39
|
+
const url = new URL(crtshApiBaseUrl);
|
|
40
|
+
// Explicit ILIKE: crt.sh defaults hyphenated queries to "Single" matching,
|
|
41
|
+
// which disables % wildcards (see certwatch_db web_apis.fnc).
|
|
42
|
+
setSearchParams(url, { q: request.domain, output: "json", match: "ILIKE" });
|
|
43
|
+
return runProviderRequest({ label: "crt.sh", signal: request.context.signal }, async (signal) => {
|
|
44
|
+
const response = await request.context.fetcher(url, {
|
|
45
|
+
headers: {
|
|
46
|
+
accept: "application/json",
|
|
47
|
+
"user-agent": providerUserAgent,
|
|
48
|
+
},
|
|
49
|
+
signal,
|
|
50
|
+
});
|
|
51
|
+
if (!response.ok) {
|
|
52
|
+
throw await readCrtshError(response);
|
|
53
|
+
}
|
|
54
|
+
return parseProviderJsonBodyText(await readProviderTextBody(response, "crt.sh response"), {
|
|
55
|
+
emptyBody: [],
|
|
56
|
+
invalidJsonMessage: "crt.sh returned malformed JSON",
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function normalizeCertificate(record) {
|
|
61
|
+
return {
|
|
62
|
+
...record,
|
|
63
|
+
id: optionalInteger(record.id) ?? 0,
|
|
64
|
+
issuer_ca_id: optionalInteger(record.issuer_ca_id) ?? 0,
|
|
65
|
+
issuer_name: optionalString(record.issuer_name) ?? "",
|
|
66
|
+
common_name: optionalString(record.common_name) ?? "",
|
|
67
|
+
name_value: optionalString(record.name_value) ?? "",
|
|
68
|
+
not_before: optionalString(record.not_before) ?? "",
|
|
69
|
+
not_after: optionalString(record.not_after) ?? "",
|
|
70
|
+
serial_number: optionalString(record.serial_number) ?? "",
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Map a crt.sh error onto the runtime's status conventions. crt.sh serves HTML
|
|
75
|
+
* error pages when overloaded, so surface a short excerpt instead of the page.
|
|
76
|
+
* The search endpoint needs no credentials, so an authorization failure is not
|
|
77
|
+
* something reconnecting can fix.
|
|
78
|
+
*/
|
|
79
|
+
export async function readCrtshError(response) {
|
|
80
|
+
const text = (await readProviderErrorTextBody(response, "crt.sh error response")).trim();
|
|
81
|
+
const message = text.slice(0, 200) || `crt.sh request failed with HTTP ${response.status}`;
|
|
82
|
+
const status = response.status;
|
|
83
|
+
return new ProviderRequestError(status, message, withRetryAfterSeconds(response, {}), status === 429 ? "rate_limited" : "provider_error");
|
|
84
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
const service = "eastmoney_miaoxiang";
|
|
4
|
+
function responseSchema(data) {
|
|
5
|
+
return {
|
|
6
|
+
...s.looseObject("The original Miaoxiang response, including provider-defined fields.", {
|
|
7
|
+
status: s.integer("The global API status; zero indicates success."),
|
|
8
|
+
message: s.string("The provider's response message."),
|
|
9
|
+
data: s.nullable(data),
|
|
10
|
+
}),
|
|
11
|
+
required: ["status"],
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export const eastmoneyMiaoxiangActions = [
|
|
15
|
+
defineProviderAction(service, {
|
|
16
|
+
name: "query_financial_data",
|
|
17
|
+
description: "Query Eastmoney Miaoxiang market, financial, company and relationship data using natural language. Specify securities, indicators and a bounded date range to keep results manageable.",
|
|
18
|
+
operationType: "read",
|
|
19
|
+
requiredScopes: [],
|
|
20
|
+
inputSchema: s.requiredObject("Financial data query parameters.", {
|
|
21
|
+
toolQuery: s.nonEmptyString("A natural-language question specifying securities, indicators and dates.", {}),
|
|
22
|
+
}),
|
|
23
|
+
outputSchema: responseSchema(s.looseObject("Financial data and query metadata.", {
|
|
24
|
+
questionId: s.string("The unique identifier for this query."),
|
|
25
|
+
dataTableDTOList: s.array("Standardized indicator tables.", s.looseObject("One security indicator table.", {
|
|
26
|
+
code: s.string("The security code including its market suffix."),
|
|
27
|
+
entityName: s.string("The security name."),
|
|
28
|
+
title: s.string("The indicator table title."),
|
|
29
|
+
table: s.looseObject("Indicator values keyed by indicator code, with time or dimension values under headName."),
|
|
30
|
+
nameMap: s.looseObject("Mappings from indicator codes to display names."),
|
|
31
|
+
indicatorOrder: s.array("The display order of indicator columns.", s.string("An indicator code.")),
|
|
32
|
+
})),
|
|
33
|
+
rawDataTableDTOList: s.array("Original unprocessed indicator tables.", s.looseObject("An original indicator table.")),
|
|
34
|
+
condition: s.looseObject("The interpreted query conditions."),
|
|
35
|
+
entityTagDTOList: s.array("Distinct security entities involved in the query.", s.looseObject("A security entity and its attributes.")),
|
|
36
|
+
})),
|
|
37
|
+
}),
|
|
38
|
+
defineProviderAction(service, {
|
|
39
|
+
name: "search_news",
|
|
40
|
+
description: "Search Eastmoney Miaoxiang financial news, announcements, research reports and policies using a natural-language question.",
|
|
41
|
+
operationType: "read",
|
|
42
|
+
requiredScopes: [],
|
|
43
|
+
inputSchema: s.requiredObject("Financial news search parameters.", {
|
|
44
|
+
query: s.nonEmptyString("The financial topic, security, event or date range to search.", {}),
|
|
45
|
+
}),
|
|
46
|
+
outputSchema: responseSchema(s.looseObject("The search response, preserving source metadata and provider-defined content.", {
|
|
47
|
+
data: s.looseObject("Search results and interpreted query metadata.", {
|
|
48
|
+
llmSearchResponse: s.looseObject("The financial search result payload.", {
|
|
49
|
+
data: s.array("Relevant financial information items.", s.looseObject("One news, announcement or research result.", {
|
|
50
|
+
title: s.string("The information title."),
|
|
51
|
+
content: s.string("The information content."),
|
|
52
|
+
date: s.string("The source publication date."),
|
|
53
|
+
insName: s.string("The publishing institution."),
|
|
54
|
+
informationType: s.string("The provider's information category."),
|
|
55
|
+
})),
|
|
56
|
+
}),
|
|
57
|
+
}),
|
|
58
|
+
})),
|
|
59
|
+
}),
|
|
60
|
+
defineProviderAction(service, {
|
|
61
|
+
name: "screen_stocks",
|
|
62
|
+
description: "Screen securities by natural-language market or financial conditions, or find sector and index constituents. Preserve the same keyword while paging; result formats depend on the interpreted query.",
|
|
63
|
+
operationType: "read",
|
|
64
|
+
requiredScopes: [],
|
|
65
|
+
inputSchema: s.object("Stock screening parameters.", {
|
|
66
|
+
keyword: s.nonEmptyString("Natural-language screening conditions or a constituent query.", {}),
|
|
67
|
+
pageNo: s.integer("The page number, starting at one. Defaults to 1.", {
|
|
68
|
+
minimum: 1,
|
|
69
|
+
default: 1,
|
|
70
|
+
}),
|
|
71
|
+
pageSize: s.integer("The requested number of results per page. Defaults to 20.", {
|
|
72
|
+
minimum: 1,
|
|
73
|
+
default: 20,
|
|
74
|
+
}),
|
|
75
|
+
}, { optional: ["pageNo", "pageSize"] }),
|
|
76
|
+
outputSchema: responseSchema(s.looseObject("Screening business status and results.", {
|
|
77
|
+
code: s.string("The screening business status; 100 indicates successful parsing."),
|
|
78
|
+
msg: s.string("The screening business message."),
|
|
79
|
+
data: s.looseObject("Screening results, conditions and provider-specific result variants.", {
|
|
80
|
+
resultType: s.integer("The result format; 2000 denotes standard stock screening."),
|
|
81
|
+
result: s.looseObject("A standard screening result table.", {
|
|
82
|
+
total: s.integer("The total number of matches."),
|
|
83
|
+
totalRecordCount: s.integer("The provider's total record count."),
|
|
84
|
+
columns: s.array("Column definitions mapping display names to row keys.", s.looseObject("A column definition and its metadata.")),
|
|
85
|
+
dataList: s.array("Rows matching the screening conditions.", s.looseObject("A security row keyed by the returned column definitions.")),
|
|
86
|
+
}),
|
|
87
|
+
allResults: s.looseObject("An alternative full-results wrapper returned by the provider."),
|
|
88
|
+
partialResults: s.string("A partial-result Markdown table when returned by the provider."),
|
|
89
|
+
parserText: s.string("The interpreted screening conditions."),
|
|
90
|
+
responseConditionList: s.array("Per-condition match statistics.", s.looseObject("One interpreted condition and its match count.")),
|
|
91
|
+
totalCondition: s.looseObject("Combined screening conditions and match count."),
|
|
92
|
+
}),
|
|
93
|
+
})),
|
|
94
|
+
}),
|
|
95
|
+
];
|
|
@@ -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;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { optionalRecord, optionalRawString } from "../../core/cast.js";
|
|
2
|
+
import { requiredInputString, ProviderRequestError, runProviderRequest, defineApiKeyProviderExecutors, defineProviderProxy, mapProviderActionHandlers, readProviderProxyErrorMessage, withRetryAfterSeconds, } from "../provider-runtime.js";
|
|
3
|
+
import { eastmoneyMiaoxiangActions } from "./actions.js";
|
|
4
|
+
const baseUrl = "https://mkapi2.dfcfs.com/finskillshub";
|
|
5
|
+
const defaultHeaders = { accept: "application/json", "content-type": "application/json" };
|
|
6
|
+
const routes = {
|
|
7
|
+
query_financial_data: "/api/claw/query",
|
|
8
|
+
search_news: "/api/claw/news-search",
|
|
9
|
+
screen_stocks: "/api/claw/stock-screen",
|
|
10
|
+
};
|
|
11
|
+
const handlers = mapProviderActionHandlers("eastmoney_miaoxiang", eastmoneyMiaoxiangActions, (action) => async (dataInput, context) => {
|
|
12
|
+
const route = routes[action.name];
|
|
13
|
+
const body = { ...dataInput };
|
|
14
|
+
for (const key of ["query", "keyword", "toolQuery"])
|
|
15
|
+
if (typeof body[key] === "string")
|
|
16
|
+
body[key] = requiredInputString(body[key], key);
|
|
17
|
+
if (action.name === "screen_stocks") {
|
|
18
|
+
body.pageNo ??= 1;
|
|
19
|
+
body.pageSize ??= 20;
|
|
20
|
+
}
|
|
21
|
+
const apiKey = requiredInputString(context.apiKey, "API Key");
|
|
22
|
+
return runProviderRequest({ signal: context.signal, label: "Eastmoney Miaoxiang" }, async (signal) => {
|
|
23
|
+
const response = await context.fetcher(`${baseUrl}${route}`, {
|
|
24
|
+
method: "POST",
|
|
25
|
+
headers: { ...defaultHeaders, apikey: apiKey },
|
|
26
|
+
body: JSON.stringify(body),
|
|
27
|
+
signal,
|
|
28
|
+
});
|
|
29
|
+
const text = await response.text();
|
|
30
|
+
let payload;
|
|
31
|
+
try {
|
|
32
|
+
payload = JSON.parse(text);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
payload = undefined;
|
|
36
|
+
}
|
|
37
|
+
const envelope = optionalRecord(payload);
|
|
38
|
+
if (!response.ok || !envelope || envelope.status !== 0 || envelope.success === false) {
|
|
39
|
+
const detail = optionalRawString(envelope?.message) || "Invalid or unsuccessful response";
|
|
40
|
+
const code = envelope?.status == null ? "unknown" : String(envelope.status);
|
|
41
|
+
throw new ProviderRequestError(response.ok ? 502 : response.status, `Eastmoney Miaoxiang request failed (HTTP ${response.status}, status ${code}): ${detail}`
|
|
42
|
+
.split(apiKey)
|
|
43
|
+
.join("[REDACTED]"), undefined, response.status === 429 ? "rate_limited" : "provider_error");
|
|
44
|
+
}
|
|
45
|
+
if (action.name === "screen_stocks") {
|
|
46
|
+
const data = optionalRecord(envelope.data);
|
|
47
|
+
if (data?.code != null && String(data.code) !== "100") {
|
|
48
|
+
const detail = optionalRawString(data.msg) || "Screening query could not be parsed";
|
|
49
|
+
throw new ProviderRequestError(502, `Eastmoney Miaoxiang screening failed (${String(data.code)}): ${detail}`.split(apiKey).join("[REDACTED]"), undefined, "provider_error");
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return envelope;
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
export const executors = defineApiKeyProviderExecutors("eastmoney_miaoxiang", handlers, {
|
|
56
|
+
skipDnsValidation: true,
|
|
57
|
+
});
|
|
58
|
+
export const credentialValidators = {
|
|
59
|
+
async apiKey(input) {
|
|
60
|
+
requiredInputString(input.apiKey, "API Key");
|
|
61
|
+
return {
|
|
62
|
+
profile: { displayName: "Eastmoney Miaoxiang Skills API Key" },
|
|
63
|
+
grantedScopes: [],
|
|
64
|
+
metadata: { apiBaseUrl: baseUrl, validationMode: "local_non_empty_key" },
|
|
65
|
+
};
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
export const proxy = defineProviderProxy({
|
|
69
|
+
service: "eastmoney_miaoxiang",
|
|
70
|
+
baseUrl,
|
|
71
|
+
auth: { type: "api_key_header", name: "apikey" },
|
|
72
|
+
skipDnsValidation: true,
|
|
73
|
+
customizeRequest({ headers }) {
|
|
74
|
+
for (const [name, value] of Object.entries({ accept: "application/json", "content-type": "application/json" }))
|
|
75
|
+
if (!headers.has(name))
|
|
76
|
+
headers.set(name, value);
|
|
77
|
+
},
|
|
78
|
+
async readError(response) {
|
|
79
|
+
return new ProviderRequestError(response.status, await readProviderProxyErrorMessage(response, "Provider request failed"), withRetryAfterSeconds(response), response.status === 429 ? "rate_limited" : "provider_error");
|
|
80
|
+
},
|
|
81
|
+
});
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
import { bounds, dateFields, fields, pagination, resultSchema, videoPeriodFilter } from "./schemas.js";
|
|
4
|
+
export const contentActions = [
|
|
5
|
+
defineProviderAction("fastmoss_mcp", {
|
|
6
|
+
name: "ad_data_overview",
|
|
7
|
+
operationType: "read",
|
|
8
|
+
requiredScopes: [],
|
|
9
|
+
description: "Read a video's advertising spend, ROAS and engagement over a date range.",
|
|
10
|
+
inputSchema: s.object("FastMoss request parameters.", { filter: videoPeriodFilter }, { required: ["filter"] }),
|
|
11
|
+
outputSchema: resultSchema,
|
|
12
|
+
}),
|
|
13
|
+
defineProviderAction("fastmoss_mcp", {
|
|
14
|
+
name: "ad_search",
|
|
15
|
+
operationType: "read",
|
|
16
|
+
requiredScopes: [],
|
|
17
|
+
description: "Search advertisements by category, spend, ROAS and activity dates.",
|
|
18
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
19
|
+
filter: s.object("Filter parameters.", {
|
|
20
|
+
ad_type: s.integer("Ad type: 1 TikTok Shop commerce ad, 2 non-commerce/planting ad."),
|
|
21
|
+
category_l1_id: s.integer("Level 1 category ID."),
|
|
22
|
+
category_l2_id: s.integer("Level 2 category ID."),
|
|
23
|
+
category_l3_id: s.integer("Level 3 category ID."),
|
|
24
|
+
estimated_ad_spend_range: s.object("Estimated advertising spend range.", bounds, { required: [] }),
|
|
25
|
+
keywords: fields.keywords,
|
|
26
|
+
last_seen_ad_date_range: s.object("Last observed advertising date range.", dateFields, { required: [] }),
|
|
27
|
+
observed_active_days_range: s.object("Observed active-day count range.", bounds, { required: [] }),
|
|
28
|
+
play_count_range: fields.play_count_range,
|
|
29
|
+
region: fields.region,
|
|
30
|
+
roas_range: s.object("Return on advertising spend range.", bounds, { required: [] }),
|
|
31
|
+
video_create_date_range: s.object("Video creation date range.", dateFields, { required: [] }),
|
|
32
|
+
}, { required: [] }),
|
|
33
|
+
...pagination,
|
|
34
|
+
}, { required: [] }),
|
|
35
|
+
outputSchema: resultSchema,
|
|
36
|
+
}),
|
|
37
|
+
defineProviderAction("fastmoss_mcp", {
|
|
38
|
+
name: "live_detail_analysis",
|
|
39
|
+
operationType: "read",
|
|
40
|
+
requiredScopes: [],
|
|
41
|
+
description: "Analyze a live session's audience and commerce performance.",
|
|
42
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
43
|
+
filter: s.object("Filter parameters.", { room_id: fields.room_id }, { required: ["room_id"] }),
|
|
44
|
+
lang: fields.lang,
|
|
45
|
+
}, { required: ["filter"] }),
|
|
46
|
+
outputSchema: resultSchema,
|
|
47
|
+
}),
|
|
48
|
+
defineProviderAction("fastmoss_mcp", {
|
|
49
|
+
name: "live_products_list",
|
|
50
|
+
operationType: "read",
|
|
51
|
+
requiredScopes: [],
|
|
52
|
+
description: "List products promoted in a live session.",
|
|
53
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
54
|
+
filter: s.object("Filter parameters.", {
|
|
55
|
+
room_id: fields.room_id,
|
|
56
|
+
category_id: fields.category_id,
|
|
57
|
+
seller_id: fields.seller_id,
|
|
58
|
+
}, { required: ["room_id"] }),
|
|
59
|
+
lang: fields.lang,
|
|
60
|
+
...pagination,
|
|
61
|
+
}, { required: ["filter"] }),
|
|
62
|
+
outputSchema: resultSchema,
|
|
63
|
+
}),
|
|
64
|
+
defineProviderAction("fastmoss_mcp", {
|
|
65
|
+
name: "live_search",
|
|
66
|
+
operationType: "read",
|
|
67
|
+
requiredScopes: [],
|
|
68
|
+
description: "Search live sessions by start time, audience and commerce performance.",
|
|
69
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
70
|
+
filter: s.object("Filter parameters.", {
|
|
71
|
+
creator_category: s.integer("Creator category ID."),
|
|
72
|
+
follower_range: s.object("Follower count range.", bounds, { required: [] }),
|
|
73
|
+
live_type: s.integer("Live type: 1 shop live, 2 creator live."),
|
|
74
|
+
product_category: s.integer("Product category ID."),
|
|
75
|
+
region: fields.region,
|
|
76
|
+
room_id: fields.room_id,
|
|
77
|
+
sold_range: s.object("Units sold range.", bounds, { required: [] }),
|
|
78
|
+
start_time: s.integer("Live-session start time."),
|
|
79
|
+
viewer_range: s.object("Viewer count range.", bounds, { required: [] }),
|
|
80
|
+
}, { required: ["start_time"] }),
|
|
81
|
+
keywords: fields.keywords,
|
|
82
|
+
lang: fields.lang,
|
|
83
|
+
...pagination,
|
|
84
|
+
}, { required: [] }),
|
|
85
|
+
outputSchema: resultSchema,
|
|
86
|
+
}),
|
|
87
|
+
defineProviderAction("fastmoss_mcp", {
|
|
88
|
+
name: "video_data_trends",
|
|
89
|
+
operationType: "read",
|
|
90
|
+
requiredScopes: [],
|
|
91
|
+
description: "Read a video's performance trends over a date range.",
|
|
92
|
+
inputSchema: s.object("FastMoss request parameters.", { filter: videoPeriodFilter }, { required: ["filter"] }),
|
|
93
|
+
outputSchema: resultSchema,
|
|
94
|
+
}),
|
|
95
|
+
defineProviderAction("fastmoss_mcp", {
|
|
96
|
+
name: "video_detail_analysis",
|
|
97
|
+
operationType: "read",
|
|
98
|
+
requiredScopes: [],
|
|
99
|
+
description: "Analyze a video's engagement and commerce performance.",
|
|
100
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
101
|
+
filter: s.object("Filter parameters.", { video_id: fields.video_id }, { required: ["video_id"] }),
|
|
102
|
+
lang: fields.lang,
|
|
103
|
+
...pagination,
|
|
104
|
+
}, { required: ["filter"] }),
|
|
105
|
+
outputSchema: resultSchema,
|
|
106
|
+
}),
|
|
107
|
+
defineProviderAction("fastmoss_mcp", {
|
|
108
|
+
name: "video_script_info",
|
|
109
|
+
operationType: "read",
|
|
110
|
+
requiredScopes: [],
|
|
111
|
+
description: "Read the script or transcript of a video.",
|
|
112
|
+
inputSchema: s.object("FastMoss request parameters.", { video_id: fields.video_id }, { required: ["video_id"] }),
|
|
113
|
+
outputSchema: resultSchema,
|
|
114
|
+
}),
|
|
115
|
+
defineProviderAction("fastmoss_mcp", {
|
|
116
|
+
name: "video_search",
|
|
117
|
+
operationType: "read",
|
|
118
|
+
requiredScopes: [],
|
|
119
|
+
description: "Search videos by creation time, creator, engagement and commerce activity.",
|
|
120
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
121
|
+
filter: s.object("Filter parameters.", {
|
|
122
|
+
create_time_range: fields.create_time_range,
|
|
123
|
+
creator_category_id: fields.creator_category_id,
|
|
124
|
+
creator_uid: s.integer("Creator UID."),
|
|
125
|
+
creator_unique_id: s.string("Creator handle."),
|
|
126
|
+
digg_count_range: s.object("Like count range.", bounds, { required: [] }),
|
|
127
|
+
follower_count_range: fields.follower_count_range,
|
|
128
|
+
interact_rate_range: s.object("Engagement rate range.", bounds, { required: [] }),
|
|
129
|
+
is_ecommerce: s.boolean("Whether the video promotes products."),
|
|
130
|
+
play_count_range: fields.play_count_range,
|
|
131
|
+
product_category_id: fields.product_category_id,
|
|
132
|
+
region: fields.region,
|
|
133
|
+
}, { required: ["create_time_range"] }),
|
|
134
|
+
keywords: fields.keywords,
|
|
135
|
+
lang: fields.lang,
|
|
136
|
+
...pagination,
|
|
137
|
+
}, { required: [] }),
|
|
138
|
+
outputSchema: resultSchema,
|
|
139
|
+
}),
|
|
140
|
+
];
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
import { bounds, creatorFilter, dateFields, fields, pagination, periodFields, rankingFields, resultSchema, } from "./schemas.js";
|
|
4
|
+
export const creatorActions = [
|
|
5
|
+
defineProviderAction("fastmoss_mcp", {
|
|
6
|
+
name: "creator_cargo_summary",
|
|
7
|
+
operationType: "read",
|
|
8
|
+
requiredScopes: [],
|
|
9
|
+
description: "Read a creator's commerce performance summary.",
|
|
10
|
+
inputSchema: s.object("FastMoss request parameters.", { filter: creatorFilter }, { required: ["filter"] }),
|
|
11
|
+
outputSchema: resultSchema,
|
|
12
|
+
}),
|
|
13
|
+
defineProviderAction("fastmoss_mcp", {
|
|
14
|
+
name: "creator_data_trends",
|
|
15
|
+
operationType: "read",
|
|
16
|
+
requiredScopes: [],
|
|
17
|
+
description: "Read a creator's metric trends over a date range.",
|
|
18
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
19
|
+
filter: s.object("Filter parameters.", {
|
|
20
|
+
uid: fields.uid,
|
|
21
|
+
...dateFields,
|
|
22
|
+
date_type: s.integer("Date period selector."),
|
|
23
|
+
field_type: s.string("Metric: follower_change/play/like/comment/collect_count/share/units_sold/gmv; video_*=video commerce, live_*=live commerce, showcase_*=showcase commerce."),
|
|
24
|
+
}, { required: ["field_type", "uid"] }),
|
|
25
|
+
}, { required: ["filter"] }),
|
|
26
|
+
outputSchema: resultSchema,
|
|
27
|
+
}),
|
|
28
|
+
defineProviderAction("fastmoss_mcp", {
|
|
29
|
+
name: "creator_fans_distribution",
|
|
30
|
+
operationType: "read",
|
|
31
|
+
requiredScopes: [],
|
|
32
|
+
description: "Read a creator's audience demographics and distribution.",
|
|
33
|
+
inputSchema: s.object("FastMoss request parameters.", { filter: creatorFilter }, { required: ["filter"] }),
|
|
34
|
+
outputSchema: resultSchema,
|
|
35
|
+
}),
|
|
36
|
+
defineProviderAction("fastmoss_mcp", {
|
|
37
|
+
name: "creator_product_list",
|
|
38
|
+
operationType: "read",
|
|
39
|
+
requiredScopes: [],
|
|
40
|
+
description: "List products promoted by a creator and their sales performance.",
|
|
41
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
42
|
+
filter: s.object("Filter parameters.", {
|
|
43
|
+
uid: fields.uid,
|
|
44
|
+
time_range_days: s.string("Days: 7/14/28/90; recent=28; -1=cumulative."),
|
|
45
|
+
}, { required: ["uid"] }),
|
|
46
|
+
...pagination,
|
|
47
|
+
orderby: s.array("Sort options. Only the first sort rule takes effect. Fields: units_sold, gmv, commission_rate_percent.", s.unknown("An item accepted by the live FastMoss tool schema.")),
|
|
48
|
+
}, { required: ["filter"] }),
|
|
49
|
+
outputSchema: resultSchema,
|
|
50
|
+
}),
|
|
51
|
+
defineProviderAction("fastmoss_mcp", {
|
|
52
|
+
name: "creator_profile_overview",
|
|
53
|
+
operationType: "read",
|
|
54
|
+
requiredScopes: [],
|
|
55
|
+
description: "Read a creator's profile and account overview.",
|
|
56
|
+
inputSchema: s.object("FastMoss request parameters.", { filter: s.object("Filter parameters.", { uid: fields.uid, lang: fields.lang }, { required: ["uid"] }) }, { required: ["filter"] }),
|
|
57
|
+
outputSchema: resultSchema,
|
|
58
|
+
}),
|
|
59
|
+
defineProviderAction("fastmoss_mcp", {
|
|
60
|
+
name: "creator_rank_top_ecommerce",
|
|
61
|
+
operationType: "read",
|
|
62
|
+
requiredScopes: [],
|
|
63
|
+
description: "Rank commerce creators for a completed period.",
|
|
64
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
65
|
+
filter: s.object("Filter parameters.", {
|
|
66
|
+
...rankingFields,
|
|
67
|
+
region: fields.region,
|
|
68
|
+
creator_category_id: fields.creator_category_id,
|
|
69
|
+
product_category_id: fields.product_category_id,
|
|
70
|
+
account_type: s.integer("Account type filter."),
|
|
71
|
+
ecommerce_type: s.integer("Commerce type filter."),
|
|
72
|
+
}, { required: ["date_type", "date_value"] }),
|
|
73
|
+
...pagination,
|
|
74
|
+
}, { required: [] }),
|
|
75
|
+
outputSchema: resultSchema,
|
|
76
|
+
}),
|
|
77
|
+
defineProviderAction("fastmoss_mcp", {
|
|
78
|
+
name: "creator_rank_top_growth",
|
|
79
|
+
operationType: "read",
|
|
80
|
+
requiredScopes: [],
|
|
81
|
+
description: "Rank creators by growth for a completed period.",
|
|
82
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
83
|
+
filter: s.object("Filter parameters.", {
|
|
84
|
+
...rankingFields,
|
|
85
|
+
region: fields.region,
|
|
86
|
+
category_id: fields.category_id,
|
|
87
|
+
verify_type: s.integer("Verification type: 1 regular creators, 2 Blue V creators."),
|
|
88
|
+
}, { required: ["date_type", "date_value"] }),
|
|
89
|
+
...pagination,
|
|
90
|
+
}, { required: [] }),
|
|
91
|
+
outputSchema: resultSchema,
|
|
92
|
+
}),
|
|
93
|
+
defineProviderAction("fastmoss_mcp", {
|
|
94
|
+
name: "creator_rank_top_potential",
|
|
95
|
+
operationType: "read",
|
|
96
|
+
requiredScopes: [],
|
|
97
|
+
description: "Rank promising creators by category and audience for a completed period.",
|
|
98
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
99
|
+
filter: s.object("Filter parameters.", {
|
|
100
|
+
...rankingFields,
|
|
101
|
+
category_path: fields.category_path,
|
|
102
|
+
creator_category_id: fields.creator_category_id,
|
|
103
|
+
region: fields.region,
|
|
104
|
+
ecommerce_type: s.integer("Commerce type filter."),
|
|
105
|
+
follower_age_type: s.looseObject("Audience age filter accepted by FastMoss."),
|
|
106
|
+
follower_count_range: fields.follower_count_range,
|
|
107
|
+
follower_gender_type: s.integer("Audience gender filter."),
|
|
108
|
+
}, { required: ["date_type", "date_value"] }),
|
|
109
|
+
...pagination,
|
|
110
|
+
}, { required: [] }),
|
|
111
|
+
outputSchema: resultSchema,
|
|
112
|
+
}),
|
|
113
|
+
defineProviderAction("fastmoss_mcp", {
|
|
114
|
+
name: "creator_search",
|
|
115
|
+
operationType: "read",
|
|
116
|
+
requiredScopes: [],
|
|
117
|
+
description: "Search creators by identity, category, audience and commerce activity.",
|
|
118
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
119
|
+
filter: s.object("Filter parameters.", {
|
|
120
|
+
category_id: fields.category_id,
|
|
121
|
+
creator_type: s.integer("Creator type: 1 personal, 2 shop."),
|
|
122
|
+
follower_age_type: s.integer("Follower age: 1=18-24, 2=25-34, 3=35+."),
|
|
123
|
+
follower_gender_type: s.integer("Audience gender filter."),
|
|
124
|
+
follower_range: s.object("Follower count range.", bounds, { required: [] }),
|
|
125
|
+
is_ecommerce_creator: s.boolean("Whether the creator participates in commerce."),
|
|
126
|
+
is_mcn_creator: s.boolean("Whether the creator belongs to an MCN agency."),
|
|
127
|
+
region: fields.region,
|
|
128
|
+
uid: fields.uid,
|
|
129
|
+
unique_id: s.string("Creator handle."),
|
|
130
|
+
verify_type: s.integer("Verification type: 1 regular creators, 2 Blue V creators."),
|
|
131
|
+
}, { required: [] }),
|
|
132
|
+
keywords: fields.keywords,
|
|
133
|
+
...pagination,
|
|
134
|
+
}, { required: [] }),
|
|
135
|
+
outputSchema: resultSchema,
|
|
136
|
+
}),
|
|
137
|
+
defineProviderAction("fastmoss_mcp", {
|
|
138
|
+
name: "creator_video_analysis",
|
|
139
|
+
operationType: "read",
|
|
140
|
+
requiredScopes: [],
|
|
141
|
+
description: "Analyze a creator's videos over a date range.",
|
|
142
|
+
inputSchema: s.object("FastMoss request parameters.", {
|
|
143
|
+
filter: s.object("Filter parameters.", {
|
|
144
|
+
uid: fields.uid,
|
|
145
|
+
...periodFields,
|
|
146
|
+
orderby: pagination.orderby,
|
|
147
|
+
page: s.integer("Page number. Default 1, max 10."),
|
|
148
|
+
pagesize: s.integer("Page size. Default 10, max 10."),
|
|
149
|
+
type: s.string("Video analysis type."),
|
|
150
|
+
}, { required: ["uid"] }),
|
|
151
|
+
}, { required: ["filter"] }),
|
|
152
|
+
outputSchema: resultSchema,
|
|
153
|
+
}),
|
|
154
|
+
];
|