@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,4 @@
|
|
|
1
|
+
import type { CredentialValidators, ProviderExecutors, ProviderProxyExecutor } from "../../core/types.ts";
|
|
2
|
+
export declare const credentialValidators: CredentialValidators;
|
|
3
|
+
export declare const executors: ProviderExecutors;
|
|
4
|
+
export declare const proxy: ProviderProxyExecutor;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { optionalRecord, optionalString } from "../../core/cast.js";
|
|
2
|
+
import { requiredResponseRecord, runProviderRequest, ProviderRequestError, providerInputError, providerResponseError, defineApiKeyProviderExecutors, defineProviderProxy, } from "../provider-runtime.js";
|
|
3
|
+
import { ploidActions } from "./actions.js";
|
|
4
|
+
import { ploidEndpointByName } from "./actions.js";
|
|
5
|
+
const baseUrl = "https://api.ploid.com";
|
|
6
|
+
async function request(apiKey, name, input, fetcher, parentSignal) {
|
|
7
|
+
const endpoint = ploidEndpointByName.get(name);
|
|
8
|
+
let path = endpoint.path;
|
|
9
|
+
for (const key of endpoint.pathKeys) {
|
|
10
|
+
const value = String(input[key]);
|
|
11
|
+
if (value === "." || value === "..")
|
|
12
|
+
throw providerInputError(`${key} must not be a dot path segment`);
|
|
13
|
+
path = path.replace(`{${key}}`, encodeURIComponent(value));
|
|
14
|
+
}
|
|
15
|
+
const url = new URL(path, baseUrl);
|
|
16
|
+
for (const key of endpoint.queryKeys) {
|
|
17
|
+
if (input[key] !== undefined)
|
|
18
|
+
url.searchParams.set(key, String(input[key]));
|
|
19
|
+
}
|
|
20
|
+
if (name === "export_set")
|
|
21
|
+
url.searchParams.set("format", "json");
|
|
22
|
+
const body = optionalRecord(input.body);
|
|
23
|
+
const data = name === "start_dataset" ? { ...body, mode: "async" } : body;
|
|
24
|
+
const timeoutMs = name === "sync_people_search"
|
|
25
|
+
? 150000
|
|
26
|
+
: name === "create_harness_chat_completion"
|
|
27
|
+
? 100000
|
|
28
|
+
: name === "enrich_person"
|
|
29
|
+
? 90000
|
|
30
|
+
: name === "create_dataset"
|
|
31
|
+
? 70000
|
|
32
|
+
: undefined;
|
|
33
|
+
return runProviderRequest({ label: "Ploid", timeoutMs, signal: parentSignal }, async (signal) => {
|
|
34
|
+
const headers = new Headers({ authorization: `Bearer ${apiKey}`, accept: "application/json" });
|
|
35
|
+
if (data !== undefined)
|
|
36
|
+
headers.set("content-type", "application/json");
|
|
37
|
+
const idempotencyKey = optionalString(input.idempotencyKey);
|
|
38
|
+
if (idempotencyKey !== undefined)
|
|
39
|
+
headers.set("Idempotency-Key", idempotencyKey);
|
|
40
|
+
const response = await fetcher(url, {
|
|
41
|
+
method: endpoint.method,
|
|
42
|
+
headers,
|
|
43
|
+
body: data === undefined ? undefined : JSON.stringify(data),
|
|
44
|
+
signal,
|
|
45
|
+
});
|
|
46
|
+
const text = await response.text();
|
|
47
|
+
let payload;
|
|
48
|
+
if (text.trim()) {
|
|
49
|
+
try {
|
|
50
|
+
payload = JSON.parse(text);
|
|
51
|
+
}
|
|
52
|
+
catch { }
|
|
53
|
+
}
|
|
54
|
+
if (!response.ok) {
|
|
55
|
+
const error = optionalRecord(optionalRecord(payload)?.error);
|
|
56
|
+
const code = optionalString(error?.code);
|
|
57
|
+
const message = optionalString(error?.message);
|
|
58
|
+
const requestId = optionalString(error?.request_id);
|
|
59
|
+
const detail = [code, message, requestId ? `request_id=${requestId}` : undefined].filter(Boolean).join(": ");
|
|
60
|
+
throw new ProviderRequestError(response.status, `Ploid request failed (${response.status})${detail ? `: ${detail}` : ""}`, undefined, code && ["invalid_api_key", "expired_api_key", "revoked_api_key"].includes(code)
|
|
61
|
+
? "authorization_failed"
|
|
62
|
+
: code === "insufficient_scope"
|
|
63
|
+
? "authorization_failed"
|
|
64
|
+
: "provider_error");
|
|
65
|
+
}
|
|
66
|
+
if (name === "enrich_person" &&
|
|
67
|
+
body?.response_format === "markdown" &&
|
|
68
|
+
response.headers.get("content-type")?.includes("text/markdown"))
|
|
69
|
+
return { markdown: text };
|
|
70
|
+
if (name === "delete_monitor" && !text.trim())
|
|
71
|
+
return { success: true };
|
|
72
|
+
if (name === "export_set" && Array.isArray(payload))
|
|
73
|
+
return { items: payload };
|
|
74
|
+
const result = requiredResponseRecord(payload, "Ploid response");
|
|
75
|
+
if (name === "get_person" || name === "get_person_run") {
|
|
76
|
+
if (!("data" in result))
|
|
77
|
+
throw providerResponseError("Ploid person response is missing data");
|
|
78
|
+
const person = optionalRecord(result.data);
|
|
79
|
+
const runId = optionalString(person?.run_id);
|
|
80
|
+
const pendingStatus = optionalString(person?.status);
|
|
81
|
+
if (runId && !pendingStatus)
|
|
82
|
+
throw providerResponseError("Ploid person run is missing status");
|
|
83
|
+
return {
|
|
84
|
+
...result,
|
|
85
|
+
status: runId ? pendingStatus : "completed",
|
|
86
|
+
run_id: runId ?? (name === "get_person_run" ? String(input.id) : undefined),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
async function execute(actionName, values, context) {
|
|
93
|
+
const { apiKey, fetcher } = context;
|
|
94
|
+
return request(apiKey, actionName, values, fetcher, context.signal);
|
|
95
|
+
}
|
|
96
|
+
export const credentialValidators = {
|
|
97
|
+
async apiKey(input, { fetcher, signal }) {
|
|
98
|
+
const result = await request(input.apiKey, "get_account_profile", {}, fetcher, signal);
|
|
99
|
+
const profile = requiredResponseRecord(result.data, "Ploid account profile");
|
|
100
|
+
const name = [optionalString(profile.first_name), optionalString(profile.last_name)]
|
|
101
|
+
.filter(Boolean)
|
|
102
|
+
.join(" ")
|
|
103
|
+
.trim();
|
|
104
|
+
return {
|
|
105
|
+
profile: { displayName: name || optionalString(profile.email) || "Ploid API Key" },
|
|
106
|
+
grantedScopes: [],
|
|
107
|
+
metadata: { apiBaseUrl: baseUrl },
|
|
108
|
+
};
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
export const executors = defineApiKeyProviderExecutors("ploid", Object.fromEntries(ploidActions.map((action) => [action.name, (values, context) => execute(action.name, values, context)])));
|
|
112
|
+
export const proxy = defineProviderProxy({
|
|
113
|
+
service: "ploid",
|
|
114
|
+
baseUrl: baseUrl,
|
|
115
|
+
auth: { type: "api_key_authorization", prefix: "Bearer " },
|
|
116
|
+
customizeRequest({ headers }) {
|
|
117
|
+
headers.set("accept", "application/json");
|
|
118
|
+
},
|
|
119
|
+
});
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { jsonSchema as s } from "../../core/json-schema.js";
|
|
2
|
+
import { defineProviderAction } from "../../core/provider-definition.js";
|
|
3
|
+
const emailId = s.nonEmptyString("Provider-prefixed email ID, such as google:abc123 or m365:xyz789.");
|
|
4
|
+
const bodyType = s.stringEnum("Body content type; defaults to html.", ["html", "text"]);
|
|
5
|
+
const participant = s.object("Email recipient.", {
|
|
6
|
+
email: s.nonEmptyString("Email address."),
|
|
7
|
+
name: s.string("Display name."),
|
|
8
|
+
}, { optional: ["name"] });
|
|
9
|
+
const recipients = s.array("Recipient addresses and optional display names.", participant, {
|
|
10
|
+
minItems: 1,
|
|
11
|
+
});
|
|
12
|
+
const email = s.looseObject("Email with permission-filtered fields and attachment metadata; additional fields are preserved.", {
|
|
13
|
+
id: s.string("Provider-prefixed email ID."),
|
|
14
|
+
threadId: s.nullable(s.string("Provider-prefixed thread ID.")),
|
|
15
|
+
subject: s.nullable(s.string("Email subject.")),
|
|
16
|
+
from: s.nullable(s.looseObject("Sender details.", {})),
|
|
17
|
+
to: s.nullable(s.array("Recipients.", s.looseObject("Recipient details.", {}))),
|
|
18
|
+
body: s.nullable(s.string("Email body when requested and permitted.")),
|
|
19
|
+
bodyPreview: s.nullable(s.string("Short body preview.")),
|
|
20
|
+
bodyType: s.nullable(s.string("Body content type.")),
|
|
21
|
+
receivedAt: s.nullable(s.string("Receipt timestamp in UTC.")),
|
|
22
|
+
isRead: s.boolean("Whether the email is read."),
|
|
23
|
+
hasAttachments: s.boolean("Whether attachments exist."),
|
|
24
|
+
attachments: s.nullable(s.array("Attachment metadata; no file content is downloaded.", s.looseObject("Attachment details.", {}))),
|
|
25
|
+
labels: s.nullable(s.stringArray("Labels or categories.")),
|
|
26
|
+
provider: s.string("Source provider, such as GOOGLE or M365."),
|
|
27
|
+
emailAccountOwner: s.nullable(s.string("Mailbox owner address.")),
|
|
28
|
+
});
|
|
29
|
+
const sent = s.looseObject("Send result; Microsoft 365 can return null message and thread IDs.", {
|
|
30
|
+
success: s.boolean("Whether the operation succeeded."),
|
|
31
|
+
emailId: s.nullable(s.string("Provider-prefixed sent email ID, when available.")),
|
|
32
|
+
threadId: s.nullable(s.string("Provider-prefixed thread ID, when available.")),
|
|
33
|
+
errorMessage: s.nullable(s.string("Upstream failure details, when available.")),
|
|
34
|
+
});
|
|
35
|
+
const success = s.requiredObject("Successful operation result.", {
|
|
36
|
+
success: s.boolean("Whether the operation succeeded."),
|
|
37
|
+
});
|
|
38
|
+
export const portedenActions = [
|
|
39
|
+
defineProviderAction("porteden", {
|
|
40
|
+
name: "search_emails",
|
|
41
|
+
operationType: "read",
|
|
42
|
+
requiredScopes: [],
|
|
43
|
+
description: "Search emails across connected Gmail and Microsoft 365 accounts. Email access and search_emails permission must be enabled in PortEden; pass nextPageToken as pageToken to continue.",
|
|
44
|
+
inputSchema: s.object("Email search filters and pagination.", {
|
|
45
|
+
q: s.string("Free-text search query."),
|
|
46
|
+
from: s.string("Filter by sender email address."),
|
|
47
|
+
to: s.string("Filter by recipient email address."),
|
|
48
|
+
subject: s.string("Partial subject filter."),
|
|
49
|
+
label: s.string("Label or category filter."),
|
|
50
|
+
unread: s.boolean("Filter by read status; true selects unread emails."),
|
|
51
|
+
after: s.string("Emails received after this UTC timestamp.", { format: "date-time" }),
|
|
52
|
+
before: s.string("Emails received before this UTC timestamp.", { format: "date-time" }),
|
|
53
|
+
hasAttachment: s.boolean("Filter by attachment presence."),
|
|
54
|
+
limit: s.integer("Maximum results; defaults to 20, at most 50.", {
|
|
55
|
+
minimum: 1,
|
|
56
|
+
maximum: 50,
|
|
57
|
+
}),
|
|
58
|
+
includeBody: s.boolean("Include full bodies; defaults to false."),
|
|
59
|
+
pageToken: s.string("Opaque nextPageToken from the previous result."),
|
|
60
|
+
}, { required: [] }),
|
|
61
|
+
outputSchema: s.looseObject("Merged email search results sorted newest first.", {
|
|
62
|
+
emails: s.array("Matching emails.", email),
|
|
63
|
+
totalCount: s.integer("Total matching count reported by PortEden."),
|
|
64
|
+
hasMore: s.boolean("Whether more results are available."),
|
|
65
|
+
nextPageToken: s.nullable(s.string("Opaque continuation token.")),
|
|
66
|
+
accessInfo: s.unknown("Active access restrictions, if present."),
|
|
67
|
+
authWarnings: s.unknown("Upstream account authentication warnings, if present."),
|
|
68
|
+
}),
|
|
69
|
+
}),
|
|
70
|
+
defineProviderAction("porteden", {
|
|
71
|
+
name: "get_email",
|
|
72
|
+
operationType: "read",
|
|
73
|
+
requiredScopes: [],
|
|
74
|
+
description: "Read a provider-prefixed email, including its body by default, subject to PortEden view_email permissions.",
|
|
75
|
+
inputSchema: s.object("Email lookup.", { emailId, includeBody: s.boolean("Include full body; defaults to true.") }, { optional: ["includeBody"] }),
|
|
76
|
+
outputSchema: email,
|
|
77
|
+
}),
|
|
78
|
+
defineProviderAction("porteden", {
|
|
79
|
+
name: "get_thread",
|
|
80
|
+
operationType: "read",
|
|
81
|
+
requiredScopes: [],
|
|
82
|
+
description: "Read a complete email thread in chronological order with body content, subject to PortEden view_thread permissions.",
|
|
83
|
+
inputSchema: s.requiredObject("Thread lookup.", {
|
|
84
|
+
threadId: s.nonEmptyString("Provider-prefixed thread ID, such as google:abc123 or m365:xyz789."),
|
|
85
|
+
}),
|
|
86
|
+
outputSchema: s.looseObject("Email thread.", {
|
|
87
|
+
id: s.string("Provider-prefixed thread ID."),
|
|
88
|
+
subject: s.nullable(s.string("Thread subject.")),
|
|
89
|
+
messages: s.array("Messages in chronological order.", email),
|
|
90
|
+
messageCount: s.integer("Message count."),
|
|
91
|
+
participants: s.array("Thread participants.", s.looseObject("Participant details.", {})),
|
|
92
|
+
lastMessageAt: s.nullable(s.string("Most recent message timestamp.")),
|
|
93
|
+
provider: s.string("Source provider."),
|
|
94
|
+
}),
|
|
95
|
+
}),
|
|
96
|
+
defineProviderAction("porteden", {
|
|
97
|
+
name: "send_email",
|
|
98
|
+
operationType: "write",
|
|
99
|
+
requiredScopes: [],
|
|
100
|
+
description: "Send an email through a connected account with PortEden send_email permission. Choose sendFrom or connectionId when needed; the default account is otherwise used.",
|
|
101
|
+
inputSchema: s.object("New email.", {
|
|
102
|
+
to: recipients,
|
|
103
|
+
cc: s.array("Recipient addresses and optional display names.", participant),
|
|
104
|
+
bcc: s.array("Recipient addresses and optional display names.", participant),
|
|
105
|
+
subject: s.string("Email subject."),
|
|
106
|
+
body: s.string("Email body content."),
|
|
107
|
+
bodyType,
|
|
108
|
+
importance: s.stringEnum("Priority; defaults to normal.", ["low", "normal", "high"]),
|
|
109
|
+
sendFrom: s.nonEmptyString("Connected account email address to send from."),
|
|
110
|
+
connectionId: s.integer("Provider connection ID to send from."),
|
|
111
|
+
}, { optional: ["cc", "bcc", "bodyType", "importance", "sendFrom", "connectionId"] }),
|
|
112
|
+
outputSchema: sent,
|
|
113
|
+
}),
|
|
114
|
+
defineProviderAction("porteden", {
|
|
115
|
+
name: "reply_email",
|
|
116
|
+
operationType: "write",
|
|
117
|
+
requiredScopes: [],
|
|
118
|
+
description: "Reply to an email, preserving its thread, with PortEden reply_to_email permission.",
|
|
119
|
+
inputSchema: s.object("Email reply.", {
|
|
120
|
+
emailId,
|
|
121
|
+
body: s.string("Reply body content."),
|
|
122
|
+
bodyType,
|
|
123
|
+
replyAll: s.boolean("Reply to all original recipients except the sending account; defaults to false."),
|
|
124
|
+
}, { optional: ["bodyType", "replyAll"] }),
|
|
125
|
+
outputSchema: sent,
|
|
126
|
+
}),
|
|
127
|
+
defineProviderAction("porteden", {
|
|
128
|
+
name: "forward_email",
|
|
129
|
+
operationType: "write",
|
|
130
|
+
requiredScopes: [],
|
|
131
|
+
description: "Forward an email to recipients with PortEden forward_email permission.",
|
|
132
|
+
inputSchema: s.object("Email forwarding options.", {
|
|
133
|
+
emailId,
|
|
134
|
+
to: recipients,
|
|
135
|
+
cc: s.array("Recipient addresses and optional display names.", participant),
|
|
136
|
+
body: s.string("Optional message to prepend."),
|
|
137
|
+
bodyType,
|
|
138
|
+
}, { optional: ["cc", "body", "bodyType"] }),
|
|
139
|
+
outputSchema: sent,
|
|
140
|
+
}),
|
|
141
|
+
defineProviderAction("porteden", {
|
|
142
|
+
name: "modify_email",
|
|
143
|
+
operationType: "write",
|
|
144
|
+
requiredScopes: [],
|
|
145
|
+
description: "Change read status or labels/categories. PortEden requires mark_as_read and/or apply_labels permission for the requested changes.",
|
|
146
|
+
inputSchema: s.requireAnyProperty(s.object("Email property changes.", {
|
|
147
|
+
emailId,
|
|
148
|
+
markAsRead: s.boolean("Mark as read (true) or unread (false)."),
|
|
149
|
+
addLabels: s.stringArray("Labels or categories to add."),
|
|
150
|
+
removeLabels: s.stringArray("Labels or categories to remove."),
|
|
151
|
+
}, { optional: ["markAsRead", "addLabels", "removeLabels"] }), ["markAsRead", "addLabels", "removeLabels"]),
|
|
152
|
+
outputSchema: success,
|
|
153
|
+
}),
|
|
154
|
+
defineProviderAction("porteden", {
|
|
155
|
+
name: "delete_email",
|
|
156
|
+
operationType: "destructive",
|
|
157
|
+
requiredScopes: [],
|
|
158
|
+
description: "Move an email to Trash or Deleted Items with PortEden delete_email permission. This is a recoverable soft delete.",
|
|
159
|
+
inputSchema: s.requiredObject("Email to move to trash.", { emailId }),
|
|
160
|
+
outputSchema: success,
|
|
161
|
+
}),
|
|
162
|
+
];
|
|
@@ -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,140 @@
|
|
|
1
|
+
import { optionalRecord, optionalRawString } from "../../core/cast.js";
|
|
2
|
+
import { requiredInputString, requiredResponseRecord, ProviderRequestError, runProviderRequest, defineApiKeyProviderExecutors, defineProviderProxy, mapProviderActionHandlers, readProviderProxyErrorMessage, withRetryAfterSeconds, } from "../provider-runtime.js";
|
|
3
|
+
import { portedenActions } from "./actions.js";
|
|
4
|
+
const baseUrl = "https://api.porteden.com";
|
|
5
|
+
const defaultHeaders = { accept: "application/json" };
|
|
6
|
+
async function request({ route, method, data, apiKey, fetcher, parentSignal }) {
|
|
7
|
+
try {
|
|
8
|
+
return await runProviderRequest({ signal: parentSignal, label: "PortEden" }, async (signal) => {
|
|
9
|
+
const url = new URL(`${baseUrl}${route}`);
|
|
10
|
+
if (method === "GET") {
|
|
11
|
+
for (const [key, value] of Object.entries(data)) {
|
|
12
|
+
if (value != null)
|
|
13
|
+
url.searchParams.set(key, String(value));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const hasBody = method === "POST" || method === "PATCH";
|
|
17
|
+
const headers = new Headers(defaultHeaders);
|
|
18
|
+
headers.set("Authorization", `Bearer ${apiKey}`);
|
|
19
|
+
if (hasBody)
|
|
20
|
+
headers.set("content-type", "application/json");
|
|
21
|
+
const response = await fetcher(url.toString(), {
|
|
22
|
+
method,
|
|
23
|
+
headers,
|
|
24
|
+
body: hasBody ? JSON.stringify(data) : undefined,
|
|
25
|
+
signal,
|
|
26
|
+
});
|
|
27
|
+
if (response.status === 204 && (method === "PATCH" || method === "DELETE"))
|
|
28
|
+
return { success: true };
|
|
29
|
+
const text = await response.text();
|
|
30
|
+
let payload;
|
|
31
|
+
try {
|
|
32
|
+
payload = JSON.parse(text);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
payload = undefined;
|
|
36
|
+
}
|
|
37
|
+
const body = optionalRecord(payload);
|
|
38
|
+
if (!response.ok || body?.success === false) {
|
|
39
|
+
const detail = [
|
|
40
|
+
optionalRawString(body?.code),
|
|
41
|
+
optionalRawString(body?.error),
|
|
42
|
+
optionalRawString(body?.message),
|
|
43
|
+
optionalRawString(body?.errorMessage),
|
|
44
|
+
]
|
|
45
|
+
.filter(Boolean)
|
|
46
|
+
.join(": ") || `HTTP ${response.status}`;
|
|
47
|
+
throw new ProviderRequestError(response.ok ? 502 : response.status, `PortEden request failed: ${detail}`, undefined, body?.error === "API authentication failed"
|
|
48
|
+
? "authorization_failed"
|
|
49
|
+
: response.status === 429
|
|
50
|
+
? "rate_limited"
|
|
51
|
+
: "provider_error");
|
|
52
|
+
}
|
|
53
|
+
return requiredResponseRecord(payload, "PortEden response");
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
if (error instanceof ProviderRequestError)
|
|
58
|
+
error.message = error.message.split(apiKey).join("[REDACTED]");
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const handlers = mapProviderActionHandlers("porteden", portedenActions, (action) => async (dataInput, context) => {
|
|
63
|
+
const { emailId, threadId, ...data } = dataInput;
|
|
64
|
+
let route = "/api/access/email/messages";
|
|
65
|
+
let method = "GET";
|
|
66
|
+
switch (action.name) {
|
|
67
|
+
case "get_email":
|
|
68
|
+
route += `/${encodeURIComponent(String(emailId))}`;
|
|
69
|
+
break;
|
|
70
|
+
case "get_thread":
|
|
71
|
+
route = `/api/access/email/threads/${encodeURIComponent(String(threadId))}`;
|
|
72
|
+
break;
|
|
73
|
+
case "send_email":
|
|
74
|
+
route += "/send";
|
|
75
|
+
method = "POST";
|
|
76
|
+
break;
|
|
77
|
+
case "reply_email":
|
|
78
|
+
route += `/${encodeURIComponent(String(emailId))}/reply`;
|
|
79
|
+
method = "POST";
|
|
80
|
+
break;
|
|
81
|
+
case "forward_email":
|
|
82
|
+
route += `/${encodeURIComponent(String(emailId))}/forward`;
|
|
83
|
+
method = "POST";
|
|
84
|
+
break;
|
|
85
|
+
case "modify_email":
|
|
86
|
+
route += `/${encodeURIComponent(String(emailId))}`;
|
|
87
|
+
method = "PATCH";
|
|
88
|
+
break;
|
|
89
|
+
case "delete_email":
|
|
90
|
+
route += `/${encodeURIComponent(String(emailId))}`;
|
|
91
|
+
method = "DELETE";
|
|
92
|
+
break;
|
|
93
|
+
}
|
|
94
|
+
return request({
|
|
95
|
+
route: route,
|
|
96
|
+
method: method,
|
|
97
|
+
data: data,
|
|
98
|
+
apiKey: context.apiKey,
|
|
99
|
+
fetcher: context.fetcher,
|
|
100
|
+
parentSignal: context.signal,
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
export const executors = defineApiKeyProviderExecutors("porteden", handlers, {
|
|
104
|
+
skipDnsValidation: true,
|
|
105
|
+
});
|
|
106
|
+
export const credentialValidators = {
|
|
107
|
+
async apiKey(input, { fetcher, signal }) {
|
|
108
|
+
const body = await request({
|
|
109
|
+
route: "/api/auth/token/status",
|
|
110
|
+
method: "GET",
|
|
111
|
+
data: {},
|
|
112
|
+
apiKey: requiredInputString(input.apiKey, "API Key"),
|
|
113
|
+
fetcher: fetcher,
|
|
114
|
+
parentSignal: signal,
|
|
115
|
+
});
|
|
116
|
+
if (body.authenticated !== true)
|
|
117
|
+
throw new ProviderRequestError(400, "PortEden token is not authenticated", undefined, "invalid_input");
|
|
118
|
+
return {
|
|
119
|
+
profile: {
|
|
120
|
+
displayName: optionalRawString(body.operatorName) || optionalRawString(body.userName) || "PortEden API Key",
|
|
121
|
+
},
|
|
122
|
+
grantedScopes: [],
|
|
123
|
+
metadata: { apiBaseUrl: baseUrl },
|
|
124
|
+
};
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
export const proxy = defineProviderProxy({
|
|
128
|
+
service: "porteden",
|
|
129
|
+
baseUrl,
|
|
130
|
+
auth: { type: "api_key_authorization", prefix: "Bearer " },
|
|
131
|
+
skipDnsValidation: true,
|
|
132
|
+
customizeRequest({ headers }) {
|
|
133
|
+
for (const [name, value] of Object.entries({ accept: "application/json" }))
|
|
134
|
+
if (!headers.has(name))
|
|
135
|
+
headers.set(name, value);
|
|
136
|
+
},
|
|
137
|
+
async readError(response) {
|
|
138
|
+
return new ProviderRequestError(response.status, await readProviderProxyErrorMessage(response, "Provider request failed"), withRetryAfterSeconds(response), response.status === 429 ? "rate_limited" : "provider_error");
|
|
139
|
+
},
|
|
140
|
+
});
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ProviderErrorCode } from "../core/provider-error-codes.ts";
|
|
1
2
|
import type { ProviderDispatchContext, ProviderHttpDispatchOptions } from "../core/provider-http-dispatch.ts";
|
|
2
3
|
import type { ActionExecutor, ExecutionContext, ExecutionResult, ProviderExecutors, ProviderProxyExecutor, ProxyExecutionResult, ProxyResponse, ResolvedCredential, TransitFileWriter } from "../core/types.ts";
|
|
3
4
|
import type { ProviderActionNames } from "./action-contracts.generated.ts";
|
|
@@ -149,8 +150,8 @@ export interface ProviderInputFile {
|
|
|
149
150
|
export declare class ProviderRequestError extends Error {
|
|
150
151
|
readonly status: number;
|
|
151
152
|
readonly details?: unknown;
|
|
152
|
-
readonly code?:
|
|
153
|
-
constructor(status: number, message: string, details?: unknown, code?:
|
|
153
|
+
readonly code?: ProviderErrorCode;
|
|
154
|
+
constructor(status: number, message: string, details?: unknown, code?: ProviderErrorCode);
|
|
154
155
|
}
|
|
155
156
|
/** A dispatch denial is retryable and must not be wrapped as a bad provider credential. */
|
|
156
157
|
export declare class ProviderDispatchRequestError extends ProviderRequestError {
|
|
@@ -418,6 +419,19 @@ export declare function readProviderJsonBody(response: Response, options: ReadPr
|
|
|
418
419
|
* Parse an already-read provider response body as JSON.
|
|
419
420
|
*/
|
|
420
421
|
export declare function parseProviderJsonBodyText(text: string, options: ReadProviderJsonBodyOptions): unknown;
|
|
422
|
+
interface UploadSourceInput {
|
|
423
|
+
url: string;
|
|
424
|
+
fetcher: typeof fetch;
|
|
425
|
+
fieldName: string;
|
|
426
|
+
maximumBytes?: number;
|
|
427
|
+
timeoutMs?: number;
|
|
428
|
+
signal?: AbortSignal;
|
|
429
|
+
}
|
|
430
|
+
/** Download an upload source through public-only egress with a bounded body. */
|
|
431
|
+
export declare function downloadUploadSource(input: UploadSourceInput): Promise<{
|
|
432
|
+
bytes: Uint8Array;
|
|
433
|
+
contentType?: string;
|
|
434
|
+
}>;
|
|
421
435
|
/**
|
|
422
436
|
* Store a provider-hosted file in the local transit file service when enabled.
|
|
423
437
|
*/
|
|
@@ -262,7 +262,7 @@ export async function readProviderProxyResponse(response, options = {}) {
|
|
|
262
262
|
createError: (message) => new ProviderRequestError(413, message),
|
|
263
263
|
});
|
|
264
264
|
const contentType = response.headers.get("content-type") ?? "";
|
|
265
|
-
const normalizedContentType = contentType.toLowerCase();
|
|
265
|
+
const normalizedContentType = contentType.split(";", 1)[0].trim().toLowerCase();
|
|
266
266
|
if (bytes.byteLength === 0) {
|
|
267
267
|
return {
|
|
268
268
|
status: response.status,
|
|
@@ -270,7 +270,19 @@ export async function readProviderProxyResponse(response, options = {}) {
|
|
|
270
270
|
data: null,
|
|
271
271
|
};
|
|
272
272
|
}
|
|
273
|
-
if (normalizedContentType
|
|
273
|
+
if (!normalizedContentType) {
|
|
274
|
+
try {
|
|
275
|
+
return {
|
|
276
|
+
status: response.status,
|
|
277
|
+
headers,
|
|
278
|
+
data: new TextDecoder("utf-8", { fatal: true }).decode(bytes),
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
// Preserve invalid UTF-8 bytes through the base64 fallback.
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
if (normalizedContentType === "application/json" || normalizedContentType.endsWith("+json")) {
|
|
274
286
|
return {
|
|
275
287
|
status: response.status,
|
|
276
288
|
headers,
|
|
@@ -303,9 +315,13 @@ export async function readProviderProxyErrorMessage(response, fallbackMessage) {
|
|
|
303
315
|
return (await readProviderErrorTextBody(response, "proxy error response")) || fallbackMessage;
|
|
304
316
|
}
|
|
305
317
|
function isTextProxyContentType(contentType) {
|
|
306
|
-
const normalized = contentType.toLowerCase();
|
|
318
|
+
const normalized = contentType.split(";", 1)[0].trim().toLowerCase();
|
|
307
319
|
return (normalized.startsWith("text/") ||
|
|
308
|
-
normalized
|
|
320
|
+
normalized === "application/x-ndjson" ||
|
|
321
|
+
normalized === "application/xml" ||
|
|
322
|
+
normalized === "application/xml-external-parsed-entity" ||
|
|
323
|
+
normalized === "application/xml-dtd" ||
|
|
324
|
+
normalized.endsWith("+xml") ||
|
|
309
325
|
normalized.includes("javascript") ||
|
|
310
326
|
normalized.includes("x-www-form-urlencoded"));
|
|
311
327
|
}
|
|
@@ -814,6 +830,23 @@ export function parseProviderJsonBodyText(text, options) {
|
|
|
814
830
|
throw new ProviderRequestError(options.invalidJsonStatus ?? 502, options.invalidJsonMessage, error);
|
|
815
831
|
}
|
|
816
832
|
}
|
|
833
|
+
/** Download an upload source through public-only egress with a bounded body. */
|
|
834
|
+
export async function downloadUploadSource(input) {
|
|
835
|
+
return runProviderRequest({ label: input.fieldName, timeoutMs: input.timeoutMs ?? 15_000, signal: input.signal }, async (signal) => {
|
|
836
|
+
const response = await createProviderFetch({ fetch: input.fetcher })(input.url, { signal });
|
|
837
|
+
if (!response.ok) {
|
|
838
|
+
void response.body?.cancel().catch(() => undefined);
|
|
839
|
+
throw providerInputError(`${input.fieldName} download failed with HTTP ${response.status}`);
|
|
840
|
+
}
|
|
841
|
+
const bytes = await readBoundedResponseBytes(response, {
|
|
842
|
+
maxBytes: input.maximumBytes ?? 20 * 1024 * 1024,
|
|
843
|
+
fieldName: input.fieldName,
|
|
844
|
+
createError: providerInputError,
|
|
845
|
+
signal,
|
|
846
|
+
});
|
|
847
|
+
return { bytes, contentType: response.headers.get("content-type") ?? undefined };
|
|
848
|
+
});
|
|
849
|
+
}
|
|
817
850
|
/**
|
|
818
851
|
* Store a provider-hosted file in the local transit file service when enabled.
|
|
819
852
|
*/
|