@vm0/cli 9.237.6 → 9.238.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/adzuna.generated-NY6BDYRS.js +16 -0
- package/adzuna.generated-NY6BDYRS.js.map +1 -0
- package/agent-6OA2V3OO.js +598 -0
- package/agentmail.generated-77KAUVC7.js +16 -0
- package/agentmail.generated-77KAUVC7.js.map +1 -0
- package/agora.generated-QAI4NT4L.js +16 -0
- package/agora.generated-QAI4NT4L.js.map +1 -0
- package/ahrefs.generated-N6XI6SZP.js +16 -0
- package/ahrefs.generated-N6XI6SZP.js.map +1 -0
- package/airtable.generated-CV3LK62W.js +16 -0
- package/airtable.generated-CV3LK62W.js.map +1 -0
- package/alchemy.generated-FXRD7HLX.js +16 -0
- package/alchemy.generated-FXRD7HLX.js.map +1 -0
- package/altium-365.generated-QDLMKJPS.js +16 -0
- package/altium-365.generated-QDLMKJPS.js.map +1 -0
- package/amadeus.generated-EB6AUY2W.js +16 -0
- package/amadeus.generated-EB6AUY2W.js.map +1 -0
- package/amplitude.generated-FBXLF3CF.js +16 -0
- package/amplitude.generated-FBXLF3CF.js.map +1 -0
- package/anthropic-managed-agents.generated-OV3XUSJW.js +16 -0
- package/anthropic-managed-agents.generated-OV3XUSJW.js.map +1 -0
- package/apify.generated-GDYJRE42.js +16 -0
- package/apify.generated-GDYJRE42.js.map +1 -0
- package/apollo.generated-2K42PO5U.js +16 -0
- package/apollo.generated-2K42PO5U.js.map +1 -0
- package/asana.generated-W7WM5RGV.js +16 -0
- package/asana.generated-W7WM5RGV.js.map +1 -0
- package/ashby.generated-FFGCPPDE.js +16 -0
- package/ashby.generated-FFGCPPDE.js.map +1 -0
- package/atlascloud.generated-OKU5H4JY.js +16 -0
- package/atlascloud.generated-OKU5H4JY.js.map +1 -0
- package/atlassian.generated-VHLFBNH6.js +16 -0
- package/atlassian.generated-VHLFBNH6.js.map +1 -0
- package/attio.generated-4L65LUMM.js +16 -0
- package/attio.generated-4L65LUMM.js.map +1 -0
- package/aviationstack.generated-KKNB55S7.js +16 -0
- package/aviationstack.generated-KKNB55S7.js.map +1 -0
- package/aws.generated-GBI2IANF.js +16 -0
- package/aws.generated-GBI2IANF.js.map +1 -0
- package/axiom.generated-IJ7MJL3K.js +16 -0
- package/axiom.generated-IJ7MJL3K.js.map +1 -0
- package/banking-WWVG2CP7.js +118 -0
- package/base44.generated-U5Y6426G.js +16 -0
- package/base44.generated-U5Y6426G.js.map +1 -0
- package/bentoml.generated-UZYPBUOS.js +16 -0
- package/bentoml.generated-UZYPBUOS.js.map +1 -0
- package/bfl.generated-XQZSSEDA.js +16 -0
- package/bfl.generated-XQZSSEDA.js.map +1 -0
- package/bitrefill.generated-NLFRI6LE.js +16 -0
- package/bitrefill.generated-NLFRI6LE.js.map +1 -0
- package/bitrix.generated-QGLVCTHC.js +16 -0
- package/bitrix.generated-QGLVCTHC.js.map +1 -0
- package/bland.generated-563BJLD7.js +16 -0
- package/bland.generated-563BJLD7.js.map +1 -0
- package/box.generated-GIUVTDKW.js +16 -0
- package/box.generated-GIUVTDKW.js.map +1 -0
- package/brave-search.generated-6G3FPSOI.js +16 -0
- package/brave-search.generated-6G3FPSOI.js.map +1 -0
- package/brevo.generated-IIYV244D.js +16 -0
- package/brevo.generated-IIYV244D.js.map +1 -0
- package/brex.generated-AFXJCCTP.js +16 -0
- package/brex.generated-AFXJCCTP.js.map +1 -0
- package/bright-data.generated-C3SGIKHN.js +16 -0
- package/bright-data.generated-C3SGIKHN.js.map +1 -0
- package/browser-use.generated-E5G7YL6Y.js +16 -0
- package/browser-use.generated-E5G7YL6Y.js.map +1 -0
- package/browserbase.generated-MPEQJRB2.js +16 -0
- package/browserbase.generated-MPEQJRB2.js.map +1 -0
- package/browserless.generated-OAZ7AVJK.js +16 -0
- package/browserless.generated-OAZ7AVJK.js.map +1 -0
- package/browserstack.generated-5JBA3BIA.js +16 -0
- package/browserstack.generated-5JBA3BIA.js.map +1 -0
- package/bubblemaps.generated-GCD4DIQT.js +16 -0
- package/bubblemaps.generated-GCD4DIQT.js.map +1 -0
- package/buffer.generated-CZ3PT3I5.js +16 -0
- package/buffer.generated-CZ3PT3I5.js.map +1 -0
- package/builtwith.generated-ULTM7PP5.js +16 -0
- package/builtwith.generated-ULTM7PP5.js.map +1 -0
- package/cal-com.generated-66LFMVPY.js +16 -0
- package/cal-com.generated-66LFMVPY.js.map +1 -0
- package/calendly.generated-CFKJKQV6.js +16 -0
- package/calendly.generated-CFKJKQV6.js.map +1 -0
- package/canva.generated-ZHJ35VU3.js +16 -0
- package/canva.generated-ZHJ35VU3.js.map +1 -0
- package/chat-D475VWGE.js +247 -0
- package/chatwoot.generated-S6YJHKG5.js +16 -0
- package/chatwoot.generated-S6YJHKG5.js.map +1 -0
- package/checkr.generated-NYTE4TTX.js +16 -0
- package/checkr.generated-NYTE4TTX.js.map +1 -0
- package/chunk-37U2ZGBH.js +15364 -0
- package/chunk-37U2ZGBH.js.map +1 -0
- package/chunk-4ZHQYU4E.js +179 -0
- package/chunk-FKRO4PMB.js +90 -0
- package/chunk-GU2OYDJY.js +1258 -0
- package/chunk-I76SZJXM.js +18542 -0
- package/chunk-I76SZJXM.js.map +1 -0
- package/chunk-JSHFBBDU.js +149 -0
- package/chunk-L6RCBAZE.js +43 -0
- package/chunk-ROLHZ5OO.js +35 -0
- package/chunk-SZJIY7B5.js +14558 -0
- package/chunk-SZJIY7B5.js.map +1 -0
- package/chunk-VBI53K3Q.js +15836 -0
- package/chunk-YCG6O3ZK.js +1301 -0
- package/chunk-YCG6O3ZK.js.map +1 -0
- package/clado.generated-PSBCEQRT.js +16 -0
- package/clado.generated-PSBCEQRT.js.map +1 -0
- package/clearbit.generated-U4BWJIBF.js +16 -0
- package/clearbit.generated-U4BWJIBF.js.map +1 -0
- package/clerk.generated-M5C4UFQQ.js +16 -0
- package/clerk.generated-M5C4UFQQ.js.map +1 -0
- package/clickup.generated-SKZ2NPN7.js +16 -0
- package/clickup.generated-SKZ2NPN7.js.map +1 -0
- package/close.generated-5WRX7CKY.js +16 -0
- package/close.generated-5WRX7CKY.js.map +1 -0
- package/cloudflare.generated-AJY4K6U2.js +16 -0
- package/cloudflare.generated-AJY4K6U2.js.map +1 -0
- package/coda.generated-NL63PYGH.js +16 -0
- package/coda.generated-NL63PYGH.js.map +1 -0
- package/coingecko.generated-YW5JBNK3.js +16 -0
- package/coingecko.generated-YW5JBNK3.js.map +1 -0
- package/computer-use-ALMIBYF4.js +973 -0
- package/connector-R524H5MQ.js +806 -0
- package/connector-R524H5MQ.js.map +1 -0
- package/coresignal.generated-QKDHJYVO.js +16 -0
- package/coresignal.generated-QKDHJYVO.js.map +1 -0
- package/credit-24OGXS2M.js +90 -0
- package/cronlytic.generated-PWUPGGTS.js +16 -0
- package/cronlytic.generated-PWUPGGTS.js.map +1 -0
- package/crustdata.generated-BM256Z5G.js +16 -0
- package/crustdata.generated-BM256Z5G.js.map +1 -0
- package/cursor.generated-OSITR3ZU.js +16 -0
- package/cursor.generated-OSITR3ZU.js.map +1 -0
- package/customer-io.generated-PXSZUHIQ.js +16 -0
- package/customer-io.generated-PXSZUHIQ.js.map +1 -0
- package/daytona.generated-SQ4CHQAD.js +16 -0
- package/daytona.generated-SQ4CHQAD.js.map +1 -0
- package/db9.generated-QQVGBNAG.js +16 -0
- package/db9.generated-QQVGBNAG.js.map +1 -0
- package/deel.generated-V4NV7DNO.js +16 -0
- package/deel.generated-V4NV7DNO.js.map +1 -0
- package/deepseek.generated-GAWSLOVM.js +16 -0
- package/deepseek.generated-GAWSLOVM.js.map +1 -0
- package/defillama.generated-RUE4MEAQ.js +16 -0
- package/defillama.generated-RUE4MEAQ.js.map +1 -0
- package/developer-support-JHHS2QGT.js +64 -0
- package/devto.generated-C3OPR4KJ.js +16 -0
- package/devto.generated-C3OPR4KJ.js.map +1 -0
- package/diffbot.generated-OCF5VCVT.js +16 -0
- package/diffbot.generated-OCF5VCVT.js.map +1 -0
- package/dify.generated-AXDXZFXG.js +16 -0
- package/dify.generated-AXDXZFXG.js.map +1 -0
- package/discord-webhook.generated-BECYRCFR.js +16 -0
- package/discord-webhook.generated-BECYRCFR.js.map +1 -0
- package/discord.generated-62KV4SIG.js +16 -0
- package/discord.generated-62KV4SIG.js.map +1 -0
- package/doctor-WZ3VB4FR.js +3112 -0
- package/doctor-WZ3VB4FR.js.map +1 -0
- package/docusign.generated-AFFJRD76.js +16 -0
- package/docusign.generated-AFFJRD76.js.map +1 -0
- package/doppler.generated-MHGWEGZ7.js +16 -0
- package/doppler.generated-MHGWEGZ7.js.map +1 -0
- package/doubao.generated-HX2SITQ2.js +16 -0
- package/doubao.generated-HX2SITQ2.js.map +1 -0
- package/drive9.generated-VRSZGUHS.js +16 -0
- package/drive9.generated-VRSZGUHS.js.map +1 -0
- package/dropbox-sign.generated-YNR3MPMO.js +16 -0
- package/dropbox-sign.generated-YNR3MPMO.js.map +1 -0
- package/dropbox.generated-M2GTRFYO.js +16 -0
- package/dropbox.generated-M2GTRFYO.js.map +1 -0
- package/duffel.generated-OXRPP5HD.js +16 -0
- package/duffel.generated-OXRPP5HD.js.map +1 -0
- package/e2b.generated-OKFNQVBP.js +16 -0
- package/e2b.generated-OKFNQVBP.js.map +1 -0
- package/elevenlabs.generated-JRVJB7GO.js +16 -0
- package/elevenlabs.generated-JRVJB7GO.js.map +1 -0
- package/etherscan.generated-Q4SQ7XZ6.js +16 -0
- package/etherscan.generated-Q4SQ7XZ6.js.map +1 -0
- package/etsy.generated-TL335MSF.js +16 -0
- package/etsy.generated-TL335MSF.js.map +1 -0
- package/exa.generated-PWXG74Y7.js +16 -0
- package/exa.generated-PWXG74Y7.js.map +1 -0
- package/explorium.generated-NWLGZPLQ.js +16 -0
- package/explorium.generated-NWLGZPLQ.js.map +1 -0
- package/faire.generated-3J7ZYAFG.js +16 -0
- package/faire.generated-3J7ZYAFG.js.map +1 -0
- package/fal.generated-BMEFTIB2.js +16 -0
- package/fal.generated-BMEFTIB2.js.map +1 -0
- package/figma.generated-O3DAC4DF.js +16 -0
- package/figma.generated-O3DAC4DF.js.map +1 -0
- package/firecrawl.generated-EUOMMBRG.js +16 -0
- package/firecrawl.generated-EUOMMBRG.js.map +1 -0
- package/fireflies.generated-4UJXEVZ5.js +16 -0
- package/fireflies.generated-4UJXEVZ5.js.map +1 -0
- package/flightaware.generated-U3NCDOZY.js +16 -0
- package/flightaware.generated-U3NCDOZY.js.map +1 -0
- package/freshdesk.generated-4QAEEWUR.js +16 -0
- package/freshdesk.generated-4QAEEWUR.js.map +1 -0
- package/gamma.generated-WMSDL5XO.js +16 -0
- package/gamma.generated-WMSDL5XO.js.map +1 -0
- package/garmin-connect.generated-XPHMWKRW.js +16 -0
- package/garmin-connect.generated-XPHMWKRW.js.map +1 -0
- package/gemini.generated-JOB7ODR5.js +16 -0
- package/gemini.generated-JOB7ODR5.js.map +1 -0
- package/generate-DYP65QJ5.js +2698 -0
- package/github-UEL4IJ3N.js +204 -0
- package/github.generated-JWDPQNED.js +16 -0
- package/github.generated-JWDPQNED.js.map +1 -0
- package/gitlab.generated-X4BLRWTS.js +16 -0
- package/gitlab.generated-X4BLRWTS.js.map +1 -0
- package/gmail.generated-DS3XZSJN.js +16 -0
- package/gmail.generated-DS3XZSJN.js.map +1 -0
- package/goal-QAV2T6MM.js +81 -0
- package/gong.generated-LT2RRE65.js +16 -0
- package/gong.generated-LT2RRE65.js.map +1 -0
- package/google-ads.generated-M4252SMF.js +16 -0
- package/google-ads.generated-M4252SMF.js.map +1 -0
- package/google-analytics.generated-VVSGX2SR.js +16 -0
- package/google-analytics.generated-VVSGX2SR.js.map +1 -0
- package/google-calendar.generated-CEL5QTMU.js +16 -0
- package/google-calendar.generated-CEL5QTMU.js.map +1 -0
- package/google-cloud.generated-QHFDZ2QP.js +16 -0
- package/google-cloud.generated-QHFDZ2QP.js.map +1 -0
- package/google-docs.generated-H5SPCVL7.js +16 -0
- package/google-docs.generated-H5SPCVL7.js.map +1 -0
- package/google-drive.generated-AFDEMMQF.js +16 -0
- package/google-drive.generated-AFDEMMQF.js.map +1 -0
- package/google-maps.generated-R4SWRZUA.js +16 -0
- package/google-maps.generated-R4SWRZUA.js.map +1 -0
- package/google-meet.generated-AMMQ2O3Y.js +16 -0
- package/google-meet.generated-AMMQ2O3Y.js.map +1 -0
- package/google-search-console.generated-BCDG3TVZ.js +16 -0
- package/google-search-console.generated-BCDG3TVZ.js.map +1 -0
- package/google-sheets.generated-LXJXNPJR.js +16 -0
- package/google-sheets.generated-LXJXNPJR.js.map +1 -0
- package/granola.generated-4KD22XPO.js +16 -0
- package/granola.generated-4KD22XPO.js.map +1 -0
- package/greenhouse.generated-YB6YOHTV.js +16 -0
- package/greenhouse.generated-YB6YOHTV.js.map +1 -0
- package/groq.generated-P7CXNTSN.js +16 -0
- package/groq.generated-P7CXNTSN.js.map +1 -0
- package/gumroad.generated-OPBGPDF4.js +16 -0
- package/gumroad.generated-OPBGPDF4.js.map +1 -0
- package/helicone.generated-F6X2XNYQ.js +16 -0
- package/helicone.generated-F6X2XNYQ.js.map +1 -0
- package/heygen.generated-TMU5IYPU.js +16 -0
- package/heygen.generated-TMU5IYPU.js.map +1 -0
- package/hitem3d.generated-B73OTDG5.js +16 -0
- package/hitem3d.generated-B73OTDG5.js.map +1 -0
- package/honcho.generated-Q52KK24D.js +16 -0
- package/honcho.generated-Q52KK24D.js.map +1 -0
- package/host-SXD5YBTX.js +553 -0
- package/htmlcsstoimage.generated-JHIE6RA2.js +16 -0
- package/htmlcsstoimage.generated-JHIE6RA2.js.map +1 -0
- package/hubspot.generated-77GK6PT7.js +16 -0
- package/hubspot.generated-77GK6PT7.js.map +1 -0
- package/hugging-face.generated-546AKYVT.js +16 -0
- package/hugging-face.generated-546AKYVT.js.map +1 -0
- package/hume.generated-PH2WYG6V.js +16 -0
- package/hume.generated-PH2WYG6V.js.map +1 -0
- package/hunter.generated-D2I4PUM5.js +16 -0
- package/hunter.generated-D2I4PUM5.js.map +1 -0
- package/imgur.generated-ATYGUAPB.js +16 -0
- package/imgur.generated-ATYGUAPB.js.map +1 -0
- package/index.js +29 -17
- package/index.js.map +1 -1
- package/infisical.generated-NASVOFWQ.js +16 -0
- package/infisical.generated-NASVOFWQ.js.map +1 -0
- package/insforge.generated-3KEGLQDJ.js +16 -0
- package/insforge.generated-3KEGLQDJ.js.map +1 -0
- package/instagram.generated-JZYQO3HP.js +16 -0
- package/instagram.generated-JZYQO3HP.js.map +1 -0
- package/instantly.generated-N76J3BGQ.js +16 -0
- package/instantly.generated-N76J3BGQ.js.map +1 -0
- package/intercom.generated-RINBGNFM.js +16 -0
- package/intercom.generated-RINBGNFM.js.map +1 -0
- package/intervals-icu.generated-KJYR72MA.js +16 -0
- package/intervals-icu.generated-KJYR72MA.js.map +1 -0
- package/ironclad.generated-KSXTA4BI.js +16 -0
- package/ironclad.generated-KSXTA4BI.js.map +1 -0
- package/jam.generated-MJHTSETU.js +16 -0
- package/jam.generated-MJHTSETU.js.map +1 -0
- package/jira.generated-AWULGARK.js +16 -0
- package/jira.generated-AWULGARK.js.map +1 -0
- package/jotform.generated-BESF7Q4F.js +16 -0
- package/jotform.generated-BESF7Q4F.js.map +1 -0
- package/klaviyo.generated-ZPARMY2A.js +16 -0
- package/klaviyo.generated-ZPARMY2A.js.map +1 -0
- package/kommo.generated-RY5JIBVM.js +16 -0
- package/kommo.generated-RY5JIBVM.js.map +1 -0
- package/langfuse.generated-T3ASN6RU.js +16 -0
- package/langfuse.generated-T3ASN6RU.js.map +1 -0
- package/langsmith.generated-7VDIOSYU.js +16 -0
- package/langsmith.generated-7VDIOSYU.js.map +1 -0
- package/lark.generated-STIJYMKG.js +16 -0
- package/lark.generated-STIJYMKG.js.map +1 -0
- package/line.generated-XBL22L7B.js +16 -0
- package/line.generated-XBL22L7B.js.map +1 -0
- package/linear.generated-TCGXBP4E.js +16 -0
- package/linear.generated-TCGXBP4E.js.map +1 -0
- package/logs-NPH6LNKC.js +277 -0
- package/loops.generated-NJOC2NMK.js +16 -0
- package/loops.generated-NJOC2NMK.js.map +1 -0
- package/luma-ai.generated-RZFZ75FX.js +16 -0
- package/luma-ai.generated-RZFZ75FX.js.map +1 -0
- package/luma.generated-JKZXRF7R.js +16 -0
- package/luma.generated-JKZXRF7R.js.map +1 -0
- package/mailchimp.generated-LP6YPY36.js +16 -0
- package/mailchimp.generated-LP6YPY36.js.map +1 -0
- package/mailsac.generated-UD7X5TO7.js +16 -0
- package/mailsac.generated-UD7X5TO7.js.map +1 -0
- package/make.generated-66C3YY2M.js +16 -0
- package/make.generated-66C3YY2M.js.map +1 -0
- package/manus.generated-IWUQTBWM.js +16 -0
- package/manus.generated-IWUQTBWM.js.map +1 -0
- package/mapbox.generated-FWIAPHMS.js +16 -0
- package/mapbox.generated-FWIAPHMS.js.map +1 -0
- package/maps-S6CRPCRM.js +487 -0
- package/maskdb.generated-G7ZJSNRB.js +16 -0
- package/maskdb.generated-G7ZJSNRB.js.map +1 -0
- package/massive.generated-H52ZKQ3G.js +16 -0
- package/massive.generated-H52ZKQ3G.js.map +1 -0
- package/mathpix.generated-XEBEMSSG.js +16 -0
- package/mathpix.generated-XEBEMSSG.js.map +1 -0
- package/mem0.generated-SV4AQSTK.js +16 -0
- package/mem0.generated-SV4AQSTK.js.map +1 -0
- package/memory-N7QS7HLX.js +640 -0
- package/mercury.generated-JDW5IOTZ.js +16 -0
- package/mercury.generated-JDW5IOTZ.js.map +1 -0
- package/meshy.generated-XXWGLFRR.js +16 -0
- package/meshy.generated-XXWGLFRR.js.map +1 -0
- package/meta-ads.generated-MNGO4S6H.js +16 -0
- package/meta-ads.generated-MNGO4S6H.js.map +1 -0
- package/metabase.generated-VROE6QM4.js +16 -0
- package/metabase.generated-VROE6QM4.js.map +1 -0
- package/microsoft-365.generated-7SIBC7I5.js +16 -0
- package/microsoft-365.generated-7SIBC7I5.js.map +1 -0
- package/minimax.generated-TUZBVXP6.js +16 -0
- package/minimax.generated-TUZBVXP6.js.map +1 -0
- package/miro.generated-NI3L32HY.js +16 -0
- package/miro.generated-NI3L32HY.js.map +1 -0
- package/mixpanel.generated-GI2KRDBR.js +16 -0
- package/mixpanel.generated-GI2KRDBR.js.map +1 -0
- package/modal.generated-VT4LLGOY.js +16 -0
- package/modal.generated-VT4LLGOY.js.map +1 -0
- package/model-45AKVBWH.js +93 -0
- package/model-provider-EQWIHKDL.js +77 -0
- package/monday.generated-3GCO245A.js +16 -0
- package/monday.generated-3GCO245A.js.map +1 -0
- package/moss.generated-QL4VPRWK.js +16 -0
- package/moss.generated-QL4VPRWK.js.map +1 -0
- package/msg9.generated-UKFSS263.js +16 -0
- package/msg9.generated-UKFSS263.js.map +1 -0
- package/n8n.generated-MAM3IF7E.js +16 -0
- package/n8n.generated-MAM3IF7E.js.map +1 -0
- package/neon.generated-WICH623I.js +16 -0
- package/neon.generated-WICH623I.js.map +1 -0
- package/netdata.generated-65SJSGA2.js +16 -0
- package/netdata.generated-65SJSGA2.js.map +1 -0
- package/nintendo-store.generated-2NZUKBVJ.js +16 -0
- package/nintendo-store.generated-2NZUKBVJ.js.map +1 -0
- package/nintendo-switch-parental-controls.generated-35V4BZRI.js +16 -0
- package/nintendo-switch-parental-controls.generated-35V4BZRI.js.map +1 -0
- package/notion.generated-JVIPX54E.js +16 -0
- package/notion.generated-JVIPX54E.js.map +1 -0
- package/novita.generated-2FJJZF2S.js +16 -0
- package/novita.generated-2FJJZF2S.js.map +1 -0
- package/nyne.generated-R3VNG53M.js +16 -0
- package/nyne.generated-R3VNG53M.js.map +1 -0
- package/onyx.generated-3JJWSPBR.js +16 -0
- package/onyx.generated-3JJWSPBR.js.map +1 -0
- package/openai.generated-25H24BGJ.js +16 -0
- package/openai.generated-25H24BGJ.js.map +1 -0
- package/openrouter.generated-5XPMZOCP.js +16 -0
- package/openrouter.generated-5XPMZOCP.js.map +1 -0
- package/openweather.generated-7ZHVSI2Q.js +16 -0
- package/openweather.generated-7ZHVSI2Q.js.map +1 -0
- package/org-4B4XMULZ.js +922 -0
- package/outlook-calendar.generated-JTTEECF3.js +16 -0
- package/outlook-calendar.generated-JTTEECF3.js.map +1 -0
- package/outlook-mail.generated-SQEH2MNU.js +16 -0
- package/outlook-mail.generated-SQEH2MNU.js.map +1 -0
- package/package.json +1 -1
- package/pandadoc.generated-7S5GCGXI.js +16 -0
- package/pandadoc.generated-7S5GCGXI.js.map +1 -0
- package/parallel.generated-T2QM2RQL.js +16 -0
- package/parallel.generated-T2QM2RQL.js.map +1 -0
- package/pdf4me.generated-B5GJCNOL.js +16 -0
- package/pdf4me.generated-B5GJCNOL.js.map +1 -0
- package/pdfco.generated-IJOLQ4OG.js +16 -0
- package/pdfco.generated-IJOLQ4OG.js.map +1 -0
- package/pdforge.generated-PAQH2WGV.js +16 -0
- package/pdforge.generated-PAQH2WGV.js.map +1 -0
- package/people-data-labs.generated-UJB75LNA.js +16 -0
- package/people-data-labs.generated-UJB75LNA.js.map +1 -0
- package/perplexity.generated-BGTCHWGF.js +16 -0
- package/perplexity.generated-BGTCHWGF.js.map +1 -0
- package/pexels.generated-MDI2MAKR.js +16 -0
- package/pexels.generated-MDI2MAKR.js.map +1 -0
- package/phone-FT2BBNYB.js +204 -0
- package/pika.generated-ELAYHKXU.js +16 -0
- package/pika.generated-ELAYHKXU.js.map +1 -0
- package/pinecone.generated-HA3L6WIX.js +16 -0
- package/pinecone.generated-HA3L6WIX.js.map +1 -0
- package/pipedream.generated-ZAF4A2F4.js +16 -0
- package/pipedream.generated-ZAF4A2F4.js.map +1 -0
- package/pipedrive.generated-NDA6AYZP.js +16 -0
- package/pipedrive.generated-NDA6AYZP.js.map +1 -0
- package/plain.generated-37QOE5LH.js +16 -0
- package/plain.generated-37QOE5LH.js.map +1 -0
- package/plausible.generated-Q57V3KFO.js +16 -0
- package/plausible.generated-Q57V3KFO.js.map +1 -0
- package/playstation.generated-5XSS5QPM.js +16 -0
- package/playstation.generated-5XSS5QPM.js.map +1 -0
- package/podchaser.generated-QUJGEYMJ.js +16 -0
- package/podchaser.generated-QUJGEYMJ.js.map +1 -0
- package/porkbun.generated-TLAPT422.js +16 -0
- package/porkbun.generated-TLAPT422.js.map +1 -0
- package/posthog.generated-NNGYQHNC.js +16 -0
- package/posthog.generated-NNGYQHNC.js.map +1 -0
- package/preference-TGWW3TGU.js +110 -0
- package/printful.generated-7T5CLGEJ.js +16 -0
- package/printful.generated-7T5CLGEJ.js.map +1 -0
- package/prisma-postgres.generated-MWPUK6L5.js +16 -0
- package/prisma-postgres.generated-MWPUK6L5.js.map +1 -0
- package/productlane.generated-BZH2M52E.js +16 -0
- package/productlane.generated-BZH2M52E.js.map +1 -0
- package/profound.generated-ITNYFF6E.js +16 -0
- package/profound.generated-ITNYFF6E.js.map +1 -0
- package/pushinator.generated-WT46YHCO.js +16 -0
- package/pushinator.generated-WT46YHCO.js.map +1 -0
- package/qdrant.generated-LQBRAMOK.js +16 -0
- package/qdrant.generated-LQBRAMOK.js.map +1 -0
- package/qiita.generated-PHTZ72JL.js +16 -0
- package/qiita.generated-PHTZ72JL.js.map +1 -0
- package/quickbooks.generated-5535LLZF.js +16 -0
- package/quickbooks.generated-5535LLZF.js.map +1 -0
- package/railway-project.generated-WMHWYEZ7.js +16 -0
- package/railway-project.generated-WMHWYEZ7.js.map +1 -0
- package/railway.generated-I6VCXM4F.js +16 -0
- package/railway.generated-I6VCXM4F.js.map +1 -0
- package/reap.generated-WAP7WY76.js +16 -0
- package/reap.generated-WAP7WY76.js.map +1 -0
- package/recraft.generated-S6LUCQ6Y.js +16 -0
- package/recraft.generated-S6LUCQ6Y.js.map +1 -0
- package/reddit.generated-X64MIQ7K.js +16 -0
- package/reddit.generated-X64MIQ7K.js.map +1 -0
- package/reducto.generated-HEQ36ZYP.js +16 -0
- package/reducto.generated-HEQ36ZYP.js.map +1 -0
- package/relationship-K4X2EMG6.js +188 -0
- package/render.generated-ULLCX5I5.js +16 -0
- package/render.generated-ULLCX5I5.js.map +1 -0
- package/rentcast.generated-2LZTVFHF.js +16 -0
- package/rentcast.generated-2LZTVFHF.js.map +1 -0
- package/replicate.generated-OTF3BU6Q.js +16 -0
- package/replicate.generated-OTF3BU6Q.js.map +1 -0
- package/reportei.generated-3OMXGZLW.js +16 -0
- package/reportei.generated-3OMXGZLW.js.map +1 -0
- package/resend.generated-ZLELGIAA.js +16 -0
- package/resend.generated-ZLELGIAA.js.map +1 -0
- package/resource-Z3Y4LKFV.js +142 -0
- package/revenuecat.generated-XMPGJ7BU.js +16 -0
- package/revenuecat.generated-XMPGJ7BU.js.map +1 -0
- package/runway.generated-6NJMUATX.js +16 -0
- package/runway.generated-6NJMUATX.js.map +1 -0
- package/salesforce.generated-5KLSM6C3.js +16 -0
- package/salesforce.generated-5KLSM6C3.js.map +1 -0
- package/scrapeninja.generated-HNT27RIK.js +16 -0
- package/scrapeninja.generated-HNT27RIK.js.map +1 -0
- package/search-2WYLKHGZ.js +204 -0
- package/secret-ZBRGELVV.js +163 -0
- package/segment.generated-PTNCAEPN.js +16 -0
- package/segment.generated-PTNCAEPN.js.map +1 -0
- package/semrush.generated-JSFLSUJH.js +16 -0
- package/semrush.generated-JSFLSUJH.js.map +1 -0
- package/sendgrid.generated-ZIISZJJV.js +16 -0
- package/sendgrid.generated-ZIISZJJV.js.map +1 -0
- package/sentry.generated-FQGBSZOW.js +16 -0
- package/sentry.generated-FQGBSZOW.js.map +1 -0
- package/serpapi.generated-D3XXB6PM.js +16 -0
- package/serpapi.generated-D3XXB6PM.js.map +1 -0
- package/servicenow.generated-6JAOXT2T.js +16 -0
- package/servicenow.generated-6JAOXT2T.js.map +1 -0
- package/shopify.generated-J5LJOTL2.js +16 -0
- package/shopify.generated-J5LJOTL2.js.map +1 -0
- package/shortio.generated-AK4HELH2.js +16 -0
- package/shortio.generated-AK4HELH2.js.map +1 -0
- package/similarweb.generated-U2WLW7PD.js +16 -0
- package/similarweb.generated-U2WLW7PD.js.map +1 -0
- package/slack-YHQCPNIL.js +223 -0
- package/slack-webhook.generated-WFSKREKT.js +16 -0
- package/slack-webhook.generated-WFSKREKT.js.map +1 -0
- package/slack.generated-K6CNNTWI.js +16 -0
- package/slack.generated-K6CNNTWI.js.map +1 -0
- package/slock.generated-GVG2UBIX.js +16 -0
- package/slock.generated-GVG2UBIX.js.map +1 -0
- package/snowflake.generated-776JFNOH.js +16 -0
- package/snowflake.generated-776JFNOH.js.map +1 -0
- package/sociavault.generated-ZYWACDCU.js +16 -0
- package/sociavault.generated-ZYWACDCU.js.map +1 -0
- package/sponge.generated-QTEUYJHA.js +16 -0
- package/sponge.generated-QTEUYJHA.js.map +1 -0
- package/spotify.generated-EJQTESOU.js +16 -0
- package/spotify.generated-EJQTESOU.js.map +1 -0
- package/sproutgigs.generated-CHKBYDBP.js +16 -0
- package/sproutgigs.generated-CHKBYDBP.js.map +1 -0
- package/square.generated-5PASNXED.js +16 -0
- package/square.generated-5PASNXED.js.map +1 -0
- package/stability-ai.generated-HSDGH6SM.js +16 -0
- package/stability-ai.generated-HSDGH6SM.js.map +1 -0
- package/steam.generated-MYOJ4S7Z.js +16 -0
- package/steam.generated-MYOJ4S7Z.js.map +1 -0
- package/strapi.generated-FOD5SNK7.js +16 -0
- package/strapi.generated-FOD5SNK7.js.map +1 -0
- package/strava.generated-SX6ODSWN.js +16 -0
- package/strava.generated-SX6ODSWN.js.map +1 -0
- package/streak.generated-AAR623MO.js +16 -0
- package/streak.generated-AAR623MO.js.map +1 -0
- package/stripe.generated-DHUQVNCR.js +16 -0
- package/stripe.generated-DHUQVNCR.js.map +1 -0
- package/supabase.generated-QDEGTI2K.js +16 -0
- package/supabase.generated-QDEGTI2K.js.map +1 -0
- package/supadata.generated-IS4ACMQV.js +16 -0
- package/supadata.generated-IS4ACMQV.js.map +1 -0
- package/supermemory.generated-GEN3T7GF.js +16 -0
- package/supermemory.generated-GEN3T7GF.js.map +1 -0
- package/tavily.generated-PP7CNTMD.js +16 -0
- package/tavily.generated-PP7CNTMD.js.map +1 -0
- package/teams-XQVJ6FCA.js +284 -0
- package/telegram-IBWT2FZR.js +338 -0
- package/test-oauth.generated-5CGAUTCY.js +16 -0
- package/test-oauth.generated-5CGAUTCY.js.map +1 -0
- package/testrail.generated-BPX45BM6.js +16 -0
- package/testrail.generated-BPX45BM6.js.map +1 -0
- package/ticketmaster.generated-57OJN3HK.js +16 -0
- package/ticketmaster.generated-57OJN3HK.js.map +1 -0
- package/tiktok-ads.generated-GPW4I5CI.js +16 -0
- package/tiktok-ads.generated-GPW4I5CI.js.map +1 -0
- package/tldv.generated-MVSWWDBM.js +16 -0
- package/tldv.generated-MVSWWDBM.js.map +1 -0
- package/todoist.generated-NM6Z3GCJ.js +16 -0
- package/todoist.generated-NM6Z3GCJ.js.map +1 -0
- package/together.generated-5YS3OEZE.js +16 -0
- package/together.generated-5YS3OEZE.js.map +1 -0
- package/tripo.generated-5F34VTF4.js +16 -0
- package/tripo.generated-5F34VTF4.js.map +1 -0
- package/twenty.generated-WF2SZFFB.js +16 -0
- package/twenty.generated-WF2SZFFB.js.map +1 -0
- package/twilio.generated-WZSOVEW3.js +16 -0
- package/twilio.generated-WZSOVEW3.js.map +1 -0
- package/typeform.generated-CCVF2SMJ.js +16 -0
- package/typeform.generated-CCVF2SMJ.js.map +1 -0
- package/v0.generated-AHDUZAKI.js +16 -0
- package/v0.generated-AHDUZAKI.js.map +1 -0
- package/variable-3VLG2R3E.js +120 -0
- package/vercel.generated-VMADVAUI.js +16 -0
- package/vercel.generated-VMADVAUI.js.map +1 -0
- package/video-GXRYJ6A5.js +249 -0
- package/wandb.generated-PCEJFRBT.js +16 -0
- package/wandb.generated-PCEJFRBT.js.map +1 -0
- package/web-6DYQEUTW.js +109 -0
- package/webflow.generated-ZAJJMPSA.js +16 -0
- package/webflow.generated-ZAJJMPSA.js.map +1 -0
- package/weread.generated-Z7OERNZI.js +16 -0
- package/weread.generated-Z7OERNZI.js.map +1 -0
- package/whale-alert.generated-7W5MNRAU.js +16 -0
- package/whale-alert.generated-7W5MNRAU.js.map +1 -0
- package/whoami-O22ANAJS.js +195 -0
- package/wix.generated-RQZH5S25.js +16 -0
- package/wix.generated-RQZH5S25.js.map +1 -0
- package/workflow-INK3CNLQ.js +1756 -0
- package/workos.generated-OAHVH7Y4.js +16 -0
- package/workos.generated-OAHVH7Y4.js.map +1 -0
- package/wrike.generated-JEXQ6TSH.js +16 -0
- package/wrike.generated-JEXQ6TSH.js.map +1 -0
- package/x.generated-RM23ZNTB.js +16 -0
- package/x.generated-RM23ZNTB.js.map +1 -0
- package/xero.generated-VD7ONAU3.js +16 -0
- package/xero.generated-VD7ONAU3.js.map +1 -0
- package/youtube.generated-CVE5S3V4.js +16 -0
- package/youtube.generated-CVE5S3V4.js.map +1 -0
- package/zapier.generated-B64YWHJL.js +16 -0
- package/zapier.generated-B64YWHJL.js.map +1 -0
- package/zapsign.generated-KSU2XZZC.js +16 -0
- package/zapsign.generated-KSU2XZZC.js.map +1 -0
- package/zendesk.generated-VRW33ITJ.js +16 -0
- package/zendesk.generated-VRW33ITJ.js.map +1 -0
- package/zep.generated-JPKJY2NZ.js +16 -0
- package/zep.generated-JPKJY2NZ.js.map +1 -0
- package/zeptomail.generated-IFGEI2Q3.js +16 -0
- package/zeptomail.generated-IFGEI2Q3.js.map +1 -0
- package/zero.js +34 -34
- package/zoom.generated-OP7OR6UF.js +16 -0
- package/zoom.generated-OP7OR6UF.js.map +1 -0
- package/adzuna.generated-BE67QJQC.js +0 -16
- package/adzuna.generated-BE67QJQC.js.map +0 -1
- package/agent-5MJPJ763.js +0 -598
- package/agentmail.generated-FDPJWWZZ.js +0 -16
- package/agentmail.generated-FDPJWWZZ.js.map +0 -1
- package/agora.generated-A5JWSIJG.js +0 -16
- package/agora.generated-A5JWSIJG.js.map +0 -1
- package/ahrefs.generated-3YHOLLYF.js +0 -16
- package/ahrefs.generated-3YHOLLYF.js.map +0 -1
- package/airtable.generated-YI6KJG6D.js +0 -16
- package/airtable.generated-YI6KJG6D.js.map +0 -1
- package/alchemy.generated-6LYI7REC.js +0 -16
- package/alchemy.generated-6LYI7REC.js.map +0 -1
- package/altium-365.generated-UZZG636R.js +0 -16
- package/altium-365.generated-UZZG636R.js.map +0 -1
- package/amadeus.generated-E54PLKJ3.js +0 -16
- package/amadeus.generated-E54PLKJ3.js.map +0 -1
- package/amplitude.generated-DLQ6BLUN.js +0 -16
- package/amplitude.generated-DLQ6BLUN.js.map +0 -1
- package/anthropic-managed-agents.generated-RPFVZ5Q3.js +0 -16
- package/anthropic-managed-agents.generated-RPFVZ5Q3.js.map +0 -1
- package/apify.generated-IG22PT7A.js +0 -16
- package/apify.generated-IG22PT7A.js.map +0 -1
- package/apollo.generated-TATFQHNA.js +0 -16
- package/apollo.generated-TATFQHNA.js.map +0 -1
- package/asana.generated-24NJOLGU.js +0 -16
- package/asana.generated-24NJOLGU.js.map +0 -1
- package/ashby.generated-PZJTGCMS.js +0 -16
- package/ashby.generated-PZJTGCMS.js.map +0 -1
- package/atlascloud.generated-IWNQLD45.js +0 -16
- package/atlascloud.generated-IWNQLD45.js.map +0 -1
- package/atlassian.generated-I3RVNRY5.js +0 -16
- package/atlassian.generated-I3RVNRY5.js.map +0 -1
- package/attio.generated-35HETST5.js +0 -16
- package/attio.generated-35HETST5.js.map +0 -1
- package/aviationstack.generated-CHKGSFF6.js +0 -16
- package/aviationstack.generated-CHKGSFF6.js.map +0 -1
- package/aws.generated-JH65VFIY.js +0 -16
- package/aws.generated-JH65VFIY.js.map +0 -1
- package/axiom.generated-X4MGQDO5.js +0 -16
- package/axiom.generated-X4MGQDO5.js.map +0 -1
- package/banking-B3EYVGJA.js +0 -118
- package/base44.generated-33U2LRMF.js +0 -16
- package/base44.generated-33U2LRMF.js.map +0 -1
- package/bentoml.generated-ZCXUUAMQ.js +0 -16
- package/bentoml.generated-ZCXUUAMQ.js.map +0 -1
- package/bfl.generated-3TGO34KA.js +0 -16
- package/bfl.generated-3TGO34KA.js.map +0 -1
- package/bitrefill.generated-X67J57YT.js +0 -16
- package/bitrefill.generated-X67J57YT.js.map +0 -1
- package/bitrix.generated-VIXMFJLU.js +0 -16
- package/bitrix.generated-VIXMFJLU.js.map +0 -1
- package/bland.generated-7R42YA7G.js +0 -16
- package/bland.generated-7R42YA7G.js.map +0 -1
- package/box.generated-2G6CI6PE.js +0 -16
- package/box.generated-2G6CI6PE.js.map +0 -1
- package/brave-search.generated-SC6GT5ZJ.js +0 -16
- package/brave-search.generated-SC6GT5ZJ.js.map +0 -1
- package/brevo.generated-NCBBGLCN.js +0 -16
- package/brevo.generated-NCBBGLCN.js.map +0 -1
- package/brex.generated-BWYO2DIM.js +0 -16
- package/brex.generated-BWYO2DIM.js.map +0 -1
- package/bright-data.generated-WI4T3I5C.js +0 -16
- package/bright-data.generated-WI4T3I5C.js.map +0 -1
- package/browser-use.generated-J4XGEK5V.js +0 -16
- package/browser-use.generated-J4XGEK5V.js.map +0 -1
- package/browserbase.generated-7VRCLTZK.js +0 -16
- package/browserbase.generated-7VRCLTZK.js.map +0 -1
- package/browserless.generated-KWISAZRO.js +0 -16
- package/browserless.generated-KWISAZRO.js.map +0 -1
- package/browserstack.generated-VOHFP2M3.js +0 -16
- package/browserstack.generated-VOHFP2M3.js.map +0 -1
- package/bubblemaps.generated-S7IE75LR.js +0 -16
- package/bubblemaps.generated-S7IE75LR.js.map +0 -1
- package/buffer.generated-X4CJAJ35.js +0 -16
- package/buffer.generated-X4CJAJ35.js.map +0 -1
- package/builtwith.generated-HS75O32X.js +0 -16
- package/builtwith.generated-HS75O32X.js.map +0 -1
- package/cal-com.generated-OGZUSPKP.js +0 -16
- package/cal-com.generated-OGZUSPKP.js.map +0 -1
- package/calendly.generated-S2D6C6YY.js +0 -16
- package/calendly.generated-S2D6C6YY.js.map +0 -1
- package/canva.generated-MVRSI6O6.js +0 -16
- package/canva.generated-MVRSI6O6.js.map +0 -1
- package/chat-DDIJ2AKS.js +0 -247
- package/chatwoot.generated-ON3QRXTZ.js +0 -16
- package/chatwoot.generated-ON3QRXTZ.js.map +0 -1
- package/checkr.generated-2W2NSVNK.js +0 -16
- package/checkr.generated-2W2NSVNK.js.map +0 -1
- package/chunk-3QTXC4CT.js +0 -15836
- package/chunk-BP3KBW2S.js +0 -43
- package/chunk-CWMBKQQK.js +0 -35
- package/chunk-FQXMOHZY.js +0 -124
- package/chunk-FQXMOHZY.js.map +0 -1
- package/chunk-GBKFXCQS.js +0 -29770
- package/chunk-GBKFXCQS.js.map +0 -1
- package/chunk-J7EJUHU2.js +0 -1258
- package/chunk-MZLTZ7CS.js +0 -149
- package/chunk-OBVADMRQ.js +0 -90
- package/chunk-QIX7GBQU.js +0 -179
- package/chunk-TUJWBJH6.js +0 -18530
- package/chunk-TUJWBJH6.js.map +0 -1
- package/chunk-V5FOWJYV.js +0 -1179
- package/chunk-V5FOWJYV.js.map +0 -1
- package/clado.generated-ZIF3HMS5.js +0 -16
- package/clado.generated-ZIF3HMS5.js.map +0 -1
- package/clearbit.generated-3XEL7HB4.js +0 -16
- package/clearbit.generated-3XEL7HB4.js.map +0 -1
- package/clerk.generated-IFNDD3TI.js +0 -16
- package/clerk.generated-IFNDD3TI.js.map +0 -1
- package/clickup.generated-HDSRYFL7.js +0 -16
- package/clickup.generated-HDSRYFL7.js.map +0 -1
- package/close.generated-BQPDVP42.js +0 -16
- package/close.generated-BQPDVP42.js.map +0 -1
- package/cloudflare.generated-OHTD7IC5.js +0 -16
- package/cloudflare.generated-OHTD7IC5.js.map +0 -1
- package/coda.generated-OZP3UTME.js +0 -16
- package/coda.generated-OZP3UTME.js.map +0 -1
- package/coingecko.generated-G5CTS6E7.js +0 -16
- package/coingecko.generated-G5CTS6E7.js.map +0 -1
- package/computer-use-CYA5Z3HI.js +0 -973
- package/connector-G66QBUHT.js +0 -835
- package/connector-G66QBUHT.js.map +0 -1
- package/coresignal.generated-OA54LKPN.js +0 -16
- package/coresignal.generated-OA54LKPN.js.map +0 -1
- package/credit-DNPZSUYR.js +0 -90
- package/cronlytic.generated-IOEZUI2H.js +0 -16
- package/cronlytic.generated-IOEZUI2H.js.map +0 -1
- package/crustdata.generated-M5MC42GE.js +0 -16
- package/crustdata.generated-M5MC42GE.js.map +0 -1
- package/cursor.generated-TLXDU6KU.js +0 -16
- package/cursor.generated-TLXDU6KU.js.map +0 -1
- package/customer-io.generated-IR5ZKKUH.js +0 -16
- package/customer-io.generated-IR5ZKKUH.js.map +0 -1
- package/daytona.generated-RG6I3U66.js +0 -16
- package/daytona.generated-RG6I3U66.js.map +0 -1
- package/db9.generated-ZZ4VP5ZS.js +0 -16
- package/db9.generated-ZZ4VP5ZS.js.map +0 -1
- package/deel.generated-2NEG7Z7Y.js +0 -16
- package/deel.generated-2NEG7Z7Y.js.map +0 -1
- package/deepseek.generated-DILCGOY5.js +0 -16
- package/deepseek.generated-DILCGOY5.js.map +0 -1
- package/defillama.generated-G6XPXBSM.js +0 -16
- package/defillama.generated-G6XPXBSM.js.map +0 -1
- package/developer-support-OW4CKR55.js +0 -64
- package/devto.generated-FN7PGFHV.js +0 -16
- package/devto.generated-FN7PGFHV.js.map +0 -1
- package/diffbot.generated-2F227U7B.js +0 -16
- package/diffbot.generated-2F227U7B.js.map +0 -1
- package/dify.generated-77PTBIAK.js +0 -16
- package/dify.generated-77PTBIAK.js.map +0 -1
- package/discord-webhook.generated-OBBQO42J.js +0 -16
- package/discord-webhook.generated-OBBQO42J.js.map +0 -1
- package/discord.generated-7LCVBCBK.js +0 -16
- package/discord.generated-7LCVBCBK.js.map +0 -1
- package/doctor-CQ7JU4A7.js +0 -2901
- package/doctor-CQ7JU4A7.js.map +0 -1
- package/docusign.generated-QPV2MZPW.js +0 -16
- package/docusign.generated-QPV2MZPW.js.map +0 -1
- package/doppler.generated-3UBZTJ64.js +0 -16
- package/doppler.generated-3UBZTJ64.js.map +0 -1
- package/doubao.generated-PQVSTD74.js +0 -16
- package/doubao.generated-PQVSTD74.js.map +0 -1
- package/drive9.generated-IBKQL4PX.js +0 -16
- package/drive9.generated-IBKQL4PX.js.map +0 -1
- package/dropbox-sign.generated-W3DRCBZB.js +0 -16
- package/dropbox-sign.generated-W3DRCBZB.js.map +0 -1
- package/dropbox.generated-3OUL7ITN.js +0 -16
- package/dropbox.generated-3OUL7ITN.js.map +0 -1
- package/duffel.generated-KXRLUFMT.js +0 -16
- package/duffel.generated-KXRLUFMT.js.map +0 -1
- package/e2b.generated-YEEI5TFL.js +0 -16
- package/e2b.generated-YEEI5TFL.js.map +0 -1
- package/elevenlabs.generated-M2XSJT32.js +0 -16
- package/elevenlabs.generated-M2XSJT32.js.map +0 -1
- package/etherscan.generated-OOHVVHEP.js +0 -16
- package/etherscan.generated-OOHVVHEP.js.map +0 -1
- package/etsy.generated-XYMZAAKI.js +0 -16
- package/etsy.generated-XYMZAAKI.js.map +0 -1
- package/exa.generated-KF5Q7U75.js +0 -16
- package/exa.generated-KF5Q7U75.js.map +0 -1
- package/explorium.generated-G4AUM52D.js +0 -16
- package/explorium.generated-G4AUM52D.js.map +0 -1
- package/faire.generated-NYKTSJ5J.js +0 -16
- package/faire.generated-NYKTSJ5J.js.map +0 -1
- package/fal.generated-TY3CI5V7.js +0 -16
- package/fal.generated-TY3CI5V7.js.map +0 -1
- package/figma.generated-OHQ6T6WO.js +0 -16
- package/figma.generated-OHQ6T6WO.js.map +0 -1
- package/firecrawl.generated-TFTZAJVC.js +0 -16
- package/firecrawl.generated-TFTZAJVC.js.map +0 -1
- package/fireflies.generated-PRUMNZJM.js +0 -16
- package/fireflies.generated-PRUMNZJM.js.map +0 -1
- package/flightaware.generated-W7C7WDSE.js +0 -16
- package/flightaware.generated-W7C7WDSE.js.map +0 -1
- package/freshdesk.generated-OS7MKANJ.js +0 -16
- package/freshdesk.generated-OS7MKANJ.js.map +0 -1
- package/gamma.generated-KECSYEFL.js +0 -16
- package/gamma.generated-KECSYEFL.js.map +0 -1
- package/garmin-connect.generated-YWALHX7X.js +0 -16
- package/garmin-connect.generated-YWALHX7X.js.map +0 -1
- package/gemini.generated-YI6G7OKC.js +0 -16
- package/gemini.generated-YI6G7OKC.js.map +0 -1
- package/generate-GQBW4VEC.js +0 -2698
- package/github-WITVM62X.js +0 -204
- package/github.generated-I4T3Z2CD.js +0 -16
- package/github.generated-I4T3Z2CD.js.map +0 -1
- package/gitlab.generated-7BFA2TVI.js +0 -16
- package/gitlab.generated-7BFA2TVI.js.map +0 -1
- package/gmail.generated-OH2WYIZP.js +0 -16
- package/gmail.generated-OH2WYIZP.js.map +0 -1
- package/goal-YV4W7ODO.js +0 -81
- package/gong.generated-D6SQNU6U.js +0 -16
- package/gong.generated-D6SQNU6U.js.map +0 -1
- package/google-ads.generated-AWUQMIAL.js +0 -16
- package/google-ads.generated-AWUQMIAL.js.map +0 -1
- package/google-analytics.generated-XWC2Y7OY.js +0 -16
- package/google-analytics.generated-XWC2Y7OY.js.map +0 -1
- package/google-calendar.generated-7BH64427.js +0 -16
- package/google-calendar.generated-7BH64427.js.map +0 -1
- package/google-cloud.generated-WYIWAN4I.js +0 -16
- package/google-cloud.generated-WYIWAN4I.js.map +0 -1
- package/google-docs.generated-VX5Q6T2U.js +0 -16
- package/google-docs.generated-VX5Q6T2U.js.map +0 -1
- package/google-drive.generated-6LDDPVRG.js +0 -16
- package/google-drive.generated-6LDDPVRG.js.map +0 -1
- package/google-maps.generated-V7WJ3ZMF.js +0 -16
- package/google-maps.generated-V7WJ3ZMF.js.map +0 -1
- package/google-meet.generated-2V5EFWTB.js +0 -16
- package/google-meet.generated-2V5EFWTB.js.map +0 -1
- package/google-search-console.generated-EJE7F36B.js +0 -16
- package/google-search-console.generated-EJE7F36B.js.map +0 -1
- package/google-sheets.generated-4E42X77Q.js +0 -16
- package/google-sheets.generated-4E42X77Q.js.map +0 -1
- package/granola.generated-4VRIUERU.js +0 -16
- package/granola.generated-4VRIUERU.js.map +0 -1
- package/greenhouse.generated-JYYIUUA4.js +0 -16
- package/greenhouse.generated-JYYIUUA4.js.map +0 -1
- package/groq.generated-H4ODZTOM.js +0 -16
- package/groq.generated-H4ODZTOM.js.map +0 -1
- package/gumroad.generated-6UX2USPW.js +0 -16
- package/gumroad.generated-6UX2USPW.js.map +0 -1
- package/helicone.generated-3LKSIJSP.js +0 -16
- package/helicone.generated-3LKSIJSP.js.map +0 -1
- package/heygen.generated-OPWBJ5QW.js +0 -16
- package/heygen.generated-OPWBJ5QW.js.map +0 -1
- package/hitem3d.generated-TPE3ZH6J.js +0 -16
- package/hitem3d.generated-TPE3ZH6J.js.map +0 -1
- package/honcho.generated-KCJYUZKC.js +0 -16
- package/honcho.generated-KCJYUZKC.js.map +0 -1
- package/host-U7SP2JHE.js +0 -553
- package/htmlcsstoimage.generated-MH264JVW.js +0 -16
- package/htmlcsstoimage.generated-MH264JVW.js.map +0 -1
- package/hubspot.generated-WCF5YE3I.js +0 -16
- package/hubspot.generated-WCF5YE3I.js.map +0 -1
- package/hugging-face.generated-LH24YR3D.js +0 -16
- package/hugging-face.generated-LH24YR3D.js.map +0 -1
- package/hume.generated-BLKWZL25.js +0 -16
- package/hume.generated-BLKWZL25.js.map +0 -1
- package/hunter.generated-6BFBB3WW.js +0 -16
- package/hunter.generated-6BFBB3WW.js.map +0 -1
- package/imgur.generated-JVWTDLVF.js +0 -16
- package/imgur.generated-JVWTDLVF.js.map +0 -1
- package/infisical.generated-NFIE73OB.js +0 -16
- package/infisical.generated-NFIE73OB.js.map +0 -1
- package/insforge.generated-RRNRFT5D.js +0 -16
- package/insforge.generated-RRNRFT5D.js.map +0 -1
- package/instagram.generated-WMPXRSBF.js +0 -16
- package/instagram.generated-WMPXRSBF.js.map +0 -1
- package/instantly.generated-RG3AIA4Y.js +0 -16
- package/instantly.generated-RG3AIA4Y.js.map +0 -1
- package/intercom.generated-JKQB3BBH.js +0 -16
- package/intercom.generated-JKQB3BBH.js.map +0 -1
- package/intervals-icu.generated-QICQV2RD.js +0 -16
- package/intervals-icu.generated-QICQV2RD.js.map +0 -1
- package/ironclad.generated-PEMBKWSY.js +0 -16
- package/ironclad.generated-PEMBKWSY.js.map +0 -1
- package/jam.generated-QEKSHCIO.js +0 -16
- package/jam.generated-QEKSHCIO.js.map +0 -1
- package/jira.generated-RWY7NGMX.js +0 -16
- package/jira.generated-RWY7NGMX.js.map +0 -1
- package/jotform.generated-TOQ34TBA.js +0 -16
- package/jotform.generated-TOQ34TBA.js.map +0 -1
- package/klaviyo.generated-LJWOUBJL.js +0 -16
- package/klaviyo.generated-LJWOUBJL.js.map +0 -1
- package/kommo.generated-HUSU6ZIQ.js +0 -16
- package/kommo.generated-HUSU6ZIQ.js.map +0 -1
- package/langfuse.generated-X25CMDGQ.js +0 -16
- package/langfuse.generated-X25CMDGQ.js.map +0 -1
- package/langsmith.generated-3DMTIDFD.js +0 -16
- package/langsmith.generated-3DMTIDFD.js.map +0 -1
- package/lark.generated-ONX3Y2QX.js +0 -16
- package/lark.generated-ONX3Y2QX.js.map +0 -1
- package/line.generated-K55YU77R.js +0 -16
- package/line.generated-K55YU77R.js.map +0 -1
- package/linear.generated-G52FKCEF.js +0 -16
- package/linear.generated-G52FKCEF.js.map +0 -1
- package/logs-O3EDYJVR.js +0 -277
- package/loops.generated-XJQSSLEQ.js +0 -16
- package/loops.generated-XJQSSLEQ.js.map +0 -1
- package/luma-ai.generated-UTHPWD2Y.js +0 -16
- package/luma-ai.generated-UTHPWD2Y.js.map +0 -1
- package/luma.generated-5LGQXAXE.js +0 -16
- package/luma.generated-5LGQXAXE.js.map +0 -1
- package/mailchimp.generated-6F4TVV3V.js +0 -16
- package/mailchimp.generated-6F4TVV3V.js.map +0 -1
- package/mailsac.generated-PU5XPMBV.js +0 -16
- package/mailsac.generated-PU5XPMBV.js.map +0 -1
- package/make.generated-2ESP7KTK.js +0 -16
- package/make.generated-2ESP7KTK.js.map +0 -1
- package/manus.generated-6NYMJ5OJ.js +0 -16
- package/manus.generated-6NYMJ5OJ.js.map +0 -1
- package/mapbox.generated-OJWJYCRJ.js +0 -16
- package/mapbox.generated-OJWJYCRJ.js.map +0 -1
- package/maps-GS7DTWNE.js +0 -487
- package/maskdb.generated-NS6QJFJW.js +0 -16
- package/maskdb.generated-NS6QJFJW.js.map +0 -1
- package/massive.generated-47TAHOQM.js +0 -16
- package/massive.generated-47TAHOQM.js.map +0 -1
- package/mathpix.generated-YKCS4U3M.js +0 -16
- package/mathpix.generated-YKCS4U3M.js.map +0 -1
- package/mem0.generated-GYJRADI4.js +0 -16
- package/mem0.generated-GYJRADI4.js.map +0 -1
- package/memory-SK6GCGCS.js +0 -640
- package/mercury.generated-PKJC3AD6.js +0 -16
- package/mercury.generated-PKJC3AD6.js.map +0 -1
- package/meshy.generated-QDWSV2T6.js +0 -16
- package/meshy.generated-QDWSV2T6.js.map +0 -1
- package/meta-ads.generated-HGH5XWJA.js +0 -16
- package/meta-ads.generated-HGH5XWJA.js.map +0 -1
- package/metabase.generated-YPROH6JL.js +0 -16
- package/metabase.generated-YPROH6JL.js.map +0 -1
- package/microsoft-365.generated-UJFFTIVE.js +0 -16
- package/microsoft-365.generated-UJFFTIVE.js.map +0 -1
- package/minimax.generated-54FH3LH4.js +0 -16
- package/minimax.generated-54FH3LH4.js.map +0 -1
- package/miro.generated-NAMVONA2.js +0 -16
- package/miro.generated-NAMVONA2.js.map +0 -1
- package/mixpanel.generated-ZLCTJBMS.js +0 -16
- package/mixpanel.generated-ZLCTJBMS.js.map +0 -1
- package/modal.generated-HIIYMZVN.js +0 -16
- package/modal.generated-HIIYMZVN.js.map +0 -1
- package/model-OCGQDUIZ.js +0 -93
- package/model-provider-233FZFTI.js +0 -77
- package/monday.generated-DHKQOATM.js +0 -16
- package/monday.generated-DHKQOATM.js.map +0 -1
- package/moss.generated-ZV434ISS.js +0 -16
- package/moss.generated-ZV434ISS.js.map +0 -1
- package/msg9.generated-ETDAJ5E4.js +0 -16
- package/msg9.generated-ETDAJ5E4.js.map +0 -1
- package/n8n.generated-2UUDEKXT.js +0 -16
- package/n8n.generated-2UUDEKXT.js.map +0 -1
- package/neon.generated-CZB3DVJ5.js +0 -16
- package/neon.generated-CZB3DVJ5.js.map +0 -1
- package/netdata.generated-5WAR7MWE.js +0 -16
- package/netdata.generated-5WAR7MWE.js.map +0 -1
- package/nintendo-store.generated-G6NIV5EQ.js +0 -16
- package/nintendo-store.generated-G6NIV5EQ.js.map +0 -1
- package/nintendo-switch-parental-controls.generated-LZETSCXS.js +0 -16
- package/nintendo-switch-parental-controls.generated-LZETSCXS.js.map +0 -1
- package/notion.generated-5ZYXPOMZ.js +0 -16
- package/notion.generated-5ZYXPOMZ.js.map +0 -1
- package/novita.generated-D446R7TR.js +0 -16
- package/novita.generated-D446R7TR.js.map +0 -1
- package/nyne.generated-ULFPD4AC.js +0 -16
- package/nyne.generated-ULFPD4AC.js.map +0 -1
- package/onyx.generated-YFB2763L.js +0 -16
- package/onyx.generated-YFB2763L.js.map +0 -1
- package/openai.generated-ZB33XUSJ.js +0 -16
- package/openai.generated-ZB33XUSJ.js.map +0 -1
- package/openrouter.generated-EWNDJ4F6.js +0 -16
- package/openrouter.generated-EWNDJ4F6.js.map +0 -1
- package/openweather.generated-GIEGJO4G.js +0 -16
- package/openweather.generated-GIEGJO4G.js.map +0 -1
- package/org-SQS2S6JO.js +0 -922
- package/outlook-calendar.generated-DHZMSTIU.js +0 -16
- package/outlook-calendar.generated-DHZMSTIU.js.map +0 -1
- package/outlook-mail.generated-AQ7S5OZE.js +0 -16
- package/outlook-mail.generated-AQ7S5OZE.js.map +0 -1
- package/pandadoc.generated-JCOS6LKZ.js +0 -16
- package/pandadoc.generated-JCOS6LKZ.js.map +0 -1
- package/parallel.generated-TVJNT5PJ.js +0 -16
- package/parallel.generated-TVJNT5PJ.js.map +0 -1
- package/pdf4me.generated-MRQI6OCI.js +0 -16
- package/pdf4me.generated-MRQI6OCI.js.map +0 -1
- package/pdfco.generated-MT2NYDDP.js +0 -16
- package/pdfco.generated-MT2NYDDP.js.map +0 -1
- package/pdforge.generated-VBSFZJAP.js +0 -16
- package/pdforge.generated-VBSFZJAP.js.map +0 -1
- package/people-data-labs.generated-TEMB37LI.js +0 -16
- package/people-data-labs.generated-TEMB37LI.js.map +0 -1
- package/perplexity.generated-OKVM5WW4.js +0 -16
- package/perplexity.generated-OKVM5WW4.js.map +0 -1
- package/pexels.generated-6XYFQUWV.js +0 -16
- package/pexels.generated-6XYFQUWV.js.map +0 -1
- package/phone-CWXLAGYO.js +0 -204
- package/pika.generated-6QB2OHUX.js +0 -16
- package/pika.generated-6QB2OHUX.js.map +0 -1
- package/pinecone.generated-X6X5UVGI.js +0 -16
- package/pinecone.generated-X6X5UVGI.js.map +0 -1
- package/pipedream.generated-UIYO4I24.js +0 -16
- package/pipedream.generated-UIYO4I24.js.map +0 -1
- package/pipedrive.generated-E2Y5G3C5.js +0 -16
- package/pipedrive.generated-E2Y5G3C5.js.map +0 -1
- package/plain.generated-IDTJXAWY.js +0 -16
- package/plain.generated-IDTJXAWY.js.map +0 -1
- package/plausible.generated-H4477AJW.js +0 -16
- package/plausible.generated-H4477AJW.js.map +0 -1
- package/playstation.generated-4AHS6ELX.js +0 -16
- package/playstation.generated-4AHS6ELX.js.map +0 -1
- package/podchaser.generated-F3MIGR7K.js +0 -16
- package/podchaser.generated-F3MIGR7K.js.map +0 -1
- package/porkbun.generated-5JNXXJL7.js +0 -16
- package/porkbun.generated-5JNXXJL7.js.map +0 -1
- package/posthog.generated-RS2X4BCU.js +0 -16
- package/posthog.generated-RS2X4BCU.js.map +0 -1
- package/preference-RIBHN5YS.js +0 -110
- package/printful.generated-OV54LVQB.js +0 -16
- package/printful.generated-OV54LVQB.js.map +0 -1
- package/prisma-postgres.generated-OG67NH4Z.js +0 -16
- package/prisma-postgres.generated-OG67NH4Z.js.map +0 -1
- package/productlane.generated-VSVXB3EU.js +0 -16
- package/productlane.generated-VSVXB3EU.js.map +0 -1
- package/profound.generated-7LOI3RLP.js +0 -16
- package/profound.generated-7LOI3RLP.js.map +0 -1
- package/pushinator.generated-VLUHSDVB.js +0 -16
- package/pushinator.generated-VLUHSDVB.js.map +0 -1
- package/qdrant.generated-KN5YLKML.js +0 -16
- package/qdrant.generated-KN5YLKML.js.map +0 -1
- package/qiita.generated-RCMOJF6C.js +0 -16
- package/qiita.generated-RCMOJF6C.js.map +0 -1
- package/quickbooks.generated-ESE2EL2M.js +0 -16
- package/quickbooks.generated-ESE2EL2M.js.map +0 -1
- package/railway-project.generated-HSSH54OO.js +0 -16
- package/railway-project.generated-HSSH54OO.js.map +0 -1
- package/railway.generated-6FXRDOTY.js +0 -16
- package/railway.generated-6FXRDOTY.js.map +0 -1
- package/reap.generated-WLPGHQ55.js +0 -16
- package/reap.generated-WLPGHQ55.js.map +0 -1
- package/recraft.generated-ZP2LGJOX.js +0 -16
- package/recraft.generated-ZP2LGJOX.js.map +0 -1
- package/reddit.generated-K32CVPT5.js +0 -16
- package/reddit.generated-K32CVPT5.js.map +0 -1
- package/reducto.generated-WRIPLFI3.js +0 -16
- package/reducto.generated-WRIPLFI3.js.map +0 -1
- package/relationship-USQPQNNR.js +0 -188
- package/render.generated-Y3GXGSMC.js +0 -16
- package/render.generated-Y3GXGSMC.js.map +0 -1
- package/rentcast.generated-IIWTIDWO.js +0 -16
- package/rentcast.generated-IIWTIDWO.js.map +0 -1
- package/replicate.generated-Q6PKNI3R.js +0 -16
- package/replicate.generated-Q6PKNI3R.js.map +0 -1
- package/reportei.generated-YVHFVDNZ.js +0 -16
- package/reportei.generated-YVHFVDNZ.js.map +0 -1
- package/resend.generated-Y5FEUEXK.js +0 -16
- package/resend.generated-Y5FEUEXK.js.map +0 -1
- package/resource-N5IPWCLS.js +0 -142
- package/revenuecat.generated-GU7GW7AV.js +0 -16
- package/revenuecat.generated-GU7GW7AV.js.map +0 -1
- package/runway.generated-NZXNJU4A.js +0 -16
- package/runway.generated-NZXNJU4A.js.map +0 -1
- package/salesforce.generated-K67U5OTR.js +0 -16
- package/salesforce.generated-K67U5OTR.js.map +0 -1
- package/scrapeninja.generated-KFZCUSTT.js +0 -16
- package/scrapeninja.generated-KFZCUSTT.js.map +0 -1
- package/search-KWAPQWJY.js +0 -204
- package/secret-ZTLHD2MY.js +0 -163
- package/segment.generated-P5QLZCLB.js +0 -16
- package/segment.generated-P5QLZCLB.js.map +0 -1
- package/semrush.generated-K2DYP4L5.js +0 -16
- package/semrush.generated-K2DYP4L5.js.map +0 -1
- package/sendgrid.generated-AHNT7FN7.js +0 -16
- package/sendgrid.generated-AHNT7FN7.js.map +0 -1
- package/sentry.generated-LQFC6FI4.js +0 -16
- package/sentry.generated-LQFC6FI4.js.map +0 -1
- package/serpapi.generated-F6JNY35M.js +0 -16
- package/serpapi.generated-F6JNY35M.js.map +0 -1
- package/servicenow.generated-VNBIWI2K.js +0 -16
- package/servicenow.generated-VNBIWI2K.js.map +0 -1
- package/shopify.generated-Z6VPBF2M.js +0 -16
- package/shopify.generated-Z6VPBF2M.js.map +0 -1
- package/shortio.generated-EBLU2NXY.js +0 -16
- package/shortio.generated-EBLU2NXY.js.map +0 -1
- package/similarweb.generated-XBPC7ZWQ.js +0 -16
- package/similarweb.generated-XBPC7ZWQ.js.map +0 -1
- package/slack-TOUI6LJT.js +0 -223
- package/slack-webhook.generated-2LJZV2BY.js +0 -16
- package/slack-webhook.generated-2LJZV2BY.js.map +0 -1
- package/slack.generated-Z7OKF6II.js +0 -16
- package/slack.generated-Z7OKF6II.js.map +0 -1
- package/slock.generated-AS45ERHB.js +0 -16
- package/slock.generated-AS45ERHB.js.map +0 -1
- package/snowflake.generated-HXCAAGUY.js +0 -16
- package/snowflake.generated-HXCAAGUY.js.map +0 -1
- package/sociavault.generated-34E5FIHK.js +0 -16
- package/sociavault.generated-34E5FIHK.js.map +0 -1
- package/sponge.generated-7ROJW4JV.js +0 -16
- package/sponge.generated-7ROJW4JV.js.map +0 -1
- package/spotify.generated-PRH2M3ZM.js +0 -16
- package/spotify.generated-PRH2M3ZM.js.map +0 -1
- package/sproutgigs.generated-BI4LDYVJ.js +0 -16
- package/sproutgigs.generated-BI4LDYVJ.js.map +0 -1
- package/square.generated-A75GCBE7.js +0 -16
- package/square.generated-A75GCBE7.js.map +0 -1
- package/stability-ai.generated-MNGTMAVB.js +0 -16
- package/stability-ai.generated-MNGTMAVB.js.map +0 -1
- package/steam.generated-3KS6GSZP.js +0 -16
- package/steam.generated-3KS6GSZP.js.map +0 -1
- package/strapi.generated-CZTUQN6H.js +0 -16
- package/strapi.generated-CZTUQN6H.js.map +0 -1
- package/strava.generated-NI466ZNH.js +0 -16
- package/strava.generated-NI466ZNH.js.map +0 -1
- package/streak.generated-LR2NJV6B.js +0 -16
- package/streak.generated-LR2NJV6B.js.map +0 -1
- package/stripe.generated-FHYD5ER6.js +0 -16
- package/stripe.generated-FHYD5ER6.js.map +0 -1
- package/supabase.generated-DRKORNRM.js +0 -16
- package/supabase.generated-DRKORNRM.js.map +0 -1
- package/supadata.generated-DAW3JKLY.js +0 -16
- package/supadata.generated-DAW3JKLY.js.map +0 -1
- package/supermemory.generated-2TTBEVKS.js +0 -16
- package/supermemory.generated-2TTBEVKS.js.map +0 -1
- package/tavily.generated-U6KWNEMG.js +0 -16
- package/tavily.generated-U6KWNEMG.js.map +0 -1
- package/teams-27AMM3B6.js +0 -284
- package/telegram-7A4OBGNE.js +0 -338
- package/test-oauth.generated-6JGA6FHK.js +0 -16
- package/test-oauth.generated-6JGA6FHK.js.map +0 -1
- package/testrail.generated-BEGSNRCP.js +0 -16
- package/testrail.generated-BEGSNRCP.js.map +0 -1
- package/ticketmaster.generated-EJ52YAQC.js +0 -16
- package/ticketmaster.generated-EJ52YAQC.js.map +0 -1
- package/tiktok-ads.generated-YQKHZOBE.js +0 -16
- package/tiktok-ads.generated-YQKHZOBE.js.map +0 -1
- package/tldv.generated-KQN7TIHW.js +0 -16
- package/tldv.generated-KQN7TIHW.js.map +0 -1
- package/todoist.generated-MW7B2IYN.js +0 -16
- package/todoist.generated-MW7B2IYN.js.map +0 -1
- package/together.generated-WXGMKED7.js +0 -16
- package/together.generated-WXGMKED7.js.map +0 -1
- package/tripo.generated-XPMCNIXQ.js +0 -16
- package/tripo.generated-XPMCNIXQ.js.map +0 -1
- package/twenty.generated-QQXWJ3TX.js +0 -16
- package/twenty.generated-QQXWJ3TX.js.map +0 -1
- package/twilio.generated-7TCGDPIS.js +0 -16
- package/twilio.generated-7TCGDPIS.js.map +0 -1
- package/typeform.generated-FQQHZODC.js +0 -16
- package/typeform.generated-FQQHZODC.js.map +0 -1
- package/v0.generated-P6VWRAW7.js +0 -16
- package/v0.generated-P6VWRAW7.js.map +0 -1
- package/variable-73DA2HYM.js +0 -120
- package/vercel.generated-ZONYENMV.js +0 -16
- package/vercel.generated-ZONYENMV.js.map +0 -1
- package/video-NHN6WED3.js +0 -249
- package/wandb.generated-XJLKGDZZ.js +0 -16
- package/wandb.generated-XJLKGDZZ.js.map +0 -1
- package/web-7YME5T4V.js +0 -109
- package/webflow.generated-6QV5LN3J.js +0 -16
- package/webflow.generated-6QV5LN3J.js.map +0 -1
- package/weread.generated-ONMGVSK5.js +0 -16
- package/weread.generated-ONMGVSK5.js.map +0 -1
- package/whale-alert.generated-Z27ZDJIJ.js +0 -16
- package/whale-alert.generated-Z27ZDJIJ.js.map +0 -1
- package/whoami-E7NN3FSJ.js +0 -195
- package/wix.generated-5IQVDW7B.js +0 -16
- package/wix.generated-5IQVDW7B.js.map +0 -1
- package/workflow-V2ROXNNW.js +0 -1756
- package/workos.generated-L745AVXD.js +0 -16
- package/workos.generated-L745AVXD.js.map +0 -1
- package/wrike.generated-7AYJKDIP.js +0 -16
- package/wrike.generated-7AYJKDIP.js.map +0 -1
- package/x.generated-OTPQXMVN.js +0 -16
- package/x.generated-OTPQXMVN.js.map +0 -1
- package/xero.generated-N74BZNA7.js +0 -16
- package/xero.generated-N74BZNA7.js.map +0 -1
- package/youtube.generated-Z342NKHV.js +0 -16
- package/youtube.generated-Z342NKHV.js.map +0 -1
- package/zapier.generated-7EXBN7XS.js +0 -16
- package/zapier.generated-7EXBN7XS.js.map +0 -1
- package/zapsign.generated-NXLF6NFM.js +0 -16
- package/zapsign.generated-NXLF6NFM.js.map +0 -1
- package/zendesk.generated-CJNLPCSW.js +0 -16
- package/zendesk.generated-CJNLPCSW.js.map +0 -1
- package/zep.generated-PW6WUUYQ.js +0 -16
- package/zep.generated-PW6WUUYQ.js.map +0 -1
- package/zeptomail.generated-AF4TKTME.js +0 -16
- package/zeptomail.generated-AF4TKTME.js.map +0 -1
- package/zoom.generated-W3576DQR.js +0 -16
- package/zoom.generated-W3576DQR.js.map +0 -1
- /package/{agent-5MJPJ763.js.map → agent-6OA2V3OO.js.map} +0 -0
- /package/{banking-B3EYVGJA.js.map → banking-WWVG2CP7.js.map} +0 -0
- /package/{chat-DDIJ2AKS.js.map → chat-D475VWGE.js.map} +0 -0
- /package/{chunk-QIX7GBQU.js.map → chunk-4ZHQYU4E.js.map} +0 -0
- /package/{chunk-OBVADMRQ.js.map → chunk-FKRO4PMB.js.map} +0 -0
- /package/{chunk-J7EJUHU2.js.map → chunk-GU2OYDJY.js.map} +0 -0
- /package/{chunk-MZLTZ7CS.js.map → chunk-JSHFBBDU.js.map} +0 -0
- /package/{chunk-BP3KBW2S.js.map → chunk-L6RCBAZE.js.map} +0 -0
- /package/{chunk-CWMBKQQK.js.map → chunk-ROLHZ5OO.js.map} +0 -0
- /package/{chunk-3QTXC4CT.js.map → chunk-VBI53K3Q.js.map} +0 -0
- /package/{computer-use-CYA5Z3HI.js.map → computer-use-ALMIBYF4.js.map} +0 -0
- /package/{credit-DNPZSUYR.js.map → credit-24OGXS2M.js.map} +0 -0
- /package/{developer-support-OW4CKR55.js.map → developer-support-JHHS2QGT.js.map} +0 -0
- /package/{generate-GQBW4VEC.js.map → generate-DYP65QJ5.js.map} +0 -0
- /package/{github-WITVM62X.js.map → github-UEL4IJ3N.js.map} +0 -0
- /package/{goal-YV4W7ODO.js.map → goal-QAV2T6MM.js.map} +0 -0
- /package/{host-U7SP2JHE.js.map → host-SXD5YBTX.js.map} +0 -0
- /package/{logs-O3EDYJVR.js.map → logs-NPH6LNKC.js.map} +0 -0
- /package/{maps-GS7DTWNE.js.map → maps-S6CRPCRM.js.map} +0 -0
- /package/{memory-SK6GCGCS.js.map → memory-N7QS7HLX.js.map} +0 -0
- /package/{model-OCGQDUIZ.js.map → model-45AKVBWH.js.map} +0 -0
- /package/{model-provider-233FZFTI.js.map → model-provider-EQWIHKDL.js.map} +0 -0
- /package/{org-SQS2S6JO.js.map → org-4B4XMULZ.js.map} +0 -0
- /package/{phone-CWXLAGYO.js.map → phone-FT2BBNYB.js.map} +0 -0
- /package/{preference-RIBHN5YS.js.map → preference-TGWW3TGU.js.map} +0 -0
- /package/{relationship-USQPQNNR.js.map → relationship-K4X2EMG6.js.map} +0 -0
- /package/{resource-N5IPWCLS.js.map → resource-Z3Y4LKFV.js.map} +0 -0
- /package/{search-KWAPQWJY.js.map → search-2WYLKHGZ.js.map} +0 -0
- /package/{secret-ZTLHD2MY.js.map → secret-ZBRGELVV.js.map} +0 -0
- /package/{slack-TOUI6LJT.js.map → slack-YHQCPNIL.js.map} +0 -0
- /package/{teams-27AMM3B6.js.map → teams-XQVJ6FCA.js.map} +0 -0
- /package/{telegram-7A4OBGNE.js.map → telegram-IBWT2FZR.js.map} +0 -0
- /package/{variable-73DA2HYM.js.map → variable-3VLG2R3E.js.map} +0 -0
- /package/{video-NHN6WED3.js.map → video-GXRYJ6A5.js.map} +0 -0
- /package/{web-7YME5T4V.js.map → web-6DYQEUTW.js.map} +0 -0
- /package/{whoami-E7NN3FSJ.js.map → whoami-O22ANAJS.js.map} +0 -0
- /package/{workflow-V2ROXNNW.js.map → workflow-INK3CNLQ.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/connectors/src/connectors.ts","../../../packages/connectors/src/connectors/github.ts","../../../packages/connectors/src/connectors/gmail.ts","../../../packages/connectors/src/connectors/notion.ts","../../../packages/connectors/src/connectors/x.ts","../../../packages/connectors/src/connectors/google-drive.ts","../../../packages/connectors/src/connectors/slack.ts","../../../packages/connectors/src/connectors/slock.ts","../../../packages/connectors/src/connectors/google-sheets.ts","../../../packages/connectors/src/connectors/google-calendar.ts","../../../packages/connectors/src/connectors/google-docs.ts","../../../packages/connectors/src/connectors/google-cloud.ts","../../../packages/connectors/src/connectors/linear.ts","../../../packages/connectors/src/connectors/intervals-icu.ts","../../../packages/connectors/src/connectors/vercel.ts","../../../packages/connectors/src/connectors/strava.ts","../../../packages/connectors/src/connectors/google-meet.ts","../../../packages/connectors/src/connectors/google-search-console.ts","../../../packages/connectors/src/connectors/google-analytics.ts","../../../packages/connectors/src/connectors/hubspot.ts","../../../packages/connectors/src/connectors/sentry.ts","../../../packages/connectors/src/connectors/todoist.ts","../../../packages/connectors/src/connectors/xero.ts","../../../packages/connectors/src/connectors/airtable.ts","../../../packages/connectors/src/connectors/docusign.ts","../../../packages/connectors/src/connectors/google-ads.ts","../../../packages/connectors/src/connectors/google-maps.ts","../../../packages/connectors/src/connectors/gumroad.ts","../../../packages/connectors/src/connectors/nintendo-store.ts","../../../packages/connectors/src/connectors/nintendo-switch-parental-controls.ts","../../../packages/connectors/src/connectors/playstation.ts","../../../packages/connectors/src/connectors/spotify.ts","../../../packages/connectors/src/connectors/steam.ts","../../../packages/connectors/src/connectors/agentmail.ts","../../../packages/connectors/src/connectors/archer.ts","../../../packages/connectors/src/connectors/ardent.ts","../../../packages/connectors/src/connectors/arga-labs.ts","../../../packages/connectors/src/connectors/armature.ts","../../../packages/connectors/src/connectors/bentolabs-ai.ts","../../../packages/connectors/src/connectors/bloom.ts","../../../packages/connectors/src/connectors/chert.ts","../../../packages/connectors/src/connectors/inth.ts","../../../packages/connectors/src/connectors/insforge.ts","../../../packages/connectors/src/connectors/interfaze.ts","../../../packages/connectors/src/connectors/keyframe-labs.ts","../../../packages/connectors/src/connectors/kugelaudio.ts","../../../packages/connectors/src/connectors/limrun.ts","../../../packages/connectors/src/connectors/minicor.ts","../../../packages/connectors/src/connectors/netter.ts","../../../packages/connectors/src/connectors/oddpool.ts","../../../packages/connectors/src/connectors/primitive.ts","../../../packages/connectors/src/connectors/qomplement.ts","../../../packages/connectors/src/connectors/rentahuman.ts","../../../packages/connectors/src/connectors/replicas.ts","../../../packages/connectors/src/connectors/river-markets.ts","../../../packages/connectors/src/connectors/runtime.ts","../../../packages/connectors/src/connectors/salesgraph.ts","../../../packages/connectors/src/connectors/silmaril.ts","../../../packages/connectors/src/connectors/smol-machines.ts","../../../packages/connectors/src/connectors/stablebrowse.ts","../../../packages/connectors/src/connectors/testerarmy.ts","../../../packages/connectors/src/connectors/totalis.ts","../../../packages/connectors/src/connectors/trellis.ts","../../../packages/connectors/src/connectors/voquill.ts","../../../packages/connectors/src/connectors/agora.ts","../../../packages/connectors/src/connectors/ahrefs.ts","../../../packages/connectors/src/connectors/adzuna.ts","../../../packages/connectors/src/connectors/altium-365.ts","../../../packages/connectors/src/connectors/alchemy.ts","../../../packages/connectors/src/connectors/amplitude.ts","../../../packages/connectors/src/connectors/amadeus.ts","../../../packages/connectors/src/connectors/anthropic-managed-agents.ts","../../../packages/connectors/src/connectors/apify.ts","../../../packages/connectors/src/connectors/apollo.ts","../../../packages/connectors/src/connectors/asana.ts","../../../packages/connectors/src/connectors/ashby.ts","../../../packages/connectors/src/connectors/atlassian.ts","../../../packages/connectors/src/connectors/attio.ts","../../../packages/connectors/src/connectors/atlascloud.ts","../../../packages/connectors/src/connectors/aviationstack.ts","../../../packages/connectors/src/connectors/aws.ts","../../../packages/connectors/src/connectors/axiom.ts","../../../packages/connectors/src/connectors/base44.ts","../../../packages/connectors/src/connectors/bentoml.ts","../../../packages/connectors/src/connectors/bfl.ts","../../../packages/connectors/src/connectors/bitrefill.ts","../../../packages/connectors/src/connectors/bitrix.ts","../../../packages/connectors/src/connectors/bland.ts","../../../packages/connectors/src/connectors/box.ts","../../../packages/connectors/src/connectors/brave-search.ts","../../../packages/connectors/src/connectors/brex.ts","../../../packages/connectors/src/connectors/brevo.ts","../../../packages/connectors/src/connectors/bright-data.ts","../../../packages/connectors/src/connectors/browserbase.ts","../../../packages/connectors/src/connectors/browserless.ts","../../../packages/connectors/src/connectors/browserstack.ts","../../../packages/connectors/src/connectors/browser-use.ts","../../../packages/connectors/src/connectors/bubblemaps.ts","../../../packages/connectors/src/connectors/buffer.ts","../../../packages/connectors/src/connectors/builtwith.ts","../../../packages/connectors/src/connectors/cal-com.ts","../../../packages/connectors/src/connectors/calendly.ts","../../../packages/connectors/src/connectors/canva.ts","../../../packages/connectors/src/connectors/chatwoot.ts","../../../packages/connectors/src/connectors/checkr.ts","../../../packages/connectors/src/connectors/clado.ts","../../../packages/connectors/src/connectors/clerk.ts","../../../packages/connectors/src/connectors/clearbit.ts","../../../packages/connectors/src/connectors/clickup.ts","../../../packages/connectors/src/connectors/close.ts","../../../packages/connectors/src/connectors/cloudflare.ts","../../../packages/connectors/src/connectors/cloudinary.ts","../../../packages/connectors/src/connectors/coda.ts","../../../packages/connectors/src/connectors/coingecko.ts","../../../packages/connectors/src/connectors/coresignal.ts","../../../packages/connectors/src/connectors/cronlytic.ts","../../../packages/connectors/src/connectors/crustdata.ts","../../../packages/connectors/src/connectors/cursor.ts","../../../packages/connectors/src/connectors/customer-io.ts","../../../packages/connectors/src/connectors/daytona.ts","../../../packages/connectors/src/connectors/db9.ts","../../../packages/connectors/src/connectors/deel.ts","../../../packages/connectors/src/connectors/defillama.ts","../../../packages/connectors/src/connectors/deepseek.ts","../../../packages/connectors/src/connectors/devto.ts","../../../packages/connectors/src/connectors/diffbot.ts","../../../packages/connectors/src/connectors/dify.ts","../../../packages/connectors/src/connectors/discord.ts","../../../packages/connectors/src/connectors/discord-webhook.ts","../../../packages/connectors/src/connectors/doppler.ts","../../../packages/connectors/src/connectors/doubao.ts","../../../packages/connectors/src/connectors/drive9.ts","../../../packages/connectors/src/connectors/dropbox.ts","../../../packages/connectors/src/connectors/dropbox-sign.ts","../../../packages/connectors/src/connectors/duffel.ts","../../../packages/connectors/src/connectors/e2b.ts","../../../packages/connectors/src/connectors/elevenlabs.ts","../../../packages/connectors/src/connectors/etsy.ts","../../../packages/connectors/src/connectors/etherscan.ts","../../../packages/connectors/src/connectors/exa.ts","../../../packages/connectors/src/connectors/explorium.ts","../../../packages/connectors/src/connectors/faire.ts","../../../packages/connectors/src/connectors/fal.ts","../../../packages/connectors/src/connectors/figma.ts","../../../packages/connectors/src/connectors/firecrawl.ts","../../../packages/connectors/src/connectors/fireflies.ts","../../../packages/connectors/src/connectors/flightaware.ts","../../../packages/connectors/src/connectors/freshdesk.ts","../../../packages/connectors/src/connectors/gamma.ts","../../../packages/connectors/src/connectors/garmin-connect.ts","../../../packages/connectors/src/connectors/gemini.ts","../../../packages/connectors/src/connectors/gitlab.ts","../../../packages/connectors/src/connectors/gong.ts","../../../packages/connectors/src/connectors/granola.ts","../../../packages/connectors/src/connectors/greenhouse.ts","../../../packages/connectors/src/connectors/groq.ts","../../../packages/connectors/src/connectors/helicone.ts","../../../packages/connectors/src/connectors/heygen.ts","../../../packages/connectors/src/connectors/hitem3d.ts","../../../packages/connectors/src/connectors/htmlcsstoimage.ts","../../../packages/connectors/src/connectors/honcho.ts","../../../packages/connectors/src/connectors/hugging-face.ts","../../../packages/connectors/src/connectors/hume.ts","../../../packages/connectors/src/connectors/hunter.ts","../../../packages/connectors/src/connectors/imgur.ts","../../../packages/connectors/src/connectors/infisical.ts","../../../packages/connectors/src/connectors/instagram.ts","../../../packages/connectors/src/connectors/instantly.ts","../../../packages/connectors/src/connectors/intercom.ts","../../../packages/connectors/src/connectors/ironclad.ts","../../../packages/connectors/src/connectors/jam.ts","../../../packages/connectors/src/connectors/jira.ts","../../../packages/connectors/src/connectors/jotform.ts","../../../packages/connectors/src/connectors/klaviyo.ts","../../../packages/connectors/src/connectors/kommo.ts","../../../packages/connectors/src/connectors/langfuse.ts","../../../packages/connectors/src/connectors/langsmith.ts","../../../packages/connectors/src/connectors/lark.ts","../../../packages/connectors/src/connectors/line.ts","../../../packages/connectors/src/connectors/loops.ts","../../../packages/connectors/src/connectors/luma.ts","../../../packages/connectors/src/connectors/luma-ai.ts","../../../packages/connectors/src/connectors/mailchimp.ts","../../../packages/connectors/src/connectors/mailsac.ts","../../../packages/connectors/src/connectors/make.ts","../../../packages/connectors/src/connectors/manus.ts","../../../packages/connectors/src/connectors/mapbox.ts","../../../packages/connectors/src/connectors/massive.ts","../../../packages/connectors/src/connectors/maskdb.ts","../../../packages/connectors/src/connectors/mathpix.ts","../../../packages/connectors/src/connectors/mem0.ts","../../../packages/connectors/src/connectors/mercury.ts","../../../packages/connectors/src/connectors/meshy.ts","../../../packages/connectors/src/connectors/meta-ads.ts","../../../packages/connectors/src/connectors/metabase.ts","../../../packages/connectors/src/connectors/microsoft-365.ts","../../../packages/connectors/src/connectors/tiktok-ads.ts","../../../packages/connectors/src/connectors/minimax.ts","../../../packages/connectors/src/connectors/minio.ts","../../../packages/connectors/src/connectors/miro.ts","../../../packages/connectors/src/connectors/mixpanel.ts","../../../packages/connectors/src/connectors/monday.ts","../../../packages/connectors/src/connectors/modal.ts","../../../packages/connectors/src/connectors/moss.ts","../../../packages/connectors/src/connectors/msg9.ts","../../../packages/connectors/src/connectors/n8n.ts","../../../packages/connectors/src/connectors/neon.ts","../../../packages/connectors/src/connectors/netdata.ts","../../../packages/connectors/src/connectors/novita.ts","../../../packages/connectors/src/connectors/nyne.ts","../../../packages/connectors/src/connectors/onyx.ts","../../../packages/connectors/src/connectors/openai.ts","../../../packages/connectors/src/connectors/openrouter.ts","../../../packages/connectors/src/connectors/openweather.ts","../../../packages/connectors/src/connectors/outlook-calendar.ts","../../../packages/connectors/src/connectors/outlook-mail.ts","../../../packages/connectors/src/connectors/pandadoc.ts","../../../packages/connectors/src/connectors/parallel.ts","../../../packages/connectors/src/connectors/pdf4me.ts","../../../packages/connectors/src/connectors/pdfco.ts","../../../packages/connectors/src/connectors/pdforge.ts","../../../packages/connectors/src/connectors/people-data-labs.ts","../../../packages/connectors/src/connectors/perplexity.ts","../../../packages/connectors/src/connectors/pexels.ts","../../../packages/connectors/src/connectors/pika.ts","../../../packages/connectors/src/connectors/pinecone.ts","../../../packages/connectors/src/connectors/pipedream.ts","../../../packages/connectors/src/connectors/pipedrive.ts","../../../packages/connectors/src/connectors/plain.ts","../../../packages/connectors/src/connectors/plausible.ts","../../../packages/connectors/src/connectors/podchaser.ts","../../../packages/connectors/src/connectors/posthog.ts","../../../packages/connectors/src/connectors/porkbun.ts","../../../packages/connectors/src/connectors/printful.ts","../../../packages/connectors/src/connectors/prisma-postgres.ts","../../../packages/connectors/src/connectors/profound.ts","../../../packages/connectors/src/connectors/productlane.ts","../../../packages/connectors/src/connectors/pushinator.ts","../../../packages/connectors/src/connectors/qdrant.ts","../../../packages/connectors/src/connectors/quickbooks.ts","../../../packages/connectors/src/connectors/qiita.ts","../../../packages/connectors/src/connectors/railway.ts","../../../packages/connectors/src/connectors/railway-project.ts","../../../packages/connectors/src/connectors/reap.ts","../../../packages/connectors/src/connectors/reddit.ts","../../../packages/connectors/src/connectors/reducto.ts","../../../packages/connectors/src/connectors/recraft.ts","../../../packages/connectors/src/connectors/render.ts","../../../packages/connectors/src/connectors/replicate.ts","../../../packages/connectors/src/connectors/reportei.ts","../../../packages/connectors/src/connectors/resend.ts","../../../packages/connectors/src/connectors/rentcast.ts","../../../packages/connectors/src/connectors/revenuecat.ts","../../../packages/connectors/src/connectors/runway.ts","../../../packages/connectors/src/connectors/salesforce.ts","../../../packages/connectors/src/connectors/scrapeninja.ts","../../../packages/connectors/src/connectors/segment.ts","../../../packages/connectors/src/connectors/semrush.ts","../../../packages/connectors/src/connectors/sendgrid.ts","../../../packages/connectors/src/connectors/serpapi.ts","../../../packages/connectors/src/connectors/servicenow.ts","../../../packages/connectors/src/connectors/shopify.ts","../../../packages/connectors/src/connectors/shortio.ts","../../../packages/connectors/src/connectors/similarweb.ts","../../../packages/connectors/src/connectors/slack-webhook.ts","../../../packages/connectors/src/connectors/snowflake.ts","../../../packages/connectors/src/connectors/sociavault.ts","../../../packages/connectors/src/connectors/sponge.ts","../../../packages/connectors/src/connectors/sproutgigs.ts","../../../packages/connectors/src/connectors/square.ts","../../../packages/connectors/src/connectors/stability-ai.ts","../../../packages/connectors/src/connectors/strapi.ts","../../../packages/connectors/src/connectors/streak.ts","../../../packages/connectors/src/connectors/stripe.ts","../../../packages/connectors/src/connectors/supabase.ts","../../../packages/connectors/src/connectors/supadata.ts","../../../packages/connectors/src/connectors/supermemory.ts","../../../packages/connectors/src/connectors/tavily.ts","../../../packages/connectors/src/connectors/test-oauth.ts","../../../packages/connectors/src/connectors/test-oauth-device.ts","../../../packages/connectors/src/connectors/testrail.ts","../../../packages/connectors/src/connectors/ticketmaster.ts","../../../packages/connectors/src/connectors/tldv.ts","../../../packages/connectors/src/connectors/together.ts","../../../packages/connectors/src/connectors/tripo.ts","../../../packages/connectors/src/connectors/twenty.ts","../../../packages/connectors/src/connectors/twilio.ts","../../../packages/connectors/src/connectors/typeform.ts","../../../packages/connectors/src/connectors/v0.ts","../../../packages/connectors/src/connectors/wandb.ts","../../../packages/connectors/src/connectors/webflow.ts","../../../packages/connectors/src/connectors/weread.ts","../../../packages/connectors/src/connectors/whale-alert.ts","../../../packages/connectors/src/connectors/wix.ts","../../../packages/connectors/src/connectors/workos.ts","../../../packages/connectors/src/connectors/wrike.ts","../../../packages/connectors/src/connectors/youtube.ts","../../../packages/connectors/src/connectors/zapier.ts","../../../packages/connectors/src/connectors/zapsign.ts","../../../packages/connectors/src/connectors/zendesk.ts","../../../packages/connectors/src/connectors/zep.ts","../../../packages/connectors/src/connectors/zeptomail.ts","../../../packages/connectors/src/connectors/zoom.ts","../../../packages/connectors/src/connector-config.ts","../../../packages/connectors/src/connector-utils.ts"],"sourcesContent":["import { z } from \"zod\";\nimport type {\n ConnectorAccessKind,\n ConnectorAuthClientConfig,\n ConnectorAuthMethodConfig,\n ConnectorAuthMethodId,\n ConnectorConfig,\n ConnectorGrantKind,\n ConnectorRevokeKind,\n StaticConfidentialConnectorAuthClientConfig,\n StaticPublicConnectorAuthClientConfig,\n} from \"./connector-config\";\nimport { github } from \"./connectors/github\";\nimport { gmail } from \"./connectors/gmail\";\nimport { notion } from \"./connectors/notion\";\nimport { x } from \"./connectors/x\";\nimport { googleDrive } from \"./connectors/google-drive\";\nimport { slack } from \"./connectors/slack\";\nimport { slock } from \"./connectors/slock\";\nimport { googleSheets } from \"./connectors/google-sheets\";\nimport { googleCalendar } from \"./connectors/google-calendar\";\nimport { googleDocs } from \"./connectors/google-docs\";\nimport { googleCloud } from \"./connectors/google-cloud\";\nimport { linear } from \"./connectors/linear\";\nimport { intervalsIcu } from \"./connectors/intervals-icu\";\nimport { vercel } from \"./connectors/vercel\";\nimport { strava } from \"./connectors/strava\";\nimport { googleMeet } from \"./connectors/google-meet\";\nimport { googleSearchConsole } from \"./connectors/google-search-console\";\nimport { googleAnalytics } from \"./connectors/google-analytics\";\nimport { hubspot } from \"./connectors/hubspot\";\nimport { sentry } from \"./connectors/sentry\";\nimport { todoist } from \"./connectors/todoist\";\nimport { xero } from \"./connectors/xero\";\nimport { airtable } from \"./connectors/airtable\";\nimport { docusign } from \"./connectors/docusign\";\nimport { googleAds } from \"./connectors/google-ads\";\nimport { googleMaps } from \"./connectors/google-maps\";\nimport { gumroad } from \"./connectors/gumroad\";\nimport { nintendoStore } from \"./connectors/nintendo-store\";\nimport { nintendoSwitchParentalControls } from \"./connectors/nintendo-switch-parental-controls\";\nimport { playstation } from \"./connectors/playstation\";\nimport { spotify } from \"./connectors/spotify\";\nimport { steam } from \"./connectors/steam\";\nimport { agentmail } from \"./connectors/agentmail\";\nimport { archer } from \"./connectors/archer\";\nimport { ardent } from \"./connectors/ardent\";\nimport { argaLabs } from \"./connectors/arga-labs\";\nimport { armature } from \"./connectors/armature\";\nimport { bentolabsAi } from \"./connectors/bentolabs-ai\";\nimport { bloom } from \"./connectors/bloom\";\nimport { chert } from \"./connectors/chert\";\nimport { inth } from \"./connectors/inth\";\nimport { insforge } from \"./connectors/insforge\";\nimport { interfaze } from \"./connectors/interfaze\";\nimport { keyframeLabs } from \"./connectors/keyframe-labs\";\nimport { kugelAudio } from \"./connectors/kugelaudio\";\nimport { limrun } from \"./connectors/limrun\";\nimport { minicor } from \"./connectors/minicor\";\nimport { netter } from \"./connectors/netter\";\nimport { oddpool } from \"./connectors/oddpool\";\nimport { primitive } from \"./connectors/primitive\";\nimport { qomplement } from \"./connectors/qomplement\";\nimport { rentahuman } from \"./connectors/rentahuman\";\nimport { replicas } from \"./connectors/replicas\";\nimport { riverMarkets } from \"./connectors/river-markets\";\nimport { runtime } from \"./connectors/runtime\";\nimport { salesgraph } from \"./connectors/salesgraph\";\nimport { silmaril } from \"./connectors/silmaril\";\nimport { smolMachines } from \"./connectors/smol-machines\";\nimport { stablebrowse } from \"./connectors/stablebrowse\";\nimport { testerarmy } from \"./connectors/testerarmy\";\nimport { totalis } from \"./connectors/totalis\";\nimport { trellis } from \"./connectors/trellis\";\nimport { voquill } from \"./connectors/voquill\";\nimport { agora } from \"./connectors/agora\";\nimport { ahrefs } from \"./connectors/ahrefs\";\nimport { adzuna } from \"./connectors/adzuna\";\nimport { altium365 } from \"./connectors/altium-365\";\nimport { alchemy } from \"./connectors/alchemy\";\nimport { amplitude } from \"./connectors/amplitude\";\nimport { amadeus } from \"./connectors/amadeus\";\nimport { anthropicManagedAgents } from \"./connectors/anthropic-managed-agents\";\nimport { apify } from \"./connectors/apify\";\nimport { apollo } from \"./connectors/apollo\";\nimport { asana } from \"./connectors/asana\";\nimport { ashby } from \"./connectors/ashby\";\nimport { atlassian } from \"./connectors/atlassian\";\nimport { attio } from \"./connectors/attio\";\nimport { atlascloud } from \"./connectors/atlascloud\";\nimport { aviationstack } from \"./connectors/aviationstack\";\nimport { aws } from \"./connectors/aws\";\nimport { axiom } from \"./connectors/axiom\";\nimport { base44 } from \"./connectors/base44\";\nimport { bentoml } from \"./connectors/bentoml\";\nimport { bfl } from \"./connectors/bfl\";\nimport { bitrefill } from \"./connectors/bitrefill\";\nimport { bitrix } from \"./connectors/bitrix\";\nimport { bland } from \"./connectors/bland\";\nimport { box } from \"./connectors/box\";\nimport { braveSearch } from \"./connectors/brave-search\";\nimport { brex } from \"./connectors/brex\";\nimport { brevo } from \"./connectors/brevo\";\nimport { brightData } from \"./connectors/bright-data\";\nimport { browserbase } from \"./connectors/browserbase\";\nimport { browserless } from \"./connectors/browserless\";\nimport { browserstack } from \"./connectors/browserstack\";\nimport { browserUse } from \"./connectors/browser-use\";\nimport { bubblemaps } from \"./connectors/bubblemaps\";\nimport { buffer } from \"./connectors/buffer\";\nimport { builtwith } from \"./connectors/builtwith\";\nimport { calCom } from \"./connectors/cal-com\";\nimport { calendly } from \"./connectors/calendly\";\nimport { canva } from \"./connectors/canva\";\nimport { chatwoot } from \"./connectors/chatwoot\";\nimport { checkr } from \"./connectors/checkr\";\nimport { clado } from \"./connectors/clado\";\nimport { clerk } from \"./connectors/clerk\";\nimport { clearbit } from \"./connectors/clearbit\";\nimport { clickup } from \"./connectors/clickup\";\nimport { close } from \"./connectors/close\";\nimport { cloudflare } from \"./connectors/cloudflare\";\nimport { cloudinary } from \"./connectors/cloudinary\";\nimport { coda } from \"./connectors/coda\";\nimport { coingecko } from \"./connectors/coingecko\";\nimport { coresignal } from \"./connectors/coresignal\";\nimport { cronlytic } from \"./connectors/cronlytic\";\nimport { crustdata } from \"./connectors/crustdata\";\nimport { cursor } from \"./connectors/cursor\";\nimport { customerIo } from \"./connectors/customer-io\";\nimport { daytona } from \"./connectors/daytona\";\nimport { db9 } from \"./connectors/db9\";\nimport { deel } from \"./connectors/deel\";\nimport { defillama } from \"./connectors/defillama\";\nimport { deepseek } from \"./connectors/deepseek\";\nimport { devto } from \"./connectors/devto\";\nimport { diffbot } from \"./connectors/diffbot\";\nimport { dify } from \"./connectors/dify\";\nimport { discord } from \"./connectors/discord\";\nimport { discordWebhook } from \"./connectors/discord-webhook\";\nimport { doppler } from \"./connectors/doppler\";\nimport { doubao } from \"./connectors/doubao\";\nimport { drive9 } from \"./connectors/drive9\";\nimport { dropbox } from \"./connectors/dropbox\";\nimport { dropboxSign } from \"./connectors/dropbox-sign\";\nimport { duffel } from \"./connectors/duffel\";\nimport { e2b } from \"./connectors/e2b\";\nimport { elevenlabs } from \"./connectors/elevenlabs\";\nimport { etsy } from \"./connectors/etsy\";\nimport { etherscan } from \"./connectors/etherscan\";\nimport { exa } from \"./connectors/exa\";\nimport { explorium } from \"./connectors/explorium\";\nimport { faire } from \"./connectors/faire\";\nimport { fal } from \"./connectors/fal\";\nimport { figma } from \"./connectors/figma\";\nimport { firecrawl } from \"./connectors/firecrawl\";\nimport { fireflies } from \"./connectors/fireflies\";\nimport { flightaware } from \"./connectors/flightaware\";\nimport { freshdesk } from \"./connectors/freshdesk\";\nimport { gamma } from \"./connectors/gamma\";\nimport { garminConnect } from \"./connectors/garmin-connect\";\nimport { gemini } from \"./connectors/gemini\";\nimport { gitlab } from \"./connectors/gitlab\";\nimport { gong } from \"./connectors/gong\";\nimport { granola } from \"./connectors/granola\";\nimport { greenhouse } from \"./connectors/greenhouse\";\nimport { groq } from \"./connectors/groq\";\nimport { helicone } from \"./connectors/helicone\";\nimport { heygen } from \"./connectors/heygen\";\nimport { hitem3d } from \"./connectors/hitem3d\";\nimport { htmlcsstoimage } from \"./connectors/htmlcsstoimage\";\nimport { honcho } from \"./connectors/honcho\";\nimport { huggingFace } from \"./connectors/hugging-face\";\nimport { hume } from \"./connectors/hume\";\nimport { hunter } from \"./connectors/hunter\";\nimport { imgur } from \"./connectors/imgur\";\nimport { infisical } from \"./connectors/infisical\";\nimport { instagram } from \"./connectors/instagram\";\nimport { instantly } from \"./connectors/instantly\";\nimport { intercom } from \"./connectors/intercom\";\nimport { ironclad } from \"./connectors/ironclad\";\nimport { jam } from \"./connectors/jam\";\nimport { jira } from \"./connectors/jira\";\nimport { jotform } from \"./connectors/jotform\";\nimport { klaviyo } from \"./connectors/klaviyo\";\nimport { kommo } from \"./connectors/kommo\";\nimport { langfuse } from \"./connectors/langfuse\";\nimport { langsmith } from \"./connectors/langsmith\";\nimport { lark } from \"./connectors/lark\";\nimport { line } from \"./connectors/line\";\nimport { loops } from \"./connectors/loops\";\nimport { luma } from \"./connectors/luma\";\nimport { lumaAi } from \"./connectors/luma-ai\";\nimport { mailchimp } from \"./connectors/mailchimp\";\nimport { mailsac } from \"./connectors/mailsac\";\nimport { make } from \"./connectors/make\";\nimport { manus } from \"./connectors/manus\";\nimport { mapbox } from \"./connectors/mapbox\";\nimport { massive } from \"./connectors/massive\";\nimport { maskdb } from \"./connectors/maskdb\";\nimport { mathpix } from \"./connectors/mathpix\";\nimport { mem0 } from \"./connectors/mem0\";\nimport { mercury } from \"./connectors/mercury\";\nimport { meshy } from \"./connectors/meshy\";\nimport { metaAds } from \"./connectors/meta-ads\";\nimport { metabase } from \"./connectors/metabase\";\nimport { microsoft365 } from \"./connectors/microsoft-365\";\nimport { tiktokAds } from \"./connectors/tiktok-ads\";\nimport { minimax } from \"./connectors/minimax\";\nimport { minio } from \"./connectors/minio\";\nimport { miro } from \"./connectors/miro\";\nimport { mixpanel } from \"./connectors/mixpanel\";\nimport { monday } from \"./connectors/monday\";\nimport { modal } from \"./connectors/modal\";\nimport { moss } from \"./connectors/moss\";\nimport { msg9 } from \"./connectors/msg9\";\nimport { n8n } from \"./connectors/n8n\";\nimport { neon } from \"./connectors/neon\";\nimport { netdata } from \"./connectors/netdata\";\nimport { novita } from \"./connectors/novita\";\nimport { nyne } from \"./connectors/nyne\";\nimport { onyx } from \"./connectors/onyx\";\nimport { openai } from \"./connectors/openai\";\nimport { openrouter } from \"./connectors/openrouter\";\nimport { openweather } from \"./connectors/openweather\";\nimport { outlookCalendar } from \"./connectors/outlook-calendar\";\nimport { outlookMail } from \"./connectors/outlook-mail\";\nimport { pandadoc } from \"./connectors/pandadoc\";\nimport { parallel } from \"./connectors/parallel\";\nimport { pdf4me } from \"./connectors/pdf4me\";\nimport { pdfco } from \"./connectors/pdfco\";\nimport { pdforge } from \"./connectors/pdforge\";\nimport { peopleDataLabs } from \"./connectors/people-data-labs\";\nimport { perplexity } from \"./connectors/perplexity\";\nimport { pexels } from \"./connectors/pexels\";\nimport { pika } from \"./connectors/pika\";\nimport { pinecone } from \"./connectors/pinecone\";\nimport { pipedream } from \"./connectors/pipedream\";\nimport { pipedrive } from \"./connectors/pipedrive\";\nimport { plain } from \"./connectors/plain\";\nimport { plausible } from \"./connectors/plausible\";\nimport { podchaser } from \"./connectors/podchaser\";\nimport { posthog } from \"./connectors/posthog\";\nimport { porkbun } from \"./connectors/porkbun\";\nimport { printful } from \"./connectors/printful\";\nimport { prismaPostgres } from \"./connectors/prisma-postgres\";\nimport { profound } from \"./connectors/profound\";\nimport { productlane } from \"./connectors/productlane\";\nimport { pushinator } from \"./connectors/pushinator\";\nimport { qdrant } from \"./connectors/qdrant\";\nimport { quickbooks } from \"./connectors/quickbooks\";\nimport { qiita } from \"./connectors/qiita\";\nimport { railway } from \"./connectors/railway\";\nimport { railwayProject } from \"./connectors/railway-project\";\nimport { reap } from \"./connectors/reap\";\nimport { reddit } from \"./connectors/reddit\";\nimport { reducto } from \"./connectors/reducto\";\nimport { recraft } from \"./connectors/recraft\";\nimport { render } from \"./connectors/render\";\nimport { replicate } from \"./connectors/replicate\";\nimport { reportei } from \"./connectors/reportei\";\nimport { resend } from \"./connectors/resend\";\nimport { rentcast } from \"./connectors/rentcast\";\nimport { revenuecat } from \"./connectors/revenuecat\";\nimport { runway } from \"./connectors/runway\";\nimport { salesforce } from \"./connectors/salesforce\";\nimport { scrapeninja } from \"./connectors/scrapeninja\";\nimport { segment } from \"./connectors/segment\";\nimport { semrush } from \"./connectors/semrush\";\nimport { sendgrid } from \"./connectors/sendgrid\";\nimport { serpapi } from \"./connectors/serpapi\";\nimport { servicenow } from \"./connectors/servicenow\";\nimport { shopify } from \"./connectors/shopify\";\nimport { shortio } from \"./connectors/shortio\";\nimport { similarweb } from \"./connectors/similarweb\";\nimport { slackWebhook } from \"./connectors/slack-webhook\";\nimport { snowflake } from \"./connectors/snowflake\";\nimport { sociavault } from \"./connectors/sociavault\";\nimport { sponge } from \"./connectors/sponge\";\nimport { sproutgigs } from \"./connectors/sproutgigs\";\nimport { square } from \"./connectors/square\";\nimport { stabilityAi } from \"./connectors/stability-ai\";\nimport { strapi } from \"./connectors/strapi\";\nimport { streak } from \"./connectors/streak\";\nimport { stripe } from \"./connectors/stripe\";\nimport { supabase } from \"./connectors/supabase\";\nimport { supadata } from \"./connectors/supadata\";\nimport { supermemory } from \"./connectors/supermemory\";\nimport { tavily } from \"./connectors/tavily\";\nimport { testOauth } from \"./connectors/test-oauth\";\nimport { testOauthDevice } from \"./connectors/test-oauth-device\";\nimport { testrail } from \"./connectors/testrail\";\nimport { ticketmaster } from \"./connectors/ticketmaster\";\nimport { tldv } from \"./connectors/tldv\";\nimport { together } from \"./connectors/together\";\nimport { tripo } from \"./connectors/tripo\";\nimport { twenty } from \"./connectors/twenty\";\nimport { twilio } from \"./connectors/twilio\";\nimport { typeform } from \"./connectors/typeform\";\nimport { v0 } from \"./connectors/v0\";\nimport { wandb } from \"./connectors/wandb\";\nimport { webflow } from \"./connectors/webflow\";\nimport { weread } from \"./connectors/weread\";\nimport { whaleAlert } from \"./connectors/whale-alert\";\nimport { wix } from \"./connectors/wix\";\nimport { workos } from \"./connectors/workos\";\nimport { wrike } from \"./connectors/wrike\";\nimport { youtube } from \"./connectors/youtube\";\nimport { zapier } from \"./connectors/zapier\";\nimport { zapsign } from \"./connectors/zapsign\";\nimport { zendesk } from \"./connectors/zendesk\";\nimport { zep } from \"./connectors/zep\";\nimport { zeptomail } from \"./connectors/zeptomail\";\nimport { zoom } from \"./connectors/zoom\";\n\nexport {\n CONNECTOR_AUTH_METHOD_IDS,\n CONNECTOR_DISPLAY_CATEGORY_GROUPS,\n CONNECTOR_DISPLAY_CATEGORY_META,\n CONNECTOR_DISPLAY_CATEGORY_ORDER,\n CONNECTOR_PLATFORM_SECRET_NAMES,\n connectorDisplayCategoryMetadataForItems,\n connectorAuthMethodIdSchema,\n} from \"./connector-config\";\nexport type {\n ConnectorAccessConfig,\n ConnectorAccessKind,\n ConnectorAuthClientConfig,\n ConnectorBrowserAuthCallbackOrigin,\n ConnectorAuthCodeCallbackOrigin,\n ConnectorAuthCodeGrantConfig,\n ConnectorAuthMethodConfig,\n ConnectorAuthMethodId,\n ConnectorConfig,\n ConnectorDeviceAuthGrantConfig,\n ConnectorDeviceAuthStartOptionConfig,\n ConnectorDeviceAuthStartOptions,\n ConnectorDeviceAuthStartOptionsConfig,\n ConnectorDeviceAuthStartSelectOptionChoiceConfig,\n ConnectorDeviceAuthStartSelectOptionConfig,\n ConnectorDisplayCategorizedItem,\n ConnectorDisplayCategory,\n ConnectorDisplayCategoryMetadata,\n ConnectorDisplayCategoryMetadataCategory,\n ConnectorDisplayCategoryMetadataGroup,\n ConnectorDisplayCategoryGroup,\n ConnectorEnvBindingValue,\n ConnectorEnvBindings,\n ConnectorExternalCodeGrantConfig,\n ConnectorGenerationType,\n ConnectorGrantConfig,\n ConnectorGrantKind,\n ConnectorGrantOutputBindings,\n ConnectorManagedGrantConfig,\n ConnectorManualGrantConfig,\n ConnectorManualGrantFieldConfig,\n ConnectorNoAuthGrantConfig,\n ConnectorNoAccessConfig,\n ConnectorOutputValueRef,\n ConnectorOpenIdAuthGrantConfig,\n ConnectorPlatformSecretName,\n ConnectorRefreshTokenAccessConfig,\n ConnectorRefreshTokenInputBindings,\n ConnectorRefreshTokenInputValueRef,\n ConnectorRefreshTokenOutputBindings,\n ConnectorRevokeConfig,\n ConnectorRevokeInputBindings,\n ConnectorRevokeKind,\n ConnectorSecretValueRef,\n ConnectorStaticAccessConfig,\n ConnectorStorageConfig,\n ConnectorVariableValueRef,\n DynamicPublicConnectorAuthClientConfig,\n PublicConnectorAuthClientConfig,\n StaticConfidentialConnectorAuthClientConfig,\n StaticPublicConnectorAuthClientConfig,\n} from \"./connector-config\";\n\ntype AssertNever<T extends never> = T;\n\ntype ConnectorRefreshableSecretName<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> =\n ConnectorRefreshMappingFor<Type, Method> extends {\n readonly refreshableSecrets: readonly (infer SecretName)[];\n }\n ? Extract<SecretName, string>\n : never;\n\ntype ConnectorRequiredRefreshOutputNameFromRef<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n OutputName,\n Ref,\n> = Ref extends `$secrets.${infer Name}`\n ? Name extends ConnectorRefreshableSecretName<Type, Method>\n ? OutputName\n : never\n : never;\n\ntype ConnectorRequiredRefreshOutputName<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = {\n readonly [OutputName in keyof ConnectorRefreshOutputsFor<\n Type,\n Method\n >]: ConnectorRequiredRefreshOutputNameFromRef<\n Type,\n Method,\n OutputName,\n ConnectorRefreshOutputsFor<Type, Method>[OutputName]\n >;\n}[keyof ConnectorRefreshOutputsFor<Type, Method>];\n\nfunction defineConnectors<\n const Configs extends Record<string, ConnectorConfig>,\n>(configs: Configs): Configs {\n return configs;\n}\n\n/**\n * Connector type configuration\n * Maps type to display info, auth methods, and runtime env bindings.\n *\n * Each connector's definition lives in its own file under ./connectors/.\n * Spreading here keeps the ConnectorType union literal-keyed so the\n * schema, utility getters, and autocomplete all continue to work.\n */\nconst CONNECTOR_TYPES_DEF = defineConnectors({\n ...github,\n ...gmail,\n ...notion,\n ...x,\n ...googleDrive,\n ...slack,\n ...slock,\n ...googleSheets,\n ...googleCalendar,\n ...googleDocs,\n ...linear,\n ...intervalsIcu,\n ...vercel,\n ...strava,\n ...googleMeet,\n ...googleSearchConsole,\n ...googleAnalytics,\n ...hubspot,\n ...sentry,\n ...todoist,\n ...xero,\n ...airtable,\n ...docusign,\n ...googleAds,\n ...googleCloud,\n ...googleMaps,\n ...gumroad,\n ...nintendoSwitchParentalControls,\n ...nintendoStore,\n ...playstation,\n ...spotify,\n ...steam,\n ...agentmail,\n ...archer,\n ...ardent,\n ...argaLabs,\n ...armature,\n ...bentolabsAi,\n ...bloom,\n ...chert,\n ...inth,\n ...insforge,\n ...interfaze,\n ...keyframeLabs,\n ...kugelAudio,\n ...limrun,\n ...minicor,\n ...netter,\n ...oddpool,\n ...primitive,\n ...qomplement,\n ...rentahuman,\n ...replicas,\n ...riverMarkets,\n ...runtime,\n ...salesgraph,\n ...silmaril,\n ...smolMachines,\n ...stablebrowse,\n ...testerarmy,\n ...totalis,\n ...trellis,\n ...voquill,\n ...agora,\n ...ahrefs,\n ...adzuna,\n ...altium365,\n ...alchemy,\n ...amplitude,\n ...amadeus,\n ...anthropicManagedAgents,\n ...apify,\n ...apollo,\n ...asana,\n ...ashby,\n ...atlassian,\n ...attio,\n ...atlascloud,\n ...aviationstack,\n ...aws,\n ...axiom,\n ...base44,\n ...bentoml,\n ...bfl,\n ...bitrefill,\n ...bitrix,\n ...bland,\n ...box,\n ...braveSearch,\n ...brex,\n ...brevo,\n ...brightData,\n ...browserbase,\n ...browserless,\n ...browserstack,\n ...browserUse,\n ...bubblemaps,\n ...buffer,\n ...builtwith,\n ...calCom,\n ...calendly,\n ...canva,\n ...chatwoot,\n ...checkr,\n ...clado,\n ...clerk,\n ...clearbit,\n ...clickup,\n ...close,\n ...cloudflare,\n ...cloudinary,\n ...coda,\n ...coingecko,\n ...coresignal,\n ...cronlytic,\n ...crustdata,\n ...cursor,\n ...customerIo,\n ...daytona,\n ...db9,\n ...deel,\n ...defillama,\n ...deepseek,\n ...devto,\n ...diffbot,\n ...dify,\n ...discord,\n ...discordWebhook,\n ...doppler,\n ...doubao,\n ...drive9,\n ...dropbox,\n ...dropboxSign,\n ...duffel,\n ...e2b,\n ...elevenlabs,\n ...etsy,\n ...etherscan,\n ...exa,\n ...explorium,\n ...faire,\n ...fal,\n ...figma,\n ...firecrawl,\n ...fireflies,\n ...flightaware,\n ...freshdesk,\n ...gamma,\n ...garminConnect,\n ...gemini,\n ...gitlab,\n ...gong,\n ...granola,\n ...greenhouse,\n ...groq,\n ...helicone,\n ...heygen,\n ...hitem3d,\n ...htmlcsstoimage,\n ...honcho,\n ...huggingFace,\n ...hume,\n ...hunter,\n ...imgur,\n ...infisical,\n ...instagram,\n ...instantly,\n ...intercom,\n ...ironclad,\n ...jam,\n ...jira,\n ...jotform,\n ...klaviyo,\n ...kommo,\n ...langfuse,\n ...langsmith,\n ...lark,\n ...line,\n ...loops,\n ...luma,\n ...lumaAi,\n ...mailchimp,\n ...mailsac,\n ...make,\n ...manus,\n ...mapbox,\n ...massive,\n ...maskdb,\n ...mathpix,\n ...mem0,\n ...mercury,\n ...meshy,\n ...metaAds,\n ...metabase,\n ...microsoft365,\n ...tiktokAds,\n ...minimax,\n ...minio,\n ...miro,\n ...mixpanel,\n ...monday,\n ...modal,\n ...moss,\n ...msg9,\n ...n8n,\n ...neon,\n ...netdata,\n ...novita,\n ...nyne,\n ...onyx,\n ...openai,\n ...openrouter,\n ...openweather,\n ...outlookCalendar,\n ...outlookMail,\n ...pandadoc,\n ...parallel,\n ...pdf4me,\n ...pdfco,\n ...pdforge,\n ...peopleDataLabs,\n ...perplexity,\n ...pexels,\n ...pika,\n ...pinecone,\n ...pipedream,\n ...pipedrive,\n ...plain,\n ...plausible,\n ...podchaser,\n ...posthog,\n ...porkbun,\n ...printful,\n ...prismaPostgres,\n ...profound,\n ...productlane,\n ...pushinator,\n ...qdrant,\n ...quickbooks,\n ...qiita,\n ...railway,\n ...railwayProject,\n ...reap,\n ...reddit,\n ...reducto,\n ...recraft,\n ...render,\n ...replicate,\n ...reportei,\n ...resend,\n ...rentcast,\n ...revenuecat,\n ...runway,\n ...salesforce,\n ...scrapeninja,\n ...segment,\n ...semrush,\n ...sendgrid,\n ...serpapi,\n ...servicenow,\n ...shopify,\n ...shortio,\n ...similarweb,\n ...slackWebhook,\n ...snowflake,\n ...sociavault,\n ...sponge,\n ...sproutgigs,\n ...square,\n ...stabilityAi,\n ...strapi,\n ...streak,\n ...stripe,\n ...supabase,\n ...supadata,\n ...supermemory,\n ...tavily,\n ...testOauth,\n ...testOauthDevice,\n ...testrail,\n ...ticketmaster,\n ...tldv,\n ...together,\n ...tripo,\n ...twenty,\n ...twilio,\n ...typeform,\n ...v0,\n ...wandb,\n ...webflow,\n ...weread,\n ...whaleAlert,\n ...wix,\n ...workos,\n ...wrike,\n ...youtube,\n ...zapier,\n ...zapsign,\n ...zendesk,\n ...zep,\n ...zeptomail,\n ...zoom,\n} as const);\n\nexport type ConnectorType = Extract<keyof typeof CONNECTOR_TYPES_DEF, string>;\ntype ConnectorAuthMethodsOf<Type extends ConnectorType> =\n (typeof CONNECTOR_TYPES_DEF)[Type][\"authMethods\"];\n\nexport type ConnectorAuthMethodIds<Type extends ConnectorType> = Extract<\n keyof ConnectorAuthMethodsOf<Type>,\n ConnectorAuthMethodId\n>;\nexport type ConnectorAuthMethodConfigFor<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = ConnectorAuthMethodsOf<Type>[Method] & ConnectorAuthMethodConfig;\n\ntype ConnectorRefreshMappingFor<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly access: {\n readonly kind: \"refresh-token\";\n readonly inputs: infer Inputs;\n readonly outputs: infer Outputs;\n readonly refreshableSecrets: infer RefreshableSecrets;\n };\n}\n ? {\n readonly inputs: Inputs;\n readonly outputs: Outputs;\n readonly refreshableSecrets: RefreshableSecrets;\n }\n : never;\n\ntype ConnectorGrantOutputsFor<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly grant: {\n readonly kind:\n | \"auth-code\"\n | \"openid-auth\"\n | \"external-code\"\n | \"device-auth\";\n readonly outputs: infer Outputs;\n };\n}\n ? Outputs\n : never;\n\ntype ConnectorRefreshInputsFor<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> =\n ConnectorRefreshMappingFor<Type, Method> extends {\n readonly inputs: infer Inputs;\n }\n ? Inputs\n : never;\n\ntype ConnectorRefreshOutputsFor<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> =\n ConnectorRefreshMappingFor<Type, Method> extends {\n readonly outputs: infer Outputs;\n }\n ? Outputs\n : never;\n\ntype ConnectorRevokeInputsFor<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly revoke: {\n readonly kind: \"token-revoke\";\n readonly inputs: infer Inputs;\n };\n}\n ? Inputs\n : never;\n\nexport type ConnectorRefreshInputValues<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = {\n readonly [InputName in keyof ConnectorRefreshInputsFor<Type, Method>]: string;\n};\n\nexport type ConnectorGrantOutputValues<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = {\n readonly [OutputName in keyof ConnectorGrantOutputsFor<Type, Method>]:\n | string\n | null\n | undefined;\n};\n\nexport type ConnectorRefreshOutputValues<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = Readonly<\n Record<\n Extract<ConnectorRequiredRefreshOutputName<Type, Method>, string>,\n string\n >\n> & {\n readonly [OutputName in Exclude<\n keyof ConnectorRefreshOutputsFor<Type, Method>,\n ConnectorRequiredRefreshOutputName<Type, Method>\n >]?: string;\n};\n\nexport type ConnectorRevokeInputValues<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = Readonly<\n Record<Extract<keyof ConnectorRevokeInputsFor<Type, Method>, string>, string>\n>;\n\nexport type ConnectorAuthClientConfigForMethod<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = \"client\" extends keyof ConnectorAuthMethodsOf<Type>[Method]\n ? ConnectorAuthMethodsOf<Type>[Method][\"client\"] extends ConnectorAuthClientConfig\n ? ConnectorAuthMethodsOf<Type>[Method][\"client\"]\n : never\n : never;\n\nexport type ConnectorAuthMethodIdsByGrantKind<\n Type extends ConnectorType,\n Kind extends ConnectorGrantKind,\n> = Type extends ConnectorType\n ? {\n [Method in ConnectorAuthMethodIds<Type>]: ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly grant: { readonly kind: Kind };\n }\n ? Method\n : never;\n }[ConnectorAuthMethodIds<Type>]\n : never;\n\nexport type ConnectorAuthMethodIdsByAccessKind<\n Type extends ConnectorType,\n Kind extends ConnectorAccessKind,\n> = Type extends ConnectorType\n ? {\n [Method in ConnectorAuthMethodIds<Type>]: ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly access: { readonly kind: Kind };\n }\n ? Method\n : never;\n }[ConnectorAuthMethodIds<Type>]\n : never;\n\nexport type ConnectorAuthMethodIdsByRevokeKind<\n Type extends ConnectorType,\n Kind extends ConnectorRevokeKind,\n> = Type extends ConnectorType\n ? {\n [Method in ConnectorAuthMethodIds<Type>]: ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly revoke: { readonly kind: Kind };\n }\n ? Method\n : never;\n }[ConnectorAuthMethodIds<Type>]\n : never;\n\nexport type ConnectorTypesByGrantKind<Kind extends ConnectorGrantKind> = {\n [Type in ConnectorType]: {\n [Method in keyof ConnectorAuthMethodsOf<Type>]: ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly grant: { readonly kind: Kind };\n }\n ? Type\n : never;\n }[keyof ConnectorAuthMethodsOf<Type>];\n}[ConnectorType];\n\nexport type ConnectorTypesByAccessKind<Kind extends ConnectorAccessKind> = {\n [Type in ConnectorType]: {\n [Method in keyof ConnectorAuthMethodsOf<Type>]: ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly access: { readonly kind: Kind };\n }\n ? Type\n : never;\n }[keyof ConnectorAuthMethodsOf<Type>];\n}[ConnectorType];\n\nexport type ConnectorTypesByRevokeKind<Kind extends ConnectorRevokeKind> = {\n [Type in ConnectorType]: {\n [Method in keyof ConnectorAuthMethodsOf<Type>]: ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly revoke: { readonly kind: Kind };\n }\n ? Type\n : never;\n }[keyof ConnectorAuthMethodsOf<Type>];\n}[ConnectorType];\n\nexport type AuthGrantConnectorType = ConnectorTypesByGrantKind<\n \"auth-code\" | \"openid-auth\" | \"external-code\" | \"device-auth\"\n>;\nexport type AuthCodeGrantConnectorType = ConnectorTypesByGrantKind<\"auth-code\">;\nexport type OpenIdAuthGrantConnectorType =\n ConnectorTypesByGrantKind<\"openid-auth\">;\nexport type ExternalCodeGrantConnectorType =\n ConnectorTypesByGrantKind<\"external-code\">;\nexport type DeviceAuthGrantConnectorType =\n ConnectorTypesByGrantKind<\"device-auth\">;\nexport type ConnectorAuthCodeGrantAuthMethodId<\n Type extends AuthCodeGrantConnectorType = AuthCodeGrantConnectorType,\n> = ConnectorAuthMethodIdsByGrantKind<Type, \"auth-code\">;\nexport type ConnectorOpenIdAuthGrantAuthMethodId<\n Type extends OpenIdAuthGrantConnectorType = OpenIdAuthGrantConnectorType,\n> = ConnectorAuthMethodIdsByGrantKind<Type, \"openid-auth\">;\nexport type ConnectorExternalCodeGrantAuthMethodId<\n Type extends ExternalCodeGrantConnectorType = ExternalCodeGrantConnectorType,\n> = ConnectorAuthMethodIdsByGrantKind<Type, \"external-code\">;\nexport type ConnectorDeviceAuthGrantAuthMethodId<\n Type extends DeviceAuthGrantConnectorType = DeviceAuthGrantConnectorType,\n> = ConnectorAuthMethodIdsByGrantKind<Type, \"device-auth\">;\nexport type RefreshTokenAccessConnectorType =\n ConnectorTypesByAccessKind<\"refresh-token\">;\nexport type TokenRevokeConnectorType =\n ConnectorTypesByRevokeKind<\"token-revoke\">;\ntype TokenRevokeConnectorTypeWithNonStaticClient = {\n [Type in TokenRevokeConnectorType]: {\n [Method in ConnectorAuthMethodIds<Type>]: ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly revoke: { readonly kind: \"token-revoke\" };\n readonly client:\n | StaticConfidentialConnectorAuthClientConfig\n | StaticPublicConnectorAuthClientConfig;\n }\n ? never\n : ConnectorAuthMethodsOf<Type>[Method] extends {\n readonly revoke: { readonly kind: \"token-revoke\" };\n }\n ? Type\n : never;\n }[ConnectorAuthMethodIds<Type>];\n}[TokenRevokeConnectorType];\nexport type TokenRevokeConnectorAuthMethodsUseStaticClients =\n AssertNever<TokenRevokeConnectorTypeWithNonStaticClient>;\n\nexport const CONNECTOR_TYPES = CONNECTOR_TYPES_DEF;\nexport const CONNECTOR_TYPE_KEYS = Object.freeze(\n Object.keys(CONNECTOR_TYPES_DEF),\n) as readonly [ConnectorType, ...ConnectorType[]];\nexport const connectorTypeSchema = z.enum(CONNECTOR_TYPE_KEYS);\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const github = {\n github: {\n label: \"GitHub\",\n category: \"engineering-team-execution\",\n tags: [\"gh\", \"gh_api_key\", \"git\", \"vcs\", \"scm\", \"repos\"],\n helpText:\n \"Connect your GitHub account to access repositories and GitHub features\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with GitHub to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GH_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GH_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GITHUB_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"repo\", \"project\", \"workflow\"],\n outputs: {\n accessToken: \"$secrets.GITHUB_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GH_TOKEN: \"$secrets.GITHUB_ACCESS_TOKEN\",\n GITHUB_TOKEN: \"$secrets.GITHUB_ACCESS_TOKEN\",\n },\n },\n revoke: {\n kind: \"token-revoke\",\n inputs: {\n accessToken: \"$secrets.GITHUB_ACCESS_TOKEN\",\n },\n },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const gmail = {\n gmail: {\n label: \"Gmail\",\n category: \"communication-collaboration\",\n tags: [\"email\", \"mail\"],\n helpText: \"Connect your Gmail account to send and read emails\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Gmail access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GMAIL_ACCESS_TOKEN\", \"GMAIL_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"https://www.googleapis.com/auth/gmail.modify\"],\n outputs: {\n accessToken: \"$secrets.GMAIL_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GMAIL_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GMAIL_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GMAIL_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GMAIL_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GMAIL_ACCESS_TOKEN\"],\n envBindings: {\n GMAIL_TOKEN: \"$secrets.GMAIL_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const notion = {\n notion: {\n label: \"Notion\",\n category: \"docs-files-knowledge\",\n tags: [\"docs\", \"wiki\", \"workspace\"],\n helpText: \"Connect your Notion workspace to access pages and databases\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Notion to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"NOTION_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"NOTION_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"NOTION_ACCESS_TOKEN\", \"NOTION_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [],\n outputs: {\n accessToken: \"$secrets.NOTION_ACCESS_TOKEN\",\n refreshToken: \"$secrets.NOTION_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.NOTION_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.NOTION_ACCESS_TOKEN\",\n refreshToken: \"$secrets.NOTION_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"NOTION_ACCESS_TOKEN\"],\n envBindings: {\n NOTION_TOKEN: \"$secrets.NOTION_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const x = {\n x: {\n label: \"X\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your X (Twitter) account to read tweets, timelines, and search\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with X to grant read access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"X_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"X_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"X_ACCESS_TOKEN\", \"X_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"tweet.read\", // All the Tweets you can view, including Tweets from protected accounts.\n \"tweet.write\", // Tweet and Retweet for you.\n \"tweet.moderate.write\", // Hide and unhide replies to your Tweets.\n \"users.email\", // Email from an authenticated user.\n \"users.read\", // Any account you can view, including protected accounts.\n \"follows.read\", // People who follow you and people who you follow.\n \"follows.write\", // Follow and unfollow people for you.\n \"offline.access\", // Stay connected to your account until you revoke access.\n \"space.read\", // All the Spaces you can view.\n \"mute.read\", // Accounts you've muted.\n \"mute.write\", // Mute and unmute accounts for you.\n \"like.read\", // Tweets you've liked and likes you can view.\n \"like.write\", // Like and un-like Tweets for you.\n \"list.read\", // Lists, list members, and list followers of lists you've created or are a member of, including private lists.\n \"list.write\", // Create and manage Lists for you.\n \"block.read\", // Accounts you've blocked.\n \"block.write\", // Block and unblock accounts for you.\n \"bookmark.read\", // Get Bookmarked Tweets from an authenticated user.\n \"bookmark.write\", // Bookmark and remove Bookmarks from Tweets.\n \"dm.read\", // All the Direct Messages you can view, including Direct Messages from protected accounts.\n \"dm.write\", // Send and manage Direct Messages for you.\n \"media.write\", // Upload media.\n ],\n outputs: {\n accessToken: \"$secrets.X_ACCESS_TOKEN\",\n refreshToken: \"$secrets.X_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.X_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.X_ACCESS_TOKEN\",\n refreshToken: \"$secrets.X_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"X_ACCESS_TOKEN\"],\n envBindings: {\n X_TOKEN: \"$secrets.X_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleDrive = {\n \"google-drive\": {\n label: \"Google Drive\",\n category: \"docs-files-knowledge\",\n helpText: \"Connect your Google account to access and manage files in Drive\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Drive access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GOOGLE_DRIVE_ACCESS_TOKEN\", \"GOOGLE_DRIVE_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/drive\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_DRIVE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_DRIVE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_DRIVE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_DRIVE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_DRIVE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_DRIVE_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_DRIVE_TOKEN: \"$secrets.GOOGLE_DRIVE_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const slack = {\n slack: {\n label: \"Slack\",\n category: \"communication-collaboration\",\n tags: [\"chat\", \"messaging\", \"im\"],\n helpText: \"Connect your Slack account to send messages and read channels\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Slack to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"SLACK_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"SLACK_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"SLACK_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n // Channels\n \"channels:read\",\n // Messaging\n \"chat:write\",\n // Users\n \"users:read\",\n \"users:read.email\",\n // Files\n \"files:read\",\n \"files:write\",\n // Direct messages (high priority)\n \"im:write\",\n // Reactions (high priority)\n \"reactions:read\",\n \"reactions:write\",\n // Private channels (high priority)\n \"groups:read\",\n // Reminders (medium priority)\n \"reminders:read\",\n \"reminders:write\",\n // Pins (medium priority)\n \"pins:read\",\n \"pins:write\",\n // User groups (medium priority)\n \"usergroups:read\",\n // Do Not Disturb (low priority)\n \"dnd:read\",\n // Bookmarks (low priority)\n \"bookmarks:read\",\n // Team info (low priority)\n \"team:read\",\n // Custom emoji (low priority)\n \"emoji:read\",\n ],\n outputs: {\n accessToken: \"$secrets.SLACK_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SLACK_TOKEN: \"$secrets.SLACK_ACCESS_TOKEN\",\n },\n },\n revoke: {\n kind: \"token-revoke\",\n inputs: {\n accessToken: \"$secrets.SLACK_ACCESS_TOKEN\",\n },\n },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const slock = {\n slock: {\n label: \"Slock\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect your Slock account to let agents access Slock agents, machines, channels, and messages.\",\n authMethods: {\n oauth: {\n label: \"OAuth Device Authorization\",\n helpText: \"Sign in with Slock using a device code.\",\n client: {\n clientRegistration: \"dynamic\",\n clientType: \"public\",\n },\n storage: {\n secrets: [\n \"SLOCK_ACCESS_TOKEN\",\n \"SLOCK_SERVER_ID\",\n \"SLOCK_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"device-auth\",\n scopes: [],\n outputs: {\n accessToken: \"$secrets.SLOCK_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SLOCK_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.SLOCK_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.SLOCK_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SLOCK_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"SLOCK_ACCESS_TOKEN\"],\n envBindings: {\n SLOCK_TOKEN: \"$secrets.SLOCK_ACCESS_TOKEN\",\n SLOCK_SERVER_ID: \"$secrets.SLOCK_SERVER_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleSheets = {\n \"google-sheets\": {\n label: \"Google Sheets\",\n category: \"docs-files-knowledge\",\n helpText: \"Connect your Google account to access and manage spreadsheets\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Sheets access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\n \"GOOGLE_SHEETS_ACCESS_TOKEN\",\n \"GOOGLE_SHEETS_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/spreadsheets\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_SHEETS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_SHEETS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_SHEETS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_SHEETS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_SHEETS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_SHEETS_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_SHEETS_TOKEN: \"$secrets.GOOGLE_SHEETS_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleCalendar = {\n \"google-calendar\": {\n label: \"Google Calendar\",\n category: \"meetings-scheduling\",\n tags: [\"calendar\", \"scheduling\", \"gcal\"],\n helpText:\n \"Connect your Google account to access and manage calendar events\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Calendar access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\n \"GOOGLE_CALENDAR_ACCESS_TOKEN\",\n \"GOOGLE_CALENDAR_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/calendar\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_CALENDAR_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_CALENDAR_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_CALENDAR_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_CALENDAR_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_CALENDAR_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_CALENDAR_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_CALENDAR_TOKEN: \"$secrets.GOOGLE_CALENDAR_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleDocs = {\n \"google-docs\": {\n label: \"Google Docs\",\n category: \"docs-files-knowledge\",\n helpText: \"Connect your Google account to access and manage documents\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Docs access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GOOGLE_DOCS_ACCESS_TOKEN\", \"GOOGLE_DOCS_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/documents\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_DOCS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_DOCS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_DOCS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_DOCS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_DOCS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_DOCS_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_DOCS_TOKEN: \"$secrets.GOOGLE_DOCS_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleCloud = {\n \"google-cloud\": {\n label: \"Google Cloud\",\n category: \"data-automation-infrastructure\",\n tags: [\n \"google cloud\",\n \"gcp\",\n \"cloud\",\n \"bigquery\",\n \"cloud storage\",\n \"cloud run\",\n ],\n helpText:\n \"Connect your Google account to access Google Cloud resources through Google Cloud APIs. Google IAM and enabled APIs determine which projects, resources, and actions are available.\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText:\n \"Sign in with Google to grant Google Cloud access. The connector is not bound to one project; Google IAM controls accessible resources.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GOOGLE_CLOUD_ACCESS_TOKEN\", \"GOOGLE_CLOUD_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"openid\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n \"https://www.googleapis.com/auth/cloud-platform\",\n \"https://www.googleapis.com/auth/appengine.admin\",\n \"https://www.googleapis.com/auth/sqlservice.login\",\n \"https://www.googleapis.com/auth/compute\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_CLOUD_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_CLOUD_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_CLOUD_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_CLOUD_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_CLOUD_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_CLOUD_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_CLOUD_TOKEN: \"$secrets.GOOGLE_CLOUD_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const linear = {\n linear: {\n label: \"Linear\",\n category: \"engineering-team-execution\",\n tags: [\"issues\", \"tickets\", \"project-management\"],\n helpText: \"Connect your Linear account to manage issues and projects\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Linear to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"LINEAR_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"LINEAR_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"LINEAR_ACCESS_TOKEN\", \"LINEAR_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"read\",\n \"write\",\n \"issues:create\",\n \"comments:create\",\n \"timeSchedule:write\",\n ],\n outputs: {\n accessToken: \"$secrets.LINEAR_ACCESS_TOKEN\",\n refreshToken: \"$secrets.LINEAR_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.LINEAR_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.LINEAR_ACCESS_TOKEN\",\n refreshToken: \"$secrets.LINEAR_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"LINEAR_ACCESS_TOKEN\"],\n envBindings: {\n LINEAR_TOKEN: \"$secrets.LINEAR_ACCESS_TOKEN\",\n },\n },\n revoke: {\n kind: \"token-revoke\",\n inputs: {\n accessToken: \"$secrets.LINEAR_ACCESS_TOKEN\",\n },\n },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const intervalsIcu = {\n \"intervals-icu\": {\n label: \"Intervals.icu\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Intervals.icu account to access training, activity, wellness, and calendar data\",\n authMethods: {\n oauth: {\n label: \"OAuth\",\n helpText: \"Sign in with Intervals.icu to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"INTERVALS_ICU_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"INTERVALS_ICU_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"INTERVALS_ICU_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"ACTIVITY\", \"WELLNESS\", \"CALENDAR\", \"SETTINGS\", \"LIBRARY\"],\n outputs: {\n accessToken: \"$secrets.INTERVALS_ICU_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INTERVALS_ICU_TOKEN: \"$secrets.INTERVALS_ICU_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const vercel = {\n vercel: {\n label: \"Vercel\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Vercel account to manage deployments, projects, and domains\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Vercel to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"VERCEL_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"VERCEL_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"VERCEL_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [],\n outputs: {\n accessToken: \"$secrets.VERCEL_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n VERCEL_TOKEN: \"$secrets.VERCEL_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const strava = {\n strava: {\n label: \"Strava\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Strava account to access activities and athlete data\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Strava to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"STRAVA_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"STRAVA_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"STRAVA_ACCESS_TOKEN\", \"STRAVA_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"read\",\n \"profile:read_all\",\n \"activity:read_all\",\n \"activity:write\",\n ],\n outputs: {\n accessToken: \"$secrets.STRAVA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.STRAVA_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.STRAVA_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.STRAVA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.STRAVA_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"STRAVA_ACCESS_TOKEN\"],\n envBindings: {\n STRAVA_TOKEN: \"$secrets.STRAVA_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleMeet = {\n \"google-meet\": {\n label: \"Google Meet\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Google account to manage Meet spaces, view conference records, participants, recordings, and transcripts\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Meet access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GOOGLE_MEET_ACCESS_TOKEN\", \"GOOGLE_MEET_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/meetings.space.created\",\n // Use meetings.space.readonly (not meetings.conferencerecords.readonly) — confirmed\n // correct per Google Discovery API. meetings.space.readonly grants read access to\n // spaces and conference records; meetings.conferencerecords.readonly is not a valid\n // OAuth scope in the Google Meet REST API v2 discovery document.\n \"https://www.googleapis.com/auth/meetings.space.readonly\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_MEET_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_MEET_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_MEET_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_MEET_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_MEET_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_MEET_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_MEET_TOKEN: \"$secrets.GOOGLE_MEET_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleSearchConsole = {\n \"google-search-console\": {\n label: \"Google Search Console\",\n category: \"marketing-content-growth\",\n tags: [\n \"seo\",\n \"search console\",\n \"webmasters\",\n \"search analytics\",\n \"indexing\",\n \"sitemaps\",\n ],\n helpText:\n \"Connect your Google account to access Search Console performance, indexing, sitemap, and site data\",\n authMethods: {\n oauth: {\n showExperimentalLabel: false,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Search Console access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\n \"GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN\",\n \"GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/webmasters\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_SEARCH_CONSOLE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_SEARCH_CONSOLE_TOKEN:\n \"$secrets.GOOGLE_SEARCH_CONSOLE_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleAnalytics = {\n \"google-analytics\": {\n label: \"Google Analytics\",\n category: \"marketing-content-growth\",\n tags: [\n \"analytics\",\n \"ga4\",\n \"reports\",\n \"traffic\",\n \"properties\",\n \"admin api\",\n \"data api\",\n ],\n helpText:\n \"Connect your Google account to access GA4 reports, properties, accounts, and audience data\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Analytics access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\n \"GOOGLE_ANALYTICS_ACCESS_TOKEN\",\n \"GOOGLE_ANALYTICS_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/analytics.readonly\",\n \"https://www.googleapis.com/auth/analytics.edit\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_ANALYTICS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_ANALYTICS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_ANALYTICS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_ANALYTICS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_ANALYTICS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_ANALYTICS_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_ANALYTICS_TOKEN: \"$secrets.GOOGLE_ANALYTICS_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const hubspot = {\n hubspot: {\n label: \"HubSpot\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your HubSpot account to manage contacts, companies, deals, and tickets\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with HubSpot to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"HUBSPOT_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"HUBSPOT_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"HUBSPOT_ACCESS_TOKEN\", \"HUBSPOT_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"crm.objects.contacts.read\",\n \"crm.objects.contacts.write\",\n \"crm.objects.companies.read\",\n \"crm.objects.companies.write\",\n \"crm.objects.deals.read\",\n \"crm.objects.deals.write\",\n \"tickets\",\n \"crm.objects.line_items.read\",\n \"crm.objects.quotes.read\",\n \"crm.lists.read\",\n \"crm.schemas.contacts.read\",\n \"settings.users.read\",\n ],\n outputs: {\n accessToken: \"$secrets.HUBSPOT_ACCESS_TOKEN\",\n refreshToken: \"$secrets.HUBSPOT_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.HUBSPOT_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.HUBSPOT_ACCESS_TOKEN\",\n refreshToken: \"$secrets.HUBSPOT_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"HUBSPOT_ACCESS_TOKEN\"],\n envBindings: {\n HUBSPOT_TOKEN: \"$secrets.HUBSPOT_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const sentry = {\n sentry: {\n label: \"Sentry\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Sentry account to access error tracking and project data\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Sentry to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"SENTRY_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"SENTRY_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"SENTRY_ACCESS_TOKEN\", \"SENTRY_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"org:read\",\n \"project:read\",\n \"team:read\",\n \"member:read\",\n \"event:read\",\n \"event:write\",\n ],\n outputs: {\n accessToken: \"$secrets.SENTRY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SENTRY_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.SENTRY_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.SENTRY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SENTRY_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"SENTRY_ACCESS_TOKEN\"],\n envBindings: {\n SENTRY_TOKEN: \"$secrets.SENTRY_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const todoist = {\n todoist: {\n label: \"Todoist\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Todoist account to manage tasks, projects, labels, and comments\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Todoist to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"TODOIST_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"TODOIST_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"TODOIST_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"data:read_write\", \"data:delete\", \"project:delete\"],\n outputs: {\n accessToken: \"$secrets.TODOIST_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TODOIST_TOKEN: \"$secrets.TODOIST_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const xero = {\n xero: {\n label: \"Xero\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Xero account to access accounting data, invoices, and contacts\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Xero to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"XERO_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"XERO_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"XERO_ACCESS_TOKEN\", \"XERO_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n \"offline_access\",\n \"accounting.contacts\",\n \"accounting.settings\",\n \"accounting.invoices\",\n \"accounting.payments\",\n \"accounting.banktransactions\",\n \"accounting.manualjournals\",\n \"accounting.attachments\",\n \"accounting.budgets.read\",\n \"accounting.reports.profitandloss.read\",\n \"accounting.reports.balancesheet.read\",\n \"accounting.reports.trialbalance.read\",\n \"accounting.reports.aged.read\",\n \"accounting.reports.executivesummary.read\",\n \"accounting.reports.banksummary.read\",\n \"accounting.reports.budgetsummary.read\",\n \"files\",\n \"assets\",\n \"projects\",\n ],\n outputs: {\n accessToken: \"$secrets.XERO_ACCESS_TOKEN\",\n refreshToken: \"$secrets.XERO_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.XERO_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.XERO_ACCESS_TOKEN\",\n refreshToken: \"$secrets.XERO_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"XERO_ACCESS_TOKEN\"],\n envBindings: {\n XERO_TOKEN: \"$secrets.XERO_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const airtable = {\n airtable: {\n label: \"Airtable\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your Airtable account to access bases, tables, and records\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Airtable to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"AIRTABLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"AIRTABLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"AIRTABLE_ACCESS_TOKEN\", \"AIRTABLE_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"data.records:read\",\n \"data.records:write\",\n \"data.recordComments:read\",\n \"data.recordComments:write\",\n \"schema.bases:read\",\n \"schema.bases:write\",\n \"user.email:read\",\n ],\n outputs: {\n accessToken: \"$secrets.AIRTABLE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.AIRTABLE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.AIRTABLE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.AIRTABLE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.AIRTABLE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"AIRTABLE_ACCESS_TOKEN\"],\n envBindings: {\n AIRTABLE_TOKEN: \"$secrets.AIRTABLE_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const docusign = {\n docusign: {\n label: \"DocuSign\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your DocuSign account to send and manage electronic signatures\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.DocuSignConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with DocuSign to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"DOCUSIGN_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"DOCUSIGN_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"DOCUSIGN_ACCESS_TOKEN\", \"DOCUSIGN_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"signature\", \"extended\", \"openid\"],\n outputs: {\n accessToken: \"$secrets.DOCUSIGN_ACCESS_TOKEN\",\n refreshToken: \"$secrets.DOCUSIGN_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.DOCUSIGN_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.DOCUSIGN_ACCESS_TOKEN\",\n refreshToken: \"$secrets.DOCUSIGN_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"DOCUSIGN_ACCESS_TOKEN\"],\n envBindings: {\n DOCUSIGN_TOKEN: \"$secrets.DOCUSIGN_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleAds = {\n \"google-ads\": {\n label: \"Google Ads\",\n category: \"marketing-content-growth\",\n tags: [\"ads\", \"advertising\", \"google ads\", \"campaigns\", \"gaql\"],\n helpText:\n \"Connect your Google Ads account to manage campaigns, ad groups, and performance reports\",\n authMethods: {\n oauth: {\n showExperimentalLabel: false,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant Google Ads access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GOOGLE_ADS_ACCESS_TOKEN\", \"GOOGLE_ADS_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/adwords\",\n \"https://www.googleapis.com/auth/datamanager\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_ADS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_ADS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_ADS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_ADS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_ADS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_ADS_ACCESS_TOKEN\"],\n platformSecrets: [\"GOOGLE_ADS_DEVELOPER_TOKEN\"],\n envBindings: {\n GOOGLE_ADS_TOKEN: \"$secrets.GOOGLE_ADS_ACCESS_TOKEN\",\n GOOGLE_ADS_DEVELOPER_TOKEN: \"$secrets.GOOGLE_ADS_DEVELOPER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const googleMaps = {\n \"google-maps\": {\n label: \"Google Maps\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Google Maps Platform to access geocoding, places, directions, and route matrices\",\n authMethods: {\n oauth: {\n showExperimentalLabel: false,\n label: \"OAuth (Recommended)\",\n helpText:\n \"Sign in with Google to grant Google Maps Platform access. Google Cloud IAM and enabled Maps APIs determine which resources and actions are available.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GOOGLE_MAPS_ACCESS_TOKEN\", \"GOOGLE_MAPS_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/cloud-platform\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.GOOGLE_MAPS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_MAPS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GOOGLE_MAPS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GOOGLE_MAPS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GOOGLE_MAPS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GOOGLE_MAPS_ACCESS_TOKEN\"],\n envBindings: {\n GOOGLE_MAPS_TOKEN: \"$secrets.GOOGLE_MAPS_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const gumroad = {\n gumroad: {\n label: \"Gumroad\",\n category: \"data-automation-infrastructure\",\n tags: [\"ecommerce\", \"store\", \"products\", \"sales\", \"creator\"],\n helpText:\n \"Connect your Gumroad account to manage products, retrieve sales data, handle customers, and verify license keys\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Gumroad to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GUMROAD_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GUMROAD_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"GUMROAD_ACCESS_TOKEN\", \"GUMROAD_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"view_profile\",\n \"edit_products\",\n \"view_sales\",\n \"mark_sales_as_shipped\",\n \"edit_sales\",\n ],\n outputs: {\n accessToken: \"$secrets.GUMROAD_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GUMROAD_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GUMROAD_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GUMROAD_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GUMROAD_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GUMROAD_ACCESS_TOKEN\"],\n envBindings: {\n GUMROAD_TOKEN: \"$secrets.GUMROAD_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Log in to [Gumroad](https://app.gumroad.com/settings/advanced)\\n2. Scroll to the **Applications** section\\n3. Click **Generate access token**\\n4. Copy the token and paste it here\",\n storage: {\n secrets: [\"GUMROAD_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GUMROAD_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"your-gumroad-access-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GUMROAD_TOKEN: \"$secrets.GUMROAD_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const nintendoStore = {\n \"nintendo-store\": {\n label: \"Nintendo Store\",\n category: \"data-automation-infrastructure\",\n tags: [\"gaming\", \"player\", \"nintendo\", \"store\", \"catalog\", \"playtime\"],\n helpText:\n \"Connect your Nintendo Account to access Nintendo Store catalog, wishlist, points, and play activity data.\",\n authMethods: {\n api: {\n featureFlag: FeatureSwitchKey.NintendoStoreConnector,\n label: \"Nintendo sign-in\",\n helpText:\n \"Sign in with Nintendo. After signing in, right-click the redirect button and copy its link address, then paste the full `npf...://auth` redirect URL or the `session_token_code` value.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: \"5c38e31cd085304b\",\n },\n storage: {\n secrets: [\n \"NINTENDO_STORE_SESSION_TOKEN\",\n \"NINTENDO_STORE_ACCESS_TOKEN\",\n \"NINTENDO_STORE_ID_TOKEN\",\n ],\n variables: [\"NINTENDO_STORE_ACCOUNT_ID\", \"NINTENDO_STORE_LOCALE\"],\n },\n grant: {\n kind: \"external-code\",\n scopes: [\n \"openid\",\n \"user\",\n \"user.mii\",\n \"user.email\",\n \"user.links[].id\",\n ],\n outputs: {\n sessionToken: \"$secrets.NINTENDO_STORE_SESSION_TOKEN\",\n accessToken: \"$secrets.NINTENDO_STORE_ACCESS_TOKEN\",\n idToken: \"$secrets.NINTENDO_STORE_ID_TOKEN\",\n accountId: \"$vars.NINTENDO_STORE_ACCOUNT_ID\",\n locale: \"$vars.NINTENDO_STORE_LOCALE\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n sessionToken: \"$secrets.NINTENDO_STORE_SESSION_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.NINTENDO_STORE_ACCESS_TOKEN\",\n idToken: \"$secrets.NINTENDO_STORE_ID_TOKEN\",\n locale: \"$vars.NINTENDO_STORE_LOCALE\",\n },\n refreshableSecrets: [\"NINTENDO_STORE_ACCESS_TOKEN\"],\n envBindings: {\n NINTENDO_STORE_TOKEN: \"$secrets.NINTENDO_STORE_ACCESS_TOKEN\",\n NINTENDO_STORE_LOCALE: \"$vars.NINTENDO_STORE_LOCALE\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const NINTENDO_SWITCH_PARENTAL_CONTROLS_APP = {\n clientId: \"54789befb391a838\",\n redirectUri: \"npf54789befb391a838://auth\",\n packageId: \"com.nintendo.znma\",\n displayedVersion: \"2.4.0\",\n internalVersion: 660,\n os: \"ANDROID\",\n osVersion: \"35\",\n modelName: \"vm0\",\n timeZone: \"Etc/UTC\",\n actionBaseUrl: \"https://app.lp1.znma.srv.nintendo.net\",\n accountBaseUrl: \"https://api.accounts.nintendo.com\",\n scopes: [\n \"openid\",\n \"user\",\n \"user.mii\",\n \"moonUser:administration\",\n \"moonDevice:create\",\n \"moonOwnedDevice:administration\",\n \"moonParentalControlSetting\",\n \"moonParentalControlSetting:update\",\n \"moonParentalControlSettingState\",\n \"moonPairingState\",\n \"moonSmartDevice:administration\",\n \"moonDailySummary\",\n \"moonMonthlySummary\",\n ],\n userAgent: \"moon_ANDROID/2.4.0 (com.nintendo.znma; build:660; ANDROID 35)\",\n} as const;\n\nexport const nintendoSwitchParentalControls = {\n \"nintendo-switch-parental-controls\": {\n label: \"Nintendo Switch Parental Controls\",\n category: \"data-automation-infrastructure\",\n tags: [\n \"gaming\",\n \"player\",\n \"nintendo\",\n \"parental-controls\",\n \"playtime\",\n \"gamechat\",\n ],\n helpText:\n \"Connect Nintendo Switch Parental Controls to read household play activity and manage explicitly granted console settings.\",\n authMethods: {\n api: {\n featureFlag: FeatureSwitchKey.NintendoSwitchParentalControlsConnector,\n label: \"Nintendo sign-in\",\n helpText:\n \"Sign in with the adult Nintendo Account used by the Nintendo Switch Parental Controls app. After signing in, right-click the redirect button and copy its link address, then paste the full `npf...://auth` redirect URL or the `session_token_code` value.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: NINTENDO_SWITCH_PARENTAL_CONTROLS_APP.clientId,\n },\n storage: {\n secrets: [\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_SESSION_TOKEN\",\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCESS_TOKEN\",\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_ID_TOKEN\",\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_SMART_DEVICE_ID\",\n ],\n variables: [\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCOUNT_ID\",\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_LANGUAGE\",\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_DEVICE_CATALOG\",\n ],\n },\n grant: {\n kind: \"external-code\",\n scopes: NINTENDO_SWITCH_PARENTAL_CONTROLS_APP.scopes.slice(),\n outputs: {\n sessionToken:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_SESSION_TOKEN\",\n accessToken:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCESS_TOKEN\",\n idToken: \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_ID_TOKEN\",\n smartDeviceId:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_SMART_DEVICE_ID\",\n accountId: \"$vars.NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCOUNT_ID\",\n language: \"$vars.NINTENDO_SWITCH_PARENTAL_CONTROLS_LANGUAGE\",\n deviceCatalog:\n \"$vars.NINTENDO_SWITCH_PARENTAL_CONTROLS_DEVICE_CATALOG\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n sessionToken:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_SESSION_TOKEN\",\n smartDeviceId:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_SMART_DEVICE_ID\",\n language: \"$vars.NINTENDO_SWITCH_PARENTAL_CONTROLS_LANGUAGE\",\n },\n outputs: {\n accessToken:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCESS_TOKEN\",\n idToken: \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_ID_TOKEN\",\n deviceCatalog:\n \"$vars.NINTENDO_SWITCH_PARENTAL_CONTROLS_DEVICE_CATALOG\",\n },\n refreshableSecrets: [\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCESS_TOKEN\",\n \"NINTENDO_SWITCH_PARENTAL_CONTROLS_ID_TOKEN\",\n ],\n envBindings: {\n NINTENDO_SWITCH_PARENTAL_CONTROLS_TOKEN:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_ID_TOKEN\",\n NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCOUNT_TOKEN:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_ACCESS_TOKEN\",\n NINTENDO_SWITCH_PARENTAL_CONTROLS_SMART_DEVICE_ID:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_SMART_DEVICE_ID\",\n NINTENDO_SWITCH_PARENTAL_CONTROLS_LANGUAGE:\n \"$vars.NINTENDO_SWITCH_PARENTAL_CONTROLS_LANGUAGE\",\n NINTENDO_SWITCH_PARENTAL_CONTROLS_DEVICE_CATALOG:\n \"$vars.NINTENDO_SWITCH_PARENTAL_CONTROLS_DEVICE_CATALOG\",\n },\n },\n revoke: {\n kind: \"token-revoke\",\n revokePreviousOnReplace: true,\n inputs: {\n sessionToken:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_SESSION_TOKEN\",\n smartDeviceId:\n \"$secrets.NINTENDO_SWITCH_PARENTAL_CONTROLS_SMART_DEVICE_ID\",\n },\n },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const playstation = {\n playstation: {\n label: \"PlayStation\",\n category: \"data-automation-infrastructure\",\n tags: [\"gaming\", \"player\", \"playstation\", \"psn\"],\n helpText:\n \"Connect your PlayStation Network account to access player profile, game, friends, presence, and trophy data.\",\n authMethods: {\n api: {\n label: \"PlayStation sign-in\",\n helpText:\n \"First make sure you are signed in to PlayStation at [https://www.playstation.com/](https://www.playstation.com/).\\nClick the button below, then copy the `npsso` value.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: \"09515159-7237-4370-9b40-3806e67c0891\",\n },\n storage: {\n secrets: [\n \"PLAYSTATION_ACCESS_TOKEN\",\n \"PLAYSTATION_REFRESH_TOKEN\",\n \"PLAYSTATION_ID_TOKEN\",\n ],\n variables: [\"PLAYSTATION_ACCOUNT_ID\", \"PLAYSTATION_ONLINE_ID\"],\n },\n grant: {\n kind: \"external-code\",\n scopes: [\"psn:mobile.v2.core\", \"psn:clientapp\"],\n outputs: {\n accessToken: \"$secrets.PLAYSTATION_ACCESS_TOKEN\",\n refreshToken: \"$secrets.PLAYSTATION_REFRESH_TOKEN\",\n idToken: \"$secrets.PLAYSTATION_ID_TOKEN\",\n accountId: \"$vars.PLAYSTATION_ACCOUNT_ID\",\n onlineId: \"$vars.PLAYSTATION_ONLINE_ID\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.PLAYSTATION_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.PLAYSTATION_ACCESS_TOKEN\",\n refreshToken: \"$secrets.PLAYSTATION_REFRESH_TOKEN\",\n idToken: \"$secrets.PLAYSTATION_ID_TOKEN\",\n },\n refreshableSecrets: [\"PLAYSTATION_ACCESS_TOKEN\"],\n envBindings: {\n PLAYSTATION_TOKEN: \"$secrets.PLAYSTATION_ACCESS_TOKEN\",\n PLAYSTATION_ACCOUNT_ID: {\n valueRef: \"$vars.PLAYSTATION_ACCOUNT_ID\",\n optional: true,\n },\n PLAYSTATION_ONLINE_ID: {\n valueRef: \"$vars.PLAYSTATION_ONLINE_ID\",\n optional: true,\n },\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const spotify = {\n spotify: {\n label: \"Spotify\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Spotify account to manage playlists, control playback, and access music data\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.SpotifyConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Spotify to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"SPOTIFY_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"SPOTIFY_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"SPOTIFY_ACCESS_TOKEN\", \"SPOTIFY_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"ugc-image-upload\",\n \"user-read-playback-state\",\n \"user-modify-playback-state\",\n \"user-read-currently-playing\",\n \"app-remote-control\",\n \"streaming\",\n \"playlist-read-private\",\n \"playlist-read-collaborative\",\n \"playlist-modify-private\",\n \"playlist-modify-public\",\n \"user-follow-modify\",\n \"user-follow-read\",\n \"user-read-playback-position\",\n \"user-top-read\",\n \"user-read-recently-played\",\n \"user-library-modify\",\n \"user-library-read\",\n \"user-read-email\",\n \"user-read-private\",\n ],\n outputs: {\n accessToken: \"$secrets.SPOTIFY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SPOTIFY_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.SPOTIFY_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.SPOTIFY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SPOTIFY_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"SPOTIFY_ACCESS_TOKEN\"],\n envBindings: {\n SPOTIFY_TOKEN: \"$secrets.SPOTIFY_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const steam = {\n steam: {\n label: \"Steam\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Steam account to access player profile, library, playtime, social, wishlist, and game stats data.\",\n authMethods: {\n openid: {\n label: \"Steam sign-in\",\n helpText: \"Sign in with Steam to connect your player account.\",\n storage: {\n secrets: [],\n variables: [\"STEAM_ID\"],\n },\n grant: {\n kind: \"openid-auth\",\n callbackOrigin: \"api\",\n outputs: {\n steamId: \"$vars.STEAM_ID\",\n },\n },\n access: {\n kind: \"static\",\n platformSecrets: [\"STEAM_WEB_API_KEY\"],\n envBindings: {\n STEAM_ID: \"$vars.STEAM_ID\",\n STEAM_WEB_API_KEY: \"$secrets.STEAM_WEB_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const agentmail = {\n agentmail: {\n label: \"AgentMail\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your AgentMail account to create email inboxes for AI agents, send and receive emails, manage threads, drafts, and webhooks\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [AgentMail Console](https://console.agentmail.to)\\n2. Go to **API Keys**\\n3. Create a new API key\\n4. Copy the key\",\n storage: {\n secrets: [\"AGENTMAIL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n AGENTMAIL_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-agentmail-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n AGENTMAIL_TOKEN: \"$secrets.AGENTMAIL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const archer = {\n archer: {\n label: \"Archer\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Archer account to access gifting, rewards, and payout APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Archer account\\n2. Follow the [Archer API docs](https://docs.archermoney.com) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"ARCHER_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ARCHER_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-archer-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ARCHER_API_KEY: \"$secrets.ARCHER_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const ardent = {\n ardent: {\n label: \"Ardent\",\n category: \"data-automation-infrastructure\",\n helpText: \"Connect your Ardent account to access Postgres branching APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Ardent account\\n2. Follow the [Ardent API docs](https://docs.tryardent.com/) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"ARDENT_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ARDENT_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-ardent-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ARDENT_API_KEY: \"$secrets.ARDENT_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const argaLabs = {\n \"arga-labs\": {\n label: \"Arga Labs\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Arga Labs account to access API twin and sandbox APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Arga Labs account\\n2. Follow the [Arga Labs API docs](https://argalabs.com/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"ARGA_LABS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ARGA_LABS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-arga-labs-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ARGA_LABS_API_KEY: \"$secrets.ARGA_LABS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const armature = {\n armature: {\n label: \"Armature\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect your Armature account to access agent session analytics and evaluation APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Armature account\\n2. Follow the [Armature API docs](https://armature.tech/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"ARMATURE_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ARMATURE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-armature-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ARMATURE_API_KEY: \"$secrets.ARMATURE_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const bentolabsAi = {\n \"bentolabs-ai\": {\n label: \"BentoLabs AI\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect your BentoLabs AI account to access agent observability APIs and SDKs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your BentoLabs AI account\\n2. Follow the [BentoLabs AI API docs](https://docs.bentolabs.ai/llms.txt) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"BENTOLABS_AI_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BENTOLABS_AI_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-bentolabs-ai-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BENTOLABS_AI_API_KEY: \"$secrets.BENTOLABS_AI_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const bloom = {\n bloom: {\n label: \"Bloom\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Bloom account to access brand generation APIs and MCP workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Bloom account\\n2. Follow the [Bloom API docs](https://www.trybloom.ai/docs/api) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"BLOOM_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BLOOM_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-bloom-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BLOOM_API_KEY: \"$secrets.BLOOM_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const chert = {\n chert: {\n label: \"Chert\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Chert account to access iMessage infrastructure APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Chert account\\n2. Follow the [Chert API docs](https://docs.trychert.com/introduction) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"CHERT_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CHERT_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-chert-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CHERT_API_KEY: \"$secrets.CHERT_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const inth = {\n inth: {\n label: \"Inth\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Inth account to access privacy-compliance infrastructure APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Inth account\\n2. Follow the [Inth API docs](https://inth.com/docs/getting-started) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"INTH_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n INTH_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-inth-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INTH_API_KEY: \"$secrets.INTH_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const insforge = {\n insforge: {\n label: \"InsForge\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your InsForge project to access its backend and cloud infrastructure APIs for agent-native apps\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Open your project in the [InsForge dashboard](https://insforge.dev/)\\n2. Copy the project's **backend URL** (e.g. `your-project.us-west.insforge.app`) into **Backend URL**\\n3. Create or copy the project's **API key** (admin) and paste it into **API Key**\\n\\nThe anon key is not needed — the API key is the admin credential the agent uses as the backend.\",\n storage: {\n secrets: [\"INSFORGE_API_KEY\"],\n variables: [\"INSFORGE_DOMAIN\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n INSFORGE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-insforge-api-key\",\n },\n INSFORGE_DOMAIN: {\n label: \"Backend URL\",\n publicId: \"domain\",\n required: true,\n storage: \"variable\",\n normalize: \"host\",\n placeholder: \"your-project.us-west.insforge.app\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INSFORGE_API_KEY: \"$secrets.INSFORGE_API_KEY\",\n INSFORGE_DOMAIN: \"$vars.INSFORGE_DOMAIN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const interfaze = {\n interfaze: {\n label: \"Interfaze\",\n category: \"ai-general-models\",\n helpText:\n \"Connect your Interfaze account to access deterministic AI model APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Interfaze account\\n2. Follow the [Interfaze API docs](https://interfaze.ai/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"INTERFAZE_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n INTERFAZE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-interfaze-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INTERFAZE_API_KEY: \"$secrets.INTERFAZE_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const keyframeLabs = {\n \"keyframe-labs\": {\n label: \"Keyframe Labs\",\n category: \"ai-image-video\",\n helpText:\n \"Connect your Keyframe Labs account to access realtime AI video persona APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Keyframe Labs account\\n2. Follow the [Keyframe Labs API docs](https://docs.keyframelabs.com) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"KEYFRAME_LABS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n KEYFRAME_LABS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-keyframe-labs-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n KEYFRAME_LABS_API_KEY: \"$secrets.KEYFRAME_LABS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const kugelAudio = {\n kugelaudio: {\n label: \"KugelAudio\",\n category: \"ai-voice-audio\",\n helpText:\n \"Connect your KugelAudio account to access text-to-speech and voice AI APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your KugelAudio account\\n2. Follow the [KugelAudio API docs](https://docs.kugelaudio.com/) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"KUGELAUDIO_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n KUGELAUDIO_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-kugelaudio-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n KUGELAUDIO_API_KEY: \"$secrets.KUGELAUDIO_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const limrun = {\n limrun: {\n label: \"Limrun\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Limrun account to access remote mobile build and simulator APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Limrun account\\n2. Follow the [Limrun API docs](https://docs.limrun.com/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"LIMRUN_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LIMRUN_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-limrun-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n LIMRUN_API_KEY: \"$secrets.LIMRUN_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const minicor = {\n minicor: {\n label: \"Minicor\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Minicor account to access computer-use and RPA automation APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Minicor account\\n2. Follow the [Minicor API docs](https://www.minicor.com/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"MINICOR_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MINICOR_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-minicor-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MINICOR_API_KEY: \"$secrets.MINICOR_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const netter = {\n netter: {\n label: \"Netter\",\n category: \"data-automation-infrastructure\",\n helpText: \"Connect your Netter account to access AI data platform APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Netter account\\n2. Follow the [Netter API docs](https://netter.ai/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"NETTER_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n NETTER_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-netter-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n NETTER_API_KEY: \"$secrets.NETTER_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const oddpool = {\n oddpool: {\n label: \"Oddpool\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Oddpool account to access prediction-market data APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Oddpool account\\n2. Follow the [Oddpool API docs](https://docs.oddpool.com/llms.txt) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"ODDPOOL_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ODDPOOL_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-oddpool-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ODDPOOL_API_KEY: \"$secrets.ODDPOOL_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const primitive = {\n primitive: {\n label: \"primitive\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your primitive account to access email infrastructure APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your primitive account\\n2. Follow the [primitive OpenAPI spec](https://www.primitive.dev/openapi.json) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"PRIMITIVE_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PRIMITIVE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-primitive-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PRIMITIVE_API_KEY: \"$secrets.PRIMITIVE_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const qomplement = {\n qomplement: {\n label: \"qomplement\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your qomplement account to access AI ERP and supply-chain APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your qomplement account\\n2. Follow the [qomplement API docs](https://docs.qomplement.com/) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"QOMPLEMENT_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n QOMPLEMENT_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-qomplement-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n QOMPLEMENT_API_KEY: \"$secrets.QOMPLEMENT_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const rentahuman = {\n rentahuman: {\n label: \"RentAHuman\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect your RentAHuman account to access human-task APIs and MCP workflows for agents\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your RentAHuman account\\n2. Follow the [RentAHuman API docs](https://rentahuman.ai/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"RENTAHUMAN_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RENTAHUMAN_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-rentahuman-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RENTAHUMAN_API_KEY: \"$secrets.RENTAHUMAN_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const replicas = {\n replicas: {\n label: \"Replicas\",\n category: \"engineering-team-execution\",\n helpText: \"Connect your Replicas account to access cloud coding-agent APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Replicas account\\n2. Follow the [Replicas API docs](https://docs.tryreplicas.com) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"REPLICAS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n REPLICAS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-replicas-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n REPLICAS_API_KEY: \"$secrets.REPLICAS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const riverMarkets = {\n \"river-markets\": {\n label: \"River Markets\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your River Markets account to access prediction-market execution and data APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your River Markets account\\n2. Follow the [River Markets API docs](https://docs.rivermarkets.com/introduction) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"RIVER_MARKETS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RIVER_MARKETS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-river-markets-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RIVER_MARKETS_API_KEY: \"$secrets.RIVER_MARKETS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const runtime = {\n runtime: {\n label: \"Runtime\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect your Runtime account to access agent runtime and sandbox APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Runtime account\\n2. Follow the [Runtime API docs](https://docs.runtm.com/introduction) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"RUNTIME_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RUNTIME_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-runtime-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RUNTIME_API_KEY: \"$secrets.RUNTIME_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const salesgraph = {\n salesgraph: {\n label: \"Salesgraph\",\n category: \"sales-crm-business-operations\",\n helpText: \"Connect your Salesgraph account to access revenue agent APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Salesgraph account\\n2. Follow the [Salesgraph API docs](https://docs.salesgraph.com) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"SALESGRAPH_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SALESGRAPH_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-salesgraph-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SALESGRAPH_API_KEY: \"$secrets.SALESGRAPH_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const silmaril = {\n silmaril: {\n label: \"Silmaril\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Silmaril account to access AI application firewall APIs and SDKs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Silmaril account\\n2. Follow the [Silmaril API docs](https://www.silmaril.dev/docs) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"SILMARIL_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SILMARIL_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-silmaril-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SILMARIL_API_KEY: \"$secrets.SILMARIL_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const smolMachines = {\n \"smol-machines\": {\n label: \"smol machines\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your smol machines account to access microVM and sandbox infrastructure APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your smol machines account\\n2. Follow the [smol machines API docs](https://smolmachines.com/docs/cloud-api) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"SMOL_MACHINES_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SMOL_MACHINES_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-smol-machines-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SMOL_MACHINES_API_KEY: \"$secrets.SMOL_MACHINES_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const stablebrowse = {\n stablebrowse: {\n label: \"StableBrowse\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your StableBrowse account to access browser automation APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your StableBrowse account\\n2. Follow the [StableBrowse API docs](https://docs.stablebrowse.com/introduction) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"STABLEBROWSE_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n STABLEBROWSE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-stablebrowse-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n STABLEBROWSE_API_KEY: \"$secrets.STABLEBROWSE_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const testerarmy = {\n testerarmy: {\n label: \"TesterArmy\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your TesterArmy account to access AI web and mobile app testing APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your TesterArmy account\\n2. Follow the [TesterArmy API docs](https://docs.tester.army/api-reference/) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"TESTERARMY_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TESTERARMY_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-testerarmy-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TESTERARMY_API_KEY: \"$secrets.TESTERARMY_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const totalis = {\n totalis: {\n label: \"Totalis\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Totalis account to access prediction-market derivatives and trading APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Totalis account\\n2. Follow the [Totalis API docs](https://docs.totalis.trade/api-reference/introduction) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"TOTALIS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TOTALIS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-totalis-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TOTALIS_API_KEY: \"$secrets.TOTALIS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const trellis = {\n trellis: {\n label: \"Trellis\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Trellis account to access short-rental operations APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Trellis account\\n2. Follow the [Trellis API docs](https://docs.trellistech.com) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"TRELLIS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TRELLIS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-trellis-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TRELLIS_API_KEY: \"$secrets.TRELLIS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const voquill = {\n voquill: {\n label: \"Voquill\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Voquill account to access medical lab workflow APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Voquill account\\n2. Follow the [Voquill API docs](https://docs.voquill.com/) to create or copy an API key\\n3. Paste the key here.\",\n storage: {\n secrets: [\"VOQUILL_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n VOQUILL_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-voquill-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n VOQUILL_API_KEY: \"$secrets.VOQUILL_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const agora = {\n agora: {\n label: \"Agora\",\n category: \"communication-collaboration\",\n tags: [\"rtc\", \"rtm\", \"video\", \"voice\", \"live-streaming\", \"recording\"],\n helpText:\n \"Connect your Agora project to manage real-time voice and video channels, cloud recording, messaging, and REST API operations\",\n authMethods: {\n \"api-token\": {\n label: \"REST credentials\",\n helpText:\n \"1. In [Agora Console](https://console.agora.io), open **Developer Toolkit > RESTful API**\\n2. Click **Add a secret** to create a Customer ID and Customer Secret, then download and store the secret securely\\n3. Copy your project **App ID** from Agora Console\\n4. Optionally copy your **App Certificate** if you need to generate RTC or RTM tokens\",\n storage: {\n secrets: [\n \"AGORA_CUSTOMER_ID\",\n \"AGORA_CUSTOMER_SECRET\",\n \"AGORA_APP_CERTIFICATE\",\n ],\n variables: [\"AGORA_APP_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n AGORA_CUSTOMER_ID: {\n label: \"Customer ID\",\n publicId: \"customerId\",\n required: true,\n placeholder: \"your-agora-customer-id\",\n },\n AGORA_CUSTOMER_SECRET: {\n label: \"Customer Secret\",\n publicId: \"customerSecret\",\n required: true,\n placeholder: \"your-agora-customer-secret\",\n },\n AGORA_APP_ID: {\n label: \"App ID\",\n publicId: \"appId\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-agora-app-id\",\n },\n AGORA_APP_CERTIFICATE: {\n label: \"App Certificate\",\n publicId: \"appCertificate\",\n required: false,\n placeholder: \"optional-agora-app-certificate\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n AGORA_CUSTOMER_ID: \"$secrets.AGORA_CUSTOMER_ID\",\n AGORA_CUSTOMER_SECRET: \"$secrets.AGORA_CUSTOMER_SECRET\",\n AGORA_APP_ID: \"$vars.AGORA_APP_ID\",\n AGORA_APP_CERTIFICATE: {\n valueRef: \"$secrets.AGORA_APP_CERTIFICATE\",\n optional: true,\n },\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const ahrefs = {\n ahrefs: {\n label: \"Ahrefs\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Ahrefs account to access SEO data, backlink analysis, and keyword research\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.AhrefsConnector,\n label: \"OAuth\",\n helpText: \"Sign in with Ahrefs to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"AHREFS_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"AHREFS_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"AHREFS_ACCESS_TOKEN\", \"AHREFS_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"api\"],\n outputs: {\n accessToken: \"$secrets.AHREFS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.AHREFS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.AHREFS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.AHREFS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.AHREFS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"AHREFS_ACCESS_TOKEN\"],\n envBindings: {\n AHREFS_TOKEN: \"$secrets.AHREFS_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Ahrefs](https://ahrefs.com) as a workspace owner or admin\\n2. Go to **Account settings > API keys**\\n3. Create a new API key\\n4. Copy the API key and use it in the `Authorization: Bearer <YOUR_API_KEY>` header\",\n storage: {\n secrets: [\"AHREFS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n AHREFS_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-ahrefs-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n AHREFS_TOKEN: \"$secrets.AHREFS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const adzuna = {\n adzuna: {\n label: \"Adzuna\",\n category: \"data-automation-infrastructure\",\n tags: [\"jobs\", \"employment\", \"salary\", \"vacancies\"],\n helpText:\n \"Connect Adzuna to search job ads and retrieve employment, salary, vacancy, category, and API version data\",\n authMethods: {\n \"api-token\": {\n label: \"App ID and App Key\",\n helpText:\n \"1. Register at the [Adzuna Developer Portal](https://developer.adzuna.com)\\n2. Copy your **app_id** and **app_key**\\n3. Pass them as the `app_id` and `app_key` query parameters on Adzuna API requests\",\n storage: {\n secrets: [\"ADZUNA_APP_KEY\"],\n variables: [\"ADZUNA_APP_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ADZUNA_APP_ID: {\n label: \"App ID\",\n publicId: \"appId\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-adzuna-app-id\",\n },\n ADZUNA_APP_KEY: {\n label: \"App Key\",\n publicId: \"appKey\",\n required: true,\n placeholder: \"your-adzuna-app-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ADZUNA_APP_ID: \"$vars.ADZUNA_APP_ID\",\n ADZUNA_APP_KEY: \"$secrets.ADZUNA_APP_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const altium365 = {\n \"altium-365\": {\n label: \"Altium 365\",\n category: \"engineering-team-execution\",\n tags: [\"pcb\", \"eda\", \"requirements\", \"altium\", \"systems-portal\"],\n helpText:\n \"Connect your Altium 365 Requirements & Systems Portal workspace to manage projects, requirements, components, traces, and verification tests\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to your Altium 365 workspace (e.g. `https://<workspace>.365.altium.com`)\\n2. Open **Settings → User Tokens** and click **Generate**\\n3. Copy the generated token — it is shown only once and expires three months from creation\\n4. Paste the token and your full workspace URL (including `https://`) below\",\n storage: {\n secrets: [\"ALTIUM365_TOKEN\"],\n variables: [\"ALTIUM365_WORKSPACE_URL\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ALTIUM365_TOKEN: {\n label: \"User Token\",\n publicId: \"token\",\n required: true,\n placeholder: \"your-altium-365-user-token\",\n },\n ALTIUM365_WORKSPACE_URL: {\n label: \"Workspace URL\",\n publicId: \"workspaceUrl\",\n required: true,\n storage: \"variable\",\n placeholder: \"https://your-workspace.365.altium.com\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ALTIUM365_TOKEN: \"$secrets.ALTIUM365_TOKEN\",\n ALTIUM365_WORKSPACE_URL: \"$vars.ALTIUM365_WORKSPACE_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const alchemy = {\n alchemy: {\n label: \"Alchemy\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Alchemy to use its blockchain RPC, NFT, data, and wallet APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key or Access Key\",\n helpText:\n \"1. Log in to the [Alchemy Dashboard](https://dashboard.alchemy.com)\\n2. Open **Team Overview** and go to the **Apps** tab\\n3. Create or open an app and copy its **API Key**\\n4. Use this key in the `Authorization: Bearer` header for supported Alchemy API requests\",\n storage: {\n secrets: [\"ALCHEMY_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ALCHEMY_API_KEY: {\n label: \"API Key or Access Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ALCHEMY_API_KEY: \"$secrets.ALCHEMY_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const amplitude = {\n amplitude: {\n label: \"Amplitude\",\n category: \"data-automation-infrastructure\",\n tags: [\"analytics\", \"product-analytics\", \"events\", \"funnels\"],\n helpText:\n \"Connect your Amplitude project to query events, funnels, retention, cohorts, and ingest new events\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In Amplitude, open **Organization Settings** (top right nav) → **Projects** and click the project you want to connect\\n2. Copy the **API Key** from the project table (Manager role required)\\n3. Click **Generate Secret Key**, name it, and copy it immediately (the secret is only shown once)\\n4. Paste both values into the fields below\",\n storage: {\n secrets: [\"AMPLITUDE_API_KEY\", \"AMPLITUDE_SECRET_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n AMPLITUDE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"32-char hex key\",\n },\n AMPLITUDE_SECRET_KEY: {\n label: \"Secret Key\",\n publicId: \"secretKey\",\n required: true,\n placeholder: \"32-char hex secret\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n AMPLITUDE_API_KEY: \"$secrets.AMPLITUDE_API_KEY\",\n AMPLITUDE_SECRET_KEY: \"$secrets.AMPLITUDE_SECRET_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const amadeus = {\n amadeus: {\n label: \"Amadeus\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Amadeus for Developers to search flights, hotels, destinations, and travel data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key and Secret\",\n helpText:\n \"1. Sign in to the [Amadeus for Developers portal](https://developers.amadeus.com/)\\n2. Create or open an app in **My Self-Service Workspace**\\n3. Copy the app's **API Key** and **API Secret**\\n4. Use them with the client credentials grant to request an access token\",\n storage: {\n secrets: [\"AMADEUS_API_KEY\", \"AMADEUS_API_SECRET\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n AMADEUS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n AMADEUS_API_SECRET: {\n label: \"API Secret\",\n publicId: \"apiSecret\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n AMADEUS_API_KEY: \"$secrets.AMADEUS_API_KEY\",\n AMADEUS_API_SECRET: \"$secrets.AMADEUS_API_SECRET\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const anthropicManagedAgents = {\n \"anthropic-managed-agents\": {\n label: \"Anthropic Managed Agents\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect to Anthropic Managed Agents API to programmatically create and run AI agents in cloud environments\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up at [Anthropic Console](https://console.anthropic.com)\\n2. Go to **API Keys** and create a new key\\n3. Ensure your account has Managed Agents (beta) access\\n4. Copy the API key (starts with `sk-ant-`)\",\n storage: {\n secrets: [\"ANTHROPIC_MANAGED_AGENTS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ANTHROPIC_MANAGED_AGENTS_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-ant-api03-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ANTHROPIC_MANAGED_AGENTS_TOKEN:\n \"$secrets.ANTHROPIC_MANAGED_AGENTS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const apify = {\n apify: {\n label: \"Apify\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Apify account to run web scraping actors, manage datasets, and automate browser tasks\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Apify Console](https://console.apify.com)\\n2. Go to **Settings > Integrations**\\n3. Copy your **Personal API token**\",\n storage: {\n secrets: [\"APIFY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n APIFY_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"apify_api_xxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n APIFY_TOKEN: \"$secrets.APIFY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const apollo = {\n apollo: {\n label: \"Apollo\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Apollo account to search prospects, enrich contacts, manage accounts, deals, sequences, and more\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Apollo](https://app.apollo.io)\\n2. Go to **Settings > Integrations**\\n3. Click **Connect** beside Apollo API\\n4. Select **API Keys > Create new key**\\n5. Enter a name, select endpoint access (or toggle **Set as master key**)\\n6. Copy the API key\",\n storage: {\n secrets: [\"APOLLO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n APOLLO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-apollo-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n APOLLO_TOKEN: \"$secrets.APOLLO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const asana = {\n asana: {\n label: \"Asana\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Asana account to manage tasks, projects, portfolios, goals, and team workflows\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Asana to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"ASANA_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"ASANA_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"ASANA_ACCESS_TOKEN\", \"ASANA_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [],\n outputs: {\n accessToken: \"$secrets.ASANA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.ASANA_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.ASANA_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.ASANA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.ASANA_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"ASANA_ACCESS_TOKEN\"],\n envBindings: {\n ASANA_TOKEN: \"$secrets.ASANA_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const ashby = {\n ashby: {\n label: \"Ashby\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Ashby account to read candidates, applications, jobs, openings, job postings, and recruiting projects via the Ashby API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In Ashby, open **Admin** → **Integrations** → **API Keys**\\n2. Create or select an API key with the candidate and job access your workflow needs\\n3. Copy the raw API key and paste it here.\",\n storage: {\n secrets: [\"ASHBY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ASHBY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-ashby-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ASHBY_TOKEN: \"$secrets.ASHBY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const atlassian = {\n atlassian: {\n label: \"Atlassian (Jira/Confluence)\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Atlassian account to manage Jira issues, Confluence pages, and other Atlassian products\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Atlassian](https://id.atlassian.com/manage-profile/security/api-tokens)\\n2. Click **Create API token**\\n3. Give it a label and click **Create**\\n4. Copy the generated token\",\n storage: {\n secrets: [\"ATLASSIAN_TOKEN\"],\n variables: [\"ATLASSIAN_EMAIL\", \"ATLASSIAN_DOMAIN\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ATLASSIAN_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-api-token\",\n },\n ATLASSIAN_EMAIL: {\n label: \"Email\",\n publicId: \"email\",\n required: true,\n placeholder: \"you@example.com\",\n storage: \"variable\",\n },\n ATLASSIAN_DOMAIN: {\n label: \"Domain\",\n publicId: \"domain\",\n required: true,\n placeholder: \"mycompany\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ATLASSIAN_TOKEN: \"$secrets.ATLASSIAN_TOKEN\",\n ATLASSIAN_EMAIL: \"$vars.ATLASSIAN_EMAIL\",\n ATLASSIAN_DOMAIN: \"$vars.ATLASSIAN_DOMAIN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const attio = {\n attio: {\n label: \"Attio\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Attio workspace to manage CRM records — companies, people, deals, custom objects — plus notes, tasks, lists, and comments\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Open [Attio](https://app.attio.com) and sign in\\n2. Open **Workspace settings** from the dropdown beside your workspace name\\n3. Click the **Developers** tab\\n4. Click **+ New access token**, give it a name, and select the scopes you need\\n5. Click **Create**, then copy the token (shown once)\",\n storage: {\n secrets: [\"ATTIO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ATTIO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-attio-access-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ATTIO_TOKEN: \"$secrets.ATTIO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const atlascloud = {\n atlascloud: {\n label: \"Atlas Cloud\",\n category: \"ai-general-models\",\n generation: [\"audio\", \"image\", \"text\", \"video\"],\n tags: [\"llm\", \"multimodal\", \"openai-compatible\"],\n helpText:\n \"Connect Atlas Cloud to access multimodal AI models for chat, image generation, video generation, and audio through one API key\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [Atlas Cloud](https://console.atlascloud.ai)\\n2. Go to **API Keys**\\n3. Click **Create API Key**\\n4. Copy the key and use it with `https://api.atlascloud.ai/v1` for OpenAI-compatible chat or `https://api.atlascloud.ai/api/v1` for image, video, and media APIs\",\n storage: {\n secrets: [\"ATLASCLOUD_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ATLASCLOUD_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-atlascloud-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ATLASCLOUD_API_KEY: \"$secrets.ATLASCLOUD_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const aviationstack = {\n aviationstack: {\n label: \"AviationStack\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect AviationStack to access real-time flight status, schedules, airline, airport, and route data\",\n authMethods: {\n \"api-token\": {\n label: \"Access Key\",\n helpText:\n \"1. Sign in to the [AviationStack dashboard](https://aviationstack.com/dashboard)\\n2. Copy the **API Access Key** shown on the main dashboard\\n3. Pass it as the `access_key` query parameter on every request\",\n storage: {\n secrets: [\"AVIATIONSTACK_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n AVIATIONSTACK_TOKEN: {\n label: \"Access Key\",\n publicId: \"accessKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n AVIATIONSTACK_TOKEN: \"$secrets.AVIATIONSTACK_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const aws = {\n aws: {\n label: \"AWS\",\n category: \"data-automation-infrastructure\",\n tags: [\"cloud\", \"infrastructure\", \"storage\", \"compute\"],\n helpText:\n \"Connect a temporary AWS session to call AWS APIs with the selected AWS identity.\",\n authMethods: {\n cli: {\n featureFlag: FeatureSwitchKey.AwsConnector,\n showExperimentalLabel: false,\n label: \"Sign in with AWS\",\n helpText:\n \"Sign in with AWS and paste the authorization code that AWS displays.\\n**This temporary AWS connector expires after up to 12 hours.**\",\n client: {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: \"arn:aws:signin:::devtools/cross-device\",\n },\n storage: {\n secrets: [\n \"AWS_LOGIN_REFRESH_TOKEN\",\n \"AWS_LOGIN_DPOP_KEY\",\n \"AWS_ACCESS_KEY_ID\",\n \"AWS_SECRET_ACCESS_KEY\",\n \"AWS_SESSION_TOKEN\",\n ],\n variables: [\"AWS_SIGNIN_REGION\", \"AWS_REGION\"],\n },\n grant: {\n kind: \"external-code\",\n scopes: [\"openid\"],\n outputs: {\n refreshToken: \"$secrets.AWS_LOGIN_REFRESH_TOKEN\",\n dpopKey: \"$secrets.AWS_LOGIN_DPOP_KEY\",\n accessKeyId: \"$secrets.AWS_ACCESS_KEY_ID\",\n secretAccessKey: \"$secrets.AWS_SECRET_ACCESS_KEY\",\n sessionToken: \"$secrets.AWS_SESSION_TOKEN\",\n signinRegion: \"$vars.AWS_SIGNIN_REGION\",\n runtimeRegion: \"$vars.AWS_REGION\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.AWS_LOGIN_REFRESH_TOKEN\",\n dpopKey: \"$secrets.AWS_LOGIN_DPOP_KEY\",\n signinRegion: \"$vars.AWS_SIGNIN_REGION\",\n },\n outputs: {\n refreshToken: \"$secrets.AWS_LOGIN_REFRESH_TOKEN\",\n accessKeyId: \"$secrets.AWS_ACCESS_KEY_ID\",\n secretAccessKey: \"$secrets.AWS_SECRET_ACCESS_KEY\",\n sessionToken: \"$secrets.AWS_SESSION_TOKEN\",\n },\n refreshableSecrets: [\n \"AWS_ACCESS_KEY_ID\",\n \"AWS_SECRET_ACCESS_KEY\",\n \"AWS_SESSION_TOKEN\",\n ],\n envBindings: {\n AWS_ACCESS_KEY_ID: \"$secrets.AWS_ACCESS_KEY_ID\",\n AWS_SECRET_ACCESS_KEY: \"$secrets.AWS_SECRET_ACCESS_KEY\",\n AWS_SESSION_TOKEN: \"$secrets.AWS_SESSION_TOKEN\",\n AWS_REGION: \"$vars.AWS_REGION\",\n AWS_DEFAULT_REGION: \"$vars.AWS_REGION\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const axiom = {\n axiom: {\n label: \"Axiom\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Axiom account to query logs, manage datasets, and access observability data\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Axiom](https://app.axiom.co)\\n2. Go to **Settings > API Tokens**\\n3. Create a new API token with the required permissions\\n4. Copy the token\",\n storage: {\n secrets: [\"AXIOM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n AXIOM_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"xaat-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n AXIOM_TOKEN: \"$secrets.AXIOM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const base44 = {\n base44: {\n label: \"Base44\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect your Base44 account to let agents access and manage your Base44 apps\",\n authMethods: {\n oauth: {\n label: \"OAuth\",\n helpText: \"Sign in with Base44 to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: \"base44_cli\",\n },\n storage: {\n secrets: [\"BASE44_ACCESS_TOKEN\", \"BASE44_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"device-auth\",\n scopes: [\"apps:read\", \"apps:write\", \"offline\"],\n outputs: {\n accessToken: \"$secrets.BASE44_ACCESS_TOKEN\",\n refreshToken: \"$secrets.BASE44_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.BASE44_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.BASE44_ACCESS_TOKEN\",\n refreshToken: \"$secrets.BASE44_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"BASE44_ACCESS_TOKEN\"],\n envBindings: {\n BASE44_TOKEN: \"$secrets.BASE44_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const bentoml = {\n bentoml: {\n label: \"BentoML\",\n category: \"data-automation-infrastructure\",\n generation: [\"text\"],\n tags: [\"bentocloud\", \"model-serving\", \"mlops\", \"inference\"],\n helpText:\n \"Connect your BentoCloud account to manage BentoML deployments and call protected deployment endpoints\",\n authMethods: {\n \"api-token\": {\n featureFlag: FeatureSwitchKey.BentomlConnector,\n label: \"BentoCloud API Token\",\n helpText:\n \"1. Log in to [BentoCloud](https://cloud.bentoml.com)\\n2. Open your profile menu, then go to **API Tokens**\\n3. Create a Personal or Organization API token with the access your workflow needs\\n4. Copy the token and enter your organization endpoint, for example `https://your-org.cloud.bentoml.com`\",\n storage: {\n secrets: [\"BENTO_CLOUD_API_KEY\"],\n variables: [\"BENTO_CLOUD_API_ENDPOINT\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BENTO_CLOUD_API_KEY: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"cur7h...\",\n },\n BENTO_CLOUD_API_ENDPOINT: {\n label: \"BentoCloud Endpoint\",\n publicId: \"endpoint\",\n required: true,\n placeholder: \"https://your-org.cloud.bentoml.com\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BENTO_CLOUD_API_KEY: \"$secrets.BENTO_CLOUD_API_KEY\",\n BENTO_CLOUD_API_ENDPOINT: \"$vars.BENTO_CLOUD_API_ENDPOINT\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const bfl = {\n bfl: {\n label: \"Black Forest Labs\",\n category: \"ai-image-video\",\n generation: [\"image\"],\n helpText:\n \"Connect your Black Forest Labs account to generate images with FLUX models\",\n tags: [\"flux\"],\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to the [Black Forest Labs dashboard](https://dashboard.bfl.ai)\\n2. Navigate to **API → Keys** in your project sidebar\\n3. Click **Add Key** and give the key a descriptive name\\n4. Copy the API key immediately — you will not be able to see the full key again\",\n storage: {\n secrets: [\"BFL_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BFL_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"bfl_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BFL_API_KEY: \"$secrets.BFL_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const bitrefill = {\n bitrefill: {\n label: \"Bitrefill\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Bitrefill account to browse products, create invoices, track orders, and manage purchases programmatically\",\n authMethods: {\n \"api-token\": {\n label: \"Personal API Token\",\n helpText:\n \"1. Sign in to [Bitrefill](https://www.bitrefill.com)\\n\" +\n \"2. Go to **Account > Developers**\\n\" +\n \"3. Generate an API key\\n\" +\n \"4. Copy the Personal API token\\n\\n\" +\n \"This connector currently supports Bitrefill Personal API Bearer tokens. Business and Affiliate Basic auth credentials are not supported yet.\",\n storage: {\n secrets: [\"BITREFILL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BITREFILL_TOKEN: {\n label: \"Personal API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BITREFILL_TOKEN: \"$secrets.BITREFILL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const bitrix = {\n bitrix: {\n label: \"Bitrix24\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Bitrix24 account to manage CRM, tasks, and workflows\",\n authMethods: {\n \"api-token\": {\n label: \"Webhook URL\",\n helpText:\n \"1. Log in to your [Bitrix24](https://www.bitrix24.com) account\\n2. Go to **Applications > Developer resources**\\n3. Select the **Ready-made scenarios** tab\\n4. Choose **Other > Incoming webhook**\\n5. Configure the webhook name and set access permissions\\n6. Click **Execute** to test the webhook\\n7. Copy the generated webhook URL, which contains your secret code in the format `https://<domain>/rest/1/<secret-code>/<method>.json`\",\n storage: {\n secrets: [\"BITRIX_WEBHOOK_URL\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BITRIX_WEBHOOK_URL: {\n label: \"Webhook URL\",\n publicId: \"url\",\n required: true,\n placeholder: \"https://your-domain.bitrix24.com/rest/1/xxx/\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BITRIX_WEBHOOK_URL: \"$secrets.BITRIX_WEBHOOK_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const bland = {\n bland: {\n label: \"Bland\",\n category: \"ai-voice-audio\",\n generation: [\"audio\"],\n helpText:\n \"Connect your Bland account to make AI phone calls and manage voice agents\",\n tags: [\"phone\", \"calls\", \"voice-agents\"],\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to the [Bland dashboard](https://app.bland.ai)\\n2. Copy your API key from your account or API settings\\n3. Paste the key here. You can also use the key with the Bland CLI as `BLAND_API_KEY`\",\n storage: {\n secrets: [\"BLAND_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BLAND_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BLAND_API_KEY: \"$secrets.BLAND_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const box = {\n box: {\n label: \"Box\",\n category: \"docs-files-knowledge\",\n helpText: \"Connect your Box account to access and manage files and folders\",\n tags: [\"files\", \"storage\", \"documents\"],\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.BoxConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Box to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"BOX_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"BOX_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"BOX_ACCESS_TOKEN\", \"BOX_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"root_readwrite\"],\n outputs: {\n accessToken: \"$secrets.BOX_ACCESS_TOKEN\",\n refreshToken: \"$secrets.BOX_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.BOX_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.BOX_ACCESS_TOKEN\",\n refreshToken: \"$secrets.BOX_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"BOX_ACCESS_TOKEN\"],\n envBindings: {\n BOX_TOKEN: \"$secrets.BOX_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const braveSearch = {\n \"brave-search\": {\n label: \"Brave Search\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Brave Search account to perform privacy-focused web, image, video, and news searches\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to the [Brave Search API dashboard](https://api-dashboard.search.brave.com/register) and sign up for an account\\n2. Provide a credit card for identity verification (free plans will not be charged)\\n3. After registration, your API key will be available in the dashboard\\n4. Copy the API key and use it in the `X-Subscription-Token` request header\",\n storage: {\n secrets: [\"BRAVE_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BRAVE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"BSAxxxxxxxxxxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BRAVE_API_KEY: \"$secrets.BRAVE_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const brex = {\n brex: {\n label: \"Brex\",\n category: \"sales-crm-business-operations\",\n tags: [\"corporate-card\", \"expenses\", \"payments\", \"transactions\", \"finance\"],\n helpText:\n \"Connect your Brex account to access corporate card, expense, payment, transaction, and team data\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. In Brex, create or obtain an API user token with the permissions required for your workflow\\n2. Confirm the token is intended for the production API at `https://api.brex.com`\\n3. Copy the token\",\n storage: {\n secrets: [\"BREX_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BREX_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-brex-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BREX_TOKEN: \"$secrets.BREX_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const brevo = {\n brevo: {\n label: \"Brevo\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Brevo account to manage email campaigns, transactional emails, and CRM contacts\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Brevo](https://app.brevo.com)\\n2. Go to **Settings** → **SMTP & API** → **API Keys**\\n3. Copy your API key\",\n storage: {\n secrets: [\"BREVO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BREVO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"xkeysib-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BREVO_TOKEN: \"$secrets.BREVO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const brightData = {\n \"bright-data\": {\n label: \"Bright Data\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Bright Data account to scrape websites, manage proxies, and access web data\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Bright Data](https://brightdata.com/cp)\\n2. Go to **Account settings**\\n3. Click **Add API key** and configure permissions\\n4. Copy the token (shown only once)\",\n storage: {\n secrets: [\"BRIGHTDATA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BRIGHTDATA_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BRIGHTDATA_TOKEN: \"$secrets.BRIGHTDATA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const browserbase = {\n browserbase: {\n label: \"Browserbase\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Browserbase account to create browser sessions, persist contexts, and automate cloud browsers\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Sign up for a [Browserbase](https://www.browserbase.com/sign-up) account\\n2. Log in and navigate to the **Overview** dashboard\\n3. Your **Project ID** and **API key** are displayed on the right side of the Overview page\\n4. Copy the API key\",\n storage: {\n secrets: [\"BROWSERBASE_TOKEN\"],\n variables: [\"BROWSERBASE_PROJECT_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BROWSERBASE_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n BROWSERBASE_PROJECT_ID: {\n label: \"Project ID\",\n publicId: \"projectId\",\n required: true,\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BROWSERBASE_TOKEN: \"$secrets.BROWSERBASE_TOKEN\",\n BROWSERBASE_PROJECT_ID: \"$vars.BROWSERBASE_PROJECT_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const browserless = {\n browserless: {\n label: \"Browserless\",\n category: \"data-automation-infrastructure\",\n generation: [\"document\", \"image\"],\n helpText:\n \"Connect your Browserless account to take screenshots, generate PDFs, scrape pages, and automate headless browsers\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Sign up or log in at [Browserless](https://browserless.io/account/)\\n2. Navigate to the account dashboard\\n3. Copy your API token from the dashboard\",\n storage: {\n secrets: [\"BROWSERLESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BROWSERLESS_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BROWSERLESS_TOKEN: \"$secrets.BROWSERLESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const browserstack = {\n browserstack: {\n label: \"BrowserStack\",\n category: \"engineering-team-execution\",\n tags: [\"testing\", \"selenium\", \"appium\", \"cross-browser\", \"qa\", \"automate\"],\n helpText:\n \"Connect your BrowserStack account to run Selenium / Appium tests, query builds and sessions, capture cross-browser screenshots, and upload mobile apps\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [BrowserStack](https://www.browserstack.com) and open **Account Settings**\\n2. Copy your **Username** and **Access Key** from the **Authentication & Security** section\\n3. Paste both values below — these credentials work across Live, Automate, App Live, and App Automate\",\n storage: {\n secrets: [\"BROWSERSTACK_USERNAME\", \"BROWSERSTACK_ACCESS_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BROWSERSTACK_USERNAME: {\n label: \"Username\",\n publicId: \"username\",\n required: true,\n placeholder: \"your-bstack-username\",\n },\n BROWSERSTACK_ACCESS_KEY: {\n label: \"Access Key\",\n publicId: \"accessKey\",\n required: true,\n placeholder: \"your-bstack-access-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BROWSERSTACK_USERNAME: \"$secrets.BROWSERSTACK_USERNAME\",\n BROWSERSTACK_ACCESS_KEY: \"$secrets.BROWSERSTACK_ACCESS_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const browserUse = {\n \"browser-use\": {\n label: \"Browser Use\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Browser Use to run AI-powered browser automation tasks — submit natural-language prompts and let agents complete web tasks in hosted browsers\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in at [cloud.browser-use.com](https://cloud.browser-use.com)\\n2. Go to **Settings → API Keys**\\n3. Click **Create new key**\\n4. Copy the generated API key\",\n storage: {\n secrets: [\"BROWSER_USE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BROWSER_USE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"bu_CoffeeSafeLocalCoffeeSafeLocalCoffee\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BROWSER_USE_TOKEN: \"$secrets.BROWSER_USE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const bubblemaps = {\n bubblemaps: {\n label: \"Bubblemaps\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Bubblemaps account to access token maps, holders, wallet labels, clusters, and scores through the Data API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Bubblemaps Pro platform](https://pro.bubblemaps.io)\\n2. Get your Data API key\\n3. Use this key in the `X-ApiKey` request header\",\n storage: {\n secrets: [\"BUBBLEMAPS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BUBBLEMAPS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"Coffee5afe10ca1Coffee5afe10ca1Co\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BUBBLEMAPS_API_KEY: \"$secrets.BUBBLEMAPS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const buffer = {\n buffer: {\n label: \"Buffer\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Buffer account to schedule, draft, and publish social media posts across your connected channels (Twitter/X, LinkedIn, Instagram, Facebook, TikTok, Threads, Bluesky, Mastodon, Pinterest, YouTube). **Note: Buffer's API is currently in beta.**\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Buffer](https://publish.buffer.com) and go to **Settings > Developer Dashboard** (you must be an **Org Owner** — paid accounts can create up to 5 keys; free accounts get 1).\\n2. Click **Create API Key**, give it a name, and set an expiration if desired.\\n3. Copy the key immediately — it's only shown once.\\n4. Paste it here.\\n\\n**Note:** Buffer's API is currently in beta.\",\n storage: {\n secrets: [\"BUFFER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BUFFER_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"Buffer personal API key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BUFFER_TOKEN: \"$secrets.BUFFER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const builtwith = {\n builtwith: {\n label: \"BuiltWith\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect BuiltWith to look up the technology stack, traffic, and contact data for any website\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [BuiltWith](https://api.builtwith.com)\\n2. Open the **API access** page in your account\\n3. Copy your **API key**\\n4. Pass it as the `KEY` query parameter on every request\",\n storage: {\n secrets: [\"BUILTWITH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n BUILTWITH_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n BUILTWITH_TOKEN: \"$secrets.BUILTWITH_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const calCom = {\n \"cal-com\": {\n label: \"Cal.com\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Cal.com account to manage scheduling, bookings, and calendar events\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Cal.com](https://app.cal.com)\\n2. Go to **Settings** → **Developer** → **API Keys**\\n3. Click **Create API Key**\\n4. Copy the generated key\",\n storage: {\n secrets: [\"CALCOM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CALCOM_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"cal_live_xxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CALCOM_TOKEN: \"$secrets.CALCOM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const calendly = {\n calendly: {\n label: \"Calendly\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Calendly account to access scheduling data, event types, and invitee information\",\n authMethods: {\n \"api-token\": {\n label: \"Personal Access Token\",\n helpText:\n \"1. Log in to [Calendly](https://calendly.com)\\n2. Go to **Integrations > API & Webhooks**\\n3. Generate a Personal Access Token\\n4. Copy the token\",\n storage: {\n secrets: [\"CALENDLY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CALENDLY_TOKEN: {\n label: \"Personal Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"your-calendly-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CALENDLY_TOKEN: \"$secrets.CALENDLY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const canva = {\n canva: {\n label: \"Canva\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your Canva account to access designs, assets, and projects\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.CanvaConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Canva to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"CANVA_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"CANVA_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"CANVA_ACCESS_TOKEN\", \"CANVA_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"asset:read\",\n \"asset:write\",\n \"brandtemplate:content:read\",\n \"brandtemplate:meta:read\",\n \"comment:read\",\n \"comment:write\",\n \"design:content:read\",\n \"design:content:write\",\n \"design:meta:read\",\n \"folder:read\",\n \"folder:write\",\n \"profile:read\",\n ],\n outputs: {\n accessToken: \"$secrets.CANVA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.CANVA_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.CANVA_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.CANVA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.CANVA_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"CANVA_ACCESS_TOKEN\"],\n envBindings: {\n CANVA_TOKEN: \"$secrets.CANVA_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const chatwoot = {\n chatwoot: {\n label: \"Chatwoot\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Chatwoot account to manage conversations, contacts, and customer support workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Access Token\",\n helpText:\n \"1. Log in to [Chatwoot](https://app.chatwoot.com) with an administrator account\\n2. Click on your **avatar image** in the bottom left corner of the screen\\n3. Select **Profile Settings** from the menu\\n4. Scroll to the bottom of the Profile Settings page\\n5. Copy the **Personal Access Token** displayed there\",\n storage: {\n secrets: [\"CHATWOOT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CHATWOOT_TOKEN: {\n label: \"API Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"your-chatwoot-access-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CHATWOOT_TOKEN: \"$secrets.CHATWOOT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const checkr = {\n checkr: {\n label: \"Checkr\",\n category: \"sales-crm-business-operations\",\n tags: [\n \"background-checks\",\n \"screening\",\n \"candidates\",\n \"reports\",\n \"compliance\",\n ],\n helpText:\n \"Connect your Checkr account to manage candidates, invitations, reports, packages, and background check workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Checkr Dashboard](https://dashboard.checkr.com)\\n2. Go to **Account Settings > Developer Settings**\\n3. Copy a live or test API key for the account you want to connect\\n4. Use only keys and actions that comply with your background check authorization and compliance process\",\n storage: {\n secrets: [\"CHECKR_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CHECKR_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-checkr-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CHECKR_TOKEN: \"$secrets.CHECKR_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const clado = {\n clado: {\n label: \"Clado\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect Clado to search and enrich a B2B people graph for prospecting and recruiting\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [Clado](https://clado.ai)\\n2. Open the **API keys** page in your account\\n3. Click **Create Key**, name it, and copy the value\\n4. Use it as a Bearer token on requests to `https://search.clado.ai`\",\n storage: {\n secrets: [\"CLADO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CLADO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CLADO_TOKEN: \"$secrets.CLADO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const clerk = {\n clerk: {\n label: \"Clerk\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect to Clerk to look up users, manage organizations and memberships, send invitations, and audit sessions across your application's identity store.\",\n authMethods: {\n \"api-token\": {\n label: \"Secret Key\",\n helpText:\n \"Go to Clerk Dashboard → API Keys → copy the **Secret key** (starts with `sk_test_` for development or `sk_live_` for production). The key grants full administrative access to the matching instance — vm0's firewall ships with write operations denied by default; enable `*:write` permissions per agent only when needed.\",\n storage: {\n secrets: [\"CLERK_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CLERK_TOKEN: {\n label: \"Secret Key\",\n publicId: \"secretKey\",\n required: true,\n placeholder: \"sk_live_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CLERK_TOKEN: \"$secrets.CLERK_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const clearbit = {\n clearbit: {\n label: \"Clearbit\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect Clearbit to enrich people and companies using an existing Clearbit API key\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Clearbit](https://dashboard.clearbit.com)\\n2. Go to **Settings > Keys & Settings**\\n3. Reveal and copy your **Secret API Key**\\n\\nClearbit API keys are available only for accounts created in 2023 or earlier; new 2024+ accounts may require HubSpot/Breeze Intelligence access instead.\",\n storage: {\n secrets: [\"CLEARBIT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CLEARBIT_TOKEN: {\n label: \"Secret API Key\",\n publicId: \"secretApiKey\",\n required: true,\n placeholder: \"sk_your_secret_api_key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CLEARBIT_TOKEN: \"$secrets.CLEARBIT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const clickup = {\n clickup: {\n label: \"ClickUp\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your ClickUp account to manage tasks, projects, and team workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [ClickUp](https://app.clickup.com)\\n2. Click your avatar in the upper-right corner and select **Settings**\\n3. In the sidebar, click **Apps** (or visit [app.clickup.com/settings/apps](https://app.clickup.com/settings/apps))\\n4. Under the **API Token** section, click **Generate** (or **Regenerate** if you already have one)\\n5. Click **Copy** to copy the personal token (tokens start with `pk_` and never expire)\",\n storage: {\n secrets: [\"CLICKUP_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CLICKUP_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"pk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CLICKUP_TOKEN: \"$secrets.CLICKUP_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const close = {\n close: {\n label: \"Close\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Close account to manage leads, contacts, and opportunities\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.CloseConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Close to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"CLOSE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"CLOSE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"CLOSE_ACCESS_TOKEN\", \"CLOSE_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"all.full_access\", \"offline_access\"],\n outputs: {\n accessToken: \"$secrets.CLOSE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.CLOSE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.CLOSE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.CLOSE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.CLOSE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"CLOSE_ACCESS_TOKEN\"],\n envBindings: {\n CLOSE_TOKEN: \"$secrets.CLOSE_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nconst CLOUDFLARE_OAUTH_SCOPES = [\n \"agent-memory.write\",\n \"browser-rendering.write\",\n \"cf-agents.write\",\n \"cloud-connector.write\",\n \"cloudchamber.write\",\n \"constellation.write\",\n \"d1.write\",\n \"flagship.write\",\n \"flagship.evaluate\",\n \"flagship.read\",\n \"d1.read\",\n \"constellation.read\",\n \"cloudchamber.read\",\n \"cloud-connector.read\",\n \"cf-agents.read\",\n \"browser-rendering.read\",\n \"query-cache.write\",\n \"query-cache.read\",\n \"mcp-portals.read\",\n \"mcp-portals.write\",\n \"page.write\",\n \"page.read\",\n \"pipelines.read\",\n \"pipelines.send\",\n \"pipelines.write\",\n \"pubsub.write\",\n \"pubsub.read\",\n \"queues.read\",\n \"queues.write\",\n \"realtime.admin\",\n \"realtime.realtime\",\n \"secrets-store.read\",\n \"secrets-store.write\",\n \"vectorize.write\",\n \"vectorize.read\",\n \"workers-ci.read\",\n \"workers-ci.write\",\n \"containers.write\",\n \"containers.read\",\n \"workers-kv-storage.read\",\n \"workers-kv-storage.write\",\n \"workers-observability.write\",\n \"workers-observability.read\",\n \"workers-observability-telemetry.write\",\n \"r2-catalog.read\",\n \"r2-catalog.write\",\n \"r2-catalog-sql.read\",\n \"workers-r2.write\",\n \"workers-r2.read\",\n \"workers-r2-bucket-item.read\",\n \"workers-r2-bucket-item.write\",\n \"workers-routes.write\",\n \"workers-routes.read\",\n \"workers-scripts.read\",\n \"workers-scripts.write\",\n \"workers-tail.read\",\n \"agw.write\",\n \"agw.run\",\n \"agw.read\",\n \"aiaudit.read\",\n \"aiaudit.write\",\n \"aig.write\",\n \"aig.run\",\n \"aig.read\",\n \"ai-search.index\",\n \"ai-search.read\",\n \"ai-search.run\",\n \"ai-search.write\",\n \"rag.write\",\n \"rag.run\",\n \"rag.read\",\n \"firewall-for-ai.read\",\n \"firewall-for-ai.write\",\n \"websearch.run\",\n \"ai.read\",\n \"ai.write\",\n \"account-dns-settings.read\",\n \"account-dns-settings.write\",\n \"dns.write\",\n \"dns.read\",\n \"dns-firewall.write\",\n \"dns-firewall.read\",\n \"dns-view.read\",\n \"dns-view.write\",\n \"registrar-domains.admin\",\n \"registrar-domains.read\",\n \"zone.read\",\n \"zone.write\",\n \"zone-custom-asset.write\",\n \"zone-custom-asset.read\",\n \"zone-dns-settings.read\",\n \"zone-dns-settings.write\",\n \"zone-settings.write\",\n \"zone-settings.read\",\n \"zone-versioning.read\",\n \"zone-versioning.write\",\n \"fraud-detection-pii.read\",\n \"account-firewall-access-rules.read\",\n \"account-firewall-access-rules.write\",\n \"account-security-center-insights.write\",\n \"account-security-center-insights.read\",\n \"account-waf.read\",\n \"account-waf.write\",\n \"request-tracer.read\",\n \"reports-application-security-report.read\",\n \"bot-management.read\",\n \"bot-management.write\",\n \"bot-management-feedback.write\",\n \"bot-management-feedback.read\",\n \"cloudforce-one.read\",\n \"cloudforce-one.write\",\n \"ddos-botnet-feed.write\",\n \"ddos-botnet-feed.read\",\n \"ddos-protection.read\",\n \"ddos-protection.write\",\n \"api-gateway.write\",\n \"api-gateway.read\",\n \"domain-page.shield\",\n \"domain-page-shield.read\",\n \"firewall-services.read\",\n \"firewall-services.write\",\n \"fraud-detection.write\",\n \"fraud-detection.read\",\n \"fraud-events.write\",\n \"http-applications.read\",\n \"http-applications.write\",\n \"http-ddos-managed-ruleset.read\",\n \"http-ddos-managed-ruleset.write\",\n \"iot.write\",\n \"iot.read\",\n \"l4-ddos-managed-ruleset.read\",\n \"l4-ddos-managed-ruleset.write\",\n \"page-rules.write\",\n \"page-rules.read\",\n \"page.shield\",\n \"page-shield.read\",\n \"sanitize.write\",\n \"sanitize.read\",\n \"tag.read\",\n \"tag.write\",\n \"trust-and-safety.write\",\n \"trust-and-safety.read\",\n \"challenge-widgets.read\",\n \"challenge-widgets.write\",\n \"url-scanner.write\",\n \"url-scanner.read\",\n \"zaraz.edit\",\n \"zaraz.read\",\n \"zaraz.write\",\n \"zone-security-center-insights.write\",\n \"zone-security-center-insights.read\",\n \"zone-waf.read\",\n \"zone-waf.write\",\n \"account-custom-error-rules.write\",\n \"account-custom-error-rules.read\",\n \"account-custom-pages.read\",\n \"account-custom-pages.write\",\n \"account-rule-lists.write\",\n \"account-rule-lists.read\",\n \"account-rulesets.write\",\n \"account-rulesets.read\",\n \"config-settings.read\",\n \"config-settings.write\",\n \"custom-errors.write\",\n \"custom-errors.read\",\n \"custom-pages.read\",\n \"custom-pages.write\",\n \"dynamic-redirect.write\",\n \"dynamic-redirect.read\",\n \"managed-headers.read\",\n \"managed-headers.write\",\n \"mass-url-redirects.write\",\n \"mass-url-redirects.read\",\n \"origin.read\",\n \"origin.write\",\n \"response-compression.write\",\n \"response-compression.read\",\n \"select-configuration.read\",\n \"select-configuration.write\",\n \"snippets.read\",\n \"snippets.write\",\n \"transform-rules.write\",\n \"transform-rules.read\",\n \"zone-transform-rules.read\",\n \"zone-transform-rules.write\",\n \"intel.read\",\n \"intel.write\",\n \"account-analytics.read\",\n \"account-logs.write\",\n \"account-logs.read\",\n \"radar.read\",\n \"analytics.read\",\n \"logs.read\",\n \"logs.write\",\n \"access.revoke\",\n \"access.write\",\n \"access.read\",\n \"access-app.read\",\n \"access-app.revoke\",\n \"access-app.write\",\n \"zone-access.write\",\n \"zone-access.revoke\",\n \"zone-access.read\",\n \"access-audit-log.read\",\n \"access-custom-page.write\",\n \"access-custom-page.read\",\n \"access-device-posture.write\",\n \"access-device-posture.read\",\n \"access-group.read\",\n \"access-group.write\",\n \"access-idp.write\",\n \"access-idp.read\",\n \"access-key.read\",\n \"access-key.write\",\n \"access-certificate.write\",\n \"access-certificate.read\",\n \"access-org.read\",\n \"access-org.revoke\",\n \"access-org.write\",\n \"access-acct.write\",\n \"access-acct.revoke\",\n \"access-acct.read\",\n \"access-policy.read\",\n \"access-policy.write\",\n \"access-policy-test.write\",\n \"access-policy-test.read\",\n \"access-population.read\",\n \"access-population.write\",\n \"access-saml-certificate.write\",\n \"access-saml-certificate.read\",\n \"access-scim-log.read\",\n \"access-service-token.read\",\n \"access-service-token.write\",\n \"access-ssh-auditing.write\",\n \"access-ssh-auditing.read\",\n \"access-tag.read\",\n \"access-tag.write\",\n \"access-users.read\",\n \"access-users.write\",\n \"argotunnel.write\",\n \"argotunnel.read\",\n \"casb.read\",\n \"casb.write\",\n \"teams-cds-compute-account.write\",\n \"teams-cds-compute-account.read\",\n \"teams-dex.read\",\n \"teams-dex.write\",\n \"teams-connector-cloudflared.monitoring\",\n \"teams-connector-cloudflared.read\",\n \"teams-connector-cloudflared.write\",\n \"teams-connector-warp.write\",\n \"teams-connector-warp.read\",\n \"teams-connectors.read\",\n \"teams-connectors.write\",\n \"teams-networks.write\",\n \"teams-networks.read\",\n \"teams-secure.location\",\n \"dls.read\",\n \"dls.write\",\n \"teams.read\",\n \"teams.report\",\n \"teams.write\",\n \"teams-resilience.write\",\n \"teams-resilience.read\",\n \"teams-pii.read\",\n \"access-seats.write\",\n \"account-waiting-rooms.read\",\n \"address-maps.read\",\n \"address-maps.write\",\n \"chinanetwork-steering.write\",\n \"chinanetwork-steering.read\",\n \"connectivity-directory.read\",\n \"connectivity-directory.bind\",\n \"connectivity-directory.admin\",\n \"healthcheck.write\",\n \"healthcheck.read\",\n \"ip-prefix.read\",\n \"ip-prefix.write\",\n \"ip-prefix-bgp-on-demand.write\",\n \"ip-prefix-bgp-on-demand.read\",\n \"load-balancers.read\",\n \"load-balancers.write\",\n \"load-balancers-account.write\",\n \"load-balancers-account.read\",\n \"load-balancing-monitors-and-pools.read\",\n \"load-balancing-monitors-and-pools.write\",\n \"magic-firewall.write\",\n \"magic-firewall.read\",\n \"pcaps-api.write\",\n \"pcaps-api.read\",\n \"fbm.read\",\n \"fbm.write\",\n \"fbm.admin\",\n \"magic-transit.write\",\n \"magic-transit.read\",\n \"magic-wan.read\",\n \"magic-wan.write\",\n \"waiting-rooms.write\",\n \"waiting-rooms.read\",\n \"web3-hostnames.read\",\n \"web3-hostnames.write\",\n \"calls.read\",\n \"calls.write\",\n \"images.read\",\n \"images.write\",\n \"moq.write\",\n \"moq.read\",\n \"stream.read\",\n \"stream.write\",\n \"cloud-email-security.read\",\n \"cloud-email-security.write\",\n \"email-routing-address.write\",\n \"email-routing-address.read\",\n \"email-routing-rule.read\",\n \"email-routing-rule.write\",\n \"email-routing-suppression.write\",\n \"email-routing-suppression.read\",\n \"email-security-dmarcreports.write\",\n \"email-security-dmarcreports.read\",\n \"email-sending.read\",\n \"email-sending.write\",\n \"account-ssl-and-certificates.write\",\n \"account-ssl-and-certificates.read\",\n \"cache.purge\",\n \"cache-settings.read\",\n \"cache-settings.write\",\n \"account-disable-esc.write\",\n \"account-disable-esc.read\",\n \"zone-disable-esc.read\",\n \"zone-disable-esc.write\",\n \"ssl-and-certificates.write\",\n \"ssl-and-certificates.read\",\n \"account-api-gateway.read\",\n \"account-api-gateway.write\",\n \"account-custom-asset.write\",\n \"account-custom-asset.read\",\n \"account-settings.read\",\n \"account-settings.write\",\n \"apps.write\",\n \"integration.write\",\n \"memberships.read\",\n \"memberships.write\",\n \"notifications.write\",\n \"notifications.read\",\n \"scim-provisioning.write\",\n \"user-details.read\",\n \"user-details.write\",\n \"artifacts.read\",\n \"artifacts.write\",\n \"resource-library.write\",\n \"resource-library.read\",\n \"resource-sharing.read\",\n \"offline_access\",\n];\n\nexport const cloudflare = {\n cloudflare: {\n label: \"Cloudflare\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Cloudflare account to manage DNS, zones, workers, and other Cloudflare services\",\n authMethods: {\n oauth: {\n label: \"OAuth\",\n helpText: \"Sign in with Cloudflare to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"CLOUDFLARE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"CLOUDFLARE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"CLOUDFLARE_ACCESS_TOKEN\", \"CLOUDFLARE_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: CLOUDFLARE_OAUTH_SCOPES,\n callbackOrigin: \"api\",\n outputs: {\n accessToken: \"$secrets.CLOUDFLARE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.CLOUDFLARE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.CLOUDFLARE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.CLOUDFLARE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.CLOUDFLARE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"CLOUDFLARE_ACCESS_TOKEN\"],\n envBindings: {\n CLOUDFLARE_TOKEN: \"$secrets.CLOUDFLARE_ACCESS_TOKEN\",\n },\n },\n revoke: {\n kind: \"token-revoke\",\n inputs: {\n refreshToken: \"$secrets.CLOUDFLARE_REFRESH_TOKEN\",\n },\n },\n },\n \"api-token\": {\n label: \"API Token\",\n visible: false,\n helpText:\n \"1. Log in to the [Cloudflare Dashboard](https://dash.cloudflare.com)\\n2. Go to **My Profile** → **API Tokens**\\n3. Click **Create Token** and configure the required permissions\\n4. Copy the generated token\",\n storage: {\n secrets: [\"CLOUDFLARE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CLOUDFLARE_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CLOUDFLARE_TOKEN: \"$secrets.CLOUDFLARE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const cloudinary = {\n cloudinary: {\n label: \"Cloudinary\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Cloudinary account to manage images, videos, and media assets with CDN delivery and transformations\",\n authMethods: {\n \"api-token\": {\n label: \"API Credentials\",\n helpText:\n \"1. Log in to the [Cloudinary Console](https://console.cloudinary.com/settings/api-keys)\\n2. Go to **Settings** → **API Keys**\\n3. Copy your **Cloud Name**, **API Key**, and **API Secret**\",\n storage: {\n secrets: [\"CLOUDINARY_TOKEN\", \"CLOUDINARY_API_SECRET\"],\n variables: [\"CLOUDINARY_CLOUD_NAME\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CLOUDINARY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n CLOUDINARY_API_SECRET: {\n label: \"API Secret\",\n publicId: \"apiSecret\",\n required: true,\n },\n CLOUDINARY_CLOUD_NAME: {\n label: \"Cloud Name\",\n publicId: \"cloudName\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-cloud-name\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CLOUDINARY_TOKEN: \"$secrets.CLOUDINARY_TOKEN\",\n CLOUDINARY_API_SECRET: \"$secrets.CLOUDINARY_API_SECRET\",\n CLOUDINARY_CLOUD_NAME: \"$vars.CLOUDINARY_CLOUD_NAME\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const coda = {\n coda: {\n label: \"Coda\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your Coda account to read and write docs, tables, rows, and pages\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Open Coda and click your avatar (bottom left) then **Account Settings**\\n2. Scroll to **API Settings**\\n3. Click **Generate API Token**, give it a name, optionally restrict scope\\n4. Copy the token and paste it here\",\n storage: {\n secrets: [\"CODA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CODA_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-coda-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CODA_TOKEN: \"$secrets.CODA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const coingecko = {\n coingecko: {\n label: \"CoinGecko\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your CoinGecko account to access crypto market data, prices, coins, exchanges, NFTs, and onchain data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up or log in to [CoinGecko](https://www.coingecko.com/en/api)\\n2. Open the **Developer Dashboard**\\n3. Click **Add New Key** to create a Demo or Pro API key\\n4. Copy the API key\",\n storage: {\n secrets: [\"COINGECKO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n COINGECKO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-coingecko-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n COINGECKO_TOKEN: \"$secrets.COINGECKO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const coresignal = {\n coresignal: {\n label: \"Coresignal\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect Coresignal to search, enrich, and collect company, employee, and jobs data through Coresignal APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Coresignal self-service dashboard](https://dashboard.coresignal.com)\\n2. Open **API Keys** from your account settings or homepage\\n3. Copy an API key\\n4. Use it in requests with the `apikey` header\",\n storage: {\n secrets: [\"CORESIGNAL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CORESIGNAL_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-coresignal-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CORESIGNAL_TOKEN: \"$secrets.CORESIGNAL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const cronlytic = {\n cronlytic: {\n label: \"Cronlytic\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Cronlytic account to monitor cron jobs and scheduled tasks\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Cronlytic dashboard](https://www.cronlytic.com/dashboard)\\n2. Go to the **API Keys** section\\n3. Click **Generate New API Key**\\n4. Copy your **API Key** and **User ID** (both are required for authentication via `X-API-Key` and `X-User-ID` headers)\",\n storage: {\n secrets: [\"CRONLYTIC_API_KEY\"],\n variables: [\"CRONLYTIC_USER_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CRONLYTIC_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n CRONLYTIC_USER_ID: {\n label: \"User ID\",\n publicId: \"userId\",\n required: true,\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CRONLYTIC_API_KEY: \"$secrets.CRONLYTIC_API_KEY\",\n CRONLYTIC_USER_ID: \"$vars.CRONLYTIC_USER_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const crustdata = {\n crustdata: {\n label: \"Crustdata\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect Crustdata to search and enrich company, person, job, web, and social post data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Request or open your Crustdata API key from the [Crustdata dashboard](https://crustdata.com)\\n2. Copy your API key\\n3. Crustdata authenticates requests with `Authorization: Bearer <key>` and requires the `x-api-version` header\",\n storage: {\n secrets: [\"CRUSTDATA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CRUSTDATA_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CRUSTDATA_TOKEN: \"$secrets.CRUSTDATA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const cursor = {\n cursor: {\n label: \"Cursor\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect your Cursor account to launch and manage cloud coding agents via the Cursor Cloud Agents API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in at [cursor.com](https://cursor.com)\\n2. Open **Dashboard → API Keys** ([cursor.com/dashboard/api](https://cursor.com/dashboard/api))\\n3. Click **Create API Key**\\n4. Copy the key (it begins with `key_`). Paste it here.\",\n storage: {\n secrets: [\"CURSOR_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CURSOR_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder:\n \"key_c0ffee5afe10ca1c0ffee5afe10ca1c0ffee5afe10ca1c0ffee5afe10ca1c0ff\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CURSOR_TOKEN: \"$secrets.CURSOR_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const customerIo = {\n \"customer-io\": {\n label: \"Customer.io\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Customer.io account to send behavioral emails, SMS, and push notifications triggered by user events\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to your [Customer.io](https://fly.customer.io) account\\n2. Go to **Account Settings > [API Credentials](https://fly.customer.io/settings/api_credentials)**\\n3. Locate your **Site ID** and **API Key** on the Track API Keys page\\n4. Copy both values (they are used together as basic authentication credentials in the format `site_id:api_key`, Base64-encoded)\",\n storage: {\n secrets: [\"CUSTOMERIO_APP_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n CUSTOMERIO_APP_TOKEN: {\n label: \"App API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n CUSTOMERIO_APP_TOKEN: \"$secrets.CUSTOMERIO_APP_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const daytona = {\n daytona: {\n label: \"Daytona\",\n category: \"data-automation-infrastructure\",\n tags: [\"sandbox\", \"sandboxes\", \"code-execution\", \"managed-agents\"],\n helpText:\n \"Connect your Daytona account to create, run, and manage cloud sandboxes for code execution and agent workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in at [app.daytona.io](https://app.daytona.io)\\n2. Open **API Keys**\\n3. Click **Create API Key**\\n4. Copy the generated key and paste it here.\",\n storage: {\n secrets: [\"DAYTONA_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DAYTONA_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-daytona-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DAYTONA_API_KEY: \"$secrets.DAYTONA_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const db9 = {\n db9: {\n label: \"db9\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your db9 account to manage serverless Postgres databases with pgvector, FTS, and embeddings\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [db9](https://db9.ai)\\n2. Go to **Settings > API Keys**\\n3. Create a new API key\\n4. Copy the 128-character hex token\",\n storage: {\n secrets: [\"DB9_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DB9_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"128-char hex token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DB9_API_KEY: \"$secrets.DB9_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const deel = {\n deel: {\n label: \"Deel\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Deel account to access HR, payroll, and contractor data\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.DeelConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Deel to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"DEEL_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"DEEL_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"DEEL_ACCESS_TOKEN\", \"DEEL_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"contracts:read\",\n \"people:read\",\n \"organizations:read\",\n \"payslips:read\",\n \"time-off:read\",\n \"time-off:write\",\n \"invoice-adjustments:read\",\n \"invoice-adjustments:write\",\n ],\n outputs: {\n accessToken: \"$secrets.DEEL_ACCESS_TOKEN\",\n refreshToken: \"$secrets.DEEL_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.DEEL_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.DEEL_ACCESS_TOKEN\",\n refreshToken: \"$secrets.DEEL_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"DEEL_ACCESS_TOKEN\"],\n envBindings: {\n DEEL_TOKEN: \"$secrets.DEEL_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Create a [Deel](https://app.deel.com) account and verify your email\\n2. Navigate to the **Developer Center**\\n3. Select the **API Sandbox** tab (or **Production** for live credentials)\\n4. Click **Create Sandbox** and enter a unique email and password\\n5. Click **Confirm** to finalize sandbox creation\\n6. Locate your **API Key / Access Token** in the Developer Center\\n7. Copy and store the token securely\",\n storage: {\n secrets: [\"DEEL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DEEL_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DEEL_TOKEN: \"$secrets.DEEL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const defillama = {\n defillama: {\n label: \"DefiLlama\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your DefiLlama Pro account to access authenticated DeFi analytics data and higher-rate-limit Pro API endpoints\",\n authMethods: {\n \"api-token\": {\n label: \"Pro API Key\",\n helpText:\n \"1. Subscribe to [DefiLlama Pro API](https://defillama.com/subscription)\\n2. Open the [Pro API docs](https://defillama.com/pro-api/docs)\\n3. Copy your Pro API key\\n\\nThis connector is for the DefiLlama Pro API key. Most free DefiLlama API endpoints do not require authentication.\",\n storage: {\n secrets: [\"DEFILLAMA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DEFILLAMA_TOKEN: {\n label: \"Pro API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-defillama-pro-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DEFILLAMA_TOKEN: \"$secrets.DEFILLAMA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const deepseek = {\n deepseek: {\n label: \"DeepSeek\",\n category: \"ai-general-models\",\n generation: [\"code\", \"text\"],\n helpText:\n \"Connect your DeepSeek account to use DeepSeek AI models for chat completions, code generation, and reasoning tasks\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to the [DeepSeek Platform](https://platform.deepseek.com/api_keys)\\n2. Sign up for an account or log in\\n3. Navigate to the **API Keys** page\\n4. Create a new API key and copy it\",\n storage: {\n secrets: [\"DEEPSEEK_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DEEPSEEK_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DEEPSEEK_TOKEN: \"$secrets.DEEPSEEK_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const devto = {\n devto: {\n label: \"Dev.to\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Dev.to account to publish articles, manage posts, and interact with the developer community\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [DEV.to](https://dev.to)\\n2. Go to **Settings > Extensions** (or visit [dev.to/settings/extensions](https://dev.to/settings/extensions))\\n3. Generate a new API key from the settings page\\n4. Copy the API key and use it in the `api-key` request header\",\n storage: {\n secrets: [\"DEVTO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DEVTO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-devto-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DEVTO_TOKEN: \"$secrets.DEVTO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const diffbot = {\n diffbot: {\n label: \"Diffbot\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Diffbot to extract structured article, product, and entity data from any web page or knowledge graph\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Diffbot](https://app.diffbot.com/get-started/)\\n2. Open your account dashboard\\n3. Copy the **API token** shown on the dashboard\\n4. Pass it as the `token` query parameter on every request\",\n storage: {\n secrets: [\"DIFFBOT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DIFFBOT_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DIFFBOT_TOKEN: \"$secrets.DIFFBOT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const dify = {\n dify: {\n label: \"Dify\",\n category: \"ai-agent-apps\",\n generation: [\"text\"],\n helpText:\n \"Connect your Dify account to build and manage AI-powered workflows, chatbots, and agentic applications\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Dify](https://cloud.dify.ai)\\n2. Open your app and navigate to **API Access** in the left sidebar\\n3. Click to generate new API credentials\\n4. Copy the API key\",\n storage: {\n secrets: [\"DIFY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DIFY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"app-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DIFY_TOKEN: \"$secrets.DIFY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const discord = {\n discord: {\n label: \"Discord\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Discord bot to manage servers, channels, messages, and automate interactions\",\n authMethods: {\n \"api-token\": {\n label: \"Bot Token\",\n helpText:\n \"1. Go to the [Discord Developer Portal](https://discord.com/developers/applications)\\n2. Select your application (or create a new one)\\n3. Navigate to the **Bot** page in your app's settings\\n4. In the **Token** section, click **Reset Token** to generate a new bot token\\n5. Copy and securely store the token — you won't be able to view it again unless you regenerate it\",\n storage: {\n secrets: [\"DISCORD_BOT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DISCORD_BOT_TOKEN: {\n label: \"Bot Token\",\n publicId: \"botToken\",\n required: true,\n placeholder: \"your-discord-bot-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DISCORD_BOT_TOKEN: \"$secrets.DISCORD_BOT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const discordWebhook = {\n \"discord-webhook\": {\n label: \"Discord Webhook\",\n category: \"communication-collaboration\",\n helpText: \"Connect a Discord webhook to send messages to channels\",\n authMethods: {\n \"api-token\": {\n label: \"Webhook URL\",\n helpText:\n \"1. Open your Discord server and navigate to **Server Settings**\\n2. Select the **Integrations** tab\\n3. Click the **Create Webhook** button\\n4. Configure the webhook name and select the target text channel from the dropdown menu\\n5. Click the **Copy Webhook URL** button to copy the webhook URL\",\n storage: {\n secrets: [\"DISCORD_WEBHOOK_URL\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DISCORD_WEBHOOK_URL: {\n label: \"Webhook URL\",\n publicId: \"url\",\n required: true,\n placeholder: \"https://discord.com/api/webhooks/xxx/xxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DISCORD_WEBHOOK_URL: \"$secrets.DISCORD_WEBHOOK_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const doppler = {\n doppler: {\n label: \"Doppler\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Doppler account to fetch secrets and environment variables from your projects and configs\",\n authMethods: {\n \"api-token\": {\n label: \"Service Token\",\n helpText:\n \"1. Log in to [Doppler](https://dashboard.doppler.com)\\n2. Go to your project, then select a config (environment)\\n3. Click the **Access** tab\\n4. Click **+ Generate Service Token**\\n5. Set permissions to **Read** and copy the token\",\n storage: {\n secrets: [\"DOPPLER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DOPPLER_TOKEN: {\n label: \"Service Token\",\n publicId: \"token\",\n required: true,\n placeholder: \"dp.st.dev.xxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DOPPLER_TOKEN: \"$secrets.DOPPLER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const doubao = {\n doubao: {\n label: \"Doubao\",\n category: \"ai-voice-audio\",\n generation: [\"audio\"],\n tags: [\"volcengine\", \"tts\", \"asr\", \"speech\", \"voice-clone\", \"mandarin\"],\n helpText:\n \"Connect Volcengine Doubao (豆包语音) for Mandarin-first text-to-speech, speech recognition, and voice cloning\",\n authMethods: {\n \"api-token\": {\n label: \"Doubao API Key\",\n helpText:\n \"1. Sign in to the [Volcengine new speech console](https://console.volcengine.com/speech/new)\\n2. Open **设置 → API Key 管理** ([direct link](https://console.volcengine.com/speech/new/setting/apikeys))\\n3. Click **创建 API Key**, name it, and copy the UUID value\\n4. The key authorises every endpoint under `openspeech.bytedance.com` — TTS, ASR file recognition, voice cloning\",\n storage: {\n secrets: [\"DOUBAO_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DOUBAO_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"00000000-0000-0000-0000-000000000000\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DOUBAO_API_KEY: \"$secrets.DOUBAO_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const drive9 = {\n drive9: {\n label: \"drive9\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your drive9 account for agent-friendly file storage with unified path-based operations\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [drive9](https://drive9.ai)\\n2. Go to **Settings > API Keys**\\n3. Create a new API key\\n4. Copy the key (format: `drive9_sk_...`)\",\n storage: {\n secrets: [\"DRIVE9_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DRIVE9_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"drive9_sk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DRIVE9_TOKEN: \"$secrets.DRIVE9_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const dropbox = {\n dropbox: {\n label: \"Dropbox\",\n category: \"docs-files-knowledge\",\n helpText: \"Connect your Dropbox account to access and manage files\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.DropboxConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Dropbox to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"DROPBOX_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"DROPBOX_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"DROPBOX_ACCESS_TOKEN\", \"DROPBOX_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"account_info.read\",\n \"files.metadata.read\",\n \"files.content.read\",\n ],\n outputs: {\n accessToken: \"$secrets.DROPBOX_ACCESS_TOKEN\",\n refreshToken: \"$secrets.DROPBOX_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.DROPBOX_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.DROPBOX_ACCESS_TOKEN\",\n refreshToken: \"$secrets.DROPBOX_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"DROPBOX_ACCESS_TOKEN\"],\n envBindings: {\n DROPBOX_TOKEN: \"$secrets.DROPBOX_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Go to the [Dropbox App Console](https://www.dropbox.com/developers/apps)\\n2. Select your app (or create a new one)\\n3. Click the button to generate an access token for your own account\\n4. Copy the generated OAuth 2 access token\",\n storage: {\n secrets: [\"DROPBOX_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DROPBOX_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"sl.xxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DROPBOX_TOKEN: \"$secrets.DROPBOX_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const dropboxSign = {\n \"dropbox-sign\": {\n label: \"Dropbox Sign\",\n category: \"data-automation-infrastructure\",\n tags: [\"hellosign\", \"e-signature\", \"signature\", \"sign\", \"document\"],\n helpText:\n \"Connect your Dropbox Sign (formerly HelloSign) account to send, track, and download e-signature requests\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Dropbox Sign](https://sign.dropbox.com)\\n2. Click **API** in the left sidebar and open the **API Dashboard**\\n3. Click **Reveal key** for an existing key, or **Generate key** to create a new one\\n4. Copy the 40-character hex key and paste it here\\n\\nTip: While developing, add `test_mode=1` to signature-request calls to avoid billing and real emails.\",\n storage: {\n secrets: [\"DROPBOX_SIGN_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DROPBOX_SIGN_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"40-character hex key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DROPBOX_SIGN_TOKEN: \"$secrets.DROPBOX_SIGN_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const duffel = {\n duffel: {\n label: \"Duffel\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Duffel account to search and book flights and stays (hotels) through the Duffel API\",\n authMethods: {\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Log in to the [Duffel dashboard](https://app.duffel.com)\\n2. Click your organisation name, then **Developers > Access tokens**\\n3. Click **New token**, give it a name, leave scope as **Read write**\\n4. Click **Create token** and copy the value (format: `duffel_test_...` for test mode, `duffel_live_...` for live mode)\",\n storage: {\n secrets: [\"DUFFEL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n DUFFEL_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"duffel_test_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n DUFFEL_TOKEN: \"$secrets.DUFFEL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const e2b = {\n e2b: {\n label: \"E2B\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your E2B account to create and manage secure cloud sandboxes for AI code execution\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up at [e2b.dev](https://e2b.dev)\\n2. Go to Dashboard → **API Keys**\\n3. Click **Create API Key**\\n4. Copy the key (starts with `e2b_`). Paste it here.\",\n storage: {\n secrets: [\"E2B_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n E2B_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"e2b_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n E2B_TOKEN: \"$secrets.E2B_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const elevenlabs = {\n elevenlabs: {\n label: \"ElevenLabs\",\n category: \"ai-voice-audio\",\n generation: [\"audio\"],\n helpText:\n \"Connect your ElevenLabs account to generate speech, clone voices, manage audio projects, and access sound effects\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [ElevenLabs](https://elevenlabs.io)\\n2. Go to [Settings > API Keys](https://elevenlabs.io/app/settings/api-keys)\\n3. Click to create a new API key\\n4. Copy the key and store it securely\",\n storage: {\n secrets: [\"ELEVENLABS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ELEVENLABS_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-elevenlabs-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ELEVENLABS_TOKEN: \"$secrets.ELEVENLABS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const etsy = {\n etsy: {\n label: \"Etsy\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Etsy developer account to search listings, manage shop data, and access product information\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Etsy](https://www.etsy.com/developers/your-apps)\\n\" +\n \"2. Click **Create a New App** (or select an existing app)\\n\" +\n \"3. Copy the **Keystring** and **Shared Secret**\\n\" +\n \"4. Paste both values joined with a colon: `keystring:shared_secret`\",\n storage: {\n secrets: [\"ETSY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ETSY_TOKEN: {\n label: \"API Key (keystring:shared_secret)\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"c0ffee5afe10ca1c0ffee5af:e10ca15afe\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ETSY_TOKEN: \"$secrets.ETSY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const etherscan = {\n etherscan: {\n label: \"Etherscan\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Etherscan API V2 to query Ethereum and supported EVM-compatible chains with one API key\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [Etherscan](https://etherscan.io)\\n2. Open your [API Dashboard](https://etherscan.io/myapikey)\\n3. Click **Add +** to create a new API key\\n4. Use the key with Etherscan API V2 requests; one key works across supported chains via the `chainid` parameter\",\n storage: {\n secrets: [\"ETHERSCAN_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ETHERSCAN_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ETHERSCAN_API_KEY: \"$secrets.ETHERSCAN_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const exa = {\n exa: {\n label: \"Exa\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Exa account to perform AI-native semantic web search, retrieve page contents, and find similar pages\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up at [dashboard.exa.ai](https://dashboard.exa.ai)\\n2. Click your account \\u2192 **API Keys** \\u2192 **Create API Key**\\n3. Copy the key (starts with `exa_`). Free tier: 1,000 requests/month.\",\n storage: {\n secrets: [\"EXA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n EXA_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"exa_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n EXA_TOKEN: \"$secrets.EXA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const explorium = {\n explorium: {\n label: \"Explorium\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Explorium account to access business data enrichment, prospect discovery, and AI-powered data insights\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Explorium Admin Portal](https://admin.explorium.ai)\\n2. Navigate to **Access & Authentication > Getting Your API Key**\\n3. Click the **Show Key** button to reveal the masked API key\\n4. Click the **Copy Key** button to copy it\",\n storage: {\n secrets: [\"EXPLORIUM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n EXPLORIUM_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-explorium-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n EXPLORIUM_TOKEN: \"$secrets.EXPLORIUM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const faire = {\n faire: {\n label: \"Faire\",\n category: \"sales-crm-business-operations\",\n tags: [\n \"wholesale\",\n \"marketplace\",\n \"brands\",\n \"orders\",\n \"inventory\",\n \"products\",\n ],\n helpText:\n \"Connect your Faire brand account to manage wholesale products, orders, inventory, shipments, and brand profile data\",\n authMethods: {\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. In the Faire portal, go to **Settings > Integrations**\\n2. Generate an API key for a direct integration, or request one from Faire for a custom integration\\n3. Copy the access token for the brand account you want to connect\",\n storage: {\n secrets: [\"FAIRE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n FAIRE_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"your-faire-access-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n FAIRE_TOKEN: \"$secrets.FAIRE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const fal = {\n fal: {\n label: \"fal.ai\",\n category: \"ai-image-video\",\n generation: [\"image\", \"video\"],\n helpText:\n \"Connect your fal.ai account to run AI models for image generation, video generation, and other AI tasks\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to the [fal Dashboard Keys page](https://fal.ai/dashboard/keys)\\n2. Click the **Create Key** button\\n3. Provide a name for your key and select the appropriate scope (**API** for calling models, or **ADMIN** for full access)\\n4. Copy the key immediately — you will not be able to see it again\",\n storage: {\n secrets: [\"FAL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n FAL_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"fal_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n FAL_TOKEN: \"$secrets.FAL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const figma = {\n figma: {\n label: \"Figma\",\n category: \"docs-files-knowledge\",\n helpText: \"Connect your Figma account to access design files and projects\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.FigmaConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Figma to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"FIGMA_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"FIGMA_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"FIGMA_ACCESS_TOKEN\", \"FIGMA_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"current_user:read\",\n \"file_content:read\",\n \"file_metadata:read\",\n \"file_versions:read\",\n \"projects:read\",\n \"file_comments:read\",\n \"file_comments:write\",\n \"library_assets:read\",\n \"library_content:read\",\n ],\n outputs: {\n accessToken: \"$secrets.FIGMA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.FIGMA_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.FIGMA_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.FIGMA_ACCESS_TOKEN\",\n refreshToken: \"$secrets.FIGMA_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"FIGMA_ACCESS_TOKEN\"],\n envBindings: {\n FIGMA_TOKEN: \"$secrets.FIGMA_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"Personal Access Token\",\n helpText:\n \"1. Log in to [Figma](https://www.figma.com) and open the file browser\\n2. Click the account menu in the top-left corner and select **Settings**\\n3. Select the **Security** tab\\n4. Scroll to the **Personal access tokens** section and click **Generate new token**\\n5. Enter a name for the token, assign the desired scopes, and press Return/Enter\\n6. Copy the generated token immediately — it will not be shown again\",\n storage: {\n secrets: [\"FIGMA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n FIGMA_TOKEN: {\n label: \"Personal Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"figd_xxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n FIGMA_TOKEN: \"$secrets.FIGMA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const firecrawl = {\n firecrawl: {\n label: \"Firecrawl\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Firecrawl account to scrape webpages, crawl websites, and extract structured data\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Firecrawl](https://www.firecrawl.dev)\\n2. Go to your **Dashboard**\\n3. Copy your **API Key**\",\n storage: {\n secrets: [\"FIRECRAWL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n FIRECRAWL_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"fc-xxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n FIRECRAWL_TOKEN: \"$secrets.FIRECRAWL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const fireflies = {\n fireflies: {\n label: \"Fireflies\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Fireflies.ai account to transcribe and analyze meetings\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Fireflies](https://fireflies.ai)\\n2. Navigate to the **Integrations** section\\n3. Click on **Fireflies API**\\n4. Copy your API key and store it securely\",\n storage: {\n secrets: [\"FIREFLIES_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n FIREFLIES_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n FIREFLIES_TOKEN: \"$secrets.FIREFLIES_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const flightaware = {\n flightaware: {\n label: \"FlightAware\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect FlightAware AeroAPI to access flight status, airport, airline, and aviation data\",\n authMethods: {\n \"api-token\": {\n label: \"AeroAPI Key\",\n helpText:\n \"1. Sign in to the [FlightAware AeroAPI portal](https://flightaware.com/aeroapi/portal/)\\n2. Open your API key settings\\n3. Copy your AeroAPI key\\n4. Send it in the `x-apikey` header for AeroAPI requests\",\n storage: {\n secrets: [\"FLIGHTAWARE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n FLIGHTAWARE_TOKEN: {\n label: \"AeroAPI Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n FLIGHTAWARE_TOKEN: \"$secrets.FLIGHTAWARE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const freshdesk = {\n freshdesk: {\n label: \"Freshdesk\",\n category: \"communication-collaboration\",\n tags: [\"helpdesk\", \"tickets\", \"customer-support\"],\n helpText:\n \"Connect your Freshdesk account to manage support tickets, contacts, companies, agents, and knowledge base articles\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to Freshdesk and click your profile picture (top right), then **Profile Settings**\\n2. On the right pane, click **View API Key** and complete the captcha\\n3. Copy the API key\\n4. Enter your Freshdesk subdomain — the prefix of `https://<subdomain>.freshdesk.com`\",\n storage: {\n secrets: [\"FRESHDESK_TOKEN\"],\n variables: [\"FRESHDESK_DOMAIN\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n FRESHDESK_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n FRESHDESK_DOMAIN: {\n label: \"Subdomain\",\n publicId: \"subdomain\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-subdomain\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n FRESHDESK_TOKEN: \"$secrets.FRESHDESK_TOKEN\",\n FRESHDESK_DOMAIN: \"$vars.FRESHDESK_DOMAIN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const gamma = {\n gamma: {\n label: \"Gamma\",\n category: \"marketing-content-growth\",\n generation: [\"document\", \"presentation\", \"website\"],\n helpText:\n \"Connect your Gamma account to generate presentations, documents, and websites with AI\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Gamma](https://gamma.app)\\n2. Go to [API Keys](https://gamma.app/settings/api-keys) (Settings > API Keys)\\n3. Click **Create API key**\\n4. Copy the key (it is only shown once)\",\n storage: {\n secrets: [\"GAMMA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GAMMA_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-gamma-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GAMMA_TOKEN: \"$secrets.GAMMA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const garminConnect = {\n \"garmin-connect\": {\n label: \"Garmin Connect\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Garmin Connect account to access wellness and activity data\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.GarminConnectConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Garmin Connect to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GARMIN_CONNECT_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GARMIN_CONNECT_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\n \"GARMIN_CONNECT_ACCESS_TOKEN\",\n \"GARMIN_CONNECT_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [],\n outputs: {\n accessToken: \"$secrets.GARMIN_CONNECT_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GARMIN_CONNECT_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.GARMIN_CONNECT_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.GARMIN_CONNECT_ACCESS_TOKEN\",\n refreshToken: \"$secrets.GARMIN_CONNECT_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"GARMIN_CONNECT_ACCESS_TOKEN\"],\n envBindings: {\n GARMIN_CONNECT_TOKEN: \"$secrets.GARMIN_CONNECT_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const gemini = {\n gemini: {\n label: \"Gemini\",\n category: \"ai-general-models\",\n generation: [\"image\", \"text\"],\n tags: [\"llm\", \"ai\", \"google\", \"gemini\", \"multimodal\"],\n helpText:\n \"Connect your Google AI Studio account to access Gemini models for text generation, multimodal reasoning, embeddings, and function calling\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to [Google AI Studio](https://aistudio.google.com/apikey)\\n2. Sign in with your Google account\\n3. Click **Create API key**\\n4. Copy the key (starts with `AIza`) and store it in a safe location\",\n storage: {\n secrets: [\"GEMINI_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GEMINI_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"AIza...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GEMINI_TOKEN: \"$secrets.GEMINI_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const gitlab = {\n gitlab: {\n label: \"GitLab\",\n category: \"engineering-team-execution\",\n tags: [\"git\", \"vcs\", \"scm\", \"repos\"],\n helpText:\n \"Connect your GitLab account to manage repositories, issues, merge requests, and CI/CD pipelines\",\n authMethods: {\n \"api-token\": {\n label: \"Personal Access Token\",\n helpText:\n \"1. Log in to [GitLab](https://gitlab.com)\\n2. Click your avatar in the upper-right corner and select **Edit profile**\\n3. In the left sidebar, navigate to **Access > Personal access tokens**\\n4. From the **Generate token** dropdown, select **Legacy token**\\n5. Enter a name in the **Token name** field\\n6. Optionally set an expiration date (defaults to 365 days)\\n7. Select the required scopes for your token\\n8. Click **Generate token**\\n9. Copy and save the token — you cannot view it again after leaving the page\",\n storage: {\n secrets: [\"GITLAB_TOKEN\"],\n variables: [\"GITLAB_HOST\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GITLAB_TOKEN: {\n label: \"Personal Access Token\",\n publicId: \"accessToken\",\n required: true,\n },\n GITLAB_HOST: {\n label: \"GitLab Host\",\n publicId: \"host\",\n required: false,\n placeholder: \"gitlab.com\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GITLAB_TOKEN: \"$secrets.GITLAB_TOKEN\",\n GITLAB_HOST: {\n valueRef: \"$vars.GITLAB_HOST\",\n optional: true,\n },\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const gong = {\n gong: {\n label: \"Gong\",\n category: \"sales-crm-business-operations\",\n tags: [\"sales\", \"calls\", \"transcripts\", \"revenue-intelligence\"],\n helpText:\n \"Connect your Gong account to access calls, transcripts, users, and revenue intelligence data\",\n authMethods: {\n \"api-token\": {\n label: \"Access Key\",\n helpText:\n \"1. In Gong, go to **Company Settings → Ecosystem → API** (requires the Technical Administrator permission profile)\\n2. Click **Create** to generate an Access Key and Access Key Secret\\n3. Copy both values — the secret is shown only once\\n4. Copy the **API Base URL** shown on the same screen (e.g. `api.gong.io`, or your region-specific host)\",\n storage: {\n secrets: [\"GONG_ACCESS_KEY\", \"GONG_ACCESS_KEY_SECRET\"],\n variables: [\"GONG_API_BASE\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GONG_ACCESS_KEY: {\n label: \"Access Key\",\n publicId: \"accessKey\",\n required: true,\n },\n GONG_ACCESS_KEY_SECRET: {\n label: \"Access Key Secret\",\n publicId: \"accessKeySecret\",\n required: true,\n },\n GONG_API_BASE: {\n label: \"API Base URL\",\n publicId: \"apiBaseUrl\",\n required: true,\n storage: \"variable\",\n placeholder: \"api.gong.io\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GONG_ACCESS_KEY: \"$secrets.GONG_ACCESS_KEY\",\n GONG_ACCESS_KEY_SECRET: \"$secrets.GONG_ACCESS_KEY_SECRET\",\n GONG_API_BASE: \"$vars.GONG_API_BASE\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const granola = {\n granola: {\n label: \"Granola\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Granola account to access meeting notes, transcripts, summaries, and calendar event details\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Open the [Granola](https://granola.ai) desktop app\\n2. Go to **Settings > API**\\n3. Click the **Create new key** button\\n4. Choose a key type (if prompted) and click **Generate API Key**\\n5. Copy and save the API key securely\",\n storage: {\n secrets: [\"GRANOLA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GRANOLA_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-granola-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GRANOLA_TOKEN: \"$secrets.GRANOLA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const greenhouse = {\n greenhouse: {\n label: \"Greenhouse\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Greenhouse account to read candidates, applications, jobs, offers, and scheduled interviews, and to create candidates and activity-feed notes via the Harvest API. Note: Harvest v1/v2 will be deprecated on August 31, 2026 — migrate to OAuth v3 before that date.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In Greenhouse, click **Configure** (gear icon) → **Dev Center** (left sidebar)\\n2. Click **API Credential Management** → **Create new API credentials**\\n3. For **API type**, select **Harvest API** (v1/v2). For **Partner**, choose **Custom** (or **Unlisted vendor**). Description: **vm0**\\n4. Select the endpoints you want this key to access (permission scoping)\\n5. Click **View and store credentials** and copy the API key — it is only shown once\\n6. Paste it here\\n\\n**Note:** Harvest v1/v2 will be deprecated on August 31, 2026; migrate to OAuth v3 before that date.\",\n storage: {\n secrets: [\"GREENHOUSE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GREENHOUSE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-greenhouse-harvest-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GREENHOUSE_TOKEN: \"$secrets.GREENHOUSE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const groq = {\n groq: {\n label: \"Groq\",\n category: \"ai-general-models\",\n generation: [\"text\"],\n tags: [\"llm\", \"ai\", \"llama\", \"inference\"],\n helpText:\n \"Connect your Groq account to run ultra-fast LLM inference on open-weight models (Llama, Mixtral, Gemma) and Whisper audio transcription using Groq's LPU hardware\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up at [console.groq.com](https://console.groq.com)\\n2. Click **API Keys** in the left sidebar\\n3. Click **Create API Key**, name it, and copy it immediately — it is shown only once\\n4. Paste it here. Free tier available; the key is org-bound.\",\n storage: {\n secrets: [\"GROQ_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n GROQ_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"gsk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n GROQ_TOKEN: \"$secrets.GROQ_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const helicone = {\n helicone: {\n label: \"Helicone\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect to Helicone for LLM cost tracking, request logging, and performance analytics.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText: \"Go to helicone.ai → Settings → API Keys → create a new key.\",\n storage: {\n secrets: [\"HELICONE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HELICONE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-helicone-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HELICONE_TOKEN: \"$secrets.HELICONE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const heygen = {\n heygen: {\n label: \"HeyGen\",\n category: \"marketing-content-growth\",\n generation: [\"video\"],\n helpText:\n \"Connect your HeyGen account to create AI-generated videos, manage avatars, and automate video production\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [HeyGen](https://app.heygen.com)\\n2. Navigate to **Settings > API > API token**\\n3. Click to generate your API key\\n4. Copy and save the key immediately — you cannot retrieve it after leaving the page, and regenerating a new key will invalidate the previous one\",\n storage: {\n secrets: [\"HEYGEN_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HEYGEN_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-heygen-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HEYGEN_TOKEN: \"$secrets.HEYGEN_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const hitem3d = {\n hitem3d: {\n label: \"Hitem3D\",\n category: \"ai-image-video\",\n generation: [\"image\"],\n tags: [\"hi3d\", \"sparc3d\", \"ultra3d\", \"image-to-3d\", \"3d\"],\n helpText:\n \"Connect your Hitem3D account to generate 3D models from images through the Hitem3D API\",\n authMethods: {\n \"api-token\": {\n label: \"API Credentials\",\n helpText:\n \"1. Sign in to the [Hitem3D Developer Platform](https://platform.hitem3d.ai)\\n2. Purchase or enable a resource package\\n3. Open the API Key page and create an enabled API key\\n4. Copy the client ID and client secret. Paste them here.\",\n storage: {\n secrets: [\"HITEM3D_CLIENT_ID\", \"HITEM3D_CLIENT_SECRET\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HITEM3D_CLIENT_ID: {\n label: \"Client ID\",\n publicId: \"clientId\",\n required: true,\n placeholder: \"hitem3d_client_id\",\n },\n HITEM3D_CLIENT_SECRET: {\n label: \"Client Secret\",\n publicId: \"clientSecret\",\n required: true,\n placeholder: \"hitem3d_client_secret\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HITEM3D_CLIENT_ID: \"$secrets.HITEM3D_CLIENT_ID\",\n HITEM3D_CLIENT_SECRET: \"$secrets.HITEM3D_CLIENT_SECRET\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const htmlcsstoimage = {\n htmlcsstoimage: {\n label: \"HTML/CSS to Image\",\n category: \"marketing-content-growth\",\n generation: [\"image\"],\n helpText:\n \"Connect your HTML/CSS to Image account to generate images from HTML and CSS\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [HTML/CSS to Image](https://htmlcsstoimage.com/dashboard)\\n2. Go to your **Dashboard**\\n3. Locate your **User ID** and **API Key** displayed on the dashboard\\n4. Copy the **API Key** (used as the password in HTTP Basic authentication)\",\n storage: {\n secrets: [\"HCTI_API_KEY\"],\n variables: [\"HCTI_USER_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HCTI_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n HCTI_USER_ID: {\n label: \"User ID\",\n publicId: \"userId\",\n required: true,\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HCTI_API_KEY: \"$secrets.HCTI_API_KEY\",\n HCTI_USER_ID: \"$vars.HCTI_USER_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const honcho = {\n honcho: {\n label: \"Honcho\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect Honcho to add persistent memory, context, and stateful reasoning to agents\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Honcho](https://app.honcho.dev)\\n2. Open **API KEYS**\\n3. Create or copy an API key\\n4. Honcho sends this key as `Authorization: Bearer <token>`\",\n storage: {\n secrets: [\"HONCHO_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HONCHO_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"hch-v3-CoffeeSafeLocalCoffeeSafeLocalCoffeeSafe\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HONCHO_API_KEY: \"$secrets.HONCHO_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const huggingFace = {\n \"hugging-face\": {\n label: \"Hugging Face\",\n category: \"ai-general-models\",\n generation: [\"image\", \"text\"],\n helpText:\n \"Connect your Hugging Face account to access models, datasets, and inference APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Hugging Face](https://huggingface.co)\\n2. Go to **Settings → Access Tokens**\\n3. Create a new token with the required permissions\\n4. Copy the token\",\n storage: {\n secrets: [\"HUGGING_FACE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HUGGING_FACE_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"hf_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HUGGING_FACE_TOKEN: \"$secrets.HUGGING_FACE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const hume = {\n hume: {\n label: \"Hume\",\n category: \"ai-voice-audio\",\n generation: [\"audio\"],\n helpText:\n \"Connect your Hume account to access emotion AI, speech-to-speech, and expressive text-to-speech APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Hume Portal](https://app.hume.ai)\\n2. Navigate to the **API Keys** page\\n3. Copy your API key\",\n storage: {\n secrets: [\"HUME_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HUME_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HUME_TOKEN: \"$secrets.HUME_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const hunter = {\n hunter: {\n label: \"Hunter\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect Hunter to find and verify professional email addresses for outbound and prospecting\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Hunter](https://hunter.io/api-keys)\\n2. Open the **API keys** page under your account\\n3. Copy your existing key or click **Generate a new key**\\n4. Pass it as the `api_key` query parameter on every request\",\n storage: {\n secrets: [\"HUNTER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n HUNTER_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n HUNTER_TOKEN: \"$secrets.HUNTER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const imgur = {\n imgur: {\n label: \"Imgur\",\n category: \"marketing-content-growth\",\n helpText: \"Connect your Imgur account to upload, manage, and share images\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Imgur](https://imgur.com)\\n2. Go to [Register an Application](https://api.imgur.com/oauth2/addclient)\\n3. Fill in the application registration form\\n4. After registration, you will receive a **Client ID** and **Client Secret**\\n5. Copy and save both credentials\",\n storage: {\n secrets: [\"IMGUR_CLIENT_ID\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n IMGUR_CLIENT_ID: {\n label: \"Client ID\",\n publicId: \"clientId\",\n required: true,\n placeholder: \"your-imgur-client-id\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n IMGUR_CLIENT_ID: \"$secrets.IMGUR_CLIENT_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const infisical = {\n infisical: {\n label: \"Infisical\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Infisical account to fetch secrets from your projects and environments using a Token Auth identity\",\n authMethods: {\n \"api-token\": {\n label: \"Token Auth\",\n helpText:\n \"1. Log in to [Infisical](https://app.infisical.com)\\n2. Go to **Access Control > Machine Identities**\\n3. Create a new Machine Identity with **Token Auth**\\n4. Copy the **Token**\\n5. Assign the identity to your project with the desired role\",\n storage: {\n secrets: [\"INFISICAL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n INFISICAL_TOKEN: {\n label: \"Token\",\n publicId: \"token\",\n required: true,\n placeholder: \"your-infisical-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INFISICAL_TOKEN: \"$secrets.INFISICAL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const instagram = {\n instagram: {\n label: \"Instagram\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Instagram Business account to manage posts, stories, and insights\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Create a Meta app of type **Business** at [Meta for Developers](https://developers.facebook.com/apps)\\n2. In your app dashboard, click **Instagram > API setup with Instagram business login** in the left side menu\\n3. Click **Generate token** next to the Instagram account you want to access\\n4. Log into Instagram when prompted\\n5. Copy the access token\",\n storage: {\n secrets: [\"INSTAGRAM_TOKEN\"],\n variables: [\"INSTAGRAM_BUSINESS_ACCOUNT_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n INSTAGRAM_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n },\n INSTAGRAM_BUSINESS_ACCOUNT_ID: {\n label: \"Business Account ID\",\n publicId: \"accountId\",\n required: true,\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INSTAGRAM_TOKEN: \"$secrets.INSTAGRAM_TOKEN\",\n INSTAGRAM_BUSINESS_ACCOUNT_ID:\n \"$vars.INSTAGRAM_BUSINESS_ACCOUNT_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const instantly = {\n instantly: {\n label: \"Instantly\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Instantly account to manage email campaigns, leads, and outreach sequences\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Instantly](https://app.instantly.ai)\\n2. Navigate to **Settings > Integrations** at https://app.instantly.ai/app/settings/integrations\\n3. Click the **API Keys** section in the left sidebar\\n4. Click the **Create API Key** button\\n5. Enter a name for the API key\\n6. Select the scopes (permissions) you want the API key to have\\n7. Click **Create**\\n8. Copy the key and store it in a secure place (it will only be displayed once)\",\n storage: {\n secrets: [\"INSTANTLY_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n INSTANTLY_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-instantly-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INSTANTLY_API_KEY: \"$secrets.INSTANTLY_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const intercom = {\n intercom: {\n label: \"Intercom\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Intercom account to manage customer conversations, contacts, messages, and support tickets\",\n authMethods: {\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Sign up at the [Intercom Developer Hub](https://app.intercom.com/admins/sign_up/developer) on your Intercom workspace\\n2. Create a new app in the Developer Hub\\n3. Navigate to **Configure > Authentication** within your app in the [Developer Hub](https://app.intercom.io/a/apps/_/developer-hub/app-packages)\\n4. Copy your access token\",\n storage: {\n secrets: [\"INTERCOM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n INTERCOM_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n INTERCOM_TOKEN: \"$secrets.INTERCOM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const ironclad = {\n ironclad: {\n label: \"Ironclad\",\n category: \"sales-crm-business-operations\",\n tags: [\"contracts\", \"clm\", \"workflows\", \"legal\"],\n helpText:\n \"Connect your Ironclad account to manage contract workflows, records, and documents\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In Ironclad, go to **Company Settings → API**\\n2. Generate an API key and copy it\\n3. Set the API host to match your instance's data region: `ironcladapp.com` (North America), `eu1.ironcladapp.com` (Europe), or `demo.ironcladapp.com` (demo)\",\n storage: {\n secrets: [\"IRONCLAD_API_KEY\"],\n variables: [\"IRONCLAD_HOST\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n IRONCLAD_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n IRONCLAD_HOST: {\n label: \"API Host\",\n publicId: \"host\",\n required: true,\n storage: \"variable\",\n placeholder: \"ironcladapp.com\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n IRONCLAD_API_KEY: \"$secrets.IRONCLAD_API_KEY\",\n IRONCLAD_HOST: \"$vars.IRONCLAD_HOST\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const jam = {\n jam: {\n label: \"Jam\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Jam account to capture bugs, manage reports, and access debugging telemetry\",\n authMethods: {\n \"api-token\": {\n label: \"Personal Access Token\",\n helpText:\n '1. Log in to [Jam](https://jam.dev)\\n2. Go to **Settings > Integrations > AI Agents**\\n3. Scroll down to the **Personal Access Tokens** section\\n4. Click **Create token**\\n5. Enter a name for the token (e.g., \"Cursor\" or \"Claude Code\")\\n6. Choose an expiration period (7 days, 30 days, 90 days, or 1 year)\\n7. Select at least one scope (`mcp:read` for viewing or `mcp:write` for editing)\\n8. Click **Create**\\n9. Copy the token immediately (it will not be displayed again)',\n storage: {\n secrets: [\"JAM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n JAM_TOKEN: {\n label: \"Personal Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"jam_pat_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n JAM_TOKEN: \"$secrets.JAM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const jira = {\n jira: {\n label: \"Jira\",\n category: \"engineering-team-execution\",\n tags: [\"issues\", \"tickets\", \"project-management\"],\n helpText:\n \"Connect your Jira account to manage projects, issues, sprints, and workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Go to [Atlassian API token management](https://id.atlassian.com/manage-profile/security/api-tokens)\\n2. Log in to your Atlassian account\\n3. Click **Create API token**\\n4. Enter a name that describes what the token is for\\n5. Choose an expiration date (between 1 and 365 days)\\n6. Click **Create**\\n7. Click **Copy to clipboard** and save the token in a secure place (you cannot recover it later)\",\n storage: {\n secrets: [\"JIRA_API_TOKEN\"],\n variables: [\"JIRA_DOMAIN\", \"JIRA_EMAIL\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n JIRA_API_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n JIRA_DOMAIN: {\n label: \"Jira Domain\",\n publicId: \"domain\",\n required: true,\n storage: \"variable\",\n normalize: \"host\",\n placeholder: \"your-domain.atlassian.net\",\n },\n JIRA_EMAIL: {\n label: \"Jira Email\",\n publicId: \"email\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-email@example.com\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n JIRA_API_TOKEN: \"$secrets.JIRA_API_TOKEN\",\n JIRA_DOMAIN: \"$vars.JIRA_DOMAIN\",\n JIRA_EMAIL: \"$vars.JIRA_EMAIL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const jotform = {\n jotform: {\n label: \"Jotform\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Jotform account to manage forms, submissions, and automate form workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to your [Jotform account](https://www.jotform.com/myaccount/api)\\n2. Navigate to **Settings** → **API**\\n3. Click **Create New Key**\\n4. Copy your **API Key**\",\n storage: {\n secrets: [\"JOTFORM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n JOTFORM_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n JOTFORM_TOKEN: \"$secrets.JOTFORM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const klaviyo = {\n klaviyo: {\n label: \"Klaviyo\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Klaviyo account to manage profiles, lists, events, subscriptions, and campaigns\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Klaviyo](https://www.klaviyo.com/)\\n2. Go to **Account > Settings > API keys**\\n3. Click **Create Private API Key**\\n4. Grant the scopes your workflow needs (e.g. `profiles:write`, `lists:write`, `events:write`, `subscriptions:write`)\\n5. Copy the key (format: `pk_...`)\",\n storage: {\n secrets: [\"KLAVIYO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n KLAVIYO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"pk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n KLAVIYO_TOKEN: \"$secrets.KLAVIYO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const kommo = {\n kommo: {\n label: \"Kommo\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Kommo account to manage leads, contacts, and sales pipelines\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Kommo](https://www.kommo.com) and create a **private integration**\\n2. Go to the **Keys and Scopes** tab in your private integration settings\\n3. Click **Generate long-lived token**\\n4. Set the token expiration date (from 1 day to 5 years)\\n5. Copy and save the token immediately (it will only be displayed once)\",\n storage: {\n secrets: [\"KOMMO_API_KEY\"],\n variables: [\"KOMMO_SUBDOMAIN\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n KOMMO_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n KOMMO_SUBDOMAIN: {\n label: \"Subdomain\",\n publicId: \"subdomain\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-subdomain\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n KOMMO_API_KEY: \"$secrets.KOMMO_API_KEY\",\n KOMMO_SUBDOMAIN: \"$vars.KOMMO_SUBDOMAIN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const langfuse = {\n langfuse: {\n label: \"Langfuse\",\n category: \"ai-memory-tracing-eval\",\n tags: [\"observability\", \"tracing\", \"llm\", \"analytics\"],\n helpText:\n \"Connect your Langfuse project to ingest LLM traces, attach evaluate scores, and manage prompt templates\",\n authMethods: {\n \"api-token\": {\n label: \"API Keys\",\n helpText:\n \"1. Sign up at [cloud.langfuse.com](https://cloud.langfuse.com)\\n2. Create an organization and a project\\n3. In project **Settings → API Keys**, click **Create new API keys**\\n4. Copy both the **Public Key** (`pk-lf-...`) and the **Secret Key** (`sk-lf-...`) — the secret is shown only once\\n5. Paste both values into the fields below\",\n storage: {\n secrets: [\"LANGFUSE_PUBLIC_KEY\", \"LANGFUSE_SECRET_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LANGFUSE_PUBLIC_KEY: {\n label: \"Public Key\",\n publicId: \"publicKey\",\n required: true,\n placeholder: \"pk-lf-...\",\n },\n LANGFUSE_SECRET_KEY: {\n label: \"Secret Key\",\n publicId: \"secretKey\",\n required: true,\n placeholder: \"sk-lf-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n LANGFUSE_PUBLIC_KEY: \"$secrets.LANGFUSE_PUBLIC_KEY\",\n LANGFUSE_SECRET_KEY: \"$secrets.LANGFUSE_SECRET_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const langsmith = {\n langsmith: {\n label: \"LangSmith\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect to LangSmith for LLM tracing, evaluation, and dataset management.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"Go to [smith.langchain.com](https://smith.langchain.com) → Settings → API Keys → Create API Key.\",\n storage: {\n secrets: [\"LANGSMITH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LANGSMITH_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"lsv2_pt_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n LANGSMITH_TOKEN: \"$secrets.LANGSMITH_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const lark = {\n lark: {\n label: \"Lark\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Lark app to manage messages, documents, calendars, and workflows\",\n authMethods: {\n \"api-token\": {\n label: \"App Credentials\",\n helpText:\n \"1. Log in to the [Lark Developer Console](https://open.larksuite.com/app/)\\n2. Select your app from the list (or create a new one)\\n3. Go to the **Credentials & Basic Info** page\\n4. Copy your **App ID** and **App Secret**\",\n storage: {\n secrets: [\"LARK_APP_SECRET\", \"LARK_ACCESS_TOKEN\"],\n variables: [\"LARK_APP_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LARK_APP_ID: {\n label: \"App ID\",\n publicId: \"appId\",\n required: true,\n storage: \"variable\",\n },\n LARK_APP_SECRET: {\n label: \"App Secret\",\n publicId: \"appSecret\",\n required: true,\n storage: \"secret\",\n },\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n appId: \"$vars.LARK_APP_ID\",\n appSecret: \"$secrets.LARK_APP_SECRET\",\n },\n outputs: {\n accessToken: \"$secrets.LARK_ACCESS_TOKEN\",\n },\n refreshableSecrets: [\"LARK_ACCESS_TOKEN\"],\n envBindings: {\n LARK_TOKEN: \"$secrets.LARK_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const line = {\n line: {\n label: \"LINE\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your LINE account to send messages, manage channels, and access the LINE Messaging API\",\n authMethods: {\n \"api-token\": {\n label: \"Channel Access Token\",\n helpText:\n \"1. Log in to the [LINE Developers Console](https://developers.line.biz/console)\\n2. Select your provider and channel\\n3. Go to the **Messaging API** tab\\n4. Issue or copy the **Channel access token (long-lived)**\",\n storage: {\n secrets: [\"LINE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LINE_TOKEN: {\n label: \"Channel Access Token\",\n publicId: \"accessToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n LINE_TOKEN: \"$secrets.LINE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const loops = {\n loops: {\n label: \"Loops\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Loops account to send behavioral and transactional emails for your SaaS product\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Loops](https://app.loops.so)\\n2. Go to **Settings** → **API**\\n3. Click **Generate key**\\n4. Copy the generated API key\",\n storage: {\n secrets: [\"LOOPS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LOOPS_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"d2d561f5ff80136f69b4b5a31b9fb3c9\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n LOOPS_TOKEN: \"$secrets.LOOPS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const luma = {\n luma: {\n label: \"Luma\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Luma account to manage events, guests, tickets, and calendar data via the Luma API\",\n tags: [\"events\", \"calendar\", \"tickets\", \"guests\", \"rsvp\"],\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in at [lu.ma](https://lu.ma)\\n2. Go to Calendars Home → select your calendar → Settings → Developer\\n3. Generate or copy your API key\\n4. Paste the key here\",\n storage: {\n secrets: [\"LUMA_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LUMA_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-luma-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n LUMA_API_KEY: \"$secrets.LUMA_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const lumaAi = {\n \"luma-ai\": {\n label: \"Luma AI\",\n category: \"ai-image-video\",\n generation: [\"image\", \"video\"],\n helpText:\n \"Connect your Luma AI account to generate videos and images using the Dream Machine API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up at [lumalabs.ai](https://lumalabs.ai)\\n2. Go to [lumalabs.ai/dream-machine/api](https://lumalabs.ai/dream-machine/api) or account settings → API Keys\\n3. Create a new API key and copy it\\n4. Paste the key here\",\n storage: {\n secrets: [\"LUMA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n LUMA_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-luma-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n LUMA_TOKEN: \"$secrets.LUMA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const mailchimp = {\n mailchimp: {\n label: \"Mailchimp\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Mailchimp account to manage audiences, campaigns, templates, and automations\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.MailchimpConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Mailchimp to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"MAILCHIMP_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"MAILCHIMP_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"MAILCHIMP_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [],\n outputs: {\n accessToken: \"$secrets.MAILCHIMP_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MAILCHIMP_TOKEN: \"$secrets.MAILCHIMP_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Mailchimp](https://mailchimp.com)\\n2. Click your **profile icon** and select **Profile**\\n3. Click the **Extras** dropdown menu, then choose **API keys**\\n4. In the **Your API Keys** section, click **Create A Key**\\n5. Enter a descriptive name for the key\\n6. Click **Generate Key**\\n7. Click **Copy Key to Clipboard** and store it in a secure place (you will not be able to see or copy it again)\\n8. Click **Done**\",\n storage: {\n secrets: [\"MAILCHIMP_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MAILCHIMP_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-us00\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MAILCHIMP_TOKEN: \"$secrets.MAILCHIMP_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const mailsac = {\n mailsac: {\n label: \"Mailsac\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Mailsac account to manage disposable email inboxes for testing\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to [Mailsac](https://mailsac.com) and sign up for an account\\n2. Log in to your Mailsac dashboard\\n3. Navigate to [API Keys](https://mailsac.com/api-keys)\\n4. Copy your API key from the dashboard\",\n storage: {\n secrets: [\"MAILSAC_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MAILSAC_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-mailsac-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MAILSAC_TOKEN: \"$secrets.MAILSAC_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const make = {\n make: {\n label: \"Make\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Make account to manage scenarios, organizations, and automation workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Make](https://www.make.com)\\n2. Click your **avatar** at the bottom-left corner\\n3. Select **Profile**, then open the **API** tab\\n4. Click **Add token**\\n5. Enter a **Label** (custom name to identify the token)\\n6. Select the required **Scopes** (permissions)\\n7. Click **Save**\\n8. Copy the token and store it in a safe place (it will be hidden once you leave the page)\",\n storage: {\n secrets: [\"MAKE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MAKE_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MAKE_TOKEN: \"$secrets.MAKE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const manus = {\n manus: {\n label: \"Manus\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect your Manus account to run AI agent tasks, manage projects, upload files, and automate multi-step workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [Manus](https://manus.im)\\n2. Navigate to **Settings → Integration → Build with Manus API**\\n3. Click **Create New**, give it a name, and confirm\\n4. Copy the generated API key\",\n storage: {\n secrets: [\"MANUS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MANUS_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-manus-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MANUS_TOKEN: \"$secrets.MANUS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const mapbox = {\n mapbox: {\n label: \"Mapbox\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Mapbox to access geocoding, directions, isochrones, and other location APIs\",\n authMethods: {\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Log in to [Mapbox](https://account.mapbox.com)\\n2. Open the **Access tokens** page\\n3. Click **Create a token**, give it a name, and pick the scopes you need\\n4. Copy the token (format: `pk.…`) — pass it as the `access_token` query parameter\",\n storage: {\n secrets: [\"MAPBOX_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MAPBOX_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"pk....\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MAPBOX_TOKEN: \"$secrets.MAPBOX_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const massive = {\n massive: {\n label: \"Massive (Polygon.io)\",\n category: \"data-automation-infrastructure\",\n tags: [\"polygon\", \"polygon.io\", \"market data\", \"stocks\", \"forex\", \"crypto\"],\n helpText:\n \"Connect your Massive account to access stock, options, forex, crypto, indices, and market reference data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Massive](https://massive.com)\\n2. Open your dashboard and navigate to API keys\\n3. Create or copy an API key for REST API access\\n4. Copy the API key\",\n storage: {\n secrets: [\"MASSIVE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MASSIVE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-massive-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MASSIVE_TOKEN: \"$secrets.MASSIVE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const maskdb = {\n maskdb: {\n label: \"maskdb\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect maskdb to run read-only, structured queries against a masked Postgres database. Sensitive columns are returned masked and can never be used to filter, sort, group, or aggregate.\",\n authMethods: {\n \"api-token\": {\n label: \"Token\",\n helpText:\n \"1. Open your [maskdb dashboard](https://github.com/e7h4n/maskdb)\\n2. Mint a maskdb token with the `db:query` and `db:metadata` scopes (read-only). It starts with `mk_`\\n3. Paste the token here\",\n storage: {\n secrets: [\"MASKDB_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MASKDB_TOKEN: {\n label: \"Token\",\n publicId: \"token\",\n required: true,\n placeholder: \"mk_CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLoc\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MASKDB_TOKEN: \"$secrets.MASKDB_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const mathpix = {\n mathpix: {\n label: \"Mathpix\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Mathpix to convert images, PDFs, and handwriting into LaTeX, Markdown, DOCX, or structured JSON\",\n authMethods: {\n \"api-token\": {\n label: \"App ID + App Key\",\n helpText:\n \"1. Sign in to the [Mathpix Console](https://console.mathpix.com)\\n2. Open **API Keys** under your account\\n3. Copy your **app_id** and create / copy an **app_key**\\n4. Mathpix authenticates with both values sent as the `app_id` and `app_key` request headers\",\n storage: {\n secrets: [\"MATHPIX_APP_KEY\"],\n variables: [\"MATHPIX_APP_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MATHPIX_APP_KEY: {\n label: \"App Key\",\n publicId: \"appKey\",\n required: true,\n },\n MATHPIX_APP_ID: {\n label: \"App ID\",\n publicId: \"appId\",\n required: true,\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MATHPIX_APP_KEY: \"$secrets.MATHPIX_APP_KEY\",\n MATHPIX_APP_ID: \"$vars.MATHPIX_APP_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const mem0 = {\n mem0: {\n label: \"Mem0\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect to Mem0 for persistent AI memory across conversations and sessions.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"Go to [app.mem0.ai](https://app.mem0.ai) → **API Keys** → create or copy your key.\",\n storage: {\n secrets: [\"MEM0_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MEM0_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"m0-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MEM0_TOKEN: \"$secrets.MEM0_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const mercury = {\n mercury: {\n label: \"Mercury\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Mercury account to access banking and financial data\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.MercuryConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Mercury to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"MERCURY_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"MERCURY_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"MERCURY_ACCESS_TOKEN\", \"MERCURY_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"offline_access\"],\n outputs: {\n accessToken: \"$secrets.MERCURY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.MERCURY_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.MERCURY_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.MERCURY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.MERCURY_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"MERCURY_ACCESS_TOKEN\"],\n envBindings: {\n MERCURY_TOKEN: \"$secrets.MERCURY_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to your [Mercury Dashboard](https://mercury.com)\\n2. Go to **Settings → Tokens**\\n3. Generate a new API token\\n4. Copy the token\",\n storage: {\n secrets: [\"MERCURY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MERCURY_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"secret-token:mercury_production_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MERCURY_TOKEN: \"$secrets.MERCURY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const meshy = {\n meshy: {\n label: \"Meshy\",\n category: \"ai-image-video\",\n generation: [\"image\"],\n helpText:\n \"Connect your Meshy account to generate 3D assets and images with the Meshy API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [Meshy](https://www.meshy.ai)\\n2. Open the [API settings page](https://www.meshy.ai/settings/api)\\n3. Click **Create API Key**\\n4. Copy the API key. You will not be able to see it again.\",\n storage: {\n secrets: [\"MESHY_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MESHY_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"msy_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MESHY_API_KEY: \"$secrets.MESHY_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const metaAds = {\n \"meta-ads\": {\n label: \"Meta Ads\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Meta Ads Manager account to manage ad campaigns, audiences, and insights\",\n authMethods: {\n oauth: {\n showExperimentalLabel: false,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Facebook to grant access to Ads Manager.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"META_ADS_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"META_ADS_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"META_ADS_ACCESS_TOKEN\", \"META_ADS_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"ads_management\",\n \"ads_read\",\n \"business_management\",\n \"pages_manage_ads\",\n \"pages_read_engagement\",\n \"pages_show_list\",\n \"public_profile\",\n ],\n outputs: {\n accessToken: \"$secrets.META_ADS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.META_ADS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.META_ADS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.META_ADS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.META_ADS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"META_ADS_ACCESS_TOKEN\"],\n envBindings: {\n META_ADS_TOKEN: \"$secrets.META_ADS_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const metabase = {\n metabase: {\n label: \"Metabase\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Metabase instance to query data, manage dashboards, and automate analytics workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to your Metabase instance as an admin\\n2. Go to **Admin** → **Settings** → **Authentication** → **API Keys**\\n3. Click **Create API Key**\\n4. Enter a name and select a group for the key\\n5. Copy the generated API key\",\n storage: {\n secrets: [\"METABASE_TOKEN\"],\n variables: [\"METABASE_BASE_URL\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n METABASE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n METABASE_BASE_URL: {\n label: \"Base URL\",\n publicId: \"baseUrl\",\n required: true,\n placeholder: \"https://mycompany.metabaseapp.com\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n METABASE_TOKEN: \"$secrets.METABASE_TOKEN\",\n METABASE_BASE_URL: \"$vars.METABASE_BASE_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const microsoft365 = {\n \"microsoft-365\": {\n label: \"Microsoft 365\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect Microsoft 365 to access OneDrive, SharePoint, Teams, and chat data through Microsoft Graph\",\n tags: [\n \"onedrive\",\n \"sharepoint\",\n \"teams\",\n \"microsoft graph\",\n \"files\",\n \"chat\",\n ],\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.Microsoft365Connector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Microsoft to grant Microsoft Graph access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"MICROSOFT_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"MICROSOFT_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\n \"MICROSOFT_365_ACCESS_TOKEN\",\n \"MICROSOFT_365_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"User.Read\",\n \"offline_access\",\n \"Files.ReadWrite.All\",\n \"Sites.ReadWrite.All\",\n \"Team.ReadBasic.All\",\n \"Channel.ReadBasic.All\",\n \"ChannelMessage.Read.All\",\n \"ChannelMessage.Send\",\n \"Chat.ReadWrite\",\n \"ChatMessage.Send\",\n ],\n outputs: {\n accessToken: \"$secrets.MICROSOFT_365_ACCESS_TOKEN\",\n refreshToken: \"$secrets.MICROSOFT_365_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.MICROSOFT_365_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.MICROSOFT_365_ACCESS_TOKEN\",\n refreshToken: \"$secrets.MICROSOFT_365_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"MICROSOFT_365_ACCESS_TOKEN\"],\n envBindings: {\n MICROSOFT_365_TOKEN: \"$secrets.MICROSOFT_365_ACCESS_TOKEN\",\n MICROSOFT_GRAPH_TOKEN: \"$secrets.MICROSOFT_365_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const tiktokAds = {\n \"tiktok-ads\": {\n label: \"TikTok Ads\",\n category: \"marketing-content-growth\",\n tags: [\"ads\", \"advertising\", \"tiktok ads\", \"campaigns\", \"reporting\"],\n helpText:\n \"Connect your TikTok Ads Manager account to manage ad campaigns, ad groups, ads, and performance reports\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.TikTokAdsConnector,\n showExperimentalLabel: false,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with TikTok for Business to grant Ads access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"TIKTOK_ADS_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"TIKTOK_ADS_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"TIKTOK_ADS_ACCESS_TOKEN\", \"TIKTOK_ADS_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [],\n outputs: {\n accessToken: \"$secrets.TIKTOK_ADS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.TIKTOK_ADS_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.TIKTOK_ADS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.TIKTOK_ADS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.TIKTOK_ADS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"TIKTOK_ADS_ACCESS_TOKEN\"],\n envBindings: {\n TIKTOK_ADS_TOKEN: \"$secrets.TIKTOK_ADS_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const minimax = {\n minimax: {\n label: \"MiniMax\",\n category: \"ai-general-models\",\n generation: [\"audio\", \"text\", \"video\"],\n helpText:\n \"Connect your MiniMax account to access AI model APIs for text, voice, and video generation\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [MiniMax Platform](https://platform.minimax.io)\\n2. Go to **User Center > Basic Information > Interface Key**\\n3. Create a new API key\\n4. Copy the key\",\n storage: {\n secrets: [\"MINIMAX_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MINIMAX_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-minimax-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MINIMAX_TOKEN: \"$secrets.MINIMAX_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const minio = {\n minio: {\n label: \"MinIO\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your MinIO instance to manage S3-compatible object storage buckets and objects\",\n authMethods: {\n \"api-token\": {\n label: \"Access Credentials\",\n helpText:\n \"1. Log in to the MinIO Console\\n2. Navigate to the **Access Keys** section under Security and Access\\n3. Click **Create Access Key**\\n4. The system automatically generates an access key and secret key\\n5. Optionally override the auto-generated values or toggle **Restrict beyond user policy** to limit permissions\\n6. Save the secret key in a secure location (you cannot retrieve or reset it after creation)\\n7. Click **Create** to finalize\",\n storage: {\n secrets: [\"MINIO_TOKEN\", \"MINIO_SECRET_TOKEN\"],\n variables: [\"MINIO_ENDPOINT\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MINIO_TOKEN: {\n label: \"Access Key\",\n publicId: \"accessKey\",\n required: true,\n storage: \"secret\",\n },\n MINIO_SECRET_TOKEN: {\n label: \"Secret Key\",\n publicId: \"secretKey\",\n required: true,\n storage: \"secret\",\n },\n MINIO_ENDPOINT: {\n label: \"Endpoint URL\",\n publicId: \"endpoint\",\n required: true,\n placeholder: \"https://minio.example.com\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MINIO_TOKEN: \"$secrets.MINIO_TOKEN\",\n MINIO_SECRET_TOKEN: \"$secrets.MINIO_SECRET_TOKEN\",\n MINIO_ENDPOINT: \"$vars.MINIO_ENDPOINT\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const miro = {\n miro: {\n label: \"Miro\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your Miro account to create and manage boards, sticky notes, shapes, text, and other items on the visual collaboration whiteboard\",\n authMethods: {\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Go to [Miro App Settings](https://miro.com/app/settings/user-profile/apps) and click **Create new app**\\n2. Fill in the app name and description\\n3. **Important:** when asked about token expiration, select **Non-expiring access token** — this choice is permanent for the app\\n4. On the app's page, open **Permissions** and check the scopes you need (e.g. `boards:read`, `boards:write`)\\n5. Click **Install app and get OAuth token**, select your team, and copy the token\\n6. Paste the token here\",\n storage: {\n secrets: [\"MIRO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MIRO_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"non-expiring access token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MIRO_TOKEN: \"$secrets.MIRO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const mixpanel = {\n mixpanel: {\n label: \"Mixpanel\",\n category: \"data-automation-infrastructure\",\n tags: [\"analytics\", \"product-analytics\", \"events\"],\n helpText:\n \"Connect your Mixpanel project to query Insights, Funnels, JQL, raw event export, and ingest events via /import\",\n authMethods: {\n \"api-token\": {\n label: \"Service Account\",\n helpText:\n \"1. In Mixpanel, open **Organization Settings → Service Accounts** (or **Project Settings → Service Accounts**)\\n2. Click **Add Service Account**, give it a name, and choose a role (minimum **Member**); optionally set an expiration\\n3. Copy the **Username** and **Secret** immediately — the secret is only shown once\\n4. Open **Project Settings → Overview → Access Keys** and copy your **Project ID**\\n5. Paste all three values below\",\n storage: {\n secrets: [\n \"MIXPANEL_SERVICE_ACCOUNT_USERNAME\",\n \"MIXPANEL_SERVICE_ACCOUNT_SECRET\",\n ],\n variables: [\"MIXPANEL_PROJECT_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MIXPANEL_SERVICE_ACCOUNT_USERNAME: {\n label: \"Service Account Username\",\n publicId: \"serviceAccountUsername\",\n required: true,\n placeholder: \"my-sa.12ab34\",\n },\n MIXPANEL_SERVICE_ACCOUNT_SECRET: {\n label: \"Service Account Secret\",\n publicId: \"serviceAccountSecret\",\n required: true,\n },\n MIXPANEL_PROJECT_ID: {\n label: \"Project ID\",\n publicId: \"projectId\",\n required: true,\n storage: \"variable\",\n placeholder: \"1234567\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MIXPANEL_SERVICE_ACCOUNT_USERNAME:\n \"$secrets.MIXPANEL_SERVICE_ACCOUNT_USERNAME\",\n MIXPANEL_SERVICE_ACCOUNT_SECRET:\n \"$secrets.MIXPANEL_SERVICE_ACCOUNT_SECRET\",\n MIXPANEL_PROJECT_ID: \"$vars.MIXPANEL_PROJECT_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const monday = {\n monday: {\n label: \"Monday.com\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Monday.com account to manage boards, items, and workflows\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Monday.com to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"MONDAY_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"MONDAY_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"MONDAY_ACCESS_TOKEN\", \"MONDAY_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"me:read\",\n \"boards:read\",\n \"boards:write\",\n \"docs:read\",\n \"docs:write\",\n \"workspaces:read\",\n \"users:read\",\n \"account:read\",\n \"updates:read\",\n \"updates:write\",\n \"notifications:write\",\n \"assets:read\",\n \"tags:read\",\n \"teams:read\",\n ],\n outputs: {\n accessToken: \"$secrets.MONDAY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.MONDAY_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.MONDAY_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.MONDAY_ACCESS_TOKEN\",\n refreshToken: \"$secrets.MONDAY_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"MONDAY_ACCESS_TOKEN\"],\n envBindings: {\n MONDAY_TOKEN: \"$secrets.MONDAY_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const modal = {\n modal: {\n label: \"Modal\",\n category: \"data-automation-infrastructure\",\n tags: [\"sandbox\", \"sandboxes\", \"serverless\", \"gpu\", \"code-execution\"],\n helpText:\n \"Connect your Modal workspace to run serverless compute, Modal Sandboxes, functions, and volumes through the Modal SDK and CLI\",\n authMethods: {\n \"api-token\": {\n label: \"Service User Token\",\n helpText:\n \"1. Open [Modal workspace token settings](https://modal.com/settings/tokens)\\n2. Click **New Service User** or create a token for automation\\n3. Copy the `MODAL_TOKEN_ID` and `MODAL_TOKEN_SECRET` values\\n4. Optionally enter a Modal environment name.\",\n storage: {\n secrets: [\"MODAL_TOKEN_ID\", \"MODAL_TOKEN_SECRET\"],\n variables: [\"MODAL_ENVIRONMENT\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MODAL_TOKEN_ID: {\n label: \"Token ID\",\n publicId: \"tokenId\",\n required: true,\n placeholder: \"ak-CoffeeSafeLocalCoffeeSafeLocalCoffee\",\n },\n MODAL_TOKEN_SECRET: {\n label: \"Token Secret\",\n publicId: \"tokenSecret\",\n required: true,\n placeholder: \"as-CoffeeSafeLocalCoffeeSafeLocalCoffee\",\n },\n MODAL_ENVIRONMENT: {\n label: \"Environment\",\n publicId: \"environment\",\n required: false,\n placeholder: \"main\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MODAL_TOKEN_ID: \"$secrets.MODAL_TOKEN_ID\",\n MODAL_TOKEN_SECRET: \"$secrets.MODAL_TOKEN_SECRET\",\n MODAL_ENVIRONMENT: {\n valueRef: \"$vars.MODAL_ENVIRONMENT\",\n optional: true,\n },\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const moss = {\n moss: {\n label: \"Moss\",\n category: \"ai-memory-tracing-eval\",\n tags: [\"semantic-search\", \"voice\", \"rag\", \"retrieval\", \"vector\"],\n helpText:\n \"Connect Moss for real-time semantic search inside voice and conversational agents\",\n authMethods: {\n \"api-token\": {\n label: \"Project Credentials\",\n helpText:\n \"1. Sign in to [Moss](https://www.moss.dev) and open the project portal\\n2. Open **Project Settings → API Keys**\\n3. Copy the **Project ID** and **Project Key** for your project (both are required and paired)\",\n storage: {\n secrets: [\"MOSS_PROJECT_ID\", \"MOSS_PROJECT_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MOSS_PROJECT_ID: {\n label: \"Project ID\",\n publicId: \"projectId\",\n required: true,\n placeholder: \"prj_...\",\n },\n MOSS_PROJECT_KEY: {\n label: \"Project Key\",\n publicId: \"projectKey\",\n required: true,\n placeholder: \"msk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MOSS_PROJECT_ID: \"$secrets.MOSS_PROJECT_ID\",\n MOSS_PROJECT_KEY: \"$secrets.MOSS_PROJECT_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const msg9 = {\n msg9: {\n label: \"msg9\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your msg9 account to send messages, manage inboxes, contacts, lists, channels, and skills\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [msg9](https://www.msg9.io)\\n2. Go to **Settings > API Keys**\\n3. Create a new API key\\n4. Copy the key (format: `msg9_sk_...`)\",\n storage: {\n secrets: [\"MSG9_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n MSG9_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"msg9_sk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n MSG9_TOKEN: \"$secrets.MSG9_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const n8n = {\n n8n: {\n label: \"n8n\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your n8n instance to manage workflows, trigger executions, and automate processes\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Open your n8n instance\\n2. Go to **Settings** → **n8n API**\\n3. Click **Create an API key**\\n4. Copy the key and paste it below\\n5. Set your instance URL (e.g. `https://your-instance.app.n8n.cloud`)\",\n storage: {\n secrets: [\"N8N_TOKEN\"],\n variables: [\"N8N_BASE_URL\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n N8N_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"n8n_api_CoffeeSafeLocalCoffeeSafeLocalCo\",\n },\n N8N_BASE_URL: {\n label: \"Instance URL\",\n publicId: \"instanceUrl\",\n required: true,\n storage: \"variable\",\n placeholder: \"https://your-instance.app.n8n.cloud\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n N8N_TOKEN: \"$secrets.N8N_TOKEN\",\n N8N_BASE_URL: \"$vars.N8N_BASE_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const neon = {\n neon: {\n label: \"Neon\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Neon account to manage serverless Postgres databases and projects\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.NeonConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Neon to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"NEON_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"NEON_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"NEON_ACCESS_TOKEN\", \"NEON_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"openid\",\n \"offline_access\",\n \"urn:neoncloud:projects:read\",\n \"urn:neoncloud:projects:create\",\n \"urn:neoncloud:projects:update\",\n \"urn:neoncloud:projects:delete\",\n ],\n outputs: {\n accessToken: \"$secrets.NEON_ACCESS_TOKEN\",\n refreshToken: \"$secrets.NEON_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.NEON_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.NEON_ACCESS_TOKEN\",\n refreshToken: \"$secrets.NEON_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"NEON_ACCESS_TOKEN\"],\n envBindings: {\n NEON_TOKEN: \"$secrets.NEON_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Neon Console](https://console.neon.tech)\\n2. Navigate to **Account settings > API keys**\\n3. Click the button to create a new API key\\n4. Copy and store the secret token immediately (it is only displayed once)\",\n storage: {\n secrets: [\"NEON_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n NEON_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"napi_xxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n NEON_TOKEN: \"$secrets.NEON_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const netdata = {\n netdata: {\n label: \"Netdata\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Netdata Cloud account to query spaces, nodes, metric contexts, and observability data\",\n tags: [\"observability\", \"metrics\", \"monitoring\", \"alerts\"],\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Netdata Cloud](https://app.netdata.cloud)\\n2. Click your profile picture in the bottom-left corner\\n3. Select **User Settings**\\n4. Navigate to **API Tokens**\\n5. Create a token with the scopes required for your use case and copy it\",\n storage: {\n secrets: [\"NETDATA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n NETDATA_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"eyJhbGciOi...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n NETDATA_TOKEN: \"$secrets.NETDATA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const novita = {\n novita: {\n label: \"Novita AI\",\n category: \"ai-general-models\",\n generation: [\"audio\", \"image\", \"text\", \"video\"],\n helpText:\n \"Connect your Novita AI account to run LLM, image, video, and audio models through an OpenAI-compatible API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in at [novita.ai](https://novita.ai)\\n2. Open **Settings → Key Management**\\n3. Click **+ Add New Key**\\n4. Copy the key (it begins with `sk_`). Paste it here.\",\n storage: {\n secrets: [\"NOVITA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n NOVITA_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk_CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLoc\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n NOVITA_TOKEN: \"$secrets.NOVITA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const nyne = {\n nyne: {\n label: \"Nyne\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect Nyne to orchestrate AI sales agents that prospect, qualify, and book meetings\",\n authMethods: {\n \"api-token\": {\n label: \"API Credentials\",\n helpText:\n \"1. Sign in at [nyne.ai](https://nyne.ai)\\n2. Open your dashboard → **API Keys**\\n3. Copy your **API Key** and **API Secret**\\n4. Nyne authenticates each request with both `X-API-Key` and `X-API-Secret` headers on `https://api.nyne.ai`\",\n storage: {\n secrets: [\"NYNE_API_KEY\", \"NYNE_API_SECRET\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n NYNE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n NYNE_API_SECRET: {\n label: \"API Secret\",\n publicId: \"apiSecret\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n NYNE_API_KEY: \"$secrets.NYNE_API_KEY\",\n NYNE_API_SECRET: \"$secrets.NYNE_API_SECRET\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const onyx = {\n onyx: {\n label: \"Onyx\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your Onyx account to search internal knowledge bases, chat with AI agents, and index documents\",\n authMethods: {\n \"api-token\": {\n label: \"API Key / PAT\",\n helpText:\n \"1. Log in to [Onyx Cloud](https://cloud.onyx.app)\\n2. Go to **Settings → Accounts & Access**\\n3. Click **Create New Token**\\n4. Give it a name and choose an expiration\\n5. Copy the token immediately — it is shown only once\",\n storage: {\n secrets: [\"ONYX_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ONYX_TOKEN: {\n label: \"API Key or Personal Access Token\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"onyx_pat_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ONYX_TOKEN: \"$secrets.ONYX_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const openai = {\n openai: {\n label: \"OpenAI\",\n category: \"ai-general-models\",\n generation: [\"audio\", \"image\", \"text\"],\n tags: [\"llm\", \"ai\", \"gpt\", \"chatgpt\"],\n helpText:\n \"Connect your OpenAI account to access GPT models, embeddings, image generation, and other AI capabilities\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [OpenAI Platform](https://platform.openai.com)\\n2. Navigate to the [API Keys](https://platform.openai.com/api-keys) page in the dashboard\\n3. Create a new API key\\n4. Copy and store the key in a safe location\",\n storage: {\n secrets: [\"OPENAI_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n OPENAI_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n OPENAI_TOKEN: \"$secrets.OPENAI_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const openrouter = {\n openrouter: {\n label: \"OpenRouter\",\n category: \"ai-general-models\",\n generation: [\"text\"],\n helpText:\n \"Connect OpenRouter to call hundreds of LLMs through a single OpenAI-compatible API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [OpenRouter](https://openrouter.ai/keys)\\n2. Click **Create Key**, name it, and set the credit limit you want\\n3. Copy the key (format: `sk-or-v1-…`)\\n4. Use it as a Bearer token on requests to `https://openrouter.ai/api/v1/...`\",\n storage: {\n secrets: [\"OPENROUTER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n OPENROUTER_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-or-v1-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n OPENROUTER_TOKEN: \"$secrets.OPENROUTER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const openweather = {\n openweather: {\n label: \"OpenWeather\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect OpenWeather to access current weather, forecasts, and climate data via the One Call API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to [OpenWeather](https://home.openweathermap.org)\\n2. Go to **My API keys**\\n3. Copy your default key or click **Generate** to create a new one\\n4. Pass it as the `appid` query parameter on every request\",\n storage: {\n secrets: [\"OPENWEATHER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n OPENWEATHER_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n OPENWEATHER_TOKEN: \"$secrets.OPENWEATHER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const outlookCalendar = {\n \"outlook-calendar\": {\n label: \"Outlook Calendar\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Microsoft account to access and manage Outlook calendar events\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.OutlookCalendarConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Microsoft to grant Outlook Calendar access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"MICROSOFT_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"MICROSOFT_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\n \"OUTLOOK_CALENDAR_ACCESS_TOKEN\",\n \"OUTLOOK_CALENDAR_REFRESH_TOKEN\",\n ],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"Calendars.ReadWrite\", \"User.Read\", \"offline_access\"],\n outputs: {\n accessToken: \"$secrets.OUTLOOK_CALENDAR_ACCESS_TOKEN\",\n refreshToken: \"$secrets.OUTLOOK_CALENDAR_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.OUTLOOK_CALENDAR_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.OUTLOOK_CALENDAR_ACCESS_TOKEN\",\n refreshToken: \"$secrets.OUTLOOK_CALENDAR_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"OUTLOOK_CALENDAR_ACCESS_TOKEN\"],\n envBindings: {\n OUTLOOK_CALENDAR_TOKEN: \"$secrets.OUTLOOK_CALENDAR_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const outlookMail = {\n \"outlook-mail\": {\n label: \"Outlook Mail\",\n category: \"communication-collaboration\",\n helpText: \"Connect your Microsoft Outlook account to send and read emails\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.OutlookMailConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Microsoft to grant Outlook Mail access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"MICROSOFT_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"MICROSOFT_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"OUTLOOK_MAIL_ACCESS_TOKEN\", \"OUTLOOK_MAIL_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"Mail.ReadWrite\",\n \"Mail.Send\",\n \"User.Read\",\n \"offline_access\",\n ],\n outputs: {\n accessToken: \"$secrets.OUTLOOK_MAIL_ACCESS_TOKEN\",\n refreshToken: \"$secrets.OUTLOOK_MAIL_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.OUTLOOK_MAIL_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.OUTLOOK_MAIL_ACCESS_TOKEN\",\n refreshToken: \"$secrets.OUTLOOK_MAIL_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"OUTLOOK_MAIL_ACCESS_TOKEN\"],\n envBindings: {\n OUTLOOK_MAIL_TOKEN: \"$secrets.OUTLOOK_MAIL_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pandadoc = {\n pandadoc: {\n label: \"PandaDoc\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your PandaDoc account to create, send, and manage contracts, proposals, quotes, and e-signature documents\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In PandaDoc, go to **Settings > Integrations > API**\\n2. Click **Generate Production Key** (requires an API-enabled plan) or **Generate Sandbox Key** for testing\\n3. Copy the key and paste it here\\n\\nNote: Only Org Admins can generate keys. Sandbox keys work for free but signed documents have no legal validity.\",\n storage: {\n secrets: [\"PANDADOC_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PANDADOC_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your PandaDoc API key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PANDADOC_TOKEN: \"$secrets.PANDADOC_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const parallel = {\n parallel: {\n label: \"Parallel\",\n category: \"ai-agent-apps\",\n helpText:\n \"Connect Parallel to use its web search, extraction, task, FindAll, and monitor APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to [Parallel Platform](https://platform.parallel.ai)\\n2. Create or copy your API key\\n3. Use it as `PARALLEL_API_KEY`\",\n storage: {\n secrets: [\"PARALLEL_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PARALLEL_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-parallel-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PARALLEL_API_KEY: \"$secrets.PARALLEL_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pdf4me = {\n pdf4me: {\n label: \"PDF4me\",\n category: \"data-automation-infrastructure\",\n generation: [\"document\"],\n helpText:\n \"Connect your PDF4me account to convert, merge, split, compress, and manipulate PDF documents\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Register for an account at [PDF4me](https://portal.pdf4me.com) using email/password or via Google, Microsoft, Apple, or Facebook\\n2. Go to the **Billing Info** section and select **Start Free Trial**\\n3. After activation, you will be redirected to the **Dashboard**\\n4. Find and copy your API Key from the Dashboard\",\n storage: {\n secrets: [\"PDF4ME_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PDF4ME_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-pdf4me-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PDF4ME_TOKEN: \"$secrets.PDF4ME_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pdfco = {\n pdfco: {\n label: \"PDF.co\",\n category: \"data-automation-infrastructure\",\n generation: [\"document\"],\n helpText:\n \"Connect your PDF.co account to convert, merge, split, and extract data from PDF documents via API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n storage: {\n secrets: [\"PDFCO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PDFCO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-pdfco-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PDFCO_TOKEN: \"$secrets.PDFCO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pdforge = {\n pdforge: {\n label: \"PDForge\",\n category: \"data-automation-infrastructure\",\n generation: [\"document\"],\n helpText:\n \"Connect your PDForge account to generate PDF documents from templates\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Create an account on [pdforge](https://pdforge.com)\\n2. Two API keys are automatically generated when you create your account\\n3. Go to the **API Keys** menu in the sidebar to view your keys\\n4. Copy your API key and use it in the `Authorization: Bearer pdfnoodle_api_[your_key]` header\",\n storage: {\n secrets: [\"PDFORGE_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PDFORGE_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-pdforge-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PDFORGE_API_KEY: \"$secrets.PDFORGE_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const peopleDataLabs = {\n \"people-data-labs\": {\n label: \"People Data Labs\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect People Data Labs to enrich, search, identify, and clean person and company data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to your [People Data Labs dashboard](https://dashboard.peopledatalabs.com)\\n2. Open your API dashboard\\n3. Copy your API key\\n4. People Data Labs accepts it in the `X-Api-Key` header\",\n storage: {\n secrets: [\"PEOPLE_DATA_LABS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PEOPLE_DATA_LABS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-people-data-labs-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PEOPLE_DATA_LABS_API_KEY: \"$secrets.PEOPLE_DATA_LABS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const perplexity = {\n perplexity: {\n label: \"Perplexity\",\n category: \"data-automation-infrastructure\",\n generation: [\"text\"],\n helpText:\n \"Connect your Perplexity account to access AI-powered search and research capabilities via the Sonar API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n '1. Log in to the [Perplexity Console](https://console.perplexity.ai)\\n2. Navigate to the **API Groups** page and create an API group (e.g., \"Production\" or \"Development\")\\n3. Go to the **API Keys** page\\n4. Generate a new API key\\n5. Store the key immediately and securely (you will only see the full token value once)',\n storage: {\n secrets: [\"PERPLEXITY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PERPLEXITY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"pplx-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PERPLEXITY_TOKEN: \"$secrets.PERPLEXITY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connectors\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const pexels = {\n pexels: {\n label: \"Pexels\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect Pexels to search, download, and insert stock photos and videos into artifacts. Responses and artifacts should include photographer attribution and the original Pexels URL. Avoid bulk downloading or rebuilding a stock photo or wallpaper library.\",\n tags: [\"stock-photos\", \"stock-videos\", \"images\", \"media\"],\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n featureFlag: FeatureSwitchKey.PexelsConnector,\n helpText:\n \"1. Sign in to [Pexels](https://www.pexels.com)\\n2. Open the [Pexels API page](https://www.pexels.com/api/) and request or copy your API key\\n3. Paste the key here\\n\\nvm0 stores the key as a secret and automatically attaches it when calling the Pexels API. Pexels asks API users to include a prominent Pexels link and, where possible, photographer credit when displaying content. Responses and artifacts should include photographer attribution and the original Pexels URL.\",\n storage: {\n secrets: [\"PEXELS_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PEXELS_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-pexels-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PEXELS_API_KEY: \"$secrets.PEXELS_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pika = {\n pika: {\n label: \"Pika\",\n category: \"ai-image-video\",\n helpText:\n \"Connect your Pika Developer account to join video meetings (Google Meet, Zoom) as a real-time AI avatar with voice cloning\",\n authMethods: {\n \"api-token\": {\n label: \"Developer Key\",\n helpText:\n \"1. Go to [pika.me/dev](https://www.pika.me/dev/)\\n2. Sign in or create an account\\n3. Create a new Developer Key\\n4. Copy the key (format: `dk_...`)\",\n storage: {\n secrets: [\"PIKA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PIKA_TOKEN: {\n label: \"Developer Key\",\n publicId: \"developerKey\",\n required: true,\n placeholder: \"dk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PIKA_TOKEN: \"$secrets.PIKA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pinecone = {\n pinecone: {\n label: \"Pinecone\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Pinecone account for vector database operations, semantic search, and managing embeddings\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Pinecone](https://app.pinecone.io)\\n2. Go to **API Keys** in the left sidebar\\n3. Copy your default API key or create a new one\",\n storage: {\n secrets: [\"PINECONE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PINECONE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"pcsk_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PINECONE_TOKEN: \"$secrets.PINECONE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pipedream = {\n pipedream: {\n label: \"Pipedream\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Pipedream account to create workflows, manage event sources, and call the Pipedream REST API\",\n authMethods: {\n \"api-token\": {\n label: \"User API Key\",\n helpText:\n \"1. Log in to [Pipedream](https://pipedream.com)\\n2. Open **My Account → API Key** in your user settings\\n3. Copy your user API key\\n4. Pipedream sends this key as `Authorization: Bearer <api key>`\",\n storage: {\n secrets: [\"PIPEDREAM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PIPEDREAM_TOKEN: {\n label: \"User API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"pd_CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLocal\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PIPEDREAM_TOKEN: \"$secrets.PIPEDREAM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pipedrive = {\n pipedrive: {\n label: \"Pipedrive\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Pipedrive account to manage your sales pipeline — deals, contacts, organizations, activities, and notes\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In Pipedrive, click your avatar (top right) → **Personal Preferences** → **API**\\n2. Copy your personal API token\\n3. Paste it here\",\n storage: {\n secrets: [\"PIPEDRIVE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PIPEDRIVE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-pipedrive-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PIPEDRIVE_TOKEN: \"$secrets.PIPEDRIVE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const plain = {\n plain: {\n label: \"Plain\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Plain account to manage customer support threads, customers, and labels via Plain's GraphQL API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Plain](https://app.plain.com)\\n2. Go to **Settings → Machine Users**\\n3. Click **New machine user** and generate an API key\\n4. Copy the API key\",\n storage: {\n secrets: [\"PLAIN_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PLAIN_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"plainApiKey__...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PLAIN_TOKEN: \"$secrets.PLAIN_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const plausible = {\n plausible: {\n label: \"Plausible\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Plausible Analytics account to access website traffic analytics, visitor stats, and site management\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Plausible Analytics](https://plausible.io)\\n2. Go to **Account Settings** → **API Keys**\\n3. Click **New API Key** and choose **Stats API**\\n4. Copy the key (it is only shown once)\",\n storage: {\n secrets: [\"PLAUSIBLE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PLAUSIBLE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-plausible-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PLAUSIBLE_TOKEN: \"$secrets.PLAUSIBLE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const podchaser = {\n podchaser: {\n label: \"Podchaser\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Podchaser account to search podcasts, episodes, creators, and access podcast industry data\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Podchaser](https://www.podchaser.com)\\n2. Go to [Profile > Settings > API](https://www.podchaser.com/profile/settings/api) to retrieve your **API Key** and **API Secret**\\n3. Request an access token by sending a POST request to `https://api.podchaser.com/graphql` using the `requestAccessToken` mutation with `grant_type` set to `CLIENT_CREDENTIALS`, your API Key as `client_id`, and your API Secret as `client_secret`\\n4. Store the returned access token (it lasts 1 year)\",\n storage: {\n secrets: [\"PODCHASER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PODCHASER_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-podchaser-access-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PODCHASER_TOKEN: \"$secrets.PODCHASER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const posthog = {\n posthog: {\n label: \"PostHog\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your PostHog account to access product analytics, feature flags, and experiments\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.PosthogConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with PostHog to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"POSTHOG_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"POSTHOG_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"POSTHOG_ACCESS_TOKEN\", \"POSTHOG_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"openid\",\n \"profile\",\n \"email\",\n \"user:read\",\n \"project:read\",\n \"feature_flag:read\",\n \"feature_flag:write\",\n \"experiment:read\",\n \"experiment:write\",\n \"insight:read\",\n \"insight:write\",\n \"dashboard:read\",\n \"dashboard:write\",\n \"action:read\",\n \"action:write\",\n \"annotation:read\",\n \"annotation:write\",\n \"cohort:read\",\n \"cohort:write\",\n \"event_definition:read\",\n \"query:read\",\n \"survey:read\",\n \"survey:write\",\n \"error_tracking:read\",\n ],\n outputs: {\n accessToken: \"$secrets.POSTHOG_ACCESS_TOKEN\",\n refreshToken: \"$secrets.POSTHOG_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.POSTHOG_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.POSTHOG_ACCESS_TOKEN\",\n refreshToken: \"$secrets.POSTHOG_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"POSTHOG_ACCESS_TOKEN\"],\n envBindings: {\n POSTHOG_TOKEN: \"$secrets.POSTHOG_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"Personal API Key\",\n helpText:\n \"1. Log in to [PostHog](https://app.posthog.com)\\n2. Navigate to **Personal API keys** in your account settings\\n3. Click **+ Create a personal API Key**\\n4. Enter a descriptive label for the key\\n5. Choose the scopes (permissions) required for your use case\\n6. Copy the key immediately (it will not be shown again after refreshing the page)\",\n storage: {\n secrets: [\"POSTHOG_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n POSTHOG_TOKEN: {\n label: \"Personal API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"phx_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n POSTHOG_TOKEN: \"$secrets.POSTHOG_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const porkbun = {\n porkbun: {\n label: \"Porkbun\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Porkbun account to manage domains, DNS records, SSL bundles, and domain pricing through the Porkbun API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Porkbun](https://porkbun.com)\\n2. Open **Account > API Access**\\n3. Create an API key and save both the **API Key** and **Secret Key**\\n4. Enable API access for each domain you want to manage\",\n storage: {\n secrets: [\"PORKBUN_API_KEY\", \"PORKBUN_SECRET_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PORKBUN_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"pk1_...\",\n },\n PORKBUN_SECRET_API_KEY: {\n label: \"Secret Key\",\n publicId: \"secretKey\",\n required: true,\n placeholder: \"sk1_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PORKBUN_API_KEY: \"$secrets.PORKBUN_API_KEY\",\n PORKBUN_SECRET_API_KEY: \"$secrets.PORKBUN_SECRET_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const printful = {\n printful: {\n label: \"Printful\",\n category: \"data-automation-infrastructure\",\n tags: [\"ecommerce\", \"fulfillment\", \"products\", \"orders\"],\n helpText:\n \"Connect your Printful account to manage catalog data, products, orders, stores, and fulfillment workflows through the Printful API\",\n authMethods: {\n \"api-token\": {\n label: \"Private Token\",\n helpText:\n \"1. Log in to the [Printful Developer Portal](https://developers.printful.com/)\\n\" +\n \"2. Generate a **Private Token** with the scopes your workflow needs\\n\" +\n \"3. Copy the token and use it as a Bearer token\\n\\n\" +\n \"For account-level Private Tokens, Printful requires an `X-PF-Store-Id` header on store-scoped requests.\",\n storage: {\n secrets: [\"PRINTFUL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PRINTFUL_TOKEN: {\n label: \"Private Token\",\n publicId: \"token\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PRINTFUL_TOKEN: \"$secrets.PRINTFUL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const prismaPostgres = {\n \"prisma-postgres\": {\n label: \"Prisma Postgres\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Prisma Postgres database to manage schemas, run queries, and access data through Prisma's serverless database platform\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Prisma Console](https://console.prisma.io)\\n2. Go to your workspace **Settings** page\\n3. Select **Service Tokens**\\n4. Click **New Service Token**\\n5. Copy and save the generated service token securely\",\n storage: {\n secrets: [\"PRISMA_POSTGRES_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PRISMA_POSTGRES_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"eyJhbGci...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PRISMA_POSTGRES_TOKEN: \"$secrets.PRISMA_POSTGRES_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const profound = {\n profound: {\n label: \"Profound\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Profound account to access AI search visibility, citations, sentiment, fanout, prompt, agent, and Agent Analytics data\",\n tags: [\n \"aeo\",\n \"geo\",\n \"ai search\",\n \"answer engine optimization\",\n \"citations\",\n \"sentiment\",\n \"visibility\",\n ],\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Profound](https://platform.tryprofound.com)\\n2. Open **Settings** from the user menu\\n3. Select **API Keys** in the sidebar\\n4. Enter a key name and expiration date\\n5. Click **Create API Key**\\n6. Copy the generated key immediately (it will not be shown again)\",\n storage: {\n secrets: [\"PROFOUND_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PROFOUND_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-profound-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PROFOUND_API_KEY: \"$secrets.PROFOUND_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const productlane = {\n productlane: {\n label: \"Productlane\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Productlane account to manage feedback, insights, changelogs, and customer data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n storage: {\n secrets: [\"PRODUCTLANE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PRODUCTLANE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-productlane-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PRODUCTLANE_TOKEN: \"$secrets.PRODUCTLANE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const pushinator = {\n pushinator: {\n label: \"Pushinator\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Pushinator account to send push notifications to mobile devices\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n storage: {\n secrets: [\"PUSHINATOR_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n PUSHINATOR_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-pushinator-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n PUSHINATOR_TOKEN: \"$secrets.PUSHINATOR_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const qdrant = {\n qdrant: {\n label: \"Qdrant\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Qdrant account to store, search, and manage vector embeddings\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Qdrant Cloud](https://cloud.qdrant.io)\\n2. Open your cluster's detail page and go to **API Keys**\\n3. Click **Create** and configure your key\\n4. Copy the key (shown only once)\",\n storage: {\n secrets: [\"QDRANT_TOKEN\"],\n variables: [\"QDRANT_BASE_URL\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n QDRANT_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-qdrant-api-key\",\n },\n QDRANT_BASE_URL: {\n label: \"Cluster URL\",\n publicId: \"clusterUrl\",\n required: true,\n placeholder: \"https://your-cluster.region.cloud.qdrant.io:6333\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n QDRANT_TOKEN: \"$secrets.QDRANT_TOKEN\",\n QDRANT_BASE_URL: \"$vars.QDRANT_BASE_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const quickbooks = {\n quickbooks: {\n label: \"QuickBooks\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect QuickBooks Online to access accounting data, customers, invoices, bills, and reports\",\n tags: [\"accounting\", \"finance\", \"invoices\", \"intuit\", \"qbo\"],\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.QuickBooksConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Intuit to grant QuickBooks Online access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"QUICKBOOKS_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"QUICKBOOKS_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"QUICKBOOKS_ACCESS_TOKEN\", \"QUICKBOOKS_REFRESH_TOKEN\"],\n variables: [\"QUICKBOOKS_REALM_ID\"],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"com.intuit.quickbooks.accounting\",\n \"openid\",\n \"profile\",\n \"email\",\n ],\n outputs: {\n accessToken: \"$secrets.QUICKBOOKS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.QUICKBOOKS_REFRESH_TOKEN\",\n realmId: \"$vars.QUICKBOOKS_REALM_ID\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.QUICKBOOKS_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.QUICKBOOKS_ACCESS_TOKEN\",\n refreshToken: \"$secrets.QUICKBOOKS_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"QUICKBOOKS_ACCESS_TOKEN\"],\n envBindings: {\n QUICKBOOKS_TOKEN: \"$secrets.QUICKBOOKS_ACCESS_TOKEN\",\n QUICKBOOKS_REALM_ID: \"$vars.QUICKBOOKS_REALM_ID\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const qiita = {\n qiita: {\n label: \"Qiita\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Qiita account to search, read, and publish technical articles\",\n authMethods: {\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Log in to [Qiita](https://qiita.com)\\n2. Go to **Settings > Applications**\\n3. Create a new access token with the desired scopes (e.g., `read_qiita`, `write_qiita`)\\n4. Copy the generated token\\n5. Use it in API requests with the header `Authorization: Bearer [your_token]`\",\n storage: {\n secrets: [\"QIITA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n QIITA_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"your-qiita-access-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n QIITA_TOKEN: \"$secrets.QIITA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const railway = {\n railway: {\n label: \"Railway\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Railway account to manage projects, services, deployments, environments, and variables across every workspace your token can see\",\n authMethods: {\n \"api-token\": {\n label: \"Account or Workspace Token\",\n helpText:\n \"1. Log in to [Railway](https://railway.com)\\n2. Open your account or workspace **Settings → Tokens**\\n3. Click **Create New Token**, name it, and (for workspace tokens) pick the workspace\\n4. Copy the token (UUID v4 format)\\n\\nUse this connector for cross-project automation. For a single project, use the **Railway Project** connector instead.\",\n storage: {\n secrets: [\"RAILWAY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RAILWAY_TOKEN: {\n label: \"Account/Workspace Token\",\n publicId: \"workspaceToken\",\n required: true,\n placeholder: \"00000000-0000-0000-0000-000000000000\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RAILWAY_TOKEN: \"$secrets.RAILWAY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const railwayProject = {\n \"railway-project\": {\n label: \"Railway Project\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect a single Railway project with a project-scoped token for tighter blast radius (redeploys, variable management, deployment status inside one project/environment)\",\n authMethods: {\n \"api-token\": {\n label: \"Project Token\",\n helpText:\n \"1. Log in to [Railway](https://railway.com) and open the target project\\n2. Go to **Project Settings → Tokens**\\n3. Click **Create Token**, pick the environment, and name it\\n4. Copy the token (UUID v4 format)\\n\\nThis token is sent via the `Project-Access-Token` header and is bound to one environment in one project. For cross-project automation use the **Railway** connector instead.\",\n storage: {\n secrets: [\"RAILWAY_PROJECT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RAILWAY_PROJECT_TOKEN: {\n label: \"Project Token\",\n publicId: \"projectToken\",\n required: true,\n placeholder: \"00000000-0000-0000-0000-000000000000\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RAILWAY_PROJECT_TOKEN: \"$secrets.RAILWAY_PROJECT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const reap = {\n reap: {\n label: \"Reap\",\n category: \"sales-crm-business-operations\",\n tags: [\n \"fintech\",\n \"embedded-finance\",\n \"cards\",\n \"wallets\",\n \"payments\",\n \"compliance\",\n ],\n helpText:\n \"Connect your Reap project to manage users, companies, accounts, cards, virtual assets, activities, and reconciliations\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Contact the Reap team to obtain an API key for your project\\n2. Choose the matching API base URL for the key environment: `https://sandbox.api.reap.global/v1` or `https://prod.api.reap.global/v1`\\n3. Copy the API key\",\n storage: {\n secrets: [\"REAP_API_KEY\"],\n variables: [\"REAP_API_BASE_URL\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n REAP_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"YOUR_REAP_API_KEY\",\n },\n REAP_API_BASE_URL: {\n label: \"API Base URL\",\n publicId: \"apiBaseUrl\",\n required: true,\n placeholder: \"https://sandbox.api.reap.global/v1\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n REAP_API_KEY: \"$secrets.REAP_API_KEY\",\n REAP_API_BASE_URL: \"$vars.REAP_API_BASE_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const reddit = {\n reddit: {\n label: \"Reddit\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Reddit account to access Reddit discussions and content\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.RedditConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Reddit to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"REDDIT_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"REDDIT_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"REDDIT_ACCESS_TOKEN\", \"REDDIT_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"identity\", \"read\"],\n outputs: {\n accessToken: \"$secrets.REDDIT_ACCESS_TOKEN\",\n refreshToken: \"$secrets.REDDIT_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.REDDIT_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.REDDIT_ACCESS_TOKEN\",\n refreshToken: \"$secrets.REDDIT_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"REDDIT_ACCESS_TOKEN\"],\n envBindings: {\n REDDIT_TOKEN: \"$secrets.REDDIT_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const reducto = {\n reducto: {\n label: \"Reducto\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Reducto to parse, OCR, and chunk PDFs, scans, and complex documents into structured JSON\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in to the [Reducto Platform](https://platform.reducto.ai)\\n2. Open **Settings → API Keys**\\n3. Click **Create Key**, name it, and copy the value\\n4. Use it as a Bearer token on requests to `https://platform.reducto.ai`\",\n storage: {\n secrets: [\"REDUCTO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n REDUCTO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n REDUCTO_TOKEN: \"$secrets.REDUCTO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const recraft = {\n recraft: {\n label: \"Recraft\",\n category: \"ai-image-video\",\n generation: [\"image\"],\n helpText:\n \"Connect your Recraft account to generate, edit, and vectorize images with the Recraft API\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Sign in to [Recraft](https://app.recraft.ai)\\n2. Open your profile\\n3. Copy your API token\\n4. Paste it here.\",\n storage: {\n secrets: [\"RECRAFT_API_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RECRAFT_API_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RECRAFT_API_TOKEN: \"$secrets.RECRAFT_API_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const render = {\n render: {\n label: \"Render\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Render account to manage services, deploys, environment groups, projects, custom domains, logs, metrics, and account settings\",\n tags: [\"paas\", \"deployments\", \"hosting\", \"services\"],\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Render](https://dashboard.render.com)\\n2. Open **Account Settings > API Keys**\\n3. Create a new API key\\n4. Copy the API key immediately; Render only displays it in full when it is created\\n\\nRender API keys can access every workspace and service available to your Render account.\",\n storage: {\n secrets: [\"RENDER_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RENDER_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RENDER_API_KEY: \"$secrets.RENDER_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const replicate = {\n replicate: {\n label: \"Replicate\",\n category: \"ai-image-video\",\n generation: [\"image\", \"text\"],\n helpText:\n \"Connect your Replicate account to run open-source ML models for image generation, text generation, and more\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Sign up at [replicate.com](https://replicate.com)\\n2. Click your avatar → **API Tokens**\\n3. Click **Create token**, give it a name\\n4. Copy the token (starts with `r8_`)\\n5. Paste it here\",\n storage: {\n secrets: [\"REPLICATE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n REPLICATE_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"r8_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n REPLICATE_TOKEN: \"$secrets.REPLICATE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const reportei = {\n reportei: {\n label: \"Reportei\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Reportei account to generate and manage marketing reports with automated analytics\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Reportei](https://app.reportei.com)\\n2. Go to **Company Settings** (Configurações da Empresa)\\n3. Navigate to the **API Reportei** section\\n4. Click **Generate new token** or copy your existing token\",\n storage: {\n secrets: [\"REPORTEI_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n REPORTEI_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-reportei-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n REPORTEI_TOKEN: \"$secrets.REPORTEI_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const resend = {\n resend: {\n label: \"Resend\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Resend account to send transactional emails, manage domains, audiences, and contacts\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Resend](https://resend.com)\\n2. Navigate to the [API Keys](https://resend.com/api-keys) page\\n3. Click **Create API Key**\\n4. Enter a name for your key (up to 50 characters)\\n5. Select the permission level: **Full access** or **Sending access**\\n6. If choosing sending access, select which domain the key can access\\n7. Copy the generated API key\",\n storage: {\n secrets: [\"RESEND_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RESEND_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"re_xxxxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RESEND_TOKEN: \"$secrets.RESEND_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const rentcast = {\n rentcast: {\n label: \"RentCast\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your RentCast account to retrieve US property records, listings, valuations, rent estimates, and market data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [RentCast API dashboard](https://app.rentcast.io/app/api)\\n2. Click **Create API Key**\\n3. Copy the generated API key\",\n storage: {\n secrets: [\"RENTCAST_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RENTCAST_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-rentcast-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RENTCAST_API_KEY: \"$secrets.RENTCAST_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const revenuecat = {\n revenuecat: {\n label: \"RevenueCat\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your RevenueCat account to manage in-app subscriptions, purchases, and customer data\",\n authMethods: {\n \"api-token\": {\n label: \"Secret API Key\",\n helpText:\n \"1. Log in to [RevenueCat](https://app.revenuecat.com)\\n2. Navigate to the **API keys** section in your project dashboard\\n3. Public API keys are automatically created when you add an app to your project\\n4. To create a secret API key, click **+ New secret API key** in the API keys section\\n5. Copy and store the key securely (never embed secret keys in client-side code)\",\n storage: {\n secrets: [\"REVENUECAT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n REVENUECAT_TOKEN: {\n label: \"Secret API Key\",\n publicId: \"secretApiKey\",\n required: true,\n placeholder: \"sk_xxxxxxxxxxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n REVENUECAT_TOKEN: \"$secrets.REVENUECAT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const runway = {\n runway: {\n label: \"Runway\",\n category: \"ai-image-video\",\n generation: [\"video\"],\n helpText:\n \"Connect your Runway account to generate AI videos from images, text, or video inputs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up for an account in the [Runway Developer Portal](https://dev.runwayml.com/)\\n2. After signing up, create a new organization\\n3. Click to the **API Keys** tab\\n4. Create a new key, giving it a descriptive name\\n5. Copy the key immediately and store it in a safe place — it will only be shown once\",\n storage: {\n secrets: [\"RUNWAY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n RUNWAY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-runway-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n RUNWAY_TOKEN: \"$secrets.RUNWAY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const salesforce = {\n salesforce: {\n label: \"Salesforce\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Salesforce account to manage CRM data, contacts, leads, and sales workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n storage: {\n secrets: [\"SALESFORCE_TOKEN\"],\n variables: [\"SALESFORCE_INSTANCE\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SALESFORCE_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"00D...\",\n },\n SALESFORCE_INSTANCE: {\n label: \"Instance\",\n publicId: \"instance\",\n required: true,\n placeholder: \"mycompany\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SALESFORCE_TOKEN: \"$secrets.SALESFORCE_TOKEN\",\n SALESFORCE_INSTANCE: \"$vars.SALESFORCE_INSTANCE\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const scrapeninja = {\n scrapeninja: {\n label: \"ScrapeNinja\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your ScrapeNinja account to scrape web pages with Chrome TLS fingerprint and JS rendering\",\n authMethods: {\n \"api-token\": {\n label: \"RapidAPI Key\",\n storage: {\n secrets: [\"SCRAPENINJA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SCRAPENINJA_TOKEN: {\n label: \"RapidAPI Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SCRAPENINJA_TOKEN: \"$secrets.SCRAPENINJA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const segment = {\n segment: {\n label: \"Segment\",\n category: \"data-automation-infrastructure\",\n tags: [\"cdp\", \"analytics\", \"events\", \"tracking\", \"sources\", \"destinations\"],\n helpText:\n \"Connect your Segment workspace to manage sources, destinations, tracking plans, and data pipeline configuration through the Public API\",\n authMethods: {\n \"api-token\": {\n label: \"Public API Token\",\n helpText:\n \"1. Log in to [Segment](https://app.segment.com)\\n2. Open the workspace you want to manage\\n3. Create a Public API token with the permissions required for your workflow\\n4. Copy the token\",\n storage: {\n secrets: [\"SEGMENT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SEGMENT_TOKEN: {\n label: \"Public API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-segment-public-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SEGMENT_TOKEN: \"$secrets.SEGMENT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const semrush = {\n semrush: {\n label: \"Semrush\",\n category: \"marketing-content-growth\",\n tags: [\n \"seo\",\n \"search marketing\",\n \"keyword research\",\n \"traffic analytics\",\n \"competitive intelligence\",\n ],\n helpText:\n \"Connect your Semrush account to access SEO, keyword, domain, traffic, and competitive research data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [Semrush](https://www.semrush.com)\\n2. Click your profile icon in the top-right corner\\n3. Select **Subscription info**, then open the **API Units** tab\\n4. Copy your API key\",\n storage: {\n secrets: [\"SEMRUSH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SEMRUSH_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-semrush-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SEMRUSH_TOKEN: \"$secrets.SEMRUSH_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const sendgrid = {\n sendgrid: {\n label: \"SendGrid\",\n category: \"marketing-content-growth\",\n tags: [\"email\", \"transactional\", \"marketing\", \"twilio\"],\n helpText:\n \"Connect your Twilio SendGrid account to send transactional and marketing email, manage templates, contacts, and suppressions\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [SendGrid](https://app.sendgrid.com) and open **Settings > API Keys**\\n2. Click **Create API Key**, name it (e.g. `vm0`), and pick **Full Access** or a scoped permission set covering Mail Send, Templates, and Suppressions\\n3. Click **Create & View** and copy the API key — it is shown only once\\n4. Paste the key below (starts with `SG.`)\",\n storage: {\n secrets: [\"SENDGRID_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SENDGRID_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"SG.xxxxxxxxxxxxxxxxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SENDGRID_TOKEN: \"$secrets.SENDGRID_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const serpapi = {\n serpapi: {\n label: \"SerpApi\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your SerpApi account to search Google, Bing, YouTube and other search engines programmatically\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to [SerpApi](https://serpapi.com) and sign up for an account (free plan available with 250 searches/month)\\n2. Log in and go to your [Dashboard](https://serpapi.com/dashboard)\\n3. Your API key is displayed on the dashboard\\n4. Copy the API key\",\n storage: {\n secrets: [\"SERPAPI_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SERPAPI_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-serpapi-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SERPAPI_TOKEN: \"$secrets.SERPAPI_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const servicenow = {\n servicenow: {\n label: \"ServiceNow\",\n category: \"engineering-team-execution\",\n tags: [\"itsm\", \"incident\", \"change-request\", \"cmdb\", \"now-platform\"],\n helpText:\n \"Connect your ServiceNow instance to query and update incidents, change requests, the CMDB, and any other table via the Table API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In ServiceNow, create (or pick) a dedicated service user with the roles the integration needs — `itil` for incident/change, `cmdb_read` for CMDB, etc.\\n2. Set a password on that user under **User Administration → Users**\\n3. Enter the username, password, and your ServiceNow instance subdomain — the prefix of `https://<subdomain>.service-now.com`\",\n storage: {\n secrets: [\"SERVICENOW_USERNAME\", \"SERVICENOW_PASSWORD\"],\n variables: [\"SERVICENOW_INSTANCE\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SERVICENOW_USERNAME: {\n label: \"Username\",\n publicId: \"username\",\n required: true,\n placeholder: \"service-account-user\",\n },\n SERVICENOW_PASSWORD: {\n label: \"Password\",\n publicId: \"password\",\n required: true,\n placeholder: \"service-account-password\",\n },\n SERVICENOW_INSTANCE: {\n label: \"Instance\",\n publicId: \"instance\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-subdomain\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SERVICENOW_USERNAME: \"$secrets.SERVICENOW_USERNAME\",\n SERVICENOW_PASSWORD: \"$secrets.SERVICENOW_PASSWORD\",\n SERVICENOW_INSTANCE: \"$vars.SERVICENOW_INSTANCE\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const shopify = {\n shopify: {\n label: \"Shopify\",\n category: \"data-automation-infrastructure\",\n tags: [\"ecommerce\", \"store\", \"products\", \"orders\"],\n helpText:\n \"Connect your Shopify store to manage products, orders, customers, and inventory through the Admin API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In your Shopify admin, go to **Settings → Apps and sales channels → Develop apps**\\n2. Click **Create an app**, name it (e.g. `vm0`), and open it\\n3. Under **Configuration → Admin API integration**, grant the scopes you need (e.g. `read_products`, `read_orders`)\\n4. Click **Install app** and then **Reveal token once** — copy the Admin API access token (starts with `shpat_`)\\n5. For the **Store subdomain** below, enter only the subdomain of your `.myshopify.com` URL (for `acme.myshopify.com` enter `acme`)\",\n storage: {\n secrets: [\"SHOPIFY_TOKEN\"],\n variables: [\"SHOPIFY_SHOP\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SHOPIFY_TOKEN: {\n label: \"Admin API Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"shpat_...\",\n },\n SHOPIFY_SHOP: {\n label: \"Store Subdomain\",\n publicId: \"subdomain\",\n required: true,\n storage: \"variable\",\n placeholder: \"acme\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SHOPIFY_TOKEN: \"$secrets.SHOPIFY_TOKEN\",\n SHOPIFY_SHOP: \"$vars.SHOPIFY_SHOP\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const shortio = {\n shortio: {\n label: \"Short.io\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Short.io account to create and manage short links and track click analytics\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Short.io](https://short.io) Dashboard\\n2. Navigate to **Integrations and API**\\n3. Click on **Create API key**\\n4. Leave the **Public key** option disabled to create a private (secret) key\\n5. Restrict the scope of the key to a specific team or domain\\n6. Click **Create**\\n7. Copy the key and store it in a safe place — secret keys cannot be recovered\",\n storage: {\n secrets: [\"SHORTIO_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SHORTIO_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-shortio-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SHORTIO_TOKEN: \"$secrets.SHORTIO_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const similarweb = {\n similarweb: {\n label: \"SimilarWeb\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your SimilarWeb account to access website traffic analytics, competitive intelligence, and market insights\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to the [Similarweb platform](https://pro.similarweb.com/) (admin access required)\\n2. From the main menu on the left, select **Settings & Help**, then select **Account**\\n3. Under **Data Tools**, select either **REST API** or **Batch API**\\n4. Click **Generate a New API Key** on the right\\n5. Type the name of the API key, then select whether this is for yourself or another user\\n6. Click **Create** — your key will be displayed in the Generated Keys table\\n7. In the Generated Keys table, ensure the **Activation** toggle is on for the relevant API key\",\n storage: {\n secrets: [\"SIMILARWEB_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SIMILARWEB_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-similarweb-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SIMILARWEB_TOKEN: \"$secrets.SIMILARWEB_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const slackWebhook = {\n \"slack-webhook\": {\n label: \"Slack Webhook\",\n category: \"communication-collaboration\",\n helpText: \"Connect a Slack incoming webhook to send messages to channels\",\n authMethods: {\n \"api-token\": {\n label: \"Webhook URL\",\n helpText:\n \"1. Create a [Slack app](https://api.slack.com/apps) (or use an existing one), choosing a workspace to associate it with\\n2. From the app settings page, select **Incoming Webhooks**\\n3. Toggle **Activate Incoming Webhooks** to on\\n4. Click **Add New Webhook to Workspace**\\n5. Pick a channel for the app to post to, then click **Authorize**\\n6. Copy the webhook URL from the **Webhook URLs for Your Workspace** section (it will look like `https://hooks.slack.com/services/T.../B.../XXXX...`)\",\n storage: {\n secrets: [\"SLACK_WEBHOOK_URL\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SLACK_WEBHOOK_URL: {\n label: \"Webhook URL\",\n publicId: \"url\",\n required: true,\n placeholder: \"https://hooks.slack.com/services/xxx/xxx/xxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SLACK_WEBHOOK_URL: \"$secrets.SLACK_WEBHOOK_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const snowflake = {\n snowflake: {\n label: \"Snowflake\",\n category: \"data-automation-infrastructure\",\n tags: [\"data-warehouse\", \"warehouse\", \"sql\", \"analytics\", \"database\"],\n helpText:\n \"Connect your Snowflake account to run SQL statements and call Snowflake REST APIs for databases, schemas, tables, warehouses, and account metadata\",\n authMethods: {\n \"api-token\": {\n label: \"Programmatic Access Token\",\n helpText:\n \"1. In Snowflake, generate a programmatic access token for the user or service user that should own the connection\\n2. Copy the generated token secret when Snowflake displays it\\n3. Enter your Snowflake account identifier, for example `myorganization-myaccount` from `https://myorganization-myaccount.snowflakecomputing.com`\",\n storage: {\n secrets: [\"SNOWFLAKE_PAT\"],\n variables: [\"SNOWFLAKE_ACCOUNT\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SNOWFLAKE_PAT: {\n label: \"Programmatic Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"your-snowflake-pat\",\n },\n SNOWFLAKE_ACCOUNT: {\n label: \"Account Identifier\",\n publicId: \"accountId\",\n required: true,\n placeholder: \"myorganization-myaccount\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SNOWFLAKE_PAT: \"$secrets.SNOWFLAKE_PAT\",\n SNOWFLAKE_ACCOUNT: \"$vars.SNOWFLAKE_ACCOUNT\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const sociavault = {\n sociavault: {\n label: \"SociaVault\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect SociaVault to extract public social media, ad library, and Google Search data\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up or log in to the [SociaVault Dashboard](https://sociavault.com)\\n2. Copy your API key\\n3. SociaVault authenticates requests with the `X-API-Key` header\",\n storage: {\n secrets: [\"SOCIAVAULT_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SOCIAVAULT_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SOCIAVAULT_TOKEN: \"$secrets.SOCIAVAULT_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const sponge = {\n sponge: {\n label: \"Sponge\",\n category: \"sales-crm-business-operations\",\n tags: [\"wallet\", \"payments\", \"agent-economy\", \"x402\", \"mpp\", \"crypto\"],\n helpText:\n \"Connect Sponge to give agents wallets, cards, bank accounts, and pay x402 / MPP endpoints\",\n authMethods: {\n \"api-token\": {\n label: \"Master API Key\",\n helpText:\n \"1. Sign in to the [Sponge Wallet dashboard](https://wallet.paysponge.com)\\n2. Open **Settings → Master API Keys**\\n3. Click **Create master key**, name it, and copy the value (prefix `sponge_master_...`)\\n\\nThe master key is the platform credential. Sponge agent runtime keys are minted on demand through it — store the master key once and never embed it in agent traffic.\",\n storage: {\n secrets: [\"SPONGE_MASTER_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SPONGE_MASTER_KEY: {\n label: \"Master API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sponge_master_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SPONGE_MASTER_KEY: \"$secrets.SPONGE_MASTER_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const sproutgigs = {\n sproutgigs: {\n label: \"SproutGigs\",\n category: \"marketing-content-growth\",\n tags: [\n \"microtasks\",\n \"jobs\",\n \"gigs\",\n \"freelancers\",\n \"crowdsourcing\",\n \"picoworkers\",\n ],\n helpText:\n \"Connect SproutGigs to manage buyer jobs, gigs, freelancer lists, profiles, balances, and task reviews through the SproutGigs API\",\n authMethods: {\n \"api-token\": {\n label: \"API Secret\",\n helpText:\n \"1. Log in to [SproutGigs](https://sproutgigs.com)\\n2. Open **Account Settings** and go to the **Settings** tab\\n3. Create or reset your API secret\\n4. Enter your SproutGigs user ID and API secret. SproutGigs signs requests with HTTP Basic Auth using `USER_ID:API_SECRET`.\",\n storage: {\n secrets: [\"SPROUTGIGS_API_SECRET\"],\n variables: [\"SPROUTGIGS_USER_ID\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SPROUTGIGS_USER_ID: {\n label: \"User ID\",\n publicId: \"userId\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-user-id\",\n },\n SPROUTGIGS_API_SECRET: {\n label: \"API Secret\",\n publicId: \"apiSecret\",\n required: true,\n placeholder: \"your-sproutgigs-api-secret\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SPROUTGIGS_USER_ID: \"$vars.SPROUTGIGS_USER_ID\",\n SPROUTGIGS_API_SECRET: \"$secrets.SPROUTGIGS_API_SECRET\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const square = {\n square: {\n label: \"Square\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Square account to manage payments, refunds, orders, customers, catalog, invoices, and inventory\",\n authMethods: {\n \"api-token\": {\n label: \"Access Token\",\n helpText:\n \"1. Sign in to the [Square Developer Console](https://developer.squareup.com/apps)\\n2. Open (or create) an application\\n3. In the left pane, choose **Credentials**\\n4. At the top of the page, select **Production**\\n5. Copy the **Production Access token** (format: `EAAA...`)\",\n storage: {\n secrets: [\"SQUARE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SQUARE_TOKEN: {\n label: \"Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"EAAA...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SQUARE_TOKEN: \"$secrets.SQUARE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const stabilityAi = {\n \"stability-ai\": {\n label: \"Stability AI\",\n category: \"ai-image-video\",\n generation: [\"image\"],\n helpText:\n \"Connect your Stability AI account to generate images using Stable Diffusion models\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up at [platform.stability.ai](https://platform.stability.ai)\\n2. Go to **Account → API Keys → Create API Key**\\n3. Copy the key (starts with `sk-`). Paste here. Free credits on signup.\",\n storage: {\n secrets: [\"STABILITY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n STABILITY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n STABILITY_TOKEN: \"$secrets.STABILITY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const strapi = {\n strapi: {\n label: \"Strapi\",\n category: \"docs-files-knowledge\",\n helpText:\n \"Connect your Strapi CMS to manage content types, entries, and media via Strapi's REST API\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to your Strapi admin panel\\n2. Go to **Settings → API Tokens**\\n3. Click **Create new API Token**\\n4. Enter a name, select a token duration, and choose a token type (Full Access or Custom)\\n5. Click **Save** and copy the generated token\",\n storage: {\n secrets: [\"STRAPI_TOKEN\"],\n variables: [\"STRAPI_BASE_URL\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n STRAPI_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n },\n STRAPI_BASE_URL: {\n label: \"Base URL\",\n publicId: \"baseUrl\",\n required: true,\n placeholder: \"https://your-strapi.example.com\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n STRAPI_TOKEN: \"$secrets.STRAPI_TOKEN\",\n STRAPI_BASE_URL: \"$vars.STRAPI_BASE_URL\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const streak = {\n streak: {\n label: \"Streak\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Streak account to manage CRM pipelines, contacts, and deals inside Gmail\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Install the Streak extension and navigate to [Gmail](https://mail.google.com)\\n2. Click on the Streak icon in the right sidebar\\n3. Select the **Integrations** button\\n4. Under the **Streak API** section, click **Create New Key**\\n5. Copy and store the API key securely\",\n storage: {\n secrets: [\"STREAK_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n STREAK_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-streak-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n STREAK_TOKEN: \"$secrets.STREAK_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const stripe = {\n stripe: {\n label: \"Stripe\",\n category: \"data-automation-infrastructure\",\n tags: [\"payments\", \"billing\", \"checkout\"],\n helpText:\n \"Connect your Stripe account to manage payments, customers, and subscriptions\",\n authMethods: {\n oauth: {\n showExperimentalLabel: false,\n label: \"Sign in with Stripe\",\n helpText: \"Sign in with Stripe to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"STRIPE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"STRIPE_SECRET_KEY\",\n },\n storage: {\n secrets: [\"STRIPE_ACCESS_TOKEN\", \"STRIPE_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\"read_write\"],\n outputs: {\n accessToken: \"$secrets.STRIPE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.STRIPE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.STRIPE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.STRIPE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.STRIPE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"STRIPE_ACCESS_TOKEN\"],\n envBindings: {\n STRIPE_TOKEN: \"$secrets.STRIPE_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to your [Stripe Dashboard](https://dashboard.stripe.com/apikeys)\\n2. Go to **Developers > API keys**\\n3. Reveal the **Secret key** (starts with `sk_live_` or `sk_test_`) or create a **Restricted key** (`rk_live_...`) with the scopes you need\\n4. Copy the key\",\n storage: {\n secrets: [\"STRIPE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n STRIPE_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk_live_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n STRIPE_TOKEN: \"$secrets.STRIPE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n cli: {\n label: \"Sign in with Stripe\",\n helpText:\n \"Approve access in the Stripe Dashboard so vm0 can import a restricted API key.\",\n client: {\n clientRegistration: \"dynamic\",\n clientType: \"public\",\n },\n storage: {\n secrets: [\"STRIPE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"device-auth\",\n scopes: [],\n outputs: {\n token: \"$secrets.STRIPE_TOKEN\",\n },\n startOptions: {\n mode: {\n kind: \"select\",\n label: \"Mode\",\n publicId: \"mode\",\n required: true,\n defaultValue: \"test\",\n options: [\n { value: \"test\", label: \"Test\" },\n { value: \"live\", label: \"Live\" },\n ],\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n STRIPE_TOKEN: \"$secrets.STRIPE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const supabase = {\n supabase: {\n label: \"Supabase\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Supabase account to manage projects, databases, and APIs\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.SupabaseConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Supabase to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"SUPABASE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"SUPABASE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"SUPABASE_ACCESS_TOKEN\", \"SUPABASE_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"organizations:read\",\n \"projects:read\",\n \"projects:write\",\n \"database:read\",\n \"database:write\",\n \"secrets:read\",\n \"rest:read\",\n \"rest:write\",\n \"auth:read\",\n \"analytics:read\",\n \"environment:read\",\n \"domains:read\",\n ],\n outputs: {\n accessToken: \"$secrets.SUPABASE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SUPABASE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.SUPABASE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.SUPABASE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.SUPABASE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"SUPABASE_ACCESS_TOKEN\"],\n envBindings: {\n SUPABASE_TOKEN: \"$secrets.SUPABASE_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"Service Role Key\",\n helpText:\n \"1. Log in to the [Supabase Dashboard](https://supabase.com/dashboard)\\n2. Open your project's **Connect** dialog, or go to **Project Settings > API Keys**\\n3. For legacy keys, copy the `anon` key (for client-side) or `service_role` key (for server-side) from the **Legacy API Keys** tab\\n4. For new keys, open the **API Keys** tab, click **Create new API Keys** if needed, and copy the value from the **Publishable key** section\",\n storage: {\n secrets: [\"SUPABASE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SUPABASE_TOKEN: {\n label: \"Service Role Key\",\n publicId: \"serviceRoleKey\",\n required: true,\n placeholder: \"eyJhbGci... or sb_secret_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SUPABASE_TOKEN: \"$secrets.SUPABASE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const supadata = {\n supadata: {\n label: \"Supadata\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Supadata account to extract YouTube transcripts, channel data, and video metadata\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to the [Supadata Dashboard](https://dash.supadata.ai)\\n2. Sign up for an account (no credit card required)\\n3. Your API key will be generated automatically\\n4. Use it in API requests with the header `x-api-key: [your_api_key]`\",\n storage: {\n secrets: [\"SUPADATA_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SUPADATA_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-supadata-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SUPADATA_TOKEN: \"$secrets.SUPADATA_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const supermemory = {\n supermemory: {\n label: \"Supermemory\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect to Supermemory for AI agent memory, semantic recall, and managed RAG.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"Go to [console.supermemory.ai](https://console.supermemory.ai) → **API Keys** → create or copy your key.\",\n storage: {\n secrets: [\"SUPERMEMORY_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n SUPERMEMORY_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sm_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n SUPERMEMORY_API_KEY: \"$secrets.SUPERMEMORY_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const tavily = {\n tavily: {\n label: \"Tavily\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Tavily account to perform AI-optimized web searches and content extraction\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Go to [app.tavily.com](https://app.tavily.com/) and sign up for a free account\\n2. After signing in, your API key will be available on the dashboard\\n3. Copy the API key (it will start with `tvly-`)\",\n storage: {\n secrets: [\"TAVILY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TAVILY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"tvly-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TAVILY_TOKEN: \"$secrets.TAVILY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type {\n ConnectorAuthClientConfig,\n ConnectorAuthCodeGrantConfig,\n ConnectorConfig,\n ConnectorManualGrantConfig,\n ConnectorRevokeConfig,\n} from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nconst TEST_OAUTH_CLIENT = {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientId: \"test-oauth-client\",\n clientSecret: \"test-oauth-secret\",\n} satisfies ConnectorAuthClientConfig;\n\nconst TEST_OAUTH_AUTH_CODE_GRANT = {\n kind: \"auth-code\",\n scopes: [\"read\"],\n callbackOrigin: \"api\",\n outputs: {\n accessToken: \"$secrets.TEST_OAUTH_ACCESS_TOKEN\",\n refreshToken: \"$secrets.TEST_OAUTH_REFRESH_TOKEN\",\n tenantId: \"$vars.TEST_OAUTH_API_TENANT_ID\",\n },\n} as const satisfies ConnectorAuthCodeGrantConfig;\n\nconst TEST_OAUTH_API_AUTH_CODE_GRANT = {\n kind: \"auth-code\",\n scopes: [\"read\"],\n callbackOrigin: \"api\",\n outputs: {\n initialAccessToken: \"$secrets.TEST_OAUTH_API_ACCESS_TOKEN\",\n initialRefreshToken: \"$secrets.TEST_OAUTH_API_REFRESH_TOKEN\",\n tenantId: \"$vars.TEST_OAUTH_API_TENANT_ID\",\n },\n} as const satisfies ConnectorAuthCodeGrantConfig;\n\nconst TEST_OAUTH_API_TOKEN_MANUAL_GRANT = {\n kind: \"manual\",\n fields: {\n TEST_OAUTH_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"test-oauth-token\",\n },\n TEST_OAUTH_API_TOKEN_INPUT_VAR: {\n label: \"Input Variable\",\n publicId: \"inputVariable\",\n required: true,\n placeholder: \"test-input-variable\",\n storage: \"variable\",\n },\n TEST_OAUTH_API_TENANT_ID: {\n label: \"Tenant ID\",\n publicId: \"tenantId\",\n required: true,\n placeholder: \"test-oauth-tenant\",\n storage: \"variable\",\n },\n },\n} as const satisfies ConnectorManualGrantConfig;\n\nconst TEST_OAUTH_REVOKE = { kind: \"none\" } satisfies ConnectorRevokeConfig;\n\nexport const testOauth = {\n \"test-oauth\": {\n label: \"Test OAuth (internal)\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Synthetic OAuth 2.0 connector served by this app itself. For automated tests only — not a real third-party service.\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.TestOauthConnector,\n label: \"OAuth\",\n helpText: \"Test-only OAuth provider. Only reachable in dev/preview.\",\n client: TEST_OAUTH_CLIENT,\n storage: {\n secrets: [\"TEST_OAUTH_ACCESS_TOKEN\", \"TEST_OAUTH_REFRESH_TOKEN\"],\n variables: [\"TEST_OAUTH_API_TENANT_ID\"],\n },\n grant: TEST_OAUTH_AUTH_CODE_GRANT,\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.TEST_OAUTH_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.TEST_OAUTH_ACCESS_TOKEN\",\n refreshToken: \"$secrets.TEST_OAUTH_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"TEST_OAUTH_ACCESS_TOKEN\"],\n envBindings: {\n TEST_OAUTH_TOKEN: \"$secrets.TEST_OAUTH_ACCESS_TOKEN\",\n TEST_OAUTH_TENANT_ID: \"$vars.TEST_OAUTH_API_TENANT_ID\",\n },\n },\n revoke: TEST_OAUTH_REVOKE,\n },\n api: {\n featureFlag: FeatureSwitchKey.TestOauthConnector,\n label: \"API OAuth\",\n helpText:\n \"Secondary test-only OAuth method used to exercise method-aware provider registration.\",\n client: TEST_OAUTH_CLIENT,\n storage: {\n secrets: [\n \"TEST_OAUTH_API_ACCESS_TOKEN\",\n \"TEST_OAUTH_API_REFRESH_TOKEN\",\n \"TEST_OAUTH_API_SECONDARY_TOKEN\",\n ],\n variables: [\"TEST_OAUTH_API_TENANT_ID\"],\n },\n grant: TEST_OAUTH_API_AUTH_CODE_GRANT,\n access: {\n kind: \"refresh-token\",\n inputs: {\n apiRefreshToken: \"$secrets.TEST_OAUTH_API_REFRESH_TOKEN\",\n tenantId: \"$vars.TEST_OAUTH_API_TENANT_ID\",\n },\n outputs: {\n refreshedAccessToken: \"$secrets.TEST_OAUTH_API_ACCESS_TOKEN\",\n refreshedRefreshToken: \"$secrets.TEST_OAUTH_API_REFRESH_TOKEN\",\n secondaryToken: \"$secrets.TEST_OAUTH_API_SECONDARY_TOKEN\",\n refreshedTenantId: \"$vars.TEST_OAUTH_API_TENANT_ID\",\n },\n refreshableSecrets: [\"TEST_OAUTH_API_ACCESS_TOKEN\"],\n envBindings: {\n TEST_OAUTH_TOKEN: \"$secrets.TEST_OAUTH_API_ACCESS_TOKEN\",\n TEST_OAUTH_TENANT_ID: \"$vars.TEST_OAUTH_API_TENANT_ID\",\n },\n },\n revoke: TEST_OAUTH_REVOKE,\n },\n \"api-token\": {\n featureFlag: FeatureSwitchKey.TestOauthConnector,\n label: \"API Token\",\n helpText:\n \"Test-only manual method used to exercise refreshable access without a platform auth client.\",\n storage: {\n secrets: [\"TEST_OAUTH_TOKEN\", \"TEST_OAUTH_API_TOKEN_ACCESS_TOKEN\"],\n variables: [\n \"TEST_OAUTH_API_TOKEN_INPUT_VAR\",\n \"TEST_OAUTH_API_TENANT_ID\",\n ],\n },\n grant: TEST_OAUTH_API_TOKEN_MANUAL_GRANT,\n access: {\n kind: \"refresh-token\",\n inputs: {\n inputSecret: \"$secrets.TEST_OAUTH_TOKEN\",\n inputVariable: \"$vars.TEST_OAUTH_API_TOKEN_INPUT_VAR\",\n },\n outputs: {\n accessToken: \"$secrets.TEST_OAUTH_API_TOKEN_ACCESS_TOKEN\",\n },\n refreshableSecrets: [\"TEST_OAUTH_API_TOKEN_ACCESS_TOKEN\"],\n envBindings: {\n TEST_OAUTH_API_TOKEN: \"$secrets.TEST_OAUTH_API_TOKEN_ACCESS_TOKEN\",\n TEST_OAUTH_TENANT_ID: \"$vars.TEST_OAUTH_API_TENANT_ID\",\n },\n },\n revoke: TEST_OAUTH_REVOKE,\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const testOauthDevice = {\n \"test-oauth-device\": {\n label: \"Test OAuth Device (internal)\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Synthetic OAuth 2.0 device authorization connector. For automated tests only.\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.TestOauthConnector,\n label: \"OAuth Device Authorization\",\n helpText: \"Test-only OAuth device provider.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: \"test-oauth-device-client\",\n },\n storage: {\n secrets: [\"TEST_OAUTH_DEVICE_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"device-auth\",\n scopes: [\"read\"],\n outputs: {\n accessToken: \"$secrets.TEST_OAUTH_DEVICE_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TEST_OAUTH_DEVICE_TOKEN: \"$secrets.TEST_OAUTH_DEVICE_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n api: {\n featureFlag: FeatureSwitchKey.TestOauthConnector,\n label: \"API Device Authorization\",\n helpText:\n \"Secondary test-only OAuth device method used to exercise method-aware device authorization sessions.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: \"test-oauth-device-api-client\",\n },\n storage: {\n secrets: [\"TEST_OAUTH_DEVICE_API_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"device-auth\",\n scopes: [\"read\"],\n outputs: {\n accessToken: \"$secrets.TEST_OAUTH_DEVICE_API_ACCESS_TOKEN\",\n },\n startOptions: {\n mode: {\n kind: \"select\",\n label: \"Mode\",\n publicId: \"mode\",\n required: true,\n defaultValue: \"test\",\n options: [\n { value: \"test\", label: \"Test\" },\n { value: \"live\", label: \"Live\" },\n ],\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TEST_OAUTH_DEVICE_API_TOKEN:\n \"$secrets.TEST_OAUTH_DEVICE_API_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const testrail = {\n testrail: {\n label: \"TestRail\",\n category: \"engineering-team-execution\",\n tags: [\"qa\", \"testing\", \"test-cases\", \"test-management\", \"gurock\"],\n helpText:\n \"Connect your TestRail account to manage test cases, runs, and results across projects\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. In TestRail, open **My Settings** (top-right user menu) → **API Keys**\\n2. Click **Add Key**, name it (e.g. `vm0`), copy the generated key\\n3. Enter the email you log in with, the generated API key, and your TestRail instance subdomain — the prefix of `https://<subdomain>.testrail.io`\\n4. If your team self-hosts TestRail Server, set `TESTRAIL_INSTANCE` to the full host (e.g. `tests.example.com`) — the firewall accepts both forms\",\n storage: {\n secrets: [\"TESTRAIL_EMAIL\", \"TESTRAIL_TOKEN\"],\n variables: [\"TESTRAIL_INSTANCE\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TESTRAIL_EMAIL: {\n label: \"Email\",\n publicId: \"email\",\n required: true,\n placeholder: \"you@example.com\",\n },\n TESTRAIL_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-testrail-api-key\",\n },\n TESTRAIL_INSTANCE: {\n label: \"Instance\",\n publicId: \"instance\",\n required: true,\n storage: \"variable\",\n placeholder: \"your-subdomain\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TESTRAIL_EMAIL: \"$secrets.TESTRAIL_EMAIL\",\n TESTRAIL_TOKEN: \"$secrets.TESTRAIL_TOKEN\",\n TESTRAIL_INSTANCE: \"$vars.TESTRAIL_INSTANCE\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const ticketmaster = {\n ticketmaster: {\n label: \"Ticketmaster\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect Ticketmaster to search events, attractions, venues, and classifications with the Discovery API\",\n authMethods: {\n \"api-token\": {\n label: \"Discovery API Key\",\n helpText:\n \"1. Log in to the [Ticketmaster Developer Portal](https://developer.ticketmaster.com)\\n2. Open your application in **My Apps**\\n3. Copy the **Consumer Key** for the Discovery API\\n4. Use it as the `apikey` query parameter for Discovery API requests\",\n storage: {\n secrets: [\"TICKETMASTER_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TICKETMASTER_API_KEY: {\n label: \"Discovery API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-ticketmaster-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TICKETMASTER_API_KEY: \"$secrets.TICKETMASTER_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const tldv = {\n tldv: {\n label: \"tl;dv\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your tl;dv account to access meeting recordings, transcripts, and AI-generated notes\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Ensure you have a **Business Plan** subscription on [tldv](https://tldv.io)\\n2. API and webhook access is only available on the Business Plan\\n3. Contact support at **support@tldv.io** to request API access and obtain your credentials\",\n storage: {\n secrets: [\"TLDV_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TLDV_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-tldv-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TLDV_TOKEN: \"$secrets.TLDV_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const together = {\n together: {\n label: \"Together AI\",\n category: \"ai-general-models\",\n generation: [\"image\", \"text\"],\n helpText:\n \"Connect your Together AI account to run open-source models (Llama, Qwen, FLUX) via an OpenAI-compatible API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign up at [api.together.ai](https://api.together.ai)\\n2. Go to **Settings → API Keys**\\n3. Click **Create API Key**\\n4. Copy the key. Paste it here. Free $1 credit on signup.\",\n storage: {\n secrets: [\"TOGETHER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TOGETHER_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder:\n \"c0ffee5afe10ca1c0ffee5afe10ca1c0ffee5afe10ca1c0ffee5afe10ca1c0ff\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TOGETHER_TOKEN: \"$secrets.TOGETHER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const tripo = {\n tripo: {\n label: \"Tripo\",\n category: \"ai-image-video\",\n generation: [\"image\"],\n helpText:\n \"Connect your Tripo account to generate 3D models from text or images via the Tripo 3D API\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Sign in at [platform.tripo3d.ai](https://platform.tripo3d.ai)\\n2. Open **API Keys**\\n3. Click **Create API Key**\\n4. Copy the key (it begins with `tsk_`). It is shown only once. Paste it here.\",\n storage: {\n secrets: [\"TRIPO_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TRIPO_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"tsk_CoffeeSafeLocalCoffeeSafeLocalCoffeeSafeLoc\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TRIPO_API_KEY: \"$secrets.TRIPO_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const twenty = {\n twenty: {\n label: \"Twenty\",\n category: \"sales-crm-business-operations\",\n helpText:\n \"Connect your Twenty CRM account to manage contacts, companies, and deals\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to your [Twenty](https://twenty.com) workspace\\n2. Go to **Settings > APIs & Webhooks**\\n3. Click **+ Create key**\\n4. Enter a descriptive **Name** and set an **Expiration Date**\\n5. Click **Save**\\n6. Copy the key immediately — it is only shown once\",\n storage: {\n secrets: [\"TWENTY_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TWENTY_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-twenty-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TWENTY_TOKEN: \"$secrets.TWENTY_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const twilio = {\n twilio: {\n label: \"Twilio\",\n category: \"communication-collaboration\",\n tags: [\"sms\", \"voice\", \"whatsapp\", \"verify\", \"lookup\", \"messaging\"],\n helpText:\n \"Connect your Twilio account to send SMS / WhatsApp / MMS, place voice calls, look up phone numbers, and run Verify OTP flows\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Open the [Twilio Console](https://console.twilio.com) — your **Account SID** is shown on the dashboard\\n2. Click **View** next to **Auth Token** to reveal the live auth token\\n3. Copy both values and paste them below — the SID always starts with `AC`\",\n storage: {\n secrets: [\"TWILIO_ACCOUNT_SID\", \"TWILIO_AUTH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TWILIO_ACCOUNT_SID: {\n label: \"Account SID\",\n publicId: \"accountSid\",\n required: true,\n placeholder: \"ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n },\n TWILIO_AUTH_TOKEN: {\n label: \"Auth Token\",\n publicId: \"authToken\",\n required: true,\n placeholder: \"32-char hex token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TWILIO_ACCOUNT_SID: \"$secrets.TWILIO_ACCOUNT_SID\",\n TWILIO_AUTH_TOKEN: \"$secrets.TWILIO_AUTH_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const typeform = {\n typeform: {\n label: \"Typeform\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Typeform account to create forms, fetch responses, and manage webhooks\",\n authMethods: {\n \"api-token\": {\n label: \"Personal Access Token\",\n helpText:\n \"1. Log in to [Typeform](https://admin.typeform.com)\\n2. Open the account menu (top-right) and pick **Personal tokens**\\n3. Click **Generate a new token**, name it, and choose the scopes you need (e.g. `forms:read`, `responses:read`, `webhooks:write`)\\n4. Copy the token (format: `tfp_...`)\",\n storage: {\n secrets: [\"TYPEFORM_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n TYPEFORM_TOKEN: {\n label: \"Personal Access Token\",\n publicId: \"accessToken\",\n required: true,\n placeholder: \"tfp_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n TYPEFORM_TOKEN: \"$secrets.TYPEFORM_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const v0 = {\n v0: {\n label: \"v0\",\n category: \"ai-agent-apps\",\n generation: [\"code\", \"website\"],\n helpText:\n \"Connect your v0 account to generate UI components, chat completions, and iterate on React and Next.js code with the v0 Platform API\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [v0](https://v0.dev)\\n2. Go to **Settings** → **Keys** ([direct link](https://v0.dev/chat/settings/keys))\\n3. Create a new API key\\n4. Copy the generated token\",\n storage: {\n secrets: [\"V0_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n V0_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"v0-...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n V0_TOKEN: \"$secrets.V0_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const wandb = {\n wandb: {\n label: \"Weights & Biases\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect to Weights & Biases for ML experiment tracking and LLM observability.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText: \"Go to wandb.ai → Settings → API Keys → copy your key.\",\n storage: {\n secrets: [\"WANDB_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n WANDB_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"Your W&B API Key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WANDB_TOKEN: \"$secrets.WANDB_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const webflow = {\n webflow: {\n label: \"Webflow\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Webflow account to manage sites, pages, CMS collections, and ecommerce\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.WebflowConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Webflow to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"WEBFLOW_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"WEBFLOW_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"WEBFLOW_ACCESS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"authorized_user:read\",\n \"sites:read\",\n \"sites:write\",\n \"pages:read\",\n \"pages:write\",\n \"cms:read\",\n \"cms:write\",\n \"assets:read\",\n \"assets:write\",\n \"forms:read\",\n \"ecommerce:read\",\n \"ecommerce:write\",\n \"users:read\",\n \"workspace:read\",\n \"custom_code:read\",\n \"custom_code:write\",\n ],\n outputs: {\n accessToken: \"$secrets.WEBFLOW_ACCESS_TOKEN\",\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WEBFLOW_TOKEN: \"$secrets.WEBFLOW_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n \"api-token\": {\n label: \"Site Token\",\n helpText:\n \"1. Log in to [Webflow](https://webflow.com) (site administrator access required)\\n2. In your workspace, find the site and click the gear icon to open **Site Settings**\\n3. In the left sidebar, select **Apps & integrations**\\n4. Scroll to the bottom of the page to the **API access** section\\n5. Click **Generate API token**\\n6. Enter a name for your token and choose the required scopes\\n7. Click **Generate token**\\n8. Copy the generated token and save it in a secure location\",\n storage: {\n secrets: [\"WEBFLOW_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n WEBFLOW_TOKEN: {\n label: \"Site Token\",\n publicId: \"siteToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WEBFLOW_TOKEN: \"$secrets.WEBFLOW_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const weread = {\n weread: {\n label: \"WeRead\",\n category: \"docs-files-knowledge\",\n tags: [\n \"weread\",\n \"微信读书\",\n \"wechat reading\",\n \"books\",\n \"reading\",\n \"highlights\",\n \"notes\",\n \"bookshelf\",\n ],\n helpText:\n \"Connect WeChat Reading (微信读书) to search books, browse your bookshelf, and read your notes, highlights, reviews, and reading statistics\",\n authMethods: {\n \"api-token\": {\n label: \"WeRead API Key\",\n helpText:\n \"1. Open the [WeRead Skill page](https://weread.qq.com/r/weread-skills)\\n2. Scan the QR code with WeChat to sign in to your WeChat Reading account\\n3. Copy the generated API key (it begins with `wrk-`)\\n4. The key authorises every endpoint under `i.weread.qq.com` and is scoped to your own account data\",\n storage: {\n secrets: [\"WEREAD_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n WEREAD_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"wrk-xxxxxxxxxxxxxxxx\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WEREAD_TOKEN: \"$secrets.WEREAD_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const whaleAlert = {\n \"whale-alert\": {\n label: \"Whale Alert\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Whale Alert developer account to access blockchain transaction data and custom whale alert APIs\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Create a Whale Alert developer account\\n2. Subscribe to the Custom Alerts or Enterprise REST API plan\\n3. Copy the API key provided for your subscription\\n4. Use this key as the `api_key` query parameter\",\n storage: {\n secrets: [\"WHALE_ALERT_API_KEY\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n WHALE_ALERT_API_KEY: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"Coffee5afe10ca1Coffee5afe10ca1Co\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WHALE_ALERT_API_KEY: \"$secrets.WHALE_ALERT_API_KEY\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const wix = {\n wix: {\n label: \"Wix\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your Wix account to manage sites, collections, and content\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to your [Wix](https://www.wix.com) account (account owner or co-owner access required)\\n2. Go to the [API Keys Manager](https://manage.wix.com/account/api-keys)\\n3. Create a new API key and assign the required permissions\\n4. Copy the generated API key and store it securely\",\n storage: {\n secrets: [\"WIX_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n WIX_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-wix-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WIX_TOKEN: \"$secrets.WIX_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const workos = {\n workos: {\n label: \"WorkOS\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect to WorkOS for enterprise SSO, SCIM directory sync, RBAC fine-grained authorization, and audit log management.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"Go to WorkOS Dashboard → API Keys → copy your secret key (starts with `sk_live_` for production or `sk_test_` for sandbox).\",\n storage: {\n secrets: [\"WORKOS_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n WORKOS_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"sk_live_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WORKOS_TOKEN: \"$secrets.WORKOS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const wrike = {\n wrike: {\n label: \"Wrike\",\n category: \"engineering-team-execution\",\n helpText:\n \"Connect your Wrike account to manage projects, tasks, folders, and workflows\",\n authMethods: {\n \"api-token\": {\n label: \"Permanent Access Token\",\n helpText:\n \"1. Navigate to your [Wrike](https://www.wrike.com) workspace\\n2. Click on your **profile icon** in the navigation bar\\n3. Select **Apps & Integrations**\\n4. Click on **API**\\n5. Click **+ App**\\n6. Enter a name for your integration\\n7. Click **Get Token** at the bottom of the window\\n8. Copy and securely store your token — it will not be shown again after closing the page\\n9. Click **Save**\",\n storage: {\n secrets: [\"WRIKE_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n WRIKE_TOKEN: {\n label: \"Permanent Access Token\",\n publicId: \"accessToken\",\n required: true,\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n WRIKE_TOKEN: \"$secrets.WRIKE_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const youtube = {\n youtube: {\n label: \"YouTube\",\n category: \"marketing-content-growth\",\n helpText:\n \"Connect your YouTube account to search videos, get channel info, and fetch comments via the Data API\",\n authMethods: {\n oauth: {\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Google to grant YouTube Data API access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"GOOGLE_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"GOOGLE_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"YOUTUBE_ACCESS_TOKEN\", \"YOUTUBE_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"https://www.googleapis.com/auth/youtube\",\n \"https://www.googleapis.com/auth/youtube.force-ssl\",\n \"https://www.googleapis.com/auth/youtube.readonly\",\n \"https://www.googleapis.com/auth/youtube.upload\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n ],\n outputs: {\n accessToken: \"$secrets.YOUTUBE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.YOUTUBE_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.YOUTUBE_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.YOUTUBE_ACCESS_TOKEN\",\n refreshToken: \"$secrets.YOUTUBE_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"YOUTUBE_ACCESS_TOKEN\"],\n envBindings: {\n YOUTUBE_TOKEN: \"$secrets.YOUTUBE_ACCESS_TOKEN\",\n },\n },\n revoke: {\n kind: \"token-revoke\",\n inputs: {\n refreshToken: \"$secrets.YOUTUBE_REFRESH_TOKEN\",\n },\n },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const zapier = {\n zapier: {\n label: \"Zapier\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your Zapier account to trigger zaps and use AI Actions (NLA) to automate workflows\",\n authMethods: {\n \"api-token\": {\n featureFlag: FeatureSwitchKey.ZapierConnector,\n label: \"API Key\",\n storage: {\n secrets: [\"ZAPIER_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ZAPIER_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"your-zapier-api-key\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ZAPIER_TOKEN: \"$secrets.ZAPIER_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const zapsign = {\n zapsign: {\n label: \"ZapSign\",\n category: \"data-automation-infrastructure\",\n helpText:\n \"Connect your ZapSign account to create documents for electronic signature and track signing status\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to your [ZapSign](https://app.zapsign.com) account\\n2. Go to **Settings**\\n3. Navigate to **Integrations**\\n4. Select **ZAPSIGN API**\\n5. Copy your API token\",\n storage: {\n secrets: [\"ZAPSIGN_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ZAPSIGN_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-zapsign-api-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ZAPSIGN_TOKEN: \"$secrets.ZAPSIGN_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const zendesk = {\n zendesk: {\n label: \"Zendesk\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your Zendesk account to manage support tickets, users, organizations, and automate customer support workflows\",\n authMethods: {\n \"api-token\": {\n label: \"API Token\",\n helpText:\n \"1. Log in to [Zendesk Admin Center](https://www.zendesk.com/admin/)\\n2. Go to **Apps and integrations → APIs → Zendesk API**\\n3. Enable **Token Access** under the Settings tab\\n4. Click **Add API token** and copy the token\",\n storage: {\n secrets: [\"ZENDESK_API_TOKEN\"],\n variables: [\"ZENDESK_EMAIL\", \"ZENDESK_SUBDOMAIN\"],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ZENDESK_API_TOKEN: {\n label: \"API Token\",\n publicId: \"apiToken\",\n required: true,\n placeholder: \"your-zendesk-api-token\",\n },\n ZENDESK_EMAIL: {\n label: \"Email\",\n publicId: \"email\",\n required: true,\n placeholder: \"your-email@company.com\",\n storage: \"variable\",\n },\n ZENDESK_SUBDOMAIN: {\n label: \"Subdomain\",\n publicId: \"subdomain\",\n required: true,\n placeholder: \"yourcompany\",\n storage: \"variable\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ZENDESK_API_TOKEN: \"$secrets.ZENDESK_API_TOKEN\",\n ZENDESK_EMAIL: \"$vars.ZENDESK_EMAIL\",\n ZENDESK_SUBDOMAIN: \"$vars.ZENDESK_SUBDOMAIN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const zep = {\n zep: {\n label: \"Zep\",\n category: \"ai-memory-tracing-eval\",\n helpText:\n \"Connect to Zep for long-term memory and conversation history management in AI agents.\",\n authMethods: {\n \"api-token\": {\n label: \"API Key\",\n helpText:\n \"1. Log in to [app.getzep.com](https://app.getzep.com)\\n2. Go to **Settings**\\n3. Navigate to **API Keys**\\n4. Click **Create API Key** and copy the key\",\n storage: {\n secrets: [\"ZEP_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ZEP_TOKEN: {\n label: \"API Key\",\n publicId: \"apiKey\",\n required: true,\n placeholder: \"z_...\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ZEP_TOKEN: \"$secrets.ZEP_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\n\nexport const zeptomail = {\n zeptomail: {\n label: \"ZeptoMail\",\n category: \"communication-collaboration\",\n helpText:\n \"Connect your ZeptoMail account to send transactional emails via Zoho's email delivery service\",\n authMethods: {\n \"api-token\": {\n label: \"Send Mail Token\",\n helpText:\n \"1. Log in to [ZeptoMail](https://zeptomail.zoho.com)\\n2. Select the Mail Agent for which you want to generate the API key\\n3. Go to the **SMTP/API** tab\\n4. In the **API** section, copy the **Agent alias** (agentkey)\\n5. Submit a POST request to `https://api.zeptomail.com/v1.1/agents/{agentkey}/apikeys` with an `Authorization: Zoho-oauthtoken [your-token]` header\\n6. The response will contain your send mail token (username and password)\",\n storage: {\n secrets: [\"ZEPTOMAIL_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"manual\",\n fields: {\n ZEPTOMAIL_TOKEN: {\n label: \"Send Mail Token\",\n publicId: \"sendMailToken\",\n required: true,\n placeholder: \"your-zeptomail-send-mail-token\",\n },\n },\n },\n access: {\n kind: \"static\",\n envBindings: {\n ZEPTOMAIL_TOKEN: \"$secrets.ZEPTOMAIL_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import type { ConnectorConfig } from \"../connector-config\";\nimport { FeatureSwitchKey } from \"../feature-switch-key\";\n\nexport const zoom = {\n zoom: {\n label: \"Zoom\",\n category: \"meetings-scheduling\",\n helpText:\n \"Connect your Zoom account to schedule meetings, manage cloud recordings, and access webinar and participant data\",\n authMethods: {\n oauth: {\n featureFlag: FeatureSwitchKey.ZoomConnector,\n label: \"OAuth (Recommended)\",\n helpText: \"Sign in with Zoom to grant access.\",\n client: {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientIdEnv: \"ZOOM_OAUTH_CLIENT_ID\",\n clientSecretEnv: \"ZOOM_OAUTH_CLIENT_SECRET\",\n },\n storage: {\n secrets: [\"ZOOM_ACCESS_TOKEN\", \"ZOOM_REFRESH_TOKEN\"],\n variables: [],\n },\n grant: {\n kind: \"auth-code\",\n scopes: [\n \"user:read:user\",\n \"meeting:read:list_meetings\",\n \"meeting:read:meeting\",\n \"meeting:write:meeting\",\n \"meeting:update:meeting\",\n \"meeting:delete:meeting\",\n \"meeting:update:status\",\n \"meeting:read:list_past_participants\",\n \"meeting:read:past_meeting\",\n \"cloud_recording:read:list_user_recordings\",\n \"cloud_recording:read:list_recording_files\",\n \"cloud_recording:read:recording\",\n \"webinar:read:list_webinars\",\n \"webinar:read:webinar\",\n ],\n outputs: {\n accessToken: \"$secrets.ZOOM_ACCESS_TOKEN\",\n refreshToken: \"$secrets.ZOOM_REFRESH_TOKEN\",\n },\n },\n access: {\n kind: \"refresh-token\",\n inputs: {\n refreshToken: \"$secrets.ZOOM_REFRESH_TOKEN\",\n },\n outputs: {\n accessToken: \"$secrets.ZOOM_ACCESS_TOKEN\",\n refreshToken: \"$secrets.ZOOM_REFRESH_TOKEN\",\n },\n refreshableSecrets: [\"ZOOM_ACCESS_TOKEN\"],\n envBindings: {\n ZOOM_TOKEN: \"$secrets.ZOOM_ACCESS_TOKEN\",\n },\n },\n revoke: { kind: \"none\" },\n },\n },\n },\n} as const satisfies Record<string, ConnectorConfig>;\n","import { z } from \"zod\";\n\nimport type { FeatureSwitchKey } from \"./feature-switch-key\";\n\n/**\n * User-entered field configuration for manual connector grant methods.\n */\nexport interface ConnectorManualGrantFieldConfig {\n /**\n * Stable public form id used by catalog clients. This must not be a private\n * credential, storage, env binding, or runtime binding name.\n */\n publicId: string;\n label: string;\n required: boolean;\n placeholder?: string;\n /** Storage type: \"secret\" (default, encrypted) or \"variable\" (plain text). */\n storage?: \"secret\" | \"variable\";\n /**\n * Optional normalization applied to the user-entered value before it is\n * persisted.\n *\n * - `\"host\"`: strip the URL scheme, userinfo, path, query, fragment, and\n * trailing slash, leaving only `host[:port]`. Use this for fields templated\n * into a firewall base URL's authority position (`https://${{ vars.X }}`),\n * where the firewall validator rejects values that introduce URL structure\n * (`/`, `?`, `#`, `@`). Lets a user paste a full backend URL\n * (e.g. `https://my-project.example.app/`) without breaking the connection.\n */\n normalize?: \"host\";\n}\n\nexport type ConnectorAuthClientConfig =\n | {\n readonly clientRegistration: \"static\";\n readonly clientType: \"confidential\";\n readonly clientIdEnv: string;\n readonly clientSecretEnv: string;\n }\n | {\n readonly clientRegistration: \"static\";\n readonly clientType: \"confidential\";\n readonly clientId: string;\n readonly clientSecret: string;\n }\n | {\n readonly clientRegistration: \"static\";\n readonly clientType: \"public\";\n readonly clientIdEnv: string;\n }\n | {\n readonly clientRegistration: \"static\";\n readonly clientType: \"public\";\n readonly clientId: string;\n }\n | {\n readonly clientRegistration: \"dynamic\";\n readonly clientType: \"public\";\n };\n\nexport type StaticConfidentialConnectorAuthClientConfig = Extract<\n ConnectorAuthClientConfig,\n {\n readonly clientRegistration: \"static\";\n readonly clientType: \"confidential\";\n }\n>;\n\nexport type StaticPublicConnectorAuthClientConfig = Extract<\n ConnectorAuthClientConfig,\n {\n readonly clientRegistration: \"static\";\n readonly clientType: \"public\";\n }\n>;\n\nexport type DynamicPublicConnectorAuthClientConfig = Extract<\n ConnectorAuthClientConfig,\n {\n readonly clientRegistration: \"dynamic\";\n readonly clientType: \"public\";\n }\n>;\n\nexport type PublicConnectorAuthClientConfig =\n | StaticPublicConnectorAuthClientConfig\n | DynamicPublicConnectorAuthClientConfig;\n\nexport type ConnectorGrantKind =\n | \"none\"\n | \"manual\"\n | \"auth-code\"\n | \"openid-auth\"\n | \"external-code\"\n | \"device-auth\"\n | \"managed\";\n\nexport interface ConnectorNoAuthGrantConfig {\n readonly kind: \"none\";\n}\n\nexport interface ConnectorManualGrantConfig {\n readonly kind: \"manual\";\n readonly fields: Record<string, ConnectorManualGrantFieldConfig>;\n}\n\nexport type ConnectorBrowserAuthCallbackOrigin = \"web\" | \"api\";\nexport type ConnectorAuthCodeCallbackOrigin =\n ConnectorBrowserAuthCallbackOrigin;\n\nexport interface ConnectorAuthCodeGrantConfig {\n readonly kind: \"auth-code\";\n readonly scopes: string[];\n readonly callbackOrigin?: ConnectorAuthCodeCallbackOrigin;\n readonly outputs: ConnectorGrantOutputBindings;\n}\n\nexport interface ConnectorOpenIdAuthGrantConfig {\n readonly kind: \"openid-auth\";\n readonly callbackOrigin?: ConnectorBrowserAuthCallbackOrigin;\n readonly outputs: ConnectorGrantOutputBindings;\n}\n\nexport interface ConnectorExternalCodeGrantConfig {\n readonly kind: \"external-code\";\n readonly scopes: string[];\n readonly outputs: ConnectorGrantOutputBindings;\n}\n\nexport interface ConnectorDeviceAuthStartSelectOptionChoiceConfig {\n readonly value: string;\n readonly label: string;\n}\n\ntype ConnectorDeviceAuthStartSelectOptionChoicesConfig = readonly [\n ConnectorDeviceAuthStartSelectOptionChoiceConfig,\n ...ConnectorDeviceAuthStartSelectOptionChoiceConfig[],\n];\n\nexport interface ConnectorDeviceAuthStartSelectOptionConfig {\n readonly kind: \"select\";\n /**\n * Stable public start option id used by catalog clients.\n */\n readonly publicId: string;\n readonly label: string;\n readonly required: boolean;\n readonly defaultValue?: string;\n readonly options: ConnectorDeviceAuthStartSelectOptionChoicesConfig;\n}\n\nexport type ConnectorDeviceAuthStartOptionConfig =\n ConnectorDeviceAuthStartSelectOptionConfig;\n\nexport type ConnectorDeviceAuthStartOptionsConfig = Readonly<\n Record<string, ConnectorDeviceAuthStartOptionConfig>\n>;\n\nexport type ConnectorDeviceAuthStartOptions = Readonly<Record<string, string>>;\n\nexport interface ConnectorDeviceAuthGrantConfig {\n readonly kind: \"device-auth\";\n readonly scopes: string[];\n readonly outputs: ConnectorGrantOutputBindings;\n readonly startOptions?: ConnectorDeviceAuthStartOptionsConfig;\n}\n\nexport interface ConnectorManagedGrantConfig {\n readonly kind: \"managed\";\n}\n\nexport type ConnectorGrantConfig =\n | ConnectorNoAuthGrantConfig\n | ConnectorManualGrantConfig\n | ConnectorAuthCodeGrantConfig\n | ConnectorOpenIdAuthGrantConfig\n | ConnectorExternalCodeGrantConfig\n | ConnectorDeviceAuthGrantConfig\n | ConnectorManagedGrantConfig;\n\nexport type ConnectorAccessKind = \"static\" | \"refresh-token\" | \"none\";\n\nexport const CONNECTOR_PLATFORM_SECRET_NAMES = [\n \"GOOGLE_ADS_DEVELOPER_TOKEN\",\n \"STEAM_WEB_API_KEY\",\n] as const;\nexport type ConnectorPlatformSecretName =\n (typeof CONNECTOR_PLATFORM_SECRET_NAMES)[number];\n\nexport type ConnectorSecretValueRef = `$secrets.${string}`;\nexport type ConnectorVariableValueRef = `$vars.${string}`;\nexport type ConnectorOutputValueRef =\n | ConnectorSecretValueRef\n | ConnectorVariableValueRef;\nexport type ConnectorRefreshTokenInputValueRef =\n | ConnectorSecretValueRef\n | ConnectorVariableValueRef;\nexport type ConnectorEnvBindingValue =\n | ConnectorRefreshTokenInputValueRef\n | {\n readonly valueRef: ConnectorRefreshTokenInputValueRef;\n readonly optional?: boolean;\n };\nexport type ConnectorEnvBindings = Record<string, ConnectorEnvBindingValue>;\n\nexport type ConnectorGrantOutputBindings = Record<\n string,\n ConnectorOutputValueRef\n>;\nexport type ConnectorRevokeInputBindings = Record<\n string,\n ConnectorSecretValueRef\n>;\n\nexport interface ConnectorStorageConfig {\n readonly secrets: readonly string[];\n readonly variables: readonly string[];\n}\n\ninterface ConnectorEnvBindingAccessConfigBase {\n readonly envBindings: ConnectorEnvBindings;\n /**\n * `$secrets.NAME` backing sources read from platform env instead of connector\n * DB storage. Runtime aliases must still be declared in `envBindings`.\n */\n readonly platformSecrets?: readonly ConnectorPlatformSecretName[];\n}\n\nexport interface ConnectorStaticAccessConfig extends ConnectorEnvBindingAccessConfigBase {\n readonly kind: \"static\";\n}\n\nexport type ConnectorRefreshTokenInputBindings = Record<\n string,\n ConnectorRefreshTokenInputValueRef\n>;\nexport type ConnectorRefreshTokenOutputBindings = Record<\n string,\n ConnectorOutputValueRef\n>;\n\nexport interface ConnectorRefreshTokenAccessConfig extends ConnectorEnvBindingAccessConfigBase {\n readonly kind: \"refresh-token\";\n readonly inputs: ConnectorRefreshTokenInputBindings;\n readonly outputs: ConnectorRefreshTokenOutputBindings;\n readonly refreshableSecrets: readonly string[];\n}\n\nexport interface ConnectorNoAccessConfig {\n readonly kind: \"none\";\n}\n\nexport type ConnectorAccessConfig =\n | ConnectorStaticAccessConfig\n | ConnectorRefreshTokenAccessConfig\n | ConnectorNoAccessConfig;\n\nexport type ConnectorRevokeKind = \"none\" | \"token-revoke\";\n\nexport type ConnectorRevokeConfig =\n | {\n readonly kind: \"none\";\n }\n | {\n readonly kind: \"token-revoke\";\n readonly inputs: ConnectorRevokeInputBindings;\n /**\n * Revoke the previous credential after a replacement connection commits.\n * Only enable this when the revoke inputs identify the old credential or\n * remote registration without invalidating the replacement connection.\n */\n readonly revokePreviousOnReplace?: boolean;\n };\n\ninterface ConnectorAuthMethodConfigBase {\n label: string;\n helpText?: string;\n /** When false, this auth method is unavailable for new connector actions. */\n visible?: boolean;\n /** When set, this auth method is only available while the feature is enabled. */\n featureFlag?: FeatureSwitchKey;\n /** When false, feature-gated UI surfaces should not add an experimental label. */\n showExperimentalLabel?: boolean;\n /**\n * Connector-scoped storage names owned by this auth method.\n *\n * These lists are write/delete allowlists, not guarantees that rows currently\n * exist in the DB.\n */\n storage: ConnectorStorageConfig;\n}\n\n/**\n * Auth method configuration for user-selectable connector connection flows.\n */\nexport type ConnectorAuthMethodConfig =\n | (ConnectorAuthMethodConfigBase & {\n readonly client?: never;\n readonly grant: ConnectorNoAuthGrantConfig;\n readonly access: ConnectorNoAccessConfig;\n readonly revoke: Extract<\n ConnectorRevokeConfig,\n { readonly kind: \"none\" }\n >;\n })\n | (ConnectorAuthMethodConfigBase & {\n readonly client: ConnectorAuthClientConfig;\n readonly grant: ConnectorAuthCodeGrantConfig;\n readonly access: ConnectorAccessConfig;\n readonly revoke: ConnectorRevokeConfig;\n })\n | (ConnectorAuthMethodConfigBase & {\n readonly client?: ConnectorAuthClientConfig;\n readonly grant: ConnectorOpenIdAuthGrantConfig;\n readonly access: ConnectorAccessConfig;\n readonly revoke: ConnectorRevokeConfig;\n })\n | (ConnectorAuthMethodConfigBase & {\n readonly client: ConnectorAuthClientConfig;\n readonly grant: ConnectorExternalCodeGrantConfig;\n readonly access: ConnectorAccessConfig;\n readonly revoke: ConnectorRevokeConfig;\n })\n | (ConnectorAuthMethodConfigBase & {\n readonly client: PublicConnectorAuthClientConfig;\n readonly grant: ConnectorDeviceAuthGrantConfig;\n readonly access: ConnectorAccessConfig;\n readonly revoke: ConnectorRevokeConfig;\n })\n | (ConnectorAuthMethodConfigBase & {\n readonly client?: ConnectorAuthClientConfig;\n readonly grant: ConnectorManualGrantConfig | ConnectorManagedGrantConfig;\n readonly access: ConnectorAccessConfig;\n readonly revoke: ConnectorRevokeConfig;\n });\n\n/**\n * Connector auth method ids exposed as configured connection flows.\n *\n * These values are connector registry keys, not lifecycle categories. Behavior\n * must be derived from the selected auth method lifecycle config.\n */\nexport const CONNECTOR_AUTH_METHOD_IDS = [\n \"oauth\",\n \"openid\",\n \"api-token\",\n \"cli\",\n \"api\",\n] as const;\nexport const connectorAuthMethodIdSchema = z.enum(CONNECTOR_AUTH_METHOD_IDS);\nexport type ConnectorAuthMethodId = z.infer<typeof connectorAuthMethodIdSchema>;\n\nexport type ConnectorDisplayCategory =\n | \"ai-general-models\"\n | \"ai-image-video\"\n | \"ai-voice-audio\"\n | \"ai-agent-apps\"\n | \"ai-memory-tracing-eval\"\n | \"communication-collaboration\"\n | \"meetings-scheduling\"\n | \"docs-files-knowledge\"\n | \"engineering-team-execution\"\n | \"sales-crm-business-operations\"\n | \"marketing-content-growth\"\n | \"data-automation-infrastructure\";\n\nexport type ConnectorDisplayCategoryGroup = \"ai\";\n\nexport type ConnectorGenerationType =\n | \"audio\"\n | \"code\"\n | \"document\"\n | \"image\"\n | \"presentation\"\n | \"text\"\n | \"video\"\n | \"website\";\n\nexport const CONNECTOR_DISPLAY_CATEGORY_GROUPS: Record<\n ConnectorDisplayCategoryGroup,\n { label: string; menuLabel: string }\n> = {\n ai: { label: \"AI\", menuLabel: \"AI\" },\n};\n\nexport const CONNECTOR_DISPLAY_CATEGORY_META: Record<\n ConnectorDisplayCategory,\n { label: string; menuLabel: string; group?: ConnectorDisplayCategoryGroup }\n> = {\n \"ai-general-models\": {\n label: \"General Models and Reasoning\",\n menuLabel: \"General Models\",\n group: \"ai\",\n },\n \"ai-image-video\": {\n label: \"Image / Video Generation\",\n menuLabel: \"Image and Video\",\n group: \"ai\",\n },\n \"ai-voice-audio\": {\n label: \"Voice / Audio\",\n menuLabel: \"Voice and Audio\",\n group: \"ai\",\n },\n \"ai-agent-apps\": {\n label: \"Agent Platforms and AI Apps\",\n menuLabel: \"Agent Platforms\",\n group: \"ai\",\n },\n \"ai-memory-tracing-eval\": {\n label: \"Memory / Tracing / Evaluation\",\n menuLabel: \"Memory and Evaluation\",\n group: \"ai\",\n },\n \"communication-collaboration\": {\n label: \"Communication and Collaboration\",\n menuLabel: \"Communication\",\n },\n \"meetings-scheduling\": {\n label: \"Meetings and Scheduling\",\n menuLabel: \"Meetings\",\n },\n \"docs-files-knowledge\": {\n label: \"Docs, Files, and Knowledge\",\n menuLabel: \"Documents\",\n },\n \"engineering-team-execution\": {\n label: \"Engineering and Team Execution\",\n menuLabel: \"Engineering\",\n },\n \"sales-crm-business-operations\": {\n label: \"Sales, CRM, and Business Operations\",\n menuLabel: \"Sales and Business\",\n },\n \"marketing-content-growth\": {\n label: \"Marketing, Content, and Growth\",\n menuLabel: \"Marketing\",\n },\n \"data-automation-infrastructure\": {\n label: \"Data, Automation, and Infrastructure\",\n menuLabel: \"Data and Automation\",\n },\n};\n\nexport const CONNECTOR_DISPLAY_CATEGORY_ORDER: readonly ConnectorDisplayCategory[] =\n [\n \"ai-general-models\",\n \"ai-image-video\",\n \"ai-voice-audio\",\n \"ai-agent-apps\",\n \"ai-memory-tracing-eval\",\n \"communication-collaboration\",\n \"meetings-scheduling\",\n \"docs-files-knowledge\",\n \"engineering-team-execution\",\n \"sales-crm-business-operations\",\n \"marketing-content-growth\",\n \"data-automation-infrastructure\",\n ];\n\nexport interface ConnectorDisplayCategorizedItem {\n readonly category: string;\n}\n\nexport interface ConnectorDisplayCategoryMetadataGroup {\n id: string;\n label: string;\n menuLabel: string;\n}\n\nexport interface ConnectorDisplayCategoryMetadataCategory {\n id: string;\n label: string;\n menuLabel: string;\n groupId: string | null;\n}\n\nexport interface ConnectorDisplayCategoryMetadata {\n categories: ConnectorDisplayCategoryMetadataCategory[];\n groups: ConnectorDisplayCategoryMetadataGroup[];\n}\n\nfunction isConnectorDisplayCategory(\n category: string,\n): category is ConnectorDisplayCategory {\n return Object.prototype.hasOwnProperty.call(\n CONNECTOR_DISPLAY_CATEGORY_META,\n category,\n );\n}\n\nfunction fallbackCategoryLabel(category: string): string {\n const label = category\n .split(/[-_\\s]+/)\n .filter((part) => {\n return part.length > 0;\n })\n .map((part) => {\n return part.charAt(0).toUpperCase() + part.slice(1);\n })\n .join(\" \");\n return label || \"Other\";\n}\n\nexport function connectorDisplayCategoryMetadataForItems(\n items: readonly ConnectorDisplayCategorizedItem[],\n): ConnectorDisplayCategoryMetadata {\n const visibleCategories = new Set(\n items.flatMap((item) => {\n return item.category ? [item.category] : [];\n }),\n );\n const orderedConnectorDisplayCategories =\n CONNECTOR_DISPLAY_CATEGORY_ORDER.filter((category) => {\n return visibleCategories.has(category);\n });\n const orderedCategoryIds = new Set<string>(orderedConnectorDisplayCategories);\n const orderedCategories = [\n ...orderedConnectorDisplayCategories,\n ...[...visibleCategories].filter((category) => {\n return !orderedCategoryIds.has(category);\n }),\n ];\n const visibleGroups = new Set<ConnectorDisplayCategoryGroup>();\n const categories = orderedCategories.map((category) => {\n if (!isConnectorDisplayCategory(category)) {\n const label = fallbackCategoryLabel(category);\n return {\n id: category,\n label,\n menuLabel: label,\n groupId: null,\n };\n }\n const metadata = CONNECTOR_DISPLAY_CATEGORY_META[category];\n if (metadata.group) {\n visibleGroups.add(metadata.group);\n }\n return {\n id: category,\n label: metadata.label,\n menuLabel: metadata.menuLabel,\n groupId: metadata.group ?? null,\n };\n });\n\n return {\n categories,\n groups: [...visibleGroups].map((group) => {\n const metadata = CONNECTOR_DISPLAY_CATEGORY_GROUPS[group];\n return {\n id: group,\n label: metadata.label,\n menuLabel: metadata.menuLabel,\n };\n }),\n };\n}\n\ntype ConnectorAuthMethods = Partial<\n Record<ConnectorAuthMethodId, ConnectorAuthMethodConfig>\n>;\n\ntype ConnectorConfigBase = {\n readonly label: string;\n readonly helpText: string;\n readonly category: ConnectorDisplayCategory;\n /**\n * Output categories this connector skill can generate. This is product\n * metadata for discovery and routing, not a permission/capability grant.\n */\n readonly generation?: readonly ConnectorGenerationType[];\n /**\n * Optional concept words and common-guess aliases used by connector search.\n * Lowercase only. Avoid duplicating content already in `label`,\n * runtime output keys, or auth method field keys.\n */\n readonly tags?: readonly string[];\n};\n\n/**\n * Base configuration shape for all connector types.\n */\nexport type ConnectorConfig = ConnectorConfigBase & {\n readonly authMethods: ConnectorAuthMethods;\n};\n","import {\n CONNECTOR_TYPE_KEYS,\n CONNECTOR_TYPES,\n connectorAuthMethodIdSchema,\n type ConnectorAuthMethodConfig,\n type ConnectorAuthMethodId,\n type ConnectorAuthCodeGrantAuthMethodId,\n type ConnectorDeviceAuthGrantAuthMethodId,\n type ConnectorExternalCodeGrantAuthMethodId,\n type ConnectorAuthMethodIds,\n type ConnectorAuthMethodIdsByAccessKind,\n type ConnectorAuthMethodIdsByGrantKind,\n type ConnectorAuthMethodIdsByRevokeKind,\n type ConnectorTypesByAccessKind,\n type ConnectorTypesByGrantKind,\n type ConnectorAuthClientConfigForMethod,\n type ConnectorAuthMethodConfigFor,\n type RefreshTokenAccessConnectorType,\n type ConnectorAccessConfig,\n type ConnectorAccessKind,\n type ConnectorBrowserAuthCallbackOrigin,\n type ConnectorAuthCodeCallbackOrigin,\n type ConnectorAuthCodeGrantConfig,\n type ConnectorAuthClientConfig,\n type ConnectorDeviceAuthGrantConfig,\n type ConnectorExternalCodeGrantConfig,\n type ConnectorOpenIdAuthGrantConfig,\n type ConnectorDeviceAuthStartOptionConfig,\n type ConnectorDeviceAuthStartOptions,\n type ConnectorDeviceAuthStartOptionsConfig,\n type ConnectorEnvBindings,\n type ConnectorGenerationType,\n type ConnectorGrantOutputBindings,\n type ConnectorGrantConfig,\n type ConnectorGrantKind,\n type ConnectorManualGrantFieldConfig,\n type ConnectorPlatformSecretName,\n type ConnectorRefreshTokenInputValueRef,\n type ConnectorRefreshTokenInputBindings,\n type ConnectorRefreshTokenOutputBindings,\n type ConnectorRevokeInputBindings,\n type ConnectorRevokeKind,\n type ConnectorSecretValueRef,\n type ConnectorOutputValueRef,\n type ConnectorVariableValueRef,\n type ConnectorEnvBindingValue,\n type ConnectorType,\n type AuthCodeGrantConnectorType,\n type DeviceAuthGrantConnectorType,\n type ExternalCodeGrantConnectorType,\n type OpenIdAuthGrantConnectorType,\n type ConnectorOpenIdAuthGrantAuthMethodId,\n type DynamicPublicConnectorAuthClientConfig,\n type StaticConfidentialConnectorAuthClientConfig,\n type StaticPublicConnectorAuthClientConfig,\n} from \"./connectors\";\nimport type { FeatureSwitchKey } from \"./feature-switch-key\";\n\nconst CONNECTOR_AUTH_METHOD_PRIORITY = {\n oauth: 0,\n openid: 1,\n cli: 2,\n \"api-token\": 3,\n api: 4,\n} as const satisfies Record<ConnectorAuthMethodId, number>;\nconst CONNECTOR_SECRET_REF_PREFIX = \"$secrets.\";\nconst CONNECTOR_VARIABLE_REF_PREFIX = \"$vars.\";\nconst DEFAULT_AUTH_CODE_CALLBACK_ORIGIN: ConnectorAuthCodeCallbackOrigin =\n \"web\";\n\nfunction connectorAuthMethodPriority(\n authMethod: ConnectorAuthMethodId,\n): number {\n return CONNECTOR_AUTH_METHOD_PRIORITY[authMethod];\n}\n\nexport function getConfiguredConnectorAuthMethodIds(\n type: ConnectorType,\n): ConnectorAuthMethodId[] {\n // Configured methods are raw registry entries; callers apply availability filters.\n return Object.keys(CONNECTOR_TYPES[type].authMethods)\n .map((authMethod) => {\n return connectorAuthMethodIdSchema.parse(authMethod);\n })\n .sort((a, b) => {\n const priorityDiff =\n connectorAuthMethodPriority(a) - connectorAuthMethodPriority(b);\n return priorityDiff === 0 ? a.localeCompare(b) : priorityDiff;\n });\n}\n\n/**\n * Connector utility vocabulary:\n *\n * - Available auth methods are user-selectable connection flows after\n * feature-switch and surface policy filtering.\n * - Runtime available connector types are connector types the current server\n * environment can offer as connection candidates.\n * - User connected connector types come from persisted connector rows.\n * - Runtime injection happens later when a run receives environment entries, secrets,\n * variables, and firewall context.\n */\n\n/**\n * Get one auth method config for a connector type.\n */\nexport function getConnectorAuthMethod<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n>(type: Type, authMethod: Method): ConnectorAuthMethodConfigFor<Type, Method>;\nexport function getConnectorAuthMethod(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthMethodConfig | undefined;\nexport function getConnectorAuthMethod(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthMethodConfig | undefined {\n for (const [methodId, method] of Object.entries(\n CONNECTOR_TYPES[type].authMethods,\n )) {\n if (methodId === authMethod) {\n return method;\n }\n }\n return undefined;\n}\n\nexport function getConnectorAuthMethodIdsForGrantKind<\n Type extends ConnectorType,\n Kind extends ConnectorGrantKind,\n>(\n type: Type,\n grantKind: Kind,\n): ConnectorAuthMethodIdsByGrantKind<Type, Kind>[] {\n return getConfiguredConnectorAuthMethodIds(type).filter(\n (\n authMethod,\n ): authMethod is ConnectorAuthMethodIdsByGrantKind<Type, Kind> => {\n return connectorAuthMethodHasGrantKind(type, authMethod, grantKind);\n },\n );\n}\n\nfunction connectorAuthMethodHasAccessKind<\n Type extends ConnectorType,\n Kind extends ConnectorAccessKind,\n>(\n type: Type,\n authMethod: string,\n accessKind: Kind,\n): authMethod is ConnectorAuthMethodIdsByAccessKind<Type, Kind> {\n return getConnectorAuthMethod(type, authMethod)?.access.kind === accessKind;\n}\n\nexport function getConnectorAuthMethodIdsForAccessKind<\n Type extends ConnectorType,\n Kind extends ConnectorAccessKind,\n>(\n type: Type,\n accessKind: Kind,\n): ConnectorAuthMethodIdsByAccessKind<Type, Kind>[] {\n return getConfiguredConnectorAuthMethodIds(type).filter(\n (\n authMethod,\n ): authMethod is ConnectorAuthMethodIdsByAccessKind<Type, Kind> => {\n return connectorAuthMethodHasAccessKind(type, authMethod, accessKind);\n },\n );\n}\n\nfunction connectorAuthMethodHasRevokeKind<\n Type extends ConnectorType,\n Kind extends ConnectorRevokeKind,\n>(\n type: Type,\n authMethod: string,\n revokeKind: Kind,\n): authMethod is ConnectorAuthMethodIdsByRevokeKind<Type, Kind> {\n return getConnectorAuthMethod(type, authMethod)?.revoke.kind === revokeKind;\n}\n\nexport function getConnectorAuthMethodIdsForRevokeKind<\n Type extends ConnectorType,\n Kind extends ConnectorRevokeKind,\n>(\n type: Type,\n revokeKind: Kind,\n): ConnectorAuthMethodIdsByRevokeKind<Type, Kind>[] {\n return getConfiguredConnectorAuthMethodIds(type).filter(\n (\n authMethod,\n ): authMethod is ConnectorAuthMethodIdsByRevokeKind<Type, Kind> => {\n return connectorAuthMethodHasRevokeKind(type, authMethod, revokeKind);\n },\n );\n}\n\nfunction getManualGrantFields(\n method: ConnectorAuthMethodConfig | undefined,\n): Record<string, ConnectorManualGrantFieldConfig> | undefined {\n if (!method || method.grant.kind !== \"manual\") {\n return undefined;\n }\n return method.grant.fields;\n}\n\nexport interface ConnectorManualGrantFieldNames {\n readonly secrets: readonly string[];\n readonly variables: readonly string[];\n}\n\nfunction manualGrantFieldNames(\n fields: Record<string, ConnectorManualGrantFieldConfig>,\n): ConnectorManualGrantFieldNames {\n const secretNames: string[] = [];\n const variableNames: string[] = [];\n for (const [name, cfg] of Object.entries(fields)) {\n if (cfg.storage === \"variable\") {\n variableNames.push(name);\n } else {\n secretNames.push(name);\n }\n }\n return { secrets: secretNames, variables: variableNames };\n}\n\nexport function getConnectorManualGrantFieldNamesForAuthMethod(\n type: ConnectorType,\n authMethod: string,\n): ConnectorManualGrantFieldNames | null {\n const fields = getManualGrantFields(getConnectorAuthMethod(type, authMethod));\n return fields ? manualGrantFieldNames(fields) : null;\n}\n\nexport function getConnectorManualGrantFieldNames(\n type: ConnectorType,\n): ConnectorManualGrantFieldNames | null {\n const secretNames = new Set<string>();\n const variableNames = new Set<string>();\n for (const authMethod of getConfiguredConnectorAuthMethodIds(type)) {\n const fields = getConnectorManualGrantFieldNamesForAuthMethod(\n type,\n authMethod,\n );\n if (!fields) {\n continue;\n }\n fields.secrets.forEach((name) => {\n secretNames.add(name);\n });\n fields.variables.forEach((name) => {\n variableNames.add(name);\n });\n }\n\n if (secretNames.size === 0 && variableNames.size === 0) {\n return null;\n }\n return { secrets: [...secretNames], variables: [...variableNames] };\n}\n\nfunction addValueRefPrivateName(\n valueRef: ConnectorOutputValueRef,\n privateNames: Set<string>,\n): void {\n if (isConnectorSecretValueRef(valueRef)) {\n privateNames.add(connectorSecretNameFromValueRef(valueRef));\n return;\n }\n\n privateNames.add(connectorVariableNameFromValueRef(valueRef));\n}\n\nfunction addStoragePrivateNames(\n method: ConnectorAuthMethodConfig,\n privateNames: Set<string>,\n): void {\n for (const secret of method.storage.secrets) {\n privateNames.add(secret);\n }\n for (const variable of method.storage.variables) {\n privateNames.add(variable);\n }\n}\n\nfunction addGrantPrivateNames(\n method: ConnectorAuthMethodConfig,\n privateNames: Set<string>,\n): void {\n if (method.grant.kind === \"manual\") {\n for (const fieldName of Object.keys(method.grant.fields)) {\n privateNames.add(fieldName);\n }\n }\n if (\"outputs\" in method.grant) {\n for (const valueRef of Object.values(method.grant.outputs)) {\n addValueRefPrivateName(valueRef, privateNames);\n }\n }\n}\n\nfunction addAccessPrivateNames(\n method: ConnectorAuthMethodConfig,\n privateNames: Set<string>,\n): void {\n if (method.access.kind === \"none\") {\n return;\n }\n\n for (const [envName, binding] of Object.entries(method.access.envBindings)) {\n privateNames.add(envName);\n addValueRefPrivateName(\n typeof binding === \"string\" ? binding : binding.valueRef,\n privateNames,\n );\n }\n for (const platformSecret of method.access.platformSecrets ?? []) {\n privateNames.add(platformSecret);\n }\n}\n\nfunction addRefreshPrivateNames(\n method: ConnectorAuthMethodConfig,\n privateNames: Set<string>,\n): void {\n if (method.access.kind !== \"refresh-token\") {\n return;\n }\n\n for (const valueRef of Object.values(method.access.inputs)) {\n addValueRefPrivateName(valueRef, privateNames);\n }\n for (const valueRef of Object.values(method.access.outputs)) {\n addValueRefPrivateName(valueRef, privateNames);\n }\n for (const refreshableSecret of method.access.refreshableSecrets) {\n privateNames.add(refreshableSecret);\n }\n}\n\nfunction addRevokePrivateNames(\n method: ConnectorAuthMethodConfig,\n privateNames: Set<string>,\n): void {\n if (method.revoke.kind !== \"token-revoke\") {\n return;\n }\n\n for (const valueRef of Object.values(method.revoke.inputs)) {\n addValueRefPrivateName(valueRef, privateNames);\n }\n}\n\nfunction addClientPrivateNames(\n method: ConnectorAuthMethodConfig,\n privateNames: Set<string>,\n): void {\n if (!(\"client\" in method) || !method.client) {\n return;\n }\n\n if (\"clientIdEnv\" in method.client) {\n privateNames.add(method.client.clientIdEnv);\n }\n if (\"clientSecretEnv\" in method.client) {\n privateNames.add(method.client.clientSecretEnv);\n }\n}\n\nfunction addPrivateNamesForAuthMethod(\n method: ConnectorAuthMethodConfig,\n privateNames: Set<string>,\n): void {\n addStoragePrivateNames(method, privateNames);\n addGrantPrivateNames(method, privateNames);\n addAccessPrivateNames(method, privateNames);\n addRefreshPrivateNames(method, privateNames);\n addRevokePrivateNames(method, privateNames);\n addClientPrivateNames(method, privateNames);\n}\n\n/**\n * Private connector implementation names that must not appear in public\n * catalog surfaces or public form ids.\n */\nexport function getConnectorAuthMethodPrivateNames(\n type: ConnectorType,\n authMethod: string,\n): readonly string[] {\n const method = getConnectorAuthMethod(type, authMethod);\n if (!method) {\n return [];\n }\n const privateNames = new Set<string>();\n addPrivateNamesForAuthMethod(method, privateNames);\n return [...privateNames];\n}\n\nexport function getConnectorPrivateNames(\n type: ConnectorType,\n authMethods: readonly string[] = getConfiguredConnectorAuthMethodIds(type),\n): readonly string[] {\n const privateNames = new Set<string>();\n for (const authMethod of authMethods) {\n for (const privateName of getConnectorAuthMethodPrivateNames(\n type,\n authMethod,\n )) {\n privateNames.add(privateName);\n }\n }\n return [...privateNames];\n}\n\nfunction connectorAccessEnvBindings(\n access: ConnectorAccessConfig,\n): ConnectorEnvBindings {\n switch (access.kind) {\n case \"static\":\n case \"refresh-token\":\n return access.envBindings;\n case \"none\":\n return {};\n }\n}\n\nfunction connectorAccessRuntimeEnvBindings(\n access: ConnectorAccessConfig,\n): ConnectorRuntimeEnvBindings {\n return connectorRuntimeEnvBindings(connectorAccessEnvBindings(access));\n}\n\nfunction connectorAccessPlatformSecrets(\n access: ConnectorAccessConfig,\n): readonly ConnectorPlatformSecretName[] {\n switch (access.kind) {\n case \"static\":\n case \"refresh-token\":\n return access.platformSecrets ?? [];\n case \"none\":\n return [];\n }\n}\n\nexport type ConnectorAuthMethodAccessMetadata =\n | {\n readonly kind: \"static\";\n readonly envBindings: ConnectorRuntimeEnvBindings;\n readonly platformSecrets: readonly ConnectorPlatformSecretName[];\n }\n | {\n readonly kind: \"refresh-token\";\n readonly inputs: Readonly<\n Record<string, ConnectorRefreshTokenInputMetadata>\n >;\n readonly outputs: Readonly<\n Record<string, ConnectorRefreshTokenOutputMetadata>\n >;\n readonly refreshableSecrets: readonly string[];\n readonly envBindings: ConnectorRuntimeEnvBindings;\n readonly platformSecrets: readonly ConnectorPlatformSecretName[];\n }\n | {\n readonly kind: \"none\";\n readonly envBindings: ConnectorRuntimeEnvBindings;\n readonly platformSecrets: readonly ConnectorPlatformSecretName[];\n };\n\nexport type ConnectorRefreshTokenAccessMetadata = Extract<\n ConnectorAuthMethodAccessMetadata,\n { readonly kind: \"refresh-token\" }\n>;\n\nexport interface ConnectorRefreshTokenInputMetadata {\n readonly valueRef: string;\n readonly source: Extract<\n ConnectorRuntimeBindingSource,\n { readonly kind: \"connector-secret\" | \"connector-variable\" }\n >;\n}\n\nexport interface ConnectorRefreshTokenOutputMetadata {\n readonly valueRef: string;\n readonly target: ConnectorOutputTarget;\n}\n\nexport interface ConnectorRefreshTokenMetadata {\n readonly inputs: Readonly<Record<string, ConnectorRefreshTokenInputMetadata>>;\n readonly outputs: Readonly<\n Record<string, ConnectorRefreshTokenOutputMetadata>\n >;\n readonly refreshableSecrets: readonly string[];\n}\n\nexport interface ConnectorGrantOutputMetadata {\n readonly valueRef: string;\n readonly target: ConnectorOutputTarget;\n}\n\nexport type ConnectorAuthMethodGrantMetadata =\n | {\n readonly kind:\n | \"auth-code\"\n | \"openid-auth\"\n | \"external-code\"\n | \"device-auth\";\n readonly outputs: Readonly<Record<string, ConnectorGrantOutputMetadata>>;\n }\n | {\n readonly kind: \"none\" | \"manual\" | \"managed\";\n readonly outputs: Readonly<Record<string, ConnectorGrantOutputMetadata>>;\n };\n\nexport interface ConnectorRevokeInputMetadata {\n readonly valueRef: string;\n readonly secretName: string;\n}\n\nexport type ConnectorAuthMethodRevokeMetadata =\n | {\n readonly kind: \"token-revoke\";\n readonly inputs: Readonly<Record<string, ConnectorRevokeInputMetadata>>;\n }\n | {\n readonly kind: \"none\";\n readonly inputs: Readonly<Record<string, ConnectorRevokeInputMetadata>>;\n };\n\nexport type ConnectorRuntimeBindingSource =\n | {\n readonly kind: \"connector-secret\";\n readonly name: string;\n }\n | {\n readonly kind: \"connector-variable\";\n readonly name: string;\n }\n | {\n readonly kind: \"platform-secret\";\n readonly name: ConnectorPlatformSecretName;\n };\n\nexport type ConnectorOutputTarget =\n | {\n readonly kind: \"connector-secret\";\n readonly name: string;\n }\n | {\n readonly kind: \"connector-variable\";\n readonly name: string;\n };\n\nexport interface ConnectorRuntimeBindingEntry {\n readonly envName: string;\n readonly valueRef: string;\n readonly optional: boolean;\n readonly source: ConnectorRuntimeBindingSource;\n}\n\nexport interface ConnectorAuthMethodRuntimeMetadata {\n readonly storage: {\n readonly secrets: readonly string[];\n readonly variables: readonly string[];\n };\n readonly runtimeBindings: readonly ConnectorRuntimeBindingEntry[];\n}\n\nfunction isConnectorSecretValueRef(\n valueRef: ConnectorOutputValueRef,\n): valueRef is ConnectorSecretValueRef {\n return valueRef.startsWith(CONNECTOR_SECRET_REF_PREFIX);\n}\n\nfunction connectorSecretNameFromValueRef(\n valueRef: ConnectorSecretValueRef,\n): string {\n return valueRef.slice(CONNECTOR_SECRET_REF_PREFIX.length);\n}\n\nfunction connectorVariableNameFromValueRef(\n valueRef: ConnectorVariableValueRef,\n): string {\n return valueRef.slice(CONNECTOR_VARIABLE_REF_PREFIX.length);\n}\n\nfunction connectorRefreshInputMetadata(\n valueRef: ConnectorRefreshTokenInputValueRef,\n): ConnectorRefreshTokenInputMetadata {\n if (isConnectorSecretValueRef(valueRef)) {\n return {\n valueRef,\n source: {\n kind: \"connector-secret\",\n name: connectorSecretNameFromValueRef(valueRef),\n },\n };\n }\n\n const variableName = connectorVariableNameFromValueRef(valueRef);\n return {\n valueRef,\n source: { kind: \"connector-variable\", name: variableName },\n };\n}\n\nfunction connectorRefreshOutputMetadata(\n valueRef: ConnectorOutputValueRef,\n): ConnectorRefreshTokenOutputMetadata {\n return {\n valueRef,\n target: connectorOutputTargetFromValueRef(valueRef),\n };\n}\n\nfunction connectorGrantOutputMetadata(\n valueRef: ConnectorOutputValueRef,\n): ConnectorGrantOutputMetadata {\n return connectorRefreshOutputMetadata(valueRef);\n}\n\nfunction connectorOutputTargetFromValueRef(\n valueRef: ConnectorOutputValueRef,\n): ConnectorOutputTarget {\n if (isConnectorSecretValueRef(valueRef)) {\n return {\n kind: \"connector-secret\",\n name: connectorSecretNameFromValueRef(valueRef),\n };\n }\n\n return {\n kind: \"connector-variable\",\n name: connectorVariableNameFromValueRef(valueRef),\n };\n}\n\nfunction connectorRevokeInputMetadata(\n valueRef: ConnectorSecretValueRef,\n): ConnectorRevokeInputMetadata {\n return { valueRef, secretName: connectorSecretNameFromValueRef(valueRef) };\n}\n\nfunction connectorRefreshMetadata(args: {\n readonly inputs: ConnectorRefreshTokenInputBindings;\n readonly outputs: ConnectorRefreshTokenOutputBindings;\n readonly refreshableSecrets: readonly string[];\n}): ConnectorRefreshTokenMetadata {\n return {\n inputs: Object.fromEntries(\n Object.entries(args.inputs).map(([name, valueRef]) => {\n return [name, connectorRefreshInputMetadata(valueRef)];\n }),\n ),\n outputs: Object.fromEntries(\n Object.entries(args.outputs).map(([name, valueRef]) => {\n return [name, connectorRefreshOutputMetadata(valueRef)];\n }),\n ),\n refreshableSecrets: [...args.refreshableSecrets],\n };\n}\n\nexport function getConnectorAuthMethodAccessMetadata<\n Type extends RefreshTokenAccessConnectorType,\n Method extends ConnectorAuthMethodIdsByAccessKind<Type, \"refresh-token\">,\n>(type: Type, authMethod: Method): ConnectorRefreshTokenAccessMetadata;\nexport function getConnectorAuthMethodAccessMetadata(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthMethodAccessMetadata | undefined;\nexport function getConnectorAuthMethodAccessMetadata(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthMethodAccessMetadata | undefined {\n const method = getConnectorAuthMethod(type, authMethod);\n if (!method) {\n return undefined;\n }\n\n switch (method.access.kind) {\n case \"static\": {\n return {\n kind: \"static\",\n envBindings: connectorAccessRuntimeEnvBindings(method.access),\n platformSecrets: method.access.platformSecrets ?? [],\n };\n }\n case \"refresh-token\":\n return {\n kind: \"refresh-token\",\n ...connectorRefreshMetadata(method.access),\n envBindings: connectorAccessRuntimeEnvBindings(method.access),\n platformSecrets: method.access.platformSecrets ?? [],\n };\n case \"none\":\n return {\n kind: \"none\",\n envBindings: {},\n platformSecrets: [],\n };\n }\n}\n\nfunction connectorGrantOutputMetadataMap(\n outputs: ConnectorGrantOutputBindings,\n): Record<string, ConnectorGrantOutputMetadata> {\n return Object.fromEntries(\n Object.entries(outputs).map(([name, valueRef]) => {\n return [name, connectorGrantOutputMetadata(valueRef)];\n }),\n );\n}\n\nexport function getConnectorAuthMethodGrantMetadata(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthMethodGrantMetadata | undefined {\n const method = getConnectorAuthMethod(type, authMethod);\n if (!method) {\n return undefined;\n }\n\n switch (method.grant.kind) {\n case \"auth-code\":\n case \"openid-auth\":\n case \"external-code\":\n case \"device-auth\":\n return {\n kind: method.grant.kind,\n outputs: connectorGrantOutputMetadataMap(method.grant.outputs),\n };\n case \"none\":\n case \"manual\":\n case \"managed\":\n return {\n kind: method.grant.kind,\n outputs: {},\n };\n }\n}\n\nexport function getConnectorGrantOutputTarget(\n metadata: ConnectorAuthMethodGrantMetadata,\n outputName: string,\n): ConnectorOutputTarget | undefined {\n return metadata.outputs[outputName]?.target;\n}\n\nfunction connectorRevokeInputMetadataMap(\n inputs: ConnectorRevokeInputBindings,\n): Record<string, ConnectorRevokeInputMetadata> {\n return Object.fromEntries(\n Object.entries(inputs).map(([name, valueRef]) => {\n return [name, connectorRevokeInputMetadata(valueRef)];\n }),\n );\n}\n\nexport function getConnectorAuthMethodRevokeMetadata(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthMethodRevokeMetadata | undefined {\n const method = getConnectorAuthMethod(type, authMethod);\n if (!method) {\n return undefined;\n }\n\n switch (method.revoke.kind) {\n case \"token-revoke\":\n return {\n kind: \"token-revoke\",\n inputs: connectorRevokeInputMetadataMap(method.revoke.inputs),\n };\n case \"none\":\n return {\n kind: \"none\",\n inputs: {},\n };\n }\n}\n\nexport function getConnectorRefreshOutputTarget(\n metadata: ConnectorAuthMethodAccessMetadata,\n outputName: string,\n): ConnectorOutputTarget | undefined {\n return metadata.kind === \"refresh-token\"\n ? metadata.outputs[outputName]?.target\n : undefined;\n}\n\nexport function getConnectorRuntimeBindingSecretName(\n metadata: ConnectorAuthMethodRuntimeMetadata,\n envName: string,\n): string | undefined {\n const binding = metadata.runtimeBindings.find((entry) => {\n return (\n entry.envName === envName && entry.source.kind === \"connector-secret\"\n );\n });\n return binding?.source.kind === \"connector-secret\"\n ? binding.source.name\n : undefined;\n}\n\nexport function getConnectorRuntimeBindingPlatformSecretName(\n metadata: ConnectorAuthMethodRuntimeMetadata,\n envName: string,\n): ConnectorPlatformSecretName | undefined {\n const binding = metadata.runtimeBindings.find((entry) => {\n return entry.envName === envName && entry.source.kind === \"platform-secret\";\n });\n return binding?.source.kind === \"platform-secret\"\n ? binding.source.name\n : undefined;\n}\n\nexport function connectorRefreshMetadataHasRefreshableSecret(\n metadata: ConnectorAuthMethodAccessMetadata,\n secretName: string,\n): boolean {\n return (\n metadata.kind === \"refresh-token\" &&\n metadata.refreshableSecrets.includes(secretName)\n );\n}\n\nfunction connectorPlatformSecretSource(\n secretName: string,\n platformSecrets: readonly ConnectorPlatformSecretName[],\n): ConnectorPlatformSecretName | undefined {\n return platformSecrets.find((platformSecret) => {\n return platformSecret === secretName;\n });\n}\n\nexport type ConnectorRuntimeEnvBindings = Record<\n string,\n ConnectorRefreshTokenInputValueRef\n>;\n\nfunction connectorEnvBindingValueRef(\n binding: ConnectorEnvBindingValue,\n): ConnectorRefreshTokenInputValueRef {\n return typeof binding === \"string\" ? binding : binding.valueRef;\n}\n\nfunction connectorEnvBindingIsOptional(\n binding: ConnectorEnvBindingValue,\n): boolean {\n return typeof binding === \"string\" ? false : (binding.optional ?? false);\n}\n\nfunction connectorRuntimeEnvBindings(\n envBindings: ConnectorEnvBindings,\n): ConnectorRuntimeEnvBindings {\n return Object.fromEntries(\n Object.entries(envBindings).map(([envName, binding]) => {\n return [envName, connectorEnvBindingValueRef(binding)];\n }),\n );\n}\n\nfunction connectorRuntimeBindingEntries(args: {\n readonly envBindings: ConnectorEnvBindings;\n readonly platformSecrets: readonly ConnectorPlatformSecretName[];\n}): ConnectorRuntimeBindingEntry[] {\n const entries: ConnectorRuntimeBindingEntry[] = [];\n for (const [envName, binding] of Object.entries(args.envBindings)) {\n const valueRef = connectorEnvBindingValueRef(binding);\n const optional = connectorEnvBindingIsOptional(binding);\n if (valueRef.startsWith(CONNECTOR_SECRET_REF_PREFIX)) {\n const secretName = valueRef.slice(CONNECTOR_SECRET_REF_PREFIX.length);\n const platformSecret = connectorPlatformSecretSource(\n secretName,\n args.platformSecrets,\n );\n entries.push({\n envName,\n valueRef,\n optional,\n source: platformSecret\n ? { kind: \"platform-secret\", name: platformSecret }\n : { kind: \"connector-secret\", name: secretName },\n });\n continue;\n }\n\n if (valueRef.startsWith(CONNECTOR_VARIABLE_REF_PREFIX)) {\n entries.push({\n envName,\n valueRef,\n optional,\n source: {\n kind: \"connector-variable\",\n name: valueRef.slice(CONNECTOR_VARIABLE_REF_PREFIX.length),\n },\n });\n }\n }\n return entries;\n}\n\nexport function getConnectorAuthMethodRuntimeMetadata(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthMethodRuntimeMetadata | undefined {\n const method = getConnectorAuthMethod(type, authMethod);\n if (!method) {\n return undefined;\n }\n const platformSecrets = connectorAccessPlatformSecrets(method.access);\n return {\n storage: {\n secrets: [...method.storage.secrets],\n variables: [...method.storage.variables],\n },\n runtimeBindings: connectorRuntimeBindingEntries({\n envBindings: connectorAccessEnvBindings(method.access),\n platformSecrets,\n }),\n };\n}\n\nexport function connectorAuthMethodHasGrantKind<\n Type extends ConnectorType,\n Kind extends ConnectorGrantKind,\n>(\n type: Type,\n authMethod: string,\n grantKind: Kind,\n): authMethod is ConnectorAuthMethodIdsByGrantKind<Type, Kind> {\n const method = getConnectorAuthMethod(type, authMethod);\n return method?.grant.kind === grantKind;\n}\n\nexport interface ConnectorAuthMethodRef {\n readonly type: ConnectorType;\n readonly authMethod: ConnectorAuthMethodId;\n}\n\nexport type ConnectorAuthMethodRefByGrantKind<Kind extends ConnectorGrantKind> =\n {\n readonly [Type in ConnectorTypesByGrantKind<Kind>]: {\n readonly type: Type;\n readonly authMethod: ConnectorAuthMethodIdsByGrantKind<Type, Kind>;\n };\n }[ConnectorTypesByGrantKind<Kind>];\n\nexport type ConnectorAuthMethodRefByAccessKind<\n Kind extends ConnectorAccessKind,\n> = ConnectorAuthMethodRef & {\n readonly __connectorAuthMethodAccessKind?: Kind;\n};\n\nexport type ConnectorAuthMethodRefByRevokeKind<\n Kind extends ConnectorRevokeKind,\n> = ConnectorAuthMethodRef & {\n readonly __connectorAuthMethodRevokeKind?: Kind;\n};\n\nexport function connectorAuthMethodRefHasGrantKind<\n Kind extends ConnectorGrantKind,\n>(\n authMethodRef: ConnectorAuthMethodRef,\n grantKind: Kind,\n): authMethodRef is ConnectorAuthMethodRefByGrantKind<Kind> {\n return (\n getConnectorAuthMethod(authMethodRef.type, authMethodRef.authMethod)?.grant\n .kind === grantKind\n );\n}\n\nexport function connectorAuthMethodRefHasAccessKind<\n Kind extends ConnectorAccessKind,\n>(\n authMethodRef: ConnectorAuthMethodRef,\n accessKind: Kind,\n): authMethodRef is ConnectorAuthMethodRefByAccessKind<Kind> {\n return (\n getConnectorAuthMethod(authMethodRef.type, authMethodRef.authMethod)?.access\n .kind === accessKind\n );\n}\n\nexport function connectorAuthMethodRefHasRevokeKind<\n Kind extends ConnectorRevokeKind,\n>(\n authMethodRef: ConnectorAuthMethodRef,\n revokeKind: Kind,\n): authMethodRef is ConnectorAuthMethodRefByRevokeKind<Kind> {\n return (\n getConnectorAuthMethod(authMethodRef.type, authMethodRef.authMethod)?.revoke\n .kind === revokeKind\n );\n}\n\nexport function getConnectorAuthMethodAuthCodeGrantConfig<\n Type extends AuthCodeGrantConnectorType,\n>(\n type: Type,\n authMethod: ConnectorAuthCodeGrantAuthMethodId<Type>,\n): ConnectorAuthCodeGrantConfig;\nexport function getConnectorAuthMethodAuthCodeGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthCodeGrantConfig | undefined;\nexport function getConnectorAuthMethodAuthCodeGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthCodeGrantConfig | undefined {\n const grant = getConnectorAuthMethod(type, authMethod)?.grant;\n return grant?.kind === \"auth-code\" ? grant : undefined;\n}\n\nexport function getConnectorAuthMethodOpenIdAuthGrantConfig<\n Type extends OpenIdAuthGrantConnectorType,\n>(\n type: Type,\n authMethod: ConnectorOpenIdAuthGrantAuthMethodId<Type>,\n): ConnectorOpenIdAuthGrantConfig;\nexport function getConnectorAuthMethodOpenIdAuthGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorOpenIdAuthGrantConfig | undefined;\nexport function getConnectorAuthMethodOpenIdAuthGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorOpenIdAuthGrantConfig | undefined {\n const grant = getConnectorAuthMethod(type, authMethod)?.grant;\n return grant?.kind === \"openid-auth\" ? grant : undefined;\n}\n\nexport function getConnectorAuthMethodOpenIdAuthCallbackOrigin<\n Type extends OpenIdAuthGrantConnectorType,\n>(\n type: Type,\n authMethod: ConnectorOpenIdAuthGrantAuthMethodId<Type>,\n): ConnectorBrowserAuthCallbackOrigin;\nexport function getConnectorAuthMethodOpenIdAuthCallbackOrigin(\n type: ConnectorType,\n authMethod: string,\n): ConnectorBrowserAuthCallbackOrigin | undefined;\nexport function getConnectorAuthMethodOpenIdAuthCallbackOrigin(\n type: ConnectorType,\n authMethod: string,\n): ConnectorBrowserAuthCallbackOrigin | undefined {\n const grant = getConnectorAuthMethodOpenIdAuthGrantConfig(type, authMethod);\n if (!grant) {\n return undefined;\n }\n return grant.callbackOrigin ?? \"api\";\n}\n\nexport function getConnectorAuthMethodAuthCodeCallbackOrigin<\n Type extends AuthCodeGrantConnectorType,\n>(\n type: Type,\n authMethod: ConnectorAuthCodeGrantAuthMethodId<Type>,\n): ConnectorAuthCodeCallbackOrigin;\nexport function getConnectorAuthMethodAuthCodeCallbackOrigin(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthCodeCallbackOrigin | undefined;\nexport function getConnectorAuthMethodAuthCodeCallbackOrigin(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthCodeCallbackOrigin | undefined {\n const grant = getConnectorAuthMethodAuthCodeGrantConfig(type, authMethod);\n if (!grant) {\n return undefined;\n }\n return grant.callbackOrigin ?? DEFAULT_AUTH_CODE_CALLBACK_ORIGIN;\n}\n\nexport function connectorAuthCodeCallbacksUseOnlyApiOrigin(\n type: AuthCodeGrantConnectorType,\n): boolean {\n const authMethods = getConnectorAuthMethodIdsForGrantKind(type, \"auth-code\");\n return authMethods.every((authMethod) => {\n return (\n getConnectorAuthMethodAuthCodeCallbackOrigin(type, authMethod) === \"api\"\n );\n });\n}\n\nexport function getConnectorAuthMethodExternalCodeGrantConfig<\n Type extends ExternalCodeGrantConnectorType,\n>(\n type: Type,\n authMethod: ConnectorExternalCodeGrantAuthMethodId<Type>,\n): ConnectorExternalCodeGrantConfig;\nexport function getConnectorAuthMethodExternalCodeGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorExternalCodeGrantConfig | undefined;\nexport function getConnectorAuthMethodExternalCodeGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorExternalCodeGrantConfig | undefined {\n const grant = getConnectorAuthMethod(type, authMethod)?.grant;\n return grant?.kind === \"external-code\" ? grant : undefined;\n}\n\nexport function getConnectorAuthMethodDeviceAuthGrantConfig<\n Type extends DeviceAuthGrantConnectorType,\n>(\n type: Type,\n authMethod: ConnectorDeviceAuthGrantAuthMethodId<Type>,\n): ConnectorDeviceAuthGrantConfig;\nexport function getConnectorAuthMethodDeviceAuthGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorDeviceAuthGrantConfig | undefined;\nexport function getConnectorAuthMethodDeviceAuthGrantConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorDeviceAuthGrantConfig | undefined {\n const grant = getConnectorAuthMethod(type, authMethod)?.grant;\n return grant?.kind === \"device-auth\" ? grant : undefined;\n}\n\nexport function getConnectorAuthMethodDeviceAuthStartOptionsConfig<\n Type extends DeviceAuthGrantConnectorType,\n>(\n type: Type,\n authMethod: ConnectorDeviceAuthGrantAuthMethodId<Type>,\n): ConnectorDeviceAuthStartOptionsConfig | undefined;\nexport function getConnectorAuthMethodDeviceAuthStartOptionsConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorDeviceAuthStartOptionsConfig | undefined;\nexport function getConnectorAuthMethodDeviceAuthStartOptionsConfig(\n type: ConnectorType,\n authMethod: string,\n): ConnectorDeviceAuthStartOptionsConfig | undefined {\n return getConnectorAuthMethodDeviceAuthGrantConfig(type, authMethod)\n ?.startOptions;\n}\n\nexport type ConnectorDeviceAuthStartOptionsParseResult =\n | {\n readonly success: true;\n readonly options: ConnectorDeviceAuthStartOptions;\n }\n | {\n readonly success: false;\n readonly message: string;\n };\n\nfunction parseConnectorDeviceAuthStartOption(args: {\n readonly type: ConnectorType;\n readonly authMethod: string;\n readonly optionName: string;\n readonly config: ConnectorDeviceAuthStartOptionConfig;\n readonly requestedValue: string | undefined;\n}): ConnectorDeviceAuthStartOptionsParseResult {\n const value = args.requestedValue ?? args.config.defaultValue;\n if (value === undefined) {\n if (args.config.required) {\n return {\n success: false,\n message: `${args.type} ${args.authMethod} device-auth start option ${args.optionName} is required`,\n };\n }\n return { success: true, options: {} };\n }\n\n switch (args.config.kind) {\n case \"select\": {\n if (\n !args.config.options.some((option) => {\n return option.value === value;\n })\n ) {\n return {\n success: false,\n message: `${args.type} ${args.authMethod} device-auth start option ${args.optionName} must be one of: ${args.config.options\n .map((option) => {\n return option.value;\n })\n .join(\", \")}`,\n };\n }\n return { success: true, options: { [args.optionName]: value } };\n }\n }\n}\n\nfunction connectorDeviceAuthStartOptionValue(\n options: ConnectorDeviceAuthStartOptions | undefined,\n optionName: string,\n): string | undefined {\n if (!options || !Object.hasOwn(options, optionName)) {\n return undefined;\n }\n return options[optionName];\n}\n\nexport function parseConnectorDeviceAuthStartOptions(args: {\n readonly type: ConnectorType;\n readonly authMethod: string;\n readonly options: ConnectorDeviceAuthStartOptions | undefined;\n}): ConnectorDeviceAuthStartOptionsParseResult {\n const configuredOptions = getConnectorAuthMethodDeviceAuthStartOptionsConfig(\n args.type,\n args.authMethod,\n );\n const requestedOptionKeys = Object.keys(args.options ?? {});\n\n if (!configuredOptions || Object.keys(configuredOptions).length === 0) {\n if (requestedOptionKeys.length === 0) {\n return { success: true, options: {} };\n }\n return {\n success: false,\n message: `${args.type} ${args.authMethod} device-auth start options are not supported: ${requestedOptionKeys.join(\", \")}`,\n };\n }\n\n for (const optionName of requestedOptionKeys) {\n if (!Object.hasOwn(configuredOptions, optionName)) {\n return {\n success: false,\n message: `${args.type} ${args.authMethod} device-auth start option ${optionName} is not supported`,\n };\n }\n }\n\n const normalizedOptions: Record<string, string> = {};\n for (const [optionName, config] of Object.entries(configuredOptions)) {\n const parsedOption = parseConnectorDeviceAuthStartOption({\n type: args.type,\n authMethod: args.authMethod,\n optionName,\n config,\n requestedValue: connectorDeviceAuthStartOptionValue(\n args.options,\n optionName,\n ),\n });\n if (!parsedOption.success) {\n return parsedOption;\n }\n for (const [parsedOptionName, parsedOptionValue] of Object.entries(\n parsedOption.options,\n )) {\n normalizedOptions[parsedOptionName] = parsedOptionValue;\n }\n }\n\n return { success: true, options: normalizedOptions };\n}\n\nfunction connectorGrantScopes(\n grant: ConnectorGrantConfig | undefined,\n): readonly string[] {\n switch (grant?.kind) {\n case \"auth-code\":\n case \"external-code\":\n case \"device-auth\":\n return grant.scopes;\n case \"openid-auth\":\n case \"none\":\n case \"manual\":\n case \"managed\":\n case undefined:\n return [];\n }\n}\n\nexport function getConnectorAuthMethodGrantScopes(\n type: ConnectorType,\n authMethod: string,\n): string[] {\n return [\n ...connectorGrantScopes(getConnectorAuthMethod(type, authMethod)?.grant),\n ];\n}\n\nexport function getConnectorGenerationTypes(\n type: ConnectorType,\n): readonly ConnectorGenerationType[] {\n const config = CONNECTOR_TYPES[type];\n return \"generation\" in config ? (config.generation ?? []) : [];\n}\n\nexport function getConnectorTags(type: ConnectorType): readonly string[] {\n const config = CONNECTOR_TYPES[type];\n return \"tags\" in config ? (config.tags ?? []) : [];\n}\n\nexport type ConnectorFeatureStates =\n | Partial<Record<FeatureSwitchKey, boolean>>\n | null\n | undefined;\n\nexport type ApiAuthMethodPolicy =\n | \"exclude\"\n | \"include\"\n | { readonly includeForTypes: readonly ConnectorType[] };\n\nexport interface AvailableConnectorAuthMethodsOptions {\n readonly apiAuthMethodPolicy?: ApiAuthMethodPolicy;\n}\n\nexport function isConnectorAuthMethodAvailable(\n type: ConnectorType,\n authMethod: ConnectorAuthMethodId,\n featureStates: ConnectorFeatureStates,\n): boolean {\n const method = getConnectorAuthMethod(type, authMethod);\n if (!method) {\n return false;\n }\n if (method.visible === false) {\n return false;\n }\n return !method.featureFlag || !!featureStates?.[method.featureFlag];\n}\n\nfunction shouldIncludeApiAuthMethod(\n type: ConnectorType,\n policy: ApiAuthMethodPolicy | undefined,\n): boolean {\n switch (policy) {\n case \"include\":\n return true;\n case \"exclude\":\n case undefined:\n return false;\n }\n return policy.includeForTypes.includes(type);\n}\n\n/**\n * Return user-selectable connector connection flows for a surface.\n *\n * This includes static visibility, feature-switch, and surface policy filtering.\n * It does not describe persisted connected state.\n */\nexport function getAvailableConnectorAuthMethodIds(\n type: ConnectorType,\n featureStates: ConnectorFeatureStates,\n options: AvailableConnectorAuthMethodsOptions = {},\n): ConnectorAuthMethodId[] {\n const apiAuthMethodPolicy = options.apiAuthMethodPolicy ?? \"exclude\";\n const availableAuthMethodIds: ConnectorAuthMethodId[] = [];\n const configuredAuthMethodIds = getConfiguredConnectorAuthMethodIds(type);\n\n for (const authMethod of configuredAuthMethodIds) {\n const method = getConnectorAuthMethod(type, authMethod);\n switch (method?.grant.kind) {\n case \"managed\": {\n if (!shouldIncludeApiAuthMethod(type, apiAuthMethodPolicy)) {\n continue;\n }\n break;\n }\n case \"openid-auth\":\n case \"auth-code\":\n case \"external-code\":\n case \"device-auth\":\n case \"none\":\n case \"manual\": {\n break;\n }\n case undefined: {\n continue;\n }\n }\n if (isConnectorAuthMethodAvailable(type, authMethod, featureStates)) {\n availableAuthMethodIds.push(authMethod);\n }\n }\n\n return availableAuthMethodIds;\n}\n\nexport type ConnectorEnvReader = (name: string) => string | undefined;\n\nexport type StaticConfidentialConnectorAuthClient = {\n readonly clientRegistration: \"static\";\n readonly clientType: \"confidential\";\n readonly clientId: string;\n readonly clientSecret: string;\n};\n\nexport type StaticConfidentialConnectorAuthClientIdentity = {\n readonly clientRegistration: \"static\";\n readonly clientType: \"confidential\";\n readonly clientId: string;\n};\n\nexport type StaticPublicConnectorAuthClient = {\n readonly clientRegistration: \"static\";\n readonly clientType: \"public\";\n readonly clientId: string;\n};\n\nexport type DynamicPublicConnectorAuthClient = {\n readonly clientRegistration: \"dynamic\";\n readonly clientType: \"public\";\n};\n\nexport type StaticConnectorAuthClient =\n | StaticConfidentialConnectorAuthClient\n | StaticPublicConnectorAuthClient;\n\nexport type ConnectorAuthClient =\n | StaticConnectorAuthClient\n | DynamicPublicConnectorAuthClient;\n\nexport type ConnectorAuthClientIdentity =\n | StaticConfidentialConnectorAuthClientIdentity\n | StaticPublicConnectorAuthClient\n | DynamicPublicConnectorAuthClient;\n\nexport type ConnectorAuthClientForConfig<\n Client extends ConnectorAuthClientConfig,\n> = Client extends StaticConfidentialConnectorAuthClientConfig\n ? StaticConfidentialConnectorAuthClient\n : Client extends StaticPublicConnectorAuthClientConfig\n ? StaticPublicConnectorAuthClient\n : Client extends DynamicPublicConnectorAuthClientConfig\n ? DynamicPublicConnectorAuthClient\n : never;\n\nexport type ConnectorAuthClientForMethod<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = ConnectorAuthClientForConfig<\n ConnectorAuthClientConfigForMethod<Type, Method>\n>;\n\nexport type ConnectorAuthClientIdentityForConfig<\n Client extends ConnectorAuthClientConfig,\n> = Client extends StaticConfidentialConnectorAuthClientConfig\n ? StaticConfidentialConnectorAuthClientIdentity\n : Client extends StaticPublicConnectorAuthClientConfig\n ? StaticPublicConnectorAuthClient\n : Client extends DynamicPublicConnectorAuthClientConfig\n ? DynamicPublicConnectorAuthClient\n : never;\n\nexport type ConnectorAuthClientIdentityForMethod<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = ConnectorAuthClientIdentityForConfig<\n ConnectorAuthClientConfigForMethod<Type, Method>\n>;\n\nexport type ConnectorResolvedAuthMethodClient<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n> = {\n readonly type: Type;\n readonly authMethod: Method;\n readonly authClient: ConnectorAuthClientForMethod<Type, Method>;\n};\n\nexport type ConnectorGrantKindWithAuthClient =\n | \"auth-code\"\n | \"external-code\"\n | \"device-auth\";\n\nexport type ConnectorResolvedAuthMethodClientByGrantKind<\n Kind extends ConnectorGrantKindWithAuthClient,\n> = {\n readonly [Type in ConnectorTypesByGrantKind<Kind>]: {\n readonly [Method in ConnectorAuthMethodIdsByGrantKind<\n Type,\n Kind\n >]: ConnectorResolvedAuthMethodClient<Type, Method>;\n }[ConnectorAuthMethodIdsByGrantKind<Type, Kind>];\n}[ConnectorTypesByGrantKind<Kind>];\n\nexport type ConnectorResolvedAuthMethodClientByAccessKind<\n Kind extends \"refresh-token\",\n> = {\n readonly [Type in ConnectorTypesByAccessKind<Kind>]: {\n readonly [Method in ConnectorAuthMethodIdsByAccessKind<\n Type,\n Kind\n >]: ConnectorResolvedAuthMethodClient<Type, Method>;\n }[ConnectorAuthMethodIdsByAccessKind<Type, Kind>];\n}[ConnectorTypesByAccessKind<Kind>];\n\nexport function isStaticConnectorAuthClient(\n authClient: ConnectorAuthClient,\n): authClient is StaticConnectorAuthClient {\n return authClient.clientRegistration === \"static\";\n}\n\nexport function isStaticConfidentialConnectorAuthClient(\n authClient: ConnectorAuthClient,\n): authClient is StaticConfidentialConnectorAuthClient {\n return (\n isStaticConnectorAuthClient(authClient) &&\n authClient.clientType === \"confidential\"\n );\n}\n\nexport function connectorAuthClientIdentity(\n authClient: StaticConfidentialConnectorAuthClient,\n): StaticConfidentialConnectorAuthClientIdentity;\nexport function connectorAuthClientIdentity(\n authClient: StaticPublicConnectorAuthClient,\n): StaticPublicConnectorAuthClient;\nexport function connectorAuthClientIdentity(\n authClient: DynamicPublicConnectorAuthClient,\n): DynamicPublicConnectorAuthClient;\nexport function connectorAuthClientIdentity(\n authClient: ConnectorAuthClient,\n): ConnectorAuthClientIdentity;\nexport function connectorAuthClientIdentity(\n authClient: ConnectorAuthClient,\n): ConnectorAuthClientIdentity {\n switch (authClient.clientRegistration) {\n case \"dynamic\":\n return authClient;\n case \"static\":\n return {\n clientRegistration: \"static\",\n clientType: authClient.clientType,\n clientId: authClient.clientId,\n };\n }\n}\n\nexport function connectorAuthClientIdentityForMethod<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n>(\n authClient: ConnectorAuthClientForMethod<Type, Method>,\n): ConnectorAuthClientIdentityForMethod<Type, Method> {\n return connectorAuthClientIdentity(\n authClient,\n ) as ConnectorAuthClientIdentityForMethod<Type, Method>;\n}\n\nexport function getConnectorAuthClientConfigForMethod<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n>(\n type: Type,\n authMethod: Method,\n): ConnectorAuthClientConfigForMethod<Type, Method> | undefined;\nexport function getConnectorAuthClientConfigForMethod(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthClientConfig | undefined;\nexport function getConnectorAuthClientConfigForMethod(\n type: ConnectorType,\n authMethod: string,\n): ConnectorAuthClientConfig | undefined {\n return getConnectorAuthMethod(type, authMethod)?.client;\n}\n\nexport function resolveConnectorAuthClient<\n Client extends ConnectorAuthClientConfig,\n>(\n client: Client,\n readEnv: ConnectorEnvReader,\n): ConnectorAuthClientForConfig<Client> | undefined;\nexport function resolveConnectorAuthClient(\n client: ConnectorAuthClientConfig,\n readEnv: ConnectorEnvReader,\n): ConnectorAuthClient | undefined {\n if (client.clientRegistration === \"dynamic\") {\n return { clientRegistration: \"dynamic\", clientType: \"public\" };\n }\n\n if (\"clientId\" in client) {\n if (client.clientType === \"confidential\") {\n return {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientId: client.clientId,\n clientSecret: client.clientSecret,\n };\n }\n return {\n clientRegistration: \"static\",\n clientType: \"public\",\n clientId: client.clientId,\n };\n }\n\n const clientId = readEnv(client.clientIdEnv);\n if (!clientId) {\n return undefined;\n }\n\n if (client.clientType === \"public\") {\n return { clientRegistration: \"static\", clientType: \"public\", clientId };\n }\n\n const clientSecret = readEnv(client.clientSecretEnv);\n if (!clientSecret) {\n return undefined;\n }\n\n return {\n clientRegistration: \"static\",\n clientType: \"confidential\",\n clientId,\n clientSecret,\n };\n}\n\nexport function resolveConnectorAuthClientForMethod<\n Type extends ConnectorType,\n Method extends ConnectorAuthMethodIds<Type>,\n>(\n type: Type,\n authMethod: Method,\n readEnv: ConnectorEnvReader,\n): ConnectorAuthClientForMethod<Type, Method> | undefined;\nexport function resolveConnectorAuthClientForMethod(\n type: ConnectorType,\n authMethod: string,\n readEnv: ConnectorEnvReader,\n): ConnectorAuthClient | undefined;\nexport function resolveConnectorAuthClientForMethod(\n type: ConnectorType,\n authMethod: string,\n readEnv: ConnectorEnvReader,\n): ConnectorAuthClient | undefined {\n const clientConfig = getConnectorAuthClientConfigForMethod(type, authMethod);\n if (!clientConfig) {\n return undefined;\n }\n return resolveConnectorAuthClient(clientConfig, readEnv);\n}\n\ntype AnyConnectorResolvedAuthMethodClient = {\n readonly type: ConnectorType;\n readonly authMethod: ConnectorAuthMethodId;\n readonly authClient: ConnectorAuthClient;\n};\n\nfunction resolveConnectorResolvedAuthMethodClient(\n authMethodRef: ConnectorAuthMethodRef,\n readEnv: ConnectorEnvReader,\n): AnyConnectorResolvedAuthMethodClient | undefined {\n const authClient = resolveConnectorAuthClientForMethod(\n authMethodRef.type,\n authMethodRef.authMethod,\n readEnv,\n );\n if (!authClient) {\n return undefined;\n }\n return {\n type: authMethodRef.type,\n authMethod: authMethodRef.authMethod,\n authClient,\n };\n}\n\nexport function resolveConnectorResolvedAuthMethodClientByGrantKind(\n authMethodRef: ConnectorAuthMethodRefByGrantKind<\"auth-code\">,\n readEnv: ConnectorEnvReader,\n): ConnectorResolvedAuthMethodClientByGrantKind<\"auth-code\"> | undefined;\nexport function resolveConnectorResolvedAuthMethodClientByGrantKind(\n authMethodRef: ConnectorAuthMethodRefByGrantKind<\"external-code\">,\n readEnv: ConnectorEnvReader,\n): ConnectorResolvedAuthMethodClientByGrantKind<\"external-code\"> | undefined;\nexport function resolveConnectorResolvedAuthMethodClientByGrantKind(\n authMethodRef: ConnectorAuthMethodRefByGrantKind<\"device-auth\">,\n readEnv: ConnectorEnvReader,\n): ConnectorResolvedAuthMethodClientByGrantKind<\"device-auth\"> | undefined;\nexport function resolveConnectorResolvedAuthMethodClientByGrantKind(\n authMethodRef: ConnectorAuthMethodRefByGrantKind<ConnectorGrantKindWithAuthClient>,\n readEnv: ConnectorEnvReader,\n): AnyConnectorResolvedAuthMethodClient | undefined {\n return resolveConnectorResolvedAuthMethodClient(authMethodRef, readEnv);\n}\n\nexport function resolveConnectorResolvedAuthMethodClientByAccessKind(\n authMethodRef: ConnectorAuthMethodRefByAccessKind<\"refresh-token\">,\n readEnv: ConnectorEnvReader,\n): ConnectorResolvedAuthMethodClientByAccessKind<\"refresh-token\"> | undefined;\nexport function resolveConnectorResolvedAuthMethodClientByAccessKind(\n authMethodRef: ConnectorAuthMethodRefByAccessKind<\"refresh-token\">,\n readEnv: ConnectorEnvReader,\n): AnyConnectorResolvedAuthMethodClient | undefined {\n return resolveConnectorResolvedAuthMethodClient(authMethodRef, readEnv);\n}\n\nfunction hasRuntimeAvailableAuthMethod(\n readEnv: ConnectorEnvReader,\n type: ConnectorType,\n): boolean {\n for (const authMethod of getConfiguredConnectorAuthMethodIds(type)) {\n const method = getConnectorAuthMethod(type, authMethod);\n switch (method?.grant.kind) {\n case \"auth-code\":\n case \"external-code\":\n case \"device-auth\": {\n if (resolveConnectorAuthClientForMethod(type, authMethod, readEnv)) {\n return true;\n }\n break;\n }\n case \"openid-auth\": {\n return true;\n }\n case \"manual\": {\n return true;\n }\n case \"none\": {\n return true;\n }\n case \"managed\":\n case undefined: {\n break;\n }\n }\n }\n return false;\n}\n\n/**\n * Return connector types the current runtime can offer as connection candidates.\n *\n * This is not user connected state and it does not evaluate feature switches.\n * It includes connectors with user-entered manual grant methods because they\n * do not require a server auth client, while auth-provider methods require\n * their runtime client env to exist unless their client config is static inline.\n */\nexport function getRuntimeAvailableConnectorTypes(\n readEnv: ConnectorEnvReader,\n): ConnectorType[] {\n const runtimeAvailable = new Set<ConnectorType>();\n\n for (const type of CONNECTOR_TYPE_KEYS) {\n if (hasRuntimeAvailableAuthMethod(readEnv, type)) {\n runtimeAvailable.add(type);\n }\n }\n\n return [...runtimeAvailable].sort();\n}\n\n/**\n * Get connector-owned secret storage names for a specific auth method.\n */\nexport function getConnectorOwnedSecretNames(\n type: ConnectorType,\n authMethod: string,\n): string[] {\n return connectorAuthMethodOwnedSecretNames(\n getConnectorAuthMethod(type, authMethod),\n );\n}\n\n/**\n * Get connector-owned variable storage names for a specific auth method.\n */\nexport function getConnectorOwnedVariableNames(\n type: ConnectorType,\n authMethod: string,\n): string[] {\n return connectorAuthMethodOwnedVariableNames(\n getConnectorAuthMethod(type, authMethod),\n );\n}\n\nfunction connectorAuthMethodOwnedSecretNames(\n method: ConnectorAuthMethodConfig | undefined,\n): string[] {\n return method ? [...method.storage.secrets] : [];\n}\n\nfunction connectorAuthMethodOwnedVariableNames(\n method: ConnectorAuthMethodConfig | undefined,\n): string[] {\n return method ? [...method.storage.variables] : [];\n}\n\n/**\n * Get runtime environment bindings for a specific connector auth method.\n */\nexport function getConnectorAuthMethodEnvBindings(\n type: ConnectorType,\n authMethod: string,\n): ConnectorRuntimeEnvBindings {\n const method = getConnectorAuthMethod(type, authMethod);\n return method ? connectorAccessRuntimeEnvBindings(method.access) : {};\n}\n\nexport interface ConnectorEnvBindingEntry {\n readonly authMethod: ConnectorAuthMethodId;\n readonly envName: string;\n readonly valueRef: string;\n}\n\n/**\n * Get all configured environment binding entries across auth methods.\n *\n * This is for discovery and reverse lookup. Runtime injection must use\n * getConnectorAuthMethodEnvBindings() with the selected auth method.\n */\nexport function getConnectorEnvBindingEntries(\n type: ConnectorType,\n): ConnectorEnvBindingEntry[] {\n const entries: ConnectorEnvBindingEntry[] = [];\n for (const authMethod of getConfiguredConnectorAuthMethodIds(type)) {\n const envBindings = getConnectorAuthMethodEnvBindings(type, authMethod);\n for (const [envName, valueRef] of Object.entries(envBindings)) {\n entries.push({ authMethod, envName, valueRef });\n }\n }\n return entries;\n}\n\nexport interface ConnectorStoredSecretDisplayInfo {\n readonly connectorLabel: string;\n readonly envNames: string[];\n}\n\n/**\n * Diagnostic/display lookup for a stored connector secret name.\n *\n * This reverse-searches registry metadata to explain which runtime env aliases\n * can expose a stored secret. Runtime injection must use selected auth method\n * storage metadata instead.\n */\nexport function getConnectorStoredSecretDisplayInfo(\n secretName: string,\n): ConnectorStoredSecretDisplayInfo | null {\n const allTypes = CONNECTOR_TYPE_KEYS;\n\n for (const type of allTypes) {\n const config = CONNECTOR_TYPES[type];\n\n const found = Object.values(config.authMethods).some((method) => {\n return connectorAuthMethodOwnedSecretNames(method).includes(secretName);\n });\n if (!found) {\n continue;\n }\n\n const envNames = [\n ...new Set(\n getConnectorEnvBindingEntries(type)\n .filter(({ valueRef }) => {\n return valueRef === `$secrets.${secretName}`;\n })\n .map(({ envName }) => {\n return envName;\n }),\n ),\n ];\n\n if (envNames.length > 0) {\n return { connectorLabel: config.label, envNames };\n }\n }\n\n return null;\n}\n\n/**\n * Diagnostic lookup for a runtime env alias declared by connector env bindings.\n *\n * This is for human-facing commands such as CLI doctor; runtime connector\n * behavior must use selected auth method metadata.\n */\nexport function getDiagnosticConnectorTypeForRuntimeEnvName(\n envName: string,\n): ConnectorType | null {\n for (const type of CONNECTOR_TYPE_KEYS) {\n const hasEnvName = getConnectorEnvBindingEntries(type).some((entry) => {\n return entry.envName === envName;\n });\n if (hasEnvName) {\n return type;\n }\n }\n return null;\n}\n\nexport function hasConnectorAuthCodeGrant(\n type: ConnectorType,\n): type is AuthCodeGrantConnectorType {\n return getConnectorAuthMethodIdsForGrantKind(type, \"auth-code\").length > 0;\n}\n\nexport function hasConnectorOpenIdAuthGrant(\n type: ConnectorType,\n): type is OpenIdAuthGrantConnectorType {\n return getConnectorAuthMethodIdsForGrantKind(type, \"openid-auth\").length > 0;\n}\n\nexport function hasConnectorExternalCodeGrant(\n type: ConnectorType,\n): type is ExternalCodeGrantConnectorType {\n return (\n getConnectorAuthMethodIdsForGrantKind(type, \"external-code\").length > 0\n );\n}\n\nexport function hasConnectorDeviceAuthGrant(\n type: ConnectorType,\n): type is DeviceAuthGrantConnectorType {\n return getConnectorAuthMethodIdsForGrantKind(type, \"device-auth\").length > 0;\n}\n\nfunction hasRequiredGrantScopes(\n requiredScopes: readonly string[],\n storedScopes: string[] | null,\n): boolean {\n if (requiredScopes.length === 0) return true;\n if (!storedScopes) return false;\n const storedSet = new Set(storedScopes);\n return requiredScopes.every((s) => {\n return storedSet.has(s);\n });\n}\n\n/**\n * Compute the diff between currently required scopes and stored scopes for a connector.\n */\nexport interface ScopeDiff {\n addedScopes: string[];\n removedScopes: string[];\n currentScopes: string[];\n storedScopes: string[];\n}\n\nfunction scopeDiff(\n currentScopes: readonly string[],\n storedScopes: string[] | null,\n): ScopeDiff {\n const stored = storedScopes ?? [];\n const storedSet = new Set(stored);\n const currentSet = new Set(currentScopes);\n\n return {\n addedScopes: currentScopes.filter((s) => {\n return !storedSet.has(s);\n }),\n removedScopes: stored.filter((s) => {\n return !currentSet.has(s);\n }),\n currentScopes: [...currentScopes],\n storedScopes: stored,\n };\n}\n\nexport function hasRequiredConnectorAuthMethodScopes(\n connectorType: ConnectorType,\n authMethod: string,\n storedScopes: string[] | null,\n): boolean {\n return hasRequiredGrantScopes(\n getConnectorAuthMethodGrantScopes(connectorType, authMethod),\n storedScopes,\n );\n}\n\nexport function getConnectorAuthMethodScopeDiff(\n connectorType: ConnectorType,\n authMethod: string,\n storedScopes: string[] | null,\n): ScopeDiff {\n return scopeDiff(\n getConnectorAuthMethodGrantScopes(connectorType, authMethod),\n storedScopes,\n );\n}\n"],"mappings":"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AAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;A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;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG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","names":[]}
|