@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { compactObject, optionalBoolean, optionalInteger, optionalNumber, optionalRecord, optionalString, } from "../../core/cast.js";
|
|
2
2
|
import { assertPublicHttpUrl } from "../../core/request.js";
|
|
3
|
-
import { providerFetch, ProviderRequestError, providerUserAgent } from "../provider-runtime.js";
|
|
3
|
+
import { providerFetch, ProviderRequestError, providerUserAgent, providerInputError, providerResponseError, } from "../provider-runtime.js";
|
|
4
4
|
export const clickupApiOrigin = "https://api.clickup.com";
|
|
5
5
|
const clickupApiV2BaseUrl = `${clickupApiOrigin}/api/v2`;
|
|
6
6
|
const clickupApiV3BaseUrl = `${clickupApiOrigin}/api/v3`;
|
|
@@ -85,7 +85,7 @@ export const clickupActionHandlers = {
|
|
|
85
85
|
return asStringId(parsedCandidate.id) === workspaceId;
|
|
86
86
|
});
|
|
87
87
|
if (!workspace) {
|
|
88
|
-
throw
|
|
88
|
+
throw providerInputError(`unknown clickup workspace: ${workspaceId}`);
|
|
89
89
|
}
|
|
90
90
|
return {
|
|
91
91
|
members: readArrayField(workspace, "members"),
|
|
@@ -1016,7 +1016,7 @@ async function requestClickupJson(input) {
|
|
|
1016
1016
|
}
|
|
1017
1017
|
catch (error) {
|
|
1018
1018
|
const message = error instanceof Error ? error.message : String(error);
|
|
1019
|
-
throw
|
|
1019
|
+
throw providerResponseError(`ClickUp request failed: ${message}`);
|
|
1020
1020
|
}
|
|
1021
1021
|
const objectPayload = await parseClickupJsonResponse(response, "ClickUp response");
|
|
1022
1022
|
if (!response.ok) {
|
|
@@ -1042,11 +1042,11 @@ async function parseClickupJsonResponse(response, label) {
|
|
|
1042
1042
|
}
|
|
1043
1043
|
catch (error) {
|
|
1044
1044
|
const message = error instanceof Error ? error.message : String(error);
|
|
1045
|
-
throw
|
|
1045
|
+
throw providerResponseError(`${label} parsing failed: ${message}`);
|
|
1046
1046
|
}
|
|
1047
1047
|
const objectPayload = optionalRecord(payload);
|
|
1048
1048
|
if (!objectPayload) {
|
|
1049
|
-
throw
|
|
1049
|
+
throw providerResponseError(`${label} parsing failed: invalid JSON shape`);
|
|
1050
1050
|
}
|
|
1051
1051
|
return objectPayload;
|
|
1052
1052
|
}
|
|
@@ -1054,17 +1054,17 @@ function mapClickupError(input) {
|
|
|
1054
1054
|
const message = readErrorMessage(input.payload, input.status);
|
|
1055
1055
|
if (input.status === 401) {
|
|
1056
1056
|
if (input.mode === "validate") {
|
|
1057
|
-
return
|
|
1057
|
+
return providerInputError(message);
|
|
1058
1058
|
}
|
|
1059
|
-
return
|
|
1059
|
+
return new ProviderRequestError(401, message);
|
|
1060
1060
|
}
|
|
1061
1061
|
if (input.status === 429) {
|
|
1062
|
-
return
|
|
1062
|
+
return new ProviderRequestError(429, message);
|
|
1063
1063
|
}
|
|
1064
1064
|
if (input.status === 400 || (input.status === 404 && input.notFoundAsInvalidInput)) {
|
|
1065
|
-
return
|
|
1065
|
+
return providerInputError(message);
|
|
1066
1066
|
}
|
|
1067
|
-
return
|
|
1067
|
+
return providerResponseError(message);
|
|
1068
1068
|
}
|
|
1069
1069
|
function readErrorMessage(payload, status) {
|
|
1070
1070
|
return (optionalString(payload.err) ??
|
|
@@ -1075,7 +1075,7 @@ function readErrorMessage(payload, status) {
|
|
|
1075
1075
|
function readObjectField(payload, key) {
|
|
1076
1076
|
const value = optionalRecord(payload[key]);
|
|
1077
1077
|
if (!value) {
|
|
1078
|
-
throw
|
|
1078
|
+
throw providerResponseError(`ClickUp response is missing ${key}`);
|
|
1079
1079
|
}
|
|
1080
1080
|
return value;
|
|
1081
1081
|
}
|
|
@@ -1085,7 +1085,7 @@ function readWrappedObject(payload, key) {
|
|
|
1085
1085
|
function readArrayField(payload, key) {
|
|
1086
1086
|
const value = payload[key];
|
|
1087
1087
|
if (!Array.isArray(value)) {
|
|
1088
|
-
throw
|
|
1088
|
+
throw providerResponseError(`ClickUp response is missing ${key}`);
|
|
1089
1089
|
}
|
|
1090
1090
|
return value;
|
|
1091
1091
|
}
|
|
@@ -1097,7 +1097,7 @@ function normalizeTaskTemplates(templates) {
|
|
|
1097
1097
|
const parsed = optionalRecord(template);
|
|
1098
1098
|
const id = asStringId(parsed?.id);
|
|
1099
1099
|
if (!parsed || !id) {
|
|
1100
|
-
throw
|
|
1100
|
+
throw providerResponseError("ClickUp template entry is invalid");
|
|
1101
1101
|
}
|
|
1102
1102
|
return {
|
|
1103
1103
|
...parsed,
|
|
@@ -1133,7 +1133,7 @@ function readListLikeObject(payload) {
|
|
|
1133
1133
|
if (looksLikeList(payload)) {
|
|
1134
1134
|
return normalizeListLikeObject(payload);
|
|
1135
1135
|
}
|
|
1136
|
-
throw
|
|
1136
|
+
throw providerResponseError("ClickUp response is missing list");
|
|
1137
1137
|
}
|
|
1138
1138
|
function looksLikeList(payload) {
|
|
1139
1139
|
return asStringId(payload.id) !== undefined && optionalString(payload.name) !== undefined;
|
|
@@ -1260,7 +1260,7 @@ function buildListTemplateOptions(value) {
|
|
|
1260
1260
|
function buildSetCustomFieldValueBody(input) {
|
|
1261
1261
|
const value = input.value;
|
|
1262
1262
|
if (value === undefined) {
|
|
1263
|
-
throw
|
|
1263
|
+
throw providerInputError("value is required");
|
|
1264
1264
|
}
|
|
1265
1265
|
return compactObject({
|
|
1266
1266
|
value,
|
|
@@ -1274,7 +1274,7 @@ function buildCreateChecklistBody(input) {
|
|
|
1274
1274
|
}
|
|
1275
1275
|
function buildUpdateChecklistBody(input) {
|
|
1276
1276
|
if (optionalString(input.name) === undefined && optionalInteger(input.position) === undefined) {
|
|
1277
|
-
throw
|
|
1277
|
+
throw providerInputError("at least one writable field is required");
|
|
1278
1278
|
}
|
|
1279
1279
|
return compactObject({
|
|
1280
1280
|
name: optionalString(input.name),
|
|
@@ -1292,7 +1292,7 @@ function buildUpdateChecklistItemBody(input) {
|
|
|
1292
1292
|
input.assignee === undefined &&
|
|
1293
1293
|
optionalBoolean(input.resolved) === undefined &&
|
|
1294
1294
|
input.parent === undefined) {
|
|
1295
|
-
throw
|
|
1295
|
+
throw providerInputError("at least one writable field is required");
|
|
1296
1296
|
}
|
|
1297
1297
|
return compactObject({
|
|
1298
1298
|
name: optionalString(input.name),
|
|
@@ -1322,7 +1322,7 @@ async function resolveClickupAttachmentSource(input, fetcher) {
|
|
|
1322
1322
|
const contentBase64 = optionalString(input.contentBase64);
|
|
1323
1323
|
const providedSources = [url, contentText, contentBase64].filter((value) => value !== undefined).length;
|
|
1324
1324
|
if (providedSources !== 1) {
|
|
1325
|
-
throw
|
|
1325
|
+
throw providerInputError("exactly one attachment source field is required");
|
|
1326
1326
|
}
|
|
1327
1327
|
if (url) {
|
|
1328
1328
|
const response = await fetchPublicAttachmentUrl(fetcher, url);
|
|
@@ -1340,7 +1340,7 @@ async function resolveClickupAttachmentSource(input, fetcher) {
|
|
|
1340
1340
|
};
|
|
1341
1341
|
}
|
|
1342
1342
|
if (contentBase64 === undefined) {
|
|
1343
|
-
throw
|
|
1343
|
+
throw providerInputError("attachment source is required");
|
|
1344
1344
|
}
|
|
1345
1345
|
return {
|
|
1346
1346
|
bytes: decodeBase64AttachmentContent(contentBase64),
|
|
@@ -1354,7 +1354,7 @@ async function fetchPublicAttachmentUrl(fetcher, url) {
|
|
|
1354
1354
|
const timeoutPromise = new Promise((_, reject) => {
|
|
1355
1355
|
timeoutHandle = setTimeout(() => {
|
|
1356
1356
|
controller.abort();
|
|
1357
|
-
reject(
|
|
1357
|
+
reject(new ProviderRequestError(504, "attachment source download timed out"));
|
|
1358
1358
|
}, attachmentDownloadTimeoutMs);
|
|
1359
1359
|
});
|
|
1360
1360
|
try {
|
|
@@ -1382,13 +1382,13 @@ async function fetchPublicAttachmentUrl(fetcher, url) {
|
|
|
1382
1382
|
currentUrl = assertPublicClickupAttachmentUrl(new URL(location, currentUrl).toString());
|
|
1383
1383
|
}
|
|
1384
1384
|
if (!response) {
|
|
1385
|
-
throw
|
|
1385
|
+
throw providerResponseError("attachment source download failed");
|
|
1386
1386
|
}
|
|
1387
1387
|
if ([301, 302, 303, 307, 308].includes(response.status)) {
|
|
1388
|
-
throw
|
|
1388
|
+
throw providerResponseError("attachment source redirected too many times");
|
|
1389
1389
|
}
|
|
1390
1390
|
if (!response.ok) {
|
|
1391
|
-
throw
|
|
1391
|
+
throw new ProviderRequestError(response.status, `failed to fetch attachment source: ${response.status}`);
|
|
1392
1392
|
}
|
|
1393
1393
|
return {
|
|
1394
1394
|
bytes: await Promise.race([readAttachmentResponseBytes(response), timeoutPromise]),
|
|
@@ -1403,14 +1403,14 @@ function assertPublicClickupAttachmentUrl(value) {
|
|
|
1403
1403
|
return assertPublicHttpUrl(value, {
|
|
1404
1404
|
fieldName: "url",
|
|
1405
1405
|
createError(message) {
|
|
1406
|
-
return
|
|
1406
|
+
return providerInputError(message);
|
|
1407
1407
|
},
|
|
1408
1408
|
});
|
|
1409
1409
|
}
|
|
1410
1410
|
async function readAttachmentResponseBytes(response) {
|
|
1411
1411
|
const contentLength = parseContentLength(response.headers.get("content-length"));
|
|
1412
1412
|
if (contentLength != null && contentLength > maxAttachmentBytes) {
|
|
1413
|
-
throw
|
|
1413
|
+
throw providerInputError(`attachment source exceeds ${maxAttachmentBytes} bytes`);
|
|
1414
1414
|
}
|
|
1415
1415
|
const body = response.body;
|
|
1416
1416
|
if (body == null) {
|
|
@@ -1428,7 +1428,7 @@ async function readAttachmentResponseBytes(response) {
|
|
|
1428
1428
|
total += value.byteLength;
|
|
1429
1429
|
if (total > maxAttachmentBytes) {
|
|
1430
1430
|
await reader.cancel();
|
|
1431
|
-
throw
|
|
1431
|
+
throw providerInputError(`attachment source exceeds ${maxAttachmentBytes} bytes`);
|
|
1432
1432
|
}
|
|
1433
1433
|
chunks.push(value);
|
|
1434
1434
|
}
|
|
@@ -1451,11 +1451,11 @@ function parseContentLength(value) {
|
|
|
1451
1451
|
function decodeBase64AttachmentContent(contentBase64) {
|
|
1452
1452
|
const normalizedContent = contentBase64.trim();
|
|
1453
1453
|
if (normalizedContent !== "" && normalizedContent.length % 4 !== 0) {
|
|
1454
|
-
throw
|
|
1454
|
+
throw providerInputError("contentBase64 must be valid base64");
|
|
1455
1455
|
}
|
|
1456
1456
|
const bytes = Buffer.from(normalizedContent, "base64");
|
|
1457
1457
|
if (bytes.toString("base64") !== normalizedContent) {
|
|
1458
|
-
throw
|
|
1458
|
+
throw providerInputError("contentBase64 must be valid base64");
|
|
1459
1459
|
}
|
|
1460
1460
|
return Uint8Array.from(bytes);
|
|
1461
1461
|
}
|
|
@@ -1512,7 +1512,7 @@ function buildTaskCommentsQuery(input) {
|
|
|
1512
1512
|
const hasStart = optionalInteger(input.start) !== undefined;
|
|
1513
1513
|
const hasStartId = optionalString(input.startId) !== undefined;
|
|
1514
1514
|
if (hasStart !== hasStartId) {
|
|
1515
|
-
throw
|
|
1515
|
+
throw providerInputError("start and startId must be provided together");
|
|
1516
1516
|
}
|
|
1517
1517
|
return compactQuery({
|
|
1518
1518
|
start: optionalInteger(input.start),
|
|
@@ -1522,21 +1522,21 @@ function buildTaskCommentsQuery(input) {
|
|
|
1522
1522
|
function requireProviderString(value, key) {
|
|
1523
1523
|
const parsed = optionalString(value);
|
|
1524
1524
|
if (!parsed) {
|
|
1525
|
-
throw
|
|
1525
|
+
throw providerResponseError(`ClickUp response is missing ${key}`);
|
|
1526
1526
|
}
|
|
1527
1527
|
return parsed;
|
|
1528
1528
|
}
|
|
1529
1529
|
function requireProviderBoolean(value, key) {
|
|
1530
1530
|
const parsed = optionalBoolean(value);
|
|
1531
1531
|
if (parsed === undefined) {
|
|
1532
|
-
throw
|
|
1532
|
+
throw providerResponseError(`ClickUp response is missing ${key}`);
|
|
1533
1533
|
}
|
|
1534
1534
|
return parsed;
|
|
1535
1535
|
}
|
|
1536
1536
|
function requireProviderObject(value, key) {
|
|
1537
1537
|
const parsed = optionalRecord(value);
|
|
1538
1538
|
if (!parsed) {
|
|
1539
|
-
throw
|
|
1539
|
+
throw providerResponseError(`ClickUp response is missing ${key}`);
|
|
1540
1540
|
}
|
|
1541
1541
|
return parsed;
|
|
1542
1542
|
}
|
|
@@ -1615,7 +1615,7 @@ function buildUpdateTaskBody(input) {
|
|
|
1615
1615
|
assigneeUpdates !== undefined ||
|
|
1616
1616
|
customItemId !== undefined;
|
|
1617
1617
|
if (!hasWritableField) {
|
|
1618
|
-
throw
|
|
1618
|
+
throw providerInputError("at least one writable field is required");
|
|
1619
1619
|
}
|
|
1620
1620
|
return compactObject({
|
|
1621
1621
|
name: optionalString(input.name),
|
|
@@ -1649,14 +1649,14 @@ function buildAssigneeUpdates(input) {
|
|
|
1649
1649
|
function requireString(value, fieldName) {
|
|
1650
1650
|
const parsed = optionalString(value);
|
|
1651
1651
|
if (!parsed) {
|
|
1652
|
-
throw
|
|
1652
|
+
throw providerInputError(`${fieldName} is required`);
|
|
1653
1653
|
}
|
|
1654
1654
|
return parsed;
|
|
1655
1655
|
}
|
|
1656
1656
|
function requireIdString(value, fieldName) {
|
|
1657
1657
|
const parsed = asStringId(value);
|
|
1658
1658
|
if (!parsed) {
|
|
1659
|
-
throw
|
|
1659
|
+
throw providerInputError(`${fieldName} is required`);
|
|
1660
1660
|
}
|
|
1661
1661
|
return parsed;
|
|
1662
1662
|
}
|
|
@@ -1665,7 +1665,7 @@ function normalizeStringArray(value, fieldName) {
|
|
|
1665
1665
|
return undefined;
|
|
1666
1666
|
}
|
|
1667
1667
|
if (!Array.isArray(value)) {
|
|
1668
|
-
throw
|
|
1668
|
+
throw providerInputError(`${fieldName} must be an array`);
|
|
1669
1669
|
}
|
|
1670
1670
|
return value.map((item) => requireString(item, fieldName));
|
|
1671
1671
|
}
|
|
@@ -1674,12 +1674,12 @@ function normalizeIntegerArray(value, fieldName) {
|
|
|
1674
1674
|
return undefined;
|
|
1675
1675
|
}
|
|
1676
1676
|
if (!Array.isArray(value)) {
|
|
1677
|
-
throw
|
|
1677
|
+
throw providerInputError(`${fieldName} must be an array`);
|
|
1678
1678
|
}
|
|
1679
1679
|
return value.map((item) => {
|
|
1680
1680
|
const parsed = optionalInteger(item);
|
|
1681
1681
|
if (parsed === undefined) {
|
|
1682
|
-
throw
|
|
1682
|
+
throw providerInputError(`${fieldName} must contain integers`);
|
|
1683
1683
|
}
|
|
1684
1684
|
return parsed;
|
|
1685
1685
|
});
|
|
@@ -1693,7 +1693,7 @@ function normalizeIntegerOrNone(value, fieldName) {
|
|
|
1693
1693
|
}
|
|
1694
1694
|
const parsed = optionalInteger(value);
|
|
1695
1695
|
if (parsed === undefined) {
|
|
1696
|
-
throw
|
|
1696
|
+
throw providerInputError(`${fieldName} must be an integer or "none"`);
|
|
1697
1697
|
}
|
|
1698
1698
|
return parsed;
|
|
1699
1699
|
}
|
|
@@ -1703,7 +1703,7 @@ function normalizeNullableInteger(value, fieldName) {
|
|
|
1703
1703
|
}
|
|
1704
1704
|
const parsed = optionalInteger(value);
|
|
1705
1705
|
if (parsed === undefined) {
|
|
1706
|
-
throw
|
|
1706
|
+
throw providerInputError(`${fieldName} must be an integer or null`);
|
|
1707
1707
|
}
|
|
1708
1708
|
return parsed;
|
|
1709
1709
|
}
|
|
@@ -1716,7 +1716,7 @@ function normalizeStringOrInteger(value, fieldName) {
|
|
|
1716
1716
|
}
|
|
1717
1717
|
const parsed = optionalInteger(value);
|
|
1718
1718
|
if (parsed === undefined) {
|
|
1719
|
-
throw
|
|
1719
|
+
throw providerInputError(`${fieldName} must be a string or integer`);
|
|
1720
1720
|
}
|
|
1721
1721
|
return parsed;
|
|
1722
1722
|
}
|
|
@@ -1729,7 +1729,7 @@ function normalizeStringIntegerOrNull(value, fieldName) {
|
|
|
1729
1729
|
}
|
|
1730
1730
|
const parsed = optionalInteger(value);
|
|
1731
1731
|
if (parsed === undefined) {
|
|
1732
|
-
throw
|
|
1732
|
+
throw providerInputError(`${fieldName} must be a string, integer, or null`);
|
|
1733
1733
|
}
|
|
1734
1734
|
return parsed;
|
|
1735
1735
|
}
|
|
@@ -1738,7 +1738,7 @@ function normalizeNullableString(value, fieldName) {
|
|
|
1738
1738
|
return value;
|
|
1739
1739
|
}
|
|
1740
1740
|
if (typeof value !== "string") {
|
|
1741
|
-
throw
|
|
1741
|
+
throw providerInputError(`${fieldName} must be a string or null`);
|
|
1742
1742
|
}
|
|
1743
1743
|
return value;
|
|
1744
1744
|
}
|
|
@@ -1747,7 +1747,7 @@ function resolveDependencyTarget(input) {
|
|
|
1747
1747
|
const dependencyOfTaskId = optionalString(input.dependencyOfTaskId);
|
|
1748
1748
|
const provided = Number(Boolean(dependsOnTaskId)) + Number(Boolean(dependencyOfTaskId));
|
|
1749
1749
|
if (provided !== 1) {
|
|
1750
|
-
throw
|
|
1750
|
+
throw providerInputError("exactly one dependency target field is required");
|
|
1751
1751
|
}
|
|
1752
1752
|
return compactObject({
|
|
1753
1753
|
depends_on: dependsOnTaskId,
|
|
@@ -1759,12 +1759,12 @@ function normalizeMoveTaskStatusMappings(value) {
|
|
|
1759
1759
|
return undefined;
|
|
1760
1760
|
}
|
|
1761
1761
|
if (!Array.isArray(value)) {
|
|
1762
|
-
throw
|
|
1762
|
+
throw providerInputError("statusMappings must be an array");
|
|
1763
1763
|
}
|
|
1764
1764
|
return value.map((entry) => {
|
|
1765
1765
|
const parsedEntry = optionalRecord(entry);
|
|
1766
1766
|
if (!parsedEntry) {
|
|
1767
|
-
throw
|
|
1767
|
+
throw providerInputError("statusMappings must contain objects");
|
|
1768
1768
|
}
|
|
1769
1769
|
return compactObject({
|
|
1770
1770
|
source_status: requireString(parsedEntry.sourceStatus, "statusMappings.sourceStatus"),
|
|
@@ -1778,7 +1778,7 @@ function normalizeOptionalObject(value, fieldName) {
|
|
|
1778
1778
|
}
|
|
1779
1779
|
const parsed = optionalRecord(value);
|
|
1780
1780
|
if (!parsed) {
|
|
1781
|
-
throw
|
|
1781
|
+
throw providerInputError(`${fieldName} must be an object`);
|
|
1782
1782
|
}
|
|
1783
1783
|
return parsed;
|
|
1784
1784
|
}
|
|
@@ -1787,12 +1787,12 @@ function normalizeRecordArray(value, fieldName) {
|
|
|
1787
1787
|
return undefined;
|
|
1788
1788
|
}
|
|
1789
1789
|
if (!Array.isArray(value)) {
|
|
1790
|
-
throw
|
|
1790
|
+
throw providerInputError(`${fieldName} must be an array`);
|
|
1791
1791
|
}
|
|
1792
1792
|
return value.map((item) => {
|
|
1793
1793
|
const parsed = optionalRecord(item);
|
|
1794
1794
|
if (!parsed) {
|
|
1795
|
-
throw
|
|
1795
|
+
throw providerInputError(`${fieldName} must contain objects`);
|
|
1796
1796
|
}
|
|
1797
1797
|
return parsed;
|
|
1798
1798
|
});
|
|
@@ -1809,6 +1809,3 @@ function asStringId(value) {
|
|
|
1809
1809
|
function compactQuery(value) {
|
|
1810
1810
|
return Object.fromEntries(Object.entries(value).filter(([, child]) => child !== undefined));
|
|
1811
1811
|
}
|
|
1812
|
-
function clickupRuntimeError(_code, message, status = 500) {
|
|
1813
|
-
return new ProviderRequestError(status, message);
|
|
1814
|
-
}
|