@oomol-lab/open-connector 1.9.0 → 1.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/open-connector/catalog/apps/agentearth.json +441 -0
- package/assets/open-connector/catalog/apps/aisa.json +1946 -56
- package/assets/open-connector/catalog/apps/akta.json +1181 -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/asana.json +110 -0
- package/assets/open-connector/catalog/apps/bainiu.json +654 -0
- package/assets/open-connector/catalog/apps/calendly.json +103 -0
- package/assets/open-connector/catalog/apps/chaport.json +331 -0
- package/assets/open-connector/catalog/apps/clickup.json +104 -0
- package/assets/open-connector/catalog/apps/cloro.json +9289 -0
- package/assets/open-connector/catalog/apps/cnb.json +1408 -0
- package/assets/open-connector/catalog/apps/contextdev.json +20670 -0
- package/assets/open-connector/catalog/apps/crtsh.json +123 -0
- package/assets/open-connector/catalog/apps/deepseek.json +177 -0
- package/assets/open-connector/catalog/apps/defillama.json +23747 -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/fireflies.json +103 -0
- package/assets/open-connector/catalog/apps/ftshare.json +1162 -0
- package/assets/open-connector/catalog/apps/fundable.json +7926 -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/intercom.json +110 -0
- package/assets/open-connector/catalog/apps/jira.json +110 -0
- package/assets/open-connector/catalog/apps/kaonavi.json +1723 -0
- package/assets/open-connector/catalog/apps/keenable.json +235 -0
- package/assets/open-connector/catalog/apps/kolsprite_mcp.json +1227 -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/litescrape.json +52514 -0
- package/assets/open-connector/catalog/apps/magichour.json +5926 -0
- package/assets/open-connector/catalog/apps/minimax.json +24 -14
- package/assets/open-connector/catalog/apps/notion.json +731 -76
- package/assets/open-connector/catalog/apps/notion_mcp.json +338 -1
- package/assets/open-connector/catalog/apps/octen.json +5248 -0
- package/assets/open-connector/catalog/apps/openrouter.json +10 -0
- package/assets/open-connector/catalog/apps/orbit.json +3574 -0
- package/assets/open-connector/catalog/apps/outlook.json +414 -0
- package/assets/open-connector/catalog/apps/pandadoc.json +68 -0
- package/assets/open-connector/catalog/apps/pipedrive.json +86 -0
- package/assets/open-connector/catalog/apps/ploid.json +9802 -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/resend.json +100 -0
- package/assets/open-connector/catalog/apps/salesforce.json +7275 -0
- package/assets/open-connector/catalog/apps/sansan.json +4594 -0
- package/assets/open-connector/catalog/apps/saperly.json +7056 -0
- package/assets/open-connector/catalog/apps/search1api.json +2382 -0
- package/assets/open-connector/catalog/apps/sentry.json +129 -0
- package/assets/open-connector/catalog/apps/slackbot.json +230 -1
- 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/surf.json +11378 -0
- package/assets/open-connector/catalog/apps/tally.json +113 -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/tinyfish.json +6154 -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/typeform.json +90 -1
- package/assets/open-connector/catalog/apps/urlhaus.json +246 -0
- package/assets/open-connector/catalog/apps/vaquill.json +5944 -0
- package/assets/open-connector/catalog/apps/vercel.json +110 -0
- package/assets/open-connector/catalog/apps/weixin_store.json +1256 -7
- 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/zoom.json +112 -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/json-schema.d.ts +11 -3
- package/src/core/json-schema.js +13 -3
- 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 +58 -11
- 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/aisa/executors.js +238 -6
- package/src/providers/aisa/firecrawl-actions.d.ts +9 -0
- package/src/providers/aisa/firecrawl-actions.js +115 -0
- package/src/providers/akta/actions.d.ts +9 -0
- package/src/providers/akta/actions.js +420 -0
- package/src/providers/akta/executors.d.ts +4 -0
- package/src/providers/akta/executors.js +103 -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/asana/executors.d.ts +2 -0
- package/src/providers/asana/executors.js +2 -0
- package/src/providers/asana/trigger-on-task-event.d.ts +2 -0
- package/src/providers/asana/trigger-on-task-event.definition.d.ts +4 -0
- package/src/providers/asana/trigger-on-task-event.definition.js +42 -0
- package/src/providers/asana/trigger-on-task-event.js +160 -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/calendly/executors.d.ts +2 -0
- package/src/providers/calendly/executors.js +2 -0
- package/src/providers/calendly/trigger-on-booking-event.d.ts +2 -0
- package/src/providers/calendly/trigger-on-booking-event.definition.d.ts +5 -0
- package/src/providers/calendly/trigger-on-booking-event.definition.js +42 -0
- package/src/providers/calendly/trigger-on-booking-event.js +144 -0
- 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/executors.d.ts +2 -0
- package/src/providers/clickup/executors.js +2 -0
- package/src/providers/clickup/runtime.js +49 -52
- package/src/providers/clickup/trigger-on-task-event.d.ts +2 -0
- package/src/providers/clickup/trigger-on-task-event.definition.d.ts +4 -0
- package/src/providers/clickup/trigger-on-task-event.definition.js +41 -0
- package/src/providers/clickup/trigger-on-task-event.js +94 -0
- package/src/providers/cloro/actions.d.ts +12 -0
- package/src/providers/cloro/actions.js +155 -0
- package/src/providers/cloro/executors.d.ts +4 -0
- package/src/providers/cloro/executors.js +67 -0
- package/src/providers/cloro/inputs.d.ts +10 -0
- package/src/providers/cloro/inputs.js +680 -0
- 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/contextdev/actions.d.ts +14 -0
- package/src/providers/contextdev/actions.js +647 -0
- package/src/providers/contextdev/executors.d.ts +4 -0
- package/src/providers/contextdev/executors.js +109 -0
- package/src/providers/contextdev/files.d.ts +3 -0
- package/src/providers/contextdev/files.js +49 -0
- package/src/providers/contextdev/input-schemas.d.ts +49 -0
- package/src/providers/contextdev/input-schemas.js +3082 -0
- package/src/providers/contextdev/output-schemas.d.ts +49 -0
- package/src/providers/contextdev/output-schemas.js +1599 -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/deepseek/executors.d.ts +0 -5
- package/src/providers/deepseek/executors.js +38 -25
- package/src/providers/defillama/actions.d.ts +24 -0
- package/src/providers/defillama/actions.js +24 -0
- package/src/providers/defillama/dimensions-definitions.d.ts +2 -0
- package/src/providers/defillama/dimensions-definitions.js +1387 -0
- package/src/providers/defillama/ecosystem-definitions.d.ts +2 -0
- package/src/providers/defillama/ecosystem-definitions.js +758 -0
- package/src/providers/defillama/equities-definitions.d.ts +2 -0
- package/src/providers/defillama/equities-definitions.js +733 -0
- package/src/providers/defillama/executors.d.ts +4 -0
- package/src/providers/defillama/executors.js +196 -0
- package/src/providers/defillama/markets-definitions.d.ts +2 -0
- package/src/providers/defillama/markets-definitions.js +624 -0
- package/src/providers/defillama/shared-schemas.d.ts +71 -0
- package/src/providers/defillama/shared-schemas.js +157 -0
- package/src/providers/defillama/tvl-definitions.d.ts +2 -0
- package/src/providers/defillama/tvl-definitions.js +546 -0
- package/src/providers/defillama/yields-definitions.d.ts +2 -0
- package/src/providers/defillama/yields-definitions.js +766 -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/feishu_app_bot/trigger-on-event.js +2 -0
- package/src/providers/fireflies/executors.d.ts +2 -0
- package/src/providers/fireflies/executors.js +2 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.d.ts +2 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.definition.d.ts +4 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.definition.js +44 -0
- package/src/providers/fireflies/trigger-on-meeting-ready.js +60 -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/fundable/actions.d.ts +8 -0
- package/src/providers/fundable/actions.js +1515 -0
- package/src/providers/fundable/executors.d.ts +4 -0
- package/src/providers/fundable/executors.js +74 -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/gmail/message.d.ts +1 -6
- package/src/providers/gmail/message.js +1 -1
- 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/intercom/executors.d.ts +2 -0
- package/src/providers/intercom/executors.js +2 -0
- package/src/providers/intercom/trigger-on-conversation-event.d.ts +2 -0
- package/src/providers/intercom/trigger-on-conversation-event.definition.d.ts +4 -0
- package/src/providers/intercom/trigger-on-conversation-event.definition.js +42 -0
- package/src/providers/intercom/trigger-on-conversation-event.js +23 -0
- package/src/providers/jira/executors.d.ts +2 -0
- package/src/providers/jira/executors.js +2 -0
- package/src/providers/jira/trigger-on-issue-event.d.ts +2 -0
- package/src/providers/jira/trigger-on-issue-event.definition.d.ts +4 -0
- package/src/providers/jira/trigger-on-issue-event.definition.js +44 -0
- package/src/providers/jira/trigger-on-issue-event.js +116 -0
- package/src/providers/jira/trigger-resource.d.ts +4 -0
- package/src/providers/jira/trigger-resource.js +141 -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/keenable/executors.d.ts +4 -0
- package/src/providers/keenable/executors.js +20 -0
- package/src/providers/keenable/runtime.d.ts +26 -0
- package/src/providers/keenable/runtime.js +89 -0
- package/src/providers/kolsprite_mcp/actions.d.ts +2 -0
- package/src/providers/kolsprite_mcp/actions.js +519 -0
- package/src/providers/kolsprite_mcp/executors.d.ts +4 -0
- package/src/providers/kolsprite_mcp/executors.js +89 -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/litescrape/actions.d.ts +12 -0
- package/src/providers/litescrape/actions.js +124 -0
- package/src/providers/litescrape/airbnb-schemas.d.ts +2 -0
- package/src/providers/litescrape/airbnb-schemas.js +72 -0
- package/src/providers/litescrape/aliexpress-schemas.d.ts +2 -0
- package/src/providers/litescrape/aliexpress-schemas.js +52 -0
- package/src/providers/litescrape/amazon-schemas.d.ts +2 -0
- package/src/providers/litescrape/amazon-schemas.js +358 -0
- package/src/providers/litescrape/apartments-schemas.d.ts +2 -0
- package/src/providers/litescrape/apartments-schemas.js +45 -0
- package/src/providers/litescrape/apple-schemas.d.ts +2 -0
- package/src/providers/litescrape/apple-schemas.js +215 -0
- package/src/providers/litescrape/ashby-schemas.d.ts +2 -0
- package/src/providers/litescrape/ashby-schemas.js +82 -0
- package/src/providers/litescrape/baidu-schemas.d.ts +2 -0
- package/src/providers/litescrape/baidu-schemas.js +31 -0
- package/src/providers/litescrape/bestbuy-schemas.d.ts +2 -0
- package/src/providers/litescrape/bestbuy-schemas.js +56 -0
- package/src/providers/litescrape/bing-schemas.d.ts +2 -0
- package/src/providers/litescrape/bing-schemas.js +315 -0
- package/src/providers/litescrape/brave-schemas.d.ts +2 -0
- package/src/providers/litescrape/brave-schemas.js +101 -0
- package/src/providers/litescrape/copilot-schemas.d.ts +2 -0
- package/src/providers/litescrape/copilot-schemas.js +590 -0
- package/src/providers/litescrape/duckduckgo-schemas.d.ts +2 -0
- package/src/providers/litescrape/duckduckgo-schemas.js +64 -0
- package/src/providers/litescrape/ebay-schemas.d.ts +2 -0
- package/src/providers/litescrape/ebay-schemas.js +300 -0
- package/src/providers/litescrape/etsy-schemas.d.ts +2 -0
- package/src/providers/litescrape/etsy-schemas.js +52 -0
- package/src/providers/litescrape/eventbrite-schemas.d.ts +2 -0
- package/src/providers/litescrape/eventbrite-schemas.js +43 -0
- package/src/providers/litescrape/executors.d.ts +4 -0
- package/src/providers/litescrape/executors.js +138 -0
- package/src/providers/litescrape/facebook-schemas.d.ts +2 -0
- package/src/providers/litescrape/facebook-schemas.js +283 -0
- package/src/providers/litescrape/glassdoor-schemas.d.ts +2 -0
- package/src/providers/litescrape/glassdoor-schemas.js +147 -0
- package/src/providers/litescrape/google-schemas.d.ts +2 -0
- package/src/providers/litescrape/google-schemas.js +1686 -0
- package/src/providers/litescrape/homedepot-schemas.d.ts +2 -0
- package/src/providers/litescrape/homedepot-schemas.js +58 -0
- package/src/providers/litescrape/homes-schemas.d.ts +2 -0
- package/src/providers/litescrape/homes-schemas.js +45 -0
- package/src/providers/litescrape/ikea-schemas.d.ts +2 -0
- package/src/providers/litescrape/ikea-schemas.js +56 -0
- package/src/providers/litescrape/indeed-schemas.d.ts +2 -0
- package/src/providers/litescrape/indeed-schemas.js +141 -0
- package/src/providers/litescrape/instagram-schemas.d.ts +2 -0
- package/src/providers/litescrape/instagram-schemas.js +234 -0
- package/src/providers/litescrape/kroger-schemas.d.ts +2 -0
- package/src/providers/litescrape/kroger-schemas.js +62 -0
- package/src/providers/litescrape/levels-schemas.d.ts +2 -0
- package/src/providers/litescrape/levels-schemas.js +153 -0
- package/src/providers/litescrape/naver-schemas.d.ts +2 -0
- package/src/providers/litescrape/naver-schemas.js +107 -0
- package/src/providers/litescrape/realtor-schemas.d.ts +2 -0
- package/src/providers/litescrape/realtor-schemas.js +47 -0
- package/src/providers/litescrape/redfin-schemas.d.ts +2 -0
- package/src/providers/litescrape/redfin-schemas.js +112 -0
- package/src/providers/litescrape/shared.d.ts +9 -0
- package/src/providers/litescrape/shared.js +1 -0
- package/src/providers/litescrape/sprouts-schemas.d.ts +2 -0
- package/src/providers/litescrape/sprouts-schemas.js +72 -0
- package/src/providers/litescrape/target-schemas.d.ts +2 -0
- package/src/providers/litescrape/target-schemas.js +56 -0
- package/src/providers/litescrape/tiktok-schemas.d.ts +2 -0
- package/src/providers/litescrape/tiktok-schemas.js +625 -0
- package/src/providers/litescrape/tools.d.ts +2 -0
- package/src/providers/litescrape/tools.js +88 -0
- package/src/providers/litescrape/tripadvisor-schemas.d.ts +2 -0
- package/src/providers/litescrape/tripadvisor-schemas.js +119 -0
- package/src/providers/litescrape/walmart-schemas.d.ts +2 -0
- package/src/providers/litescrape/walmart-schemas.js +52 -0
- package/src/providers/litescrape/wayfair-schemas.d.ts +2 -0
- package/src/providers/litescrape/wayfair-schemas.js +52 -0
- package/src/providers/litescrape/web-schemas.d.ts +2 -0
- package/src/providers/litescrape/web-schemas.js +463 -0
- package/src/providers/litescrape/wholefoods-schemas.d.ts +2 -0
- package/src/providers/litescrape/wholefoods-schemas.js +56 -0
- package/src/providers/litescrape/x-schemas.d.ts +2 -0
- package/src/providers/litescrape/x-schemas.js +128 -0
- package/src/providers/litescrape/yahoo-schemas.d.ts +2 -0
- package/src/providers/litescrape/yahoo-schemas.js +234 -0
- package/src/providers/litescrape/yandex-schemas.d.ts +2 -0
- package/src/providers/litescrape/yandex-schemas.js +179 -0
- package/src/providers/litescrape/yelp-schemas.d.ts +2 -0
- package/src/providers/litescrape/yelp-schemas.js +130 -0
- package/src/providers/litescrape/youtube-schemas.d.ts +2 -0
- package/src/providers/litescrape/youtube-schemas.js +128 -0
- package/src/providers/litescrape/zillow-schemas.d.ts +2 -0
- package/src/providers/litescrape/zillow-schemas.js +128 -0
- package/src/providers/litescrape/ziprecruiter-schemas.d.ts +2 -0
- package/src/providers/litescrape/ziprecruiter-schemas.js +96 -0
- package/src/providers/magichour/actions.d.ts +22 -0
- package/src/providers/magichour/actions.js +308 -0
- package/src/providers/magichour/audio-schemas.d.ts +2 -0
- package/src/providers/magichour/audio-schemas.js +54 -0
- package/src/providers/magichour/executors.d.ts +4 -0
- package/src/providers/magichour/executors.js +115 -0
- package/src/providers/magichour/image-schemas.d.ts +2 -0
- package/src/providers/magichour/image-schemas.js +443 -0
- package/src/providers/magichour/project-schemas.d.ts +8 -0
- package/src/providers/magichour/project-schemas.js +65 -0
- package/src/providers/magichour/shared-schemas.d.ts +8 -0
- package/src/providers/magichour/shared-schemas.js +18 -0
- package/src/providers/magichour/utility-schemas.d.ts +11 -0
- package/src/providers/magichour/utility-schemas.js +150 -0
- package/src/providers/magichour/video-schemas.d.ts +2 -0
- package/src/providers/magichour/video-schemas.js +629 -0
- package/src/providers/magichour/voices.d.ts +1 -0
- package/src/providers/magichour/voices.js +1268 -0
- package/src/providers/mcp-tools.d.ts +3 -0
- package/src/providers/mcp-tools.js +5 -4
- package/src/providers/minimax/executors.js +19 -4
- package/src/providers/minimax/text-models.d.ts +2 -0
- package/src/providers/minimax/text-models.js +34 -0
- package/src/providers/moneyforward_mcp/manifest.d.ts +0 -2
- package/src/providers/moneyforward_mcp/manifest.js +1 -1
- package/src/providers/notion/executors.js +36 -3
- 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/octen/actions.d.ts +6 -0
- package/src/providers/octen/actions.js +919 -0
- package/src/providers/octen/executors.d.ts +4 -0
- package/src/providers/octen/executors.js +125 -0
- package/src/providers/octen/inputs.d.ts +2 -0
- package/src/providers/octen/inputs.js +2434 -0
- package/src/providers/octen/research.d.ts +1 -0
- package/src/providers/octen/research.js +86 -0
- package/src/providers/omise/executors.js +1 -1
- package/src/providers/openrouter/executors.js +7 -4
- package/src/providers/orbit/actions.d.ts +2 -0
- package/src/providers/orbit/actions.js +3030 -0
- package/src/providers/orbit/executors.d.ts +4 -0
- package/src/providers/orbit/executors.js +106 -0
- package/src/providers/orbit/routes.d.ts +9 -0
- package/src/providers/orbit/routes.js +170 -0
- package/src/providers/outlook/executors.js +35 -2
- package/src/providers/pandadoc/executors.d.ts +2 -0
- package/src/providers/pandadoc/executors.js +2 -0
- package/src/providers/pandadoc/trigger-on-document-event.d.ts +2 -0
- package/src/providers/pandadoc/trigger-on-document-event.definition.d.ts +4 -0
- package/src/providers/pandadoc/trigger-on-document-event.definition.js +33 -0
- package/src/providers/pandadoc/trigger-on-document-event.js +96 -0
- package/src/providers/pipedrive/executors.d.ts +2 -0
- package/src/providers/pipedrive/executors.js +2 -0
- package/src/providers/pipedrive/trigger-on-crm-event.d.ts +2 -0
- package/src/providers/pipedrive/trigger-on-crm-event.definition.d.ts +4 -0
- package/src/providers/pipedrive/trigger-on-crm-event.definition.js +30 -0
- package/src/providers/pipedrive/trigger-on-crm-event.js +101 -0
- package/src/providers/ploid/actions.d.ts +16 -0
- package/src/providers/ploid/actions.js +23 -0
- package/src/providers/ploid/endpoints.json +8440 -0
- package/src/providers/ploid/executors.d.ts +4 -0
- package/src/providers/ploid/executors.js +119 -0
- 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 +16 -2
- package/src/providers/provider-runtime.js +37 -4
- 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 +47 -0
- package/src/providers/resend/executors.d.ts +2 -0
- package/src/providers/resend/executors.js +2 -0
- package/src/providers/resend/trigger-on-email-event.d.ts +2 -0
- package/src/providers/resend/trigger-on-email-event.definition.d.ts +4 -0
- package/src/providers/resend/trigger-on-email-event.definition.js +37 -0
- package/src/providers/resend/trigger-on-email-event.js +125 -0
- package/src/providers/salesforce/chatter-routes.d.ts +107 -0
- package/src/providers/salesforce/chatter-routes.js +140 -0
- package/src/providers/salesforce/context.d.ts +16 -0
- package/src/providers/salesforce/context.js +61 -0
- package/src/providers/salesforce/executors.d.ts +5 -0
- package/src/providers/salesforce/executors.js +64 -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-approvals.d.ts +2 -0
- package/src/providers/salesforce/runtime-approvals.js +52 -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 +62 -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-chatter.d.ts +2 -0
- package/src/providers/salesforce/runtime-chatter.js +78 -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/runtime-knowledge.d.ts +2 -0
- package/src/providers/salesforce/runtime-knowledge.js +34 -0
- package/src/providers/salesforce/runtime-leads.d.ts +2 -0
- package/src/providers/salesforce/runtime-leads.js +117 -0
- package/src/providers/salesforce/runtime-platform.d.ts +2 -0
- package/src/providers/salesforce/runtime-platform.js +67 -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/saperly/actions.d.ts +17 -0
- package/src/providers/saperly/actions.js +869 -0
- package/src/providers/saperly/executors.d.ts +4 -0
- package/src/providers/saperly/executors.js +113 -0
- package/src/providers/saperly/schemas.d.ts +33 -0
- package/src/providers/saperly/schemas.js +601 -0
- package/src/providers/search1api/actions.d.ts +2 -0
- package/src/providers/search1api/actions.js +39 -0
- package/src/providers/search1api/executors.d.ts +4 -0
- package/src/providers/search1api/executors.js +72 -0
- package/src/providers/search1api/runtime.d.ts +3 -0
- package/src/providers/search1api/runtime.js +44 -0
- package/src/providers/search1api/schemas.d.ts +3 -0
- package/src/providers/search1api/schemas.js +1834 -0
- package/src/providers/sentry/executors.d.ts +2 -0
- package/src/providers/sentry/executors.js +2 -0
- package/src/providers/sentry/trigger-on-issue-alert.d.ts +2 -0
- package/src/providers/sentry/trigger-on-issue-alert.definition.d.ts +4 -0
- package/src/providers/sentry/trigger-on-issue-alert.definition.js +64 -0
- package/src/providers/sentry/trigger-on-issue-alert.js +80 -0
- package/src/providers/sf_express/runtime.d.ts +0 -16
- package/src/providers/sf_express/runtime.js +2 -2
- package/src/providers/shopee/runtime.d.ts +33 -29
- package/src/providers/shopee/runtime.js +166 -169
- package/src/providers/slack/runtime.d.ts +6 -1
- package/src/providers/slack/runtime.js +21 -0
- package/src/providers/slackbot/actions.js +17 -1
- package/src/providers/slackbot/executors.d.ts +2 -0
- package/src/providers/slackbot/executors.js +5 -1
- package/src/providers/slackbot/trigger-on-event.d.ts +2 -0
- package/src/providers/slackbot/trigger-on-event.definition.d.ts +4 -0
- package/src/providers/slackbot/trigger-on-event.definition.js +57 -0
- package/src/providers/slackbot/trigger-on-event.js +23 -0
- 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/surf/actions.d.ts +21 -0
- package/src/providers/surf/actions.js +26 -0
- package/src/providers/surf/discovery-definitions.d.ts +2 -0
- package/src/providers/surf/discovery-definitions.js +871 -0
- package/src/providers/surf/equity-definitions.d.ts +2 -0
- package/src/providers/surf/equity-definitions.js +322 -0
- package/src/providers/surf/executors.d.ts +4 -0
- package/src/providers/surf/executors.js +131 -0
- package/src/providers/surf/market-definitions.d.ts +2 -0
- package/src/providers/surf/market-definitions.js +885 -0
- package/src/providers/surf/onchain-definitions.d.ts +2 -0
- package/src/providers/surf/onchain-definitions.js +901 -0
- package/src/providers/surf/prediction-definitions.d.ts +2 -0
- package/src/providers/surf/prediction-definitions.js +683 -0
- package/src/providers/surf/shared-schemas.d.ts +18 -0
- package/src/providers/surf/shared-schemas.js +37 -0
- package/src/providers/tally/executors.d.ts +2 -0
- package/src/providers/tally/executors.js +2 -0
- package/src/providers/tally/trigger-on-form-response.d.ts +2 -0
- package/src/providers/tally/trigger-on-form-response.definition.d.ts +4 -0
- package/src/providers/tally/trigger-on-form-response.definition.js +54 -0
- package/src/providers/tally/trigger-on-form-response.js +166 -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/tinyfish/actions.d.ts +6 -0
- package/src/providers/tinyfish/actions.js +19 -0
- package/src/providers/tinyfish/agent-actions.d.ts +2 -0
- package/src/providers/tinyfish/agent-actions.js +268 -0
- package/src/providers/tinyfish/data-actions.d.ts +2 -0
- package/src/providers/tinyfish/data-actions.js +186 -0
- package/src/providers/tinyfish/data-schemas.d.ts +7 -0
- package/src/providers/tinyfish/data-schemas.js +103 -0
- package/src/providers/tinyfish/endpoints.d.ts +14 -0
- package/src/providers/tinyfish/endpoints.js +1 -0
- package/src/providers/tinyfish/executors.d.ts +4 -0
- package/src/providers/tinyfish/executors.js +133 -0
- package/src/providers/tinyfish/management-actions.d.ts +2 -0
- package/src/providers/tinyfish/management-actions.js +524 -0
- package/src/providers/tinyfish/monitor-schemas.d.ts +5 -0
- package/src/providers/tinyfish/monitor-schemas.js +65 -0
- package/src/providers/tinyfish/research-schemas.d.ts +6 -0
- package/src/providers/tinyfish/research-schemas.js +71 -0
- 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/trello/executors.js +5 -2
- 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/typeform/executors.d.ts +2 -0
- package/src/providers/typeform/executors.js +2 -0
- package/src/providers/typeform/trigger-on-form-response.d.ts +2 -0
- package/src/providers/typeform/trigger-on-form-response.definition.d.ts +4 -0
- package/src/providers/typeform/trigger-on-form-response.definition.js +40 -0
- package/src/providers/typeform/trigger-on-form-response.js +68 -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/vaquill/actions.d.ts +13 -0
- package/src/providers/vaquill/actions.js +529 -0
- package/src/providers/vaquill/executors.d.ts +4 -0
- package/src/providers/vaquill/executors.js +141 -0
- package/src/providers/vaquill/schemas.d.ts +67 -0
- package/src/providers/vaquill/schemas.js +4953 -0
- package/src/providers/vercel/executors.d.ts +2 -0
- package/src/providers/vercel/executors.js +2 -0
- package/src/providers/vercel/trigger-on-deployment-event.d.ts +2 -0
- package/src/providers/vercel/trigger-on-deployment-event.definition.d.ts +5 -0
- package/src/providers/vercel/trigger-on-deployment-event.definition.js +41 -0
- package/src/providers/vercel/trigger-on-deployment-event.js +102 -0
- package/src/providers/wangdian/runtime.js +16 -19
- package/src/providers/weixin_bot/runtime.d.ts +0 -1
- package/src/providers/weixin_bot/runtime.js +1 -1
- package/src/providers/weixin_store/access-token.d.ts +3 -3
- package/src/providers/weixin_store/access-token.js +15 -7
- package/src/providers/weixin_store/executors.js +214 -1
- 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/providers/zoom/executors.d.ts +2 -0
- package/src/providers/zoom/executors.js +2 -0
- package/src/providers/zoom/trigger-on-recording-ready.d.ts +2 -0
- package/src/providers/zoom/trigger-on-recording-ready.definition.d.ts +4 -0
- package/src/providers/zoom/trigger-on-recording-ready.definition.js +44 -0
- package/src/providers/zoom/trigger-on-recording-ready.js +39 -0
- package/src/server/api/action-example.js +12 -1
- 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/pattern-example.js +35 -1
- 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 +4 -1
- package/src/server/connect-server.d.ts +3 -54
- package/src/server/connect-server.js +95 -1148
- package/src/triggers/common/integration.d.ts +15 -3
- package/src/triggers/common/integration.js +5 -0
- package/src/triggers/common/proxy.d.ts +7 -0
- package/src/triggers/managed-webhook.d.ts +13 -0
- package/src/triggers/managed-webhook.js +48 -0
- package/src/triggers/request.d.ts +5 -1
- package/src/triggers/request.js +2 -0
- package/src/triggers/resources.d.ts +8 -2
- package/src/triggers/resources.js +31 -0
- package/src/triggers/signature.d.ts +3 -3
- package/src/triggers/signature.js +4 -6
- package/src/triggers/sources/configuration-schema.d.ts +5 -0
- package/src/triggers/sources/configuration-schema.js +118 -0
- package/src/triggers/sources/configuration.d.ts +115 -0
- package/src/triggers/sources/configuration.js +1 -0
- package/src/triggers/sources/definition.d.ts +61 -0
- package/src/triggers/sources/definition.js +3 -0
- package/src/triggers/sources/feishu-demands.d.ts +6 -0
- package/src/triggers/sources/feishu-demands.js +24 -0
- package/src/triggers/sources/feishu-events.d.ts +19 -0
- package/src/triggers/sources/feishu-events.js +108 -0
- package/src/triggers/sources/feishu.d.ts +3 -0
- package/src/triggers/sources/feishu.js +85 -0
- package/src/triggers/sources/fireflies.d.ts +3 -0
- package/src/triggers/sources/fireflies.js +100 -0
- package/src/triggers/sources/intercom.d.ts +3 -0
- package/src/triggers/sources/intercom.js +86 -0
- package/src/triggers/sources/jira.d.ts +3 -0
- package/src/triggers/sources/jira.js +120 -0
- package/src/triggers/sources/operation.d.ts +42 -0
- package/src/triggers/sources/operation.js +146 -0
- package/src/triggers/sources/sentry.d.ts +3 -0
- package/src/triggers/sources/sentry.js +125 -0
- package/src/triggers/sources/signature.d.ts +1 -0
- package/src/triggers/sources/signature.js +10 -0
- package/src/triggers/sources/slack.d.ts +3 -0
- package/src/triggers/sources/slack.js +127 -0
- package/src/triggers/sources/zoom.d.ts +3 -0
- package/src/triggers/sources/zoom.js +113 -0
- package/src/triggers/trigger-runner.d.ts +2 -0
- package/src/triggers/trigger-runner.js +52 -16
- package/src/providers/fastmoss_mcp/official-tools.json +0 -2922
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
const service = "appgrowing_mcp";
|
|
4
|
+
const resultSchema = s.requiredObject("The AppGrowing Global MCP tool result.", {
|
|
5
|
+
result: s.unknown("Structured MCP content when available; otherwise the complete MCP content envelope. Data availability and Credits depend on the connected AppGrowing Global account."),
|
|
6
|
+
});
|
|
7
|
+
const category = s.array("Store categories for the selected product type; obtain IDs from filterOptions.", s.nullableInteger("Store category ID."));
|
|
8
|
+
const appStyle = s.array("App styles for the selected product type; obtain IDs from filterOptions.", s.nullableInteger("App style ID."));
|
|
9
|
+
const area = s.array("Countries to include; obtain codes from filterOptions.", s.nullableString("Country code."));
|
|
10
|
+
const page = s.integer("Page number, starting at 1. Each page contains up to 100 results.", { minimum: 1 });
|
|
11
|
+
const creativeSearchInput = s.object("Advertising creative filters. Omit filters that do not apply to the selected product type.", {
|
|
12
|
+
purpose: s.withEnum(s.integer("Promoted product: 1 game, 2 app, 3 website."), [1, 2, 3]),
|
|
13
|
+
startDate: s.date("First date to include."),
|
|
14
|
+
endDate: s.date("Last date to include."),
|
|
15
|
+
isAllDate: s.integer("Use 1 to search all dates, or 0 to use the date range."),
|
|
16
|
+
category,
|
|
17
|
+
resourceElement: s.array("Visual element tags for games or apps.", s.nullableInteger("Visual element tag ID from filterOptions.")),
|
|
18
|
+
appStyle,
|
|
19
|
+
media: s.array("Advertising channels for the selected product type.", s.nullableInteger("Media channel ID from filterOptions.")),
|
|
20
|
+
area,
|
|
21
|
+
format: s.array("Advertising formats for the selected product type.", s.nullableInteger("Ad format ID from filterOptions.")),
|
|
22
|
+
platform: s.array("Promotion platforms for games or apps.", s.nullableInteger("Promotion platform ID from filterOptions.")),
|
|
23
|
+
language: s.array("Creative languages.", s.nullableString("Language value from filterOptions.")),
|
|
24
|
+
videoTime: s.integer("Video duration filter ID from filterOptions, not seconds."),
|
|
25
|
+
minDuration: s.string("Minimum advertising days as a numeric string.", { pattern: "^[0-9]*$" }),
|
|
26
|
+
maxDuration: s.string("Maximum advertising days as a numeric string.", { pattern: "^[0-9]*$" }),
|
|
27
|
+
accurateSearch: s.integer("Use 1 for an exact ordered keyword match, or 0 for broad matching."),
|
|
28
|
+
isNew: s.integer("Use 1 for new creatives only, or 0 to include existing creatives."),
|
|
29
|
+
isNewAd: s.integer("Use 1 for new advertisements only, or 0 to include existing advertisements."),
|
|
30
|
+
resolution: s.integer("Use 1 for high-definition creatives, or 0 to include other resolutions."),
|
|
31
|
+
keyword: s.string("Search keyword."),
|
|
32
|
+
order: s.stringEnum("Sort order.", [
|
|
33
|
+
"_score_desc",
|
|
34
|
+
"max_dt_desc",
|
|
35
|
+
"max_dt",
|
|
36
|
+
"min_dt_desc",
|
|
37
|
+
"min_dt",
|
|
38
|
+
"cnt_ad_id_desc",
|
|
39
|
+
"cnt_dt_desc",
|
|
40
|
+
"cnt_dt",
|
|
41
|
+
"impression_inc_2y_desc",
|
|
42
|
+
"similar_cnt_desc",
|
|
43
|
+
]),
|
|
44
|
+
page,
|
|
45
|
+
isCreative: s.integer("Use 1 for innovative game or app creatives, or 0 for other creatives."),
|
|
46
|
+
gender: s.array("Audience genders for games or apps.", s.nullableInteger("Gender: 1 male, 2 female, 3 unknown.")),
|
|
47
|
+
ageRange: s.array("Audience age groups for games or apps.", s.nullableString("Age group: 13-17, 18-24, 25-34, 35-44, 45-54, 55-64 or 65+.")),
|
|
48
|
+
isW2a: s.integer("Use 1 for web-to-app promotion; omit to leave it unfiltered."),
|
|
49
|
+
excludeW2a: s.integer("For games or apps, use 0 with isW2a=1 or 1 with isW2a=0; otherwise omit."),
|
|
50
|
+
campaignTypeCombine: s.integer("Use 1 when filtering game or app promotion types; otherwise omit."),
|
|
51
|
+
campaignType: s.array("Game or app promotion types.", s.nullableInteger("Promotion type: 101/201/298/295 app downloads, 299 web-to-APK, 297 PWA/H5; omit for web-to-app.")),
|
|
52
|
+
platformCampaignType: s.array("Platform-specific promotion types.", s.nullableInteger("App platform: 201 Google Play, 295 Galaxy, 298 RuStore, 299 APK, 101 App Store.")),
|
|
53
|
+
appCashWay: s.array("Game or app monetization methods.", s.nullable(s.stringEnum("Monetization method: ads, purchases, mixed, or subscriptions.", [
|
|
54
|
+
"iaa",
|
|
55
|
+
"iap",
|
|
56
|
+
"iaa_iap",
|
|
57
|
+
"subscribable",
|
|
58
|
+
]))),
|
|
59
|
+
materialRatio: s.array("Creative aspect ratios.", s.nullableString("Aspect ratio from filterOptions.")),
|
|
60
|
+
blockIds: s.array("Creative IDs to exclude.", s.nullableString("Creative ID.")),
|
|
61
|
+
blockAppIds: s.array("Promoted product IDs to exclude.", s.nullableString("Product ID.")),
|
|
62
|
+
isPre: s.integer("Use 1 for games with preregistration campaigns, or 0 for other games."),
|
|
63
|
+
asr: s.integer("Use 1 for narrated creatives, or 0 for creatives without narration."),
|
|
64
|
+
asrLanguage: s.string("Narration language from filterOptions."),
|
|
65
|
+
searchDsl: s.array("Field-level search conditions. The upstream equal operator may not narrow results; prefer contain when appropriate.", s.nullable(s.object("A field-level search condition.", {
|
|
66
|
+
key: s.stringEnum("Field to search.", [
|
|
67
|
+
"campaign_name",
|
|
68
|
+
"appid",
|
|
69
|
+
"slogan",
|
|
70
|
+
"asr",
|
|
71
|
+
"brands_name",
|
|
72
|
+
"developer_name",
|
|
73
|
+
"website",
|
|
74
|
+
]),
|
|
75
|
+
type: s.stringEnum("Matching operator.", ["contain", "exclude", "equal", "notEqual"]),
|
|
76
|
+
value: s.string("Value to match."),
|
|
77
|
+
}, { required: ["key", "type", "value"] }))),
|
|
78
|
+
isViolation: s.integer("Use 1 for policy-violating game or app advertisements, or 0 for other advertisements."),
|
|
79
|
+
hasCooperate: s.integer("Use 1 for ads featuring a collaborating creator, or 0 for other ads."),
|
|
80
|
+
marketingWord: s.string("Game or app selling-point word returned by creativeSellingPointTrends."),
|
|
81
|
+
singleArea: s.integer("Use 1 for ads running in a single region, or 0 for other ads."),
|
|
82
|
+
postpage: s.integer("Use 1 to filter original advertising posts, or 0 for other creatives."),
|
|
83
|
+
hasPpid: s.integer("Custom product page filter for games or apps."),
|
|
84
|
+
excludeLowQuality: s.integer("Use 1 to exclude low-quality creatives, or 0 to include them. The provider excludes them by default."),
|
|
85
|
+
}, { required: ["purpose", "order"] });
|
|
86
|
+
const sellingPointInput = s.object("Selling-point trend filters for games and apps.", {
|
|
87
|
+
purpose: s.withEnum(s.integer("Promoted product: 1 game, 2 app."), [1, 2]),
|
|
88
|
+
category,
|
|
89
|
+
appStyle,
|
|
90
|
+
area,
|
|
91
|
+
wordAttr: s.array("Selling-point categories.", s.nullableString("Selling-point category from filterOptions.")),
|
|
92
|
+
keyword: s.string("Search keyword."),
|
|
93
|
+
order: s.stringEnum("Sort order.", [
|
|
94
|
+
"adverts_desc",
|
|
95
|
+
"material_cnt_desc",
|
|
96
|
+
"shot_cnt_desc",
|
|
97
|
+
"product_cnt_desc",
|
|
98
|
+
"ratio_desc",
|
|
99
|
+
]),
|
|
100
|
+
page,
|
|
101
|
+
}, { required: ["purpose"] });
|
|
102
|
+
export const appgrowingMcpActions = [
|
|
103
|
+
defineProviderAction(service, {
|
|
104
|
+
name: "filterOptions",
|
|
105
|
+
operationType: "read",
|
|
106
|
+
description: "List the advertising filters available to your AppGrowing account. Business queries consume account credits.",
|
|
107
|
+
requiredScopes: [],
|
|
108
|
+
inputSchema: s.object("No input is required.", {}),
|
|
109
|
+
outputSchema: resultSchema,
|
|
110
|
+
}),
|
|
111
|
+
defineProviderAction(service, {
|
|
112
|
+
name: "creativeResourceUrl",
|
|
113
|
+
operationType: "read",
|
|
114
|
+
description: "Refresh expired creative download links using the resource filenames, including their extensions.",
|
|
115
|
+
requiredScopes: [],
|
|
116
|
+
inputSchema: s.object("Resources whose download links should be refreshed.", {
|
|
117
|
+
key: s.array("Resource filenames from expired URLs, not resource IDs.", s.nullableString("Resource filename including its extension."), { minItems: 1 }),
|
|
118
|
+
}, { required: ["key"] }),
|
|
119
|
+
outputSchema: resultSchema,
|
|
120
|
+
}),
|
|
121
|
+
defineProviderAction(service, {
|
|
122
|
+
name: "searchAdCreatives",
|
|
123
|
+
operationType: "read",
|
|
124
|
+
description: "Find global advertising creatives by product, audience and campaign filters. Use filterOptions for valid IDs and page to continue through results.",
|
|
125
|
+
requiredScopes: [],
|
|
126
|
+
inputSchema: creativeSearchInput,
|
|
127
|
+
outputSchema: resultSchema,
|
|
128
|
+
}),
|
|
129
|
+
defineProviderAction(service, {
|
|
130
|
+
name: "creativeSellingPointTrends",
|
|
131
|
+
operationType: "read",
|
|
132
|
+
description: "Compare selling-point trends for games and apps by category, style and country.",
|
|
133
|
+
requiredScopes: [],
|
|
134
|
+
inputSchema: sellingPointInput,
|
|
135
|
+
outputSchema: resultSchema,
|
|
136
|
+
}),
|
|
137
|
+
defineProviderAction(service, {
|
|
138
|
+
name: "creativeAIAnalysisData",
|
|
139
|
+
operationType: "read",
|
|
140
|
+
description: "Read narration, selling points and AI analysis for up to 100 creative resources. Pair each resource ID with one of its ad format IDs.",
|
|
141
|
+
requiredScopes: [],
|
|
142
|
+
inputSchema: s.object("Creative resources to analyze.", {
|
|
143
|
+
ids: s.array("Resource IDs from material.creative.resource[].id, in their original form.", s.string("Creative resource ID."), { minItems: 1, maxItems: 100 }),
|
|
144
|
+
format: s.array("One material.format[].id for each resource, in the same order as ids.", s.integer("Ad format ID."), { minItems: 1, maxItems: 100 }),
|
|
145
|
+
}, { required: ["ids", "format"] }),
|
|
146
|
+
outputSchema: resultSchema,
|
|
147
|
+
}),
|
|
148
|
+
defineProviderAction(service, {
|
|
149
|
+
name: "list_tools",
|
|
150
|
+
operationType: "read",
|
|
151
|
+
description: "Discover current AppGrowing Global MCP tools, live argument schemas and behavior annotations for advertising creative, app, publisher and developer research.",
|
|
152
|
+
requiredScopes: [],
|
|
153
|
+
inputSchema: s.requiredObject("No input is required.", {}),
|
|
154
|
+
outputSchema: s.requiredObject("The live AppGrowing Global MCP tool catalog.", {
|
|
155
|
+
tools: s.array("Tools available to the connected AppGrowing Global account.", s.object("One AppGrowing Global MCP tool.", {
|
|
156
|
+
name: s.nonEmptyString("The exact tool name."),
|
|
157
|
+
description: s.string("The current official tool description."),
|
|
158
|
+
annotations: s.looseObject("Official MCP behavior annotations."),
|
|
159
|
+
inputSchema: s.looseObject("The current JSON Schema for tool arguments."),
|
|
160
|
+
}, { optional: ["description", "annotations"] })),
|
|
161
|
+
}),
|
|
162
|
+
followUpActions: ["appgrowing_mcp.call_tool"],
|
|
163
|
+
}),
|
|
164
|
+
defineProviderAction(service, {
|
|
165
|
+
name: "call_tool",
|
|
166
|
+
operationType: "destructive",
|
|
167
|
+
description: "Call any current AppGrowing Global MCP tool after inspecting list_tools. Arguments must match the live schema. Calls may consume AppGrowing credits; inspect behavior annotations before invoking newly added tools.",
|
|
168
|
+
requiredScopes: [],
|
|
169
|
+
inputSchema: s.object("Call a live AppGrowing Global MCP tool.", {
|
|
170
|
+
toolName: s.nonEmptyString("The exact tool name returned by list_tools."),
|
|
171
|
+
arguments: s.looseObject("Arguments matching the selected tool's live input schema."),
|
|
172
|
+
}, { optional: ["arguments"] }),
|
|
173
|
+
outputSchema: resultSchema,
|
|
174
|
+
}),
|
|
175
|
+
];
|
|
@@ -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,66 @@
|
|
|
1
|
+
import { sha256Hex } from "../../core/aws-sigv4.js";
|
|
2
|
+
import { recordOrEmpty } from "../../core/cast.js";
|
|
3
|
+
import { callMcpTool, listMcpTools } from "../mcp-tools.js";
|
|
4
|
+
import { defineApiKeyProviderExecutors, defineProviderProxy, mapProviderActionHandlers, requiredInputString, ProviderRequestError, readProviderProxyErrorMessage, withRetryAfterSeconds, } from "../provider-runtime.js";
|
|
5
|
+
import { appgrowingMcpActions } from "./actions.js";
|
|
6
|
+
const origin = "https://api-appgrowing-global.youcloud.com";
|
|
7
|
+
const endpoint = `${origin}/mcp`;
|
|
8
|
+
const defaultHeaders = {
|
|
9
|
+
accept: "application/json, text/event-stream",
|
|
10
|
+
"content-type": "application/json",
|
|
11
|
+
"accept-language": "en",
|
|
12
|
+
};
|
|
13
|
+
const handlers = mapProviderActionHandlers("appgrowing_mcp", appgrowingMcpActions, (action) => async (input, context) => {
|
|
14
|
+
if (action.name === "creativeAIAnalysisData" &&
|
|
15
|
+
input.ids.length !== input.format.length)
|
|
16
|
+
throw new ProviderRequestError(400, "ids and format must have the same length");
|
|
17
|
+
const connection = {
|
|
18
|
+
service: "AppGrowing",
|
|
19
|
+
endpoint,
|
|
20
|
+
headers: { ...defaultHeaders, authorization: `Bearer ${requiredInputString(context.apiKey, "API Key")}` },
|
|
21
|
+
fetcher: context.fetcher,
|
|
22
|
+
signal: context.signal,
|
|
23
|
+
// Cloudflare Workers rejects `redirect: "error"`; a 3xx under "manual" still fails the MCP request.
|
|
24
|
+
redirect: "manual",
|
|
25
|
+
maxResponseBytes: 16 * 1024 * 1024,
|
|
26
|
+
terminateSession: true,
|
|
27
|
+
};
|
|
28
|
+
if (action.name === "list_tools")
|
|
29
|
+
return { tools: await listMcpTools(connection, { includeAnnotations: true }) };
|
|
30
|
+
return {
|
|
31
|
+
result: await callMcpTool({
|
|
32
|
+
...connection,
|
|
33
|
+
toolName: action.name === "call_tool" ? requiredInputString(input.toolName, "toolName") : action.name,
|
|
34
|
+
arguments: action.name === "call_tool" ? recordOrEmpty(input.arguments) : input,
|
|
35
|
+
}),
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
export const executors = defineApiKeyProviderExecutors("appgrowing_mcp", handlers, {
|
|
39
|
+
skipDnsValidation: true,
|
|
40
|
+
});
|
|
41
|
+
export const credentialValidators = {
|
|
42
|
+
async apiKey(input) {
|
|
43
|
+
const hash = sha256Hex(requiredInputString(input.apiKey, "API Key"));
|
|
44
|
+
return {
|
|
45
|
+
profile: { accountId: `appgrowing-mcp:${hash}`, displayName: `AppGrowing Global · ${hash.slice(-6)}` },
|
|
46
|
+
metadata: { mcpEndpoint: endpoint, validationMode: "local_non_empty_key" },
|
|
47
|
+
};
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
export const proxy = defineProviderProxy({
|
|
51
|
+
service: "appgrowing_mcp",
|
|
52
|
+
baseUrl: origin,
|
|
53
|
+
auth: { type: "api_key_authorization", prefix: "Bearer " },
|
|
54
|
+
skipDnsValidation: true,
|
|
55
|
+
redirect: "manual",
|
|
56
|
+
customizeRequest({ url, headers }) {
|
|
57
|
+
if (url.href !== endpoint)
|
|
58
|
+
throw new ProviderRequestError(400, "AppGrowing proxy only supports the official /mcp endpoint without query parameters");
|
|
59
|
+
for (const [name, value] of Object.entries(defaultHeaders))
|
|
60
|
+
if (!headers.has(name))
|
|
61
|
+
headers.set(name, value);
|
|
62
|
+
},
|
|
63
|
+
async readError(response) {
|
|
64
|
+
return new ProviderRequestError(response.status, await readProviderProxyErrorMessage(response, "MCP proxy request failed"), withRetryAfterSeconds(response), response.status === 429 ? "rate_limited" : "provider_error");
|
|
65
|
+
},
|
|
66
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineApiKeyProviderExecutors } from "../provider-runtime.js";
|
|
2
|
+
import { arcmiraActionHandlers, validateArcmiraCredential } from "./runtime.js";
|
|
3
|
+
export const executors = defineApiKeyProviderExecutors("arcmira", arcmiraActionHandlers);
|
|
4
|
+
export const credentialValidators = {
|
|
5
|
+
apiKey(input, { fetcher, signal }) {
|
|
6
|
+
return validateArcmiraCredential({ apiKey: input.apiKey, fetcher, signal });
|
|
7
|
+
},
|
|
8
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { CredentialValidationResult } from "../../core/types.ts";
|
|
2
|
+
import type { ApiKeyProviderContext, ProviderActionHandlers } from "../provider-runtime.ts";
|
|
3
|
+
type Handler = (input: Record<string, unknown>, context: ApiKeyProviderContext) => Promise<unknown>;
|
|
4
|
+
export declare const arcmiraActionHandlers: ProviderActionHandlers<"arcmira", Handler>;
|
|
5
|
+
export declare function validateArcmiraCredential(context: ApiKeyProviderContext): Promise<CredentialValidationResult>;
|
|
6
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { optionalRecord, optionalString, requiredString, requiredStringArray } from "../../core/cast.js";
|
|
2
|
+
import { ProviderRequestError, providerResponseError, readProviderJsonBody, runProviderRequest, withRetryAfterSeconds, } from "../provider-runtime.js";
|
|
3
|
+
async function requestArcmira(context, path, input = {}) {
|
|
4
|
+
const url = new URL(`https://api.arcmira.com/v1/${path}`);
|
|
5
|
+
for (const [key, value] of Object.entries(input)) {
|
|
6
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
|
|
7
|
+
url.searchParams.set(key, String(value));
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
return runProviderRequest({ label: "Arcmira", signal: context.signal }, async (signal) => {
|
|
11
|
+
const response = await context.fetcher(url.toString(), {
|
|
12
|
+
headers: { Authorization: `Bearer ${context.apiKey}`, Accept: "application/json" },
|
|
13
|
+
signal,
|
|
14
|
+
});
|
|
15
|
+
const payload = await readProviderJsonBody(response, {
|
|
16
|
+
emptyBody: null,
|
|
17
|
+
invalidJsonMessage: "Arcmira returned invalid JSON",
|
|
18
|
+
});
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
const error = optionalRecord(optionalRecord(payload)?.error);
|
|
21
|
+
const status = response.status;
|
|
22
|
+
throw new ProviderRequestError(status, optionalString(error?.message) ?? `Arcmira returned HTTP ${response.status}`, withRetryAfterSeconds(response, payload), status === 402 ? "insufficient_credit" : status === 429 ? "rate_limited" : "provider_error");
|
|
23
|
+
}
|
|
24
|
+
return payload;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export const arcmiraActionHandlers = {
|
|
28
|
+
get_account: (_input, context) => requestArcmira(context, "me"),
|
|
29
|
+
resolve_entity: (input, context) => requestArcmira(context, "entities/resolve", input),
|
|
30
|
+
search_transcripts: (input, context) => requestArcmira(context, "search", input),
|
|
31
|
+
get_transcript: ({ video_id, ...query }, context) => requestArcmira(context, `transcripts/${encodeURIComponent(requiredString(video_id, "video_id"))}`, query),
|
|
32
|
+
};
|
|
33
|
+
export async function validateArcmiraCredential(context) {
|
|
34
|
+
const payload = optionalRecord(await requestArcmira(context, "me", {}));
|
|
35
|
+
const account = optionalRecord(payload?.account);
|
|
36
|
+
const accountId = requiredString(account?.id, "Arcmira account ID", providerResponseError);
|
|
37
|
+
return {
|
|
38
|
+
profile: { accountId, displayName: optionalString(account?.name) ?? accountId },
|
|
39
|
+
grantedScopes: requiredStringArray(payload?.scopes, "Arcmira scopes", providerResponseError),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
import type { IntegrationDefinition } from "../../triggers/common/integration.ts";
|
|
2
3
|
export declare const executors: ProviderExecutors;
|
|
3
4
|
export declare const proxy: ProviderProxyExecutor;
|
|
4
5
|
export declare const credentialValidators: CredentialValidators;
|
|
6
|
+
export declare const triggers: readonly IntegrationDefinition[];
|
|
@@ -8,6 +8,7 @@ import { taskActionHandlers } from "./runtime-tasks.js";
|
|
|
8
8
|
import { workspaceUserTeamActionHandlers } from "./runtime-workspaces-users-teams.js";
|
|
9
9
|
import { asanaApiBaseUrl, requestAsana } from "./runtime.js";
|
|
10
10
|
import { readAsanaGrantedScopes } from "./scopes.js";
|
|
11
|
+
import { asanaTaskEvent } from "./trigger-on-task-event.js";
|
|
11
12
|
const service = "asana";
|
|
12
13
|
const asanaValidationPath = "/users/me";
|
|
13
14
|
export const executors = defineBearerProviderExecutors(service, combineProviderActionHandlers(service, workspaceUserTeamActionHandlers, projectSectionActionHandlers, taskActionHandlers, storyTagActionHandlers, customFieldActionHandlers, attachmentActionHandlers));
|
|
@@ -60,3 +61,4 @@ async function validateAsanaCredential(accessToken, grantedScopes, fetcher, sign
|
|
|
60
61
|
}),
|
|
61
62
|
};
|
|
62
63
|
}
|
|
64
|
+
export const triggers = [asanaTaskEvent];
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
export const snapshot = {
|
|
3
|
+
key: "asana.on_task_event",
|
|
4
|
+
provider: "asana",
|
|
5
|
+
name: "on_task_event",
|
|
6
|
+
displayName: "Project Task Event",
|
|
7
|
+
description: "Receives tasks added to a project, completion changes, and selected custom field changes. Task details represent current state, not historical state.",
|
|
8
|
+
definitionVersion: 2,
|
|
9
|
+
type: "integration",
|
|
10
|
+
endpoint: { methods: ["POST"], body: { formats: ["json"], allowArray: false, allowEmpty: true }, successStatus: 200 },
|
|
11
|
+
configInputs: [
|
|
12
|
+
{ handle: "projectId", jsonSchema: { type: "string", minLength: 1, title: "Project ID" }, nullable: false },
|
|
13
|
+
{
|
|
14
|
+
handle: "eventTypes",
|
|
15
|
+
jsonSchema: {
|
|
16
|
+
type: "array",
|
|
17
|
+
items: { type: "string", enum: ["task.added", "task.completed", "task.field_changed"] },
|
|
18
|
+
minItems: 1,
|
|
19
|
+
uniqueItems: true,
|
|
20
|
+
title: "Events",
|
|
21
|
+
},
|
|
22
|
+
nullable: false,
|
|
23
|
+
value: ["task.added", "task.completed"],
|
|
24
|
+
},
|
|
25
|
+
{ handle: "customFieldId", jsonSchema: { type: "string", minLength: 1, title: "Custom field ID" }, nullable: true },
|
|
26
|
+
],
|
|
27
|
+
outputs: [
|
|
28
|
+
{ handle: "projectId", jsonSchema: s.string(), nullable: false },
|
|
29
|
+
{
|
|
30
|
+
handle: "events",
|
|
31
|
+
jsonSchema: {
|
|
32
|
+
type: "array",
|
|
33
|
+
items: {
|
|
34
|
+
type: "object",
|
|
35
|
+
properties: { event: s.string(), task: { type: "object" }, change: { type: "object" } },
|
|
36
|
+
required: ["event", "task", "change"],
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
nullable: false,
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
};
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { PermanentIntegrationError, TransientIntegrationError } from "../../triggers/common/integration.js";
|
|
2
|
+
import { isJsonObject } from "../../triggers/common/json.js";
|
|
3
|
+
import { reconcileManagedWebhook, webhookRequest } from "../../triggers/managed-webhook.js";
|
|
4
|
+
import { bytes, verifyHexHmac } from "../../triggers/signature.js";
|
|
5
|
+
import { snapshot } from "./trigger-on-task-event.definition.js";
|
|
6
|
+
export const asanaTaskEvent = {
|
|
7
|
+
snapshot,
|
|
8
|
+
initialState: { checkpoint: null, subscription: {} },
|
|
9
|
+
async reconcile(context) {
|
|
10
|
+
const projectId = String(context.config.projectId);
|
|
11
|
+
const selected = context.config.eventTypes;
|
|
12
|
+
if (selected.includes("task.field_changed") && typeof context.config.customFieldId != "string")
|
|
13
|
+
throw new PermanentIntegrationError("Select a custom field for task field changes.");
|
|
14
|
+
const project = await webhookRequest(context, {
|
|
15
|
+
endpoint: `/projects/${encodeURIComponent(projectId)}`,
|
|
16
|
+
method: "GET",
|
|
17
|
+
query: { opt_fields: "workspace.gid" },
|
|
18
|
+
});
|
|
19
|
+
if (!isJsonObject(project.data) ||
|
|
20
|
+
!isJsonObject(project.data.data) ||
|
|
21
|
+
!isJsonObject(project.data.data.workspace) ||
|
|
22
|
+
typeof project.data.data.workspace.gid != "string")
|
|
23
|
+
throw new TransientIntegrationError("Asana returned no project workspace.");
|
|
24
|
+
const workspace = project.data.data.workspace.gid;
|
|
25
|
+
const remove = async (id) => {
|
|
26
|
+
await webhookRequest(context, { endpoint: `/webhooks/${encodeURIComponent(id)}`, method: "DELETE" });
|
|
27
|
+
};
|
|
28
|
+
return reconcileManagedWebhook(context, {
|
|
29
|
+
async find() {
|
|
30
|
+
const found = [];
|
|
31
|
+
const query = {
|
|
32
|
+
workspace,
|
|
33
|
+
resource: projectId,
|
|
34
|
+
limit: 100,
|
|
35
|
+
opt_fields: "gid,target,resource.gid",
|
|
36
|
+
};
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
for (let page = 0; page < 100; page++) {
|
|
39
|
+
const response = await webhookRequest(context, { endpoint: "/webhooks", method: "GET", query });
|
|
40
|
+
if (!isJsonObject(response.data) || !Array.isArray(response.data.data))
|
|
41
|
+
throw new TransientIntegrationError("Asana returned an invalid webhook list.");
|
|
42
|
+
for (const item of response.data.data) {
|
|
43
|
+
if (!isJsonObject(item) || typeof item.target != "string" || typeof item.gid != "string")
|
|
44
|
+
throw new TransientIntegrationError("Asana returned an invalid webhook.");
|
|
45
|
+
if (item.target != context.endpointUrl)
|
|
46
|
+
continue;
|
|
47
|
+
if (!isJsonObject(item.resource) || item.resource.gid != projectId)
|
|
48
|
+
throw new PermanentIntegrationError("Asana webhook project does not match.");
|
|
49
|
+
found.push({
|
|
50
|
+
id: item.gid,
|
|
51
|
+
secret: context.state?.subscription.hookId == item.gid && typeof context.state.subscription.secret == "string"
|
|
52
|
+
? context.state.subscription.secret
|
|
53
|
+
: "",
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
const next = response.data.next_page;
|
|
57
|
+
if (next == null)
|
|
58
|
+
break;
|
|
59
|
+
if (!isJsonObject(next) || typeof next.offset != "string" || seen.has(next.offset))
|
|
60
|
+
throw new TransientIntegrationError("Asana webhook pagination did not advance.");
|
|
61
|
+
seen.add(next.offset);
|
|
62
|
+
query.offset = next.offset;
|
|
63
|
+
if (page == 99)
|
|
64
|
+
throw new PermanentIntegrationError("The Asana webhook list exceeds 10000 entries.");
|
|
65
|
+
}
|
|
66
|
+
if (found.length == 1 && !found[0].secret && context.active) {
|
|
67
|
+
// Recover the unique owned orphan by deleting it before recreating its unreadable secret.
|
|
68
|
+
await remove(found[0].id);
|
|
69
|
+
await context.state.saveSubscription({}, context.now);
|
|
70
|
+
return [];
|
|
71
|
+
}
|
|
72
|
+
return found;
|
|
73
|
+
},
|
|
74
|
+
async create() {
|
|
75
|
+
const response = await webhookRequest(context, {
|
|
76
|
+
endpoint: "/webhooks",
|
|
77
|
+
method: "POST",
|
|
78
|
+
body: {
|
|
79
|
+
data: {
|
|
80
|
+
resource: projectId,
|
|
81
|
+
target: context.endpointUrl,
|
|
82
|
+
filters: [
|
|
83
|
+
{ resource_type: "task", action: "added" },
|
|
84
|
+
{ resource_type: "task", action: "changed", fields: ["completed", "custom_fields"] },
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
if (!isJsonObject(response.data) ||
|
|
90
|
+
!isJsonObject(response.data.data) ||
|
|
91
|
+
typeof response.data.data.gid != "string" ||
|
|
92
|
+
typeof response.data["X-Hook-Secret"] != "string" ||
|
|
93
|
+
!response.data["X-Hook-Secret"])
|
|
94
|
+
throw new TransientIntegrationError("Asana webhook creation returned no identity or signing secret.");
|
|
95
|
+
return { id: response.data.data.gid, secret: response.data["X-Hook-Secret"] };
|
|
96
|
+
},
|
|
97
|
+
remove,
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
async receive(context) {
|
|
101
|
+
const secret = context.state?.subscription.secret;
|
|
102
|
+
if (typeof secret != "string")
|
|
103
|
+
return { outcome: "respond", status: 503, body: "", contentType: "text/plain" };
|
|
104
|
+
if (!(await verifyHexHmac(secret, [context.rawBody], context.header("x-hook-signature"))))
|
|
105
|
+
return { outcome: "respond", status: 401, body: "", contentType: "text/plain" };
|
|
106
|
+
const payload = context.payload;
|
|
107
|
+
if (!isJsonObject(payload) || !Array.isArray(payload.events))
|
|
108
|
+
return { outcome: "respond", status: 400, body: "", contentType: "text/plain" };
|
|
109
|
+
const events = [];
|
|
110
|
+
const identities = [];
|
|
111
|
+
const selected = context.config.eventTypes;
|
|
112
|
+
for (const item of payload.events) {
|
|
113
|
+
if (!isJsonObject(item) || !isJsonObject(item.resource) || item.resource.resource_type != "task")
|
|
114
|
+
continue;
|
|
115
|
+
if (typeof item.resource.gid != "string" || typeof item.created_at != "string")
|
|
116
|
+
return { outcome: "respond", status: 400, body: "", contentType: "text/plain" };
|
|
117
|
+
let event;
|
|
118
|
+
if (item.action == "added" && isJsonObject(item.parent) && item.parent.gid == context.config.projectId)
|
|
119
|
+
event = "task.added";
|
|
120
|
+
if (item.action == "changed" && isJsonObject(item.change)) {
|
|
121
|
+
if (item.change.field == "completed")
|
|
122
|
+
event = "task.completed";
|
|
123
|
+
if (item.change.field == "custom_fields" &&
|
|
124
|
+
isJsonObject(item.change.new_value) &&
|
|
125
|
+
item.change.new_value.gid == context.config.customFieldId)
|
|
126
|
+
event = "task.field_changed";
|
|
127
|
+
}
|
|
128
|
+
if (!event || !selected.includes(event))
|
|
129
|
+
continue;
|
|
130
|
+
const response = await context.connector.execute({
|
|
131
|
+
endpoint: `/tasks/${encodeURIComponent(item.resource.gid)}`,
|
|
132
|
+
method: "GET",
|
|
133
|
+
query: { opt_fields: "gid,name,completed,memberships.project.gid,custom_fields" },
|
|
134
|
+
}, context.signal);
|
|
135
|
+
if (response.status == 404)
|
|
136
|
+
continue;
|
|
137
|
+
if (response.status < 200 || response.status >= 300)
|
|
138
|
+
throw new TransientIntegrationError(`Asana task lookup failed (HTTP ${response.status}).`);
|
|
139
|
+
if (!isJsonObject(response.data) ||
|
|
140
|
+
!isJsonObject(response.data.data) ||
|
|
141
|
+
!Array.isArray(response.data.data.memberships))
|
|
142
|
+
throw new TransientIntegrationError("Asana returned invalid task details.");
|
|
143
|
+
const task = response.data.data;
|
|
144
|
+
if (!task.memberships.some((member) => isJsonObject(member) && isJsonObject(member.project) && member.project.gid == context.config.projectId))
|
|
145
|
+
continue;
|
|
146
|
+
if (event == "task.completed" && task.completed !== true)
|
|
147
|
+
continue;
|
|
148
|
+
events.push({ event, task, change: item });
|
|
149
|
+
identities.push(JSON.stringify(item));
|
|
150
|
+
}
|
|
151
|
+
if (!events.length)
|
|
152
|
+
return { outcome: "ignored", reason: "No matching project task changes." };
|
|
153
|
+
const digest = await crypto.subtle.digest("SHA-256", bytes(JSON.stringify(identities.sort())));
|
|
154
|
+
return {
|
|
155
|
+
outcome: "event",
|
|
156
|
+
dedupeKey: Array.from(new Uint8Array(digest), (value) => value.toString(16).padStart(2, "0")).join(""),
|
|
157
|
+
outputs: { projectId: context.config.projectId, events },
|
|
158
|
+
};
|
|
159
|
+
},
|
|
160
|
+
};
|