@vm0/cli 9.238.6 → 9.238.8
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/{agent-RI5TB3MT.js → agent-ZQYDTKH3.js} +5 -5
- package/{banking-ZZTY42QD.js → banking-2VCIOL6P.js} +3 -3
- package/{chat-VBEB2LIU.js → chat-HIW3FYTT.js} +4 -4
- package/{chunk-2YG67KBB.js → chunk-2QGSFMHS.js} +2 -2
- package/{chunk-GE2LI4MS.js → chunk-53PEJLO7.js} +2 -2
- package/{chunk-GU4IPLKQ.js → chunk-6F7XCWTU.js} +23 -23
- package/{chunk-GU4IPLKQ.js.map → chunk-6F7XCWTU.js.map} +1 -1
- package/{chunk-MM5ESLJI.js → chunk-7DD4DWU3.js} +4 -4
- package/{chunk-MSZRROJT.js → chunk-IXT6G7VE.js} +466 -1730
- package/chunk-IXT6G7VE.js.map +1 -0
- package/{chunk-ZOTQGSKT.js → chunk-JC32CBUO.js} +2 -2
- package/{chunk-VWG7JMMA.js → chunk-RNODSGZS.js} +2 -2
- package/{chunk-3PWT6JIH.js → chunk-UPL74K7M.js} +4 -4
- package/{chunk-CEKLUICQ.js → chunk-URGJQOI7.js} +3 -3
- package/{chunk-W7KBXNOK.js → chunk-YH32H2MG.js} +15270 -386
- package/chunk-YH32H2MG.js.map +1 -0
- package/{computer-use-2GWQELMK.js → computer-use-5I7T65AQ.js} +3 -3
- package/{connector-HVF5LTLS.js → connector-GT3XTJZF.js} +4 -4
- package/{credit-DR3ZW2FG.js → credit-XSHQMFLB.js} +4 -4
- package/{developer-support-LUUIXIXG.js → developer-support-E22KJ6IN.js} +3 -3
- package/doctor-RGD5Z6QS.js +1194 -0
- package/doctor-RGD5Z6QS.js.map +1 -0
- package/{generate-EEWDZMO7.js → generate-3FIZGPD4.js} +5 -5
- package/{github-WSCP6BCL.js → github-HD6VKV4O.js} +3 -3
- package/{goal-TBQ73X4G.js → goal-CZKBZCSN.js} +3 -3
- package/{host-FF62XPMH.js → host-SLF6TPYG.js} +3 -3
- package/index.js +13 -14
- package/index.js.map +1 -1
- package/{logs-PKOHZJ5X.js → logs-2LXBYSJJ.js} +6 -7
- package/{logs-PKOHZJ5X.js.map → logs-2LXBYSJJ.js.map} +1 -1
- package/{maps-LC4V32L6.js → maps-45HJEND2.js} +3 -3
- package/{memory-IQO5L4DF.js → memory-47D3IPQ7.js} +3 -3
- package/{model-NJ3PEGDV.js → model-TVT4ELTC.js} +4 -4
- package/{model-provider-MPBVWSUT.js → model-provider-D3K3YUOF.js} +4 -4
- package/{org-FFCTROTZ.js → org-JGRFZFX4.js} +3 -3
- package/package.json +1 -1
- package/{phone-35G4MSU4.js → phone-QWCKVFHK.js} +3 -3
- package/{preference-7LX3CJUT.js → preference-CUJP35LN.js} +3 -3
- package/{relationship-PKU2B5BP.js → relationship-LMGCWEUM.js} +3 -3
- package/{resource-ENHLW46D.js → resource-XCVHZPMU.js} +8 -5
- package/resource-XCVHZPMU.js.map +1 -0
- package/{search-ZKKMK4PS.js → search-3RMFBMEZ.js} +6 -7
- package/{search-ZKKMK4PS.js.map → search-3RMFBMEZ.js.map} +1 -1
- package/{secret-7K6ED3SD.js → secret-LO2KLI5Q.js} +3 -3
- package/{slack-VTGS2LE7.js → slack-FIQUPYHT.js} +3 -3
- package/{teams-SOYUSM2G.js → teams-KTHKFCBK.js} +3 -3
- package/{telegram-F2GYSKWJ.js → telegram-TS2I2GSO.js} +3 -3
- package/{variable-6NWZSJVI.js → variable-AFCKEFT6.js} +3 -3
- package/{video-VHL2UFS7.js → video-J6JAVM3V.js} +2 -2
- package/{web-6A35VLL5.js → web-2GWKIYLR.js} +3 -3
- package/{whoami-6SU2NDI3.js → whoami-IJT7JTAH.js} +5 -5
- package/{workflow-W23JY7HR.js → workflow-OWSG5JJK.js} +3 -3
- package/zero.js +34 -34
- package/adzuna.generated-NY6BDYRS.js +0 -16
- package/adzuna.generated-NY6BDYRS.js.map +0 -1
- package/adzuna.generated-UYD26H6U.js +0 -16
- package/adzuna.generated-UYD26H6U.js.map +0 -1
- package/agentmail.generated-77KAUVC7.js +0 -16
- package/agentmail.generated-77KAUVC7.js.map +0 -1
- package/agentmail.generated-D5K3CI4D.js +0 -16
- package/agentmail.generated-D5K3CI4D.js.map +0 -1
- package/agora.generated-2XGFL5LA.js +0 -16
- package/agora.generated-2XGFL5LA.js.map +0 -1
- package/agora.generated-QAI4NT4L.js +0 -16
- package/agora.generated-QAI4NT4L.js.map +0 -1
- package/ahrefs.generated-IYB5FTIF.js +0 -16
- package/ahrefs.generated-IYB5FTIF.js.map +0 -1
- package/ahrefs.generated-N6XI6SZP.js +0 -16
- package/ahrefs.generated-N6XI6SZP.js.map +0 -1
- package/airtable.generated-4MSPGWSM.js +0 -16
- package/airtable.generated-4MSPGWSM.js.map +0 -1
- package/airtable.generated-CV3LK62W.js +0 -16
- package/airtable.generated-CV3LK62W.js.map +0 -1
- package/alchemy.generated-FXRD7HLX.js +0 -16
- package/alchemy.generated-FXRD7HLX.js.map +0 -1
- package/alchemy.generated-L5FRQKJL.js +0 -16
- package/alchemy.generated-L5FRQKJL.js.map +0 -1
- package/altium-365.generated-IZ353434.js +0 -16
- package/altium-365.generated-IZ353434.js.map +0 -1
- package/altium-365.generated-QDLMKJPS.js +0 -16
- package/altium-365.generated-QDLMKJPS.js.map +0 -1
- package/amadeus.generated-EB6AUY2W.js +0 -16
- package/amadeus.generated-EB6AUY2W.js.map +0 -1
- package/amadeus.generated-GT4FYKKP.js +0 -16
- package/amadeus.generated-GT4FYKKP.js.map +0 -1
- package/amplitude.generated-25YXZ7DS.js +0 -16
- package/amplitude.generated-25YXZ7DS.js.map +0 -1
- package/amplitude.generated-FBXLF3CF.js +0 -16
- package/amplitude.generated-FBXLF3CF.js.map +0 -1
- package/anthropic-managed-agents.generated-GGOL2DHS.js +0 -16
- package/anthropic-managed-agents.generated-GGOL2DHS.js.map +0 -1
- package/anthropic-managed-agents.generated-OV3XUSJW.js +0 -16
- package/anthropic-managed-agents.generated-OV3XUSJW.js.map +0 -1
- package/apify.generated-GDYJRE42.js +0 -16
- package/apify.generated-GDYJRE42.js.map +0 -1
- package/apify.generated-ZPU5PRK7.js +0 -16
- package/apify.generated-ZPU5PRK7.js.map +0 -1
- package/apollo.generated-2K42PO5U.js +0 -16
- package/apollo.generated-2K42PO5U.js.map +0 -1
- package/apollo.generated-Y4GJY36V.js +0 -16
- package/apollo.generated-Y4GJY36V.js.map +0 -1
- package/asana.generated-UQEJDGNN.js +0 -16
- package/asana.generated-UQEJDGNN.js.map +0 -1
- package/asana.generated-W7WM5RGV.js +0 -16
- package/asana.generated-W7WM5RGV.js.map +0 -1
- package/ashby.generated-F65MN25P.js +0 -16
- package/ashby.generated-F65MN25P.js.map +0 -1
- package/ashby.generated-FFGCPPDE.js +0 -16
- package/ashby.generated-FFGCPPDE.js.map +0 -1
- package/atlascloud.generated-OKU5H4JY.js +0 -16
- package/atlascloud.generated-OKU5H4JY.js.map +0 -1
- package/atlascloud.generated-ZVFC4NA6.js +0 -16
- package/atlascloud.generated-ZVFC4NA6.js.map +0 -1
- package/atlassian.generated-VHLFBNH6.js +0 -16
- package/atlassian.generated-VHLFBNH6.js.map +0 -1
- package/atlassian.generated-W4ILXBVF.js +0 -16
- package/atlassian.generated-W4ILXBVF.js.map +0 -1
- package/attio.generated-4L65LUMM.js +0 -16
- package/attio.generated-4L65LUMM.js.map +0 -1
- package/attio.generated-PWXTXJJ7.js +0 -16
- package/attio.generated-PWXTXJJ7.js.map +0 -1
- package/aviationstack.generated-KKNB55S7.js +0 -16
- package/aviationstack.generated-KKNB55S7.js.map +0 -1
- package/aviationstack.generated-WB2JLDN5.js +0 -16
- package/aviationstack.generated-WB2JLDN5.js.map +0 -1
- package/aws.generated-6ZS75EQE.js +0 -16
- package/aws.generated-6ZS75EQE.js.map +0 -1
- package/aws.generated-GBI2IANF.js +0 -16
- package/aws.generated-GBI2IANF.js.map +0 -1
- package/axiom.generated-IJ7MJL3K.js +0 -16
- package/axiom.generated-IJ7MJL3K.js.map +0 -1
- package/axiom.generated-PYNPK75B.js +0 -16
- package/axiom.generated-PYNPK75B.js.map +0 -1
- package/base44.generated-AJWZUK7K.js +0 -16
- package/base44.generated-AJWZUK7K.js.map +0 -1
- package/base44.generated-U5Y6426G.js +0 -16
- package/base44.generated-U5Y6426G.js.map +0 -1
- package/bentoml.generated-HI57PONV.js +0 -16
- package/bentoml.generated-HI57PONV.js.map +0 -1
- package/bentoml.generated-UZYPBUOS.js +0 -16
- package/bentoml.generated-UZYPBUOS.js.map +0 -1
- package/bfl.generated-G52LFYYD.js +0 -16
- package/bfl.generated-G52LFYYD.js.map +0 -1
- package/bfl.generated-XQZSSEDA.js +0 -16
- package/bfl.generated-XQZSSEDA.js.map +0 -1
- package/bill.generated-5FJHQPXY.js +0 -16
- package/bill.generated-5FJHQPXY.js.map +0 -1
- package/bill.generated-HYFQCA2Q.js +0 -16
- package/bill.generated-HYFQCA2Q.js.map +0 -1
- package/bitrefill.generated-GUVTJ23H.js +0 -16
- package/bitrefill.generated-GUVTJ23H.js.map +0 -1
- package/bitrefill.generated-NLFRI6LE.js +0 -16
- package/bitrefill.generated-NLFRI6LE.js.map +0 -1
- package/bitrix.generated-QGLVCTHC.js +0 -16
- package/bitrix.generated-QGLVCTHC.js.map +0 -1
- package/bitrix.generated-WBOBPY7B.js +0 -16
- package/bitrix.generated-WBOBPY7B.js.map +0 -1
- package/bland.generated-563BJLD7.js +0 -16
- package/bland.generated-563BJLD7.js.map +0 -1
- package/bland.generated-QFAOCGRV.js +0 -16
- package/bland.generated-QFAOCGRV.js.map +0 -1
- package/box.generated-GIUVTDKW.js +0 -16
- package/box.generated-GIUVTDKW.js.map +0 -1
- package/box.generated-NVWK7PUW.js +0 -16
- package/box.generated-NVWK7PUW.js.map +0 -1
- package/brave-search.generated-6G3FPSOI.js +0 -16
- package/brave-search.generated-6G3FPSOI.js.map +0 -1
- package/brave-search.generated-H7OPQC5L.js +0 -16
- package/brave-search.generated-H7OPQC5L.js.map +0 -1
- package/brevo.generated-IIYV244D.js +0 -16
- package/brevo.generated-IIYV244D.js.map +0 -1
- package/brevo.generated-WXFZ2QA3.js +0 -16
- package/brevo.generated-WXFZ2QA3.js.map +0 -1
- package/brex.generated-AFXJCCTP.js +0 -16
- package/brex.generated-AFXJCCTP.js.map +0 -1
- package/brex.generated-JB7Q5UHY.js +0 -16
- package/brex.generated-JB7Q5UHY.js.map +0 -1
- package/bright-data.generated-C3SGIKHN.js +0 -16
- package/bright-data.generated-C3SGIKHN.js.map +0 -1
- package/bright-data.generated-TDAWKLP2.js +0 -16
- package/bright-data.generated-TDAWKLP2.js.map +0 -1
- package/browser-use.generated-E5G7YL6Y.js +0 -16
- package/browser-use.generated-E5G7YL6Y.js.map +0 -1
- package/browser-use.generated-I2BIBOM4.js +0 -16
- package/browser-use.generated-I2BIBOM4.js.map +0 -1
- package/browserbase.generated-MPEQJRB2.js +0 -16
- package/browserbase.generated-MPEQJRB2.js.map +0 -1
- package/browserbase.generated-OULKTUBA.js +0 -16
- package/browserbase.generated-OULKTUBA.js.map +0 -1
- package/browserless.generated-6APMGIX6.js +0 -16
- package/browserless.generated-6APMGIX6.js.map +0 -1
- package/browserless.generated-OAZ7AVJK.js +0 -16
- package/browserless.generated-OAZ7AVJK.js.map +0 -1
- package/browserstack.generated-5JBA3BIA.js +0 -16
- package/browserstack.generated-5JBA3BIA.js.map +0 -1
- package/browserstack.generated-TUTDW7V5.js +0 -16
- package/browserstack.generated-TUTDW7V5.js.map +0 -1
- package/bubblemaps.generated-GCD4DIQT.js +0 -16
- package/bubblemaps.generated-GCD4DIQT.js.map +0 -1
- package/bubblemaps.generated-O5MAE2GL.js +0 -16
- package/bubblemaps.generated-O5MAE2GL.js.map +0 -1
- package/buffer.generated-CZ3PT3I5.js +0 -16
- package/buffer.generated-CZ3PT3I5.js.map +0 -1
- package/buffer.generated-WYAFG4MY.js +0 -16
- package/buffer.generated-WYAFG4MY.js.map +0 -1
- package/builtwith.generated-QZ5FLIIV.js +0 -16
- package/builtwith.generated-QZ5FLIIV.js.map +0 -1
- package/builtwith.generated-ULTM7PP5.js +0 -16
- package/builtwith.generated-ULTM7PP5.js.map +0 -1
- package/cal-com.generated-66LFMVPY.js +0 -16
- package/cal-com.generated-66LFMVPY.js.map +0 -1
- package/cal-com.generated-YPEDDD5J.js +0 -16
- package/cal-com.generated-YPEDDD5J.js.map +0 -1
- package/calendly.generated-CFKJKQV6.js +0 -16
- package/calendly.generated-CFKJKQV6.js.map +0 -1
- package/calendly.generated-PFJIZATI.js +0 -16
- package/calendly.generated-PFJIZATI.js.map +0 -1
- package/canva.generated-BOJJUGXF.js +0 -16
- package/canva.generated-BOJJUGXF.js.map +0 -1
- package/canva.generated-ZHJ35VU3.js +0 -16
- package/canva.generated-ZHJ35VU3.js.map +0 -1
- package/chatwoot.generated-DWKKDSPE.js +0 -16
- package/chatwoot.generated-DWKKDSPE.js.map +0 -1
- package/chatwoot.generated-S6YJHKG5.js +0 -16
- package/chatwoot.generated-S6YJHKG5.js.map +0 -1
- package/checkr.generated-NYTE4TTX.js +0 -16
- package/checkr.generated-NYTE4TTX.js.map +0 -1
- package/checkr.generated-VJCUTI6T.js +0 -16
- package/checkr.generated-VJCUTI6T.js.map +0 -1
- package/chunk-DUOJIVWA.js +0 -16427
- package/chunk-DUOJIVWA.js.map +0 -1
- package/chunk-MSZRROJT.js.map +0 -1
- package/chunk-W7KBXNOK.js.map +0 -1
- package/clado.generated-M5SSL6PD.js +0 -16
- package/clado.generated-M5SSL6PD.js.map +0 -1
- package/clado.generated-PSBCEQRT.js +0 -16
- package/clado.generated-PSBCEQRT.js.map +0 -1
- package/clearbit.generated-53TOIKS2.js +0 -16
- package/clearbit.generated-53TOIKS2.js.map +0 -1
- package/clearbit.generated-U4BWJIBF.js +0 -16
- package/clearbit.generated-U4BWJIBF.js.map +0 -1
- package/clerk.generated-HRYIFEYG.js +0 -404
- package/clerk.generated-HRYIFEYG.js.map +0 -1
- package/clerk.generated-M5C4UFQQ.js +0 -16
- package/clerk.generated-M5C4UFQQ.js.map +0 -1
- package/clickup.generated-SKZ2NPN7.js +0 -16
- package/clickup.generated-SKZ2NPN7.js.map +0 -1
- package/clickup.generated-YVJKWZXT.js +0 -16
- package/clickup.generated-YVJKWZXT.js.map +0 -1
- package/close.generated-5WRX7CKY.js +0 -16
- package/close.generated-5WRX7CKY.js.map +0 -1
- package/close.generated-M3V7AAQR.js +0 -16
- package/close.generated-M3V7AAQR.js.map +0 -1
- package/cloudflare.generated-3VWLY47X.js +0 -16
- package/cloudflare.generated-3VWLY47X.js.map +0 -1
- package/cloudflare.generated-AJY4K6U2.js +0 -16
- package/cloudflare.generated-AJY4K6U2.js.map +0 -1
- package/coda.generated-NL63PYGH.js +0 -16
- package/coda.generated-NL63PYGH.js.map +0 -1
- package/coda.generated-WE3Z3UQN.js +0 -16
- package/coda.generated-WE3Z3UQN.js.map +0 -1
- package/coingecko.generated-Q66Y5MCV.js +0 -16
- package/coingecko.generated-Q66Y5MCV.js.map +0 -1
- package/coingecko.generated-YW5JBNK3.js +0 -16
- package/coingecko.generated-YW5JBNK3.js.map +0 -1
- package/copper.generated-PZRA3BV7.js +0 -16
- package/copper.generated-PZRA3BV7.js.map +0 -1
- package/copper.generated-UBWQDA5K.js +0 -16
- package/copper.generated-UBWQDA5K.js.map +0 -1
- package/coresignal.generated-QKDHJYVO.js +0 -16
- package/coresignal.generated-QKDHJYVO.js.map +0 -1
- package/coresignal.generated-U344Q2UM.js +0 -16
- package/coresignal.generated-U344Q2UM.js.map +0 -1
- package/cronlytic.generated-4LB2MI5Q.js +0 -16
- package/cronlytic.generated-4LB2MI5Q.js.map +0 -1
- package/cronlytic.generated-PWUPGGTS.js +0 -16
- package/cronlytic.generated-PWUPGGTS.js.map +0 -1
- package/crustdata.generated-BM256Z5G.js +0 -16
- package/crustdata.generated-BM256Z5G.js.map +0 -1
- package/crustdata.generated-U3SDU6PO.js +0 -16
- package/crustdata.generated-U3SDU6PO.js.map +0 -1
- package/cursor.generated-4RRYU2NY.js +0 -16
- package/cursor.generated-4RRYU2NY.js.map +0 -1
- package/cursor.generated-OSITR3ZU.js +0 -16
- package/cursor.generated-OSITR3ZU.js.map +0 -1
- package/customer-io.generated-52XITRCS.js +0 -16
- package/customer-io.generated-52XITRCS.js.map +0 -1
- package/customer-io.generated-PXSZUHIQ.js +0 -16
- package/customer-io.generated-PXSZUHIQ.js.map +0 -1
- package/datadog.generated-S4YB2V57.js +0 -16
- package/datadog.generated-S4YB2V57.js.map +0 -1
- package/datadog.generated-Z3O2DYLP.js +0 -16
- package/datadog.generated-Z3O2DYLP.js.map +0 -1
- package/daytona.generated-NMEVCK2C.js +0 -16
- package/daytona.generated-NMEVCK2C.js.map +0 -1
- package/daytona.generated-SQ4CHQAD.js +0 -16
- package/daytona.generated-SQ4CHQAD.js.map +0 -1
- package/db9.generated-QQVGBNAG.js +0 -16
- package/db9.generated-QQVGBNAG.js.map +0 -1
- package/db9.generated-TYNLLX2L.js +0 -16
- package/db9.generated-TYNLLX2L.js.map +0 -1
- package/deel.generated-V4NV7DNO.js +0 -16
- package/deel.generated-V4NV7DNO.js.map +0 -1
- package/deel.generated-WRQX7JK3.js +0 -16
- package/deel.generated-WRQX7JK3.js.map +0 -1
- package/deepseek.generated-GAWSLOVM.js +0 -16
- package/deepseek.generated-GAWSLOVM.js.map +0 -1
- package/deepseek.generated-RV25NG3W.js +0 -16
- package/deepseek.generated-RV25NG3W.js.map +0 -1
- package/defillama.generated-OIUIVCBL.js +0 -16
- package/defillama.generated-OIUIVCBL.js.map +0 -1
- package/defillama.generated-RUE4MEAQ.js +0 -16
- package/defillama.generated-RUE4MEAQ.js.map +0 -1
- package/devto.generated-5GWHDQ2J.js +0 -16
- package/devto.generated-5GWHDQ2J.js.map +0 -1
- package/devto.generated-C3OPR4KJ.js +0 -16
- package/devto.generated-C3OPR4KJ.js.map +0 -1
- package/diffbot.generated-OCF5VCVT.js +0 -16
- package/diffbot.generated-OCF5VCVT.js.map +0 -1
- package/diffbot.generated-TNUOC4IP.js +0 -16
- package/diffbot.generated-TNUOC4IP.js.map +0 -1
- package/dify.generated-AXDXZFXG.js +0 -16
- package/dify.generated-AXDXZFXG.js.map +0 -1
- package/dify.generated-MJXSKUH7.js +0 -16
- package/dify.generated-MJXSKUH7.js.map +0 -1
- package/discord-webhook.generated-2SJ3F2ID.js +0 -16
- package/discord-webhook.generated-2SJ3F2ID.js.map +0 -1
- package/discord-webhook.generated-BECYRCFR.js +0 -16
- package/discord-webhook.generated-BECYRCFR.js.map +0 -1
- package/discord.generated-62KV4SIG.js +0 -16
- package/discord.generated-62KV4SIG.js.map +0 -1
- package/discord.generated-VMZJJHBD.js +0 -16
- package/discord.generated-VMZJJHBD.js.map +0 -1
- package/doctor-XNJOG3LG.js +0 -4127
- package/doctor-XNJOG3LG.js.map +0 -1
- package/docusign.generated-AFFJRD76.js +0 -16
- package/docusign.generated-AFFJRD76.js.map +0 -1
- package/docusign.generated-HP77UTLV.js +0 -16
- package/docusign.generated-HP77UTLV.js.map +0 -1
- package/doppler.generated-MHGWEGZ7.js +0 -16
- package/doppler.generated-MHGWEGZ7.js.map +0 -1
- package/doppler.generated-VC4SP4JE.js +0 -16
- package/doppler.generated-VC4SP4JE.js.map +0 -1
- package/doubao.generated-FZRC2AEU.js +0 -16
- package/doubao.generated-FZRC2AEU.js.map +0 -1
- package/doubao.generated-HX2SITQ2.js +0 -16
- package/doubao.generated-HX2SITQ2.js.map +0 -1
- package/drive9.generated-2PITA5TU.js +0 -16
- package/drive9.generated-2PITA5TU.js.map +0 -1
- package/drive9.generated-VRSZGUHS.js +0 -16
- package/drive9.generated-VRSZGUHS.js.map +0 -1
- package/dropbox-sign.generated-EZ5Q2P3H.js +0 -16
- package/dropbox-sign.generated-EZ5Q2P3H.js.map +0 -1
- package/dropbox-sign.generated-YNR3MPMO.js +0 -16
- package/dropbox-sign.generated-YNR3MPMO.js.map +0 -1
- package/dropbox.generated-2FDAXOCO.js +0 -142
- package/dropbox.generated-2FDAXOCO.js.map +0 -1
- package/dropbox.generated-M2GTRFYO.js +0 -16
- package/dropbox.generated-M2GTRFYO.js.map +0 -1
- package/duffel.generated-3MN62WQ6.js +0 -16
- package/duffel.generated-3MN62WQ6.js.map +0 -1
- package/duffel.generated-OXRPP5HD.js +0 -16
- package/duffel.generated-OXRPP5HD.js.map +0 -1
- package/e2b.generated-O5LENHMP.js +0 -16
- package/e2b.generated-O5LENHMP.js.map +0 -1
- package/e2b.generated-OKFNQVBP.js +0 -16
- package/e2b.generated-OKFNQVBP.js.map +0 -1
- package/elevenlabs.generated-DGHUKPPA.js +0 -16
- package/elevenlabs.generated-DGHUKPPA.js.map +0 -1
- package/elevenlabs.generated-JRVJB7GO.js +0 -16
- package/elevenlabs.generated-JRVJB7GO.js.map +0 -1
- package/etherscan.generated-Q4SQ7XZ6.js +0 -16
- package/etherscan.generated-Q4SQ7XZ6.js.map +0 -1
- package/etherscan.generated-Y2UWWGRY.js +0 -16
- package/etherscan.generated-Y2UWWGRY.js.map +0 -1
- package/etsy.generated-24NNH3DR.js +0 -16
- package/etsy.generated-24NNH3DR.js.map +0 -1
- package/etsy.generated-TL335MSF.js +0 -16
- package/etsy.generated-TL335MSF.js.map +0 -1
- package/exa.generated-PWXG74Y7.js +0 -16
- package/exa.generated-PWXG74Y7.js.map +0 -1
- package/exa.generated-QNMLVVOP.js +0 -16
- package/exa.generated-QNMLVVOP.js.map +0 -1
- package/expensify.generated-G2ZGBKBQ.js +0 -16
- package/expensify.generated-G2ZGBKBQ.js.map +0 -1
- package/expensify.generated-OHAW3AHP.js +0 -16
- package/expensify.generated-OHAW3AHP.js.map +0 -1
- package/explorium.generated-7MKBQYVS.js +0 -16
- package/explorium.generated-7MKBQYVS.js.map +0 -1
- package/explorium.generated-NWLGZPLQ.js +0 -16
- package/explorium.generated-NWLGZPLQ.js.map +0 -1
- package/faire.generated-3J7ZYAFG.js +0 -16
- package/faire.generated-3J7ZYAFG.js.map +0 -1
- package/faire.generated-TMOWPVEH.js +0 -16
- package/faire.generated-TMOWPVEH.js.map +0 -1
- package/fal.generated-BMEFTIB2.js +0 -16
- package/fal.generated-BMEFTIB2.js.map +0 -1
- package/fal.generated-WKPLQELS.js +0 -16
- package/fal.generated-WKPLQELS.js.map +0 -1
- package/figma.generated-O3DAC4DF.js +0 -16
- package/figma.generated-O3DAC4DF.js.map +0 -1
- package/figma.generated-SIDCYFC2.js +0 -16
- package/figma.generated-SIDCYFC2.js.map +0 -1
- package/firecrawl.generated-EUOMMBRG.js +0 -16
- package/firecrawl.generated-EUOMMBRG.js.map +0 -1
- package/firecrawl.generated-HJIPXQLQ.js +0 -16
- package/firecrawl.generated-HJIPXQLQ.js.map +0 -1
- package/fireflies.generated-4UJXEVZ5.js +0 -16
- package/fireflies.generated-4UJXEVZ5.js.map +0 -1
- package/fireflies.generated-LDCTDIIH.js +0 -16
- package/fireflies.generated-LDCTDIIH.js.map +0 -1
- package/flightaware.generated-2KOEWR2B.js +0 -16
- package/flightaware.generated-2KOEWR2B.js.map +0 -1
- package/flightaware.generated-U3NCDOZY.js +0 -16
- package/flightaware.generated-U3NCDOZY.js.map +0 -1
- package/freshdesk.generated-4QAEEWUR.js +0 -16
- package/freshdesk.generated-4QAEEWUR.js.map +0 -1
- package/freshdesk.generated-AKKM6RNX.js +0 -16
- package/freshdesk.generated-AKKM6RNX.js.map +0 -1
- package/gamma.generated-I4YS2CF2.js +0 -16
- package/gamma.generated-I4YS2CF2.js.map +0 -1
- package/gamma.generated-WMSDL5XO.js +0 -16
- package/gamma.generated-WMSDL5XO.js.map +0 -1
- package/garmin-connect.generated-7CAXD2YK.js +0 -16
- package/garmin-connect.generated-7CAXD2YK.js.map +0 -1
- package/garmin-connect.generated-XPHMWKRW.js +0 -16
- package/garmin-connect.generated-XPHMWKRW.js.map +0 -1
- package/gemini.generated-JOB7ODR5.js +0 -16
- package/gemini.generated-JOB7ODR5.js.map +0 -1
- package/gemini.generated-OOSH7PPV.js +0 -16
- package/gemini.generated-OOSH7PPV.js.map +0 -1
- package/github.generated-JWDPQNED.js +0 -16
- package/github.generated-JWDPQNED.js.map +0 -1
- package/github.generated-XG4A3XLA.js +0 -16
- package/github.generated-XG4A3XLA.js.map +0 -1
- package/gitlab.generated-X4BLRWTS.js +0 -16
- package/gitlab.generated-X4BLRWTS.js.map +0 -1
- package/gitlab.generated-YNQLLSR7.js +0 -16
- package/gitlab.generated-YNQLLSR7.js.map +0 -1
- package/gmail.generated-DS3XZSJN.js +0 -16
- package/gmail.generated-DS3XZSJN.js.map +0 -1
- package/gmail.generated-EW36YIP4.js +0 -16
- package/gmail.generated-EW36YIP4.js.map +0 -1
- package/gong.generated-LT2RRE65.js +0 -16
- package/gong.generated-LT2RRE65.js.map +0 -1
- package/gong.generated-WKOS2N7D.js +0 -16
- package/gong.generated-WKOS2N7D.js.map +0 -1
- package/google-ads.generated-7U3PXTR2.js +0 -16
- package/google-ads.generated-7U3PXTR2.js.map +0 -1
- package/google-ads.generated-M4252SMF.js +0 -16
- package/google-ads.generated-M4252SMF.js.map +0 -1
- package/google-analytics.generated-R4LSYXWV.js +0 -16
- package/google-analytics.generated-R4LSYXWV.js.map +0 -1
- package/google-analytics.generated-VVSGX2SR.js +0 -16
- package/google-analytics.generated-VVSGX2SR.js.map +0 -1
- package/google-calendar.generated-CEL5QTMU.js +0 -16
- package/google-calendar.generated-CEL5QTMU.js.map +0 -1
- package/google-calendar.generated-SH7YZFEN.js +0 -134
- package/google-calendar.generated-SH7YZFEN.js.map +0 -1
- package/google-cloud.generated-M6FGSIDX.js +0 -16
- package/google-cloud.generated-M6FGSIDX.js.map +0 -1
- package/google-cloud.generated-QHFDZ2QP.js +0 -16
- package/google-cloud.generated-QHFDZ2QP.js.map +0 -1
- package/google-contacts.generated-FL6Z7MTD.js +0 -16
- package/google-contacts.generated-FL6Z7MTD.js.map +0 -1
- package/google-contacts.generated-Q67YBTPW.js +0 -16
- package/google-contacts.generated-Q67YBTPW.js.map +0 -1
- package/google-docs.generated-H5SPCVL7.js +0 -16
- package/google-docs.generated-H5SPCVL7.js.map +0 -1
- package/google-docs.generated-O5POGHJR.js +0 -16
- package/google-docs.generated-O5POGHJR.js.map +0 -1
- package/google-drive.generated-AFDEMMQF.js +0 -16
- package/google-drive.generated-AFDEMMQF.js.map +0 -1
- package/google-drive.generated-GA6UGN7J.js +0 -16
- package/google-drive.generated-GA6UGN7J.js.map +0 -1
- package/google-forms.generated-AOKO24AB.js +0 -16
- package/google-forms.generated-AOKO24AB.js.map +0 -1
- package/google-forms.generated-KDCHIV43.js +0 -16
- package/google-forms.generated-KDCHIV43.js.map +0 -1
- package/google-maps.generated-R4SWRZUA.js +0 -16
- package/google-maps.generated-R4SWRZUA.js.map +0 -1
- package/google-maps.generated-R5GWNF7Q.js +0 -16
- package/google-maps.generated-R5GWNF7Q.js.map +0 -1
- package/google-meet.generated-2VF7Z73A.js +0 -16
- package/google-meet.generated-2VF7Z73A.js.map +0 -1
- package/google-meet.generated-AMMQ2O3Y.js +0 -16
- package/google-meet.generated-AMMQ2O3Y.js.map +0 -1
- package/google-search-console.generated-BCDG3TVZ.js +0 -16
- package/google-search-console.generated-BCDG3TVZ.js.map +0 -1
- package/google-search-console.generated-PZKSK4HW.js +0 -16
- package/google-search-console.generated-PZKSK4HW.js.map +0 -1
- package/google-sheets.generated-LXJXNPJR.js +0 -16
- package/google-sheets.generated-LXJXNPJR.js.map +0 -1
- package/google-sheets.generated-SD7ME3SW.js +0 -16
- package/google-sheets.generated-SD7ME3SW.js.map +0 -1
- package/granola.generated-4KD22XPO.js +0 -16
- package/granola.generated-4KD22XPO.js.map +0 -1
- package/granola.generated-GQIDICRQ.js +0 -16
- package/granola.generated-GQIDICRQ.js.map +0 -1
- package/greenhouse.generated-IDVXJRBH.js +0 -16
- package/greenhouse.generated-IDVXJRBH.js.map +0 -1
- package/greenhouse.generated-YB6YOHTV.js +0 -16
- package/greenhouse.generated-YB6YOHTV.js.map +0 -1
- package/groq.generated-P7CXNTSN.js +0 -16
- package/groq.generated-P7CXNTSN.js.map +0 -1
- package/groq.generated-VHH4SIFZ.js +0 -16
- package/groq.generated-VHH4SIFZ.js.map +0 -1
- package/gumroad.generated-C2XIJBSU.js +0 -16
- package/gumroad.generated-C2XIJBSU.js.map +0 -1
- package/gumroad.generated-OPBGPDF4.js +0 -16
- package/gumroad.generated-OPBGPDF4.js.map +0 -1
- package/helicone.generated-F6X2XNYQ.js +0 -16
- package/helicone.generated-F6X2XNYQ.js.map +0 -1
- package/helicone.generated-ZOFMVL4C.js +0 -16
- package/helicone.generated-ZOFMVL4C.js.map +0 -1
- package/heygen.generated-JMKXHZFY.js +0 -16
- package/heygen.generated-JMKXHZFY.js.map +0 -1
- package/heygen.generated-TMU5IYPU.js +0 -16
- package/heygen.generated-TMU5IYPU.js.map +0 -1
- package/hitem3d.generated-B73OTDG5.js +0 -16
- package/hitem3d.generated-B73OTDG5.js.map +0 -1
- package/hitem3d.generated-KI44N32Y.js +0 -16
- package/hitem3d.generated-KI44N32Y.js.map +0 -1
- package/honcho.generated-Q52KK24D.js +0 -16
- package/honcho.generated-Q52KK24D.js.map +0 -1
- package/honcho.generated-YNWUDVXO.js +0 -16
- package/honcho.generated-YNWUDVXO.js.map +0 -1
- package/htmlcsstoimage.generated-JHIE6RA2.js +0 -16
- package/htmlcsstoimage.generated-JHIE6RA2.js.map +0 -1
- package/htmlcsstoimage.generated-R4ZCB2LL.js +0 -16
- package/htmlcsstoimage.generated-R4ZCB2LL.js.map +0 -1
- package/hubspot.generated-6LHX6BDN.js +0 -16
- package/hubspot.generated-6LHX6BDN.js.map +0 -1
- package/hubspot.generated-77GK6PT7.js +0 -16
- package/hubspot.generated-77GK6PT7.js.map +0 -1
- package/hugging-face.generated-546AKYVT.js +0 -16
- package/hugging-face.generated-546AKYVT.js.map +0 -1
- package/hugging-face.generated-ILQYRN7Q.js +0 -16
- package/hugging-face.generated-ILQYRN7Q.js.map +0 -1
- package/hume.generated-GMZXWN5V.js +0 -16
- package/hume.generated-GMZXWN5V.js.map +0 -1
- package/hume.generated-PH2WYG6V.js +0 -16
- package/hume.generated-PH2WYG6V.js.map +0 -1
- package/hunter.generated-24W3F2AB.js +0 -16
- package/hunter.generated-24W3F2AB.js.map +0 -1
- package/hunter.generated-D2I4PUM5.js +0 -16
- package/hunter.generated-D2I4PUM5.js.map +0 -1
- package/imgur.generated-ATYGUAPB.js +0 -16
- package/imgur.generated-ATYGUAPB.js.map +0 -1
- package/imgur.generated-BCT56H2T.js +0 -16
- package/imgur.generated-BCT56H2T.js.map +0 -1
- package/infisical.generated-NASVOFWQ.js +0 -16
- package/infisical.generated-NASVOFWQ.js.map +0 -1
- package/infisical.generated-W4JAVLHC.js +0 -16
- package/infisical.generated-W4JAVLHC.js.map +0 -1
- package/insforge.generated-3KEGLQDJ.js +0 -16
- package/insforge.generated-3KEGLQDJ.js.map +0 -1
- package/insforge.generated-VP23RSUH.js +0 -16
- package/insforge.generated-VP23RSUH.js.map +0 -1
- package/instagram.generated-JZYQO3HP.js +0 -16
- package/instagram.generated-JZYQO3HP.js.map +0 -1
- package/instagram.generated-YXHEDQCV.js +0 -16
- package/instagram.generated-YXHEDQCV.js.map +0 -1
- package/instantly.generated-LSU5NZMS.js +0 -16
- package/instantly.generated-LSU5NZMS.js.map +0 -1
- package/instantly.generated-N76J3BGQ.js +0 -16
- package/instantly.generated-N76J3BGQ.js.map +0 -1
- package/intercom.generated-QRCQM7RI.js +0 -16
- package/intercom.generated-QRCQM7RI.js.map +0 -1
- package/intercom.generated-RINBGNFM.js +0 -16
- package/intercom.generated-RINBGNFM.js.map +0 -1
- package/intervals-icu.generated-KJYR72MA.js +0 -16
- package/intervals-icu.generated-KJYR72MA.js.map +0 -1
- package/intervals-icu.generated-Q3CSM7NT.js +0 -16
- package/intervals-icu.generated-Q3CSM7NT.js.map +0 -1
- package/ironclad.generated-4GBX4E66.js +0 -16
- package/ironclad.generated-4GBX4E66.js.map +0 -1
- package/ironclad.generated-KSXTA4BI.js +0 -16
- package/ironclad.generated-KSXTA4BI.js.map +0 -1
- package/jam.generated-7NEKQ4SW.js +0 -16
- package/jam.generated-7NEKQ4SW.js.map +0 -1
- package/jam.generated-MJHTSETU.js +0 -16
- package/jam.generated-MJHTSETU.js.map +0 -1
- package/jira.generated-AWULGARK.js +0 -16
- package/jira.generated-AWULGARK.js.map +0 -1
- package/jira.generated-ZXHLDZDK.js +0 -16
- package/jira.generated-ZXHLDZDK.js.map +0 -1
- package/jotform.generated-BDLAH2AZ.js +0 -16
- package/jotform.generated-BDLAH2AZ.js.map +0 -1
- package/jotform.generated-BESF7Q4F.js +0 -16
- package/jotform.generated-BESF7Q4F.js.map +0 -1
- package/klaviyo.generated-VJR6576N.js +0 -16
- package/klaviyo.generated-VJR6576N.js.map +0 -1
- package/klaviyo.generated-ZPARMY2A.js +0 -16
- package/klaviyo.generated-ZPARMY2A.js.map +0 -1
- package/kommo.generated-NU5FQGFZ.js +0 -16
- package/kommo.generated-NU5FQGFZ.js.map +0 -1
- package/kommo.generated-RY5JIBVM.js +0 -16
- package/kommo.generated-RY5JIBVM.js.map +0 -1
- package/langfuse.generated-2TEZPEGI.js +0 -16
- package/langfuse.generated-2TEZPEGI.js.map +0 -1
- package/langfuse.generated-T3ASN6RU.js +0 -16
- package/langfuse.generated-T3ASN6RU.js.map +0 -1
- package/langsmith.generated-33VTXPTC.js +0 -16
- package/langsmith.generated-33VTXPTC.js.map +0 -1
- package/langsmith.generated-7VDIOSYU.js +0 -16
- package/langsmith.generated-7VDIOSYU.js.map +0 -1
- package/lark.generated-STIJYMKG.js +0 -16
- package/lark.generated-STIJYMKG.js.map +0 -1
- package/lark.generated-VK3DHNC4.js +0 -16
- package/lark.generated-VK3DHNC4.js.map +0 -1
- package/line.generated-V4PVO2AB.js +0 -16
- package/line.generated-V4PVO2AB.js.map +0 -1
- package/line.generated-XBL22L7B.js +0 -16
- package/line.generated-XBL22L7B.js.map +0 -1
- package/linear.generated-TCGXBP4E.js +0 -16
- package/linear.generated-TCGXBP4E.js.map +0 -1
- package/linear.generated-X5TGJC5I.js +0 -16
- package/linear.generated-X5TGJC5I.js.map +0 -1
- package/loops.generated-G55SCI4R.js +0 -16
- package/loops.generated-G55SCI4R.js.map +0 -1
- package/loops.generated-NJOC2NMK.js +0 -16
- package/loops.generated-NJOC2NMK.js.map +0 -1
- package/luma-ai.generated-RZFZ75FX.js +0 -16
- package/luma-ai.generated-RZFZ75FX.js.map +0 -1
- package/luma-ai.generated-S6Z3QGDW.js +0 -16
- package/luma-ai.generated-S6Z3QGDW.js.map +0 -1
- package/luma.generated-FJYSJIGM.js +0 -16
- package/luma.generated-FJYSJIGM.js.map +0 -1
- package/luma.generated-JKZXRF7R.js +0 -16
- package/luma.generated-JKZXRF7R.js.map +0 -1
- package/mailchimp.generated-7XSORFN5.js +0 -16
- package/mailchimp.generated-7XSORFN5.js.map +0 -1
- package/mailchimp.generated-LP6YPY36.js +0 -16
- package/mailchimp.generated-LP6YPY36.js.map +0 -1
- package/mailsac.generated-2K3FIGHH.js +0 -16
- package/mailsac.generated-2K3FIGHH.js.map +0 -1
- package/mailsac.generated-UD7X5TO7.js +0 -16
- package/mailsac.generated-UD7X5TO7.js.map +0 -1
- package/make.generated-3NL7DSRL.js +0 -16
- package/make.generated-3NL7DSRL.js.map +0 -1
- package/make.generated-66C3YY2M.js +0 -16
- package/make.generated-66C3YY2M.js.map +0 -1
- package/manus.generated-IWUQTBWM.js +0 -16
- package/manus.generated-IWUQTBWM.js.map +0 -1
- package/manus.generated-VRSJEPES.js +0 -16
- package/manus.generated-VRSJEPES.js.map +0 -1
- package/mapbox.generated-FWIAPHMS.js +0 -16
- package/mapbox.generated-FWIAPHMS.js.map +0 -1
- package/mapbox.generated-WKY7P7QO.js +0 -16
- package/mapbox.generated-WKY7P7QO.js.map +0 -1
- package/maskdb.generated-G7ZJSNRB.js +0 -16
- package/maskdb.generated-G7ZJSNRB.js.map +0 -1
- package/maskdb.generated-IZ3HKDOG.js +0 -65
- package/maskdb.generated-IZ3HKDOG.js.map +0 -1
- package/massive.generated-H52ZKQ3G.js +0 -16
- package/massive.generated-H52ZKQ3G.js.map +0 -1
- package/massive.generated-HS33B6JC.js +0 -16
- package/massive.generated-HS33B6JC.js.map +0 -1
- package/mathpix.generated-M7CZRVBY.js +0 -16
- package/mathpix.generated-M7CZRVBY.js.map +0 -1
- package/mathpix.generated-XEBEMSSG.js +0 -16
- package/mathpix.generated-XEBEMSSG.js.map +0 -1
- package/mem0.generated-F5QOASVA.js +0 -16
- package/mem0.generated-F5QOASVA.js.map +0 -1
- package/mem0.generated-SV4AQSTK.js +0 -16
- package/mem0.generated-SV4AQSTK.js.map +0 -1
- package/mercury.generated-7RXKRQ2E.js +0 -16
- package/mercury.generated-7RXKRQ2E.js.map +0 -1
- package/mercury.generated-JDW5IOTZ.js +0 -16
- package/mercury.generated-JDW5IOTZ.js.map +0 -1
- package/meshy.generated-U2YOW2KQ.js +0 -16
- package/meshy.generated-U2YOW2KQ.js.map +0 -1
- package/meshy.generated-XXWGLFRR.js +0 -16
- package/meshy.generated-XXWGLFRR.js.map +0 -1
- package/meta-ads.generated-BO4KSWTB.js +0 -16
- package/meta-ads.generated-BO4KSWTB.js.map +0 -1
- package/meta-ads.generated-MNGO4S6H.js +0 -16
- package/meta-ads.generated-MNGO4S6H.js.map +0 -1
- package/metabase.generated-I7BI2SCP.js +0 -16
- package/metabase.generated-I7BI2SCP.js.map +0 -1
- package/metabase.generated-VROE6QM4.js +0 -16
- package/metabase.generated-VROE6QM4.js.map +0 -1
- package/microsoft-365.generated-7SIBC7I5.js +0 -16
- package/microsoft-365.generated-7SIBC7I5.js.map +0 -1
- package/microsoft-365.generated-EY4W6XGM.js +0 -16
- package/microsoft-365.generated-EY4W6XGM.js.map +0 -1
- package/minimax.generated-2QOHIYJ7.js +0 -16
- package/minimax.generated-2QOHIYJ7.js.map +0 -1
- package/minimax.generated-TUZBVXP6.js +0 -16
- package/minimax.generated-TUZBVXP6.js.map +0 -1
- package/miro.generated-6RVCMIKF.js +0 -16
- package/miro.generated-6RVCMIKF.js.map +0 -1
- package/miro.generated-NI3L32HY.js +0 -16
- package/miro.generated-NI3L32HY.js.map +0 -1
- package/mixpanel.generated-GI2KRDBR.js +0 -16
- package/mixpanel.generated-GI2KRDBR.js.map +0 -1
- package/mixpanel.generated-XHI2GL4M.js +0 -16
- package/mixpanel.generated-XHI2GL4M.js.map +0 -1
- package/modal.generated-IOMB6JHM.js +0 -16
- package/modal.generated-IOMB6JHM.js.map +0 -1
- package/modal.generated-VT4LLGOY.js +0 -16
- package/modal.generated-VT4LLGOY.js.map +0 -1
- package/monday.generated-3GCO245A.js +0 -16
- package/monday.generated-3GCO245A.js.map +0 -1
- package/monday.generated-ICJN6SA3.js +0 -16
- package/monday.generated-ICJN6SA3.js.map +0 -1
- package/moss.generated-E3464JIJ.js +0 -16
- package/moss.generated-E3464JIJ.js.map +0 -1
- package/moss.generated-QL4VPRWK.js +0 -16
- package/moss.generated-QL4VPRWK.js.map +0 -1
- package/msg9.generated-SRQZAQKQ.js +0 -16
- package/msg9.generated-SRQZAQKQ.js.map +0 -1
- package/msg9.generated-UKFSS263.js +0 -16
- package/msg9.generated-UKFSS263.js.map +0 -1
- package/n8n.generated-2BBTLDXE.js +0 -16
- package/n8n.generated-2BBTLDXE.js.map +0 -1
- package/n8n.generated-MAM3IF7E.js +0 -16
- package/n8n.generated-MAM3IF7E.js.map +0 -1
- package/neon.generated-ASFFUR25.js +0 -16
- package/neon.generated-ASFFUR25.js.map +0 -1
- package/neon.generated-WICH623I.js +0 -16
- package/neon.generated-WICH623I.js.map +0 -1
- package/netdata.generated-65SJSGA2.js +0 -16
- package/netdata.generated-65SJSGA2.js.map +0 -1
- package/netdata.generated-ZMPYNQTY.js +0 -16
- package/netdata.generated-ZMPYNQTY.js.map +0 -1
- package/netsuite.generated-3NXSZOXT.js +0 -16
- package/netsuite.generated-3NXSZOXT.js.map +0 -1
- package/netsuite.generated-XV3WXA4I.js +0 -16
- package/netsuite.generated-XV3WXA4I.js.map +0 -1
- package/nintendo-store.generated-2NZUKBVJ.js +0 -16
- package/nintendo-store.generated-2NZUKBVJ.js.map +0 -1
- package/nintendo-store.generated-EPABCSLJ.js +0 -16
- package/nintendo-store.generated-EPABCSLJ.js.map +0 -1
- package/nintendo-switch-parental-controls.generated-35V4BZRI.js +0 -16
- package/nintendo-switch-parental-controls.generated-35V4BZRI.js.map +0 -1
- package/nintendo-switch-parental-controls.generated-BJ3HY3NH.js +0 -16
- package/nintendo-switch-parental-controls.generated-BJ3HY3NH.js.map +0 -1
- package/notion.generated-26PVMFZJ.js +0 -16
- package/notion.generated-26PVMFZJ.js.map +0 -1
- package/notion.generated-JVIPX54E.js +0 -16
- package/notion.generated-JVIPX54E.js.map +0 -1
- package/novita.generated-2FJJZF2S.js +0 -16
- package/novita.generated-2FJJZF2S.js.map +0 -1
- package/novita.generated-UIQ42IUL.js +0 -16
- package/novita.generated-UIQ42IUL.js.map +0 -1
- package/nyne.generated-PSZUG5QY.js +0 -16
- package/nyne.generated-PSZUG5QY.js.map +0 -1
- package/nyne.generated-R3VNG53M.js +0 -16
- package/nyne.generated-R3VNG53M.js.map +0 -1
- package/onyx.generated-3JJWSPBR.js +0 -16
- package/onyx.generated-3JJWSPBR.js.map +0 -1
- package/onyx.generated-KS4UKL7H.js +0 -16
- package/onyx.generated-KS4UKL7H.js.map +0 -1
- package/openai.generated-25H24BGJ.js +0 -16
- package/openai.generated-25H24BGJ.js.map +0 -1
- package/openai.generated-TPRYCRRV.js +0 -16
- package/openai.generated-TPRYCRRV.js.map +0 -1
- package/openrouter.generated-5XPMZOCP.js +0 -16
- package/openrouter.generated-5XPMZOCP.js.map +0 -1
- package/openrouter.generated-NBDHO6LW.js +0 -16
- package/openrouter.generated-NBDHO6LW.js.map +0 -1
- package/openweather.generated-7ZHVSI2Q.js +0 -16
- package/openweather.generated-7ZHVSI2Q.js.map +0 -1
- package/openweather.generated-ROMIRSUS.js +0 -16
- package/openweather.generated-ROMIRSUS.js.map +0 -1
- package/outlook-calendar.generated-2JDC2IYT.js +0 -16
- package/outlook-calendar.generated-2JDC2IYT.js.map +0 -1
- package/outlook-calendar.generated-JTTEECF3.js +0 -16
- package/outlook-calendar.generated-JTTEECF3.js.map +0 -1
- package/outlook-mail.generated-FW45O7RQ.js +0 -16
- package/outlook-mail.generated-FW45O7RQ.js.map +0 -1
- package/outlook-mail.generated-SQEH2MNU.js +0 -16
- package/outlook-mail.generated-SQEH2MNU.js.map +0 -1
- package/pandadoc.generated-7S5GCGXI.js +0 -16
- package/pandadoc.generated-7S5GCGXI.js.map +0 -1
- package/pandadoc.generated-BUPVIHD4.js +0 -16
- package/pandadoc.generated-BUPVIHD4.js.map +0 -1
- package/parallel.generated-T2QM2RQL.js +0 -16
- package/parallel.generated-T2QM2RQL.js.map +0 -1
- package/parallel.generated-XAGRZVYH.js +0 -16
- package/parallel.generated-XAGRZVYH.js.map +0 -1
- package/paypal.generated-MDKROCJG.js +0 -16
- package/paypal.generated-MDKROCJG.js.map +0 -1
- package/paypal.generated-YZYYL7HX.js +0 -16
- package/paypal.generated-YZYYL7HX.js.map +0 -1
- package/pdf4me.generated-2HAK664D.js +0 -16
- package/pdf4me.generated-2HAK664D.js.map +0 -1
- package/pdf4me.generated-B5GJCNOL.js +0 -16
- package/pdf4me.generated-B5GJCNOL.js.map +0 -1
- package/pdfco.generated-IJOLQ4OG.js +0 -16
- package/pdfco.generated-IJOLQ4OG.js.map +0 -1
- package/pdfco.generated-PWLZXEBR.js +0 -16
- package/pdfco.generated-PWLZXEBR.js.map +0 -1
- package/pdforge.generated-NEOKWH7H.js +0 -16
- package/pdforge.generated-NEOKWH7H.js.map +0 -1
- package/pdforge.generated-PAQH2WGV.js +0 -16
- package/pdforge.generated-PAQH2WGV.js.map +0 -1
- package/people-data-labs.generated-PTKJIK4D.js +0 -16
- package/people-data-labs.generated-PTKJIK4D.js.map +0 -1
- package/people-data-labs.generated-UJB75LNA.js +0 -16
- package/people-data-labs.generated-UJB75LNA.js.map +0 -1
- package/perplexity.generated-BGTCHWGF.js +0 -16
- package/perplexity.generated-BGTCHWGF.js.map +0 -1
- package/perplexity.generated-YBA7RZ7S.js +0 -16
- package/perplexity.generated-YBA7RZ7S.js.map +0 -1
- package/pexels.generated-MDI2MAKR.js +0 -16
- package/pexels.generated-MDI2MAKR.js.map +0 -1
- package/pexels.generated-YSXOXFRS.js +0 -16
- package/pexels.generated-YSXOXFRS.js.map +0 -1
- package/pika.generated-ELAYHKXU.js +0 -16
- package/pika.generated-ELAYHKXU.js.map +0 -1
- package/pika.generated-YU3W7HY6.js +0 -16
- package/pika.generated-YU3W7HY6.js.map +0 -1
- package/pinecone.generated-7XMAYCDM.js +0 -16
- package/pinecone.generated-7XMAYCDM.js.map +0 -1
- package/pinecone.generated-HA3L6WIX.js +0 -16
- package/pinecone.generated-HA3L6WIX.js.map +0 -1
- package/pipedream.generated-WDCAHL7H.js +0 -16
- package/pipedream.generated-WDCAHL7H.js.map +0 -1
- package/pipedream.generated-ZAF4A2F4.js +0 -16
- package/pipedream.generated-ZAF4A2F4.js.map +0 -1
- package/pipedrive.generated-NDA6AYZP.js +0 -16
- package/pipedrive.generated-NDA6AYZP.js.map +0 -1
- package/pipedrive.generated-VVXKZRU4.js +0 -16
- package/pipedrive.generated-VVXKZRU4.js.map +0 -1
- package/plain.generated-37QOE5LH.js +0 -16
- package/plain.generated-37QOE5LH.js.map +0 -1
- package/plain.generated-MHOVVMJY.js +0 -16
- package/plain.generated-MHOVVMJY.js.map +0 -1
- package/plausible.generated-O5JNHT2T.js +0 -16
- package/plausible.generated-O5JNHT2T.js.map +0 -1
- package/plausible.generated-Q57V3KFO.js +0 -16
- package/plausible.generated-Q57V3KFO.js.map +0 -1
- package/playstation.generated-5XSS5QPM.js +0 -16
- package/playstation.generated-5XSS5QPM.js.map +0 -1
- package/playstation.generated-GK3DIZEG.js +0 -16
- package/playstation.generated-GK3DIZEG.js.map +0 -1
- package/podchaser.generated-QUJGEYMJ.js +0 -16
- package/podchaser.generated-QUJGEYMJ.js.map +0 -1
- package/podchaser.generated-S6HTKMY2.js +0 -16
- package/podchaser.generated-S6HTKMY2.js.map +0 -1
- package/porkbun.generated-43VWHT5M.js +0 -16
- package/porkbun.generated-43VWHT5M.js.map +0 -1
- package/porkbun.generated-TLAPT422.js +0 -16
- package/porkbun.generated-TLAPT422.js.map +0 -1
- package/posthog.generated-A7DO447R.js +0 -16
- package/posthog.generated-A7DO447R.js.map +0 -1
- package/posthog.generated-NNGYQHNC.js +0 -16
- package/posthog.generated-NNGYQHNC.js.map +0 -1
- package/printful.generated-7T5CLGEJ.js +0 -16
- package/printful.generated-7T5CLGEJ.js.map +0 -1
- package/printful.generated-MDZ4FDEQ.js +0 -16
- package/printful.generated-MDZ4FDEQ.js.map +0 -1
- package/prisma-postgres.generated-MWPUK6L5.js +0 -16
- package/prisma-postgres.generated-MWPUK6L5.js.map +0 -1
- package/prisma-postgres.generated-RPR5BGGD.js +0 -16
- package/prisma-postgres.generated-RPR5BGGD.js.map +0 -1
- package/productlane.generated-BZH2M52E.js +0 -16
- package/productlane.generated-BZH2M52E.js.map +0 -1
- package/productlane.generated-EVDEW5OR.js +0 -16
- package/productlane.generated-EVDEW5OR.js.map +0 -1
- package/profound.generated-ITNYFF6E.js +0 -16
- package/profound.generated-ITNYFF6E.js.map +0 -1
- package/profound.generated-JOYJYP5X.js +0 -16
- package/profound.generated-JOYJYP5X.js.map +0 -1
- package/pushinator.generated-6HTDLNVJ.js +0 -16
- package/pushinator.generated-6HTDLNVJ.js.map +0 -1
- package/pushinator.generated-WT46YHCO.js +0 -16
- package/pushinator.generated-WT46YHCO.js.map +0 -1
- package/qdrant.generated-LQBRAMOK.js +0 -16
- package/qdrant.generated-LQBRAMOK.js.map +0 -1
- package/qdrant.generated-QGMEOAFO.js +0 -16
- package/qdrant.generated-QGMEOAFO.js.map +0 -1
- package/qiita.generated-CETQKI6U.js +0 -16
- package/qiita.generated-CETQKI6U.js.map +0 -1
- package/qiita.generated-PHTZ72JL.js +0 -16
- package/qiita.generated-PHTZ72JL.js.map +0 -1
- package/quickbooks.generated-5535LLZF.js +0 -16
- package/quickbooks.generated-5535LLZF.js.map +0 -1
- package/quickbooks.generated-ILTCAJRO.js +0 -16
- package/quickbooks.generated-ILTCAJRO.js.map +0 -1
- package/railway-project.generated-AFZKE36K.js +0 -16
- package/railway-project.generated-AFZKE36K.js.map +0 -1
- package/railway-project.generated-WMHWYEZ7.js +0 -16
- package/railway-project.generated-WMHWYEZ7.js.map +0 -1
- package/railway.generated-I6VCXM4F.js +0 -16
- package/railway.generated-I6VCXM4F.js.map +0 -1
- package/railway.generated-ZTDW2OVF.js +0 -16
- package/railway.generated-ZTDW2OVF.js.map +0 -1
- package/ramp.generated-GDRLFPGX.js +0 -16
- package/ramp.generated-GDRLFPGX.js.map +0 -1
- package/ramp.generated-RJKZQLIG.js +0 -16
- package/ramp.generated-RJKZQLIG.js.map +0 -1
- package/reap.generated-6B3G2OPC.js +0 -16
- package/reap.generated-6B3G2OPC.js.map +0 -1
- package/reap.generated-WAP7WY76.js +0 -16
- package/reap.generated-WAP7WY76.js.map +0 -1
- package/recraft.generated-JIRZPKOH.js +0 -16
- package/recraft.generated-JIRZPKOH.js.map +0 -1
- package/recraft.generated-S6LUCQ6Y.js +0 -16
- package/recraft.generated-S6LUCQ6Y.js.map +0 -1
- package/reddit.generated-X64MIQ7K.js +0 -16
- package/reddit.generated-X64MIQ7K.js.map +0 -1
- package/reddit.generated-XC5ZGYZS.js +0 -16
- package/reddit.generated-XC5ZGYZS.js.map +0 -1
- package/reducto.generated-A6EG7MKI.js +0 -16
- package/reducto.generated-A6EG7MKI.js.map +0 -1
- package/reducto.generated-HEQ36ZYP.js +0 -16
- package/reducto.generated-HEQ36ZYP.js.map +0 -1
- package/render.generated-KAN3ERCP.js +0 -16
- package/render.generated-KAN3ERCP.js.map +0 -1
- package/render.generated-ULLCX5I5.js +0 -16
- package/render.generated-ULLCX5I5.js.map +0 -1
- package/rentcast.generated-2LZTVFHF.js +0 -16
- package/rentcast.generated-2LZTVFHF.js.map +0 -1
- package/rentcast.generated-GBBZDYLS.js +0 -16
- package/rentcast.generated-GBBZDYLS.js.map +0 -1
- package/replicate.generated-OTF3BU6Q.js +0 -16
- package/replicate.generated-OTF3BU6Q.js.map +0 -1
- package/replicate.generated-PVWXEG2R.js +0 -16
- package/replicate.generated-PVWXEG2R.js.map +0 -1
- package/reportei.generated-3OMXGZLW.js +0 -16
- package/reportei.generated-3OMXGZLW.js.map +0 -1
- package/reportei.generated-OMZDRYF2.js +0 -16
- package/reportei.generated-OMZDRYF2.js.map +0 -1
- package/resend.generated-SNQKFCFU.js +0 -16
- package/resend.generated-SNQKFCFU.js.map +0 -1
- package/resend.generated-ZLELGIAA.js +0 -16
- package/resend.generated-ZLELGIAA.js.map +0 -1
- package/resource-ENHLW46D.js.map +0 -1
- package/revenuecat.generated-XMPGJ7BU.js +0 -16
- package/revenuecat.generated-XMPGJ7BU.js.map +0 -1
- package/revenuecat.generated-XQNHNP6K.js +0 -16
- package/revenuecat.generated-XQNHNP6K.js.map +0 -1
- package/runway.generated-6NJMUATX.js +0 -16
- package/runway.generated-6NJMUATX.js.map +0 -1
- package/runway.generated-YIMWKSK2.js +0 -16
- package/runway.generated-YIMWKSK2.js.map +0 -1
- package/salesforce.generated-5KLSM6C3.js +0 -16
- package/salesforce.generated-5KLSM6C3.js.map +0 -1
- package/salesforce.generated-WZUNVLKC.js +0 -16
- package/salesforce.generated-WZUNVLKC.js.map +0 -1
- package/scrapeninja.generated-77MTR2FT.js +0 -16
- package/scrapeninja.generated-77MTR2FT.js.map +0 -1
- package/scrapeninja.generated-HNT27RIK.js +0 -16
- package/scrapeninja.generated-HNT27RIK.js.map +0 -1
- package/segment.generated-PTNCAEPN.js +0 -16
- package/segment.generated-PTNCAEPN.js.map +0 -1
- package/segment.generated-ZQ5G35SN.js +0 -16
- package/segment.generated-ZQ5G35SN.js.map +0 -1
- package/semrush.generated-JSFLSUJH.js +0 -16
- package/semrush.generated-JSFLSUJH.js.map +0 -1
- package/semrush.generated-TZ6FLCLI.js +0 -16
- package/semrush.generated-TZ6FLCLI.js.map +0 -1
- package/sendgrid.generated-7ZIRLCBY.js +0 -16
- package/sendgrid.generated-7ZIRLCBY.js.map +0 -1
- package/sendgrid.generated-ZIISZJJV.js +0 -16
- package/sendgrid.generated-ZIISZJJV.js.map +0 -1
- package/sentry.generated-DLHCTOF4.js +0 -16
- package/sentry.generated-DLHCTOF4.js.map +0 -1
- package/sentry.generated-FQGBSZOW.js +0 -16
- package/sentry.generated-FQGBSZOW.js.map +0 -1
- package/serpapi.generated-D3XXB6PM.js +0 -16
- package/serpapi.generated-D3XXB6PM.js.map +0 -1
- package/serpapi.generated-T7TWC2EV.js +0 -16
- package/serpapi.generated-T7TWC2EV.js.map +0 -1
- package/servicenow.generated-6JAOXT2T.js +0 -16
- package/servicenow.generated-6JAOXT2T.js.map +0 -1
- package/servicenow.generated-SYD53QKL.js +0 -16
- package/servicenow.generated-SYD53QKL.js.map +0 -1
- package/shopify.generated-CBWJCWDO.js +0 -16
- package/shopify.generated-CBWJCWDO.js.map +0 -1
- package/shopify.generated-J5LJOTL2.js +0 -16
- package/shopify.generated-J5LJOTL2.js.map +0 -1
- package/shortio.generated-33OGHBXA.js +0 -16
- package/shortio.generated-33OGHBXA.js.map +0 -1
- package/shortio.generated-AK4HELH2.js +0 -16
- package/shortio.generated-AK4HELH2.js.map +0 -1
- package/similarweb.generated-LS5LWTS3.js +0 -16
- package/similarweb.generated-LS5LWTS3.js.map +0 -1
- package/similarweb.generated-U2WLW7PD.js +0 -16
- package/similarweb.generated-U2WLW7PD.js.map +0 -1
- package/slack-webhook.generated-CH6MAJDM.js +0 -16
- package/slack-webhook.generated-CH6MAJDM.js.map +0 -1
- package/slack-webhook.generated-WFSKREKT.js +0 -16
- package/slack-webhook.generated-WFSKREKT.js.map +0 -1
- package/slack.generated-K6CNNTWI.js +0 -16
- package/slack.generated-K6CNNTWI.js.map +0 -1
- package/slack.generated-OHDZZ2UW.js +0 -473
- package/slack.generated-OHDZZ2UW.js.map +0 -1
- package/slock.generated-GVG2UBIX.js +0 -16
- package/slock.generated-GVG2UBIX.js.map +0 -1
- package/slock.generated-UPM3H7WO.js +0 -16
- package/slock.generated-UPM3H7WO.js.map +0 -1
- package/snowflake.generated-776JFNOH.js +0 -16
- package/snowflake.generated-776JFNOH.js.map +0 -1
- package/snowflake.generated-ZIGWWUF7.js +0 -16
- package/snowflake.generated-ZIGWWUF7.js.map +0 -1
- package/sociavault.generated-VBPZFT3O.js +0 -16
- package/sociavault.generated-VBPZFT3O.js.map +0 -1
- package/sociavault.generated-ZYWACDCU.js +0 -16
- package/sociavault.generated-ZYWACDCU.js.map +0 -1
- package/sponge.generated-P7T47F43.js +0 -16
- package/sponge.generated-P7T47F43.js.map +0 -1
- package/sponge.generated-QTEUYJHA.js +0 -16
- package/sponge.generated-QTEUYJHA.js.map +0 -1
- package/spotify.generated-EJQTESOU.js +0 -16
- package/spotify.generated-EJQTESOU.js.map +0 -1
- package/spotify.generated-OXNISOTN.js +0 -16
- package/spotify.generated-OXNISOTN.js.map +0 -1
- package/sproutgigs.generated-3FP2NV5J.js +0 -16
- package/sproutgigs.generated-3FP2NV5J.js.map +0 -1
- package/sproutgigs.generated-CHKBYDBP.js +0 -16
- package/sproutgigs.generated-CHKBYDBP.js.map +0 -1
- package/square.generated-5PASNXED.js +0 -16
- package/square.generated-5PASNXED.js.map +0 -1
- package/square.generated-I6H75UKF.js +0 -16
- package/square.generated-I6H75UKF.js.map +0 -1
- package/stability-ai.generated-HSDGH6SM.js +0 -16
- package/stability-ai.generated-HSDGH6SM.js.map +0 -1
- package/stability-ai.generated-JGDK6GCK.js +0 -16
- package/stability-ai.generated-JGDK6GCK.js.map +0 -1
- package/steam.generated-JNN222NQ.js +0 -16
- package/steam.generated-JNN222NQ.js.map +0 -1
- package/steam.generated-MYOJ4S7Z.js +0 -16
- package/steam.generated-MYOJ4S7Z.js.map +0 -1
- package/strapi.generated-FOD5SNK7.js +0 -16
- package/strapi.generated-FOD5SNK7.js.map +0 -1
- package/strapi.generated-XW3OUKD3.js +0 -16
- package/strapi.generated-XW3OUKD3.js.map +0 -1
- package/strava.generated-SX6ODSWN.js +0 -16
- package/strava.generated-SX6ODSWN.js.map +0 -1
- package/strava.generated-ZPHTZOG5.js +0 -16
- package/strava.generated-ZPHTZOG5.js.map +0 -1
- package/streak.generated-2TY5VN46.js +0 -16
- package/streak.generated-2TY5VN46.js.map +0 -1
- package/streak.generated-AAR623MO.js +0 -16
- package/streak.generated-AAR623MO.js.map +0 -1
- package/stripe.generated-DHUQVNCR.js +0 -16
- package/stripe.generated-DHUQVNCR.js.map +0 -1
- package/stripe.generated-Z4UPVGVB.js +0 -16
- package/stripe.generated-Z4UPVGVB.js.map +0 -1
- package/supabase.generated-GIN56AML.js +0 -16
- package/supabase.generated-GIN56AML.js.map +0 -1
- package/supabase.generated-QDEGTI2K.js +0 -16
- package/supabase.generated-QDEGTI2K.js.map +0 -1
- package/supadata.generated-IS4ACMQV.js +0 -16
- package/supadata.generated-IS4ACMQV.js.map +0 -1
- package/supadata.generated-SWMZHLJD.js +0 -16
- package/supadata.generated-SWMZHLJD.js.map +0 -1
- package/supermemory.generated-7UE326A4.js +0 -16
- package/supermemory.generated-7UE326A4.js.map +0 -1
- package/supermemory.generated-GEN3T7GF.js +0 -16
- package/supermemory.generated-GEN3T7GF.js.map +0 -1
- package/tavily.generated-PP7CNTMD.js +0 -16
- package/tavily.generated-PP7CNTMD.js.map +0 -1
- package/tavily.generated-TLJZAXJ2.js +0 -16
- package/tavily.generated-TLJZAXJ2.js.map +0 -1
- package/test-oauth.generated-5CGAUTCY.js +0 -16
- package/test-oauth.generated-5CGAUTCY.js.map +0 -1
- package/test-oauth.generated-AS3FZUPO.js +0 -16
- package/test-oauth.generated-AS3FZUPO.js.map +0 -1
- package/testrail.generated-BPX45BM6.js +0 -16
- package/testrail.generated-BPX45BM6.js.map +0 -1
- package/testrail.generated-UTM7ARO2.js +0 -16
- package/testrail.generated-UTM7ARO2.js.map +0 -1
- package/ticketmaster.generated-57OJN3HK.js +0 -16
- package/ticketmaster.generated-57OJN3HK.js.map +0 -1
- package/ticketmaster.generated-AVL5TDW7.js +0 -16
- package/ticketmaster.generated-AVL5TDW7.js.map +0 -1
- package/tiktok-ads.generated-GPW4I5CI.js +0 -16
- package/tiktok-ads.generated-GPW4I5CI.js.map +0 -1
- package/tiktok-ads.generated-R3V3TMJ4.js +0 -16
- package/tiktok-ads.generated-R3V3TMJ4.js.map +0 -1
- package/tldv.generated-3KLPFNDD.js +0 -16
- package/tldv.generated-3KLPFNDD.js.map +0 -1
- package/tldv.generated-MVSWWDBM.js +0 -16
- package/tldv.generated-MVSWWDBM.js.map +0 -1
- package/todoist.generated-FFYZ4NIZ.js +0 -16
- package/todoist.generated-FFYZ4NIZ.js.map +0 -1
- package/todoist.generated-NM6Z3GCJ.js +0 -16
- package/todoist.generated-NM6Z3GCJ.js.map +0 -1
- package/together.generated-5YS3OEZE.js +0 -16
- package/together.generated-5YS3OEZE.js.map +0 -1
- package/together.generated-PSYZA3KN.js +0 -16
- package/together.generated-PSYZA3KN.js.map +0 -1
- package/tripo.generated-5F34VTF4.js +0 -16
- package/tripo.generated-5F34VTF4.js.map +0 -1
- package/tripo.generated-7S3ANJRS.js +0 -16
- package/tripo.generated-7S3ANJRS.js.map +0 -1
- package/twenty.generated-WF2SZFFB.js +0 -16
- package/twenty.generated-WF2SZFFB.js.map +0 -1
- package/twenty.generated-ZXGDLWVG.js +0 -16
- package/twenty.generated-ZXGDLWVG.js.map +0 -1
- package/twilio.generated-WZSOVEW3.js +0 -16
- package/twilio.generated-WZSOVEW3.js.map +0 -1
- package/twilio.generated-Z4JUDX4A.js +0 -16
- package/twilio.generated-Z4JUDX4A.js.map +0 -1
- package/typeform.generated-CCVF2SMJ.js +0 -16
- package/typeform.generated-CCVF2SMJ.js.map +0 -1
- package/typeform.generated-TSCH32VY.js +0 -16
- package/typeform.generated-TSCH32VY.js.map +0 -1
- package/v0.generated-AHDUZAKI.js +0 -16
- package/v0.generated-AHDUZAKI.js.map +0 -1
- package/v0.generated-TDUFN32G.js +0 -16
- package/v0.generated-TDUFN32G.js.map +0 -1
- package/vercel.generated-KUI7SG5R.js +0 -16
- package/vercel.generated-KUI7SG5R.js.map +0 -1
- package/vercel.generated-VMADVAUI.js +0 -16
- package/vercel.generated-VMADVAUI.js.map +0 -1
- package/wandb.generated-D746TCXQ.js +0 -16
- package/wandb.generated-D746TCXQ.js.map +0 -1
- package/wandb.generated-PCEJFRBT.js +0 -16
- package/wandb.generated-PCEJFRBT.js.map +0 -1
- package/webflow.generated-LSUHGBGF.js +0 -16
- package/webflow.generated-LSUHGBGF.js.map +0 -1
- package/webflow.generated-ZAJJMPSA.js +0 -16
- package/webflow.generated-ZAJJMPSA.js.map +0 -1
- package/weread.generated-5GFOIT5R.js +0 -16
- package/weread.generated-5GFOIT5R.js.map +0 -1
- package/weread.generated-Z7OERNZI.js +0 -16
- package/weread.generated-Z7OERNZI.js.map +0 -1
- package/whale-alert.generated-7W5MNRAU.js +0 -16
- package/whale-alert.generated-7W5MNRAU.js.map +0 -1
- package/whale-alert.generated-CKGEQMWK.js +0 -16
- package/whale-alert.generated-CKGEQMWK.js.map +0 -1
- package/wix.generated-EOVJX56S.js +0 -16
- package/wix.generated-EOVJX56S.js.map +0 -1
- package/wix.generated-RQZH5S25.js +0 -16
- package/wix.generated-RQZH5S25.js.map +0 -1
- package/workday.generated-4MPT7O3V.js +0 -16
- package/workday.generated-4MPT7O3V.js.map +0 -1
- package/workday.generated-AHL44LEE.js +0 -16
- package/workday.generated-AHL44LEE.js.map +0 -1
- package/workos.generated-3SFUXTKD.js +0 -16
- package/workos.generated-3SFUXTKD.js.map +0 -1
- package/workos.generated-OAHVH7Y4.js +0 -16
- package/workos.generated-OAHVH7Y4.js.map +0 -1
- package/wrike.generated-JEXQ6TSH.js +0 -16
- package/wrike.generated-JEXQ6TSH.js.map +0 -1
- package/wrike.generated-XT4EET44.js +0 -16
- package/wrike.generated-XT4EET44.js.map +0 -1
- package/x.generated-HPTC6XRL.js +0 -16
- package/x.generated-HPTC6XRL.js.map +0 -1
- package/x.generated-RM23ZNTB.js +0 -16
- package/x.generated-RM23ZNTB.js.map +0 -1
- package/xero.generated-SGWSZ354.js +0 -16
- package/xero.generated-SGWSZ354.js.map +0 -1
- package/xero.generated-VD7ONAU3.js +0 -16
- package/xero.generated-VD7ONAU3.js.map +0 -1
- package/youtube.generated-CVE5S3V4.js +0 -16
- package/youtube.generated-CVE5S3V4.js.map +0 -1
- package/youtube.generated-XGY5NA6Q.js +0 -16
- package/youtube.generated-XGY5NA6Q.js.map +0 -1
- package/zapier.generated-B64YWHJL.js +0 -16
- package/zapier.generated-B64YWHJL.js.map +0 -1
- package/zapier.generated-ED5AA3B4.js +0 -16
- package/zapier.generated-ED5AA3B4.js.map +0 -1
- package/zapsign.generated-KSU2XZZC.js +0 -16
- package/zapsign.generated-KSU2XZZC.js.map +0 -1
- package/zapsign.generated-OLLDYFW3.js +0 -16
- package/zapsign.generated-OLLDYFW3.js.map +0 -1
- package/zendesk.generated-UJ4H2RRU.js +0 -16
- package/zendesk.generated-UJ4H2RRU.js.map +0 -1
- package/zendesk.generated-VRW33ITJ.js +0 -16
- package/zendesk.generated-VRW33ITJ.js.map +0 -1
- package/zep.generated-JPKJY2NZ.js +0 -16
- package/zep.generated-JPKJY2NZ.js.map +0 -1
- package/zep.generated-ZCDQCNEA.js +0 -16
- package/zep.generated-ZCDQCNEA.js.map +0 -1
- package/zeptomail.generated-IFGEI2Q3.js +0 -16
- package/zeptomail.generated-IFGEI2Q3.js.map +0 -1
- package/zeptomail.generated-ZOEIF2KT.js +0 -16
- package/zeptomail.generated-ZOEIF2KT.js.map +0 -1
- package/zoom.generated-F2OK37WV.js +0 -16
- package/zoom.generated-F2OK37WV.js.map +0 -1
- package/zoom.generated-OP7OR6UF.js +0 -16
- package/zoom.generated-OP7OR6UF.js.map +0 -1
- /package/{agent-RI5TB3MT.js.map → agent-ZQYDTKH3.js.map} +0 -0
- /package/{banking-ZZTY42QD.js.map → banking-2VCIOL6P.js.map} +0 -0
- /package/{chat-VBEB2LIU.js.map → chat-HIW3FYTT.js.map} +0 -0
- /package/{chunk-2YG67KBB.js.map → chunk-2QGSFMHS.js.map} +0 -0
- /package/{chunk-GE2LI4MS.js.map → chunk-53PEJLO7.js.map} +0 -0
- /package/{chunk-MM5ESLJI.js.map → chunk-7DD4DWU3.js.map} +0 -0
- /package/{chunk-ZOTQGSKT.js.map → chunk-JC32CBUO.js.map} +0 -0
- /package/{chunk-VWG7JMMA.js.map → chunk-RNODSGZS.js.map} +0 -0
- /package/{chunk-3PWT6JIH.js.map → chunk-UPL74K7M.js.map} +0 -0
- /package/{chunk-CEKLUICQ.js.map → chunk-URGJQOI7.js.map} +0 -0
- /package/{computer-use-2GWQELMK.js.map → computer-use-5I7T65AQ.js.map} +0 -0
- /package/{connector-HVF5LTLS.js.map → connector-GT3XTJZF.js.map} +0 -0
- /package/{credit-DR3ZW2FG.js.map → credit-XSHQMFLB.js.map} +0 -0
- /package/{developer-support-LUUIXIXG.js.map → developer-support-E22KJ6IN.js.map} +0 -0
- /package/{generate-EEWDZMO7.js.map → generate-3FIZGPD4.js.map} +0 -0
- /package/{github-WSCP6BCL.js.map → github-HD6VKV4O.js.map} +0 -0
- /package/{goal-TBQ73X4G.js.map → goal-CZKBZCSN.js.map} +0 -0
- /package/{host-FF62XPMH.js.map → host-SLF6TPYG.js.map} +0 -0
- /package/{maps-LC4V32L6.js.map → maps-45HJEND2.js.map} +0 -0
- /package/{memory-IQO5L4DF.js.map → memory-47D3IPQ7.js.map} +0 -0
- /package/{model-NJ3PEGDV.js.map → model-TVT4ELTC.js.map} +0 -0
- /package/{model-provider-MPBVWSUT.js.map → model-provider-D3K3YUOF.js.map} +0 -0
- /package/{org-FFCTROTZ.js.map → org-JGRFZFX4.js.map} +0 -0
- /package/{phone-35G4MSU4.js.map → phone-QWCKVFHK.js.map} +0 -0
- /package/{preference-7LX3CJUT.js.map → preference-CUJP35LN.js.map} +0 -0
- /package/{relationship-PKU2B5BP.js.map → relationship-LMGCWEUM.js.map} +0 -0
- /package/{secret-7K6ED3SD.js.map → secret-LO2KLI5Q.js.map} +0 -0
- /package/{slack-VTGS2LE7.js.map → slack-FIQUPYHT.js.map} +0 -0
- /package/{teams-SOYUSM2G.js.map → teams-KTHKFCBK.js.map} +0 -0
- /package/{telegram-F2GYSKWJ.js.map → telegram-TS2I2GSO.js.map} +0 -0
- /package/{variable-6NWZSJVI.js.map → variable-AFCKEFT6.js.map} +0 -0
- /package/{video-VHL2UFS7.js.map → video-J6JAVM3V.js.map} +0 -0
- /package/{web-6A35VLL5.js.map → web-2GWKIYLR.js.map} +0 -0
- /package/{whoami-6SU2NDI3.js.map → whoami-IJT7JTAH.js.map} +0 -0
- /package/{workflow-W23JY7HR.js.map → workflow-OWSG5JJK.js.map} +0 -0
|
@@ -0,0 +1,1194 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { createRequire as __createRequire } from "node:module";
|
|
3
|
+
const require = __createRequire(import.meta.url);
|
|
4
|
+
import {
|
|
5
|
+
findFirewallMetadataPermission
|
|
6
|
+
} from "./chunk-2QGSFMHS.js";
|
|
7
|
+
import {
|
|
8
|
+
getPlatformOrigin,
|
|
9
|
+
toPlatformUrl
|
|
10
|
+
} from "./chunk-RNODSGZS.js";
|
|
11
|
+
import {
|
|
12
|
+
UNKNOWN_PERMISSION_GRANT,
|
|
13
|
+
createComputerUseAuthorizationRequest,
|
|
14
|
+
diagnoseZeroConnectorCheck,
|
|
15
|
+
diagnoseZeroConnectorPermissionDeny,
|
|
16
|
+
getZeroAgentUserConnectors,
|
|
17
|
+
getZeroBillingStatus,
|
|
18
|
+
getZeroConnector,
|
|
19
|
+
getZeroConnectorCatalogPermissions,
|
|
20
|
+
getZeroOrg,
|
|
21
|
+
getZeroOrgMembers,
|
|
22
|
+
hasUnsafeFirewallPath
|
|
23
|
+
} from "./chunk-IXT6G7VE.js";
|
|
24
|
+
import "./chunk-LTDQISD7.js";
|
|
25
|
+
import {
|
|
26
|
+
ApiRequestError,
|
|
27
|
+
getApiUrl,
|
|
28
|
+
source_default,
|
|
29
|
+
withErrorHandler
|
|
30
|
+
} from "./chunk-53PEJLO7.js";
|
|
31
|
+
import "./chunk-LRHXR7JT.js";
|
|
32
|
+
import {
|
|
33
|
+
Command,
|
|
34
|
+
Option
|
|
35
|
+
} from "./chunk-B3W2RUBP.js";
|
|
36
|
+
import {
|
|
37
|
+
init_esm_shims
|
|
38
|
+
} from "./chunk-DIRAZ3YX.js";
|
|
39
|
+
|
|
40
|
+
// src/commands/zero/doctor/index.ts
|
|
41
|
+
init_esm_shims();
|
|
42
|
+
|
|
43
|
+
// src/commands/zero/doctor/check-connector.ts
|
|
44
|
+
init_esm_shims();
|
|
45
|
+
function stripUrlQueryAndFragment(url) {
|
|
46
|
+
const queryIndex = url.indexOf("?");
|
|
47
|
+
const fragmentIndex = url.indexOf("#");
|
|
48
|
+
let end = url.length;
|
|
49
|
+
if (queryIndex !== -1) end = Math.min(end, queryIndex);
|
|
50
|
+
if (fragmentIndex !== -1) end = Math.min(end, fragmentIndex);
|
|
51
|
+
return url.slice(0, end);
|
|
52
|
+
}
|
|
53
|
+
function rawUrlAuthorityHasUserinfo(url) {
|
|
54
|
+
const schemeEnd = url.indexOf("://");
|
|
55
|
+
if (schemeEnd === -1) return false;
|
|
56
|
+
const authorityStart = schemeEnd + 3;
|
|
57
|
+
let authorityEnd = url.length;
|
|
58
|
+
for (const delimiter of ["/", "?", "#"]) {
|
|
59
|
+
const delimiterIndex = url.indexOf(delimiter, authorityStart);
|
|
60
|
+
if (delimiterIndex !== -1) {
|
|
61
|
+
authorityEnd = Math.min(authorityEnd, delimiterIndex);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return url.slice(authorityStart, authorityEnd).includes("@");
|
|
65
|
+
}
|
|
66
|
+
function shellQuoteArg(value) {
|
|
67
|
+
return `'${value.replaceAll("'", "'\\''")}'`;
|
|
68
|
+
}
|
|
69
|
+
function connectorSelectionCommand(url, method, connectorRef) {
|
|
70
|
+
const args = [
|
|
71
|
+
`--url ${shellQuoteArg(url)}`,
|
|
72
|
+
`--connector ${shellQuoteArg(connectorRef)}`
|
|
73
|
+
];
|
|
74
|
+
if (method !== "GET") {
|
|
75
|
+
args.push(`--method ${shellQuoteArg(method)}`);
|
|
76
|
+
}
|
|
77
|
+
return `zero doctor check-connector ${args.join(" ")}`;
|
|
78
|
+
}
|
|
79
|
+
function validateCheckConnectorOptions(opts, command) {
|
|
80
|
+
const hasUrl = opts.url !== void 0;
|
|
81
|
+
if (opts.url !== void 0 && rawUrlAuthorityHasUserinfo(opts.url)) {
|
|
82
|
+
throw unsafeInputError("invalid-url");
|
|
83
|
+
}
|
|
84
|
+
if (opts.connector !== void 0 && !hasUrl) {
|
|
85
|
+
throw new Error(
|
|
86
|
+
"--connector can only be used with --url. Add --url <URL> or remove --connector."
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
if (opts.checkPermission !== void 0 && hasUrl) {
|
|
90
|
+
throw new Error(
|
|
91
|
+
"--check-permission cannot be used with --url because the permission is derived from the request. Remove --check-permission."
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
if (opts.checkPermission?.trim() === "") {
|
|
95
|
+
throw new Error("--check-permission requires a non-empty permission name.");
|
|
96
|
+
}
|
|
97
|
+
if (!hasUrl && command.getOptionValueSource("method") === "cli") {
|
|
98
|
+
throw new Error(
|
|
99
|
+
"--method can only be used with --url. Add --url <URL> or remove --method."
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
if (opts.envName === void 0 && !hasUrl) {
|
|
103
|
+
throw new Error(
|
|
104
|
+
"Either --env-name or --url is required. Use --help for usage."
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function buildDiagnosticRequest(opts, method) {
|
|
109
|
+
if (opts.url !== void 0) {
|
|
110
|
+
return {
|
|
111
|
+
mode: "url",
|
|
112
|
+
method,
|
|
113
|
+
url: stripUrlQueryAndFragment(opts.url),
|
|
114
|
+
...opts.connector !== void 0 ? { connectorRef: opts.connector } : {},
|
|
115
|
+
...opts.envName !== void 0 ? { environmentName: opts.envName } : {}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
return {
|
|
119
|
+
mode: "environment",
|
|
120
|
+
environmentName: opts.envName,
|
|
121
|
+
...opts.checkPermission !== void 0 ? { permission: opts.checkPermission } : {}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function requireUrlRequest(request) {
|
|
125
|
+
if (request.mode !== "url") {
|
|
126
|
+
throw new Error(
|
|
127
|
+
"Connector diagnostic returned a URL-only outcome for an environment request."
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
return request;
|
|
131
|
+
}
|
|
132
|
+
function requestedEnvironmentName(request) {
|
|
133
|
+
if (request.environmentName === void 0) {
|
|
134
|
+
throw new Error(
|
|
135
|
+
"Connector diagnostic returned an environment outcome without an environment name."
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
return request.environmentName;
|
|
139
|
+
}
|
|
140
|
+
function unsafeInputError(reason) {
|
|
141
|
+
switch (reason) {
|
|
142
|
+
case "invalid-method":
|
|
143
|
+
return new Error(
|
|
144
|
+
"check-connector requires --method to be a supported HTTP method."
|
|
145
|
+
);
|
|
146
|
+
case "invalid-url":
|
|
147
|
+
return new Error(
|
|
148
|
+
"check-connector requires --url to be a valid absolute http or https URL."
|
|
149
|
+
);
|
|
150
|
+
case "unsafe-path":
|
|
151
|
+
return new Error(
|
|
152
|
+
"check-connector cannot diagnose unsafe URL paths because they are blocked before permission policy evaluation."
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
function ambiguousConnectorError(request, result) {
|
|
157
|
+
const candidates = [...result.candidates].sort((left, right) => {
|
|
158
|
+
return left.connectorRef.localeCompare(right.connectorRef);
|
|
159
|
+
});
|
|
160
|
+
const commands = candidates.map((candidate) => {
|
|
161
|
+
return ` ${connectorSelectionCommand(request.url, request.method, candidate.connectorRef)}`;
|
|
162
|
+
});
|
|
163
|
+
return new Error(
|
|
164
|
+
`Multiple connectors match ${request.method} ${request.url}: ${candidates.map((candidate) => {
|
|
165
|
+
return candidate.connectorRef;
|
|
166
|
+
}).join(", ")}
|
|
167
|
+
Select one explicitly:
|
|
168
|
+
${commands.join("\n")}`
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
function unknownConnectorError(request) {
|
|
172
|
+
if (request.mode === "url" && request.connectorRef !== void 0) {
|
|
173
|
+
return new Error(
|
|
174
|
+
`Unknown connector type: ${request.connectorRef}
|
|
175
|
+
Run: zero connector search ${shellQuoteArg(request.connectorRef)}`
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
return new Error("The requested connector is unknown.");
|
|
179
|
+
}
|
|
180
|
+
function noMatchError(result) {
|
|
181
|
+
return new Error(
|
|
182
|
+
result.scope === "run" ? "No connector found for provided URL \u2014 no connector configured for the current run matches this URL" : "No connector found for provided URL \u2014 no registered connector base URL matches this URL"
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
function connectorMismatchError(request, result) {
|
|
186
|
+
const requestedRef = request.connectorRef ?? "the requested connector";
|
|
187
|
+
return new Error(
|
|
188
|
+
`Connector ${requestedRef} does not own ${request.method} ${request.url}; the matching connector is ${result.connector.connectorRef}
|
|
189
|
+
Run: ${connectorSelectionCommand(request.url, request.method, result.connector.connectorRef)}`
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
function environmentNotOwnedError(request, result) {
|
|
193
|
+
const environmentName = requestedEnvironmentName(request);
|
|
194
|
+
return new Error(
|
|
195
|
+
`${environmentName} is not an environment name for the ${result.connector.label} connector. Remove --env-name to use the matched route metadata.`
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
function environmentNotUsedError(request, result) {
|
|
199
|
+
const environmentName = requestedEnvironmentName(request);
|
|
200
|
+
return new Error(
|
|
201
|
+
`${environmentName} is not used by the matched API route. Expected one of: ${result.environmentNames.join(", ") || "none"}. Remove --env-name to use the matched route metadata.`
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
function resolvedDiagnostic(request, result) {
|
|
205
|
+
switch (result.outcome) {
|
|
206
|
+
case "resolved":
|
|
207
|
+
return result;
|
|
208
|
+
case "unsafe-input":
|
|
209
|
+
throw unsafeInputError(result.reason);
|
|
210
|
+
case "unknown-connector":
|
|
211
|
+
throw unknownConnectorError(request);
|
|
212
|
+
case "unknown-environment":
|
|
213
|
+
throw new Error(
|
|
214
|
+
`Unknown environment name: ${requestedEnvironmentName(request)} \u2014 not managed by any connector`
|
|
215
|
+
);
|
|
216
|
+
case "no-match":
|
|
217
|
+
throw noMatchError(result);
|
|
218
|
+
case "ambiguous":
|
|
219
|
+
throw ambiguousConnectorError(requireUrlRequest(request), result);
|
|
220
|
+
case "connector-mismatch":
|
|
221
|
+
throw connectorMismatchError(requireUrlRequest(request), result);
|
|
222
|
+
case "environment-not-owned":
|
|
223
|
+
throw environmentNotOwnedError(request, result);
|
|
224
|
+
case "environment-not-used":
|
|
225
|
+
throw environmentNotUsedError(request, result);
|
|
226
|
+
case "unresolved-dynamic-base":
|
|
227
|
+
throw new Error(
|
|
228
|
+
`No authoritative ${result.connector.label} base URL is available for this diagnostic. Verify the ${result.connector.connectorRef} connector configuration for the affected context and retry.`
|
|
229
|
+
);
|
|
230
|
+
case "run-context-unavailable":
|
|
231
|
+
throw new Error(
|
|
232
|
+
"The current run context is unavailable for connector diagnosis. Retry from an active run or start a new run."
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
function printDiagnosticSummary(request, result) {
|
|
237
|
+
if (result.mode === "url") {
|
|
238
|
+
const urlRequest = requireUrlRequest(request);
|
|
239
|
+
console.log(
|
|
240
|
+
`URL ${urlRequest.url} matches the ${result.connector.label} connector (type: ${result.connector.connectorRef}).`
|
|
241
|
+
);
|
|
242
|
+
console.log(` Matched base URL: ${result.base}`);
|
|
243
|
+
console.log(` Relative path: ${result.relativePath}`);
|
|
244
|
+
if (result.environmentNames === null) {
|
|
245
|
+
console.log(" Environment names: unavailable");
|
|
246
|
+
} else {
|
|
247
|
+
console.log(
|
|
248
|
+
` Environment names: [${result.environmentNames.join(", ")}]`
|
|
249
|
+
);
|
|
250
|
+
}
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
console.log(
|
|
254
|
+
`${result.environmentName} is managed by the ${result.connector.label} connector (type: ${result.connector.connectorRef}).`
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
function diagnosticEnvironmentNames(result) {
|
|
258
|
+
return result.mode === "url" ? result.environmentNames : [result.environmentName];
|
|
259
|
+
}
|
|
260
|
+
function printConnectorConnectionStatus(ctx, isConnected, isExpired, hasPermission) {
|
|
261
|
+
console.log(
|
|
262
|
+
"### 2a: Connector status (user must configure via OAuth login or API key)"
|
|
263
|
+
);
|
|
264
|
+
console.log("");
|
|
265
|
+
if (!ctx.connectorAvailable) {
|
|
266
|
+
console.log(
|
|
267
|
+
`The ${ctx.label} connector is not available for this account.`
|
|
268
|
+
);
|
|
269
|
+
} else if (!isConnected) {
|
|
270
|
+
console.log(`The ${ctx.label} connector is not connected.`);
|
|
271
|
+
if (ctx.agentId && hasPermission) {
|
|
272
|
+
const connectUrl = `${ctx.platformOrigin}/connectors/${ctx.connectorRef}/connect?agentId=${ctx.agentId}`;
|
|
273
|
+
console.log(`Connect it at: [Connect ${ctx.label}](${connectUrl})`);
|
|
274
|
+
} else if (!ctx.agentId) {
|
|
275
|
+
const connectUrl = `${ctx.platformOrigin}/connectors/${ctx.connectorRef}/connect`;
|
|
276
|
+
console.log(`Connect it at: [Connect ${ctx.label}](${connectUrl})`);
|
|
277
|
+
}
|
|
278
|
+
} else if (isExpired) {
|
|
279
|
+
const url = `${ctx.platformOrigin}/connectors`;
|
|
280
|
+
console.log(
|
|
281
|
+
`The ${ctx.label} connector is connected but has expired and needs to be reconnected.`
|
|
282
|
+
);
|
|
283
|
+
console.log(`Reconnect it at: [Reconnect ${ctx.label}](${url})`);
|
|
284
|
+
} else {
|
|
285
|
+
console.log(`The ${ctx.label} connector is connected and active.`);
|
|
286
|
+
}
|
|
287
|
+
console.log("");
|
|
288
|
+
}
|
|
289
|
+
function printAgentAuthorizationStatus(ctx, isConnected, isExpired, hasPermission) {
|
|
290
|
+
if (!ctx.agentId) {
|
|
291
|
+
console.log("ZERO_AGENT_ID is not set \u2014 cannot check agent authorization.");
|
|
292
|
+
} else if (isExpired) {
|
|
293
|
+
console.log(
|
|
294
|
+
`Skipped \u2014 agent authorization can only be checked once the ${ctx.label} connector is reconnected (see 2a).`
|
|
295
|
+
);
|
|
296
|
+
} else if (hasPermission) {
|
|
297
|
+
console.log(
|
|
298
|
+
isConnected ? `The ${ctx.label} connector is authorized for this agent.` : `The ${ctx.label} connector is authorized for this agent, but it is not connected.`
|
|
299
|
+
);
|
|
300
|
+
} else {
|
|
301
|
+
const url = `${ctx.platformOrigin}/connectors/${ctx.connectorRef}/authorize?agentId=${ctx.agentId}`;
|
|
302
|
+
console.log(
|
|
303
|
+
isConnected ? `The ${ctx.label} connector is not authorized for this agent (${ctx.agentId}).` : `The ${ctx.label} connector needs to be connected and authorized for this agent (${ctx.agentId}).`
|
|
304
|
+
);
|
|
305
|
+
console.log(`Authorize it at: [Authorize ${ctx.label}](${url})`);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
function printConnectorAuthorizationStatus(ctx, isConnected, isExpired, hasPermission) {
|
|
309
|
+
console.log(
|
|
310
|
+
"### 2b: Agent authorization (user must authorize agent to use this connector)"
|
|
311
|
+
);
|
|
312
|
+
console.log("");
|
|
313
|
+
if (!ctx.connectorAvailable) {
|
|
314
|
+
console.log(
|
|
315
|
+
`Skipped \u2014 the ${ctx.label} connector is not available for this account.`
|
|
316
|
+
);
|
|
317
|
+
} else {
|
|
318
|
+
printAgentAuthorizationStatus(ctx, isConnected, isExpired, hasPermission);
|
|
319
|
+
}
|
|
320
|
+
console.log(
|
|
321
|
+
`This run uses agent-scoped connector authorization for ${ctx.label} access.`
|
|
322
|
+
);
|
|
323
|
+
console.log("");
|
|
324
|
+
}
|
|
325
|
+
function checkEnvironmentNames(ctx) {
|
|
326
|
+
console.log("## Step 1: Sandbox environment name");
|
|
327
|
+
console.log("");
|
|
328
|
+
if (ctx.environmentNames === null) {
|
|
329
|
+
console.log(
|
|
330
|
+
"Environment metadata is unavailable for this run's sanitized firewall entry, so no environment name was guessed."
|
|
331
|
+
);
|
|
332
|
+
console.log("");
|
|
333
|
+
return;
|
|
334
|
+
}
|
|
335
|
+
if (ctx.environmentNames.length === 0) {
|
|
336
|
+
console.log(
|
|
337
|
+
"The matched API route does not use a sandbox environment name."
|
|
338
|
+
);
|
|
339
|
+
console.log("");
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
let environmentPresent = false;
|
|
343
|
+
for (const environmentName of ctx.environmentNames) {
|
|
344
|
+
const present = Boolean(process.env[environmentName]);
|
|
345
|
+
environmentPresent ||= present;
|
|
346
|
+
console.log(
|
|
347
|
+
`Checking process.env.${environmentName}: ${present ? "present" : "not present"}`
|
|
348
|
+
);
|
|
349
|
+
}
|
|
350
|
+
if (environmentPresent) {
|
|
351
|
+
console.log(
|
|
352
|
+
"At least one connector value is present in the sandbox environment. These values may be non-secret connector settings or credential placeholders; real credentials are never injected and are resolved at the network boundary for registered base URLs."
|
|
353
|
+
);
|
|
354
|
+
} else {
|
|
355
|
+
console.log(
|
|
356
|
+
"No value found for these environment names. Note: credential replacement at the network boundary is independent of these names \u2014 the proxy injects auth headers based on the destination URL."
|
|
357
|
+
);
|
|
358
|
+
}
|
|
359
|
+
console.log("");
|
|
360
|
+
}
|
|
361
|
+
async function checkConnectorStatus(ctx) {
|
|
362
|
+
console.log("## Step 2: Connector configuration");
|
|
363
|
+
console.log("");
|
|
364
|
+
console.log(
|
|
365
|
+
"A Connector holds the real credentials (OAuth tokens or API keys) for an external service. These credentials are never injected into the sandbox. Instead, when the sandbox sends an HTTP request to a base URL registered by the Connector, the network boundary intercepts the request and replaces the auth headers with real credentials. For this to work, three conditions must be met:"
|
|
366
|
+
);
|
|
367
|
+
console.log("");
|
|
368
|
+
const [connector, enabledTypes] = await Promise.all([
|
|
369
|
+
getZeroConnector(ctx.connectorRef),
|
|
370
|
+
ctx.agentId ? getZeroAgentUserConnectors(ctx.agentId) : Promise.resolve(null)
|
|
371
|
+
]);
|
|
372
|
+
const isConnected = connector !== null;
|
|
373
|
+
const isExpired = connector?.connectionStatus === "reconnect-required";
|
|
374
|
+
const hasPermission = enabledTypes !== null && enabledTypes.includes(ctx.connectorRef);
|
|
375
|
+
printConnectorConnectionStatus(ctx, isConnected, isExpired, hasPermission);
|
|
376
|
+
printConnectorAuthorizationStatus(ctx, isConnected, isExpired, hasPermission);
|
|
377
|
+
return { isConnected, isExpired, hasPermission };
|
|
378
|
+
}
|
|
379
|
+
function checkConnectorDomains(ctx) {
|
|
380
|
+
console.log(
|
|
381
|
+
"### 2c: Registered base URLs (credential replacement only applies to URLs matching these prefixes)"
|
|
382
|
+
);
|
|
383
|
+
console.log("");
|
|
384
|
+
switch (ctx.run.status) {
|
|
385
|
+
case "not-scoped":
|
|
386
|
+
console.log(
|
|
387
|
+
"This diagnostic is not scoped to a run \u2014 skipping the run base URL check."
|
|
388
|
+
);
|
|
389
|
+
console.log("");
|
|
390
|
+
return null;
|
|
391
|
+
case "not-configured":
|
|
392
|
+
console.log(
|
|
393
|
+
`No configuration found for the ${ctx.label} connector in this run.`
|
|
394
|
+
);
|
|
395
|
+
console.log(
|
|
396
|
+
"This means no base URLs are registered for credential replacement for this connector."
|
|
397
|
+
);
|
|
398
|
+
console.log("");
|
|
399
|
+
return false;
|
|
400
|
+
case "configured":
|
|
401
|
+
console.log(
|
|
402
|
+
`The ${ctx.label} connector is configured for this run with the following base URLs:`
|
|
403
|
+
);
|
|
404
|
+
for (const base of ctx.run.bases) {
|
|
405
|
+
console.log(` - ${base}`);
|
|
406
|
+
}
|
|
407
|
+
console.log("");
|
|
408
|
+
if (ctx.credentialResolution === "network-boundary") {
|
|
409
|
+
console.log(
|
|
410
|
+
"Credentials are resolved at the network boundary for requests matching these registered base URLs."
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
console.log("");
|
|
414
|
+
return true;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
function printUnavailablePolicy(policy) {
|
|
418
|
+
switch (policy.basis) {
|
|
419
|
+
case "not-run-scoped":
|
|
420
|
+
console.log(
|
|
421
|
+
"Result: Permission policy is unavailable because this diagnostic is not scoped to a run."
|
|
422
|
+
);
|
|
423
|
+
return;
|
|
424
|
+
case "policies-unavailable":
|
|
425
|
+
console.log(
|
|
426
|
+
"Result: Network policies are unavailable for this run, so the permission status cannot be determined."
|
|
427
|
+
);
|
|
428
|
+
return;
|
|
429
|
+
case "connector-not-configured":
|
|
430
|
+
console.log(
|
|
431
|
+
"Result: The connector is not configured for this run, so requests cannot receive credentials."
|
|
432
|
+
);
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
function printNamedPolicyResult(permission, policy) {
|
|
437
|
+
switch (policy.outcome) {
|
|
438
|
+
case "allow": {
|
|
439
|
+
switch (policy.basis) {
|
|
440
|
+
case "allow-list":
|
|
441
|
+
console.log(
|
|
442
|
+
`Result: "${permission}" is in the allow list \u2014 allowed.`
|
|
443
|
+
);
|
|
444
|
+
return;
|
|
445
|
+
case "not-blocked":
|
|
446
|
+
console.log(
|
|
447
|
+
`Result: "${permission}" is not blocked by the deny or ask list \u2014 allowed.`
|
|
448
|
+
);
|
|
449
|
+
return;
|
|
450
|
+
case "no-policy":
|
|
451
|
+
console.log(
|
|
452
|
+
`Result: No policy entry exists for this connector \u2014 "${permission}" is allowed.`
|
|
453
|
+
);
|
|
454
|
+
return;
|
|
455
|
+
case "unknown-policy":
|
|
456
|
+
console.log(
|
|
457
|
+
`Result: The server policy allows "${permission}" through the unknown-endpoint policy.`
|
|
458
|
+
);
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
break;
|
|
462
|
+
}
|
|
463
|
+
case "deny":
|
|
464
|
+
console.log(
|
|
465
|
+
policy.basis === "deny-list" ? `Result: "${permission}" is in the deny list \u2014 denied.` : `Result: The unknown-endpoint policy denies "${permission}".`
|
|
466
|
+
);
|
|
467
|
+
return;
|
|
468
|
+
case "ask":
|
|
469
|
+
console.log(
|
|
470
|
+
policy.basis === "ask-list" ? `Result: "${permission}" is in the ask list \u2014 blocked until approval.` : `Result: The unknown-endpoint policy blocks "${permission}" until approval.`
|
|
471
|
+
);
|
|
472
|
+
return;
|
|
473
|
+
case "unavailable":
|
|
474
|
+
printUnavailablePolicy(policy);
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
function unknownPermissionChangeCommand(connectorRef) {
|
|
479
|
+
return `zero doctor permission-change ${connectorRef} --permission __unknown__ --enable --duration 1h`;
|
|
480
|
+
}
|
|
481
|
+
function printUnknownEndpointPolicy(connectorRef, policy) {
|
|
482
|
+
switch (policy.outcome) {
|
|
483
|
+
case "allow":
|
|
484
|
+
console.log(
|
|
485
|
+
policy.basis === "no-policy" ? "Result: No policy entry exists for this connector, so the request is allowed." : "Result: No permission matched. The unknown endpoint policy allows this request."
|
|
486
|
+
);
|
|
487
|
+
return;
|
|
488
|
+
case "deny":
|
|
489
|
+
console.log(
|
|
490
|
+
"Result: No permission matched. The unknown endpoint policy denies this request."
|
|
491
|
+
);
|
|
492
|
+
console.log(
|
|
493
|
+
`To allow unknown endpoints, run: ${unknownPermissionChangeCommand(connectorRef)}`
|
|
494
|
+
);
|
|
495
|
+
return;
|
|
496
|
+
case "ask":
|
|
497
|
+
console.log(
|
|
498
|
+
"Result: No permission matched. The unknown endpoint policy requires approval."
|
|
499
|
+
);
|
|
500
|
+
console.log(
|
|
501
|
+
`To allow unknown endpoints, run: ${unknownPermissionChangeCommand(connectorRef)}`
|
|
502
|
+
);
|
|
503
|
+
return;
|
|
504
|
+
case "unavailable":
|
|
505
|
+
printUnavailablePolicy(policy);
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
function printUrlPermissionDiagnostic(result) {
|
|
510
|
+
console.log("## Step 3: Permission policy check (auto-detected from URL)");
|
|
511
|
+
console.log("");
|
|
512
|
+
console.log(
|
|
513
|
+
`Matching ${result.method} ${result.relativePath} (relative to base URL ${result.base}) against the ${result.connector.label} connector's permission rules.`
|
|
514
|
+
);
|
|
515
|
+
console.log("");
|
|
516
|
+
if (result.permission.kind === "matched") {
|
|
517
|
+
console.log(
|
|
518
|
+
`Matched permissions: [${result.permission.permissions.map((permission) => {
|
|
519
|
+
return permission.name;
|
|
520
|
+
}).join(", ")}]`
|
|
521
|
+
);
|
|
522
|
+
console.log("");
|
|
523
|
+
for (const permission of result.permission.permissions) {
|
|
524
|
+
printNamedPolicyResult(permission.name, permission.policy);
|
|
525
|
+
}
|
|
526
|
+
} else {
|
|
527
|
+
console.log(
|
|
528
|
+
`No named permission matches ${result.method} ${result.relativePath}. This request falls through to the unknown-endpoint policy.`
|
|
529
|
+
);
|
|
530
|
+
console.log("");
|
|
531
|
+
printUnknownEndpointPolicy(
|
|
532
|
+
result.connector.connectorRef,
|
|
533
|
+
result.permission.policy
|
|
534
|
+
);
|
|
535
|
+
}
|
|
536
|
+
console.log("");
|
|
537
|
+
}
|
|
538
|
+
function printEnvironmentPermissionDiagnostic(result, permissionName) {
|
|
539
|
+
if (result.permission === null) {
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
if (permissionName === void 0) {
|
|
543
|
+
throw new Error(
|
|
544
|
+
"Connector diagnostic returned a permission outcome without a requested permission."
|
|
545
|
+
);
|
|
546
|
+
}
|
|
547
|
+
console.log("## Step 3: Permission policy check");
|
|
548
|
+
console.log("");
|
|
549
|
+
console.log(
|
|
550
|
+
`Checking permission: "${permissionName}" for the ${result.connector.label} connector.`
|
|
551
|
+
);
|
|
552
|
+
console.log("");
|
|
553
|
+
printNamedPolicyResult(permissionName, result.permission);
|
|
554
|
+
console.log("");
|
|
555
|
+
}
|
|
556
|
+
function printRediagnoseHint(opts, method) {
|
|
557
|
+
const args = [];
|
|
558
|
+
if (opts.url !== void 0) {
|
|
559
|
+
args.push(`--url ${shellQuoteArg(stripUrlQueryAndFragment(opts.url))}`);
|
|
560
|
+
if (opts.connector !== void 0) {
|
|
561
|
+
args.push(`--connector ${shellQuoteArg(opts.connector)}`);
|
|
562
|
+
}
|
|
563
|
+
if (opts.envName !== void 0) {
|
|
564
|
+
args.push(`--env-name ${shellQuoteArg(opts.envName)}`);
|
|
565
|
+
}
|
|
566
|
+
if (method !== "GET") {
|
|
567
|
+
args.push(`--method ${shellQuoteArg(method)}`);
|
|
568
|
+
}
|
|
569
|
+
} else if (opts.envName !== void 0) {
|
|
570
|
+
args.push(`--env-name ${shellQuoteArg(opts.envName)}`);
|
|
571
|
+
}
|
|
572
|
+
if (opts.checkPermission !== void 0) {
|
|
573
|
+
args.push(`--check-permission ${shellQuoteArg(opts.checkPermission)}`);
|
|
574
|
+
}
|
|
575
|
+
console.log(
|
|
576
|
+
`To re-diagnose after changes, run: zero doctor check-connector ${args.join(" ")}`
|
|
577
|
+
);
|
|
578
|
+
}
|
|
579
|
+
var checkConnectorCommand = new Command().name("check-connector").description(
|
|
580
|
+
"Diagnose connector health: environment names, connector configuration, and permission policies"
|
|
581
|
+
).addOption(
|
|
582
|
+
new Option(
|
|
583
|
+
"--env-name <ENV_NAME>",
|
|
584
|
+
"The connector environment name to check (e.g. GITHUB_TOKEN)"
|
|
585
|
+
)
|
|
586
|
+
).addOption(
|
|
587
|
+
new Option(
|
|
588
|
+
"--url <URL>",
|
|
589
|
+
"A full URL to diagnose \u2014 matches connector ownership, route environment names, and permission (e.g. https://api.github.com/repos/owner/repo)"
|
|
590
|
+
)
|
|
591
|
+
).addOption(
|
|
592
|
+
new Option(
|
|
593
|
+
"--connector <type>",
|
|
594
|
+
"Select the connector when multiple connectors own the same URL route"
|
|
595
|
+
)
|
|
596
|
+
).addOption(
|
|
597
|
+
new Option(
|
|
598
|
+
"--method <METHOD>",
|
|
599
|
+
"HTTP method to use when matching permissions with --url (default: GET)"
|
|
600
|
+
).default("GET")
|
|
601
|
+
).addOption(
|
|
602
|
+
new Option(
|
|
603
|
+
"--check-permission <name>",
|
|
604
|
+
"Check whether a specific permission is allowed or denied (e.g. contents:read)"
|
|
605
|
+
)
|
|
606
|
+
).addHelpText(
|
|
607
|
+
"after",
|
|
608
|
+
`
|
|
609
|
+
Examples:
|
|
610
|
+
zero doctor check-connector --env-name GITHUB_TOKEN
|
|
611
|
+
zero doctor check-connector --url https://api.github.com/repos/owner/repo
|
|
612
|
+
zero doctor check-connector --url https://api.accounts.nintendo.com/2.0.0/users/me --connector nintendo-store
|
|
613
|
+
zero doctor check-connector --url https://slack.com/api/chat.postMessage --method POST
|
|
614
|
+
zero doctor check-connector --env-name SLACK_TOKEN --check-permission chat:write
|
|
615
|
+
|
|
616
|
+
How connectors work:
|
|
617
|
+
A Connector holds the real credentials for an external service. These credentials
|
|
618
|
+
are never injected into the sandbox. Instead, when the sandbox sends an HTTP
|
|
619
|
+
request to a base URL registered by the Connector, the network boundary intercepts
|
|
620
|
+
the request and replaces the auth headers with real credentials.
|
|
621
|
+
|
|
622
|
+
This command checks each part of that pipeline and reports what it finds.`
|
|
623
|
+
).action(
|
|
624
|
+
withErrorHandler(async (opts, command) => {
|
|
625
|
+
validateCheckConnectorOptions(opts, command);
|
|
626
|
+
const method = opts.method.toUpperCase();
|
|
627
|
+
const request = buildDiagnosticRequest(opts, method);
|
|
628
|
+
const diagnostic = await diagnoseZeroConnectorCheck(request);
|
|
629
|
+
const result = resolvedDiagnostic(request, diagnostic);
|
|
630
|
+
printDiagnosticSummary(request, result);
|
|
631
|
+
console.log("");
|
|
632
|
+
const platformUrl = toPlatformUrl(await getApiUrl());
|
|
633
|
+
const ctx = {
|
|
634
|
+
environmentNames: diagnosticEnvironmentNames(result),
|
|
635
|
+
connectorRef: result.connector.connectorRef,
|
|
636
|
+
label: result.connector.label,
|
|
637
|
+
connectorAvailable: result.connector.visibility === "available",
|
|
638
|
+
credentialResolution: result.connector.credentialResolution,
|
|
639
|
+
run: result.run,
|
|
640
|
+
platformOrigin: platformUrl.origin,
|
|
641
|
+
agentId: process.env.ZERO_AGENT_ID || void 0
|
|
642
|
+
};
|
|
643
|
+
checkEnvironmentNames(ctx);
|
|
644
|
+
const { isConnected, isExpired, hasPermission } = await checkConnectorStatus(ctx);
|
|
645
|
+
const configuredForRun = checkConnectorDomains(ctx);
|
|
646
|
+
if (configuredForRun === false) {
|
|
647
|
+
console.log(
|
|
648
|
+
`Steps 1-2 summary: The ${ctx.label} connector is not configured for this run. Check the agent authorization settings, then start a new run after updating them.`
|
|
649
|
+
);
|
|
650
|
+
} else if (isConnected && !isExpired && hasPermission) {
|
|
651
|
+
console.log(
|
|
652
|
+
`Steps 1-2 summary: The ${ctx.label} connector is connected, active, and authorized. Outbound requests to the registered base URLs will have credentials injected at the network boundary.`
|
|
653
|
+
);
|
|
654
|
+
}
|
|
655
|
+
console.log("");
|
|
656
|
+
if (result.mode === "url") {
|
|
657
|
+
printUrlPermissionDiagnostic(result);
|
|
658
|
+
} else {
|
|
659
|
+
printEnvironmentPermissionDiagnostic(
|
|
660
|
+
result,
|
|
661
|
+
request.mode === "environment" ? request.permission : void 0
|
|
662
|
+
);
|
|
663
|
+
}
|
|
664
|
+
printRediagnoseHint(opts, method);
|
|
665
|
+
})
|
|
666
|
+
);
|
|
667
|
+
|
|
668
|
+
// src/commands/zero/doctor/permission-deny.ts
|
|
669
|
+
init_esm_shims();
|
|
670
|
+
|
|
671
|
+
// src/commands/zero/doctor/computer-use-guidance.ts
|
|
672
|
+
init_esm_shims();
|
|
673
|
+
var COMPUTER_USE_CONNECTOR_REF = "computer-use";
|
|
674
|
+
var COMPUTER_USE_CAPABILITY = "computer-use:write";
|
|
675
|
+
var COMPUTER_USE_PATH_PREFIX = "/computer-use";
|
|
676
|
+
var COMPUTER_USE_PATH_PREFIX_WITH_SLASH = `${COMPUTER_USE_PATH_PREFIX}/`;
|
|
677
|
+
function isComputerUsePermissionTarget(target) {
|
|
678
|
+
return target.connectorRef === COMPUTER_USE_CONNECTOR_REF || target.permission === COMPUTER_USE_CAPABILITY || target.path === COMPUTER_USE_PATH_PREFIX || target.path?.startsWith(COMPUTER_USE_PATH_PREFIX_WITH_SLASH) === true;
|
|
679
|
+
}
|
|
680
|
+
function printComputerUsePermissionGuidance() {
|
|
681
|
+
console.log("Computer Use access is not managed as a connector permission.");
|
|
682
|
+
console.log(
|
|
683
|
+
"The current run token needs computer-use:write, which is issued only when a Zero Desktop Computer Use host is selected for the chat or thread before the run starts."
|
|
684
|
+
);
|
|
685
|
+
console.log(
|
|
686
|
+
"Open Zero Desktop, make sure Computer Use is online, select the Computer Use host for this chat/thread, then start a new run. Existing run tokens cannot be upgraded in place."
|
|
687
|
+
);
|
|
688
|
+
console.log(
|
|
689
|
+
"Run `zero whoami` to confirm whether the current ZERO_TOKEN includes computer-use:write."
|
|
690
|
+
);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
// src/commands/zero/doctor/permission-deny.ts
|
|
694
|
+
var VALID_DENIED_METHODS = /* @__PURE__ */ new Set([
|
|
695
|
+
"GET",
|
|
696
|
+
"POST",
|
|
697
|
+
"PUT",
|
|
698
|
+
"PATCH",
|
|
699
|
+
"DELETE",
|
|
700
|
+
"HEAD",
|
|
701
|
+
"OPTIONS"
|
|
702
|
+
]);
|
|
703
|
+
function unknownPermissionChangeCommand2(connectorRef) {
|
|
704
|
+
return `zero doctor permission-change ${connectorRef} --permission ${UNKNOWN_PERMISSION_GRANT} --enable --duration 1h`;
|
|
705
|
+
}
|
|
706
|
+
function pathOnlyError() {
|
|
707
|
+
return new Error(
|
|
708
|
+
"permission-deny now requires --url because method/path alone can match the wrong API base."
|
|
709
|
+
);
|
|
710
|
+
}
|
|
711
|
+
function invalidUrlError() {
|
|
712
|
+
return new Error(
|
|
713
|
+
"permission-deny requires --url to be a valid absolute http or https URL."
|
|
714
|
+
);
|
|
715
|
+
}
|
|
716
|
+
function invalidMethodError() {
|
|
717
|
+
return new Error(
|
|
718
|
+
"permission-deny requires --method to be one of GET, POST, PUT, PATCH, DELETE, HEAD, or OPTIONS."
|
|
719
|
+
);
|
|
720
|
+
}
|
|
721
|
+
function unsafePathError() {
|
|
722
|
+
return new Error(
|
|
723
|
+
"permission-deny cannot diagnose unsafe URL paths because they are blocked before permission policy evaluation."
|
|
724
|
+
);
|
|
725
|
+
}
|
|
726
|
+
function parseDeniedMethod(method) {
|
|
727
|
+
const upperMethod = method.toUpperCase();
|
|
728
|
+
if (!VALID_DENIED_METHODS.has(upperMethod)) {
|
|
729
|
+
throw invalidMethodError();
|
|
730
|
+
}
|
|
731
|
+
return upperMethod;
|
|
732
|
+
}
|
|
733
|
+
function rawAuthorityFromDeniedUrl(url) {
|
|
734
|
+
const schemeEnd = url.indexOf("://");
|
|
735
|
+
if (schemeEnd === -1) return null;
|
|
736
|
+
const authorityStart = schemeEnd + 3;
|
|
737
|
+
let authorityEnd = url.length;
|
|
738
|
+
for (const delimiter of ["/", "?", "#"]) {
|
|
739
|
+
const index = url.indexOf(delimiter, authorityStart);
|
|
740
|
+
if (index !== -1) authorityEnd = Math.min(authorityEnd, index);
|
|
741
|
+
}
|
|
742
|
+
return url.slice(authorityStart, authorityEnd);
|
|
743
|
+
}
|
|
744
|
+
function rawAuthorityHasUnsafeSyntax(url) {
|
|
745
|
+
const authority = rawAuthorityFromDeniedUrl(url);
|
|
746
|
+
if (authority === null) return false;
|
|
747
|
+
return authority === "" || authority.includes("\\") || authority.includes("%") || [...authority].some((char) => {
|
|
748
|
+
return char.charCodeAt(0) > 127;
|
|
749
|
+
});
|
|
750
|
+
}
|
|
751
|
+
function validateDeniedUrl(url) {
|
|
752
|
+
if (!url.includes("://") || /\s/.test(url) || rawAuthorityHasUnsafeSyntax(url)) {
|
|
753
|
+
throw invalidUrlError();
|
|
754
|
+
}
|
|
755
|
+
try {
|
|
756
|
+
const parsed = new URL(url);
|
|
757
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
|
|
758
|
+
throw invalidUrlError();
|
|
759
|
+
}
|
|
760
|
+
if (parsed.username !== "" || parsed.password !== "") {
|
|
761
|
+
throw invalidUrlError();
|
|
762
|
+
}
|
|
763
|
+
} catch {
|
|
764
|
+
throw invalidUrlError();
|
|
765
|
+
}
|
|
766
|
+
}
|
|
767
|
+
function stripUrlQueryAndFragment2(url) {
|
|
768
|
+
const queryIndex = url.indexOf("?");
|
|
769
|
+
const fragmentIndex = url.indexOf("#");
|
|
770
|
+
let end = url.length;
|
|
771
|
+
if (queryIndex !== -1) end = Math.min(end, queryIndex);
|
|
772
|
+
if (fragmentIndex !== -1) end = Math.min(end, fragmentIndex);
|
|
773
|
+
return url.slice(0, end);
|
|
774
|
+
}
|
|
775
|
+
function rawPathFromDeniedUrl(url) {
|
|
776
|
+
const urlWithoutQuery = stripUrlQueryAndFragment2(url);
|
|
777
|
+
const schemeEnd = urlWithoutQuery.indexOf("://");
|
|
778
|
+
const authorityStart = schemeEnd === -1 ? 0 : schemeEnd + 3;
|
|
779
|
+
const pathStart = urlWithoutQuery.indexOf("/", authorityStart);
|
|
780
|
+
return pathStart === -1 ? "/" : urlWithoutQuery.slice(pathStart);
|
|
781
|
+
}
|
|
782
|
+
function printPermissionChangeGuidance(connectorRef, permissions) {
|
|
783
|
+
const sortedPermissions = [...permissions].sort();
|
|
784
|
+
if (sortedPermissions.length === 1) {
|
|
785
|
+
const permission = sortedPermissions[0];
|
|
786
|
+
console.log(`This is covered by the "${permission}" permission.`);
|
|
787
|
+
console.log(
|
|
788
|
+
`To allow this permission, run: zero doctor permission-change ${connectorRef} --permission ${permission} --enable --duration 1h`
|
|
789
|
+
);
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
792
|
+
console.log(
|
|
793
|
+
`This is covered by these permissions: ${sortedPermissions.join(", ")}.`
|
|
794
|
+
);
|
|
795
|
+
for (const permission of sortedPermissions) {
|
|
796
|
+
console.log(
|
|
797
|
+
`To allow ${permission}, run: zero doctor permission-change ${connectorRef} --permission ${permission} --enable --duration 1h`
|
|
798
|
+
);
|
|
799
|
+
}
|
|
800
|
+
}
|
|
801
|
+
function printFilteredRequest(label, method, relativePath, base) {
|
|
802
|
+
console.log(
|
|
803
|
+
`The ${label} permission filtered ${method} ${relativePath} relative to base URL ${base}.`
|
|
804
|
+
);
|
|
805
|
+
}
|
|
806
|
+
function unsafeInputError2(reason) {
|
|
807
|
+
switch (reason) {
|
|
808
|
+
case "invalid-method":
|
|
809
|
+
return invalidMethodError();
|
|
810
|
+
case "invalid-url":
|
|
811
|
+
return invalidUrlError();
|
|
812
|
+
case "unsafe-path":
|
|
813
|
+
return unsafePathError();
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
function handleDiagnosticResult(connectorRef, method, result) {
|
|
817
|
+
switch (result.outcome) {
|
|
818
|
+
case "matched":
|
|
819
|
+
printFilteredRequest(
|
|
820
|
+
result.label,
|
|
821
|
+
method,
|
|
822
|
+
result.relativePath,
|
|
823
|
+
result.base
|
|
824
|
+
);
|
|
825
|
+
printPermissionChangeGuidance(connectorRef, result.permissions);
|
|
826
|
+
return;
|
|
827
|
+
case "unknown-endpoint":
|
|
828
|
+
printFilteredRequest(
|
|
829
|
+
result.label,
|
|
830
|
+
method,
|
|
831
|
+
result.relativePath,
|
|
832
|
+
result.base
|
|
833
|
+
);
|
|
834
|
+
console.log("No named permission was found covering this request.");
|
|
835
|
+
console.log("This request is governed by the unknown endpoint policy.");
|
|
836
|
+
console.log(
|
|
837
|
+
`To allow unknown endpoints, run: ${unknownPermissionChangeCommand2(connectorRef)}`
|
|
838
|
+
);
|
|
839
|
+
return;
|
|
840
|
+
case "unknown-connector":
|
|
841
|
+
throw new Error(`Unknown connector type: ${connectorRef}`);
|
|
842
|
+
case "no-matching-base":
|
|
843
|
+
throw new Error(
|
|
844
|
+
`No registered ${result.label} base URL matches the provided URL.`
|
|
845
|
+
);
|
|
846
|
+
case "unresolved-dynamic-base":
|
|
847
|
+
throw new Error(
|
|
848
|
+
`No authoritative ${result.label} base URL is available for this diagnostic. Verify the ${connectorRef} connector configuration for the affected context and retry.`
|
|
849
|
+
);
|
|
850
|
+
case "unsafe-input":
|
|
851
|
+
throw unsafeInputError2(result.reason);
|
|
852
|
+
}
|
|
853
|
+
const exhaustiveResult = result;
|
|
854
|
+
return exhaustiveResult;
|
|
855
|
+
}
|
|
856
|
+
var permissionDenyCommand = new Command().name("permission-deny").description(
|
|
857
|
+
"Diagnose a permission denial and find the permission that covers it"
|
|
858
|
+
).argument("<connector-ref>", "The connector type (e.g. github)").addOption(
|
|
859
|
+
new Option(
|
|
860
|
+
"--method <method>",
|
|
861
|
+
"The denied HTTP method"
|
|
862
|
+
).makeOptionMandatory()
|
|
863
|
+
).addOption(
|
|
864
|
+
new Option(
|
|
865
|
+
"--url <url>",
|
|
866
|
+
"The denied request URL; query strings are ignored (required)"
|
|
867
|
+
)
|
|
868
|
+
).addOption(new Option("--path <path>", "Deprecated: use --url").hideHelp()).addHelpText(
|
|
869
|
+
"after",
|
|
870
|
+
`
|
|
871
|
+
Examples:
|
|
872
|
+
zero doctor permission-deny github --method GET --url https://api.github.com/repos/owner/repo/pulls
|
|
873
|
+
zero doctor permission-deny slack --method POST --url https://slack.com/api/chat.postMessage
|
|
874
|
+
zero doctor permission-deny youtube --method PUT --url https://youtube.googleapis.com/upload/youtube/v3/videos
|
|
875
|
+
|
|
876
|
+
Notes:
|
|
877
|
+
- Identifies which named permission covers a denied request
|
|
878
|
+
- If the firewall denial response includes a url field, pass that value to --url
|
|
879
|
+
- Requires the denied URL origin and path because method/path alone can match the wrong API base
|
|
880
|
+
- Query strings and fragments are ignored for matching; omit them when they may contain secrets
|
|
881
|
+
- Use permission-change to request or enable the permission
|
|
882
|
+
- Permission-change enable requests default to --duration 1h; pick 24h, 7d, or always only when appropriate`
|
|
883
|
+
).action(
|
|
884
|
+
withErrorHandler(
|
|
885
|
+
async (connectorRef, opts) => {
|
|
886
|
+
if (opts.path !== void 0) {
|
|
887
|
+
throw pathOnlyError();
|
|
888
|
+
}
|
|
889
|
+
if (!opts.url) {
|
|
890
|
+
throw pathOnlyError();
|
|
891
|
+
}
|
|
892
|
+
const method = parseDeniedMethod(opts.method);
|
|
893
|
+
validateDeniedUrl(opts.url);
|
|
894
|
+
const deniedPath = rawPathFromDeniedUrl(opts.url);
|
|
895
|
+
if (hasUnsafeFirewallPath(deniedPath)) {
|
|
896
|
+
throw unsafePathError();
|
|
897
|
+
}
|
|
898
|
+
if (isComputerUsePermissionTarget({
|
|
899
|
+
connectorRef,
|
|
900
|
+
path: deniedPath
|
|
901
|
+
})) {
|
|
902
|
+
printComputerUsePermissionGuidance();
|
|
903
|
+
return;
|
|
904
|
+
}
|
|
905
|
+
const result = await diagnoseZeroConnectorPermissionDeny(
|
|
906
|
+
connectorRef,
|
|
907
|
+
method,
|
|
908
|
+
stripUrlQueryAndFragment2(opts.url)
|
|
909
|
+
);
|
|
910
|
+
handleDiagnosticResult(connectorRef, method, result);
|
|
911
|
+
}
|
|
912
|
+
)
|
|
913
|
+
);
|
|
914
|
+
|
|
915
|
+
// src/commands/zero/doctor/permission-change.ts
|
|
916
|
+
init_esm_shims();
|
|
917
|
+
var DEFAULT_PERMISSION_GRANT_DURATION = "1h";
|
|
918
|
+
var PERMISSION_GRANT_DURATIONS = [
|
|
919
|
+
"1h",
|
|
920
|
+
"24h",
|
|
921
|
+
"7d",
|
|
922
|
+
"always"
|
|
923
|
+
];
|
|
924
|
+
function permissionDescription(permission) {
|
|
925
|
+
return permission === UNKNOWN_PERMISSION_GRANT ? "unknown endpoints" : `the "${permission}" permission`;
|
|
926
|
+
}
|
|
927
|
+
function printSensitivePermissionGuidance(connectorRef, permission, action) {
|
|
928
|
+
if (action !== "enable") return;
|
|
929
|
+
if (connectorRef === "slack" && permission === "chat:write") {
|
|
930
|
+
console.log("");
|
|
931
|
+
console.log(
|
|
932
|
+
"IMPORTANT: Granting chat:write allows sending messages AS THE USER's identity, not as a bot."
|
|
933
|
+
);
|
|
934
|
+
console.log(
|
|
935
|
+
"Use `zero slack message send -c <channel> -t <text>` to send messages as the bot instead \u2014 this is the recommended approach for most use cases."
|
|
936
|
+
);
|
|
937
|
+
console.log(
|
|
938
|
+
"Only allow this permission below if acting as the user is specifically required."
|
|
939
|
+
);
|
|
940
|
+
console.log("");
|
|
941
|
+
}
|
|
942
|
+
if (connectorRef === "gmail" && (permission === "messages.send" || permission === "drafts.send")) {
|
|
943
|
+
console.log("");
|
|
944
|
+
console.log(
|
|
945
|
+
"IMPORTANT: Granting Gmail send permissions allows the agent to send emails directly as the user."
|
|
946
|
+
);
|
|
947
|
+
console.log(
|
|
948
|
+
"Consider keeping messages.send and drafts.send disabled and using drafts.write instead \u2014 the agent can create drafts for the user to review and send manually."
|
|
949
|
+
);
|
|
950
|
+
console.log(
|
|
951
|
+
"Only allow this permission below if direct sending is specifically required."
|
|
952
|
+
);
|
|
953
|
+
console.log("");
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
function printPermissionActionMessage(args) {
|
|
957
|
+
const grantAction = args.action === "enable" ? "allow" : "deny";
|
|
958
|
+
console.log(
|
|
959
|
+
`You can ${grantAction} ${permissionDescription(args.permission)} for your connector access: [Manage ${args.label} permissions](${args.url})`
|
|
960
|
+
);
|
|
961
|
+
if (args.duration) {
|
|
962
|
+
console.log(
|
|
963
|
+
`Requested duration: ${args.duration}. Use --duration 1h|24h|7d|always to choose a different grant lifetime.`
|
|
964
|
+
);
|
|
965
|
+
}
|
|
966
|
+
}
|
|
967
|
+
function printComputerUseAuthorizationLink(args) {
|
|
968
|
+
console.log(
|
|
969
|
+
"Computer Use needs a Zero Desktop host selected before a run starts."
|
|
970
|
+
);
|
|
971
|
+
console.log(
|
|
972
|
+
"Ask the user to authorize a host for future runs in this chat or Slack thread:"
|
|
973
|
+
);
|
|
974
|
+
console.log(args.authorizationUrl);
|
|
975
|
+
console.log(
|
|
976
|
+
`This link expires at ${args.expiresAt}. Existing run tokens cannot be upgraded in place; start a new run after authorization.`
|
|
977
|
+
);
|
|
978
|
+
}
|
|
979
|
+
async function printComputerUsePermissionChangeMessage(action) {
|
|
980
|
+
if (action !== "enable") {
|
|
981
|
+
printComputerUsePermissionGuidance();
|
|
982
|
+
return;
|
|
983
|
+
}
|
|
984
|
+
if (!process.env.ZERO_TOKEN) {
|
|
985
|
+
printComputerUsePermissionGuidance();
|
|
986
|
+
return;
|
|
987
|
+
}
|
|
988
|
+
try {
|
|
989
|
+
const request = await createComputerUseAuthorizationRequest();
|
|
990
|
+
printComputerUseAuthorizationLink({
|
|
991
|
+
authorizationUrl: request.authorizationUrl,
|
|
992
|
+
expiresAt: request.expiresAt
|
|
993
|
+
});
|
|
994
|
+
} catch (error) {
|
|
995
|
+
if (error instanceof ApiRequestError) {
|
|
996
|
+
console.log(
|
|
997
|
+
`Computer Use authorization link unavailable: ${error.message}`
|
|
998
|
+
);
|
|
999
|
+
printComputerUsePermissionGuidance();
|
|
1000
|
+
return;
|
|
1001
|
+
}
|
|
1002
|
+
const message = error instanceof Error ? error.message : "Unknown error";
|
|
1003
|
+
console.log(`Computer Use authorization link unavailable: ${message}`);
|
|
1004
|
+
printComputerUsePermissionGuidance();
|
|
1005
|
+
}
|
|
1006
|
+
}
|
|
1007
|
+
async function outputPermissionChangeMessage(connectorRef, label, permission, action, duration, agentId) {
|
|
1008
|
+
const platformOrigin = await getPlatformOrigin();
|
|
1009
|
+
const urlParams = new URLSearchParams({
|
|
1010
|
+
ref: connectorRef,
|
|
1011
|
+
permission,
|
|
1012
|
+
action: action === "enable" ? "allow" : "deny"
|
|
1013
|
+
});
|
|
1014
|
+
if (action === "enable") {
|
|
1015
|
+
urlParams.set("expiresIn", duration ?? DEFAULT_PERMISSION_GRANT_DURATION);
|
|
1016
|
+
}
|
|
1017
|
+
const pagePath = agentId ? `/agents/${agentId}/permissions` : "/agents";
|
|
1018
|
+
const url = `${platformOrigin}${pagePath}?${urlParams.toString()}`;
|
|
1019
|
+
printSensitivePermissionGuidance(connectorRef, permission, action);
|
|
1020
|
+
printPermissionActionMessage({
|
|
1021
|
+
action,
|
|
1022
|
+
permission,
|
|
1023
|
+
label,
|
|
1024
|
+
url,
|
|
1025
|
+
duration: action === "enable" ? duration ?? DEFAULT_PERMISSION_GRANT_DURATION : void 0
|
|
1026
|
+
});
|
|
1027
|
+
}
|
|
1028
|
+
var permissionChangeCommand = new Command().name("permission-change").description("Change or request a permission (enable or disable)").argument("<connector-ref>", "The connector type (e.g. github)").addOption(
|
|
1029
|
+
new Option(
|
|
1030
|
+
"--permission <name>",
|
|
1031
|
+
"The permission name to change"
|
|
1032
|
+
).makeOptionMandatory()
|
|
1033
|
+
).addOption(
|
|
1034
|
+
new Option(
|
|
1035
|
+
"--enable",
|
|
1036
|
+
"Enable or request enabling the permission"
|
|
1037
|
+
).conflicts("disable")
|
|
1038
|
+
).addOption(
|
|
1039
|
+
new Option(
|
|
1040
|
+
"--disable",
|
|
1041
|
+
"Disable or request disabling the permission"
|
|
1042
|
+
).conflicts("enable")
|
|
1043
|
+
).addOption(
|
|
1044
|
+
new Option(
|
|
1045
|
+
"--duration <duration>",
|
|
1046
|
+
"Requested allow duration: 1h, 24h, 7d, or always (default: 1h)"
|
|
1047
|
+
).choices([...PERMISSION_GRANT_DURATIONS])
|
|
1048
|
+
).addOption(
|
|
1049
|
+
new Option("--reason <text>", "Brief reason for the permission change")
|
|
1050
|
+
).addOption(
|
|
1051
|
+
new Option(
|
|
1052
|
+
"--agent <id>",
|
|
1053
|
+
"Agent ID whose permission page should be opened (defaults to ZERO_AGENT_ID)"
|
|
1054
|
+
)
|
|
1055
|
+
).addHelpText(
|
|
1056
|
+
"after",
|
|
1057
|
+
`
|
|
1058
|
+
Examples:
|
|
1059
|
+
zero doctor permission-change github --permission contents:read --enable
|
|
1060
|
+
zero doctor permission-change github --permission contents:write --enable --duration 24h
|
|
1061
|
+
zero doctor permission-change gmail --permission messages.write --enable --agent <agent-id>
|
|
1062
|
+
zero doctor permission-change slack --permission chat:write --disable
|
|
1063
|
+
zero doctor permission-change cloudflare --permission __unknown__ --disable
|
|
1064
|
+
zero doctor permission-change computer-use --permission computer-use:write --enable
|
|
1065
|
+
|
|
1066
|
+
Notes:
|
|
1067
|
+
- Outputs a platform URL for the user to adjust the permission
|
|
1068
|
+
- Use --permission __unknown__ to change unknown endpoint policy
|
|
1069
|
+
- Use --agent to request a permission for another agent; defaults to ZERO_AGENT_ID
|
|
1070
|
+
- Enable requests default to --duration 1h; use 24h or 7d for longer user-approved work
|
|
1071
|
+
- Use --duration always only when the user explicitly asks for persistent access
|
|
1072
|
+
- Permission changes update the current user's connector grants`
|
|
1073
|
+
).action(
|
|
1074
|
+
withErrorHandler(
|
|
1075
|
+
async (connectorRef, opts) => {
|
|
1076
|
+
if (!opts.enable && !opts.disable) {
|
|
1077
|
+
throw new Error("Either --enable or --disable is required");
|
|
1078
|
+
}
|
|
1079
|
+
if (opts.disable && opts.duration !== void 0) {
|
|
1080
|
+
throw new Error("--duration is only supported with --enable");
|
|
1081
|
+
}
|
|
1082
|
+
if (isComputerUsePermissionTarget({
|
|
1083
|
+
connectorRef,
|
|
1084
|
+
permission: opts.permission
|
|
1085
|
+
})) {
|
|
1086
|
+
await printComputerUsePermissionChangeMessage(
|
|
1087
|
+
opts.enable ? "enable" : "disable"
|
|
1088
|
+
);
|
|
1089
|
+
return;
|
|
1090
|
+
}
|
|
1091
|
+
const metadata = await getZeroConnectorCatalogPermissions(connectorRef);
|
|
1092
|
+
if (!metadata) {
|
|
1093
|
+
throw new Error(`Unknown connector type: ${connectorRef}`);
|
|
1094
|
+
}
|
|
1095
|
+
if (opts.permission !== UNKNOWN_PERMISSION_GRANT && !findFirewallMetadataPermission(metadata, opts.permission)) {
|
|
1096
|
+
throw new Error(
|
|
1097
|
+
`Unknown permission "${opts.permission}" for ${connectorRef}`
|
|
1098
|
+
);
|
|
1099
|
+
}
|
|
1100
|
+
const action = opts.enable ? "enable" : "disable";
|
|
1101
|
+
await outputPermissionChangeMessage(
|
|
1102
|
+
connectorRef,
|
|
1103
|
+
metadata.label,
|
|
1104
|
+
opts.permission,
|
|
1105
|
+
action,
|
|
1106
|
+
opts.duration,
|
|
1107
|
+
opts.agent ?? process.env.ZERO_AGENT_ID
|
|
1108
|
+
);
|
|
1109
|
+
}
|
|
1110
|
+
)
|
|
1111
|
+
);
|
|
1112
|
+
|
|
1113
|
+
// src/commands/zero/doctor/credit.ts
|
|
1114
|
+
init_esm_shims();
|
|
1115
|
+
function memberName(member) {
|
|
1116
|
+
const name = [member.firstName, member.lastName].filter(Boolean).join(" ");
|
|
1117
|
+
return name ? `${name} <${member.email}>` : member.email;
|
|
1118
|
+
}
|
|
1119
|
+
var creditCommand = new Command().name("credit").description("Diagnose current organization credit and purchase access").action(
|
|
1120
|
+
withErrorHandler(async () => {
|
|
1121
|
+
const [org, billing, members] = await Promise.all([
|
|
1122
|
+
getZeroOrg(),
|
|
1123
|
+
getZeroBillingStatus(),
|
|
1124
|
+
getZeroOrgMembers()
|
|
1125
|
+
]);
|
|
1126
|
+
const admins = members.members.filter((member) => {
|
|
1127
|
+
return member.role === "admin";
|
|
1128
|
+
});
|
|
1129
|
+
const isAdmin = members.role === "admin";
|
|
1130
|
+
const canPurchaseCredits = isAdmin;
|
|
1131
|
+
console.log(source_default.bold("Credit diagnostics:"));
|
|
1132
|
+
console.log(` Org: ${source_default.green(org.slug)}`);
|
|
1133
|
+
console.log(` Tier: ${source_default.cyan(billing.tier)}`);
|
|
1134
|
+
console.log(
|
|
1135
|
+
` Available credits: ${source_default.cyan(billing.credits.toLocaleString())}`
|
|
1136
|
+
);
|
|
1137
|
+
console.log(` Current user role: ${source_default.cyan(members.role)}`);
|
|
1138
|
+
console.log(
|
|
1139
|
+
` Can purchase credits: ${canPurchaseCredits ? source_default.green("yes") : source_default.yellow("no")}`
|
|
1140
|
+
);
|
|
1141
|
+
console.log(
|
|
1142
|
+
` Auto-recharge: ${billing.autoRecharge.enabled ? source_default.green("enabled") : "disabled"}`
|
|
1143
|
+
);
|
|
1144
|
+
if (billing.autoRecharge.enabled) {
|
|
1145
|
+
console.log(
|
|
1146
|
+
` Threshold: ${billing.autoRecharge.threshold?.toLocaleString() ?? "not set"}`
|
|
1147
|
+
);
|
|
1148
|
+
console.log(
|
|
1149
|
+
` Amount: ${billing.autoRecharge.amount?.toLocaleString() ?? "not set"}`
|
|
1150
|
+
);
|
|
1151
|
+
}
|
|
1152
|
+
if (!isAdmin) {
|
|
1153
|
+
console.log(source_default.bold("\nOrganization admins:"));
|
|
1154
|
+
for (const admin of admins) {
|
|
1155
|
+
console.log(` - ${memberName(admin)}`);
|
|
1156
|
+
}
|
|
1157
|
+
console.log(
|
|
1158
|
+
source_default.yellow(
|
|
1159
|
+
"\nAsk an organization admin to buy credits or upgrade the plan."
|
|
1160
|
+
)
|
|
1161
|
+
);
|
|
1162
|
+
} else if (billing.tier === "free") {
|
|
1163
|
+
console.log(
|
|
1164
|
+
"\nFree-tier admins can upgrade to Pro from billing or buy credits with `zero credit <credits>`."
|
|
1165
|
+
);
|
|
1166
|
+
} else {
|
|
1167
|
+
console.log("\nUse `zero credit <credits>` to buy more credits.");
|
|
1168
|
+
}
|
|
1169
|
+
})
|
|
1170
|
+
);
|
|
1171
|
+
|
|
1172
|
+
// src/commands/zero/doctor/index.ts
|
|
1173
|
+
var zeroDoctorCommand = new Command().name("doctor").description("Diagnose runtime issues (connector health, permission denials)").addCommand(checkConnectorCommand).addCommand(creditCommand).addCommand(permissionDenyCommand).addCommand(permissionChangeCommand).addHelpText(
|
|
1174
|
+
"after",
|
|
1175
|
+
`
|
|
1176
|
+
Examples:
|
|
1177
|
+
Check a connector? zero doctor check-connector --env-name GITHUB_TOKEN
|
|
1178
|
+
Check a URL? zero doctor check-connector --url https://api.github.com/repos/owner/repo
|
|
1179
|
+
Check credits? zero doctor credit
|
|
1180
|
+
Check with permission? zero doctor check-connector --env-name SLACK_TOKEN --check-permission chat:write
|
|
1181
|
+
Permission denied? zero doctor permission-deny github --method GET --url https://api.github.com/repos/owner/repo
|
|
1182
|
+
Change a permission? zero doctor permission-change github --permission contents:read --enable --duration 1h
|
|
1183
|
+
Disable unknown URLs? zero doctor permission-change cloudflare --permission __unknown__ --disable
|
|
1184
|
+
|
|
1185
|
+
Notes:
|
|
1186
|
+
- Use zero doctor credit when a run or generation fails because the org has insufficient credits, when a user asks how to recharge, or before trying to buy credits
|
|
1187
|
+
- Use this when your task fails due to a missing connector environment name or permission denial
|
|
1188
|
+
- Use zero generate <type> (no --prompt) to see every provider available for a given generation type
|
|
1189
|
+
- The doctor will identify the issue and give the user a link to resolve it`
|
|
1190
|
+
);
|
|
1191
|
+
export {
|
|
1192
|
+
zeroDoctorCommand
|
|
1193
|
+
};
|
|
1194
|
+
//# sourceMappingURL=doctor-RGD5Z6QS.js.map
|