@vercel/cli-support 65.9.0 → 65.10.0-snapshot-b8e5bb846796

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.
Files changed (271) hide show
  1. package/dist/chunks/add-4VXTYDC7.js +8 -0
  2. package/dist/chunks/add-K3ZHVAYL.js +8 -0
  3. package/dist/chunks/add-M26FXXGH.js +8 -0
  4. package/dist/chunks/build-ESY72OCS.js +7 -0
  5. package/dist/chunks/chunk-2AMO2VMV.js +68 -0
  6. package/dist/chunks/{chunk-U6KJOCXX.js → chunk-2DHDKWYN.js} +1 -1
  7. package/dist/chunks/chunk-2VBFQZ72.js +7 -0
  8. package/dist/chunks/{chunk-BZNRYQ6U.js → chunk-37LESFVW.js} +1 -1
  9. package/dist/chunks/{chunk-CMHL66LK.js → chunk-3F5BOG4A.js} +1 -1
  10. package/dist/chunks/{chunk-ZCXKEZS4.js → chunk-3HC4F32I.js} +1 -1
  11. package/dist/chunks/{chunk-VZKQP67Q.js → chunk-4FV4I3KH.js} +1 -1
  12. package/dist/chunks/{chunk-R5ZLTWKB.js → chunk-4LGAV2WN.js} +1 -1
  13. package/dist/chunks/{chunk-DUJAQS7I.js → chunk-4MPQZWQV.js} +1 -1
  14. package/dist/chunks/{chunk-7WY7ASKE.js → chunk-56UH6NQ3.js} +1 -1
  15. package/dist/chunks/{chunk-QQA2OMXJ.js → chunk-5KE67O45.js} +1 -1
  16. package/dist/chunks/chunk-6EQWP4LZ.js +10 -0
  17. package/dist/chunks/{chunk-USYEDO7R.js → chunk-6SJHJBJH.js} +1 -1
  18. package/dist/chunks/{chunk-TRZDIAX3.js → chunk-77LSSWXL.js} +1 -1
  19. package/dist/chunks/{chunk-DASHFOKO.js → chunk-7DA25VTX.js} +1 -1
  20. package/dist/chunks/chunk-7DP4DHQW.js +7 -0
  21. package/dist/chunks/{chunk-ZERZX6BZ.js → chunk-7JY4LSW4.js} +2 -2
  22. package/dist/chunks/{chunk-EW62WSXG.js → chunk-7NNA4VRN.js} +1 -1
  23. package/dist/chunks/{chunk-EXLKCL5I.js → chunk-7VICILSF.js} +1 -1
  24. package/dist/chunks/{chunk-4XJVEKTD.js → chunk-7XRM7NEF.js} +1 -1
  25. package/dist/chunks/chunk-A5D7MVRH.js +7 -0
  26. package/dist/chunks/{chunk-EVH5524J.js → chunk-A5NC6IDR.js} +1 -1
  27. package/dist/chunks/{chunk-EDOTKQ7L.js → chunk-ADQRYOJK.js} +1 -1
  28. package/dist/chunks/{chunk-D2JHIOVH.js → chunk-AEYIIPUZ.js} +1 -1
  29. package/dist/chunks/{chunk-GHEGWXH2.js → chunk-ANCWFEOM.js} +1 -1
  30. package/dist/chunks/{chunk-IFCMWIRB.js → chunk-APM4DYNZ.js} +1 -1
  31. package/dist/chunks/chunk-BB3N7F4F.js +7 -0
  32. package/dist/chunks/{chunk-7ULVGK67.js → chunk-BB5UMZMF.js} +1 -1
  33. package/dist/chunks/{chunk-4Z3APEBF.js → chunk-BJXLR2RE.js} +1 -1
  34. package/dist/chunks/{chunk-Y6WXTTZS.js → chunk-BPRGAX62.js} +1 -1
  35. package/dist/chunks/{chunk-43P35KUA.js → chunk-BQVKEPOO.js} +1 -1
  36. package/dist/chunks/{chunk-MXURT5TX.js → chunk-BRKI6NTF.js} +1 -1
  37. package/dist/chunks/{chunk-G6HUSV7F.js → chunk-BZV2S4H6.js} +1 -1
  38. package/dist/chunks/chunk-C4N4LKPM.js +7 -0
  39. package/dist/chunks/{chunk-WFOJ2LEA.js → chunk-CCMABJKN.js} +1 -1
  40. package/dist/chunks/chunk-CFYTFXX6.js +7 -0
  41. package/dist/chunks/chunk-CKTLP5GX.js +7 -0
  42. package/dist/chunks/{chunk-OZPBJWYU.js → chunk-CSOIXUCL.js} +7 -7
  43. package/dist/chunks/{chunk-GCPPL24C.js → chunk-CUBRYWA2.js} +1 -1
  44. package/dist/chunks/{chunk-M73W4XNR.js → chunk-CZOD25BC.js} +1 -1
  45. package/dist/chunks/{chunk-UIJYRI3G.js → chunk-DBPN2VGJ.js} +1 -1
  46. package/dist/chunks/{chunk-XBWISZCG.js → chunk-EJ34DLV4.js} +1 -1
  47. package/dist/chunks/{chunk-T5TOBY4D.js → chunk-EJZNJN4N.js} +1 -1
  48. package/dist/chunks/{chunk-TMXIVQ45.js → chunk-F2LNGJOZ.js} +1 -1
  49. package/dist/chunks/{chunk-G3LWP5CH.js → chunk-FAVZ6WVS.js} +1 -1
  50. package/dist/chunks/{chunk-5K4UTJSY.js → chunk-FHGWXXAS.js} +1 -1
  51. package/dist/chunks/{chunk-2DODPQ5J.js → chunk-FI2N3SE5.js} +1 -1
  52. package/dist/chunks/{chunk-D4ZEJM3T.js → chunk-FI5O4WHD.js} +1 -1
  53. package/dist/chunks/chunk-FTACGWII.js +14 -0
  54. package/dist/chunks/chunk-FUYVYZWT.js +7 -0
  55. package/dist/chunks/{chunk-FWTBSC7Z.js → chunk-FY4ORPZH.js} +1 -1
  56. package/dist/chunks/{chunk-VBKFCR5W.js → chunk-G5T6UQAL.js} +1 -1
  57. package/dist/chunks/chunk-G7H33IKQ.js +10 -0
  58. package/dist/chunks/{chunk-33U57CNE.js → chunk-GKALP6QD.js} +1 -1
  59. package/dist/chunks/{chunk-DUPAU76G.js → chunk-HJ45TAM4.js} +1 -1
  60. package/dist/chunks/{chunk-E5CN62HO.js → chunk-I6TWYNZF.js} +1 -1
  61. package/dist/chunks/{chunk-JOXGYP5S.js → chunk-JVNIDSP5.js} +1 -1
  62. package/dist/chunks/chunk-K6T65WB2.js +7 -0
  63. package/dist/chunks/chunk-KCJ7RU5I.js +10 -0
  64. package/dist/chunks/{chunk-TCB4XM23.js → chunk-L3YSOZTP.js} +1 -1
  65. package/dist/chunks/chunk-LNVODBR2.js +8 -0
  66. package/dist/chunks/{chunk-32AS5X7G.js → chunk-MUNGQJGO.js} +1 -1
  67. package/dist/chunks/{chunk-SNCQOAFU.js → chunk-MWEC2PBL.js} +1 -1
  68. package/dist/chunks/{chunk-UZTDRGCW.js → chunk-NAEY6HG5.js} +1 -1
  69. package/dist/chunks/{chunk-GN5IAG3M.js → chunk-NGHFFOD2.js} +1 -1
  70. package/dist/chunks/{chunk-4BZ3DNGM.js → chunk-NLKM5LR5.js} +1 -1
  71. package/dist/chunks/{chunk-UOQGI6CL.js → chunk-NNGNQNGM.js} +1 -1
  72. package/dist/chunks/{chunk-7PGGP2QT.js → chunk-NT5ITDTD.js} +1 -1
  73. package/dist/chunks/{chunk-NEUQZYBL.js → chunk-PMEYNJU2.js} +1 -1
  74. package/dist/chunks/{chunk-BWS3ZOHJ.js → chunk-Q4GX2UTG.js} +1 -1
  75. package/dist/chunks/{chunk-4SJU5QSD.js → chunk-QBEIKXKY.js} +1 -1
  76. package/dist/chunks/{chunk-CBVVVYUP.js → chunk-QCIIUQV3.js} +1 -1
  77. package/dist/chunks/{chunk-UVE5COCG.js → chunk-QR2Y6RI6.js} +1 -1
  78. package/dist/chunks/chunk-QSMWJAN7.js +7 -0
  79. package/dist/chunks/{chunk-GCXUSXB4.js → chunk-QVMU7ZKQ.js} +1 -1
  80. package/dist/chunks/{chunk-ZGKJLJ47.js → chunk-R2P4PNRQ.js} +1 -1
  81. package/dist/chunks/{chunk-Y5YXAXK3.js → chunk-R3D4M5RE.js} +1 -1
  82. package/dist/chunks/{chunk-QJAIUZVZ.js → chunk-ROOOBR3O.js} +5 -5
  83. package/dist/chunks/{chunk-H34SGIVS.js → chunk-S5JBQCBA.js} +1 -1
  84. package/dist/chunks/{chunk-PBX7RJ2K.js → chunk-SAIROH4Y.js} +1 -1
  85. package/dist/chunks/{chunk-2JNDJISE.js → chunk-SIN64EHW.js} +1 -1
  86. package/dist/chunks/{chunk-QBOY2CXL.js → chunk-SODZSOOL.js} +1 -1
  87. package/dist/chunks/{chunk-KV2DYFUG.js → chunk-T7HE23VK.js} +1 -1
  88. package/dist/chunks/{chunk-2JXQWOK5.js → chunk-TKJUKKR6.js} +1 -1
  89. package/dist/chunks/{chunk-2H4DUZJZ.js → chunk-TL4ZLZ2Q.js} +1 -1
  90. package/dist/chunks/{chunk-WGWGDC3N.js → chunk-TRYRN6OD.js} +1 -1
  91. package/dist/chunks/chunk-UWJ3UPS5.js +11 -0
  92. package/dist/chunks/{chunk-6RCFEJZK.js → chunk-UXRXHNSX.js} +1 -1
  93. package/dist/chunks/chunk-V32V4SXB.js +7 -0
  94. package/dist/chunks/{chunk-ECQKK4JU.js → chunk-VD2FK6OF.js} +1 -1
  95. package/dist/chunks/{chunk-QKWJN6OE.js → chunk-VDKY5KRE.js} +1 -1
  96. package/dist/chunks/chunk-VPUYTI5E.js +25 -0
  97. package/dist/chunks/{chunk-EBBDSEEU.js → chunk-VS3S5CU4.js} +1 -1
  98. package/dist/chunks/{chunk-JMAXX2I6.js → chunk-VU4PHRVP.js} +1 -1
  99. package/dist/chunks/{chunk-ZBZPCKTW.js → chunk-W5GHMAHP.js} +1 -1
  100. package/dist/chunks/{chunk-QY5RG6BB.js → chunk-WYFRVK6K.js} +1 -1
  101. package/dist/chunks/{chunk-BRETAWE7.js → chunk-XEXOSJIU.js} +1 -1
  102. package/dist/chunks/{chunk-5M3WBT3N.js → chunk-XXEGRTU6.js} +1 -1
  103. package/dist/chunks/{chunk-4OTI552J.js → chunk-Y45SSWNH.js} +1 -1
  104. package/dist/chunks/{chunk-WKYFWE37.js → chunk-YO6SJCZP.js} +1 -1
  105. package/dist/chunks/{chunk-TGPYWWX3.js → chunk-Z57NF2SA.js} +1 -1
  106. package/dist/chunks/chunk-ZUI5EMXD.js +11 -0
  107. package/dist/chunks/clear-56POXUP7.js +8 -0
  108. package/dist/chunks/{compile-vercel-config-DRTOWZK6.js → compile-vercel-config-ZO4Q4DSX.js} +1 -1
  109. package/dist/chunks/{config-MNRKCDQA.js → config-3BJHSDR3.js} +1 -1
  110. package/dist/chunks/config-BQPB2VFM.js +8 -0
  111. package/dist/chunks/delete-2IZGMSOT.js +9 -0
  112. package/dist/chunks/delete-32N2EHLH.js +10 -0
  113. package/dist/chunks/{detect-services-GXKWIX52.js → detect-services-JFILAIAL.js} +1 -1
  114. package/dist/chunks/disable-U2L3EAT3.js +7 -0
  115. package/dist/chunks/discard-LCQCHKT3.js +14 -0
  116. package/dist/chunks/edit-7UYV2SKA.js +8 -0
  117. package/dist/chunks/edit-IE6MRAGU.js +9 -0
  118. package/dist/chunks/enable-TRHJ4KBM.js +7 -0
  119. package/dist/chunks/{export-N5F7EY7B.js → export-FCEURR7W.js} +1 -1
  120. package/dist/chunks/future-MJBIKCOK.js +7 -0
  121. package/dist/chunks/generate-cert-for-deploy-CFEVTFEH.js +7 -0
  122. package/dist/chunks/image-47MBJMHO.js +7 -0
  123. package/dist/chunks/{import-builders-OAGJKQNW.js → import-builders-2DIXZXHK.js} +1 -1
  124. package/dist/chunks/inspect-BEBHGVAE.js +13 -0
  125. package/dist/chunks/{inspect-UDUI3ETL.js → inspect-C6XCE3L6.js} +1 -1
  126. package/dist/chunks/{inspect-35WHAXL2.js → inspect-FZJIVQKV.js} +1 -1
  127. package/dist/chunks/{inspect-GX34WQGR.js → inspect-KHEUFRVD.js} +1 -1
  128. package/dist/chunks/inspect-VHDOPOMX.js +9 -0
  129. package/dist/chunks/{list-BINT67HQ.js → list-IU7VXCG3.js} +1 -1
  130. package/dist/chunks/{list-VVND632B.js → list-ULHYVEMI.js} +1 -1
  131. package/dist/chunks/list-VRPHMTAV.js +12 -0
  132. package/dist/chunks/login-333JR3X5.js +7 -0
  133. package/dist/chunks/login-N3AJJ2TI.js +9 -0
  134. package/dist/chunks/logs-QCK5IEZ6.js +7 -0
  135. package/dist/chunks/{ls-6HYUGM62.js → ls-324AYCJH.js} +1 -1
  136. package/dist/chunks/{ls-YT3MWU4U.js → ls-7PMEAWRR.js} +1 -1
  137. package/dist/chunks/{ls-2MJY6EKD.js → ls-EKSX4DUZ.js} +1 -1
  138. package/dist/chunks/ls-K27L6SBM.js +11 -0
  139. package/dist/chunks/ls-Q6XVCKO3.js +8 -0
  140. package/dist/chunks/{ls-7OZ5TSNW.js → ls-S6RG3GU3.js} +1 -1
  141. package/dist/chunks/{ls-HTNWWU45.js → ls-WSX4L6GY.js} +1 -1
  142. package/dist/chunks/mutate-VQBALKRN.js +9 -0
  143. package/dist/chunks/{native-self-update-75UJCHGZ.js → native-self-update-7OAY4AVR.js} +1 -1
  144. package/dist/chunks/notifications-OQQ3ELSK.js +7 -0
  145. package/dist/chunks/open-ULGKVY4O.js +7 -0
  146. package/dist/chunks/{openapi-KYC6JIXI.js → openapi-YAZA3237.js} +1 -1
  147. package/dist/chunks/permissions-FCZAXNBP.js +7 -0
  148. package/dist/chunks/{plugin-offer-URT5JNEU.js → plugin-offer-REA2ZSBW.js} +1 -1
  149. package/dist/chunks/prompt-missing-credentials-AENJOWAN.js +7 -0
  150. package/dist/chunks/{publish-LH5CIXCP.js → publish-LUVUXRPN.js} +1 -1
  151. package/dist/chunks/pull-734D2SIQ.js +7 -0
  152. package/dist/chunks/purchase-domain-if-available-J32OZAAB.js +7 -0
  153. package/dist/chunks/push-7N63IRGS.js +7 -0
  154. package/dist/chunks/{query-POTX2HYL.js → query-ZRFRACJR.js} +1 -1
  155. package/dist/chunks/reauthenticate-A5TEIS2T.js +7 -0
  156. package/dist/chunks/reorder-A2GYXTE5.js +10 -0
  157. package/dist/chunks/reply-VRPDRYSF.js +9 -0
  158. package/dist/chunks/resolve-5IVOTHCA.js +12 -0
  159. package/dist/chunks/resolve-agent-team-U7H6YKBF.js +7 -0
  160. package/dist/chunks/{restore-L3T5KOG7.js → restore-2UIAA4WJ.js} +1 -1
  161. package/dist/chunks/rm-2VW3MMXV.js +8 -0
  162. package/dist/chunks/rm-KVDVCRHH.js +8 -0
  163. package/dist/chunks/rm-QLWZ7DR3.js +8 -0
  164. package/dist/chunks/rm-QTZDIV5M.js +8 -0
  165. package/dist/chunks/rm-RNC3IRNA.js +8 -0
  166. package/dist/chunks/{routes-S75L7Z7A.js → routes-4WGST7VN.js} +1 -1
  167. package/dist/chunks/rule-inspect-B6R3WIIR.js +8 -0
  168. package/dist/chunks/{schema-P4T4GQBF.js → schema-HIEZSFBL.js} +1 -1
  169. package/dist/chunks/{schema-TOVLKRPJ.js → schema-RP3BSWFK.js} +1 -1
  170. package/dist/chunks/select-org-A2QMWNDE.js +7 -0
  171. package/dist/chunks/set-VV3OH6P6.js +7 -0
  172. package/dist/chunks/setup-and-link-F5DSGQMW.js +7 -0
  173. package/dist/chunks/{skills-DZYJV7BE.js → skills-X5TPVYXW.js} +1 -1
  174. package/dist/chunks/{statuspage-45LJ2XYT.js → statuspage-KHTMA4WL.js} +1 -1
  175. package/dist/chunks/tags-KDAQZ5W2.js +7 -0
  176. package/dist/chunks/{types-YA6BOCRV.js → types-SENK43U4.js} +1 -1
  177. package/dist/chunks/{update-YSAO36V7.js → update-VT4MVVJF.js} +1 -1
  178. package/dist/chunks/zod-Y3ZBY67C.js +7 -0
  179. package/dist/commands/build/index.js +1 -1
  180. package/dist/commands/deploy/index.js +30 -23
  181. package/dist/commands/dev/index.js +2 -2
  182. package/dist/commands/env/index.js +1 -1
  183. package/dist/commands/link/index.js +1 -1
  184. package/dist/commands/list/index.js +1 -1
  185. package/dist/commands/project/index.js +7 -7
  186. package/dist/commands-account.js +18 -3
  187. package/dist/commands-ai.js +2 -2
  188. package/dist/commands-blob.js +1 -1
  189. package/dist/commands-core.js +6 -6
  190. package/dist/commands-deployments.js +1 -1
  191. package/dist/commands-flags.js +7 -9
  192. package/dist/commands-integrations.js +1 -1
  193. package/dist/commands-observability.js +5 -5
  194. package/dist/commands-routing.js +2 -2
  195. package/dist/help.js +1 -1
  196. package/dist/index.js +4 -4
  197. package/dist/internal-build-worker.js +1 -1
  198. package/dist/internal-build.js +1 -1
  199. package/dist/launcher-errors.js +11 -0
  200. package/dist/native-download.js +1 -1
  201. package/dist/package.json +26 -26
  202. package/dist/vc.js +355 -86
  203. package/dist/version.mjs +1 -1
  204. package/package.json +19 -19
  205. package/dist/chunks/add-6YFDZCAK.js +0 -8
  206. package/dist/chunks/add-QDZPCCUD.js +0 -8
  207. package/dist/chunks/add-Z24IIQDY.js +0 -8
  208. package/dist/chunks/build-HLU4YO37.js +0 -7
  209. package/dist/chunks/chunk-2CSCY66I.js +0 -11
  210. package/dist/chunks/chunk-2NABMKFV.js +0 -29
  211. package/dist/chunks/chunk-2TRNHR72.js +0 -7
  212. package/dist/chunks/chunk-32NXYHYC.js +0 -10
  213. package/dist/chunks/chunk-4CQKN5TW.js +0 -10
  214. package/dist/chunks/chunk-7DM3IJ7L.js +0 -10
  215. package/dist/chunks/chunk-AUCTNGW2.js +0 -7
  216. package/dist/chunks/chunk-C6525MLX.js +0 -10
  217. package/dist/chunks/chunk-CGTD4QFC.js +0 -7
  218. package/dist/chunks/chunk-DSNIVABS.js +0 -7
  219. package/dist/chunks/chunk-F53OKXYI.js +0 -7
  220. package/dist/chunks/chunk-K5YO4UD7.js +0 -7
  221. package/dist/chunks/chunk-NAU6URTI.js +0 -25
  222. package/dist/chunks/chunk-NNIQPNGP.js +0 -7
  223. package/dist/chunks/chunk-NTUDWWSL.js +0 -14
  224. package/dist/chunks/chunk-RZY54T7B.js +0 -7
  225. package/dist/chunks/chunk-SR2SHYJA.js +0 -7
  226. package/dist/chunks/chunk-WGVIQTOI.js +0 -8
  227. package/dist/chunks/chunk-YPPDRKVC.js +0 -7
  228. package/dist/chunks/clear-RU72IUXU.js +0 -8
  229. package/dist/chunks/config-PIFTR3UF.js +0 -8
  230. package/dist/chunks/delete-47BF6SIO.js +0 -9
  231. package/dist/chunks/delete-QNSKEIGO.js +0 -10
  232. package/dist/chunks/disable-SBFW3F7B.js +0 -7
  233. package/dist/chunks/discard-DUZR3OWZ.js +0 -14
  234. package/dist/chunks/edit-6BQ7FZC4.js +0 -8
  235. package/dist/chunks/edit-WO7FLNW2.js +0 -9
  236. package/dist/chunks/enable-OK4MR3Z6.js +0 -7
  237. package/dist/chunks/future-5AQIYILU.js +0 -7
  238. package/dist/chunks/generate-cert-for-deploy-7ERAHVOV.js +0 -7
  239. package/dist/chunks/image-IRC2NJVA.js +0 -7
  240. package/dist/chunks/inspect-5FKOSDTK.js +0 -13
  241. package/dist/chunks/inspect-ACNGICEF.js +0 -9
  242. package/dist/chunks/list-TRFGY6WP.js +0 -12
  243. package/dist/chunks/login-MYVTOBRG.js +0 -9
  244. package/dist/chunks/login-SOZ5ME3D.js +0 -7
  245. package/dist/chunks/logs-EMAGPMIZ.js +0 -7
  246. package/dist/chunks/ls-KU35N6DP.js +0 -8
  247. package/dist/chunks/ls-WFC636QK.js +0 -11
  248. package/dist/chunks/mutate-JVDDZLVE.js +0 -9
  249. package/dist/chunks/notifications-CXDBNBHU.js +0 -7
  250. package/dist/chunks/open-3CD5ZNKU.js +0 -7
  251. package/dist/chunks/permissions-PNBST4WN.js +0 -7
  252. package/dist/chunks/prompt-missing-credentials-Q5JCRP3R.js +0 -7
  253. package/dist/chunks/pull-XLZXPTLS.js +0 -7
  254. package/dist/chunks/purchase-domain-if-available-PDJGZ6MY.js +0 -7
  255. package/dist/chunks/push-XB57XK6H.js +0 -7
  256. package/dist/chunks/reauthenticate-CRI4D2BQ.js +0 -7
  257. package/dist/chunks/reorder-KUQ5EQBV.js +0 -10
  258. package/dist/chunks/reply-LO76EKEE.js +0 -9
  259. package/dist/chunks/resolve-KZJYJJLA.js +0 -12
  260. package/dist/chunks/resolve-agent-team-N7QMB7UO.js +0 -7
  261. package/dist/chunks/rm-7UKXTIZW.js +0 -8
  262. package/dist/chunks/rm-AKKEQN32.js +0 -8
  263. package/dist/chunks/rm-ELC57ULY.js +0 -8
  264. package/dist/chunks/rm-K7XEZ7TY.js +0 -8
  265. package/dist/chunks/rm-MOYCAXNO.js +0 -8
  266. package/dist/chunks/rule-inspect-ZCS4EBKR.js +0 -8
  267. package/dist/chunks/select-org-6NEM7F25.js +0 -7
  268. package/dist/chunks/set-NXFB6JXG.js +0 -7
  269. package/dist/chunks/setup-and-link-L67MMSUD.js +0 -7
  270. package/dist/chunks/tags-5AV6WAOF.js +0 -7
  271. package/dist/chunks/zod-2C2SXNIK.js +0 -7
@@ -0,0 +1,14 @@
1
+ import { createRequire as __createRequire } from 'node:module';
2
+ import { fileURLToPath as __fileURLToPath } from 'node:url';
3
+ import { dirname as __dirname_ } from 'node:path';
4
+ const require = __createRequire(import.meta.url);
5
+ const __filename = __fileURLToPath(import.meta.url);
6
+ const __dirname = __dirname_(__filename);
7
+ import{routesCommand}from"./chunk-CZOD25BC.js";import{setupCommand}from"./chunk-77LSSWXL.js";import{tracesCommand}from"./chunk-MUNGQJGO.js";import{metricsCommand}from"./chunk-ANCWFEOM.js";import{vcrCommand}from"./chunk-QVMU7ZKQ.js";import{alertsCommand}from"./chunk-NLKM5LR5.js";import{commentsCommand}from"./chunk-BB5UMZMF.js";import{activityCommand}from"./chunk-4LGAV2WN.js";import{monitorsCommand}from"./chunk-EJZNJN4N.js";import{apiCommand}from"./chunk-S5JBQCBA.js";import{loginCommand}from"./chunk-5DXC4TE2.js";import{listCommand}from"./chunk-FAVZ6WVS.js";import{buildCommand,pullCommand}from"./chunk-5KE67O45.js";import{devCommand}from"./chunk-T7HE23VK.js";import{envCommand}from"./chunk-CUBRYWA2.js";import{registerCommandPaths}from"./chunk-GKALP6QD.js";import{linkCommand}from"./chunk-FY4ORPZH.js";import{packageName}from"./chunk-VRH7LWOC.js";import{output_manager_default}from"./chunk-W634OFUG.js";import{allOption,confirmOption,deploymentOption,environmentOption,forceOption,formatOption,gitBranchOption,jsonOption,limitOption,nextCursorOption,projectOption,protectionBypassOption,sinceOption,targetOption,untilOption,userOption,yesOption}from"./chunk-CKTLP5GX.js";var deprecatedArchiveSplitTgz="split-tgz",initSubcommand={name:"init",aliases:[],description:"Create a manual deployment that can be continued later",hidden:!0,arguments:[],options:[{...forceOption,deprecatedShorthand:"f",description:"Force a new deployment even if nothing has changed"},{name:"with-cache",shorthand:null,type:Boolean,deprecated:!1,description:'Retain build cache when using "--force"'},{name:"env",shorthand:null,type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during run-time (e.g. `--env KEY1=value1 --env KEY2=value2`)"},{name:"build-env",shorthand:null,type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during build-time (e.g. `--build-env KEY1=value1 --build-env KEY2=value2`)"},{name:"meta",shorthand:null,deprecatedShorthand:"m",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify metadata for the deployment (e.g. `--meta KEY1=value1 --meta KEY2=value2`)"},{name:"regions",shorthand:null,type:String,argument:"REGION",deprecated:!1,description:"Set default regions to enable the deployment on"},{name:"prod",shorthand:null,type:Boolean,deprecated:!1,description:"Create a production deployment (shorthand for `--environment production`)"},{name:"archive",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Compress the deployment code into an archive before uploading it"},{name:"skip-domain",shorthand:null,type:Boolean,deprecated:!1,description:"Disable the automatic promotion (aliasing) of the relevant domains to a new production deployment. You can use `vc promote` to complete the domain-assignment process later"},{...yesOption,description:"Use default options to skip all prompts"},{...environmentOption,shorthand:null,description:"Environment to deploy to: production, preview, or a custom environment"},targetOption,formatOption,jsonOption,confirmOption,projectOption],examples:[{name:"Create a manual deployment",value:"vercel deploy init"},{name:"Create a manual production deployment",value:"vercel deploy init --prod"}]},continueSubcommand={name:"continue",aliases:[],description:"Continue a manual deployment by uploading build outputs",hidden:!0,arguments:[],options:[{...deploymentOption,description:"The deployment ID to continue (e.g. dpl_xxx)"},{name:"id",shorthand:null,type:String,deprecated:!0},{name:"archive",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Compress the deployment code into an archive before uploading it"},{name:"error",shorthand:null,type:String,argument:"MESSAGE",deprecated:!1,description:"Mark the deployment as errored with a message"}],examples:[{name:"Continue a deployment by ID",value:"vercel deploy continue --deployment dpl_xxx"}]},describeSubcommand={name:"describe",aliases:[],description:"Prepare deployment functions for provisioning in your AWS account",hidden:!0,arguments:[],options:[{...deploymentOption,description:"Deployment ID used with vercel build --deployment (required)"},{name:"id",shorthand:null,type:String,deprecated:!0},{name:"aws-account-id",shorthand:null,type:String,argument:"AWS_ACCOUNT",deprecated:!1,description:"12-digit AWS account ID for provisioning (required)"},jsonOption],examples:[{name:"Prepare a deployment for provisioning",value:"vercel deploy describe --deployment dpl_xxx --aws-account-id 123456789012"},{name:"Return artifact paths as JSON",value:"vercel deploy describe --deployment dpl_xxx --aws-account-id 123456789012 --json"}],helpSections:[{title:"Notes",body:["Uses the team in .vercel/project.json. Run vercel build --deployment first.","Writes descriptor.json, function ZIPs, and runtime layers to .vercel/<DEPLOYMENT>/. Keep these artifacts private.","Preserves the original build in .vercel/<DEPLOYMENT>/build/ and replaces .vercel/output with a code-free continuation.","Does not create AWS resources. Provision the described functions before running vercel deploy continue --deployment <DEPLOYMENT>.","Edge Functions and service outputs are not supported."]}]},deployCommand={name:"deploy",aliases:[],description:"Deploy your project to Vercel. Use `--temporary` to create a temporary deployment without logging in. The `deploy` command is the default command for the Vercel CLI, and can be omitted (`vc deploy my-app` equals `vc my-app`). Use `--dry` to inspect the detected framework preset and source files without deploying.",arguments:[{name:"project-path",required:!1}],subcommands:[initSubcommand,continueSubcommand,describeSubcommand],options:[{...forceOption,deprecatedShorthand:"f",description:"Force a new deployment even if nothing has changed"},{name:"with-cache",shorthand:null,type:Boolean,deprecated:!1,description:'Retain build cache when using "--force"'},{name:"env",shorthand:null,type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during run-time (e.g. `--env KEY1=value1 --env KEY2=value2`)"},{name:"build-env",shorthand:null,type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify environment variables during build-time (e.g. `--build-env KEY1=value1 --build-env KEY2=value2`)"},{name:"turbo",shorthand:null,type:Boolean,deprecated:!1,description:"Use a Turbo build machine for this deployment"},{name:"meta",shorthand:null,deprecatedShorthand:"m",type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Specify metadata for the deployment (e.g. `--meta KEY1=value1 --meta KEY2=value2`)"},{name:"regions",shorthand:null,type:String,argument:"REGION",deprecated:!1,description:"Set default regions to enable the deployment on"},{name:"prebuilt",shorthand:null,type:Boolean,deprecated:!1,description:"Use in combination with `vc build`. Deploy an existing build"},{name:"prod",shorthand:null,type:Boolean,deprecated:!1,description:"Create a production deployment (shorthand for `--environment production`)"},{name:"temporary",shorthand:null,type:Boolean,deprecated:!1,description:"Create a temporary deployment without logging in"},{name:"archive",shorthand:null,type:String,argument:"FORMAT",deprecated:!1,description:"Compress the deployment code into an archive before uploading it"},{name:"no-wait",shorthand:null,type:Boolean,deprecated:!1,description:"Don't wait for the deployment to finish"},{name:"verify",shorthand:null,type:Boolean,deprecated:!1,description:"Load the deployment URL once it is ready and report the status code, size, and page title, even with Deployment Protection on (creates the project's Protection Bypass for Automation secret if missing). Exits 1 if the load fails. Can't be used with --no-wait or --dry"},{name:"dry",shorthand:null,type:Boolean,deprecated:!1,description:"Inspect the detected framework preset and source files without uploading or creating a deployment. Non-TTY output includes every file as JSON"},{name:"create-if-missing",shorthand:null,type:Boolean,deprecated:!1,description:"Create the --project if it doesn't exist yet. Needed only when --project names a new project with --yes or in non-interactive mode. Can't be used with --dry"},{name:"skip-domain",shorthand:null,type:Boolean,deprecated:!1,description:"Disable the automatic promotion (aliasing) of the relevant domains to a new production deployment. You can use `vc promote` to complete the domain-assignment process later"},{...yesOption,description:"Use default options to skip all prompts"},{name:"logs",shorthand:null,deprecatedShorthand:"l",type:Boolean,deprecated:!1,description:"Print the build logs"},{name:"guidance",shorthand:null,type:Boolean,deprecated:!1,description:"Receive command suggestions once deployment is complete"},{name:"no-logs",shorthand:null,type:Boolean,deprecated:!0,description:"Do not print the build logs"},{name:"name",shorthand:"n",type:String,deprecated:!0},{name:"no-clipboard",shorthand:null,type:Boolean,deprecated:!0},{...environmentOption,shorthand:null,description:"Environment to deploy to: production, preview, or a custom environment"},targetOption,formatOption,jsonOption,confirmOption,{...projectOption,description:"Project name or ID to deploy to, without linking this directory (default: linked project). A missing name is created; with --yes or in non-interactive mode, add --create-if-missing"}],examples:[{name:"Deploy the current directory",value:"vercel"},{name:"Deploy a single HTML file",value:"vercel ./index.html"},{name:"Deploy a custom path",value:"vercel /usr/src/project"},{name:"Deploy to production and check that the URL loads",value:"vercel deploy --prod --verify"},{name:"Deploy with run-time Environment Variables",value:"vercel --env NODE_ENV=production"},{name:"Deploy with prebuilt outputs",value:["vercel build","vercel deploy --prebuilt"]},{name:"Deploy using a Turbo build machine",value:"vercel deploy --turbo"},{name:"Inspect deployment inputs without deploying",value:"vercel deploy --dry"},{name:"Get every deployment file as JSON",value:"vercel deploy --dry --json"},{name:"Write Deployment URL to a file",value:"vercel > deployment-url.txt"}]};var sandboxRegionOption={name:"sandbox-region",shorthand:null,type:String,argument:"REGION",description:'Set the default region for sandboxes created in the project. See the Vercel docs for available regions. Use "" to clear',deprecated:!1},sandboxFailoverRegionsOption={name:"sandbox-failover-regions",shorthand:null,type:String,argument:"REGIONS",description:'Set the ordered, comma-separated failover regions for sandboxes created in the project. Requires a primary region and must not include it. Use "" to clear',deprecated:!1},addSubcommand={name:"create",aliases:["add"],description:"Create a new project",arguments:[{name:"name",required:!0}],options:[],examples:[{name:"Create a new project",value:`${packageName} project create my-project`}]},checksBlocksOption={name:"blocks",shorthand:null,type:String,description:"When listing: filter by blocking stage. When adding: blocking stage for the new check. Values: build-start, deployment-start, deployment-alias, deployment-promotion, none",deprecated:!1},checksAddFlags=[formatOption,jsonOption,checksBlocksOption,{name:"file",shorthand:null,type:String,description:"Path to JSON file for the POST body (see REST: Create a check). Overrides --check-name / related options.",deprecated:!1},{name:"check-name",shorthand:null,type:String,description:"Name of the deployment check (required with --requires unless --file is set)",deprecated:!1},{name:"requires",shorthand:null,type:String,description:"When the check runs: build-ready, deployment-url, or none (required with --check-name unless --file)",deprecated:!1},{name:"timeout",shorthand:null,type:Number,description:"Timeout in seconds for the new check (default: 300)",deprecated:!1},{name:"targets",shorthand:null,type:String,description:"Comma-separated deployment targets (e.g. production,preview)",deprecated:!1},{name:"source",shorthand:null,type:String,description:"JSON string for the `source` object (integration, webhook, or git-provider)",deprecated:!1}],checksRemoveFlags=[formatOption,jsonOption],checksSubcommand={name:"checks",aliases:[],summary:"List, add, or remove deployment checks for a project",description:"List, add, or remove deployment checks for a project (GET/POST/DELETE /v2/projects/.../checks)",arguments:[{name:"name",required:!1}],options:[...checksAddFlags],examples:[{name:"List checks for the linked project",value:`${packageName} project checks`},{name:"Checks that block production alias assignment",value:`${packageName} project checks --blocks deployment-alias`},{name:"Add a check from a JSON file",value:`${packageName} project checks add my-app --file ./check.json`},{name:"Add a check with options (requires integration/webhook setup in the body via --file or --source)",value:`${packageName} project checks add --check-name "CI" --requires deployment-url --blocks deployment-alias`},{name:"Remove a check by id",value:`${packageName} project checks remove chk_abc123 my-app`}]},inspectSubcommand={name:"inspect",aliases:[],description:"Displays information related to a project",arguments:[{name:"name",required:!1}],options:[yesOption,formatOption,jsonOption],examples:[{name:"Inspect the linked project from the current directory",value:`${packageName} project inspect`},{name:'Inspect the project named "my-project"',value:`${packageName} project inspect my-project`},{name:"Inspect a project as JSON",value:`${packageName} project inspect my-project --json`}]},listSubcommand={name:"list",aliases:["ls"],description:"Show all projects in the selected scope",default:!0,arguments:[],options:[nextCursorOption,limitOption,formatOption,jsonOption,{name:"update-required",description:"A list of projects affected by an upcoming deprecation",shorthand:null,type:Boolean,deprecated:!1},{name:"paused",description:"Show only projects whose production traffic is paused",shorthand:null,type:Boolean,deprecated:!1},{name:"query",shorthand:"q",type:String,argument:"TEXT",description:"Search projects by name (substring match)",deprecated:!1},{name:"filter",shorthand:"f",type:String,argument:"NAME",description:"Deprecated alias for `--query`",deprecated:!0}],examples:[{name:"Show the next page, using the cursor from the previous output",placeholders:["<CURSOR>"],value:`${packageName} project list --next <CURSOR>`},{name:"List projects using a deprecated Node.js version in JSON format",value:`${packageName} project list --update-required --json`},{name:"Search projects by name",value:`${packageName} project list --query my-app`},{name:"List paused projects",value:`${packageName} project list --paused`}]},pauseSubcommand={descriptionTone:"normal",name:"pause",aliases:[],description:"Pause production traffic for a project (visitors will see an error page)",arguments:[{name:"project",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Pause the linked project",value:`${packageName} project pause`},{name:'Pause the project named "my-project"',value:`${packageName} project pause my-project`},{name:"Pause a project and print the result as JSON",value:`${packageName} project pause my-project --json`}]},resumeSubcommand={name:"resume",aliases:["unpause"],description:"Resume production traffic for paused projects",arguments:[{name:"project",required:!1,multiple:!0}],options:[{...allOption,shorthand:null,description:"Resume every paused project in the team"},{...yesOption,description:"Skip the confirmation prompt when resuming several projects (--all also needs --scope or VERCEL_ORG_ID)"},formatOption,jsonOption],examples:[{name:"Resume the linked project",value:`${packageName} project resume`},{name:'Resume the project named "my-project"',value:`${packageName} project resume my-project`},{name:"Resume several projects",value:`${packageName} project resume my-site my-api`},{name:"Resume every paused project in the team",value:`${packageName} project resume --all`},{name:"Resume every paused project in a team without a prompt",value:`${packageName} project resume --all --yes --scope my-team`},{name:"Resume a project and print the result as JSON",value:`${packageName} project resume my-project --json`}]},removeSubcommand={name:"delete",aliases:["rm","del","remove"],description:"Delete a project",arguments:[{name:"name",required:!0}],options:[{...yesOption,description:"Skip typing the project name. Without a terminal, also pass --scope unless you belong to only one team"}],examples:[]},renameSubcommand={name:"rename",aliases:[],description:"Rename a project",arguments:[{name:"name",required:!0},{name:"new-name",required:!0}],options:[],examples:[{name:"Rename a project",value:`${packageName} project rename my-project my-renamed-project`}]},updateSubcommand={name:"update",aliases:["set"],description:"Update one or more project settings; omitted settings remain unchanged",arguments:[{name:"name",required:!1}],options:[{name:"framework",shorthand:null,type:String,argument:"SLUG",description:'Set the framework preset by slug; use "other" to clear the preset',deprecated:!1},{name:"build-command",shorthand:null,type:String,argument:"COMMAND",description:"Set the build command",deprecated:!1},{name:"dev-command",shorthand:null,type:String,argument:"COMMAND",description:"Set the development command",deprecated:!1},{name:"install-command",shorthand:null,type:String,argument:"COMMAND",description:"Set the install command",deprecated:!1},{name:"output-directory",shorthand:null,type:String,argument:"DIR",description:"Set the output directory",deprecated:!1},{name:"root-directory",shorthand:null,type:String,argument:"DIR",description:"Set the project root directory",deprecated:!1},{name:"auto-detect",shorthand:null,type:[String],argument:"SETTING",description:"Reset a setting to automatic detection; repeat for build-command, dev-command, install-command, output-directory, or root-directory",deprecated:!1},{name:"fluid-compute",shorthand:null,type:Boolean,description:"Turn on Fluid compute",deprecated:!1,legacyValues:{on:"on",off:"off"}},{name:"no-fluid-compute",shorthand:null,type:Boolean,description:"Turn off Fluid compute",deprecated:!1},{name:"function-cpu",shorthand:null,type:String,argument:"TIER",description:"Set the default function CPU/memory tier: standard_legacy, standard, performance, or performance_xl",deprecated:!1},sandboxRegionOption,sandboxFailoverRegionsOption,{name:"build-machine",shorthand:null,type:String,argument:"TYPE",description:"Set the build machine type: basic, standard, enhanced, turbo, or elastic",deprecated:!1},{name:"elastic-concurrency",shorthand:null,type:Boolean,description:"Turn on elastic concurrency for builds",deprecated:!1,legacyValues:{on:"on",off:"off"}},{name:"no-elastic-concurrency",shorthand:null,type:Boolean,description:"Turn off elastic concurrency for builds",deprecated:!1},{name:"node-version",shorthand:null,type:String,argument:"VERSION",description:"Set the Node.js major version as <major>.x, such as 24.x. See https://vercel.com/docs/functions/runtimes/node-js/node-js-versions for supported versions",deprecated:!1},{name:"git-commit-status",shorthand:null,type:Boolean,description:"Turn on Vercel commit statuses in the connected Git repository",deprecated:!1},{name:"no-git-commit-status",shorthand:null,type:Boolean,description:"Turn off Vercel commit statuses",deprecated:!1},{name:"git-pr-comments",shorthand:null,type:Boolean,description:"Turn on Vercel comments on pull requests",deprecated:!1},{name:"no-git-pr-comments",shorthand:null,type:Boolean,description:"Turn off Vercel comments on pull requests",deprecated:!1},{name:"github-deployment-events",shorthand:null,type:Boolean,description:"Turn on GitHub deployments and deployment_status events for each deployment",deprecated:!1},{name:"no-github-deployment-events",shorthand:null,type:Boolean,description:"Turn off GitHub deployments and deployment_status events",deprecated:!1},{name:"require-verified-commits",shorthand:null,type:Boolean,description:"Only create deployments for signed, verified commits",deprecated:!1},{name:"no-require-verified-commits",shorthand:null,type:Boolean,description:"Create deployments for unverified commits, overriding the team setting",deprecated:!1},{name:"inherit-verified-commits",shorthand:null,type:Boolean,description:"Use the team setting for verified commits",deprecated:!1},{name:"repository-dispatch-events",shorthand:null,type:Boolean,description:"Turn on GitHub repository_dispatch events for deployment events",deprecated:!1},{name:"no-repository-dispatch-events",shorthand:null,type:Boolean,description:"Turn off GitHub repository_dispatch events",deprecated:!1},{...yesOption,description:"Apply settings that do not affect charges without prompting"},formatOption,jsonOption],examples:[{name:"Set the linked project framework preset to Next.js",value:`${packageName} project update --framework nextjs`},{name:"Set a named project framework preset to Vite",value:`${packageName} project update my-project --framework vite`},{name:"Update multiple settings in one command",value:`${packageName} project update my-project --build-command "pnpm build" --output-directory dist`},{name:"Reset individual settings to automatic detection",value:`${packageName} project update my-project --auto-detect build-command --auto-detect output-directory`},{name:"Enable Fluid compute and set the function CPU tier",value:`${packageName} project update my-project --fluid-compute --function-cpu performance`},{name:"Clear the framework preset and return JSON",value:`${packageName} project update my-project --framework other --json`},{name:"Update a setting without an interactive prompt",value:`${packageName} project update my-project --framework vite --yes`},{name:"Set the sandbox default and failover regions",value:`${packageName} project update my-project --sandbox-region sfo1 --sandbox-failover-regions cle1,iad1`},{name:"Turn off Vercel comments on pull requests and commit statuses",value:`${packageName} project update my-project --no-git-pr-comments --no-git-commit-status`}]},tokenSubcommand={name:"token",aliases:[],description:"Get a development OIDC token for a project",arguments:[{name:"name",required:!1}],options:[yesOption,formatOption,jsonOption],examples:[{name:"Get a development OIDC token for the linked project",value:`${packageName} project token`},{name:'Get a development OIDC token for the project named "my-project"',value:`${packageName} project token my-project`},{name:"Get a development OIDC token as JSON",value:`${packageName} project token my-project --json`}]},accessSummarySubcommand={descriptionTone:"normal",name:"access-summary",aliases:["summary"],description:"Show member counts by team role for project access (requires access groups entitlement)",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Summary for the linked project",value:`${packageName} project access-summary`},{name:"Summary as JSON",value:`${packageName} project access-summary my-app --json`}]},membersRemoveFlags=[formatOption,jsonOption],PROJECT_MEMBER_ROLES=["ADMIN","PROJECT_DEVELOPER","PROJECT_VIEWER","PROJECT_GUEST"],memberRoleOption={name:"role",shorthand:null,type:String,argument:"ROLE",description:`Project role when adding a member: ${PROJECT_MEMBER_ROLES.join(", ")}`,deprecated:!1},membersAddFlags=[formatOption,jsonOption,memberRoleOption],membersSubcommand={name:"members",aliases:["member"],description:"List, add, or remove project members for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption,{name:"query",shorthand:"q",type:String,argument:"TEXT",description:"Search project members by name, username, or email",deprecated:!1},{name:"search",shorthand:null,type:String,description:"Deprecated alias for `--query`",deprecated:!0},{name:"limit",shorthand:"n",type:Number,description:"Limit number of project members returned (1-100)",deprecated:!1},nextCursorOption,memberRoleOption],examples:[{name:"List members for the linked project",value:`${packageName} project members`},{name:"List members for a named project as JSON",value:`${packageName} project members my-project --json`},{name:"Add a member to a project by email with a role",value:`${packageName} project members add my-project user@example.com --role PROJECT_VIEWER`},{name:"Remove a member from a project",value:`${packageName} project members remove my-project user@example.com`}]},protectionToggleOptions=[{name:"sso",shorthand:null,type:Boolean,description:"Apply action to SSO protection.",deprecated:!1},{name:"password",shorthand:null,type:Boolean,description:"Apply action to password protection (requires eligible plan/permissions).",deprecated:!1},{name:"protection-password",shorthand:null,type:String,argument:"PASSWORD",description:"Password value when enabling password protection (max 72 characters). Requires --password.",deprecated:!1},{name:"customer-support-code-visibility",shorthand:null,type:Boolean,description:"Apply action to customer support code visibility protection.",deprecated:!1},{name:"skew",shorthand:null,type:Boolean,description:"Apply action to skew protection.",deprecated:!1},{name:"skew-max-age",shorthand:null,type:String,argument:"SECONDS",description:"When enabling with --skew, max age in seconds for skew protection (default: 2592000, 30 days).",deprecated:!1},{name:"protection-bypass",shorthand:null,type:Boolean,description:"Apply action to automation protection bypass secrets.",deprecated:!1},{name:"protection-bypass-secret",shorthand:null,type:String,argument:"SECRET",description:"Optional secret value for protection bypass. Required when disabling bypass.",deprecated:!1},{name:"git-fork-protection",shorthand:null,type:Boolean,description:"Apply action to Git fork protection.",deprecated:!1}],protectionEnableSubcommand={name:"enable",aliases:[],description:"Turn on deployment protection settings for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption,{...yesOption,description:"Accepted for scripts. Does not confirm Password Protection, which can incur charges and always needs interactive confirmation"},...protectionToggleOptions],examples:[{name:"Enable password protection",value:`${packageName} project protection enable my-app --password`},{name:"Enable password protection with a password",placeholders:["<password>"],value:`${packageName} project protection enable my-app --password --protection-password <password>`},{name:"Enable customer support code visibility",value:`${packageName} project protection enable my-app --customer-support-code-visibility`},{name:"Enable skew protection",value:`${packageName} project protection enable my-app --skew`},{name:"Enable skew protection with custom max age (seconds)",value:`${packageName} project protection enable my-app --skew --skew-max-age 604800`},{name:"Enable automation protection bypass",value:`${packageName} project protection enable my-app --protection-bypass`},{name:"Enable Git fork protection",value:`${packageName} project protection enable my-app --git-fork-protection`},{name:"Enable SSO deployment protection",value:`${packageName} project protection enable my-app --sso`}]},protectionDisableSubcommand={name:"disable",aliases:[],description:"Turn off deployment protection settings for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption,{...yesOption,description:"Skip confirmation prompts (disabling never prompts)"},...protectionToggleOptions],examples:[{name:"Disable password protection",value:`${packageName} project protection disable my-app --password`},{name:"Disable customer support code visibility",value:`${packageName} project protection disable my-app --customer-support-code-visibility`},{name:"Disable skew protection",value:`${packageName} project protection disable my-app --skew`},{name:"Disable bypass with secret",placeholders:["<secret>"],value:`${packageName} project protection disable my-app --protection-bypass --protection-bypass-secret <secret>`},{name:"Disable Git fork protection",value:`${packageName} project protection disable my-app --git-fork-protection`},{name:"Disable SSO for a named project",value:`${packageName} project protection disable my-app --sso`}]},protectionSubcommand={name:"protection",aliases:[],description:"Show or toggle deployment protection settings for a project",runsWithoutSubcommand:!0,arguments:[{name:"name",required:!1}],subcommands:[protectionEnableSubcommand,protectionDisableSubcommand],options:[formatOption,jsonOption],examples:[{name:"Protection settings for the linked project",value:`${packageName} project protection`},{name:"Named project as JSON",value:`${packageName} project protection my-app --json`},{name:"Enable password protection",value:`${packageName} project protection enable my-app --password`},{name:"Disable password protection",value:`${packageName} project protection disable my-app --password`}]},accessGroupsSubcommand={name:"access-groups",aliases:["accessgroups"],description:"List access groups for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption,nextCursorOption,{name:"query",shorthand:"q",type:String,argument:"TEXT",description:"Search access groups by name",deprecated:!1},{name:"search",shorthand:null,type:String,description:"Deprecated alias for `--query`",deprecated:!0},{name:"limit",shorthand:"n",type:Number,description:"Limit number of access groups returned (1-100)",deprecated:!1}],examples:[{name:"List access groups for the linked project",value:`${packageName} project access-groups`},{name:"List access groups for a named project as JSON",value:`${packageName} project access-groups my-project --json`}]},webAnalyticsEnableSubcommand={name:"enable",aliases:[],default:!0,description:"Turn on Web Analytics for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Enable Web Analytics for a named project",value:`${packageName} project web-analytics enable my-project`},{name:"Enable Web Analytics and print the result as JSON",value:`${packageName} project web-analytics enable my-project --json`}]},webAnalyticsDisableSubcommand={name:"disable",aliases:[],description:"Turn off Web Analytics for a project",arguments:[{name:"name",required:!1}],options:[{...yesOption,description:"Skip the confirmation prompt when disabling. Without a terminal, team projects also need --scope"},formatOption,jsonOption],examples:[{name:"Disable Web Analytics for a named project",value:`${packageName} project web-analytics disable my-project`},{name:"Disable Web Analytics and print the result as JSON (non-interactive / agents)",value:`${packageName} project web-analytics disable my-project --yes --json`}]},webAnalyticsSubcommand={name:"web-analytics",aliases:[],description:"Enable or disable Web Analytics for a project",arguments:[],subcommands:[webAnalyticsEnableSubcommand,webAnalyticsDisableSubcommand],options:[formatOption,jsonOption],examples:[{name:"Enable Web Analytics for the linked project (omitting the action defaults to enable)",value:`${packageName} project web-analytics`},{name:"Enable Web Analytics for a named project",value:`${packageName} project web-analytics enable my-project`},{name:"Disable Web Analytics for a named project",value:`${packageName} project web-analytics disable my-project`},{name:"Disable Web Analytics and print the result as JSON (non-interactive / agents)",value:`${packageName} project web-analytics disable my-project --yes --json`},{name:"Enable Web Analytics and print the result as JSON",value:`${packageName} project web-analytics enable my-project --json`}]},speedInsightsEnableSubcommand={name:"enable",aliases:[],default:!0,description:"Upgrade a project to Speed Insights Plus",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Upgrade a named project to Speed Insights Plus",value:`${packageName} project speed-insights enable my-project`}]},speedInsightsDisableSubcommand={name:"disable",aliases:[],description:"Downgrade a project to the Speed Insights free tier",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Downgrade a named project to the Speed Insights free tier",value:`${packageName} project speed-insights disable my-project`},{name:"Downgrade to the Speed Insights free tier and print the result as JSON",value:`${packageName} project speed-insights disable my-project --json`}]},speedInsightsSubcommand={name:"speed-insights",aliases:[],description:"Upgrade to Speed Insights Plus or downgrade to the free tier",arguments:[],subcommands:[speedInsightsEnableSubcommand,speedInsightsDisableSubcommand],options:[formatOption,jsonOption],examples:[{name:"Upgrade the linked project to Speed Insights Plus",value:`${packageName} project speed-insights`},{name:"Upgrade a named project to Speed Insights Plus",value:`${packageName} project speed-insights enable my-project`},{name:"Downgrade a named project to the Speed Insights free tier",value:`${packageName} project speed-insights disable my-project`},{name:"Downgrade to the Speed Insights free tier and print the result as JSON",value:`${packageName} project speed-insights disable my-project --json`}]},observabilityEnableSubcommand={name:"enable",aliases:[],description:"Turn on Observability Plus for a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Enable Observability Plus for the linked project",value:`${packageName} project observability enable`},{name:"Enable Observability Plus and print the result as JSON",value:`${packageName} project observability enable my-project --json`}]},observabilityDisableSubcommand={name:"disable",aliases:[],description:"Turn off Observability Plus for a project",arguments:[{name:"name",required:!1}],options:[{...yesOption,description:"Skip the confirmation prompt when disabling. Without a terminal, team projects also need --scope"},formatOption,jsonOption],examples:[{name:"Disable Observability Plus for a named project",value:`${packageName} project observability disable my-project`},{name:"Disable Observability Plus and print the result as JSON",value:`${packageName} project observability disable my-project --yes --scope my-team --json`}]},observabilitySubcommand={name:"observability",aliases:[],description:"Enable or disable Observability Plus for a project",arguments:[],subcommands:[observabilityEnableSubcommand,observabilityDisableSubcommand],options:[formatOption,jsonOption],examples:[{name:"Enable Observability Plus for the linked project",value:`${packageName} project observability enable`},{name:"Disable Observability Plus for a named project",value:`${packageName} project observability disable my-project`},{name:"Enable Observability Plus and print the result as JSON",value:`${packageName} project observability enable my-project --json`},{name:"Disable Observability Plus and print the result as JSON",value:`${packageName} project observability disable my-project --yes --scope my-team --json`}]},priorityEnableSubcommand={name:"enable",aliases:[],description:"Upgrade a project to Priority",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Upgrade the linked project to Priority",value:`${packageName} project priority enable`},{name:"Upgrade a named project to Priority",value:`${packageName} project priority enable my-project`}]},priorityDisableSubcommand={name:"disable",aliases:[],description:"Remove the Priority upgrade from a project",arguments:[{name:"name",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Remove Priority from a named project",value:`${packageName} project priority disable my-project`}]},prioritySubcommand={name:"priority",aliases:["priority-project"],description:"Upgrade a project to Priority, or remove that upgrade",arguments:[],subcommands:[priorityEnableSubcommand,priorityDisableSubcommand],options:[formatOption,jsonOption],examples:[{name:"Upgrade the linked project to Priority",value:`${packageName} project priority enable`},{name:"Upgrade a named project to Priority",value:`${packageName} project priority enable my-project`},{name:"Remove Priority from a named project",value:`${packageName} project priority disable my-project`}]},dangerouslyDeleteImmutableStaticAssetSubcommand={descriptionTone:"normal",name:"dangerously-delete-immutable-static-asset",aliases:[],hidden:!0,description:"Permanently delete an immutable static asset from storage. This action can not be undone. Any request to this static asset will serve a 410 response for 7 days and then return a 404.",arguments:[{name:"path",required:!0}],options:[projectOption],examples:[{name:"Permanently delete an immutable static asset from storage",value:`${packageName} project dangerously-delete-immutable-static-asset _next/static/immutable/chunks/example.js`}]},projectCommand={name:"project",aliases:["projects"],description:"Manage your Vercel projects",arguments:[],subcommands:[addSubcommand,accessSummarySubcommand,checksSubcommand,inspectSubcommand,listSubcommand,membersSubcommand,accessGroupsSubcommand,protectionSubcommand,webAnalyticsSubcommand,speedInsightsSubcommand,pauseSubcommand,observabilitySubcommand,prioritySubcommand,resumeSubcommand,updateSubcommand,renameSubcommand,removeSubcommand,tokenSubcommand,dangerouslyDeleteImmutableStaticAssetSubcommand],options:[],examples:[{name:"List projects in the current scope",value:`${packageName} project list`},{name:"Inspect a project",value:`${packageName} project inspect my-project`},{name:"Pause production traffic for a project",value:`${packageName} project pause my-project`}]};var agentCommand={name:"agent",aliases:[],summary:"Generate Vercel deployment guidance in AGENTS.md",description:"Generate an AGENTS.md file with Vercel deployment best practices",arguments:[{name:"init",required:!1}],options:[{...yesOption,description:"Skip confirmation prompt"}],examples:[{name:"Generate AGENTS.md with Vercel best practices",value:`${packageName} agent init`},{name:"Skip confirmation prompt (useful for CI)",value:`${packageName} agent init --yes`}]};var projectOption2={name:"project",shorthand:"p",type:String,argument:"NAME|ID",deprecated:!1,description:"Project name or id to query (overrides the linked project)"},environmentOption2={name:"environment",shorthand:"e",type:String,argument:"ENVIRONMENT",deprecated:!1,description:"Environment to query Agent Runs from: production or preview (default: production)"},agentRunsUntilOption={...untilOption,description:"End time: ISO 8601 or relative; requires --since (default: now)"},jsonOption2={name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Print the raw API response as JSON to stdout"},listSubcommand2={name:"list",aliases:["ls"],description:"List Agent Runs for a project",arguments:[],options:[projectOption2,environmentOption2,sinceOption,agentRunsUntilOption,{name:"query",shorthand:"q",type:String,argument:"TEXT",deprecated:!1,description:"Search Agent Runs by title"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!0,description:"Deprecated alias for `--query`"},nextCursorOption,{name:"page",shorthand:null,type:Number,argument:"N",deprecated:!0,description:"1-based page number (default: 1)"},{name:"limit",shorthand:"n",type:Number,argument:"N",deprecated:!1,description:"Number of Agent Runs per page (max: 100)"},jsonOption2],examples:[{name:"List recent production Agent Runs for the linked project",value:`${packageName} agent-runs list`},{name:"List preview Agent Runs from the last day",value:`${packageName} agent-runs list --environment preview --since 1d`},{name:"Search Agent Runs by title",value:`${packageName} agent-runs list --query "checkout"`},{name:"List Agent Runs for a specific team and project",value:`${packageName} agent-runs list --scope my-team --project my-app`},{name:"Print the raw list as JSON",value:`${packageName} agent-runs list --json`}]},inspectSubcommand2={name:"inspect",aliases:[],description:"Show metadata, lifecycle events, usage, and subagent data for an Agent Run",arguments:[{name:"runId",required:!0}],options:[projectOption2,environmentOption2,sinceOption,agentRunsUntilOption,jsonOption2],examples:[{name:"Inspect an Agent Run",value:`${packageName} agent-runs inspect run_1234567890`},{name:"Print the raw Agent Run as JSON",value:`${packageName} agent-runs inspect run_1234567890 --json`}]},traceSubcommand={name:"trace",aliases:[],description:"Show the trace for an Agent Run (turns, messages, reasoning, and tool calls)",arguments:[{name:"runId",required:!0}],options:[projectOption2,environmentOption2,sinceOption,agentRunsUntilOption,{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Fetch newer trace activity using a cursor from a previous response"},{name:"previous",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Fetch older trace activity using a cursor from a previous response"},{name:"max-field-length",shorthand:null,type:Number,argument:"N",deprecated:!1,description:"Maximum length for individual string fields in the trace (default: 8000; 0 disables truncation)"},jsonOption2],examples:[{name:"Show the trace for an Agent Run",value:`${packageName} agent-runs trace run_1234567890`},{name:"Print the raw trace as JSON without truncation",value:`${packageName} agent-runs trace run_1234567890 --json --max-field-length 0`},{name:"Fetch newer activity from a paginated trace response",placeholders:["<CURSOR>"],value:`${packageName} agent-runs trace run_1234567890 --next <CURSOR>`}]},projectsSubcommand={name:"projects",aliases:[],description:"List projects in the current team with Agent Runs activity",arguments:[],options:[environmentOption2,sinceOption,agentRunsUntilOption,jsonOption2],examples:[{name:"List projects with Agent Runs activity",value:`${packageName} agent-runs projects`},{name:"List projects with Agent Runs activity in another team",value:`${packageName} agent-runs projects --scope my-team`}]},agentRunsCommand={name:"agent-runs",aliases:[],description:"Inspect Agent Runs observability data",arguments:[],subcommands:[listSubcommand2,inspectSubcommand2,traceSubcommand,projectsSubcommand],options:[],examples:[{name:"List recent production Agent Runs for the linked project",value:`${packageName} agent-runs list`},{name:"List projects with Agent Runs activity",value:`${packageName} agent-runs projects`},{name:"Inspect an Agent Run",value:`${packageName} agent-runs inspect run_1234567890`},{name:"Show the trace for an Agent Run",value:`${packageName} agent-runs trace run_1234567890`}]};var tokenPassOption={name:"token-pass",shorthand:null,type:Boolean,deprecated:!1,description:"Scope the key to Vercel Token Pass: it spends only the team's Token Pass credits, on Token Pass models only. Cannot be changed after creation."},createSubcommand={name:"create",aliases:[],description:"Create a new AI Gateway API key",arguments:[],options:[tokenPassOption,{name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Human-readable name for the API key"},{name:"amount",shorthand:null,type:Number,argument:"USD",deprecated:!1,description:"Quota budget limit in dollars (minimum 1)"},{name:"limit",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!0,description:"Deprecated alias for `--amount`"},{name:"budget",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!0,description:"Deprecated alias for `--amount`"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Quota refresh cadence: daily, weekly, monthly, or none (default: none)"},{name:"include-byok",shorthand:null,type:Boolean,deprecated:!1,description:"Include BYOK usage in quota (default: false)"},{name:"alert-thresholds",shorthand:null,type:String,argument:"LIST",deprecated:!1,description:"Comma-separated spend percentages to alert at, a subset of 50,75,100 (e.g. 75,100)"},{name:"expiration",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Expiry for the key: 7d, 30d, 60d, 90d, 1y, or none (default: none)"},{name:"zdr-exempt",shorthand:null,type:Boolean,deprecated:!1,description:"Exempt the key from the team's ZDR-only model restriction (team owners only)"},{name:"bypass-all-settings",shorthand:null,type:Boolean,deprecated:!1,description:"Exempt the key from all of the team's restrictions: ZDR-only models, the provider/model allowlist, and the HIPAA and prompt-training filters (team owners only)"}],examples:[{name:"Create an API key with defaults",value:`${packageName} ai-gateway api-keys create`},{name:"Create a key scoped to Vercel Token Pass",value:`${packageName} ai-gateway api-keys create --name token-pass --token-pass`},{name:"Create an API key with a budget",value:`${packageName} ai-gateway api-keys create --name my-key --amount 500 --refresh-period monthly`},{name:"Create a key that expires and alerts on spend",value:`${packageName} ai-gateway api-keys create --amount 500 --alert-thresholds 75,100 --expiration 90d`},{name:"Create a ZDR-exempt key (team owners only)",value:`${packageName} ai-gateway api-keys create --name escape-hatch --zdr-exempt --expiration 7d`},{name:"Create a key that bypasses all team restrictions (team owners only)",value:`${packageName} ai-gateway api-keys create --name escape-hatch --bypass-all-settings --expiration 7d`}]},listSubcommand3={name:"list",aliases:["ls"],description:"List AI Gateway API keys",arguments:[],options:[{name:"query",shorthand:"q",type:String,argument:"TEXT",deprecated:!1,description:"Only keys whose name or key suffix contains this text (case-insensitive)"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!0,description:"Alias for --query"},{name:"creator",shorthand:null,type:String,argument:"USER",deprecated:!1,description:'Only keys created by this team member (email, username, or user id), or "me"; an unknown user id is used as-is'},{name:"state",shorthand:null,type:String,argument:"STATE",deprecated:!1,description:"Which keys to list: active (unexpired), expired, deleted, or any (default: active)"},{name:"sort",shorthand:null,type:String,argument:"FIELD",deprecated:!1,description:"Order by createdAt, lastActiveAt, name, or expiresAt, optionally with :asc or :desc (default: lastActiveAt:desc)"},limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"List API keys",value:`${packageName} ai-gateway api-keys list`},{name:"Find keys by name or suffix",value:`${packageName} ai-gateway api-keys list --query prod`},{name:"List your own unexpired keys, newest first",value:`${packageName} ai-gateway api-keys list --creator me --state active --sort createdAt`},{name:"Fetch the next 50 keys, using the cursor from pagination.next",placeholders:["<CURSOR>"],value:`${packageName} ai-gateway api-keys list --limit 50 --next=<CURSOR> --json`}]},inspectSubcommand3={name:"inspect",aliases:[],description:"Show details about an AI Gateway API key",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Inspect an API key",value:`${packageName} ai-gateway api-keys inspect key_123`}]},removeSubcommand2={name:"revoke",aliases:["remove","rm","delete"],description:"Revoke an AI Gateway API key",arguments:[{name:"id",required:!0}],options:[yesOption,formatOption,jsonOption],examples:[{name:"Revoke an API key",value:`${packageName} ai-gateway api-keys revoke key_123`}]},apiKeysSubcommand={name:"api-keys",aliases:[],description:"Manage AI Gateway API keys",arguments:[],subcommands:[createSubcommand,listSubcommand3,inspectSubcommand3,removeSubcommand2],options:[],examples:[]},rulesAddSubcommand={name:"add",aliases:[],description:"Add an AI Gateway routing rule",arguments:[],options:[{name:"type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:"Rule type: rewrite or deny"},{name:"source",shorthand:null,type:String,argument:"MODEL",deprecated:!1,description:"Model the rule matches (e.g. anthropic/claude-sonnet-4.5)"},{name:"destination",shorthand:null,type:String,argument:"MODEL",deprecated:!1,description:"Target model a rewrite rule routes to"},{name:"reason",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Reason surfaced when the rule applies"},{name:"description",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Human-readable description of the rule"},formatOption,jsonOption],examples:[{name:"Rewrite one model to another",value:`${packageName} ai-gateway rules add --type rewrite --source anthropic/claude-fable-5 --destination anthropic/claude-opus-4.8`},{name:"Deny a model",value:`${packageName} ai-gateway rules add --type deny --source openai/gpt-4o`}]},rulesListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway routing rules",arguments:[],options:[{name:"include-disabled",shorthand:null,type:Boolean,deprecated:!1,description:"Include disabled rules"},limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"List routing rules",value:`${packageName} ai-gateway rules list`},{name:"Fetch the next 50 rules, using the cursor from pagination.next",placeholders:["<CURSOR>"],value:`${packageName} ai-gateway rules list --limit 50 --next=<CURSOR> --json`}]},rulesEditSubcommand={name:"update",aliases:["edit"],description:"Update an AI Gateway routing rule",arguments:[{name:"ruleId",required:!0}],options:[{name:"enable",shorthand:null,type:Boolean,deprecated:!1,description:"Turn the rule on"},{name:"no-enable",shorthand:null,type:Boolean,deprecated:!1,description:"Turn the rule off"},{name:"disable",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--no-enable`"},{name:"destination",shorthand:null,type:String,argument:"MODEL",deprecated:!1,description:"Target model a rewrite rule routes to"},{name:"reason",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Reason surfaced when the rule applies"},{name:"description",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Human-readable description of the rule"},formatOption,jsonOption],examples:[{name:"Disable a rule",value:`${packageName} ai-gateway rules update rule_123 --no-enable`}]},rulesRemoveSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove an AI Gateway routing rule",arguments:[{name:"ruleId",required:!0}],options:[yesOption,formatOption,jsonOption],examples:[{name:"Remove a rule",value:`${packageName} ai-gateway rules remove rule_123`}]},rulesSubcommand={name:"rules",aliases:[],description:`Manage AI Gateway routing rules (Beta).
8
+
9
+ AI Gateway routing rules are in beta and may change before general availability. Avoid relying on them in production.`,arguments:[],subcommands:[rulesAddSubcommand,rulesListSubcommand,rulesEditSubcommand,rulesRemoveSubcommand],options:[],examples:[]},setupSubcommand={name:"setup",aliases:[],description:"Connect local coding agents to the AI Gateway",arguments:[],options:[tokenPassOption,{name:"agent",shorthand:null,type:[String],argument:"NAME",deprecated:!1,description:"Coding agent to configure, repeatable; omit to pick from the detected agents"},{name:"all",shorthand:"a",type:Boolean,deprecated:!1,description:"Configure every supported coding agent"},{name:"key",shorthand:null,type:String,argument:"KEY",deprecated:!1,description:"Use an existing AI Gateway API key instead of creating one"},{name:"amount",shorthand:null,type:Number,argument:"USD",deprecated:!1,description:"Quota budget in dollars for a newly created key (minimum 1)"},{name:"budget",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!0,description:"Deprecated alias for `--amount`"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Quota refresh cadence for a new key: daily, weekly, monthly, or none"},{name:"include-byok",shorthand:null,type:Boolean,deprecated:!1,description:"Include BYOK usage in the new key quota"},{name:"expiration",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Expiry for a new key: 7d, 30d, 60d, 90d, 1y, or none (default: none)"},{name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Name for a newly created API key"},{name:"reconfigure",shorthand:null,type:Boolean,deprecated:!1,description:"Re-run even if already configured, to rotate the key or switch team"},{name:"dry-run",shorthand:null,type:Boolean,deprecated:!1,description:"Show what would change without writing any files"},{name:"no-backup",shorthand:null,type:Boolean,deprecated:!1,description:"Do not write .bak backups of changed files"},{name:"no-session-migration",shorthand:null,type:Boolean,deprecated:!1,description:"Do not copy existing Codex Desktop sessions for use with the Vercel AI Gateway provider."},{name:"no-keychain",shorthand:null,type:Boolean,deprecated:!1,description:"Always write the key into config files instead of the macOS Keychain"},{name:"agent-config",shorthand:null,type:[String],argument:"AGENT=PATH",deprecated:!1,description:"Override an agent's config file path, e.g. claude-code=/path/settings.json (repeatable)"},{name:"shell-rc",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Shell rc file to write the env exports into"},{name:"apply",shorthand:null,type:String,argument:"MODE",deprecated:!1,description:"How to apply non-interactively: edit (write files) or prompt (emit an agent prompt on stdout; requires the macOS Keychain) (default: edit)"},{name:"base-url",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Override the AI Gateway base URL written into agent configs (advanced; e.g. a preview deployment). Written verbatim."},yesOption],examples:[{name:"Connect all detected coding agents (creates a key)",value:`${packageName} ai-gateway setup`},{name:"Connect Claude Code with a Token Pass key",value:`${packageName} ai-gateway setup --token-pass --agent claude-code --yes`},{name:"Emit a prompt to hand to a coding agent instead of writing files",value:`${packageName} ai-gateway setup --apply prompt --yes`},{name:"Connect specific agents with a budgeted key",value:`${packageName} ai-gateway setup --agent claude-code --amount 500 --refresh-period monthly`},{name:"Rotate the key on an already-configured setup",value:`${packageName} ai-gateway setup --reconfigure`},{name:"Reuse an existing key and preview changes only",placeholders:["<key>"],value:`${packageName} ai-gateway setup --key <key> --dry-run`},{name:"Point an agent at a different gateway base URL",value:`${packageName} ai-gateway setup --agent codex --base-url https://preview.ai-gateway.vercel.sh/v1`}]},codingAgentsSubcommand={name:"coding-agents",aliases:[],description:"Connect local coding agents to the AI Gateway",hidden:!0,arguments:[],subcommands:[setupSubcommand],options:[],examples:[]},modelsListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway models",arguments:[],options:[formatOption,jsonOption,{name:"virtual",shorthand:null,type:Boolean,deprecated:!1,description:"Show only your team's virtual models"},{name:"no-virtual",shorthand:null,type:Boolean,deprecated:!1,description:"Hide virtual models"}],examples:[{name:"List available models",value:`${packageName} ai-gateway models list`},{name:"List only your team's virtual models",value:`${packageName} ai-gateway models list --virtual`}]},modelsEndpointsSubcommand={name:"endpoints",aliases:[],description:"List provider endpoints for an AI Gateway model",arguments:[{name:"model",required:!0}],options:[formatOption,jsonOption],examples:[{name:"List provider endpoints for a model",value:`${packageName} ai-gateway models endpoints anthropic/claude-opus-4.8`}]},modelsSubcommand={name:"models",aliases:[],description:"Manage AI Gateway models",arguments:[],subcommands:[modelsListSubcommand,modelsEndpointsSubcommand],options:[],examples:[]},budgetDefaultOption={name:"default",shorthand:null,type:Boolean,deprecated:!1,description:"Target the default budget for the scope, applied to resources of that scope without their own budget"},budgetsSetSubcommand={name:"set",aliases:[],description:"Create or update an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",arguments:[{name:"scope",required:!0},{name:"name",required:!1}],options:[{name:"amount",shorthand:null,type:Number,argument:"USD",deprecated:!1,description:"Budget limit in dollars (minimum 1)"},{name:"limit",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!0,description:"Deprecated alias for `--amount`"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Budget refresh cadence: daily, weekly, monthly, or none (default: monthly)"},budgetDefaultOption,formatOption,jsonOption],examples:[{name:"Set a team budget",value:`${packageName} ai-gateway budgets set team --amount 500 --refresh-period monthly`},{name:"Set a project budget",value:`${packageName} ai-gateway budgets set project my-project --amount 200`},{name:"Set a user's budget",value:`${packageName} ai-gateway budgets set user teammate@example.com --amount 100`},{name:"Set an API key's budget",value:`${packageName} ai-gateway budgets set api-key my-key --amount 50`},{name:"Set the default budget for team members without their own",value:`${packageName} ai-gateway budgets set user --default --amount 50 --refresh-period monthly`}]},budgetsInspectSubcommand={name:"inspect",aliases:[],description:"Show one AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",arguments:[{name:"scope",required:!0},{name:"name",required:!1}],options:[budgetDefaultOption,formatOption,jsonOption],examples:[{name:"Inspect a user's budget",value:`${packageName} ai-gateway budgets inspect user teammate@example.com`},{name:"Inspect a project budget as JSON",value:`${packageName} ai-gateway budgets inspect project my-project --json`},{name:"Inspect the per-member default budget",value:`${packageName} ai-gateway budgets inspect user --default`}]},budgetsListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway budgets",arguments:[],options:[{name:"scope-type",shorthand:null,type:String,argument:"SCOPE",deprecated:!1,description:"Only list budgets for one scope: team, project, user, or api-key"},{name:"defaults",shorthand:null,type:Boolean,deprecated:!1,description:"List the team's default budgets instead of individual budgets"},limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"List budgets",value:`${packageName} ai-gateway budgets list`},{name:"List user budgets",value:`${packageName} ai-gateway budgets list --scope-type user`},{name:"List the default budgets",value:`${packageName} ai-gateway budgets list --defaults`},{name:"Fetch the next 50 budgets, using the cursor from pagination.next",placeholders:["<CURSOR>"],value:`${packageName} ai-gateway budgets list --limit 50 --next=<CURSOR> --json`}]},budgetsRemoveSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove an AI Gateway budget for a scope (team, project <name>, user <email>, or api-key <name>), or the default budget for a scope with --default",arguments:[{name:"scope",required:!0},{name:"name",required:!1}],options:[yesOption,budgetDefaultOption,formatOption,jsonOption],examples:[{name:"Remove the team budget",value:`${packageName} ai-gateway budgets remove team`},{name:"Remove a project budget",value:`${packageName} ai-gateway budgets remove project my-project`},{name:"Remove a user's budget",value:`${packageName} ai-gateway budgets remove user teammate@example.com`},{name:"Remove an API key's budget",value:`${packageName} ai-gateway budgets remove api-key my-key`},{name:"Remove the default budget for API keys",value:`${packageName} ai-gateway budgets remove api-key --default`}]},leaderboardFormatOption={name:"format",shorthand:null,deprecatedShorthand:"F",type:String,argument:"FORMAT",deprecated:!1,description:"Output format: table, json, or csv (default: table in a terminal, json otherwise)"},leaderboardOutputOption={name:"output",shorthand:"o",type:String,argument:"PATH",deprecated:!1,description:"Write the payload to a file instead of stdout (default: json; use --format csv for CSV)"},leaderboardOutOption={name:"out",shorthand:null,type:String,argument:"FILE",deprecated:!0,description:"Deprecated alias for `--output`"},leaderboardModalityOption={name:"modality",shorthand:null,type:String,argument:"MODALITY",deprecated:!1,description:"Filter by modality: all, text, image, or video (default: all)"},leaderboardMetricOption={name:"metric",shorthand:null,type:String,argument:"METRIC",deprecated:!1,description:"Metric for the table view: requests, tokens, spend, imageCount, or videoCount (default: requests)"},leaderboardDateOption={name:"date",shorthand:null,type:String,argument:"YYYY-MM-DD",deprecated:!1,description:"Day to show in the table view (default: most recent)"},leaderboardModelsSubcommand={name:"models",aliases:[],description:"Show the most-used models on AI Gateway",arguments:[],options:[leaderboardModalityOption,leaderboardMetricOption,leaderboardDateOption,leaderboardFormatOption,leaderboardOutputOption,leaderboardOutOption],examples:[{name:"Show the top text models",value:`${packageName} ai-gateway leaderboard models --modality text`},{name:"Export the full model data as CSV",value:`${packageName} ai-gateway leaderboard models --format csv --output models.csv`}]},budgetsDefaultsListSubcommand={name:"list",aliases:["ls"],description:"List the team's AI Gateway budget defaults",arguments:[],options:[formatOption],examples:[{name:"List budget defaults",value:`${packageName} ai-gateway budgets defaults list`}]},budgetsDefaultsSetSubcommand={name:"set",aliases:[],description:"Create or update the AI Gateway budget default for a scope (project, api-key, or user), applied to resources of that scope without an explicit budget",arguments:[{name:"scope",required:!0}],options:[{name:"amount",shorthand:null,type:Number,argument:"USD",deprecated:!1,description:"Default budget limit in dollars (minimum 1)"},{name:"limit",shorthand:null,type:Number,argument:"AMOUNT",deprecated:!0,description:"Deprecated alias for `--amount`"},{name:"refresh-period",shorthand:null,type:String,argument:"PERIOD",deprecated:!1,description:"Budget refresh cadence: daily, weekly, monthly, or none (default: monthly)"},formatOption],examples:[{name:"Set the per-project default",value:`${packageName} ai-gateway budgets defaults set project --amount 200 --refresh-period monthly`},{name:"Set the per-api-key default",value:`${packageName} ai-gateway budgets defaults set api-key --amount 50`},{name:"Set the per-member default",value:`${packageName} ai-gateway budgets defaults set user --amount 50`}]},budgetsDefaultsRemoveSubcommand={name:"remove",aliases:["rm","delete"],description:"Remove the AI Gateway budget default for a scope (project, api-key, or user)",arguments:[{name:"scope",required:!0}],options:[yesOption,formatOption],examples:[{name:"Remove the per-project default",value:`${packageName} ai-gateway budgets defaults remove project`}]},budgetsDefaultsSubcommand={name:"defaults",aliases:[],hidden:!0,description:"Manage AI Gateway budget defaults (per-project, per-api-key, and per-member spend limits applied by default)",arguments:[],subcommands:[budgetsDefaultsListSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsRemoveSubcommand],options:[],examples:[]},budgetsSubcommand={name:"budgets",aliases:[],description:"Manage AI Gateway budgets (metered spend limits per scope)",arguments:[],subcommands:[budgetsSetSubcommand,budgetsListSubcommand,budgetsInspectSubcommand,budgetsRemoveSubcommand,budgetsDefaultsSubcommand],options:[],examples:[]},leaderboardLabsSubcommand={name:"labs",aliases:[],description:"Show the most-used model creators (labs) on AI Gateway",arguments:[],options:[leaderboardModalityOption,leaderboardMetricOption,leaderboardDateOption,leaderboardFormatOption,leaderboardOutputOption,leaderboardOutOption],examples:[{name:"Show the top labs by spend",value:`${packageName} ai-gateway leaderboard labs --metric spend`}]},leaderboardAppsSubcommand={name:"apps",aliases:[],description:"Show the top apps built on AI Gateway",arguments:[],options:[leaderboardFormatOption,leaderboardOutputOption,leaderboardOutOption],examples:[{name:"Show the top apps",value:`${packageName} ai-gateway leaderboard apps`}]},leaderboardProvidersSubcommand={name:"providers",aliases:[],description:"Show the top inference providers on AI Gateway",arguments:[],options:[leaderboardFormatOption,leaderboardOutputOption,leaderboardOutOption],examples:[{name:"Show the top providers as JSON",value:`${packageName} ai-gateway leaderboard providers --format json`}]},leaderboardSubcommand={name:"leaderboard",aliases:["leaderboards"],description:"Explore AI Gateway usage leaderboards (open, anonymized data under CC BY 4.0)",arguments:[],subcommands:[leaderboardModelsSubcommand,leaderboardLabsSubcommand,leaderboardAppsSubcommand,leaderboardProvidersSubcommand],options:[],examples:[]},virtualModelsListSubcommand={name:"list",aliases:["ls"],description:"List AI Gateway virtual models",arguments:[],options:[{name:"include-archived",shorthand:null,type:Boolean,deprecated:!1,description:"Include archived virtual models"},limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"List virtual models",value:`${packageName} ai-gateway virtual-models list`},{name:"Fetch the next 50 virtual models, using the cursor from pagination.next",placeholders:["<CURSOR>"],value:`${packageName} ai-gateway virtual-models list --limit 50 --next=<CURSOR> --json`}]},virtualModelsInspectSubcommand={name:"inspect",aliases:[],description:"Show details about an AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Inspect a virtual model",value:`${packageName} ai-gateway virtual-models inspect my-model`}]},virtualModelConfigOption={name:"config",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"JSON object of virtual model fields, for anything without a dedicated option. Options win over keys set here"},virtualModelFieldOptions=[{name:"model",shorthand:null,type:String,argument:"SLUG",deprecated:!1,description:"Model the virtual model points at (e.g. openai/gpt-5.1)"},{name:"display-name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Human-readable name shown in the dashboard"},{name:"description",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Description of the virtual model"},{name:"provider-order",shorthand:null,type:String,argument:"LIST",deprecated:!1,description:"Comma-separated providers to try, in order"},{name:"provider-only",shorthand:null,type:String,argument:"LIST",deprecated:!1,description:"Comma-separated providers to restrict routing to"}],virtualModelsCreateSubcommand={name:"create",aliases:[],description:"Create an AI Gateway virtual model",arguments:[{name:"slug",required:!1}],options:[{name:"kind",shorthand:null,type:String,argument:"KIND",deprecated:!1,description:"Virtual model kind: alias or relay (default: alias)"},...virtualModelFieldOptions,virtualModelConfigOption,formatOption,jsonOption],examples:[{name:"Create a virtual model interactively",value:`${packageName} ai-gateway virtual-models create`},{name:"Create a virtual model in one line",value:`${packageName} ai-gateway virtual-models create my-model --model openai/gpt-5.1`},{name:"Create a virtual model with fields that have no option",value:`${packageName} ai-gateway virtual-models create my-model --model openai/gpt-5.1 --config '{"sort":"cost","zeroDataRetention":true}'`}]},virtualModelsEditSubcommand={name:"update",aliases:["edit"],description:"Update an AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[...virtualModelFieldOptions,virtualModelConfigOption,formatOption,jsonOption],examples:[{name:"Point a virtual model at a different model",value:`${packageName} ai-gateway virtual-models update my-model --model anthropic/claude-sonnet-4.5`}]},virtualModelsRemoveSubcommand={name:"delete",aliases:["rm","del","remove"],description:"Delete an AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Delete a virtual model",value:`${packageName} ai-gateway virtual-models delete my-model`}]},virtualModelsRestoreSubcommand={name:"restore",aliases:[],description:"Restore a deleted AI Gateway virtual model",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Restore a deleted virtual model",value:`${packageName} ai-gateway virtual-models restore my-model`}]},virtualModelsSubcommand={name:"virtual-models",aliases:[],description:"Manage AI Gateway virtual models, reusable model configurations callable as vmc/<slug>",arguments:[],subcommands:[virtualModelsCreateSubcommand,virtualModelsListSubcommand,virtualModelsInspectSubcommand,virtualModelsEditSubcommand,virtualModelsRemoveSubcommand,virtualModelsRestoreSubcommand],options:[],examples:[]},aiGatewayCommand={name:"ai-gateway",aliases:[],description:"Manage AI Gateway resources",arguments:[],subcommands:[apiKeysSubcommand,budgetsSubcommand,rulesSubcommand,virtualModelsSubcommand,setupSubcommand,codingAgentsSubcommand,modelsSubcommand,leaderboardSubcommand],options:[],examples:[]};var setSubcommand={name:"set",aliases:[],description:"Create a new alias",default:!0,arguments:[{name:"deployment",required:!0},{name:"alias",required:!0}],options:[],examples:[]},listSubcommand4={name:"list",aliases:["ls"],description:"Show all aliases",arguments:[],options:[limitOption,nextCursorOption,formatOption,jsonOption],examples:[]},removeSubcommand3={name:"remove",aliases:["rm"],description:"Remove an alias using its hostname",arguments:[{name:"alias",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing an alias"}],examples:[]},aliasCommand={name:"alias",aliases:["aliases","ln"],description:"Interact with deployment aliases",arguments:[],subcommands:[listSubcommand4,removeSubcommand3,setSubcommand],options:[],examples:[{name:"Add a new alias to `my-api.vercel.app`",value:`${packageName} alias set api-ownv3nc9f8.vercel.app my-api.vercel.app`},{name:"Custom domains work as alias targets",value:`${packageName} alias set api-ownv3nc9f8.vercel.app my-api.com`},{name:"The subcommand `set` is the default and can be skipped. Protocols in the URLs are unneeded and ignored",value:`${packageName} alias api-ownv3nc9f8.vercel.app my-api.com`}]};var EXAMPLE_INVOICE_ID="inv_c3RyaXBlOmluXzFQeTJ4S0dJcGRLRlVtUFk",INVOICE_STATUSES=["draft","open","paid","uncollectible","void"],invoicesListSubcommand={name:"list",aliases:["ls"],default:!0,description:"List invoices, newest first",arguments:[],options:[{name:"status",shorthand:null,type:[String],argument:"STATUS",deprecated:!1,description:`Only show invoices with this status, repeatable: ${INVOICE_STATUSES.join(", ")} (default: open, paid, uncollectible)`},{name:"limit",shorthand:"n",type:Number,argument:"NUMBER",deprecated:!1,description:"Number of invoices to show (default: 20, max: 100)"},nextCursorOption,jsonOption],examples:[{name:"List recent invoices",value:`${packageName} billing invoices list`},{name:"List open invoices",value:`${packageName} billing invoices list --status open`},{name:"List invoices as JSON",value:`${packageName} billing invoices list --json`}]},invoicesInspectSubcommand={name:"inspect",aliases:[],description:"Show an invoice and its line items",arguments:[{name:"invoice",required:!0}],options:[jsonOption],examples:[{name:"Inspect an invoice",value:`${packageName} billing invoices inspect ${EXAMPLE_INVOICE_ID}`},{name:"Inspect an invoice as JSON",value:`${packageName} billing invoices inspect ${EXAMPLE_INVOICE_ID} --json`}]},invoicesUpcomingSubcommand={name:"upcoming",aliases:[],description:"Show upcoming invoice estimates and their line items",arguments:[],options:[jsonOption],examples:[{name:"Show upcoming charges for the current team",value:`${packageName} billing invoices upcoming`},{name:"Show upcoming charges for a specific team",value:`${packageName} billing invoices upcoming --scope acme`},{name:"Read upcoming invoice estimates as JSON",value:`${packageName} billing invoices upcoming --json`}],helpSections:[{title:"Notes",body:["Requires a team with an active paid subscription and access to invoices.","Amounts are estimates and may change until the end of the billing period. Upcoming invoices have no invoice ID or downloadable PDF.","JSON returns { invoices: [...], pagination: { next: null } }. An empty invoices array means no upcoming invoice is available."]}]},invoicesDownloadSubcommand={name:"download",aliases:[],description:"Download the PDF of an invoice",arguments:[{name:"invoice",required:!0}],options:[{name:"output",shorthand:"o",type:String,argument:"PATH",deprecated:!1,description:"File to write, or - for stdout (default: <INVOICE_NUMBER>.pdf in the current directory)"},jsonOption],examples:[{name:"Download an invoice to the current directory",value:`${packageName} billing invoices download ${EXAMPLE_INVOICE_ID}`},{name:"Download an invoice to a specific file",value:`${packageName} billing invoices download ${EXAMPLE_INVOICE_ID} --output invoices/september.pdf`}]},invoicesSubcommand={name:"invoices",aliases:["invoice"],description:"List, inspect, and download invoices",arguments:[],subcommands:[invoicesListSubcommand,invoicesInspectSubcommand,invoicesUpcomingSubcommand,invoicesDownloadSubcommand],options:[],examples:[]},billingCommand={name:"billing",aliases:[],description:"Manage billing for a team",arguments:[],subcommands:[invoicesSubcommand],options:[],examples:[]};var bisectCommand={name:"bisect",aliases:[],description:"Bisect the current project interactively or via an automated test script.",arguments:[],options:[{name:"bad",description:"Known bad URL",argument:"URL",shorthand:null,deprecatedShorthand:"b",type:String,deprecated:!1},{name:"good",description:"Known good URL",argument:"URL",shorthand:null,deprecatedShorthand:"g",type:String,deprecated:!1},{name:"open",description:"Automatically open each URL in the browser",argument:"URL",shorthand:null,deprecatedShorthand:"o",type:Boolean,deprecated:!1},{name:"path",description:"Subpath of the deployment URL to test",argument:"PATH",shorthand:null,deprecatedShorthand:"p",type:String,deprecated:!1},{name:"run",description:"Test script to run for each deployment",argument:"SCRIPT",shorthand:null,deprecatedShorthand:"r",type:String,deprecated:!1}],examples:[{name:"Bisect the current project interactively",value:`${packageName} bisect`},{name:"Bisect with a known bad deployment",value:`${packageName} bisect --bad example-310pce9i0.vercel.app`},{name:"Automated bisect with a run script",value:`${packageName} bisect --run ./test.sh`}]};var preinstallSubcommand={name:"preinstall",aliases:[],description:"Preinstall and load native Builders.",arguments:[],options:[],examples:[]},buildersCommand={name:"builders",aliases:[],description:"Manage the native Builder cache.",hidden:!0,arguments:[],subcommands:[preinstallSubcommand],options:[],examples:[]};var CUSTOM_ENVIRONMENT_ADDON_ALIASES=new Set(["customenvironment","custom-environment","custom-environments","custom_environment","custom_environments"]);function isCustomEnvironmentAddonAlias(name){return CUSTOM_ENVIRONMENT_ADDON_ALIASES.has(name.toLowerCase())}function customEnvironmentPackEnvironments(packs){return packs*5}var listSubcommand5={name:"list",aliases:["ls"],description:"Show all domains in a list",default:!0,arguments:[],options:[limitOption,nextCursorOption,formatOption,jsonOption],examples:[{name:"Show the next page, using the cursor from the previous output",placeholders:["<CURSOR>"],value:`${packageName} domains list --next <CURSOR>`}]},inspectSubcommand4={name:"inspect",aliases:[],description:"Displays information related to a domain",arguments:[{name:"domain",required:!0}],options:[formatOption,jsonOption],examples:[{name:"JSON output",value:`${packageName} domains inspect example.com --json`}]},addSubcommand2={name:"add",aliases:[],description:"Add a domain you already own to your team or a project",arguments:[{name:"domain",required:!0,description:"Domain name, such as example.com"},{name:"project",required:!1,description:"Optional project name; omit to add an apex domain to the team"}],options:[{...forceOption,shorthand:null,description:"Remove the current assignment, then add the domain to the requested project (a failed add can leave it unassigned)"}],examples:[{name:"Add a domain that you already own",value:[`${packageName} domains add domain-name.com`]}],helpSections:[{title:"DNS Configuration",body:["Without a project, adds an apex domain to your team and creates its DNS zone. To use Vercel DNS, configure the domain's nameservers at your registrar.","With a project, assigns the domain to it. External DNS providers are supported; follow the project's DNS configuration instructions.","`vercel alias` can add an existing domain to your team while assigning it to a deployment, so a separate `domains add` step may not be needed."]}]},removeSubcommand4={name:"remove",aliases:["rm"],description:"Remove ownership of a domain name from a Vercel Team",arguments:[{name:"domain",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing a domain"}],examples:[]},priceSubcommand={name:"price",aliases:[],description:"Show registrar price quotes for one or more domains",arguments:[{name:"domain",required:!0,multiple:!0}],options:[formatOption,jsonOption],examples:[{name:"Price quote for a domain",value:`${packageName} domains price example.com`},{name:"Price quotes for multiple domains",value:`${packageName} domains price one.com two.com three.com`},{name:"JSON output",value:`${packageName} domains price example.com --json`}]},searchSubcommand={name:"search",aliases:[],description:"Discover domain-name candidates from a keyword or fragment",arguments:[{name:"query",required:!0}],options:[{name:"available",shorthand:null,type:Boolean,description:"Show only candidates available to register",deprecated:!1},{name:"order",shorthand:null,type:String,argument:"ORDER",description:"Order candidates by relevance, alphabetical order, or length (default: relevance)",deprecated:!1},{name:"limit",shorthand:"n",type:Number,argument:"NUMBER",description:"Number of candidates to check per page (default: 20, max: 200)",deprecated:!1},{name:"tld",shorthand:null,type:[String],argument:"TLD",description:"Filter candidates by exact TLD. Repeatable.",deprecated:!1},{name:"next",shorthand:null,type:String,argument:"CURSOR",description:"Show the next page of candidates",deprecated:!1},formatOption,jsonOption],examples:[{name:"Discover domain-name candidates",value:`${packageName} domains search acme`},{name:"Narrow candidates with a TLD fragment",value:`${packageName} domains search acme.d`},{name:"Filter candidates by TLD",value:`${packageName} domains search acme --tld com --tld dev`},{name:"Show only available candidates",value:`${packageName} domains search acme --available`},{name:"JSON output",value:`${packageName} domains search acme --json`}]},amountOption={name:"amount",shorthand:null,type:String,argument:"USD",deprecated:!1,description:"Price a person approved for this charge, in USD. Required without a terminal; nothing is charged if the price changed"},contactOption=(name,description2)=>({name,shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:description2}),buySubcommand={name:"buy",aliases:[],description:"Purchase a new domain name",arguments:[{name:"domain",required:!0}],options:[amountOption,{name:"use-billing-details",shorthand:null,type:Boolean,deprecated:!1,rejectsValue:!0,description:"Fill registrant details you don't pass from the team's billing info (email and address). An address option that replaces a billing value skips the whole billing address"},contactOption("first-name","Registrant first name"),contactOption("last-name","Registrant last name"),contactOption("email","Registrant email"),contactOption("phone","Registrant phone with country code, such as +11122233344"),contactOption("address","Registrant street address"),contactOption("city","Registrant city"),contactOption("state","Registrant state or province"),contactOption("zip","Registrant postal or ZIP code"),contactOption("country","Registrant 2-letter country code, such as US"),contactOption("company","Registrant company name (optional)"),{name:"auto-renew",shorthand:null,type:Boolean,deprecated:!1,rejectsValue:!0,description:"Renew the domain automatically at the end of each term. Without a terminal, pass --auto-renew or --no-auto-renew"},{name:"no-auto-renew",shorthand:null,type:Boolean,deprecated:!1,rejectsValue:!0,description:"Don't renew the domain automatically"},formatOption,jsonOption],examples:[{name:"Buy a domain (shows the price and asks for contact details)",value:`${packageName} domains buy example.com`},{name:"From an agent or script: buy at the price a person approved, with the billing info for the address",value:`${packageName} domains buy example.com --scope my-team --amount 20.00 --use-billing-details --first-name Jane --last-name Doe --phone +11122233344 --no-auto-renew`}]},checkSubcommand={name:"check",aliases:[],description:"Check whether one or more domains are available to buy",arguments:[{name:"domain",required:!0,multiple:!0}],options:[formatOption,jsonOption],examples:[{name:"Check if a domain is available",value:`${packageName} domains check example.com`},{name:"Check availability for multiple domains",value:`${packageName} domains check one.com two.com three.com`},{name:"JSON output",value:`${packageName} domains check example.com --json`}]},moveSubcommand={name:"move",aliases:[],description:"Move ownership of a domain name to another Vercel Team",arguments:[{name:"domain",required:!0},{name:"destination",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when moving a domain"}],examples:[]},transferInSubcommand={name:"transfer-in",aliases:[],description:"Transfer in a domain name to Vercel",arguments:[{name:"domain",required:!0}],options:[{name:"code",argument:"CODE",shorthand:null,type:String,deprecated:!1}],examples:[]},autoRenewEnableSubcommand={name:"enable",aliases:[],description:"Turn on automatic renewal for a registered domain",arguments:[{name:"domain",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Turn on automatic renewal",value:`${packageName} domains auto-renew enable example.com`},{name:"Turn on automatic renewal and print the result as JSON",value:`${packageName} domains auto-renew enable example.com --json`}]},autoRenewDisableSubcommand={name:"disable",aliases:[],description:"Turn off automatic renewal for a registered domain",arguments:[{name:"domain",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Turn off automatic renewal",value:`${packageName} domains auto-renew disable example.com`}]},autoRenewSubcommand={name:"auto-renew",aliases:[],description:"Turn automatic renewal on or off for a registered domain",arguments:[],subcommands:[autoRenewEnableSubcommand,autoRenewDisableSubcommand],options:[formatOption,jsonOption],examples:[{name:"Turn on automatic renewal",value:`${packageName} domains auto-renew enable example.com`},{name:"Turn off automatic renewal",value:`${packageName} domains auto-renew disable example.com`},{name:"JSON output",value:`${packageName} domains auto-renew enable example.com --json`}]},renewSubcommand={descriptionTone:"normal",name:"renew",aliases:[],description:"Renew a registered domain before it expires (charges your account)",arguments:[{name:"domain",required:!0}],options:[amountOption,formatOption,jsonOption],examples:[{name:"Renew a domain (shows the renewal price and asks to confirm)",value:`${packageName} domains renew example.com`},{name:"Renew at an approved price without prompting, and print the result as JSON",value:`${packageName} domains renew example.com --scope my-team --amount 20.00 --json`}]},verifySubcommand={name:"verify",aliases:[],description:"Check a domain's DNS configuration and explain what to fix when it is misconfigured or unverified",arguments:[{name:"domain",required:!0}],options:[projectOption,{name:"strict",shorthand:null,type:Boolean,deprecated:!1,description:"Check DNS for the exact domain only, without falling back to the parent zone configuration"},formatOption,jsonOption],examples:[{name:"Check why a domain is not working",value:`${packageName} domains verify example.com`},{name:"Check a domain against a specific project",value:`${packageName} domains verify example.com --project my-site`},{name:"JSON output (the exit code is non-zero when the domain is misconfigured or unverified)",value:`${packageName} domains verify example.com --json`},{name:"Agent-friendly output with status, reason, and suggested next commands",value:`${packageName} domains verify example.com --non-interactive`}]},domainsCommand={name:"domains",aliases:["domain"],description:"Manage domains",arguments:[],subcommands:[listSubcommand5,inspectSubcommand4,addSubcommand2,buySubcommand,checkSubcommand,moveSubcommand,priceSubcommand,searchSubcommand,transferInSubcommand,removeSubcommand4,renewSubcommand,autoRenewSubcommand,verifySubcommand],options:[],examples:[{name:"Renew a registered domain before it expires",placeholders:["<DOMAIN>"],value:`${packageName} domains renew <DOMAIN>`},{name:"Turn on automatic renewal for a registered domain",placeholders:["<DOMAIN>"],value:`${packageName} domains auto-renew enable <DOMAIN>`}]};var EXAMPLE_CUSTOM_ENVIRONMENT_COUNT=customEnvironmentPackEnvironments(2),SUPPORTED_CREDIT_TYPES=["v0","gateway","agent"],CREDIT_TYPE_LABELS={v0:"v0",gateway:"AI Gateway",agent:"Vercel Agent"},creditsSubcommand={name:"credits",aliases:[],description:"Purchase Vercel credits for your team",arguments:[{name:"credit-type",required:!0},{name:"amount",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Purchase $100 of v0 credits",value:`${packageName} buy credits v0 100`},{name:"Purchase $250 of AI Gateway credits",value:`${packageName} buy credits gateway 250`},{name:"Purchase $50 of Vercel Agent credits",value:`${packageName} buy credits agent 50`}]},SUPPORTED_ADDON_NAMES=["custom-environment","observability-plus"],addonSubcommand={name:"addon",aliases:["addons","add-on"],description:`Purchase a Vercel addon for your team. Supported addons: ${SUPPORTED_ADDON_NAMES.join(", ")}. Observability Plus does not accept a quantity. Custom environment purchases are per project and use packs (each pack adds ${5} environments).`,arguments:[{name:"addon-name",required:!0},{name:"quantity",required:!1}],options:[{...yesOption,description:"Skip the confirmation prompt"},jsonOption,projectOption],examples:[{name:"Purchase Observability Plus",value:`${packageName} buy addon observability-plus`},{name:`Purchase ${2} custom environment packs (${EXAMPLE_CUSTOM_ENVIRONMENT_COUNT} environments) for a project`,value:`${packageName} buy addon custom-environment ${2} --project my-app`},{name:"Remove purchased custom environment capacity",value:`${packageName} buy addon custom-environment 0 --project my-app --yes`}]},proSubcommand={name:"pro",aliases:[],description:"Purchase a Vercel Pro subscription for your team",arguments:[],options:[{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Upgrade your team to Vercel Pro",value:`${packageName} buy pro`},{name:"Upgrade without confirmation prompt",value:`${packageName} buy pro --yes`}]},domainSubcommand={name:"domain",aliases:[],description:"Purchase a domain name",arguments:[{name:"domain",required:!0}],options:buySubcommand.options,examples:[{name:"Purchase a domain",value:`${packageName} buy domain example.com`},{name:"From an agent or script: buy at the price a person approved, with the billing info for the address",value:`${packageName} buy domain example.com --scope my-team --amount 20.00 --use-billing-details --first-name Jane --last-name Doe --phone +11122233344 --no-auto-renew`}]},buyCommand={name:"buy",aliases:[],description:"Purchase Vercel products for your team",arguments:[],subcommands:[creditsSubcommand,addonSubcommand,proSubcommand,domainSubcommand],options:[],examples:[{name:"Purchase $100 of v0 credits",value:`${packageName} buy credits v0 100`},{name:"Purchase Observability Plus",value:`${packageName} buy addon observability-plus`},{name:"Upgrade to Pro",value:`${packageName} buy pro`},{name:"Purchase a domain",value:`${packageName} buy domain example.com`}]};var purgeSubcommand={name:"purge",aliases:[],description:"Purge the CDN cache and Data cache for the selected project",arguments:[],options:[yesOption,projectOption,{name:"type",description:"Select the cache to purge: cdn, data, or all (default: all)",shorthand:null,type:String,argument:"TYPE",deprecated:!1}],examples:[{name:"Purge all caches for the current project",value:`${packageName} cache purge`},{name:"Purge only the CDN cache",value:`${packageName} cache purge --type cdn`},{name:"Purge only the data cache",value:`${packageName} cache purge --type data`}]},invalidateSubcommand={name:"invalidate",aliases:[],description:"Mark cached content matching a tag or source image as stale for background revalidation",arguments:[],options:[yesOption,projectOption,{name:"tag",description:"Tags to invalidate (comma-separated)",shorthand:null,type:String,argument:"TAGS",deprecated:!1},{name:"srcimg",description:"Source Image to invalidate",shorthand:null,type:String,argument:"SRCIMG",deprecated:!1}],examples:[{name:"Invalidate all cached content associated with a tag",value:`${packageName} cache invalidate --tag foo`},{name:"Invalidate all cached content associated with any one of multiple tags",value:`${packageName} cache invalidate --tag foo,bar,baz`},{name:"Invalidate all cached content associated with a source image",value:`${packageName} cache invalidate --srcimg /api/avatar/1`}]},dangerouslyDeleteSubcommand={name:"dangerously-delete",aliases:[],description:"Delete cached content matching a tag or source image; cache misses block on revalidation",arguments:[],options:[yesOption,projectOption,{name:"tag",description:"Tags to delete (comma-separated)",shorthand:null,type:String,argument:"TAGS",deprecated:!1},{name:"srcimg",description:"Source Image to delete",shorthand:null,type:String,argument:"SRCIMG",deprecated:!1},{name:"revalidation-deadline-seconds",description:"Delay deletion for this many seconds; content accessed before the deadline is revalidated",shorthand:null,type:Number,argument:"REVALIDATION-DEADLINE-SECONDS",deprecated:!1}],examples:[{name:"Dangerously delete all cached content associated with a tag",value:`${packageName} cache dangerously-delete --tag foo`},{name:"Dangerously delete all cached content associated with a tag if not accessed in the next hour",value:`${packageName} cache dangerously-delete --tag foo --revalidation-deadline-seconds 3600`},{name:"Dangerously delete all cached content associated with a source image",value:`${packageName} cache dangerously-delete --srcimg /api/avatar/1`},{name:"Dangerously delete all cached content associated with a source image if not accessed in the next hour",value:`${packageName} cache dangerously-delete --srcimg /api/avatar/1 --revalidation-deadline-seconds 3600`}]},cacheCommand={name:"cache",aliases:[],description:"Manage cache for a Project",arguments:[],subcommands:[purgeSubcommand,invalidateSubcommand,dangerouslyDeleteSubcommand],options:[],examples:[]};var removeSubcommand5={name:"delete",aliases:["rm","del","remove"],description:"Delete a certificate by id",arguments:[{name:"id",required:!0}],options:[],examples:[{name:"Delete a certificate",value:`${packageName} certs delete id`}]},issueSubcommand={name:"issue",aliases:[],description:"Issue a new certificate for a domain",arguments:[{name:"cn",required:!0}],options:[{name:"challenge-only",description:"Only show challenges needed to issue a certificate",shorthand:null,type:Boolean,deprecated:!1},{name:"crt",description:"Certificate file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"key",description:"Certificate key file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"ca",description:"CA certificate chain file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"overwrite",shorthand:null,type:Boolean,deprecated:!1}],examples:[{name:'Generate a certificate with the cnames "acme.com" and "www.acme.com"`',value:`${packageName} certs issue acme.com www.acme.com`}]},listSubcommand6={name:"list",aliases:["ls"],description:"Show all available certificates",arguments:[],options:[limitOption,nextCursorOption,jsonOption],examples:[{name:"Show the next page, using the cursor from the previous output",placeholders:["<CURSOR>"],value:`${packageName} certs list --next <CURSOR>`}]},addSubcommand3={name:"add",aliases:[],description:"Add a new certificate",arguments:[],options:[{name:"crt",description:"Certificate file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"key",description:"Certificate key file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"ca",description:"CA certificate chain file",argument:"FILE",shorthand:null,type:String,deprecated:!1},{name:"overwrite",description:"",shorthand:null,type:Boolean,deprecated:!0}],examples:[]},certsCommand={name:"certs",aliases:["cert"],description:"Interact with SSL certificates. This command is intended for advanced use only. By default, Vercel manages your certificates automatically.",arguments:[],subcommands:[addSubcommand3,issueSubcommand,listSubcommand6,removeSubcommand5],options:[],examples:[...issueSubcommand.examples,...removeSubcommand5.examples,...listSubcommand6.examples]};var changelogOptions=[{name:"limit",shorthand:"n",type:Number,argument:"NUMBER",deprecated:!1,description:"Number of updates to show (default: 5, max: 20)"},formatOption,jsonOption],searchSubcommand2={name:"search",aliases:[],description:"Search Vercel product updates by keyword",arguments:[{name:"query",required:!0,multiple:!0}],options:changelogOptions,examples:[{name:"Search Vercel product updates",value:`${packageName} changelog search "Fluid compute"`}]},changelogCommand={name:"changelog",aliases:[],description:"Show the latest Vercel product updates",runsWithoutSubcommand:!0,arguments:[],subcommands:[searchSubcommand2],options:changelogOptions,examples:[{name:"Show the 5 latest Vercel product updates",value:`${packageName} --changelog`},{name:"Show more Vercel product updates",value:`${packageName} changelog --limit 10`},{name:"Search Vercel product updates",value:`${packageName} changelog search "AI SDK"`}]};var branchOption={name:"branch",shorthand:null,type:String,argument:"BRANCH",deprecated:!0,description:"Deprecated alias for `--git-branch`"},listSubcommand7={name:"list",aliases:["ls"],description:"List Vercel CI runs for the current repository",arguments:[],options:[{...gitBranchOption,description:"Only list runs for this Git branch (default: the current branch)"},branchOption,{name:"all-branches",shorthand:null,type:Boolean,deprecated:!1,description:"List runs for every branch of the repository"},{name:"commit",shorthand:null,type:String,argument:"SHA",deprecated:!1,description:"Only list runs for this commit on the current branch or --git-branch; cannot combine with --all-branches"},{name:"status",shorthand:null,type:String,argument:"STATUS",deprecated:!1,description:"Only list runs with this status (queued, running, succeeded, failed, skipped)"},limitOption,{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"},formatOption,jsonOption],examples:[{name:"List runs for the current branch",value:`${packageName} ci list`},{name:"List failed runs across every branch",value:`${packageName} ci list --all-branches --status failed`},{name:"List runs as JSON",value:`${packageName} ci list --json`}]},inspectSubcommand5={name:"inspect",aliases:[],description:"Show the jobs and tasks of a Vercel CI run (default: the run for the current commit)",arguments:[{name:"run",required:!1}],options:[{name:"attempt",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Show this attempt of the run (default: the latest attempt)"},{name:"wait",shorthand:null,type:Boolean,deprecated:!1,description:"Wait up to 10 minutes for the run to finish, then exit with 1 if it failed. Stopping the wait does not cancel the run"},formatOption,jsonOption],examples:[{name:"Show the run for the current commit",value:`${packageName} ci inspect`},{name:"Wait for the current commit to finish and exit with its result",value:`${packageName} ci inspect --wait`},{name:"Show a specific run as JSON",placeholders:["<run>"],value:`${packageName} ci inspect <run> --json`}]},CI_LOG_LEVELS=["trace","debug","command","info","warn","error","systemError","fatal"],logsSubcommand={name:"logs",aliases:[],description:"Show task logs for a Vercel CI run (default: the run for the current commit)",arguments:[{name:"run",required:!1}],options:[{name:"failed",shorthand:null,type:Boolean,deprecated:!1,description:"Only show logs for tasks that failed (cannot be combined with --follow)"},{name:"task",shorthand:null,type:[String],argument:"NAME",deprecated:!1,description:"Only show logs for this task (e.g., web#test); can be repeated"},{name:"level",shorthand:null,type:[String],argument:"LEVEL",deprecated:!1,description:`Only show log lines with this level (${CI_LOG_LEVELS.join(", ")}); can be repeated`},{name:"grep",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"Only show log lines containing this text, ignoring case. Searches every task in the run"},{name:"attempt",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Show logs for this attempt of the run (default: the latest attempt)"},{name:"limit",shorthand:"n",type:Number,argument:"NUMBER",deprecated:!1,description:"Maximum number of tasks to show (default: 10, max: 25)"},{name:"follow",shorthand:"f",type:Boolean,deprecated:!1,description:"Stream logs for one task (requires --task; JSON uses JSONL). Reconnect replay is bounded; stopping does not cancel the run"},formatOption,jsonOption],examples:[{name:"Show logs for the failed tasks of the current commit",value:`${packageName} ci logs --failed`},{name:"Find every line mentioning a warning across the run",value:`${packageName} ci logs --grep WARNING`},{name:"Show only error lines for one task",value:`${packageName} ci logs --task web#test --level error --level fatal`},{name:"Stream a running task",placeholders:["<run>"],value:`${packageName} ci logs <run> --task web#build --follow`}]},rerunSubcommand={descriptionTone:"normal",name:"rerun",aliases:[],description:"Start a new attempt of a finished Vercel CI run (default: a failed run for the current commit; succeeded or skipped runs require a run ID)",arguments:[{name:"run",required:!1}],options:[{name:"wait",shorthand:null,type:Boolean,deprecated:!1,description:"Wait up to 10 minutes for the new attempt to finish, then exit with 1 if it failed. Stopping the wait does not cancel the run"},formatOption,jsonOption],examples:[{name:"Rerun the run for the current commit",value:`${packageName} ci rerun`},{name:"Rerun a run and wait for the result",placeholders:["<run>"],value:`${packageName} ci rerun <run> --wait`}]},grepSubcommand={name:"grep",aliases:[],description:"Search the task logs of recent Vercel CI runs for the current repository (default: the last 20 runs on the current branch)",arguments:[{name:"text",required:!0}],options:[{...gitBranchOption,description:"Search runs for this Git branch (default: the current branch)"},branchOption,{name:"all-branches",shorthand:null,type:Boolean,deprecated:!1,description:"Search runs across every branch"},{name:"status",shorthand:null,type:String,argument:"STATUS",deprecated:!1,description:"Only search runs whose latest attempt has this status (queued, running, succeeded, failed, skipped)"},{name:"runs",shorthand:null,type:Number,argument:"NUMBER",deprecated:!1,description:"Maximum recent runs to search (default: 20, max: 50); bounded scans can return fewer runs with an explicit partial-result notice"},{name:"level",shorthand:null,type:[String],argument:"LEVEL",deprecated:!1,description:`Only show log lines with this level (${CI_LOG_LEVELS.join(", ")}); can be repeated`},formatOption,jsonOption],examples:[{name:"Search the recent runs of the current branch",value:`${packageName} ci grep ECONNRESET`},{name:"Search the last 50 failed runs across every branch",value:`${packageName} ci grep "out of memory" --all-branches --status failed --runs 50`}]},enableSubcommand={name:"enable",aliases:[],description:"Enable Vercel CI for the current repository. The repository must be connected to a project on the current team",arguments:[],options:[{name:"remote",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Git remote to enable Vercel CI for (default: the only remote; prompts when multiple exist). Required with multiple remotes in non-interactive mode"},formatOption,jsonOption],examples:[{name:"Enable Vercel CI for the current repository",value:`${packageName} ci enable`},{name:"Enable Vercel CI for a repository on another team",placeholders:["<TEAM>"],value:`${packageName} ci enable --scope <TEAM>`},{name:"Enable Vercel CI for a specific Git remote without prompts",value:`${packageName} ci enable --remote upstream --non-interactive`}]},ciCommand={name:"ci",aliases:[],description:"Inspect Vercel CI and rerun runs",arguments:[],subcommands:[enableSubcommand,listSubcommand7,inspectSubcommand5,logsSubcommand,grepSubcommand,rerunSubcommand],options:[],examples:[]};var triggerBranchOption={name:"trigger-branch",shorthand:null,type:String,argument:"BRANCH",deprecated:!0,description:"Deprecated alias for `--git-branch`"},createSubcommand2={name:"create",aliases:[],dynamicHelp:!0,description:"Create a new connector\n\nAccepts a known service (slack, notion, okta) or the URL of an OAuth or MCP server (mcp.notion.com/mcp). Run `create <service> --help` to see how a specific service can be connected to.",arguments:[{name:"service",required:!0}],options:[{name:"name",shorthand:null,deprecatedShorthand:"n",type:String,argument:"NAME",deprecated:!1,description:"Name of the connector"},{name:"triggers",shorthand:null,type:Boolean,deprecated:!1,description:"Enable webhook triggers for this connector"},{name:"trigger-event",shorthand:null,type:[String],argument:"EVENT",deprecated:!1,description:"Webhook event to receive. Repeatable. Requires --triggers and replaces the provider's default events."},{name:"trigger-project",shorthand:null,type:String,argument:"PROJECT",deprecated:!1,description:"Target a project by name or ID instead of the linked project. Requires --triggers."},{name:"trigger-path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Set the path on the destination project that receives forwarded webhooks. Requires --triggers."},{...gitBranchOption,description:"Target a preview deployment by Git branch name. Omit the option to target production. Cannot be combined with --trigger-environment. Requires --triggers."},triggerBranchOption,{name:"trigger-environment",shorthand:null,type:String,argument:"ENVIRONMENT",deprecated:!1,description:"Target a custom environment by slug or stable ID. Cannot be combined with --git-branch. Requires --triggers."},{name:"connection-method",shorthand:null,type:String,argument:"METHOD",deprecated:!1,description:"How to connect to the service (e.g. oauth, mcp, api-key). Run without it to choose interactively; the error lists the valid values for a service."},{name:"target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"Which of the service's products to connect to (e.g. api, mcp). Only needed when a service exposes more than one."},{name:"param",shorthand:null,type:[String],argument:"KEY=VALUE",deprecated:!1,description:"Value for a connection method template field (e.g. domain=acme.okta.com). Repeatable."},{...yesOption,description:"Skip the single-connection-method confirmation prompt"},{name:"data",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"JSON object for non-managed connector creation. When set, posts directly to the connector create API. Pass `@<path>` to read from a file or `@-` to read from stdin \u2014 recommended for secrets (e.g. client secrets), which leak into shell history when passed inline."},{name:"connector-type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:"Connector type for non-managed creation (default: resolved from the service)."},{name:"icon",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Path to a PNG or JPEG image to use as the connector icon (uploaded to Vercel)"},{name:"background-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Background color for the connector icon (e.g. #1A2B3C)"},{name:"accent-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Accent color for the connector icon (e.g. #1A2B3C)"},formatOption,jsonOption],examples:[{name:"Create a Slack app",value:`${packageName} connect create slack`},{name:"Create with a custom name",value:`${packageName} connect create slack --name my-bot`},{name:"Create with webhook triggers enabled",value:`${packageName} connect create slack --name my-bot --triggers`},{name:"Create with selected webhook events",value:`${packageName} connect create linear --name linear --triggers --trigger-event Issue --trigger-event Comment --trigger-event Project`},{name:"Create with a custom trigger path",value:`${packageName} connect create github --name github --triggers --trigger-path /eve/v1/github`},{name:"Create with branch-specific trigger routing",value:`${packageName} connect create github --name github --triggers --trigger-path /api/webhooks --git-branch staging`},{name:"Create with trigger routing on another project",value:`${packageName} connect create github --name github --triggers --trigger-project my-api --trigger-path /api/webhooks`},{name:"Create with branding (icon and colors)",value:`${packageName} connect create slack --name my-bot --icon ./logo.png --background-color '#1A2B3C' --accent-color '#FF0066'`},{name:"Create with a specific connection method",value:`${packageName} connect create notion --connection-method mcp --name notion-mcp`},{name:"Create with an API key, reading it from a file",value:`${packageName} connect create notion --connection-method api-key --name notion --data @key.json`},{name:"Create from a connection method that needs template values",value:`${packageName} connect create okta --connection-method custom-server --param domain=acme.okta.com --param auth_server_id=default --name okta --data @creds.json`},{name:"Target a specific product of a service",value:`${packageName} connect create notion --target api --connection-method oauth --name notion --data @creds.json`},{name:"Create a non-managed connector from explicit data",value:`${packageName} connect create mcp.linear.app --name linear --data '{"clientId":"abc123"}'`},{name:"Create a non-managed connector, reading credentials from a file (keeps secrets out of shell history)",value:`${packageName} connect create slack --name my-bot --connector-type slack --data @slack-app.json`},{name:"Create a non-managed connector, reading credentials from stdin",value:`cat slack-app.json | ${packageName} connect create slack --name my-bot --connector-type slack --data @-`},{name:"Output as JSON",value:`${packageName} connect create slack --json`}]},updateSubcommand2={name:"update",aliases:[],description:"Update connector branding (icon and colors)",arguments:[{name:"id",required:!0}],options:[{name:"icon",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Path to a PNG or JPEG image to use as the connector icon (uploaded to Vercel)"},{name:"background-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Background color for the connector icon (e.g. #1A2B3C)"},{name:"accent-color",shorthand:null,type:String,argument:"HEX",deprecated:!1,description:"Accent color for the connector icon (e.g. #1A2B3C)"},formatOption,jsonOption],examples:[{name:"Update the connector icon",value:`${packageName} connect update scl_abc123 --icon ./logo.png`},{name:"Update the connector colors",value:`${packageName} connect update scl_abc123 --background-color '#1A2B3C' --accent-color '#FF0066'`},{name:"Output as JSON",value:`${packageName} connect update scl_abc123 --icon ./logo.png --json`}]},listSubcommand8={name:"list",aliases:["ls"],description:"List connectors linked to the current project (falls back to every connector in the team when no project is linked or when --all-projects is set)",arguments:[],options:[{name:"all-projects",shorthand:null,type:Boolean,deprecated:!1,description:"List every connector in the team, regardless of project link"},{name:"limit",shorthand:"n",type:Number,argument:"COUNT",deprecated:!1,description:"Number of connectors to return per page"},{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"},{name:"query",shorthand:"q",type:String,argument:"TEXT",deprecated:!1,description:"Search connectors by name or UID"},{name:"search",shorthand:null,type:String,argument:"TEXT",deprecated:!0,description:"Deprecated alias for `--query`"},{name:"service",shorthand:null,type:[String],argument:"NAME",deprecated:!1,description:"Filter by service name (e.g. slack, mcp.linear.app). Repeatable."},{name:"type",shorthand:null,type:[String],argument:"TYPE",deprecated:!1,description:"Filter by connector type (slack, github, oauth, custom). Repeatable."},formatOption,jsonOption],examples:[{name:"List connectors linked to the current project",value:`${packageName} connect list`},{name:"List every connector in the team",value:`${packageName} connect list --all-projects`},{name:"Filter by connector type",value:`${packageName} connect list --type slack`},{name:"Filter by multiple types",value:`${packageName} connect list --type oauth --type github`},{name:"Filter by service name",value:`${packageName} connect list --service mcp.linear.app`},{name:"Search by text",value:`${packageName} connect list --query linear`},{name:"Combine filters",value:`${packageName} connect list --type oauth --query prod`},{name:"Limit the number of results",value:`${packageName} connect list --limit 10`},{name:"Show the next page, using the cursor from the previous output",placeholders:["<CURSOR>"],value:`${packageName} connect list --next <CURSOR>`},{name:"Output as JSON",value:`${packageName} connect list --json`}]},removeSubcommand6={name:"delete",aliases:["rm","del","remove"],description:"Delete a connector",arguments:[{name:"connector",required:!0}],options:[{name:"disconnect-all",description:"Disconnects all projects from the connector before deletion",shorthand:null,deprecatedShorthand:"a",type:Boolean,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt when deleting a connector"},formatOption,jsonOption],examples:[{name:"Delete a connector by ID",value:`${packageName} connect delete scl_abc123`},{name:"Delete a connector by UID",value:`${packageName} connect delete slack/my-bot`},{name:"Disconnect all projects from a connector, then delete it",value:[`${packageName} connect delete scl_abc123 --disconnect-all`,`${packageName} connect delete slack/my-bot --disconnect-all`]},{name:"Skip the confirmation prompt",value:`${packageName} connect delete scl_abc123 --yes`},{name:"Output as JSON",value:`${packageName} connect delete scl_abc123 --json --yes`}]},tokenSubcommand2={name:"token",aliases:[],description:"Get a token for a connector (accepts a connector ID like scl_abc or a UID like slack/my-bot)",arguments:[{name:"id",required:!0}],options:[{name:"subject",shorthand:null,deprecatedShorthand:"s",type:String,argument:"TYPE",deprecated:!1,description:`Subject type: "user" (acts on behalf of you) or "app" (uses the connector's default installation) (default: "user")`},{name:"installation",shorthand:null,type:String,argument:"INSTALLATION",deprecated:!1,description:"Target a specific installation (only useful with --subject app) (default: the connector's default installation)"},{name:"installation-id",shorthand:null,type:String,argument:"ID",deprecated:!0,description:"Deprecated alias for `--installation`"},{name:"scopes",shorthand:null,type:String,argument:"SCOPES",deprecated:!1,description:"Scopes (comma- or space-separated) (default: connector defaults)"},{name:"no-default-scopes",shorthand:null,type:Boolean,deprecated:!1,description:"Do not request the connector default scopes"},yesOption,formatOption,jsonOption],examples:[{name:"Get a user token by connector ID",value:`${packageName} connect token scl_abc123`},{name:"Get a token by connector UID",value:`${packageName} connect token slack/my-bot`},{name:"Get an app token (default installation)",value:`${packageName} connect token scl_abc123 --subject app`},{name:"Get an app token for a specific installation",value:`${packageName} connect token scl_abc123 --subject app --installation inst_1`},{name:"Open the browser automatically if authorization/installation is required",value:`${packageName} connect token scl_abc123 --yes`},{name:"Output as JSON (includes expiresAt, installationId, etc.)",value:`${packageName} connect token scl_abc123 --json`}]},revokeTokensSubcommand={name:"revoke-tokens",aliases:[],description:"Revoke tokens issued from a connector",arguments:[{name:"connector",required:!0}],options:[{name:"my-tokens",shorthand:null,type:Boolean,deprecated:!1,description:"Revoke only your own tokens for this connector"},{name:"all-tokens",shorthand:null,type:Boolean,deprecated:!1,description:"Revoke every token for all users and installations. Requires team owner or member permissions."},{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Interactively select which tokens to revoke",value:`${packageName} connect revoke-tokens scl_abc123`},{name:"Revoke only your own tokens",value:`${packageName} connect revoke-tokens scl_abc123 --my-tokens`},{name:"Revoke all tokens for all users",value:`${packageName} connect revoke-tokens scl_abc123 --all-tokens`},{name:"Skip the confirmation prompt",value:`${packageName} connect revoke-tokens scl_abc123 --my-tokens --yes`},{name:"Output as JSON",value:`${packageName} connect revoke-tokens scl_abc123 --my-tokens --yes --json`}]},openSubcommand={name:"open",aliases:[],description:"Open a connector in the Vercel dashboard",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Open a connector by ID",value:`${packageName} connect open scl_abc123`},{name:"Open a connector by UID",value:`${packageName} connect open slack/my-bot`},{name:"Print the dashboard URL as JSON",value:`${packageName} connect open scl_abc123 --json`}]},attachSubcommand={name:"attach",aliases:[],description:"Attach a Vercel project to a connector for one or more environments",arguments:[{name:"connector",required:!0}],options:[{name:"environment",shorthand:"e",type:[String],argument:"ENVIRONMENT",deprecated:!1,description:"Environments to enable by system name, custom slug, or custom ID. Repeatable and comma-separated (default: production, preview, and development)."},{...projectOption,shorthand:"p",description:"Project name or ID (default: current linked project)"},{name:"triggers",shorthand:null,type:Boolean,deprecated:!1,description:"Also register this project as a trigger destination so the connector forwards verified webhooks to it (max 3 destinations per connector)"},{...gitBranchOption,description:"Target a preview deployment by Git branch name. Omit the option to target production. Cannot be combined with --trigger-environment. Only valid with --triggers."},triggerBranchOption,{name:"trigger-environment",shorthand:null,type:String,argument:"ENVIRONMENT",deprecated:!1,description:"Target a custom environment by slug or stable ID. Cannot be combined with --git-branch. Only valid with --triggers."},{name:"trigger-path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Path on the destination project that receives the forwarded webhook (default: /{service}). Only valid with --triggers."},{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Attach the current project for all system environments",value:`${packageName} connect attach scl_abc123`},{name:"Restrict to specific environments",value:`${packageName} connect attach scl_abc123 -e production -e preview`},{name:"Attach to a custom environment by slug",value:`${packageName} connect attach scl_abc123 -e qa`},{name:"Attach to a custom environment by stable ID",value:`${packageName} connect attach scl_abc123 -e env_qa123`},{name:"Attach a different project by name",value:`${packageName} connect attach slack/my-bot --project my-app`},{name:"Attach and register the project as a trigger destination",value:`${packageName} connect attach scl_abc123 --triggers`},{name:"Attach and register a preview-branch trigger destination",value:`${packageName} connect attach scl_abc123 --triggers --git-branch staging --trigger-path /slack`},{name:"Attach and register a custom-environment trigger destination",value:`${packageName} connect attach scl_abc123 --triggers --trigger-environment qa --trigger-path /slack`},{name:"Non-interactive output as JSON",value:`${packageName} connect attach scl_abc123 --yes --json`}]},detachSubcommand={name:"detach",aliases:[],description:"Detach a Vercel project from a connector",arguments:[{name:"connector",required:!0}],options:[{...projectOption,shorthand:"p",description:"Project name or ID (default: current linked project)"},{...yesOption,description:"Skip the confirmation prompt"},formatOption,jsonOption],examples:[{name:"Detach the current project from a connector",value:`${packageName} connect detach scl_abc123`},{name:"Detach a different project by name",value:`${packageName} connect detach slack/my-bot --project my-app`},{name:"Non-interactive output as JSON",value:`${packageName} connect detach scl_abc123 --yes --json`}]},contactsAddSubcommand={name:"add",aliases:[],description:"Add a phone contact that a connector may message",arguments:[{name:"connector",required:!0}],options:[{name:"phone-number",shorthand:null,type:String,argument:"PHONE",deprecated:!1,description:"Contact phone number in E.164 format (e.g. +12025551234)"},formatOption,jsonOption],examples:[{name:"Add a contact by connector ID",value:`${packageName} connect contacts add scl_abc123 --phone-number +12025551234`},{name:"Add a contact by connector UID",value:`${packageName} connect contacts add linq/support --phone-number +12025551234`},{name:"Output the verification result as JSON",value:`${packageName} connect contacts add scl_abc123 --phone-number +12025551234 --json`}]},contactsSubcommand={name:"contacts",aliases:[],description:"Manage phone contacts for connectors",arguments:[],options:[],subcommands:[contactsAddSubcommand],examples:[{name:"Add a contact",value:`${packageName} connect contacts add scl_abc123 --phone-number +12025551234`}]},discoverSubcommand={name:"discover",aliases:[],description:`Discover services you can create a connector for
10
+
11
+ Matches the query against service names, aliases, keywords, and descriptions.`,arguments:[{name:"query",required:!1}],options:[{name:"category",shorthand:null,type:[String],argument:"SLUG",deprecated:!1,description:`Filter by category. Repeatable. Run \`${packageName} connect categories\` for valid slugs.`},{name:"connection-method",shorthand:null,type:[String],argument:"METHOD",deprecated:!1,description:"Filter by connection method (oauth, api-key, mcp, or a service-specific method). Repeatable."},{name:"target",shorthand:null,type:[String],argument:"TARGET",deprecated:!1,description:"Filter by the product a service exposes (e.g. mcp). Repeatable."},{name:"supports-triggers",shorthand:null,type:Boolean,deprecated:!1,description:"Only show services that can forward webhook triggers"},{name:"limit",shorthand:"n",type:Number,argument:"COUNT",deprecated:!1,description:"Number of services to return (default: 50, max: 500)"},{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"},formatOption,jsonOption],examples:[{name:"Discover services",value:`${packageName} connect discover`},{name:"Search for a service",value:`${packageName} connect discover crm`},{name:"Filter by category",value:`${packageName} connect discover --category ai --category data`},{name:"Find services with an MCP server",value:`${packageName} connect discover --connection-method mcp`},{name:"Find services that support webhook triggers",value:`${packageName} connect discover --supports-triggers`},{name:"Show the next page, using the cursor from the previous output",placeholders:["<CURSOR>"],value:`${packageName} connect discover --next <CURSOR>`},{name:"Output as JSON",value:`${packageName} connect discover --json`}]},categoriesSubcommand={name:"categories",aliases:[],description:"List the categories services are grouped into",arguments:[],options:[formatOption,jsonOption],examples:[{name:"List categories",value:`${packageName} connect categories`},{name:"Output as JSON",value:`${packageName} connect categories --json`}]},connexCommand={name:"connect",aliases:[],description:"Manage connectors",arguments:[],options:[],subcommands:[discoverSubcommand,categoriesSubcommand,createSubcommand2,updateSubcommand2,listSubcommand8,tokenSubcommand2,attachSubcommand,detachSubcommand,removeSubcommand6,revokeTokensSubcommand,openSubcommand,contactsSubcommand],examples:[{name:"Discover services to connect to",value:`${packageName} connect discover`},{name:"Create a Slack app",value:`${packageName} connect create slack`},{name:"List connectors on the current team",value:`${packageName} connect list`},{name:"Get a token",value:`${packageName} connect token scl_abc123`},{name:"Attach the current project to a connector",value:`${packageName} connect attach scl_abc123`},{name:"Open a connector in the dashboard",value:`${packageName} connect open scl_abc123`}],documentation:{label:"Vercel Connect guide",url:"https://vercel.com/kb/guide/vercel-connect"}};var contractCommand={name:"contract",aliases:[],description:"Show contract information for all billing periods",arguments:[],options:[formatOption,jsonOption],examples:[{name:"Show contract information for all billing periods",value:`${packageName} contract`},{name:"Show contract information for all billing periods as JSON",value:`${packageName} contract --json`}]};var addSubcommand4={name:"add",aliases:[],description:"Add a cron job to vercel.json",arguments:[],options:[{name:"path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"The API route path for the cron job (must start with /)"},{name:"schedule",shorthand:null,type:String,argument:"EXPRESSION",deprecated:!1,description:'The cron schedule expression (e.g. "0 10 * * *")'}],examples:[{name:"Add a cron job interactively",value:`${packageName} crons add`},{name:"Add a cron job with options",value:`${packageName} crons add --path /api/cron --schedule "0 10 * * *"`}]},listSubcommand9={name:"list",aliases:["ls"],description:"List all cron jobs for a project",default:!0,arguments:[],options:[formatOption,jsonOption,projectOption],examples:[{name:"List all cron jobs",value:`${packageName} crons list`},{name:"List all cron jobs as JSON",value:`${packageName} crons list --json`}]},runSubcommand={name:"run",aliases:[],description:"Trigger a cron job to run immediately",arguments:[{name:"path",required:!1}],options:[projectOption],examples:[{name:"Trigger a specific cron job",value:`${packageName} crons run /api/cron`}]},cronsCommand={name:"crons",aliases:["cron"],description:"Manage cron jobs for a project",arguments:[],subcommands:[addSubcommand4,listSubcommand9,runSubcommand],options:[],examples:[]};var id="dmni_01k7d0q5w3x8y9z0a1b2c3d4e5",output=[formatOption,jsonOption],project={...projectOption,shorthand:"p"},example=(name,args)=>({name,value:`${packageName} daemons ${args}`}),listSubcommand10={name:"list",aliases:["ls"],default:!0,description:"List all production daemons for a project",arguments:[],options:[project,{...limitOption,shorthand:"n",description:"Max daemons (default: all, max: 100)"},nextCursorOption,...output],examples:[example("List daemons as JSON","list --json")]},scaleSubcommand={name:"scale",aliases:[],description:"Set Production instance counts by region (e.g. iad1=3 fra1=1)",arguments:[{name:"daemon",required:!0},{name:"overrides",required:!1,multiple:!0}],options:[project,{name:"reset",shorthand:null,type:Boolean,deprecated:!1,description:"Remove the overrides and use the configured counts"},...output],examples:[example("Run 3 instances in iad1 and 1 in fra1","scale worker iad1=3 fra1=1"),example("Remove the overrides","scale worker --reset")]},inspectSubcommand6={name:"inspect",aliases:[],description:"Show a Production daemon's configuration and instance readiness",arguments:[{name:"daemon",required:!0}],options:[project,...output],examples:[example("Inspect a daemon","inspect worker"),example("Inspect a daemon in a project","inspect worker --project acme-web"),example("Inspect a daemon as JSON","inspect worker --json")]},instancesListSubcommand={name:"list",aliases:["ls"],description:"List all production daemon instances, for one or all daemons",arguments:[{name:"daemon",required:!1}],options:[project,...output],examples:[example("List the instances of a daemon","instances list worker")]},instancesInspectSubcommand={name:"inspect",aliases:[],description:"Show the details and usage metrics of a daemon instance",arguments:[{name:"instance",required:!0}],options:[project,{...sinceOption,description:"Start of the metrics (default: 1h)"},untilOption,...output],examples:[example("Show a day of usage",`instances inspect ${id} -s 1d`)]},instancesRestartSubcommand={name:"restart",aliases:[],description:"Restart a daemon instance: SIGTERM, then a new container",arguments:[{name:"instance",required:!0}],options:[project,...output],examples:[example("Restart an instance",`instances restart ${id}`)]},instancesSubcommand={name:"instances",aliases:["instance"],description:"Manage daemon instances",arguments:[],subcommands:[instancesListSubcommand,instancesInspectSubcommand,instancesRestartSubcommand],options:[],examples:[]},daemonsCommand={name:"daemons",aliases:["daemon"],description:"Manage daemons for a project",arguments:[],subcommands:[listSubcommand10,inspectSubcommand6,scaleSubcommand,instancesSubcommand],options:[],examples:[]};var curlCommand={name:"curl",aliases:[],summary:"Request deployments with protection bypass",description:"Make curl requests to Vercel deployments with automatic protection bypass.",arguments:[{name:"path",required:!0}],forwardsUnknownOptions:!0,options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"},deploymentOption,protectionBypassOption,{name:"trace",shorthand:null,type:Boolean,deprecated:!1,description:"Capture a session trace for the request and print the trace request id"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"With --trace, emit { response, requestId } as JSON on stdout"}],examples:[{name:"Access a protected deployment URL",value:`${packageName} curl https://your-project-abc123.vercel.app/api/hello`},{name:"Make a GET request to an API endpoint",value:`${packageName} curl /api/hello`},{name:"Make a POST request with data",value:`${packageName} curl /api/users -- --request POST --data '{"name": "John"}'`},{name:"Target a specific deployment by ID",value:`${packageName} curl /api/status --deployment ERiL45NJvP8ghWxgbvCM447bmxwV`},{name:"Target a specific deployment by URL",value:`${packageName} curl /api/status --deployment https://your-project-abc123.vercel.app`},{name:"Use curl options after the separator",value:`${packageName} curl /api/test -- --header "Content-Type: application/json" --request PUT`},{name:"Use with protection bypass secret",placeholders:["<secret>"],value:`${packageName} curl /api/protected --protection-bypass <secret> -- --request GET`},{name:"Capture a session trace for the request",value:`${packageName} curl --trace /api/hello`}]};var projectOption3={...projectOption,shorthand:"p"},listSubcommand11={name:"list",aliases:["ls"],default:!0,description:"List deploy hooks for a project (anyone with a hook URL can trigger a deployment)",arguments:[],options:[formatOption,jsonOption,projectOption3],examples:[{name:"List deploy hooks as JSON",value:`${packageName} deploy-hooks list --json`}]},createSubcommand3={name:"create",aliases:["add"],description:"Create a deploy hook for a Git branch (anyone with the URL can trigger a deployment)",arguments:[{name:"name",required:!1}],options:[{...gitBranchOption,description:"Git branch to deploy when the hook URL is triggered"},{name:"ref",shorthand:"r",type:String,argument:"BRANCH",deprecated:!0,description:"Deprecated alias for `--git-branch`"},projectOption3],examples:[{name:"Create a hook that deploys `main`",value:`${packageName} deploy-hooks create cms-rebuild --git-branch main`}]},removeSubcommand7={name:"delete",aliases:["rm","del","remove"],description:"Delete a deploy hook by id",arguments:[{name:"id",required:!0}],options:[projectOption3,{...yesOption,description:"Skip the confirmation prompt when deleting a deploy hook"}],examples:[]},deployHooksCommand={name:"deploy-hooks",aliases:["deploy-hook"],description:"Manage deploy hooks for Git-triggered builds",arguments:[],subcommands:[listSubcommand11,createSubcommand3,removeSubcommand7],options:[],examples:[]};var doctorCommand={name:"doctor",aliases:[],description:"Check your Vercel CLI setup and show how to fix each problem: the CLI version and install, login, team, project link, vercel.json, and Vercel status",summary:"Check your CLI setup and show how to fix problems",arguments:[],options:[jsonOption],examples:[{name:"Check your setup",value:`${packageName} doctor`},{name:"Read the results as JSON",value:`${packageName} doctor --json`},{name:"List the checks that failed",value:`${packageName} doctor --json | jq -r '.checks[] | select(.status == "failed") | .id'`}],helpSections:[{title:"Notes",body:["No login or linked project is needed. Checks that need one are skipped and say why.","Never prompts, logs in, or links a project.","Each check is OK, Warning, Failed, or Skipped. Exits 0 when the checks ran, even if some failed; with --json, read the status of each check."]}]};var recordTypesHelp={title:"Record Types",body:["A, AAAA, ALIAS, CAA, CNAME, MX, SRV, TXT"]},importSubcommand={name:"import",aliases:[],description:"Import a DNS zone file (see below for examples)",arguments:[{name:"domain",required:!0},{name:"zonefile",required:!0}],options:[],examples:[]},listSubcommand12={name:"list",aliases:["ls"],description:"List DNS entries. Pass a domain to list its records, or omit the argument to list records across every domain on the scope",default:!0,arguments:[{name:"domain",required:!1}],options:[limitOption,nextCursorOption,formatOption,jsonOption],examples:[]},addSubcommand5={name:"add",aliases:[],description:"Add a DNS record",arguments:[{name:"domain",required:!0},{name:"details",required:!0,description:"Record name, type, and value"}],options:[],examples:[],helpSections:[recordTypesHelp]},inspectSubcommand7={name:"inspect",aliases:[],description:"Show a DNS record in full using its ID",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Show a DNS record in full",value:`${packageName} dns inspect rec_1a2b3c4d5e6f`},{name:"Show a DNS record as JSON",value:`${packageName} dns inspect rec_1a2b3c4d5e6f --json`}]},removeSubcommand8={name:"remove",aliases:["rm"],description:"Remove a DNS entry using its ID",arguments:[{name:"id",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing a DNS record"}],examples:[]},updateSubcommand3={name:"update",aliases:[],description:"Update an existing DNS record using its ID",arguments:[{name:"id",required:!0}],options:[{name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"New name of the DNS record ('@' refers to the domain)"},{name:"type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:"New type of the DNS record (A, AAAA, ALIAS, CAA, CNAME, MX, SRV, TXT)"},{name:"value",shorthand:null,type:String,argument:"VALUE",deprecated:!1,description:"New value of the DNS record"},{name:"ttl",shorthand:null,type:Number,argument:"SECONDS",deprecated:!1,description:"New Time to live (TTL) of the DNS record, in seconds"},{name:"mx-priority",shorthand:null,type:Number,argument:"PRIORITY",deprecated:!1,description:"New priority of the MX record"},{name:"srv-priority",shorthand:null,type:Number,argument:"PRIORITY",deprecated:!1,description:"New priority of the SRV record"},{name:"srv-weight",shorthand:null,type:Number,argument:"WEIGHT",deprecated:!1,description:"New weight of the SRV record"},{name:"srv-port",shorthand:null,type:Number,argument:"PORT",deprecated:!1,description:"New port of the SRV record"},{name:"srv-target",shorthand:null,type:String,argument:"TARGET",deprecated:!1,description:"New target of the SRV record"},{name:"comment",shorthand:null,type:String,argument:"TEXT",deprecated:!1,description:"A comment to add context on what this DNS record is for"}],examples:[{name:"Update the value of an A record",value:`${packageName} dns update rec_1a2b3c4d5e6f --value 198.51.100.100`},{name:"Update the name and TTL of a record",value:`${packageName} dns update rec_1a2b3c4d5e6f --name api --ttl 300`},{name:"Update an MX record priority",value:`${packageName} dns update rec_1a2b3c4d5e6f --mx-priority 10`},{name:"Update an SRV record",value:`${packageName} dns update rec_1a2b3c4d5e6f --srv-priority 10 --srv-weight 0 --srv-port 389 --srv-target example.net`}]},dnsCommand={name:"dns",aliases:[],description:"Manage DNS records for your domains",arguments:[],subcommands:[addSubcommand5,importSubcommand,inspectSubcommand7,listSubcommand12,removeSubcommand8,updateSubcommand3],options:[],helpSections:[recordTypesHelp],examples:[{name:"Add an A record for a subdomain",placeholders:["<DOMAIN>","<SUBDOMAIN>","<VALUE>"],value:`${packageName} dns add <DOMAIN> <SUBDOMAIN> A <VALUE>`},{name:"Add an MX record (@ as a name refers to the domain)",placeholders:["<DOMAIN>","<RECORD VALUE>","<PRIORITY>"],value:`${packageName} dns add <DOMAIN> '@' MX <RECORD VALUE> <PRIORITY>`},{name:"Add an SRV record",placeholders:["<DOMAIN>","<NAME>","<PRIORITY>","<WEIGHT>","<PORT>","<TARGET>"],value:`${packageName} dns add <DOMAIN> <NAME> SRV <PRIORITY> <WEIGHT> <PORT> <TARGET>`},{name:"Add a CAA record",placeholders:["<DOMAIN>","<NAME>","<FLAGS>","<TAG>","<VALUE>"],value:`${packageName} dns add <DOMAIN> <NAME> CAA '<FLAGS> <TAG> "<VALUE>"'`},{name:"Update a DNS record value",placeholders:["<ID>","<VALUE>"],value:`${packageName} dns update <ID> --value <VALUE>`},{name:"Update a DNS record name and TTL",placeholders:["<ID>","<NAME>","<SECONDS>"],value:`${packageName} dns update <ID> --name <NAME> --ttl <SECONDS>`},{name:"Show a DNS record in full using its ID",placeholders:["<ID>"],value:`${packageName} dns inspect <ID>`},{name:"Import a Zone file",placeholders:["<DOMAIN>","<FILE>"],value:`${packageName} dns import <DOMAIN> <FILE>`},{name:"Get the next page of DNS records",placeholders:["<CURSOR>"],value:`${packageName} dns list --next <CURSOR>`},{name:"Get the next page for a domain",placeholders:["<DOMAIN>","<CURSOR>"],value:`${packageName} dns list <DOMAIN> --next <CURSOR>`}]};var drainArgument={name:"drain",required:!0},nameOption={name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Name of the drain"},urlOption={name:"url",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Endpoint that receives the data (http or https)"},showFullUrlOption={name:"show-full-url",shorthand:null,type:Boolean,deprecated:!1,description:"Show the full endpoint URL, which can hold credentials (default: host only)"},typeOption={name:"type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:"Data to send: logs, traces, analytics, or speed-insights (required)"},encodingOption={name:"encoding",shorthand:null,type:String,argument:"ENCODING",deprecated:!1,description:"Body encoding: json or ndjson, or json or proto for traces (default: json)"},headerOption={name:"header",shorthand:null,type:[String],argument:"KEY:VALUE",deprecated:!1,description:"Header sent with each request (repeatable)"},secretOption={name:"secret",shorthand:null,type:String,argument:"VALUE",deprecated:!1,description:"Secret that signs each request in the x-vercel-signature header; use - to read it from stdin"},projectsOption={...projectOption,shorthand:"p",description:"Only send data from these projects, comma-separated"},sourceOption={name:"source",shorthand:null,type:[String],argument:"SOURCE",deprecated:!1,description:"Log source to send for logs drains, repeatable: lambda, edge, static, external, build, firewall, or redirect (default: all)"},environmentsOption={...environmentOption,type:[String],description:"Only send data from this environment, for logs drains, repeatable: production or preview (default: all)"},sampleRateOption={name:"sample-rate",shorthand:null,type:Number,argument:"PERCENT",deprecated:!1,description:"Percentage of data to send, from 1 to 100 (default: 100)"},listSubcommand13={name:"list",aliases:["ls"],description:"List drains",default:!0,arguments:[],options:[{...projectOption,shorthand:"p",description:"Only list drains that send data from this project"},{...limitOption,shorthand:"n"},nextCursorOption,jsonOption],examples:[{name:"List drains",value:`${packageName} drains list`},{name:"List drains for a project",value:`${packageName} drains list --project acme-web`},{name:"List drains as JSON",value:`${packageName} drains list --json`}]},inspectSubcommand8={name:"inspect",aliases:[],description:"Show a drain",arguments:[drainArgument],options:[showFullUrlOption,jsonOption],examples:[{name:"Show a drain",value:`${packageName} drains inspect drn_a1b2c3d4e5f6g7h8`},{name:"Show a drain with its full endpoint URL",value:`${packageName} drains inspect drn_a1b2c3d4e5f6g7h8 --show-full-url`},{name:"Show a drain as JSON",value:`${packageName} drains inspect drn_a1b2c3d4e5f6g7h8 --json`}]},createSubcommand4={name:"create",aliases:[],description:"Create a drain",arguments:[],options:[{...nameOption,description:"Name of the drain (required)"},{...urlOption,description:`${urlOption.description} (required)`},typeOption,encodingOption,headerOption,secretOption,projectsOption,sourceOption,environmentsOption,sampleRateOption,jsonOption],examples:[{name:"Send all logs to an endpoint",value:`${packageName} drains create --name acme-logs --type logs --url https://example.com/drain`},{name:"Send production function and edge logs from one project",value:`${packageName} drains create --name acme-web-logs --type logs --url https://example.com/drain --project acme-web,acme-api --environment production --source lambda --source edge`},{name:"Send 10% of traces to an OTLP endpoint with an auth header",placeholders:["<TOKEN>"],value:`${packageName} drains create --name acme-traces --type traces --url https://example.com/v1/traces --header "Authorization: Bearer <TOKEN>" --sample-rate 10`},{name:"Sign requests with a secret read from stdin",value:`${packageName} drains create --name acme-logs --type logs --url https://example.com/drain --secret -`}]},updateSubcommand4={name:"update",aliases:[],description:"Update a drain; omitted options stay unchanged",arguments:[drainArgument],options:[nameOption,urlOption,{...encodingOption,description:"Body encoding: json or ndjson, or json or proto for traces (default: the current encoding)"},{...headerOption,description:"Header sent with each request; replaces all headers"},{...secretOption,description:"Replace the signing secret; use - to read it from stdin"},{...projectsOption,description:"Only send data from these projects, comma-separated; replaces the projects"},{...allOption,description:"Send data from all projects"},{...sourceOption,description:"Log source to send for logs drains, repeatable; replaces the sources"},{...environmentsOption,description:"Only send data from this environment, for logs drains: production or preview; replaces the environments"},{...sampleRateOption,description:"Percentage of data to send, from 1 to 100"},jsonOption],examples:[{name:"Change the endpoint",value:`${packageName} drains update drn_a1b2c3d4e5f6g7h8 --url https://example.com/new-drain`},{name:"Send data from all projects again",value:`${packageName} drains update drn_a1b2c3d4e5f6g7h8 --all`},{name:"Send every request again",value:`${packageName} drains update drn_a1b2c3d4e5f6g7h8 --sample-rate 100`}]},pauseSubcommand2={name:"pause",aliases:[],description:"Pause a drain; data generated while it is paused is not sent",arguments:[drainArgument],options:[{...yesOption,description:"Pause without a confirmation prompt"},jsonOption],examples:[{name:"Pause a drain",value:`${packageName} drains pause drn_a1b2c3d4e5f6g7h8`},{name:"Pause a drain in CI",value:`${packageName} drains pause drn_a1b2c3d4e5f6g7h8 --yes`}]},resumeSubcommand2={name:"resume",aliases:[],description:"Resume a paused drain",arguments:[drainArgument],options:[jsonOption],examples:[{name:"Resume a drain",value:`${packageName} drains resume drn_a1b2c3d4e5f6g7h8`}]},deleteSubcommand={name:"delete",aliases:["rm","del"],description:"Delete a drain",arguments:[drainArgument],options:[{...yesOption,description:"Delete without a confirmation prompt"},jsonOption],examples:[{name:"Delete a drain",value:`${packageName} drains delete drn_a1b2c3d4e5f6g7h8`},{name:"Delete a drain in CI",value:`${packageName} drains delete drn_a1b2c3d4e5f6g7h8 --yes`}]},drainsCommand={name:"drains",aliases:["drain"],description:"Manage drains for logs, traces, analytics, and speed insights",arguments:[],subcommands:[listSubcommand13,inspectSubcommand8,createSubcommand4,updateSubcommand4,pauseSubcommand2,resumeSubcommand2,deleteSubcommand],options:[],examples:[]};var experimentArgument={name:"experiment",required:!0},fileOption={name:"file",shorthand:null,type:String,argument:"FILE",description:"Read the JSON request body from a file or - for stdin",deprecated:!1},rampOption={name:"ramp",shorthand:null,type:Number,argument:"PERCENTAGE",description:"Set the percentage of eligible units enrolled",deprecated:!1},listSubcommand14={name:"list",aliases:["ls"],hidden:!0,description:"List experiments for a project",arguments:[],options:[projectOption,{name:"state",shorthand:null,type:String,argument:"STATE",description:"Filter by draft, running, or completed state",deprecated:!1},formatOption],examples:[{name:"List experiments",value:`${packageName} experiments ls`},{name:"List running experiments as JSON",value:`${packageName} experiments ls --state running --format json`}]},inspectSubcommand9={name:"inspect",aliases:[],hidden:!0,description:"Display experiment settings and lifecycle details",arguments:[experimentArgument],options:[projectOption,formatOption],examples:[{name:"Inspect an experiment",value:`${packageName} experiments inspect checkout-copy`}]},createSubcommand5={name:"create",aliases:[],hidden:!0,description:"Create a draft experiment and its feature flag",arguments:[],options:[projectOption,fileOption,formatOption],examples:[{name:"Create from a JSON file",value:`${packageName} experiments create --file experiment.json`},{name:"Create from stdin",value:`${packageName} experiments create --file -`}]},updateSubcommand5={name:"update",aliases:[],hidden:!0,description:"Update experiment settings from a JSON file",arguments:[experimentArgument],options:[projectOption,fileOption,{name:"restart-analysis",shorthand:null,type:Boolean,description:"Start a new analysis epoch after updating a running experiment",deprecated:!1},{name:"keep-analysis",shorthand:null,type:Boolean,description:"Keep the current analysis epoch after updating a running experiment",deprecated:!1},yesOption,formatOption],examples:[{name:"Update a draft experiment",value:`${packageName} experiments update checkout-copy --file patch.json`},{name:"Update a running experiment without restarting analysis",value:`${packageName} experiments update checkout-copy --file patch.json --keep-analysis`}]},startSubcommand={name:"start",aliases:[],hidden:!0,description:"Start a draft experiment at a ramp percentage",arguments:[experimentArgument],options:[projectOption,rampOption,yesOption,formatOption],examples:[{name:"Start at 10%",value:`${packageName} experiments start checkout-copy --ramp 10`}]},setRampSubcommand={name:"set-ramp",aliases:[],hidden:!0,description:"Change enrollment for a running experiment",arguments:[experimentArgument],options:[projectOption,rampOption,yesOption,formatOption],examples:[{name:"Increase enrollment to 50%",value:`${packageName} experiments set-ramp checkout-copy --ramp 50`}]},restartAnalysisSubcommand={name:"restart-analysis",aliases:[],hidden:!0,description:"Reset the measurement window while preserving enrollment",arguments:[experimentArgument],options:[projectOption,yesOption,formatOption],examples:[{name:"Restart analysis",value:`${packageName} experiments restart-analysis checkout-copy`}]},reseedEnrollmentSubcommand={name:"reseed-enrollment",aliases:[],hidden:!0,description:"Randomize experiment enrollment with a new seed",arguments:[experimentArgument],options:[projectOption,yesOption,formatOption],examples:[{name:"Reseed enrollment",value:`${packageName} experiments reseed-enrollment checkout-copy`}]},returnToDraftSubcommand={name:"return-to-draft",aliases:[],hidden:!0,description:"Return an experiment to draft state",arguments:[experimentArgument],options:[projectOption,{name:"cause",shorthand:null,type:String,argument:"CAUSE",description:"Record manual, guardrail, or srm as the stop cause",deprecated:!1},{name:"reason",shorthand:null,type:String,argument:"TEXT",description:"Record why the experiment returned to draft",deprecated:!1},yesOption,formatOption],examples:[{name:"Return to draft after a guardrail alert",value:`${packageName} experiments return-to-draft checkout-copy --cause guardrail --reason "Error rate increased"`}]},decideSubcommand={name:"decide",aliases:[],hidden:!0,description:"Complete an experiment with a winner or abandon it",arguments:[experimentArgument],options:[projectOption,{name:"winner",shorthand:null,type:String,argument:"VARIANT",description:"Choose the winning variant ID",deprecated:!1},{name:"abandon",shorthand:null,type:Boolean,description:"Complete without a winning variant",deprecated:!1},{name:"rationale",shorthand:null,type:String,argument:"TEXT",description:"Record the decision rationale",deprecated:!1},yesOption,formatOption],examples:[{name:"Choose a winner",value:`${packageName} experiments decide checkout-copy --winner treatment --rationale "Higher conversion"`},{name:"Abandon an experiment",value:`${packageName} experiments decide checkout-copy --abandon --rationale "No meaningful lift"`}]},analyzeSubcommand={name:"analyze",aliases:[],hidden:!0,description:"Analyze primary, secondary, and guardrail metrics",arguments:[experimentArgument],options:[projectOption,{name:"exclude-contaminated",shorthand:null,type:Boolean,description:"Exclude units with conflicting experiment assignments",deprecated:!1},{name:"metric",shorthand:null,type:String,argument:"ALIAS",description:"Use a metric alias as the primary timeseries",deprecated:!1},formatOption],examples:[{name:"Analyze an experiment",value:`${packageName} experiments analyze checkout-copy`},{name:"Return complete results as JSON",value:`${packageName} experiments analyze checkout-copy --format json`}]},diagnoseSubcommand={name:"diagnose",aliases:[],hidden:!0,description:"Show the latest exposures and metric events for an experiment",arguments:[experimentArgument],options:[projectOption,{name:"limit",shorthand:"n",deprecatedShorthand:"l",type:Number,argument:"COUNT",description:"Set how many events to return, from 1 to 200",deprecated:!1},{name:"exposures",shorthand:null,type:Boolean,deprecated:!1,description:"Show exposures; combine with --event to show both"},{name:"event",shorthand:null,deprecatedShorthand:"e",type:[String],argument:"NAME",deprecated:!1,description:"Show this metric event; repeatable"},{name:"unit",shorthand:null,type:String,argument:"VALUE",deprecated:!1,description:"Show only rows for this experiment unit"},{...sinceOption,description:`${sinceOption.description} (default: experiment launch)`},{...untilOption,description:"End time: ISO 8601 or relative; not with --follow (default: now)"},{name:"follow",shorthand:"f",type:Boolean,deprecated:!1,description:"Stream experiment events as they arrive; not with --until"},formatOption],examples:[{name:"Show the latest experiment events",value:`${packageName} experiments diagnose checkout-copy`},{name:"Watch an experiment live",value:`${packageName} experiments diagnose checkout-copy --follow`},{name:"Show two metric events from the last hour",value:`${packageName} experiments diagnose checkout-copy --since 1h --event checkout --event purchase`},{name:"Follow one unit",value:`${packageName} experiments diagnose checkout-copy --unit visitor_abc123`},{name:"Return the latest 200 events as JSON",value:`${packageName} experiments diagnose checkout-copy --limit 200 --format json`}]},openSubcommand2={name:"open",aliases:[],hidden:!0,description:"Open an experiment in the Vercel dashboard",arguments:[{name:"experiment",required:!1}],options:[projectOption,{name:"tab",shorthand:null,type:String,argument:"TAB",description:"Open the configuration or analysis tab",deprecated:!1}],examples:[{name:"Open experiment analysis",value:`${packageName} experiments open checkout-copy --tab analysis`}]},deleteSubcommand2={name:"delete",aliases:["rm","del"],hidden:!0,description:"Delete an experiment and release its feature flag",arguments:[experimentArgument],options:[projectOption,{name:"confirm",shorthand:null,type:String,argument:"EXPERIMENT",description:"Prove the experiment ID or slug for non-interactive deletion",deprecated:!1},formatOption],examples:[{name:"Delete with non-interactive proof",value:`${packageName} experiments delete checkout-copy --confirm checkout-copy`}]},experimentsCommand={name:"experiments",aliases:[],hidden:!0,description:"Manage and analyze feature flag experiments",arguments:[],subcommands:[listSubcommand14,inspectSubcommand9,createSubcommand5,updateSubcommand5,startSubcommand,setRampSubcommand,restartAnalysisSubcommand,reseedEnrollmentSubcommand,returnToDraftSubcommand,decideSubcommand,analyzeSubcommand,diagnoseSubcommand,openSubcommand2,deleteSubcommand2],options:[],examples:[]};var feedbackCommand={name:"feedback",aliases:[],description:"Send bugs, friction, and feature requests to the Vercel team. Describe what happened and what would have helped. You can submit a note, named fields, or both. Do not include secrets or PII in feedback.",arguments:[{name:"note",required:!1}],options:[{name:"field",shorthand:null,deprecatedShorthand:"f",type:[String],argument:"key=value",deprecated:!1,description:"Named field (repeatable). Values are strings; the last value for a key wins."}],examples:[{name:"Describe friction",value:`${packageName} feedback "The error didn't explain how to fix the issue"`},{name:"Read a note from stdin",value:`cat notes.md | ${packageName} feedback - --field topic=deploy`},{name:"Describe an issue with agent context",value:[`${packageName} feedback "The error did not explain the correct command"`,"--field type=bug --field product=cli --field model=gpt-6-astra",'--field task="deploy a preview"','--field expected="Create a Preview deployment"','--field actual="Unknown option: --preview"','--field impact="Time spent finding the correct syntax"'].join(" ")}],helpSections:[{title:"Fields (all optional)",rows:[{syntax:"type",description:"bug | friction | feature"},{syntax:"product",description:"Vercel product the issue is about, e.g. functions, domains, ai-gateway"},{syntax:"model",description:"Model running the harness, e.g. claude-opus-5-5"},{syntax:"task",description:"What you were trying to do"},{syntax:"expected",description:"What you expected to happen"},{syntax:"actual",description:"What happened, including the error text"},{syntax:"impact",description:"What it cost: time, retries, workaround used"}],body:[]}]};var teamLevelOption={name:"team-level",shorthand:null,type:Boolean,deprecated:!1,description:"Operate on the team-level firewall configuration, which applies to every project in the team. No linked project required. Cannot be combined with --project"},overviewSubcommand={name:"overview",aliases:[],description:"Show your project's firewall configuration with the last day of activity: traffic by action, the busiest rules, and alerts raised in the same window",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show firewall configuration and recent activity",value:`${packageName} firewall overview`},{name:"Report the same data as JSON",value:`${packageName} firewall overview --json`}]},statusSubcommand={name:"status",aliases:[],description:"Show firewall configuration in execution order, including managed rulesets and bypass paths",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show firewall status",value:`${packageName} firewall status`}]},diffSubcommand={name:"diff",aliases:[],description:"Show draft changes that have been made but are not yet published to production",arguments:[],options:[projectOption,teamLevelOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show unpublished changes",value:`${packageName} firewall diff`},{name:"Show unpublished team-level changes",value:`${packageName} firewall diff --team-level`}]},publishSubcommand={descriptionTone:"normal",name:"publish",aliases:[],description:"Publish all draft firewall changes to production, making them live immediately",arguments:[],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Publish draft changes",value:`${packageName} firewall publish`},{name:"Publish without confirmation",value:`${packageName} firewall publish --yes`},{name:"Publish team-level draft changes",value:`${packageName} firewall publish --team-level`}]},discardSubcommand={descriptionTone:"normal",name:"discard",aliases:[],description:"Permanently discard all unpublished draft changes, reverting to the current production configuration",arguments:[],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Discard draft changes",value:`${packageName} firewall discard`},{name:"Discard without confirmation",value:`${packageName} firewall discard --yes`}]},systemBypassListSubcommand={name:"list",aliases:["ls"],description:"List all system bypass rules that allow specific IPs to skip firewall checks",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List bypass rules",value:`${packageName} firewall system-bypass list`}]},systemBypassAddSubcommand={descriptionTone:"normal",name:"add",aliases:[],description:"Add a system bypass rule to allow a specific IP address to skip firewall checks. Takes effect immediately (no publish required)",arguments:[{name:"ip",required:!0}],options:[projectOption,{name:"domain",shorthand:null,type:String,deprecated:!1,description:"Scope bypass to a specific domain (default: all domains)"},{name:"notes",shorthand:null,type:String,deprecated:!1,description:"Add a note to the bypass rule"},yesOption],examples:[{name:"Add a bypass for an IP (all domains)",value:`${packageName} firewall system-bypass add 10.0.0.1`},{name:"Add a bypass scoped to a domain",value:`${packageName} firewall system-bypass add 10.0.0.1 --domain example.com`}]},systemBypassRemoveSubcommand={descriptionTone:"normal",name:"remove",aliases:["rm"],description:"Remove a system bypass rule so the IP is no longer exempt from firewall checks. Takes effect immediately (no publish required)",arguments:[{name:"ip",required:!0}],options:[projectOption,{name:"domain",shorthand:null,type:String,deprecated:!1,description:"Scope removal to a specific domain"},yesOption],examples:[{name:"Remove a bypass rule",value:`${packageName} firewall system-bypass remove 10.0.0.1`}]},systemBypassSubcommand={name:"system-bypass",aliases:[],description:"Manage system bypass rules that allow specific IPs to skip firewall checks",arguments:[],subcommands:[systemBypassListSubcommand,systemBypassAddSubcommand,systemBypassRemoveSubcommand],options:[],examples:[{name:"List bypass rules",value:`${packageName} firewall system-bypass list`},{name:"Add a bypass for an IP",value:`${packageName} firewall system-bypass add 10.0.0.1`},{name:"Remove a bypass",value:`${packageName} firewall system-bypass remove 10.0.0.1`}]},ipBlocksListSubcommand={name:"list",aliases:["ls"],description:"List all IP blocking rules, including any unpublished draft changes",arguments:[],options:[projectOption,teamLevelOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List IP blocking rules",value:`${packageName} firewall ip-blocks list`}]},ipBlocksBlockSubcommand={name:"block",aliases:[],description:"Block an IP address or CIDR range from accessing your project. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"ip",required:!0}],options:[projectOption,teamLevelOption,{name:"hostname",shorthand:null,type:String,deprecated:!1,description:"Scope block to a specific hostname (default: * for all hosts)"},{name:"notes",shorthand:null,type:String,deprecated:!1,description:"Add a note to the block rule"},yesOption],examples:[{name:"Block an IP",value:`${packageName} firewall ip-blocks block 1.2.3.4`},{name:"Block a CIDR range with a note",value:`${packageName} firewall ip-blocks block 10.0.0.0/24 --notes "Suspicious range"`},{name:"Block scoped to a hostname",value:`${packageName} firewall ip-blocks block 1.2.3.4 --hostname example.com`}]},ipBlocksUnblockSubcommand={name:"unblock",aliases:["rm"],description:"Remove an IP blocking rule to allow the address to access your project again. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"id-or-ip",required:!0}],options:[projectOption,teamLevelOption,{name:"hostname",shorthand:null,type:String,deprecated:!1,description:"Narrow match to a specific hostname (useful when the same IP is blocked on multiple hosts)"},yesOption],examples:[{name:"Unblock by IP",value:`${packageName} firewall ip-blocks unblock 1.2.3.4`},{name:"Unblock scoped to a hostname",value:`${packageName} firewall ip-blocks unblock 1.2.3.4 --hostname example.com`},{name:"Unblock by rule ID",value:`${packageName} firewall ip-blocks unblock ip_abc123`}]},ipBlocksSubcommand={name:"ip-blocks",aliases:[],description:"Manage IP blocking rules that deny access from specific addresses or ranges",arguments:[],subcommands:[ipBlocksListSubcommand,ipBlocksBlockSubcommand,ipBlocksUnblockSubcommand],options:[],examples:[{name:"List IP blocking rules",value:`${packageName} firewall ip-blocks list`},{name:"Block an IP",value:`${packageName} firewall ip-blocks block 1.2.3.4`},{name:"Unblock an IP",value:`${packageName} firewall ip-blocks unblock 1.2.3.4`}]},rulesListSubcommand2={name:"list",aliases:["ls"],description:"List managed bot rules and custom firewall rules, including unpublished draft changes",arguments:[],options:[projectOption,teamLevelOption,{name:"expand",shorthand:null,deprecatedShorthand:"e",type:Boolean,deprecated:!1,description:"Show full condition details for each rule"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List rules",value:`${packageName} firewall rules list`},{name:"List rules with full condition details",value:`${packageName} firewall rules list --expand`},{name:"List team-level rules",value:`${packageName} firewall rules list --team-level`}]},rulesInspectSubcommand={name:"inspect",aliases:[],description:"Show a custom or managed bot rule, including conditions, action, and rate limit settings",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Inspect a rule by name",value:`${packageName} firewall rules inspect "Block bots"`},{name:"Inspect a rule by ID",value:`${packageName} firewall rules inspect rule_abc123`},{name:"Inspect a managed bot rule",value:`${packageName} firewall rules inspect bot-protection`}]},rulesAddSubcommand2={name:"add",aliases:[],description:"Create a new custom firewall rule using AI, an interactive builder, JSON, or command-line options. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name",required:!1}],options:[projectOption,teamLevelOption,{name:"ai",shorthand:null,type:String,deprecated:!1,description:"Generate rule from natural language (AI-powered)"},{name:"data",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Create rule from a JSON payload"},{name:"json",shorthand:null,type:String,deprecated:!0},{name:"condition",shorthand:null,type:[String],deprecated:!1,description:`Condition as JSON (repeatable). Multiple conditions are AND'd together. Fields: type (required), op (required), value, key (for header/cookie/query), neg (boolean). Example: '{"type":"path","op":"pre","value":"/api"}'.`},{name:"or",shorthand:null,type:Boolean,deprecated:!1,description:"Start a new OR group. Conditions before --or are AND'd, conditions after form a separate group. Example: --condition A --condition B --or --condition C matches (A AND B) OR C."},{name:"action",shorthand:null,type:String,deprecated:!1,description:"Action: deny, challenge, log, bypass, rate_limit, redirect"},{name:"duration",shorthand:null,type:String,deprecated:!1,description:"Action duration: 1m, 5m, 15m, 30m, 1h"},{name:"description",shorthand:null,type:String,deprecated:!1,description:"Rule description (max 256 chars)"},{name:"no-enable",shorthand:null,type:Boolean,deprecated:!1,description:"Add the rule turned off (default: on)"},{name:"disabled",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--no-enable`"},{name:"rate-limit-algo",shorthand:null,type:String,deprecated:!1,description:"Rate limit algorithm: fixed_window, token_bucket (default: fixed_window)"},{name:"rate-limit-window",shorthand:null,type:Number,deprecated:!1,description:"Rate limit window in seconds, 10-3600 (required for rate_limit)"},{name:"rate-limit-requests",shorthand:null,type:Number,deprecated:!1,description:"Rate limit max requests per window, 1-10000000 (required for rate_limit)"},{name:"rate-limit-keys",shorthand:null,type:[String],deprecated:!1,description:"Rate limit keys (repeatable): ip, ja4, header:name (default: ip)"},{name:"rate-limit-action",shorthand:null,type:String,deprecated:!1,description:"Action when rate limit is exceeded: log, deny, challenge, rate_limit (default: rate_limit)"},{name:"redirect-url",shorthand:null,type:String,deprecated:!1,description:"Redirect URL or path"},{name:"redirect-permanent",shorthand:null,type:Boolean,deprecated:!1,description:"Permanent redirect (301) (default: temporary, 307)"},yesOption],examples:[{name:"Interactive mode",value:`${packageName} firewall rules add`},{name:"Create with AI",value:`${packageName} firewall rules add --ai "Rate limit /api to 100 requests per minute by IP"`},{name:"Create from JSON",value:`${packageName} firewall rules add --data '{"name":"Block bots","active":true,"conditionGroup":[{"conditions":[{"type":"user_agent","op":"sub","value":"crawler"}]}],"action":{"mitigate":{"action":"deny"}}}'`},{name:"Create with options",value:`${packageName} firewall rules add "Block bots" --condition '{"type":"user_agent","op":"sub","value":"crawler"}' --action deny --yes`},{name:"Create with OR groups",value:`${packageName} firewall rules add "Block suspicious" --condition '{"type":"user_agent","op":"sub","value":"crawler"}' --or --condition '{"type":"ip_address","op":"eq","value":"1.2.3.4"}' --action deny --yes`}]},rulesEditSubcommand2={name:"update",aliases:["edit"],description:"Update a custom rule or a managed bot rule action using AI, an interactive editor, JSON, or command-line options. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,{name:"ai",shorthand:null,type:String,deprecated:!1,description:"Describe changes using natural language (AI-powered)"},{name:"data",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Replace rule with a JSON payload"},{name:"json",shorthand:null,type:String,deprecated:!0},{name:"condition",shorthand:null,type:[String],deprecated:!1,description:`Replace conditions as JSON (repeatable). Example: '{"type":"path","op":"pre","value":"/api"}'. Fields: type, op, value, key (for header/cookie/query), neg (boolean). Use --or between conditions for OR groups.`},{name:"or",shorthand:null,type:Boolean,deprecated:!1,description:"Start a new OR condition group"},{name:"name",shorthand:null,type:String,deprecated:!1,description:"Rename the rule"},{name:"action",shorthand:null,type:String,deprecated:!1,description:"Change action: deny, challenge, log, bypass, rate_limit, redirect. For the AI Bots ruleset with --category, only allow, log, or deny are supported."},{name:"category",shorthand:null,type:String,argument:"CATEGORY",deprecated:!1,description:"Select a category, such as ai-crawlers or ai-assistants. Only applies to the AI Bots ruleset."},{name:"duration",shorthand:null,type:String,deprecated:!1,description:"Change action duration: 1m, 5m, 15m, 30m, 1h"},{name:"description",shorthand:null,type:String,deprecated:!1,description:'Change description (use "" to clear)'},{name:"enable",shorthand:null,type:Boolean,deprecated:!1,description:"Turn the rule on"},{name:"no-enable",shorthand:null,type:Boolean,deprecated:!1,description:"Turn the rule off"},{name:"enabled",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--enable`"},{name:"disabled",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--no-enable`"},{name:"rate-limit-algo",shorthand:null,type:String,deprecated:!1,description:"Rate limit algorithm: fixed_window, token_bucket"},{name:"rate-limit-window",shorthand:null,type:Number,deprecated:!1,description:"Rate limit window in seconds (10-3600)"},{name:"rate-limit-requests",shorthand:null,type:Number,deprecated:!1,description:"Rate limit max requests per window (1-10000000)"},{name:"rate-limit-keys",shorthand:null,type:[String],deprecated:!1,description:"Rate limit keys (repeatable): ip, ja4, header:name"},{name:"rate-limit-action",shorthand:null,type:String,deprecated:!1,description:"Action when rate limit is exceeded: log, deny, challenge, rate_limit (default: rate_limit)"},{name:"redirect-url",shorthand:null,type:String,deprecated:!1,description:"Redirect URL or path"},{name:"redirect-permanent",shorthand:null,type:Boolean,deprecated:!1,description:"Permanent redirect (301) (default: temporary, 307)"},yesOption],examples:[{name:"Interactive mode",value:`${packageName} firewall rules update "My Rule"`},{name:"Update with AI",value:`${packageName} firewall rules update "My Rule" --ai "Change action to challenge"`},{name:"Change action via options",value:`${packageName} firewall rules update "My Rule" --action challenge --duration 5m --yes`},{name:"Replace conditions",value:`${packageName} firewall rules update "My Rule" --condition '{"type":"path","op":"pre","value":"/new"}' --yes`},{name:"Rename a rule",value:`${packageName} firewall rules update "My Rule" --name "New Name" --yes`},{name:"Deny AI crawlers for a project",value:`${packageName} firewall rules update ai-bots --category ai-crawlers --action deny --project acme-web --yes`},{name:"Allow AI assistants for a project",value:`${packageName} firewall rules update ai-bots --category ai-assistants --action allow --project acme-web --yes`}]},rulesEnableSubcommand={name:"enable",aliases:[],description:"Enable a disabled custom firewall rule. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Enable a rule",value:`${packageName} firewall rules enable "My Rule"`}]},rulesDisableSubcommand={descriptionTone:"normal",name:"disable",aliases:[],description:"Disable a custom firewall rule without removing it. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Disable a rule",value:`${packageName} firewall rules disable "My Rule"`}]},rulesRemoveSubcommand2={name:"remove",aliases:["rm","delete"],description:"Remove a custom firewall rule. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,yesOption],examples:[{name:"Remove a rule",value:`${packageName} firewall rules remove "My Rule" --yes`}]},rulesReorderSubcommand={name:"move",aliases:["reorder"],description:"Change the priority order of a custom firewall rule. Stages a draft change \u2014 run `publish` to make it live",arguments:[{name:"name-or-id",required:!0}],options:[projectOption,teamLevelOption,{name:"position",shorthand:null,type:Number,deprecated:!1,description:"Target position (1-based)"},{name:"first",shorthand:null,type:Boolean,deprecated:!1,description:"Move to first position"},{name:"last",shorthand:null,type:Boolean,deprecated:!1,description:"Move to last position"},yesOption],examples:[{name:"Move to first position",value:`${packageName} firewall rules move "My Rule" --first --yes`},{name:"Move to position 3",value:`${packageName} firewall rules move "My Rule" --position 3 --yes`}]},rulesSubcommand2={name:"rules",aliases:[],description:"Manage custom firewall rules that control how traffic is handled based on conditions",arguments:[],subcommands:[rulesListSubcommand2,rulesInspectSubcommand,rulesAddSubcommand2,rulesEditSubcommand2,rulesEnableSubcommand,rulesDisableSubcommand,rulesRemoveSubcommand2,rulesReorderSubcommand],options:[],examples:[{name:"List rules",value:`${packageName} firewall rules list`},{name:"Inspect a rule",value:`${packageName} firewall rules inspect "Block bots"`},{name:"Create with AI",value:`${packageName} firewall rules add --ai "Rate limit /api to 100 requests per minute by IP"`},{name:"Update with AI",value:`${packageName} firewall rules update "My Rule" --ai "Change action to challenge"`}]},attackModeEnableSubcommand={descriptionTone:"normal",name:"enable",aliases:[],description:"Enable attack mode \u2014 all visitors will be shown a verification challenge before accessing your site. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,{name:"duration",shorthand:null,type:String,deprecated:!1,description:"Duration: 1h, 6h, or 24h (default: 1h)"},yesOption],examples:[{name:"Enable attack mode for 1 hour",value:`${packageName} firewall attack-mode enable`},{name:"Enable attack mode for 24 hours",value:`${packageName} firewall attack-mode enable --duration 24h`}]},attackModeDisableSubcommand={descriptionTone:"normal",name:"disable",aliases:[],description:"Disable attack mode \u2014 visitors will no longer be challenged. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,yesOption],examples:[{name:"Disable attack mode",value:`${packageName} firewall attack-mode disable`}]},attackModeSubcommand={name:"attack-mode",aliases:[],description:"Manage attack mode, which challenges all incoming requests with a verification page",arguments:[],subcommands:[attackModeEnableSubcommand,attackModeDisableSubcommand],options:[],examples:[{name:"Enable attack mode",value:`${packageName} firewall attack-mode enable`},{name:"Disable attack mode",value:`${packageName} firewall attack-mode disable`}]},systemMitigationsPauseSubcommand={descriptionTone:"normal",name:"pause",aliases:[],description:"Pause automatic DDoS protection and system-level traffic filtering for 24 hours. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,yesOption],examples:[{name:"Pause system mitigations",value:`${packageName} firewall system-mitigations pause`}]},systemMitigationsResumeSubcommand={descriptionTone:"normal",name:"resume",aliases:[],description:"Resume automatic DDoS protection and system-level traffic filtering. Takes effect immediately (no publish required)",arguments:[],options:[projectOption,yesOption],examples:[{name:"Resume system mitigations",value:`${packageName} firewall system-mitigations resume`}]},systemMitigationsSubcommand={name:"system-mitigations",aliases:[],description:"Manage automatic DDoS protection and system-level traffic filtering",arguments:[],subcommands:[systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand],options:[],examples:[{name:"Pause system mitigations",value:`${packageName} firewall system-mitigations pause`}]},jsonOutputOption={name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"},alertsListSubcommand={name:"list",aliases:["ls"],description:"List active and resolved firewall alerts for the linked project",arguments:[],options:[projectOption,jsonOutputOption,{...sinceOption,description:`${sinceOption.description} (default: 24h ago)`},untilOption],examples:[{name:"List alerts from the last day",value:`${packageName} firewall alerts list`},{name:"List alerts from the last week",value:`${packageName} firewall alerts list --since 7d`}]},alertsInspectSubcommand={name:"inspect",aliases:[],description:"Show one firewall alert: window, request rate, denied IPs, and top hosts",arguments:[{name:"alertid",required:!0}],options:[projectOption,jsonOutputOption],examples:[{name:"Inspect an alert",value:`${packageName} firewall alerts inspect al_abc123`}]},alertsSubcommand={name:"alerts",aliases:[],description:"List and inspect firewall alerts, including DDoS mitigation episodes",arguments:[],subcommands:[alertsListSubcommand,alertsInspectSubcommand],options:[],examples:[{name:"List alerts",value:`${packageName} firewall alerts list`},{name:"Inspect an alert",value:`${packageName} firewall alerts inspect al_abc123`}]},persistentActionsListSubcommand={name:"list",aliases:["ls"],description:"List persistent firewall actions for the linked project (default: last hour)",arguments:[],options:[projectOption,jsonOutputOption,{...sinceOption,description:`${sinceOption.description} (default: 1h ago)`},untilOption,{name:"limit",shorthand:"n",type:Number,argument:"NUMBER",deprecated:!1,description:"Number of actions to show (default: 10)"}],examples:[{name:"List persistent actions from the last hour",value:`${packageName} firewall persistent-actions list`},{name:"List persistent actions from the last six hours",value:`${packageName} firewall persistent-actions list --since 6h`}]},persistentActionsInspectSubcommand={name:"inspect",aliases:[],description:"Show one persistent firewall action: window and requests by action",arguments:[{name:"ip",required:!0}],options:[projectOption,jsonOutputOption,{name:"host",shorthand:null,type:String,argument:"HOSTNAME",deprecated:!1,description:"Narrow to a hostname"},{name:"action",shorthand:null,type:String,argument:"ACTION",deprecated:!1,description:"Narrow to an action (challenge, deny, log, \u2026)"},{...sinceOption,description:`${sinceOption.description} (default: 1h ago)`},untilOption,{name:"paths",shorthand:null,type:Boolean,deprecated:!1,description:"Include the top request paths"}],examples:[{name:"Inspect a persistent action by IP",value:`${packageName} firewall persistent-actions inspect 51.158.168.18 --host vercel.com --action challenge`},{name:"Include the paths the client requested",value:`${packageName} firewall persistent-actions inspect 51.158.168.18 --paths`}]},persistentActionsSubcommand={name:"persistent-actions",aliases:[],description:"List and inspect persistent firewall actions taken against specific clients",arguments:[],subcommands:[persistentActionsListSubcommand,persistentActionsInspectSubcommand],options:[],examples:[{name:"List persistent actions",value:`${packageName} firewall persistent-actions list`},{name:"Inspect a persistent action",value:`${packageName} firewall persistent-actions inspect 51.158.168.18 --host vercel.com --action challenge`}]},trafficIpOption={name:"ip",shorthand:null,type:String,argument:"IP",deprecated:!1,description:"Narrow to one client IP"},trafficJa4Option={name:"ja4",shorthand:null,type:String,argument:"DIGEST",deprecated:!1,description:"Narrow to one JA4 TLS fingerprint"},trafficAsnOption={name:"asn",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Narrow to one autonomous system name"},trafficUserAgentOption={name:"user-agent",shorthand:null,type:String,argument:"UA",deprecated:!1,description:"Narrow to one user agent"},trafficPathOption={name:"path",shorthand:null,type:String,argument:"PATH",deprecated:!1,description:"Narrow to one request path"},trafficRuleOption={name:"rule",shorthand:null,type:String,argument:"RULE_ID",deprecated:!1,description:"Narrow to one firewall rule id"},trafficHostOption={name:"host",shorthand:null,type:String,argument:"HOSTNAME",deprecated:!1,description:"Narrow to one hostname"},trafficBotOption={name:"bot",shorthand:null,type:String,argument:"BOT",deprecated:!1,description:"Narrow to one verified bot"},trafficUnknownBotOption={name:"unknown-bot",shorthand:null,type:String,argument:"CATEGORY",deprecated:!1,description:"Narrow inspect unknown-bot to one category"},trafficCountryOption={name:"country",shorthand:null,type:String,argument:"CODE",deprecated:!1,description:"Narrow to one country code"},trafficActionOption={name:"action",shorthand:null,type:String,argument:"ACTION",deprecated:!1,description:"Narrow to one firewall action (deny, challenge, log, \u2026)"},trafficQueryOption={name:"query",shorthand:"q",type:[String],argument:"TEXT",deprecated:!1,description:"KQL filter expression (repeatable, ANDed together)"},trafficFilterOption={name:"filter",shorthand:null,type:[String],argument:"EXPR",deprecated:!0,description:"Deprecated alias for `--query`"},trafficTopOption={name:"top",shorthand:null,type:Number,argument:"NUMBER",deprecated:!0,description:"Deprecated alias for `--limit`"},trafficAlertOption={name:"alert",shorthand:null,type:String,argument:"ALERT_ID",deprecated:!1,description:"Scope the window and rule to one alert id from `firewall alerts list`"},trafficSinceOption={...sinceOption,description:`${sinceOption.description} (default: 24h ago)`},trafficDimensionOptions=[trafficIpOption,trafficJa4Option,trafficAsnOption,trafficUserAgentOption,trafficPathOption,trafficRuleOption,trafficHostOption,trafficBotOption,trafficUnknownBotOption,trafficCountryOption,trafficActionOption],trafficListSubcommand={name:"list",aliases:["ls"],description:"Show requests by firewall action, with the top clients behind them",arguments:[],options:[projectOption,jsonOutputOption,trafficSinceOption,untilOption,{...limitOption,description:"Rows per top list (default: 5)"},trafficTopOption,{name:"dimension",shorthand:null,type:[String],argument:"DIM",deprecated:!1,description:"Top list to include: ip, ja4, asn, user-agent, path, rule, host, bot, unknown-bot, country, action (repeatable) (default: ip, ja4, asn, user-agent, path, rule, host, bot)"},trafficAlertOption,...trafficDimensionOptions,trafficQueryOption,trafficFilterOption],examples:[{name:"Show traffic from the last day",value:`${packageName} firewall traffic list`},{name:"Show the last hour, with the top 20 rows per list",value:`${packageName} firewall traffic list --since 1h --limit 20`},{name:"Show which countries and user agents denied traffic came from",value:`${packageName} firewall traffic list --action deny --dimension country --dimension user-agent`}]},trafficInspectSubcommand={name:"inspect",aliases:[],description:"Show one traffic dimension value: its actions over time and what it requested",arguments:[{name:"dimension",required:!0},{name:"value",required:!0}],options:[projectOption,jsonOutputOption,trafficSinceOption,untilOption,{name:"group-by",shorthand:null,type:String,argument:"DIM",deprecated:!1,description:"Dimension to break the traffic down by (default: depends on the inspected dimension)"},{...limitOption,description:"Rows in the breakdown (default: 10)"},trafficTopOption,trafficAlertOption,...trafficDimensionOptions,trafficQueryOption,trafficFilterOption],examples:[{name:"Inspect one client IP",value:`${packageName} firewall traffic inspect ip 1.2.3.4`},{name:"See which IPs a rule acted on",value:`${packageName} firewall traffic inspect rule rule_abc123 --group-by ip`},{name:"Inspect a path over the last week",value:`${packageName} firewall traffic inspect path /api/checkout --since 7d`},{name:"Narrow one client to what the firewall denied",value:`${packageName} firewall traffic inspect ip 1.2.3.4 --action deny`}]},botManagementSubcommand={name:"bot-management",aliases:[],description:"List managed bot rules and top unknown bot traffic",arguments:[],options:[projectOption,jsonOutputOption],examples:[{name:"List managed bot rules and unknown bot traffic",value:`${packageName} firewall bot-management`},{name:"Update Bot Protection",value:`${packageName} firewall rules update bot-protection --action log --yes`}]},trafficSubcommand={name:"traffic",aliases:[],description:"Explore firewall traffic: requests by action, top clients, and one dimension in detail",arguments:[],subcommands:[trafficListSubcommand,trafficInspectSubcommand],options:[],examples:[{name:"Show traffic from the last day",value:`${packageName} firewall traffic list`},{name:"Inspect one client IP",value:`${packageName} firewall traffic inspect ip 1.2.3.4`}]},firewallCommand={name:"firewall",aliases:[],summary:"Manage firewall rules and bypass settings",description:"Manage your project's firewall rules, IP blocks, and system bypass configuration",arguments:[],subcommands:[overviewSubcommand,statusSubcommand,diffSubcommand,publishSubcommand,discardSubcommand,ipBlocksSubcommand,rulesSubcommand2,botManagementSubcommand,systemBypassSubcommand,attackModeSubcommand,systemMitigationsSubcommand,alertsSubcommand,persistentActionsSubcommand,trafficSubcommand],options:[],examples:[{name:"Show firewall traffic",value:`${packageName} firewall traffic list`},{name:"List managed bot rules",value:`${packageName} firewall bot-management`},{name:"List firewall alerts",value:`${packageName} firewall alerts list`},{name:"List persistent firewall actions",value:`${packageName} firewall persistent-actions list`},{name:"Show firewall overview",value:`${packageName} firewall overview`},{name:"Show unpublished changes",value:`${packageName} firewall diff`},{name:"Add a system bypass for an IP",value:`${packageName} firewall system-bypass add 10.0.0.1`}]};var TIMESTAMP_IDENTIFY_HELP="Pass Timestamp values as epoch milliseconds in identify() / evaluation context",FLAG_ATTRIBUTE_TYPES=["string","number","boolean","stringArray","timestamp"];function isFlagAttributeType(type){return FLAG_ATTRIBUTE_TYPES.includes(type)}function formatFlagAttributeTypeList(){return FLAG_ATTRIBUTE_TYPES.join(", ")}function isTimestampAttributeType(type){return type==="timestamp"}function isBucketingAttribute(attribute){return!isTimestampAttributeType(attribute.type)}function getFlagAttributeType(settings,kind,attribute){return settings?.entities.find(entity=>entity.kind===kind)?.attributes.find(candidate=>candidate.key===attribute)?.type}var FLAG_CONDITION_COMPARATORS=["eq","!eq","oneOf","!oneOf","containsAllOf","containsAnyOf","containsNoneOf","startsWith","endsWith","contains","!contains","ex","!ex","gt","gte","lt","lte"],FLAG_CONDITION_LIST_COMPARATORS=["oneOf","!oneOf","containsAllOf","containsAnyOf","containsNoneOf"],FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS=["ex","!ex"];function formatFlagConditionComparatorList(){return FLAG_CONDITION_COMPARATORS.join(", ")}var FLAG_CONDITION_COMPARATOR_LABELS={eq:"is","!eq":"is not",oneOf:"is in","!oneOf":"is not in",containsAllOf:"contains all of",containsAnyOf:"contains any of",containsNoneOf:"contains none of",startsWith:"starts with",endsWith:"ends with",contains:"contains","!contains":"does not contain",ex:"has any value","!ex":"has no value",gt:"is greater than",gte:"is greater than or equal to",lt:"is less than",lte:"is less than or equal to"},TIMESTAMP_FLAG_CONDITION_COMPARATOR_LABELS={gt:"is after",gte:"is at or after",lt:"is before",lte:"is at or before"},LEGACY_FLAG_CONDITION_COMPARATOR_LABELS={notContains:FLAG_CONDITION_COMPARATOR_LABELS["!contains"]};function formatFlagConditionComparator(comparator,options2){let label=(options2?.attributeType==="timestamp"?TIMESTAMP_FLAG_CONDITION_COMPARATOR_LABELS[comparator]:void 0)??FLAG_CONDITION_COMPARATOR_LABELS[comparator]??LEGACY_FLAG_CONDITION_COMPARATOR_LABELS[comparator]??comparator;return options2?.ignoreCase?`${label} (case-insensitive)`:label}var FLAG_EVALUATIONS_GRANULARITIES=["1m","5m","15m","1h","4h","1d"];function isFlagEvaluationsGranularity(value){return FLAG_EVALUATIONS_GRANULARITIES.some(granularity=>granularity===value)}var FLAG_EVALUATIONS_DIMENSIONS={variant:{field:"flagVariant",heading:"Variants"},flag:{field:"flagKey",heading:"Flags"},"sdk-key":{field:"sdkKeyId",heading:"SDK Keys"},client:{field:"flagClientName",heading:"Clients"},environment:{field:"environment",heading:"Environments"},reason:{field:"flagEvaluationReason",heading:"Reasons"},"datafile-revision":{field:"datafileRevision",heading:"Datafile Revisions"}},FLAG_EVALUATIONS_DIMENSION_NAMES=Object.keys(FLAG_EVALUATIONS_DIMENSIONS);function isFlagEvaluationsDimension(value){return FLAG_EVALUATIONS_DIMENSION_NAMES.includes(value)}var staticValueModeNote={title:"Notes",body:["Puts the environment in static value mode: every request receives the chosen variant. Existing splits, rollouts, rules, and targets are kept but not evaluated.","Run `flags targeting enable <flag>` to switch the environment back to targets and rules. Run `flags inspect <flag>` first to see what each environment serves today."]},segmentRuleOperatorDescription=`Valid operators: ${formatFlagConditionComparatorList()}. Timestamp attributes only accept gt (after), gte (at-or-after), lt (before), and lte (at-or-before) with an ISO 8601 date and time (for example 2026-04-16T09:00:00Z) or epoch milliseconds. gt and lt are exclusive; use gte or lte for inclusive boundaries. Date/times without a timezone use this machine's timezone. ${TIMESTAMP_IDENTIFY_HELP}`,listSubcommand15={name:"list",aliases:["ls"],description:"List active feature flags for the current project (use --state archived for archived ones)",default:!0,arguments:[],options:[projectOption,{name:"state",shorthand:null,deprecatedShorthand:"s",type:String,deprecated:!1,description:"Filter flags by state: active or archived (default: active)",argument:"STATE"},{name:"tag",shorthand:null,type:[String],deprecated:!1,description:"Filter flags by tag (repeatable; all must match)",argument:"TAG"},{name:"created-by",shorthand:null,type:String,deprecated:!1,description:"Filter flags by the id of the user or team that created them",argument:"ID"},{name:"maintainer",shorthand:null,type:[String],deprecated:!1,description:"Filter flags by maintainer user id (repeatable; any may match)",argument:"MAINTAINER"},{name:"maintainer-id",shorthand:null,type:[String],deprecated:!0,description:"Deprecated alias for `--maintainer`",argument:"ID"},{name:"limit",shorthand:"n",type:Number,deprecated:!1,description:"Return a single page of at most NUMBER flags (1-100) instead of all",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Show the next page using the cursor from the previous output",argument:"CURSOR"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List all active flags",value:`${packageName} flags list`},{name:"List archived flags",value:`${packageName} flags list --state archived`},{name:"Filter flags by tag, creator, and maintainer",value:`${packageName} flags list --tag checkout --created-by user_123 --maintainer user_456`},{name:"List the first page of 10 flags",value:`${packageName} flags list --limit 10`},{name:"List the next page using the cursor from the previous page",placeholders:["<CURSOR>"],value:`${packageName} flags list --limit 10 --next <CURSOR>`},{name:"List flags as JSON",value:`${packageName} flags list --json`}]},staleSubcommand={name:"stale",aliases:[],description:"List stale feature flags for the current project",hidden:!0,arguments:[],options:[projectOption,{name:"stale-after",shorthand:null,type:String,deprecated:!1,description:"Consider flags stale after this relative day duration (default: 30d, max: 90d)",argument:"DURATION"},{name:"limit",shorthand:"n",type:Number,deprecated:!1,description:"Return one page of at most NUMBER stale flags (default: 50, max: 100)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Show the next page using the cursor from the previous output",argument:"CURSOR"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List stale flags",value:`${packageName} flags stale`},{name:"List flags that have been stale for 14 days",value:`${packageName} flags stale --stale-after 14d`},{name:"List the next page using the cursor from the previous page",placeholders:["<CURSOR>"],value:`${packageName} flags stale --limit 10 --next <CURSOR>`},{name:"List stale flags as JSON",value:`${packageName} flags stale --json`}]},cleanupSubcommand={name:"cleanup",aliases:[],description:"Check whether a feature flag is ready to be removed from code, and recommend next steps",hidden:!0,arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"vercel-agent",shorthand:null,type:Boolean,deprecated:!1,description:"After the checks, have Vercel Agent remove the flag from code and open a draft pull request"},{...forceOption,description:"With --vercel-agent, start a new cleanup even if Vercel Agent already opened a pull request"},{name:"wait",shorthand:null,type:Boolean,deprecated:!1,description:"Block until the Vercel Agent cleanup run finishes (exits 1 if it fails or --timeout is reached first)"},{name:"timeout",shorthand:null,type:String,argument:"DURATION",deprecated:!1,description:"With --wait, how long to wait for the run (default: 15m)"},{...jsonOption,description:"Output the checks, replacement value, and recommendations as JSON"}],examples:[{name:"Check whether a flag is ready for cleanup",value:`${packageName} flags cleanup my-feature`},{name:"Read the checks and recommendations from a script or agent",value:`${packageName} flags cleanup my-feature --json`},{name:"Have Vercel Agent remove the flag from code",value:`${packageName} flags cleanup my-feature --vercel-agent`},{name:"Start Vercel Agent and wait for its pull request",value:`${packageName} flags cleanup my-feature --vercel-agent --wait`}],helpSections:[{title:"Checks",body:["Active flags: not marked permanent; production configuration serves one value and has not changed for 3 days; the latest production deployment includes the flag; every production evaluation in the last 3 days returned the configured value.","Archived flags: not marked permanent; the latest production deployment includes the flag and reports its code default.","Each check is passed, warning (review before cleanup), or unavailable (could not be checked). Projects whose production deployment reports no flags skip the deployment check instead of failing it."]},{title:"Output",body:["`flag` includes its `description` and dashboard `url`. `project.repository` is the connected Git repository (`provider`, `name` as its owner/name path, and `productionBranch`), or null. `ready` is true when every check that could run passed. `replacement` is the value that replaces the flag in code: what production serves for active flags, the code default for archived flags. `run` is the latest Vercel Agent cleanup run, including its pull request once it finishes. `recommendations` lists next steps in order; each has an `action` (remove_from_code, start_agent_cleanup, archive, delete, review, or wait), a `message`, and either `steps` or a `command`. `next` repeats the runnable commands.","Without --vercel-agent the command only reads data and exits 0 whether or not the flag is ready. The checks come from the Vercel API, so they match the cleanup checklist in the dashboard."]},{title:"Cleanup workflow",body:["In a terminal, the command asks whether to clean up manually or with Vercel Agent after the checks. Otherwise, remove the flag from code yourself by following the remove_from_code steps, or pass --vercel-agent to have Vercel Agent do it. Vercel Agent verifies the safe value itself, so it can start even when checks report warnings. Run the command again to see the run and its pull request. Pass --wait to block until the run finishes; it polls only the run, not the checks. If Vercel Agent already opened a pull request, --vercel-agent shows it and asks before starting a new run; pass --force to start one without asking.","Do not archive the flag before the change is merged and deployed to production. Then run the command again: once production no longer uses the flag, it recommends archiving it.","Agents: when `ready` is false, ask a human before removing the flag, passing --vercel-agent, or changing its configuration."]}]},inspectSubcommand10={name:"inspect",aliases:[],description:"Display information about a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,jsonOption],examples:[{name:"Show details of a feature flag",value:`${packageName} flags inspect my-feature-flag`},{name:"Show flag data as JSON",value:`${packageName} flags inspect my-feature-flag --json`}]},versionsListSubcommand={name:"list",aliases:["ls"],default:!0,description:"List version history for a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"Filter versions by changed environment",argument:"ENVIRONMENT"},{name:"limit",shorthand:"n",type:Number,deprecated:!1,description:"Return at most NUMBER versions (1-100)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Show the next page using the cursor from the previous output",argument:"CURSOR"},{name:"cursor",shorthand:null,type:String,deprecated:!0,description:"Pagination cursor from a previous versions response",argument:"CURSOR"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List version history for a feature flag",value:`${packageName} flags versions my-feature-flag`},{name:"List version history using the explicit list subcommand",value:`${packageName} flags versions list my-feature-flag`},{name:"List production version history",value:`${packageName} flags versions my-feature-flag --environment production`},{name:"List the next page of version history",placeholders:["<CURSOR>"],value:`${packageName} flags versions my-feature-flag --limit 10 --next <CURSOR>`},{name:"List version history as JSON",value:`${packageName} flags versions my-feature-flag --json`}]},versionsDiffSubcommand={name:"diff",aliases:[],description:"Show changes introduced by a feature flag version",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"revision",shorthand:null,type:Number,deprecated:!1,description:"Revision number to compare with the previous revision",argument:"NUMBER"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the diff in JSON format"}],examples:[{name:"Show what changed in a revision",value:`${packageName} flags versions diff my-feature-flag --revision 4`},{name:"Show the revision diff as JSON",value:`${packageName} flags versions diff my-feature-flag --revision 4 --json`}]},versionsSubcommand={name:"versions",aliases:[],description:"List and compare version history for a feature flag",arguments:[],subcommands:[versionsListSubcommand,versionsDiffSubcommand],options:[],examples:[{name:"List version history for a feature flag",value:`${packageName} flags versions my-feature-flag`},{name:"Show what changed in a revision",value:`${packageName} flags versions diff my-feature-flag --revision 4`}]},evaluationsSubcommand={name:"evaluations",aliases:[],description:"Display evaluation metrics for a feature flag, or for every flag in the project when no flag is given",arguments:[{name:"flag",required:!1}],options:[projectOption,{...sinceOption,description:`${sinceOption.description} (default: 1h ago)`},untilOption,{name:"granularity",shorthand:null,deprecatedShorthand:"g",type:String,deprecated:!1,description:`Time bucket size: ${FLAG_EVALUATIONS_GRANULARITIES.join(", ")} (default: auto)`,argument:"SIZE"},{name:"group-by",shorthand:null,type:[String],deprecated:!1,description:`Dimensions to group by (repeatable): ${FLAG_EVALUATIONS_DIMENSION_NAMES.join(", ")} (default: variant for one flag, flag for the whole project). Deleted SDK keys are shown as their hash`,argument:"DIM"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show evaluations by variant for the last hour",value:`${packageName} flags evaluations my-feature`},{name:"Show evaluation metrics as JSON",value:`${packageName} flags evaluations my-feature --since 24h --json`},{name:"Show which SDK keys and services evaluate a flag",value:`${packageName} flags evaluations my-feature --group-by sdk-key --group-by client`},{name:"Show which SDK keys are used across every flag in the project",value:`${packageName} flags evaluations --group-by sdk-key --since 24h`},{name:"Check that every client picked up the latest flag change",value:`${packageName} flags evaluations my-feature --group-by datafile-revision --group-by client`}]},createSubcommand6={name:"create",aliases:["add"],description:"Create a new feature flag",arguments:[{name:"slug",required:!0}],options:[projectOption,{name:"kind",shorthand:null,deprecatedShorthand:"k",type:String,deprecated:!1,description:"The type of the flag value (boolean, string, number, or json)",argument:"KIND"},{name:"description",shorthand:null,deprecatedShorthand:"d",type:String,deprecated:!1,description:"Description of the feature flag",argument:"TEXT"},{name:"variant",shorthand:null,deprecatedShorthand:"v",type:[String],deprecated:!1,description:"Variant definition as VALUE[=LABEL] (can be repeated for string, number, and json flags)",argument:"VALUE[=LABEL]"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"Variant ID or value to serve in every environment. Without it, every environment serves the first variant; boolean flags serve Off, and On in development",argument:"VARIANT"},{name:"environment-variant",shorthand:null,type:[String],deprecated:!1,description:"Variant ID or value to serve in one environment as ENVIRONMENT=VARIANT; repeatable, overrides --default-variant",argument:"ENVIRONMENT=VARIANT"}],examples:[{name:"Create a boolean feature flag",value:`${packageName} flags create my-feature`},{name:"Create a boolean feature flag that is Off in every environment",value:`${packageName} flags create my-feature --default-variant false`},{name:"Create a boolean feature flag that is On only in preview",value:`${packageName} flags create my-feature --default-variant false --environment-variant preview=true`},{name:"Create a string feature flag with description",value:`${packageName} flags create my-feature --kind string --description "My feature flag"`},{name:"Create a string feature flag with explicit variants",value:`${packageName} flags create my-feature --kind string --variant control="Welcome back" --variant treatment="New onboarding"`},{name:"Create a JSON feature flag with explicit variants",value:`${packageName} flags create layout-config --kind json --variant '{"theme":"light"}'=Light --variant '{"theme":"dark","sidebar":true}'=Dark`}]},openSubcommand3={name:"open",aliases:[],description:"Open feature flags in the Vercel dashboard",arguments:[{name:"flag",required:!1}],options:[projectOption],examples:[{name:"Open the project feature flags dashboard",value:`${packageName} flags open`},{name:"Open a specific feature flag",value:`${packageName} flags open my-feature-flag`}]},updateSubcommand6={name:"update",aliases:[],description:"Update an existing feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"variant",shorthand:null,deprecatedShorthand:"v",type:String,deprecated:!1,description:"Variant ID or value to update",argument:"VARIANT"},{name:"value",shorthand:null,type:String,deprecated:!1,description:"New variant value",argument:"VALUE"},{name:"label",shorthand:null,deprecatedShorthand:"l",type:String,deprecated:!1,description:"New variant label",argument:"LABEL"},{name:"add-variant",shorthand:null,type:[String],deprecated:!1,description:"Add a variant as VALUE[=LABEL] (repeatable for string, number, and json flags)",argument:"VALUE[=LABEL]"},{name:"remove-variant",shorthand:null,type:[String],deprecated:!1,description:"Remove a variant by ID or value (repeatable)",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"},{...yesOption,description:"Skip the confirmation prompt when removing a variant"}],examples:[{name:"Update a string variant value and label",value:`${packageName} flags update my-feature --variant control --value welcome-back --label "Welcome back"`},{name:"Update a variant with a revision message",value:`${packageName} flags update my-feature --variant control --label "Control" --message "Rename control variant"`},{name:"Rename a boolean variant label",value:`${packageName} flags update my-feature --variant false --label "Disabled"`},{name:"Add a new variant",value:`${packageName} flags update my-feature --add-variant treatment="New onboarding"`},{name:"Remove variants by value or ID",value:`${packageName} flags update my-feature --remove-variant control --remove-variant var_123 --yes`}]},setSubcommand2={name:"set",aliases:[],description:"Set the served variant for a feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to set the variant in (production, preview, or development)",argument:"ENVIRONMENT"},{name:"variant",shorthand:null,deprecatedShorthand:"v",type:String,deprecated:!1,description:"The variant ID or value to serve",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Set a string variant in production",value:`${packageName} flags set welcome-message --environment production --variant control`},{name:"Set a number variant in preview",value:`${packageName} flags set bucket-size -e preview --variant 20`},{name:"Set a boolean flag to true in development",value:`${packageName} flags set my-feature -e development --variant true`}],helpSections:[{title:"Notes",body:["Puts the environment in static value mode. The existing default variant, split or rollout, rules, and targets are preserved but not evaluated.",`Run \`${packageName} flags targeting enable <FLAG>\` to resume targeting with the saved configuration.`]}]},targetingEnableSubcommand={name:"enable",aliases:[],description:"Enable targeting for a feature flag environment; keeps the current fallthrough unless --default-variant is set",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to enable targeting in (production, preview, or development)",argument:"ENVIRONMENT"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"Replace the fallthrough with this variant when no targeting rules match",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Enable targeting and keep the current fallthrough",value:`${packageName} flags targeting enable my-feature --environment production`},{name:"Enable targeting with a static default Off",value:`${packageName} flags targeting enable my-feature --environment production --default-variant false`},{name:"Enable targeting with a string default",value:`${packageName} flags targeting enable welcome-message -e production --default-variant control`}]},targetingSubcommand={name:"targeting",aliases:[],description:"Manage targeting for a feature flag environment",arguments:[],subcommands:[targetingEnableSubcommand],options:[],examples:[{name:"Enable targeting and keep the current fallthrough",value:`${packageName} flags targeting enable my-feature --environment production`}]},useTargetingSubcommand={...targetingEnableSubcommand,name:"use-targeting",hidden:!0},splitSubcommand={name:"split",aliases:[],description:"Configure a weighted split for a feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to configure (production, preview, or development)",argument:"ENVIRONMENT"},{name:"by",shorthand:null,type:String,deprecated:!1,description:"Entity attribute used for bucketing, in the form entity.attribute",argument:"ENTITY.ATTRIBUTE"},{name:"weight",shorthand:null,deprecatedShorthand:"w",type:[String],deprecated:!1,description:"Variant weight ratio as VARIANT=WEIGHT. Repeat for each variant; values are normalized and 0 receives no traffic.",argument:"VARIANT=WEIGHT"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"The fallback variant to serve when the split attribute is unavailable",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Split a boolean flag in production",value:`${packageName} flags split redesigned-checkout --environment production --by user.userId --weight false=95 --weight true=5`},{name:"Split a string flag with a fallback variant",value:`${packageName} flags split welcome-message -e production --by user.userId --default-variant control --weight control=90 --weight treatment=10`},{name:"Exclude a variant from the split",value:`${packageName} flags split checkout-copy -e preview --by user.userId --default-variant control --weight control=50 --weight treatment=50 --weight legacy=0`}]},rolloutFinalPercentageOption={name:"final-percentage",shorthand:null,type:String,deprecated:!1,description:"Percentage served indefinitely after the last stage (0\u2013100, up to 3 decimal places). Preserves the current value when omitted (default: 100 for new rollouts).",argument:"PERCENTAGE"},rolloutSubcommand={name:"rollout",aliases:[],description:"Configure a progressive rollout for a feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to configure (production, preview, or development)",argument:"ENVIRONMENT"},{name:"from-variant",shorthand:null,type:String,deprecated:!1,description:"The variant to roll away from (default: false for boolean flags)",argument:"VARIANT"},{name:"to-variant",shorthand:null,type:String,deprecated:!1,description:"The variant to roll towards (default: true for boolean flags)",argument:"VARIANT"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"The fallback variant to serve when the rollout attribute is unavailable",argument:"VARIANT"},{name:"by",shorthand:null,type:String,deprecated:!1,description:"Entity attribute used for bucketing, in the form entity.attribute",argument:"ENTITY.ATTRIBUTE"},{name:"stage",shorthand:null,deprecatedShorthand:"s",type:[String],deprecated:!1,description:'Add a rollout stage as PERCENTAGE,DURATION (e.g. "5,6h"). Can be specified multiple times. Ends at --final-percentage (default: 100%).',argument:"PERCENTAGE,DURATION"},rolloutFinalPercentageOption,{name:"start",shorthand:null,type:String,deprecated:!1,description:'When the rollout should start: "now", a future relative time like "1h", or an ISO 8601 datetime',argument:"TIME"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Start a progressive boolean rollout in production",value:`${packageName} flags rollout redesigned-checkout --environment production --by user.userId --stage 5,6h --stage 10,6h --stage 25,12h --stage 50,1d`},{name:"Finish a rollout at 50%",value:`${packageName} flags rollout redesigned-checkout -e production --by user.userId --stage 5,6h --stage 25,12h --final-percentage 50`},{name:"Schedule a string-flag rollout for later",value:`${packageName} flags rollout welcome-message -e production --by user.userId --from-variant control --to-variant treatment --default-variant control --stage 10,2h --stage 50,12h --start 2026-04-16T09:00:00Z`},{name:"Update only the rollout schedule while keeping current variants",value:`${packageName} flags rollout redesigned-checkout -e production --stage 5,30m --stage 25,2h --stage 50,8h`}]},ruleConditionDescription=`Rule condition as ENTITY.ATTRIBUTE:OPERATOR:VALUE or segment:OPERATOR:SEGMENT. Repeatable; semicolon-separated conditions are also supported. ${segmentRuleOperatorDescription}`,ruleOutcomeOptions=[{name:"variant",shorthand:null,deprecatedShorthand:"v",type:String,deprecated:!1,description:"Variant ID or value to serve when the rule matches",argument:"VARIANT"},{name:"by",shorthand:null,type:String,deprecated:!1,description:"Entity attribute used for split or rollout bucketing, in the form entity.attribute",argument:"ENTITY.ATTRIBUTE"},{name:"weight",shorthand:null,deprecatedShorthand:"w",type:[String],deprecated:!1,description:"Split weight ratio as VARIANT=WEIGHT. Repeat for each variant.",argument:"VARIANT=WEIGHT"},{name:"default-variant",shorthand:null,type:String,deprecated:!1,description:"Fallback variant for split or rollout outcomes when the bucketing attribute is unavailable",argument:"VARIANT"},{name:"from-variant",shorthand:null,type:String,deprecated:!1,description:"Variant to roll away from for rollout outcomes",argument:"VARIANT"},{name:"to-variant",shorthand:null,type:String,deprecated:!1,description:"Variant to roll towards for rollout outcomes",argument:"VARIANT"},{name:"stage",shorthand:null,deprecatedShorthand:"s",type:[String],deprecated:!1,description:"Add a rollout stage as PERCENTAGE,DURATION. Can be specified multiple times.",argument:"PERCENTAGE,DURATION"},rolloutFinalPercentageOption,{name:"start",shorthand:null,type:String,deprecated:!1,description:'When the rollout should start: "now", a relative time like "1h", or an ISO 8601 datetime',argument:"TIME"}],ruleMessageOption={name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"},rulesListSubcommand3={name:"list",aliases:["ls"],description:"List conditional rules for a feature flag environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to list rules for (production, preview, or development)",argument:"ENVIRONMENT"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List production rules for a flag",value:`${packageName} flags rules list my-feature --environment production`},{name:"List rules as JSON",value:`${packageName} flags rules list my-feature -e production --json`}]},rulesAddSubcommand3={name:"add",aliases:[],description:"Add a conditional rule to a feature flag environment",arguments:[{name:"flag",required:!0}],options:[{...projectOption,shorthand:null},{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to add the rule to (production, preview, or development)",argument:"ENVIRONMENT"},{name:"condition",shorthand:null,deprecatedShorthand:"c",type:[String],deprecated:!1,description:ruleConditionDescription,argument:"CONDITION"},...ruleOutcomeOptions,{name:"position",shorthand:null,deprecatedShorthand:"p",type:Number,deprecated:!1,description:"1-based position for the new rule (default: last)",argument:"N"},ruleMessageOption],examples:[{name:"Add a variant rule",value:`${packageName} flags rules add my-feature --environment production --condition user.plan:eq:pro --variant on`},{name:"Add a segment rule",value:`${packageName} flags rules add my-feature -e production --condition segment:eq:seg_beta123 --variant on`},{name:"Add a rule with a timestamp condition",value:`${packageName} flags rules add my-feature -e production --condition user.signupAt:after:2026-04-16T09:00:00Z --variant on`},{name:"Add a split rule at the top",value:`${packageName} flags rules add my-feature -e production --condition user.plan:eq:pro --by user.userId --weight false=90 --weight true=10 --position 1`}]},rulesUpdateSubcommand={name:"update",aliases:[],description:"Update a conditional rule in a feature flag environment",arguments:[{name:"flag",required:!0},{name:"rule",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment containing the rule (production, preview, or development)",argument:"ENVIRONMENT"},{name:"condition",shorthand:null,deprecatedShorthand:"c",type:[String],deprecated:!1,description:"Replace rule conditions. "+ruleConditionDescription,argument:"CONDITION"},...ruleOutcomeOptions,ruleMessageOption],examples:[{name:"Replace rule conditions",value:`${packageName} flags rules update my-feature rule_123 --environment production --condition user.plan:eq:enterprise`},{name:"Update a rule outcome",value:`${packageName} flags rules update my-feature rule_123 -e production --variant off`}]},rulesRemoveSubcommand3={name:"remove",aliases:["rm"],description:"Remove a conditional rule from a feature flag environment",arguments:[{name:"flag",required:!0},{name:"rule",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment containing the rule (production, preview, or development)",argument:"ENVIRONMENT"},ruleMessageOption],examples:[{name:"Remove a rule",value:`${packageName} flags rules remove my-feature rule_123 --environment production`}]},rulesMoveSubcommand={name:"move",aliases:[],description:"Move a conditional rule within a feature flag environment",arguments:[{name:"flag",required:!0},{name:"rule",required:!0}],options:[{...projectOption,shorthand:null},{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment containing the rule (production, preview, or development)",argument:"ENVIRONMENT"},{name:"position",shorthand:null,deprecatedShorthand:"p",type:Number,deprecated:!1,description:"1-based destination position for the rule",argument:"N"},ruleMessageOption],examples:[{name:"Move a rule to the top",value:`${packageName} flags rules move my-feature rule_123 --environment production --position 1`}]},rulesSubcommand3={name:"rules",aliases:[],description:"Manage conditional rules for feature flags",arguments:[],subcommands:[rulesListSubcommand3,rulesAddSubcommand3,rulesUpdateSubcommand,rulesRemoveSubcommand3,rulesMoveSubcommand],options:[],examples:[]},targetArgument={name:"entity.attribute=value",required:!0,multiple:!0},targetEnvironmentOption={name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to change (production, preview, or development)",argument:"ENVIRONMENT"},targetsListSubcommand={name:"list",aliases:["ls"],description:"List the direct targets of a feature flag environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{...targetEnvironmentOption,description:"The environment to list targets for (production, preview, or development)"},jsonOption],examples:[{name:"List production targets for a flag",value:`${packageName} flags targets list my-feature --environment production`},{name:"List targets as JSON",value:`${packageName} flags targets list my-feature -e production --json`}]},targetsAddSubcommand={name:"add",aliases:[],description:"Serve a variant to specific entity values in a feature flag environment. A value already targeted by another variant moves to the new one. Append |LABEL to a value to also set its label.",arguments:[{name:"flag",required:!0},targetArgument],options:[projectOption,targetEnvironmentOption,{name:"variant",shorthand:null,deprecatedShorthand:"v",type:String,deprecated:!1,description:"Variant ID or value to serve to the targets (default: true for boolean flags)",argument:"VARIANT"},ruleMessageOption,jsonOption],examples:[{name:"Serve On to two users in production",value:`${packageName} flags targets add my-feature --environment production user.id=user_123 user.id=user_456`},{name:"Serve a string variant to a team",value:`${packageName} flags targets add welcome-message -e preview --variant treatment team.id=team_789`},{name:"Add a target and label it in one step",value:`${packageName} flags targets add my-feature -e production "team.id=team_789|Vercel"`}]},targetsRemoveSubcommand={name:"remove",aliases:["rm"],description:"Remove direct targets from a feature flag environment",arguments:[{name:"flag",required:!0},targetArgument],options:[projectOption,targetEnvironmentOption,ruleMessageOption,jsonOption],examples:[{name:"Stop targeting a user in production",value:`${packageName} flags targets remove my-feature --environment production user.id=user_123`}]},targetsSubcommand={name:"targets",aliases:[],description:"Manage direct targets: entity values that always receive a fixed variant",arguments:[],subcommands:[targetsListSubcommand,targetsAddSubcommand,targetsRemoveSubcommand],options:[],examples:[]},removeSubcommand9={name:"delete",aliases:["rm","del","remove"],description:"Delete a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when deleting a flag"}],examples:[{name:"Delete a feature flag",value:`${packageName} flags delete my-feature-flag`},{name:"Delete without confirmation",value:`${packageName} flags delete my-feature-flag --yes`}],helpSections:[{title:"Notes",body:["Only archived flags can be deleted. Run `flags archive <flag>` first.","Deletion is permanent. Prefer leaving flags archived; `flags unarchive <flag>` restores an archived flag."]}]},archiveSubcommand={name:"archive",aliases:[],description:"Archive a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when archiving a flag"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Attach a revision message when archiving the flag",argument:"TEXT"}],examples:[{name:"Archive a feature flag",value:`${packageName} flags archive my-feature-flag`},{name:"Archive without confirmation",value:`${packageName} flags archive my-feature-flag --yes`},{name:"Archive a flag with a revision message",value:`${packageName} flags archive my-feature-flag --message "Removed from code"`}],helpSections:[{title:"Notes",body:["Archived flags evaluate to the default value in code. Remove the flag from your code and deploy to every environment before archiving.","The command reports evaluations from the last 3 days before asking for confirmation. Clients on @vercel/flags-core older than 1.6.0 do not report evaluations, so zero does not prove the flag is unused. For a longer window, run `flags evaluations <flag> --since 30d` (the default is the last hour).","`flags unarchive <flag>` restores the flag with its configuration and history."]}]},unarchiveSubcommand={name:"unarchive",aliases:[],description:"Unarchive a feature flag",arguments:[{name:"flag",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when unarchiving a flag"}],examples:[{name:"Unarchive a feature flag",value:`${packageName} flags unarchive my-feature-flag`},{name:"Unarchive without confirmation",value:`${packageName} flags unarchive my-feature-flag --yes`}]},disableSubcommand={name:"disable",aliases:[],description:"Shortcut to serve the false variant of a boolean feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to disable the flag in (production, preview, or development)",argument:"ENVIRONMENT"},{name:"variant",shorthand:null,deprecatedShorthand:"v",type:String,deprecated:!1,description:"The variant ID or value to serve while the flag is disabled",argument:"VARIANT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Disable a flag in production",value:`${packageName} flags disable my-feature --environment production`},{name:"Disable a flag with a specific variant",value:`${packageName} flags disable my-feature -e production --variant false`},{name:"Disable a flag with a revision message",value:`${packageName} flags disable my-feature -e production --message "Pause rollout in production"`}],helpSections:[staticValueModeNote]},enableSubcommand2={name:"enable",aliases:[],description:"Shortcut to serve the true variant of a boolean feature flag in an environment",arguments:[{name:"flag",required:!0}],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to enable the flag in (production, preview, or development)",argument:"ENVIRONMENT"},{name:"message",shorthand:null,type:String,deprecated:!1,description:"Optional revision message for the update",argument:"TEXT"}],examples:[{name:"Enable a flag in production",value:`${packageName} flags enable my-feature --environment production`},{name:"Enable a flag with a revision message",value:`${packageName} flags enable my-feature --environment production --message "Resume production rollout"`}],helpSections:[staticValueModeNote]},segmentsListSubcommand={name:"list",aliases:["ls"],description:"List all feature flag segments for the current project",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List all segments",value:`${packageName} flags segments list`},{name:"List segments as JSON",value:`${packageName} flags segments list --json`}]},segmentsInspectSubcommand={name:"inspect",aliases:[],description:"Display information about a feature flag segment",arguments:[{name:"segment",required:!0}],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"Show details of a segment",value:`${packageName} flags segments inspect beta-users`},{name:"Show segment data as JSON",value:`${packageName} flags segments inspect beta-users --json`}]},segmentsCreateSubcommand={name:"create",aliases:["add"],description:"Create a feature flag segment",arguments:[{name:"slug",required:!0}],options:[projectOption,{name:"label",shorthand:null,deprecatedShorthand:"l",type:String,deprecated:!1,description:"Human-readable label for the segment",argument:"LABEL"},{name:"description",shorthand:null,deprecatedShorthand:"d",type:String,deprecated:!1,description:"Description of the segment",argument:"TEXT"},{name:"hint",shorthand:null,type:String,deprecated:!1,description:"Hint describing who belongs in the segment",argument:"TEXT"},{name:"data",shorthand:null,type:String,deprecated:!1,description:"Full segment data JSON with rules, include, and exclude fields",argument:"JSON"},{name:"add",shorthand:null,deprecatedShorthand:"a",type:[String],deprecated:!1,description:`Add include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, or rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE; repeatable. ${segmentRuleOperatorDescription}`,argument:"TARGET"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the created segment as JSON"}],examples:[{name:"Create a segment with included users",value:`${packageName} flags segments create beta-users --label "Beta users" --add include:user.id=user_123 --add include:user.id=user_456`},{name:"Create a segment using a timestamp condition",value:`${packageName} flags segments create early-adopters --add rule:user.signupAt:before:2026-04-16T09:00:00Z`},{name:"Create a segment from full JSON data",value:`${packageName} flags segments create staff --label Staff --data '{"rules":[],"include":{"user":{"email":[{"value":"me@company.com"}]}},"exclude":{}}'`}]},segmentsUpdateSubcommand={name:"update",aliases:[],description:"Update a feature flag segment",arguments:[{name:"segment",required:!0}],options:[projectOption,{name:"label",shorthand:null,deprecatedShorthand:"l",type:String,deprecated:!1,description:"New human-readable label for the segment",argument:"LABEL"},{name:"description",shorthand:null,deprecatedShorthand:"d",type:String,deprecated:!1,description:"New description for the segment",argument:"TEXT"},{name:"hint",shorthand:null,type:String,deprecated:!1,description:"New hint for the segment",argument:"TEXT"},{name:"data",shorthand:null,type:String,deprecated:!1,description:"Replace the full segment data JSON with rules, include, and exclude fields",argument:"JSON"},{name:"add",shorthand:null,deprecatedShorthand:"a",type:[String],deprecated:!1,description:`Add include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, or rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE; repeatable. ${segmentRuleOperatorDescription}`,argument:"TARGET"},{name:"remove",shorthand:null,type:[String],deprecated:!1,description:`Remove include:ENTITY.ATTRIBUTE=VALUE, exclude:ENTITY.ATTRIBUTE=VALUE, rule:ENTITY.ATTRIBUTE:OPERATOR:VALUE, or rule:RULE_ID; repeatable. ${segmentRuleOperatorDescription}`,argument:"TARGET"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the updated segment as JSON"}],examples:[{name:"Rename a segment",value:`${packageName} flags segments update beta-users --label "Early access users"`},{name:"Add and remove included users",value:`${packageName} flags segments update beta-users --add include:user.id=user_789 --remove include:user.id=user_123`},{name:"Add and remove rules",value:`${packageName} flags segments update enterprise-users --add rule:user.email:ends-with:@company.com --remove rule:user.plan:eq:pro`},{name:"Add a timestamp condition",value:`${packageName} flags segments update early-adopters --add rule:user.signupAt:before:2026-04-16T09:00:00Z`}]},segmentsRemoveSubcommand={name:"delete",aliases:["rm","del","remove"],description:"Delete a feature flag segment",arguments:[{name:"segment",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when deleting a segment"}],examples:[{name:"Delete a segment",value:`${packageName} flags segments delete beta-users`},{name:"Delete without confirmation",value:`${packageName} flags segments delete beta-users --yes`}]},segmentsSubcommand={name:"segments",aliases:[],description:"Manage feature flag segments",arguments:[],subcommands:[segmentsListSubcommand,segmentsInspectSubcommand,segmentsCreateSubcommand,segmentsUpdateSubcommand,segmentsRemoveSubcommand],options:[],examples:[]},attributeTypeDescription=`Valid types: ${formatFlagAttributeTypeList()}`,entitiesListSubcommand={name:"list",aliases:["ls"],description:"List the feature flag entities for the current project",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List all entities",value:`${packageName} flags entities list`},{name:"List entities as JSON",value:`${packageName} flags entities list --json`}]},entitiesCreateSubcommand={name:"create",aliases:["add"],description:"Create a feature flag entity",arguments:[{name:"kind",required:!0}],options:[projectOption,{name:"label",shorthand:null,deprecatedShorthand:"l",type:String,deprecated:!1,description:"Human-readable label for the entity",argument:"LABEL"},{name:"attribute",shorthand:null,deprecatedShorthand:"a",type:[String],deprecated:!1,description:`Add an attribute as KEY:TYPE; repeatable. ${attributeTypeDescription}`,argument:"KEY:TYPE"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the created entity as JSON"}],examples:[{name:"Create a user entity with attributes",value:`${packageName} flags entities create user --label User --attribute id:string --attribute plan:string`},{name:"Create a team entity with a string array attribute",value:`${packageName} flags entities create team --attribute id:string --attribute features:stringArray`}]},entitiesUpdateSubcommand={name:"update",aliases:[],description:"Update a feature flag entity and its attributes",arguments:[{name:"kind",required:!0}],options:[projectOption,{name:"label",shorthand:null,deprecatedShorthand:"l",type:String,deprecated:!1,description:"New human-readable label for the entity",argument:"LABEL"},{name:"add-attribute",shorthand:null,type:[String],deprecated:!1,description:`Add an attribute as KEY:TYPE; repeatable. ${attributeTypeDescription}`,argument:"KEY:TYPE"},{name:"remove-attribute",shorthand:null,type:[String],deprecated:!1,description:"Remove an attribute by key; repeatable. Fails when flags or segments still reference it",argument:"KEY"},{name:"set-attribute-type",shorthand:null,type:[String],deprecated:!1,description:`Change the type of an attribute as KEY:TYPE; repeatable. Changing the type also removes existing value labels. Fails when flags or segments still reference it. ${attributeTypeDescription}`,argument:"KEY:TYPE"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the updated entity as JSON"}],examples:[{name:"Change the entity label",value:`${packageName} flags entities update user --label "End user"`},{name:"Add and remove attributes",value:`${packageName} flags entities update user --add-attribute email:string --remove-attribute legacyId`},{name:"Change an attribute type",value:`${packageName} flags entities update user --set-attribute-type signupAt:timestamp`}]},entitiesRemoveSubcommand={name:"delete",aliases:["rm","del","remove"],description:"Delete a feature flag entity. Fails when flags or segments still reference it",arguments:[{name:"kind",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when deleting an entity"}],examples:[{name:"Delete an entity",value:`${packageName} flags entities delete device`},{name:"Delete without confirmation",value:`${packageName} flags entities delete device --yes`}]},labelOptions=[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output results and errors as JSON"}],labelsListSubcommand={name:"ls",aliases:["list"],description:"Discover label lists or list the labels for an attribute",arguments:[{name:"ENTITY.ATTRIBUTE",required:!1}],options:[...labelOptions,{name:"limit",shorthand:"n",type:Number,deprecated:!1,description:"Return at most NUMBER lists or labels (default: 20)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Continue from the cursor returned by the previous page",argument:"CURSOR"}],examples:[{name:"Discover label lists",value:`${packageName} flags labels ls`},{name:"List the first page of plan labels",value:`${packageName} flags labels ls user.plan`},{name:"Continue listing plan labels",placeholders:["<CURSOR>"],value:`${packageName} flags labels ls user.plan --limit 50 --next <CURSOR>`}]},labelsSetSubcommand={name:"set",aliases:[],description:"Create or replace one attribute value label",arguments:[{name:"ENTITY.ATTRIBUTE",required:!0},{name:"value",required:!0},{name:"label",required:!0}],options:labelOptions,examples:[{name:"Label a plan",value:`${packageName} flags labels set user.plan pro "Pro Plan"`}]},labelsRemoveSubcommand={name:"remove",aliases:["rm"],description:"Remove a value label without changing targeting; ignore missing labels",arguments:[{name:"ENTITY.ATTRIBUTE",required:!0},{name:"value",required:!0}],options:labelOptions,examples:[{name:"Remove a plan label",value:`${packageName} flags labels remove user.plan pro`}]},labelsApplySubcommand={name:"apply",aliases:[],description:"Set and remove multiple attribute value labels",arguments:[{name:"ENTITY.ATTRIBUTE",required:!0}],options:[...labelOptions,{name:"set",shorthand:null,type:[String],deprecated:!1,description:"Create or replace a value label as VALUE=LABEL; repeatable",argument:"VALUE=LABEL"},{name:"remove",shorthand:null,type:[String],deprecated:!1,description:"Remove a value label; repeatable; ignore missing labels",argument:"VALUE"},{name:"data",shorthand:null,type:String,deprecated:!1,description:"Apply label operations from a JSON array; cannot combine with --set or --remove",argument:"JSON"}],examples:[{name:"Set and remove plan labels",value:`${packageName} flags labels apply user.plan --set "pro=Pro Plan" --set "enterprise=Enterprise Plan" --remove legacy`},{name:"Apply JSON operations",value:`${packageName} flags labels apply user.plan --data '[{"operation":"upsert","value":"id=123","label":"Example"},{"operation":"delete","value":"legacy"}]'`}]},labelsSubcommand={name:"labels",aliases:[],description:"Discover label lists and manage labels for string or stringArray attributes",arguments:[],subcommands:[labelsListSubcommand,labelsSetSubcommand,labelsRemoveSubcommand,labelsApplySubcommand],options:[],examples:[]},entitiesSubcommand={name:"entities",aliases:[],description:"Manage the entity schema used for flag targeting",arguments:[],subcommands:[entitiesListSubcommand,entitiesCreateSubcommand,entitiesUpdateSubcommand,entitiesRemoveSubcommand],options:[],examples:[]},sdkKeysListSubcommand={name:"list",aliases:["ls"],description:"List all SDK keys for the current project",arguments:[],options:[projectOption,{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"}],examples:[{name:"List all SDK keys",value:`${packageName} flags sdk-keys list`},{name:"List SDK keys as JSON",value:`${packageName} flags sdk-keys list --json`}]},sdkKeysAddSubcommand={name:"create",aliases:["add"],description:"Create a new SDK key",arguments:[],options:[projectOption,{name:"type",shorthand:null,type:String,deprecated:!1,description:"The type of SDK key (server, client, or mobile)",argument:"TYPE"},{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment for the SDK key",argument:"ENVIRONMENT"},{name:"label",shorthand:null,deprecatedShorthand:"l",type:String,deprecated:!1,description:"Optional label for the SDK key",argument:"LABEL"}],examples:[{name:"Create a server SDK key for production",value:`${packageName} flags sdk-keys create --type server --environment production`},{name:"Create a client SDK key with a label",value:`${packageName} flags sdk-keys create --type client -e preview --label "Preview App"`}]},sdkKeysRemoveSubcommand={name:"revoke",aliases:["remove","rm"],description:"Revoke an SDK key",arguments:[{name:"key",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when revoking an SDK key"}],examples:[{name:"Revoke an SDK key",placeholders:["<hash-key>"],value:`${packageName} flags sdk-keys revoke <hash-key>`}]},sdkKeysSubcommand={name:"sdk-keys",aliases:[],description:"Manage SDK keys for feature flags",arguments:[],subcommands:[sdkKeysListSubcommand,sdkKeysAddSubcommand,sdkKeysRemoveSubcommand],options:[],examples:[]},connectionsListSubcommand={name:"list",aliases:["ls"],description:"List the projects connected to the flags of the current project",arguments:[],options:[projectOption,{name:"role",shorthand:null,type:String,deprecated:!1,description:'Which side of the connection the current project is on: "source" lists the projects that may read its flags, "consumer" lists the projects whose flags it may read (default: source)',argument:"ROLE"},jsonOption],examples:[{name:"List the projects that may read the flags of the current project",value:`${packageName} flags connections list`},{name:"List the projects whose flags the current project may read",value:`${packageName} flags connections list --role consumer`}]},connectionsAddSubcommand={name:"add",aliases:[],description:"Let another project in the team read the flags of the current project",arguments:[{name:"consumer-project",required:!0}],options:[projectOption],examples:[{name:'Let project "storefront" read the flags of the current project',value:`${packageName} flags connections add storefront`},{name:"Let a project read the flags of a specific source project",value:`${packageName} flags connections add storefront --project checkout`}]},connectionsRemoveSubcommand={name:"remove",aliases:["rm"],description:"Stop a project from reading the flags of the current project",arguments:[{name:"consumer-project",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when removing a connection"}],examples:[{name:'Stop project "storefront" from reading the flags of the current project',value:`${packageName} flags connections remove storefront`}]},connectionsSubcommand={name:"connections",aliases:[],description:"Manage which projects in the team may read the flags of a project",arguments:[],subcommands:[connectionsListSubcommand,connectionsAddSubcommand,connectionsRemoveSubcommand],options:[],examples:[]},prepareSubcommand={name:"prepare",aliases:[],description:"Prepare flag definition fallbacks for the build",arguments:[],options:[],examples:[]},datafileSubcommand={name:"datafile",aliases:[],description:"Display the datafile of the project",arguments:[],options:[projectOption,{name:"environment",shorthand:"e",type:String,deprecated:!1,description:"The environment to load the datafile for (production, preview, or development). Not supported with --sdk-key, as SDK keys are bound to an environment",argument:"ENVIRONMENT"},{name:"sdk-key",shorthand:null,type:Boolean,deprecated:!1,description:"Authenticate with an SDK key instead of user or development OIDC credentials. The key is read from stdin, or from a masked prompt in a terminal"},jsonOption],examples:[{name:"Display the datafile of the linked project",value:`${packageName} flags datafile`},{name:"Display the production datafile of a specific project",value:`${packageName} flags datafile --project my-project --environment production`},{name:"Display the datafile for an SDK key read from stdin",value:`${packageName} flags datafile --sdk-key < sdk-key.txt`},{name:"Display the datafile as JSON",value:`${packageName} flags datafile --json`}]},overrideSubcommand={name:"override",aliases:[],description:"Encrypt flag overrides into a secure token for the vercel-flag-overrides cookie",arguments:[{name:"flag=value",required:!1}],options:[{name:"expiration",shorthand:null,type:String,deprecated:!1,description:"Expiration time for the encrypted token (default: 1y)",argument:"TIME"},{name:"decrypt",shorthand:null,type:String,deprecated:!1,description:"Decrypt an encrypted override token and print the JSON",argument:"TOKEN"}],examples:[{name:"Encrypt a single flag override",value:`${packageName} flags override my-flag=true`},{name:"Encrypt multiple flag overrides",value:`${packageName} flags override flag-a=true flag-b=hello`},{name:"Set a custom expiration",value:`${packageName} flags override my-flag=42 --expiration 30d`},{name:"Decrypt an override token",placeholders:["<token>"],value:`${packageName} flags override --decrypt <token>`}]},flagsCommand={name:"flags",aliases:[],description:"Manage feature flags for a Vercel project",arguments:[],subcommands:[listSubcommand15,staleSubcommand,cleanupSubcommand,inspectSubcommand10,versionsSubcommand,evaluationsSubcommand,createSubcommand6,openSubcommand3,updateSubcommand6,setSubcommand2,targetingSubcommand,useTargetingSubcommand,splitSubcommand,rolloutSubcommand,removeSubcommand9,archiveSubcommand,unarchiveSubcommand,disableSubcommand,enableSubcommand2,rulesSubcommand3,targetsSubcommand,segmentsSubcommand,entitiesSubcommand,labelsSubcommand,sdkKeysSubcommand,connectionsSubcommand,prepareSubcommand,datafileSubcommand,overrideSubcommand],options:[],examples:[]};var connectSubcommand={name:"connect",aliases:[],description:"Connect your Vercel Project to your Git repository or provide the remote URL to your Git repository",arguments:[{name:"git-url",required:!1}],options:[projectOption,yesOption,confirmOption],examples:[{name:"Connect your Vercel Project to your Git repository defined in your local `.git` config",value:`${packageName} git connect`},{name:"Connect your Vercel Project to a Git repository using the remote URL",value:`${packageName} git connect https://github.com/user/repo.git`}]},disconnectSubcommand={name:"disconnect",aliases:[],description:"Disconnect the Git repository from your Vercel Project",arguments:[],options:[projectOption,yesOption,confirmOption],examples:[{name:"Disconnect the Git repository",value:`${packageName} git disconnect`}]},gitCommand={name:"git",aliases:[],description:"Manage your Git repository connection to the current Project",arguments:[],subcommands:[connectSubcommand,disconnectSubcommand],options:[],examples:[]};var listSubcommand16={name:"list",aliases:["ls"],description:"List Global Config stores for the current team",default:!0,arguments:[],options:[formatOption,jsonOption],examples:[{name:"List Global Configs as JSON",value:`${packageName} global-config list --json`}]},addSubcommand6={name:"create",aliases:["add"],description:"Create a Global Config store",arguments:[{name:"slug",required:!0}],options:[formatOption,jsonOption,{name:"items",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:'Optional JSON object of initial items `{ "key": <value>, ... }`'}],examples:[{name:"Create a store with slug `flags`",value:`${packageName} global-config create flags`}]},getSubcommand={name:"inspect",aliases:["get"],description:"Show metadata for a Global Config (id `ecfg_\u2026` or slug)",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption],examples:[]},updateSubcommand7={name:"update",aliases:[],description:"Rename a Global Config (`--slug`) and/or patch items (`--patch` JSON)",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,{name:"slug",shorthand:null,type:String,argument:"SLUG",deprecated:!1,description:"New slug for the Global Config"},{name:"patch",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:'JSON for `PATCH /v1/global-config/:id/items`: `{"items":[...]}` or a bare array. Each item needs `operation` (create | update | upsert | delete), `key`, and usually `value` (see REST API: update-edge-config-items-in-batch)'}],examples:[]},removeSubcommand10={name:"delete",aliases:["rm","del","remove"],description:"Delete a Global Config store",arguments:[{name:"id-or-slug",required:!0}],options:[yesOption,formatOption,jsonOption],examples:[]},itemsSubcommand={name:"items",aliases:[],description:"List items in a Global Config, or show one item with `--key`",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,{name:"key",shorthand:null,deprecatedShorthand:"k",type:String,argument:"KEY",deprecated:!1,description:"When set, show a single item by key"}],examples:[]},tokensSubcommand={name:"tokens",aliases:[],description:"List, create (`--add`), or revoke (`--remove`) read tokens for a Global Config",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,yesOption,{name:"add",shorthand:null,type:String,argument:"LABEL",deprecated:!1,description:"Create a token with this label (1\u201352 characters)"},{name:"remove",shorthand:null,type:[String],argument:"ID_OR_TOKEN",deprecated:!1,description:"Revoke one or more tokens by id or plaintext token (repeatable). Requires `--yes` in non-interactive mode"}],examples:[]},backupsSubcommand={name:"backups",aliases:[],description:"List, inspect, or restore Global Config backups",arguments:[{name:"id-or-slug",required:!0}],options:[formatOption,jsonOption,{...yesOption,description:"Skip the confirmation prompt when restoring"},{name:"backup-version",shorthand:null,type:String,argument:"VERSION",deprecated:!1,description:"Show a single backup by version ID"},{name:"restore",shorthand:null,type:String,argument:"VERSION_ID",deprecated:!1,description:"Restore items from the backup version id. Requires confirmation because it updates live Global Config items"},{name:"limit",shorthand:"n",type:Number,argument:"NUMBER",deprecated:!1,description:"Maximum number of backups to list (0-50)"},{name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"}],examples:[{name:"List backups for a Global Config",value:`${packageName} global-config backups my-store`},{name:"Inspect a backup as JSON",placeholders:["<version-id>"],value:`${packageName} global-config backups my-store --backup-version <version-id> --json`},{name:"Restore a backup",placeholders:["<version-id>"],value:`${packageName} global-config backups my-store --restore <version-id> --yes`}]},globalConfigCommand={name:"global-config",aliases:["edge-config"],description:"Manage Global Config stores (dashboard API parity)",arguments:[],subcommands:[listSubcommand16,addSubcommand6,getSubcommand,updateSubcommand7,removeSubcommand10,itemsSubcommand,tokensSubcommand,backupsSubcommand],options:[],examples:[{name:"List stores",value:`${packageName} global-config list`}]};var statusSubcommand2={name:"status",aliases:[],description:"Shows whether guidance messages are enabled or disabled",arguments:[],options:[],examples:[]},enableSubcommand3={name:"enable",aliases:[],description:"Enables guidance messages",arguments:[],options:[],examples:[]},disableSubcommand2={name:"disable",aliases:[],description:"Disables guidance messages",arguments:[],options:[],examples:[]},guidanceCommand={name:"guidance",aliases:[],description:"Allows you to enable or disable guidance messages",arguments:[],subcommands:[enableSubcommand3,disableSubcommand2,statusSubcommand2],options:[],examples:[]};var healthCommand={name:"health",aliases:["status-page"],description:"Show the current Vercel platform status and recent incidents",arguments:[],options:[jsonOption],examples:[{name:"Show the current Vercel platform status",value:`${packageName} health`},{name:"Read the status and incidents as JSON",value:`${packageName} health --json`},{name:"List the names of active incidents",value:`${packageName} health --json | jq -r '.incidents[] | select(.resolvedAt == null) | .name'`}],helpSections:[{title:"Notes",body:["Reads the public status page at https://www.vercel-status.com.","No login or linked project is needed.","Shows degraded components, active incidents, scheduled maintenance, and incidents resolved in the last 7 days.","With --json, components lists every component, and incidents lists active and recently resolved incidents, newest first."]}]};var httpstatCommand={name:"httpstat",aliases:[],summary:"Show deployment HTTP timing",description:"Execute httpstat with automatic deployment URL and protection bypass to visualize HTTP timing statistics.",arguments:[{name:"path",required:!0}],forwardsUnknownOptions:!0,options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"},deploymentOption,{name:"protection-bypass",shorthand:null,type:String,deprecated:!1,description:"Protection bypass secret for accessing protected deployments",argument:"SECRET"}],examples:[{name:"Visualize timing for a GET request to an API endpoint",value:`${packageName} httpstat /api/hello`},{name:"Make a POST request with data and see timing details",value:`${packageName} httpstat /api/users -- -X POST -d '{"name": "John"}'`},{name:"Target a specific deployment by ID",value:`${packageName} httpstat /api/status --deployment ERiL45NJvP8ghWxgbvCM447bmxwV`},{name:"Use curl options after the separator",value:`${packageName} httpstat /api/test -- -H "Content-Type: application/json" -X PUT`},{name:"Use with protection bypass secret",placeholders:["<secret>"],value:`${packageName} httpstat /api/protected --protection-bypass <secret>`}]};var initCommand={name:"init",aliases:[],description:"Initialize example Vercel Projects",arguments:[{name:"example",required:!1},{name:"dir",required:!1}],options:[{...forceOption,deprecatedShorthand:"f",description:"Overwrite destination directory if exists (default: off)",argument:void 0}],examples:[{name:"Choose from all available examples",value:`${packageName} init`},{name:"Initialize example project into a new directory",placeholders:["<example>"],value:`${packageName} init <example>`},{name:"Initialize example project into specified directory",placeholders:["<example>","<dir>"],value:`${packageName} init <example> <dir>`},{name:"Initialize example project without checking",placeholders:["<example>"],value:`${packageName} init <example> --force`}]};var inspectCommand={name:"inspect",aliases:[],description:"Show information about a deployment.",arguments:[{name:"deployment",required:!0}],options:[{name:"timeout",description:"Time to wait for deployment completion (default: 3m)",argument:"TIME",shorthand:null,type:String,deprecated:!1},{name:"wait",description:"Blocks until deployment completes (exits 1 if --timeout is reached first)",shorthand:null,type:Boolean,deprecated:!1},{name:"logs",shorthand:null,deprecatedShorthand:"l",type:Boolean,deprecated:!1,description:"Prints the build logs instead of the deployment summary"},formatOption,jsonOption],examples:[{name:"Get information about a deployment by its unique URL",value:`${packageName} inspect my-deployment-ji2fjij2.vercel.app`},{name:"Get information about the deployment an alias points to",value:`${packageName} inspect my-deployment.vercel.app`},{name:"Get information about a deployment by piping in the URL",value:`echo my-deployment.vercel.app | ${packageName} inspect`},{name:"Wait up to 90 seconds for deployment to complete",value:`${packageName} inspect my-deployment.vercel.app --wait --timeout 90s`},{name:"Get deployment build logs",value:`${packageName} inspect my-deployment.vercel.app --logs`},{name:"Get deployment information as JSON",value:`${packageName} inspect my-deployment.vercel.app --json`}]};var removeSubcommand11={name:"delete",aliases:["rm","del","remove"],description:"Delete an integration resource",arguments:[{name:"resource",required:!0}],options:[{name:"disconnect-all",description:"Disconnects all projects from the specified resource before deletion",shorthand:null,deprecatedShorthand:"a",type:Boolean,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt when deleting a resource"},formatOption,jsonOption],examples:[{name:"Delete a resource",placeholders:["<resource>"],value:`${packageName} integration resource delete <resource>`},{name:"Disconnect all projects from a resource, then delete it",placeholders:["<resource>"],value:`${packageName} integration resource delete <resource> --disconnect-all`},{name:"Output as JSON",value:`${packageName} integration resource delete my-acme-resource --json --yes`}]},disconnectSubcommand2={name:"disconnect",aliases:[],description:"Disconnect a marketplace resource from a project without deleting the resource",arguments:[{name:"resource",required:!0},{name:"project",required:!1}],options:[{name:"all",description:"Disconnects all projects from the specified resource",shorthand:null,deprecatedShorthand:"a",type:Boolean,deprecated:!1},{...yesOption,description:"Skip the confirmation prompt when disconnecting a resource"},formatOption,jsonOption],examples:[{name:"Disconnect a resource from the current project",placeholders:["<resource>"],value:`${packageName} integration resource disconnect <resource>`},{name:"Disconnect all projects from a resource",placeholders:["<resource>"],value:`${packageName} integration resource disconnect <resource> --all`},{name:"Disconnect a resource from a specified project",placeholders:["<resource>","<project>"],value:`${packageName} integration resource disconnect <resource> <project>`},{name:"Output as JSON",value:`${packageName} integration resource disconnect my-acme-resource --json --yes`}]},connectSubcommand2={name:"connect",aliases:[],description:"Connect a marketplace resource to a project",arguments:[{name:"resource",required:!0},{name:"project",required:!1}],options:[{name:"environment",shorthand:"e",type:[String],argument:"ENVIRONMENT",deprecated:!1,description:"Environment to connect (can be repeated; accepts production, preview, development, or a Custom Environment slug or ID) (default: all system Environments)."},{name:"prefix",shorthand:null,type:String,argument:"PREFIX",deprecated:!1,description:"Prefix for environment variable names (e.g., --prefix NEON2_ creates NEON2_DATABASE_URL instead of DATABASE_URL)"},{...yesOption,description:"Skip the confirmation prompt when connecting a resource (required without a terminal)"},formatOption,jsonOption],examples:[{name:"Connect a resource to the current project",placeholders:["<resource>"],value:`${packageName} integration resource connect <resource>`},{name:"Connect a resource to a specified project",placeholders:["<resource>","<project>"],value:`${packageName} integration resource connect <resource> <project>`},{name:"Connect only to specific environments",value:[`${packageName} integration resource connect my-acme-resource -e production`,`${packageName} integration resource connect my-acme-resource -e production -e preview`,`${packageName} integration resource connect my-acme-resource -e qa`,`${packageName} integration resource connect my-acme-resource -e env_qa123`]},{name:"Connect with a prefix for environment variable names",value:`${packageName} integration resource connect my-acme-resource --prefix NEON2_`},{name:"Output as JSON",value:`${packageName} integration resource connect my-acme-resource --json --yes`}]},createThresholdSubcommand={name:"create-threshold",aliases:[],description:"Creates a threshold for a resource (or installation, if the integration uses installation-level thresholds)",arguments:[{name:"resource",required:!0},{name:"minimum",required:!0},{name:"spend",required:!0},{name:"limit",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when creating a threshold"}],examples:[{name:"Create a resource threshold",placeholders:["<resource>","<minimum>","<spend>","<limit>"],value:`${packageName} integration resource create-threshold <resource> <minimum> <spend> <limit>`},{name:"Create a resource threshold without confirmation",placeholders:["<resource>","<minimum>","<spend>","<limit>"],value:`${packageName} integration resource create-threshold <resource> <minimum> <spend> <limit> --yes`}]},claimSubcommand={name:"claim",aliases:[],description:"Claim a sandbox marketplace resource (e.g. Stripe, Shopify) by opening the provider claim URL in your browser",arguments:[{name:"resource",required:!1}],options:[{...yesOption,description:"Skip the confirmation prompt when claiming a single sandbox resource"},{name:"no-wait",description:"Print the claim URL and exit without polling for completion",shorthand:null,type:Boolean,deprecated:!1},formatOption,jsonOption],examples:[{name:"Claim a sandbox resource by name",placeholders:["<resource>"],value:`${packageName} integration resource claim <resource>`},{name:"Pick a sandbox resource interactively (current team)",value:`${packageName} integration resource claim`},{name:"Print the claim URL as JSON without waiting",value:`${packageName} integration resource claim my-stripe --json --no-wait`}]},inspectSubcommand11={name:"inspect",aliases:["status"],description:"Show live details and status for a marketplace integration resource, fetched fresh from the provider",arguments:[{name:"resource",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Show live details and status for a resource",placeholders:["<resource>"],value:`${packageName} integration resource inspect <resource>`},{name:"Output as JSON",value:`${packageName} integration resource inspect my-acme-resource --json`}]},integrationResourceCommand={name:"integration-resource",aliases:["ir"],summary:"Manage integration resources",description:"Manage marketplace integration resources (alias for `vercel integration resource`)",options:[],arguments:[],subcommands:[connectSubcommand2,createThresholdSubcommand,disconnectSubcommand2,removeSubcommand11,claimSubcommand,inspectSubcommand11],examples:[]};var addSubcommand7={name:"add",aliases:["install"],description:"Installs a marketplace integration",dynamicHelp:!0,arguments:[{name:"integration",required:!0}],options:[{name:"name",description:"Custom name for the resource (auto-generated if not provided)",shorthand:null,deprecatedShorthand:"n",type:String,deprecated:!1,argument:"NAME"},{name:"meta",description:"Metadata for the resource as KEY=VALUE (can be repeated). Run `vercel integration add <name> --help` to see available keys.",shorthand:null,type:[String],deprecated:!1,argument:"KEY=VALUE"},{name:"metadata",description:"Deprecated alias for `--meta`",shorthand:"m",type:[String],deprecated:!0,argument:"KEY=VALUE"},{name:"billing-plan",shorthand:null,type:String,deprecated:!1,argument:"BILLING_PLAN",description:"Billing plan ID to use for the resource"},{name:"plan",shorthand:"p",type:String,deprecated:!0,argument:"PLAN_ID",description:"Deprecated alias for `--billing-plan`"},{name:"no-connect",shorthand:null,type:Boolean,deprecated:!1,description:"Skip connecting the resource to the current project (also skips env pull)"},{name:"no-env-pull",shorthand:null,type:Boolean,deprecated:!1,description:"Skip running env pull after provisioning"},{name:"environment",shorthand:"e",type:[String],deprecated:!1,argument:"ENVIRONMENT",description:"Environment to connect. Accepts production, preview, development, or a Custom Environment slug or ID from the linked project. Can be repeated (default: all built-in environments)."},{name:"prefix",shorthand:null,type:String,deprecated:!1,argument:"PREFIX",description:"Prefix for environment variable names (e.g., --prefix NEON2_ creates NEON2_DATABASE_URL instead of DATABASE_URL)"},{name:"installation",shorthand:null,type:String,deprecated:!1,argument:"INSTALLATION",description:"Installation ID to use when multiple installations exist for the integration"},{name:"installation-id",shorthand:null,type:String,deprecated:!0,argument:"ID",description:"Deprecated alias for `--installation`"},{name:"claim",shorthand:null,type:Boolean,deprecated:!1,description:"If the new resource is a sandbox (e.g. Stripe, Shopify), claim it immediately without prompting"},{name:"no-claim",shorthand:null,type:Boolean,deprecated:!1,description:"If the new resource is a sandbox, skip the offer to claim it (only print a hint)"},formatOption,jsonOption],examples:[{name:"Install a marketplace integration (auto-generates resource name)",placeholders:["<integration-name>"],value:`${packageName} integration add <integration-name>`},{name:"Install a specific product from an integration",placeholders:["<integration>","<product>"],value:`${packageName} integration add <integration>/<product>`},{name:"Search by keyword (prompts to select a matching integration)",value:[`${packageName} integration add postgres`,`${packageName} integration add redis`]},{name:"Install with a custom resource name",value:[`${packageName} integration add acme --name my-database`,`${packageName} integration add acme --name my-database`]},{name:"Install with metadata options",value:[`${packageName} integration add acme --meta region=us-east-1`,`${packageName} integration add acme --meta region=us-east-1 --meta version=16`,`${packageName} integration add acme --meta auth=true`,`${packageName} integration add acme --meta "readRegions=sfo1,iad1"`]},{name:"Install with a specific billing plan",value:[`${packageName} integration add acme --billing-plan pro`,`${packageName} integration add acme --billing-plan pro`]},{name:"Install and connect to specific environments only",value:[`${packageName} integration add acme --environment production`,`${packageName} integration add acme -e production -e preview`]},{name:"Install without connecting to the current project",value:`${packageName} integration add acme --no-connect`},{name:"Install without pulling environment variables",value:`${packageName} integration add acme --no-env-pull`},{name:"Install with a prefix for environment variable names",value:`${packageName} integration add acme --prefix NEON2_`},{name:"Output as JSON",value:`${packageName} integration add acme --json`},{name:"Show available products for an integration",value:`${packageName} integration add acme --help`},{name:"Discover available marketplace products and their slugs",value:`${packageName} integration discover`}]},acceptTermsSubcommand={descriptionTone:"normal",name:"accept-terms",aliases:[],description:"Accept marketplace legal terms for an integration and install it on the current team (installation only; no product resource). Requires an interactive terminal and human confirmation, unless `--yes` is passed (supported for `neon` only). Does not replace integrations that require a browser or device attestation.",arguments:[{name:"integration",required:!0}],options:[{...yesOption,description:"Accept the terms without a confirmation prompt. Only supported for the `neon` integration."},formatOption,jsonOption],examples:[{name:"Accept terms interactively, then install on the team",placeholders:["<integration>"],value:`${packageName} integration accept-terms <integration>`},{name:"Output result as JSON",value:`${packageName} integration accept-terms neon --json`},{name:"Accept terms without a prompt (neon only)",value:`${packageName} integration accept-terms neon --yes`}]},openSubcommand4={name:"open",aliases:[],description:"Opens a marketplace integration's or resource's dashboard via SSO",arguments:[{name:"name",required:!0},{name:"resource",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Open a marketplace integration's dashboard",placeholders:["<integration-name>"],value:`${packageName} integration open <integration-name>`},{name:"Open a resource's dashboard within an integration",placeholders:["<integration-name>","<resource-name>"],value:`${packageName} integration open <integration-name> <resource-name>`},{name:"Get the SSO link as JSON",value:[`${packageName} integration open acme --json`,`${packageName} integration open acme my-acme-store --json`]}]},installationsSubcommand={name:"installations",aliases:["installation"],description:"List marketplace integration installations for the current team (account scope)",arguments:[],options:[{name:"integration",description:"Limit to installations of this integration (slug or id)",shorthand:null,deprecatedShorthand:"i",type:String,deprecated:!1,argument:"SLUG_OR_ID"},formatOption,jsonOption],examples:[{name:"List all marketplace installations for the team",value:[`${packageName} integration installations`]},{name:"Filter by integration slug",value:[`${packageName} integration installations --integration neon`]},{name:"JSON output",value:[`${packageName} integration installations --json`]}]},listSubcommand17={name:"list",aliases:["ls"],description:"List resources from marketplace integrations for the current project",arguments:[{name:"project",required:!1}],options:[{name:"integration",description:"Limits the resources listed to a designated integration",shorthand:null,deprecatedShorthand:"i",type:String,deprecated:!1,argument:"NAME"},{name:"all",description:"Lists all resources regardless of project",shorthand:"a",type:Boolean,deprecated:!1},formatOption,jsonOption],examples:[{name:"List resources for the current linked project",value:[`${packageName} integration list`]},{name:"Filter the resources to a single integration",placeholders:["<integration>"],value:`${packageName} integration list --integration <integration>`},{name:"List all marketplace resources for the current team",value:[`${packageName} integration list --all`,`${packageName} integration list -a`]},{name:"List resources as JSON",value:[`${packageName} integration list --json`]}]},discoverSubcommand2={name:"discover",aliases:[],description:"Discover available marketplace integrations",arguments:[{name:"query",required:!1}],options:[{name:"category",shorthand:null,deprecatedShorthand:"c",type:[String],deprecated:!1,argument:"CATEGORY",description:"Filter integrations by category (can be repeated; e.g., --category storage --category authentication). Run `vercel integration categories` for valid slugs."},formatOption,jsonOption],examples:[{name:"Discover marketplace integrations",value:[`${packageName} integration discover`]},{name:"Search for integrations matching a query",value:[`${packageName} integration discover postgres`,`${packageName} integration discover aws`]},{name:"Filter integrations by category",value:[`${packageName} integration discover --category storage`,`${packageName} integration discover --category authentication`]},{name:"Filter by multiple categories at once (repeat the option)",value:[`${packageName} integration discover --category storage --category authentication`,`${packageName} integration discover --category commerce --category payments --category authentication`]},{name:"List available category slugs to use with --category",value:[`${packageName} integration categories`]},{name:"Discover marketplace integrations as JSON",value:[`${packageName} integration discover --json`]}]},categoriesSubcommand2={name:"categories",aliases:[],description:"List marketplace integration categories (slugs valid for `integration discover --category`)",arguments:[],options:[formatOption,jsonOption],examples:[{name:"List marketplace categories",value:[`${packageName} integration categories`]},{name:"List categories as JSON",value:[`${packageName} integration categories --json`]},{name:"Use a category slug to filter discover results",value:[`${packageName} integration discover --category storage`]}]},balanceSubcommand={name:"balance",aliases:[],description:"Shows the balances and thresholds of a specified marketplace integration",arguments:[{name:"integration",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Show the balance(s) & threshold(s) of a marketplace integration",placeholders:["<integration-name>"],value:`${packageName} integration balance <integration-name>`},{name:"Output as JSON",value:`${packageName} integration balance acme --json`}]},updateSubcommand8={descriptionTone:"normal",name:"update",aliases:[],description:"Update a marketplace integration installation (billing plan or which projects can access it). Install, remove, and connect flows are separate (integration add, integration remove, integration resource, env pull, etc.) \u2014 not part of update. UI-only flows (OAuth in a browser, consent screens, marketplace purchase) may not map one-to-one to a single CLI option; pass --billing-plan and --authorization when the product requires them for billing changes. Any extra fields on the configuration resource that the API exposes but this command PATCH body does not send are not covered until the API and CLI support them.",arguments:[{name:"integration",required:!0}],options:[{name:"billing-plan",shorthand:null,type:String,deprecated:!1,argument:"BILLING_PLAN",description:"Billing plan ID for integrations that support installation-level billing plans"},{name:"plan",shorthand:"p",type:String,deprecated:!0,argument:"PLAN_ID",description:"Deprecated alias for `--billing-plan`"},{name:"authorization",shorthand:null,type:String,deprecated:!1,argument:"AUTHORIZATION",description:"Billing authorization ID when the platform requires it for plan changes"},{name:"authorization-id",shorthand:null,type:String,deprecated:!0,argument:"ID",description:"Deprecated alias for `--authorization`"},{name:"projects",shorthand:null,type:[String],deprecated:!1,argument:"PROJECT",description:'Project ID allowed to use this installation, or "all" for all projects (repeatable)'},{name:"installation",shorthand:null,type:String,deprecated:!1,argument:"INSTALLATION",description:"Configuration ID when multiple marketplace installations exist for this integration"},{name:"installation-id",shorthand:null,type:String,deprecated:!0,argument:"ID",description:"Deprecated alias for `--installation`"},formatOption,jsonOption],examples:[{name:"Grant all team projects access to the integration",placeholders:["<integration>"],value:`${packageName} integration update <integration> --projects all`},{name:"Limit access to specific projects",value:`${packageName} integration update neon --projects prj_abc --projects prj_def`},{name:"Change installation billing plan",value:`${packageName} integration update acme --billing-plan pro`},{name:"Select installation when several exist",value:`${packageName} integration update neon --installation icfg_xxx --projects all`},{name:"Output result as JSON",value:`${packageName} integration update neon --projects all --json`},{name:"Non-interactive (JSON success and errors on stdout)",value:`${packageName} integration update neon --projects all --non-interactive`}]},removeSubcommand12={name:"remove",aliases:["rm"],description:"Remove a marketplace integration. Resources must be deleted first using `integration resource delete`.",arguments:[{name:"integration",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when removing an integration"},formatOption,jsonOption],examples:[{name:"Remove an integration",placeholders:["<integration>"],value:`${packageName} integration remove <integration>`},{name:"Delete a resource before removing the integration",placeholders:["<resource-name>"],value:`${packageName} integration resource delete <resource-name> --disconnect-all --yes`},{name:"Output as JSON",value:`${packageName} integration remove acme --json --yes`}]},guideSubcommand={name:"guide",aliases:[],description:"Show getting started guides and code snippets for a marketplace integration",arguments:[{name:"integration",required:!0}],options:[{name:"framework",shorthand:null,deprecatedShorthand:"f",type:String,deprecated:!1,argument:"FRAMEWORK",description:"Select a framework guide without interactive prompt (e.g., nextjs, remix, astro, nuxtjs, sveltekit)"}],examples:[{name:"Show guides for a single-product integration",placeholders:["<integration-name>"],value:`${packageName} integration guide <integration-name>`},{name:"Show guides for a specific product of a multi-product integration",placeholders:["<integration>","<product>"],value:`${packageName} integration guide <integration>/<product>`},{name:"Show the Next.js guide without prompts (useful for CI/agents)",value:`${packageName} integration guide neon --framework nextjs`},{name:"Discover available integrations and product slugs",value:`${packageName} integration discover`}]},resourceSubcommand={name:"resource",aliases:[],description:"Manage marketplace integration resources (inspect, connect, disconnect, delete, claim, create-threshold)",options:[],arguments:[],subcommands:[connectSubcommand2,createThresholdSubcommand,disconnectSubcommand2,removeSubcommand11,claimSubcommand,inspectSubcommand11],examples:[{name:"Create a resource (installs the integration if needed)",value:`${packageName} install acme --name my-acme-resource`},{name:"Connect a resource to the current project",value:`${packageName} integration resource connect my-acme-resource`},{name:"Disconnect a resource from the current project",value:`${packageName} integration resource disconnect my-acme-resource`},{name:"Delete a resource (disconnecting all projects first)",value:`${packageName} integration resource delete my-acme-resource --disconnect-all --yes`}]},integrationCommand={name:"integration",aliases:[],description:"Manage marketplace integrations. To manage individual resources, see `vercel integration resource`.",options:[],arguments:[],subcommands:[addSubcommand7,acceptTermsSubcommand,balanceSubcommand,categoriesSubcommand2,discoverSubcommand2,guideSubcommand,installationsSubcommand,listSubcommand17,openSubcommand4,resourceSubcommand,updateSubcommand8,removeSubcommand12],examples:[{name:"Install a specific product from an integration",value:`${packageName} integration add acme/acme-redis`},{name:"Connect an existing resource to the current project",value:`${packageName} integration resource connect my-acme-resource`}]};var installCommand={name:"install",aliases:["i"],summary:"Install a marketplace integration",description:"Install an integration from the marketplace (alias for `integration add`)",dynamicHelp:!0,arguments:[{name:"integration",required:!0}],options:addSubcommand7.options,examples:[{name:"Install an integration from the marketplace",value:`${packageName} install acme`},{name:"Install a specific product",value:`${packageName} install acme/acme-redis`}]};var KMS_ALGORITHMS=["RS256","RS384","RS512","PS256","PS384","PS512","ES256","ES384","ES512","EdDSA"],PROJECT_GRANT_POLICY_KIND="project-grant";function isProjectGrant(policy){return policy.kind===PROJECT_GRANT_POLICY_KIND}function issuerUrl(issuerId){return`https://kms.vercel.com/${issuerId}`}function issuerJwksUrl(issuerId){return`${issuerUrl(issuerId)}/jwks.json`}var cursorOption={name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"},algorithmOption={name:"algorithm",shorthand:null,deprecatedShorthand:"a",type:String,argument:"ALGORITHM",deprecated:!1,description:`Signing algorithm: ${KMS_ALGORITHMS.join(", ")} (default: RS512)`},importAlgorithmOption={name:"algorithm",shorthand:null,deprecatedShorthand:"a",type:String,argument:"ALGORITHM",deprecated:!1,description:`Signing algorithm: ${KMS_ALGORITHMS.join(", ")} (required for RSA keys, otherwise derived from the key)`},nameOption2={name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"New name for the issuer"},claimsSchemaOption={name:"claims-schema",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"JSON Schema validating token claims, as inline JSON, `@<file>`, or `@-` for stdin"},removeClaimsSchemaOption={name:"remove-claims-schema",shorthand:null,type:Boolean,deprecated:!1,description:"Remove the claims schema, so claims are no longer validated"},tokenClaimsOption={name:"token-claims",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Claims to include in tokens signed for this grant, as inline JSON, `@<file>`, or `@-` for stdin"},removeTokenClaimsOption={name:"remove-token-claims",shorthand:null,type:Boolean,deprecated:!1,description:"Remove the token claims from the grant"},grantProjectOption={...projectOption,shorthand:"p"},environmentOption3={name:"environment",shorthand:"e",type:[String],argument:"ENVIRONMENT",deprecated:!1,description:"Environment the grant applies to: a system environment (production, preview, development) or a custom environment ID (env_\u2026). Repeatable"},keyOption={name:"key",shorthand:null,deprecatedShorthand:"k",type:String,argument:"FILE",deprecated:!1,description:"Path to the PEM private key to import, or `-` to read it from stdin"},keyIdOption={name:"key-id",shorthand:null,type:String,argument:"KID",deprecated:!1,description:"JWKS `kid` for the imported key (default: server-generated)"},revokePreviousAfterHoursOption={name:"revoke-previous-after-hours",shorthand:null,type:Number,argument:"HOURS",deprecated:!1,description:"Hours the previous key keeps verifying after activation (default: 1)"},activationOption={name:"activation",shorthand:null,type:String,argument:"MODE",deprecated:!1,description:"When the key starts signing: automatic or manual (default: automatic)"};function skipConfirmationOption(action){return{...yesOption,description:`Skip the confirmation prompt when ${action}`}}var listSubcommand18={name:"list",aliases:["ls"],description:"Show all KMS issuers",default:!0,arguments:[],options:[formatOption,jsonOption,limitOption,cursorOption],examples:[{name:"List issuers as JSON",value:`${packageName} kms list --json`}]},inspectSubcommand12={name:"inspect",aliases:["get"],description:"Show an issuer with its signing keys and grants",arguments:[{name:"issuerId",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Inspect an issuer",value:`${packageName} kms inspect iss_1a2b3c4d`}]},addSubcommand8={name:"create",aliases:["add"],description:"Create an issuer with a Vercel-generated signing key",arguments:[{name:"name",required:!0}],options:[algorithmOption,claimsSchemaOption,formatOption,jsonOption],examples:[{name:"Create an issuer that signs with ES256",value:`${packageName} kms create my-issuer --algorithm ES256`}]},importSubcommand2={name:"import",aliases:[],description:"Create an issuer from a private key you already have",arguments:[{name:"name",required:!0}],options:[keyOption,keyIdOption,importAlgorithmOption,claimsSchemaOption,formatOption,jsonOption],examples:[{name:"Import an EC private key, whose algorithm is derived from the key",value:`${packageName} kms import my-issuer --key ./private-key.pem`},{name:"Import an RSA private key from stdin",value:`cat private-key.pem | ${packageName} kms import my-issuer --key - --algorithm RS256`}]},updateSubcommand9={name:"update",aliases:[],description:"Rename an issuer or change its claims schema",arguments:[{name:"issuerId",required:!0}],options:[nameOption2,claimsSchemaOption,removeClaimsSchemaOption,formatOption,jsonOption],examples:[{name:"Rename an issuer",value:`${packageName} kms update iss_1a2b3c4d --name billing-tokens`},{name:"Replace the claims schema from a file",value:`${packageName} kms update iss_1a2b3c4d --claims-schema @claims-schema.json`}]},removeSubcommand13={name:"delete",aliases:["rm","del","remove"],description:"Delete an issuer and all of its keys",arguments:[{name:"issuerId",required:!0}],options:[skipConfirmationOption("deleting an issuer")],examples:[{name:"Delete an issuer",value:`${packageName} kms delete iss_1a2b3c4d`}]},addKeySubcommand={name:"add-key",aliases:[],description:"Add a Vercel-generated signing key to an issuer",arguments:[{name:"issuerId",required:!0}],options:[activationOption,revokePreviousAfterHoursOption,formatOption,jsonOption],examples:[{name:"Rotate to a new key, retiring the previous one after 24 hours",value:`${packageName} kms add-key iss_1a2b3c4d --revoke-previous-after-hours 24`},{name:"Stage a key without activating it",value:`${packageName} kms add-key iss_1a2b3c4d --activation manual`}]},importKeySubcommand={name:"import-key",aliases:[],description:"Add a signing key you already have to an imported issuer",arguments:[{name:"issuerId",required:!0}],options:[keyOption,keyIdOption,activationOption,revokePreviousAfterHoursOption,formatOption,jsonOption],examples:[{name:"Rotate an imported issuer to a new private key",value:`${packageName} kms import-key iss_1a2b3c4d --key ./private-key.pem`}]},activateKeySubcommand={name:"activate-key",aliases:[],description:"Start signing with a staged key",arguments:[{name:"issuerId",required:!0},{name:"keyId",required:!0}],options:[revokePreviousAfterHoursOption,formatOption,jsonOption],examples:[{name:"Activate a key",value:`${packageName} kms activate-key iss_1a2b3c4d key_5e6f7g8h`}]},revokeKeySubcommand={name:"revoke-key",aliases:[],description:"End a scheduled revocation now, so a key stops verifying",arguments:[{name:"issuerId",required:!0},{name:"keyId",required:!0}],options:[skipConfirmationOption("revoking a key")],examples:[{name:"Revoke a key that is already scheduled for revocation",value:`${packageName} kms revoke-key iss_1a2b3c4d key_5e6f7g8h`}]},addGrantSubcommand={descriptionTone:"normal",name:"add-grant",aliases:[],description:"Grant a project permission to sign with an issuer",arguments:[{name:"issuerId",required:!0}],options:[grantProjectOption,environmentOption3,tokenClaimsOption,formatOption,jsonOption],examples:[{name:"Grant a project signing access in Production and Preview",value:`${packageName} kms add-grant iss_1a2b3c4d --project prj_9i8h7g6f --environment production --environment preview`},{name:"Grant a project signing access in a custom environment",value:`${packageName} kms add-grant iss_1a2b3c4d --project prj_9i8h7g6f --environment env_1a2b3c4d`}]},updateGrantSubcommand={name:"update-grant",aliases:[],description:"Change a project grant's environments or token claims",arguments:[{name:"issuerId",required:!0},{name:"projectId",required:!0}],options:[environmentOption3,tokenClaimsOption,removeTokenClaimsOption,formatOption,jsonOption],examples:[{name:"Restrict a grant to Production",value:`${packageName} kms update-grant iss_1a2b3c4d prj_9i8h7g6f --environment production`}]},removeGrantSubcommand={descriptionTone:"normal",name:"remove-grant",aliases:["rm-grant","delete-grant"],description:"Revoke a project's permission to sign with an issuer",arguments:[{name:"issuerId",required:!0},{name:"projectId",required:!0}],options:[skipConfirmationOption("removing a grant")],examples:[{name:"Remove a project grant",value:`${packageName} kms remove-grant iss_1a2b3c4d prj_9i8h7g6f`}]},kmsCommand={name:"kms",aliases:[],description:"Manage KMS issuers, signing keys, and project grants",arguments:[],subcommands:[listSubcommand18,inspectSubcommand12,addSubcommand8,importSubcommand2,updateSubcommand9,removeSubcommand13,addKeySubcommand,importKeySubcommand,activateKeySubcommand,revokeKeySubcommand,addGrantSubcommand,updateGrantSubcommand,removeGrantSubcommand],options:[],examples:[]};var logoutCommand={name:"logout",aliases:[],description:"Sign out the currently authenticated user.",arguments:[],options:[],examples:[{name:"Sign out the currently authenticated user.",value:`${packageName} logout`}]};var runtimeFilterFields=[{name:"level",type:"string",example:"level:error"},{name:"source",type:"string",example:"source:function"},{name:"environment",type:"string",example:"environment:production"},{name:"deploymentId",type:"string",example:"deploymentId:dpl_xxxxx"},{name:"requestId",type:"string",example:'requestId:"<request-id>"'},{name:"domain",type:"string",example:"domain:my-app.vercel.app"},{name:"requestPath",type:"string",example:"requestPath:*checkout*"},{name:"requestMethod",type:"string",example:"requestMethod:POST"},{name:"region",type:"string",example:"region:iad1"},{name:"service",type:"string",example:"service:api"},{name:"traceId",type:"string",example:"traceId:0123456789abcdef0123456789abcdef"},{name:"spanId",type:"string",example:"spanId:0123456789abcdef"},{name:"runtime",type:"string",example:"runtime:nodejs"},{name:"stream",type:"string",example:"stream:stderr"},{name:"isSystemLog",type:"boolean",example:"isSystemLog:false"},{name:"truncated",type:"boolean",example:"truncated:true"}],requestsFilterFields=[{name:"environment",type:"string",example:"environment:production"},{name:"deploymentId",type:"string",example:"deploymentId:dpl_xxxxx"},{name:"requestId",type:"string",example:'requestId:"<request-id>"'},{name:"requestHostname",type:"string",example:"requestHostname:my-app.vercel.app"},{name:"requestPath",type:"string",example:"requestPath:*checkout*"},{name:"requestMethod",type:"string",example:"requestMethod:POST"},{name:"httpStatus",type:"number",example:"httpStatus >= 500"},{name:"route",type:"string",example:"route:/api/checkout"},{name:"cacheResult",type:"string",example:"cacheResult:MISS"},{name:"edgeNetworkRegion",type:"string",example:"edgeNetworkRegion:iad1"},{name:"service",type:"string",example:"service:api"}],runtimeSource={name:"runtime",event:"vercel.log",select:["projectId","requestId","branch","deploymentId","domain","environment","requestPath","requestMethod","source","service","isSystemLog","region","runtime","level","message","stream","traceId","spanId","attributes","truncated"],queryReason:"cli/logs-runtime",fixedFilters:[],wholeSecondBounds:!1,recordsLabel:"runtime log entries",recordType:"log",filterFields:runtimeFilterFields},BACKGROUND_FUNCTION_EXCLUSION='NOT pathType:"background_func"',requestsSource={name:"requests",event:"vercel.proxy_response",select:["projectId","requestId","deploymentId","environment","requestHostname","requestPath","requestMethod","httpStatus","route","pathType","cacheResult","edgeNetworkRegion","service","clientIpCountry","clientUserAgent","wafAction"],queryReason:"cli/logs-requests",fixedFilters:[BACKGROUND_FUNCTION_EXCLUSION],wholeSecondBounds:!0,recordsLabel:"CDN request records",recordType:"request",filterFields:requestsFilterFields},logsSources={runtime:runtimeSource,requests:requestsSource};function sourceForEvent(event){return Object.values(logsSources).find(source=>source.event===event)}function wrapFieldNames(names,width){let lines=[],line="";for(let name of names){let next=line?`${line}, ${name}`:name;line&&next.length+1>width?(lines.push(`${line},`),line=name):line=next}return line&&lines.push(line),lines}var DEFAULT_LIMIT=100,MAX_LIMIT=1e4,DEFAULT_WINDOW="30m",deploymentOption2={...deploymentOption,description:"Filter to a deployment ID or URL"},environmentOption4={name:"environment",shorthand:"e",type:String,argument:"ENVIRONMENT",deprecated:!1,description:"Filter by environment, including custom environments"},jsonOption3={name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output JSON Lines ending with a summary line"},logsNextOption={...nextCursorOption,description:"Continue a previous query from its summary's next value"},logsProjectOption={...projectOption,shorthand:"p",description:"Select a project (default: linked project)"},logsSinceOption={...sinceOption,description:`Start time: ISO 8601, relative, or now (default: ${DEFAULT_WINDOW} before the end)`},logsUntilOption={...untilOption,description:"End time: ISO 8601, relative, or now (default: now)"},followOption={name:"follow",shorthand:"f",type:Boolean,deprecated:!0,description:"Deprecated; logs always returns a bounded result"};function queryOption(records){return{name:"query",shorthand:"q",type:String,argument:"EXPRESSION",deprecated:!1,description:`Filter ${records} with KQL-inspired syntax`}}function limitOption2(records){return{name:"limit",shorthand:"n",type:Number,argument:"NUMBER",deprecated:!1,description:`Limit returned ${records} (default: ${DEFAULT_LIMIT}, max: ${MAX_LIMIT})`}}function options(records,filterTarget){return[deploymentOption2,environmentOption4,queryOption(filterTarget),formatOption,jsonOption3,limitOption2(records),logsNextOption,logsProjectOption,logsSinceOption,logsUntilOption,followOption]}var timeHelpLines=["Use --since 1h for the last hour; --until 1h ends one hour ago.",`Without --since, the window is the ${DEFAULT_WINDOW} before --until (or now). Start must be before end.`,"requestId filters use the same window; set --since and --until as needed.","Query context and Next page commands are printed on stderr.","--json prints typed lines and ends with a summary; --non-interactive implies --json.","--next keeps the original target, filter, and window, and uses the team in the cursor.","Paging is best-effort: records sharing a timestamp at a page boundary can repeat or be skipped."],runtimeCommonValueLines=["source: function, middleware, ci, edge, daemon","level: error, warning, info, fatal","stream: stdout, stderr"];function filterHelpRows(source){return source.filterFields.map(field=>({syntax:field.name,description:`${field.type}; example: ${field.example}`}))}var commonSyntaxRows=[{syntax:"field:value",description:"Match a value"},{syntax:"field:(a OR b)",description:"Match either value"},{syntax:"field:*",description:"Match records where the field is present"},{syntax:"field != value",description:"Exclude a value"},{syntax:"field:*text*",description:"Match text within a string field"}],commonSyntaxNotes=["Double quote field values that contain spaces or reserved characters.","Quotes work only in field values.","Wildcards support prefix, suffix, and contains matching.","Infix wildcards are unavailable.","--deployment and --environment combine with --query using AND."],runtimeSubcommand={name:"runtime",aliases:[],default:!0,summary:"Display runtime log entries",description:["Display runtime log entries","",`${packageName} logs is equivalent to ${packageName} logs runtime.`,`Defaults: linked project, all environments, latest ${DEFAULT_LIMIT} entries, last ${DEFAULT_WINDOW}.`,"Display full messages and stack traces from newest to oldest.",...timeHelpLines,"The producer column shows service when present, otherwise source.","Team-owned projects only."].join(`
12
+ `),arguments:[],options:options("entries","runtime entries"),helpSections:[{title:"Common --query fields",placement:"afterOptions",rows:filterHelpRows(runtimeSource),body:["","Common values:",...runtimeCommonValueLines.map(line=>` ${line}`),"","Additional public fields supported by the API are accepted."]},{title:"Filter syntax (KQL-inspired)",placement:"afterOptions",rows:[...commonSyntaxRows,{syntax:"AND, OR, NOT, (...)",description:"Combine expressions"},{syntax:"timeout",description:"Search message tokens, ignoring case"}],body:["","Multiple bare words match with AND, in any order:","unexpected token equals unexpected AND token.",'Search messages with unquoted words; bare "unexpected token" is rejected.',"Write AND inside OR groups to make grouping clear:","json AND (parse OR (unexpected AND token)).","Use the requestId value from a log record; quote IDs that contain colons.",...commonSyntaxNotes]}],examples:[{name:"Display recent runtime logs",value:`${packageName} logs runtime`},{name:"Find runtime errors containing timeout",value:`${packageName} logs runtime --query 'level:error AND timeout'`},{name:"Find messages containing several words",value:`${packageName} logs runtime --query 'json AND (parse OR (unexpected AND token))'`},{name:"Find warnings and errors in one region",value:`${packageName} logs runtime --query 'level:(error OR warning) AND region:iad1'`},{name:"Find production errors",value:`${packageName} logs runtime --environment production --query 'level:error'`},{name:"Output recent entries for one request as JSON Lines",placeholders:["<request-id>"],value:`${packageName} logs runtime --query 'requestId:"<request-id>"' --json`},{name:"Print only runtime entries from JSON Lines",value:`${packageName} logs runtime --json | jq 'select(.type == "log") | .data'`}]},requestsSubcommand={name:"requests",aliases:[],summary:"Display CDN request records",description:["Display CDN request records","",`Defaults: linked project, all environments, latest ${DEFAULT_LIMIT} requests, last ${DEFAULT_WINDOW}.`,"Display HTTP status, method, cache result, request ID, and host and path.","Display the selected requests from newest to oldest.",...timeHelpLines,"Time bounds are rounded down to whole seconds.","Background function executions are always excluded, even if a filter selects them.","Team-owned projects only."].join(`
13
+ `),arguments:[],options:options("requests","requests"),helpSections:[{title:"Common --query fields",placement:"afterOptions",rows:filterHelpRows(requestsSource),body:["","Additional public fields supported by the API are accepted."]},{title:"Filter syntax (KQL-inspired)",placement:"afterOptions",rows:[...commonSyntaxRows,{syntax:">, >=, <, <=",description:"Compare numeric fields"},{syntax:"AND, OR, NOT, (...)",description:"Combine expressions"}],body:["","Use field expressions; bare-text search is unavailable for requests.","Use the requestId value from a request record; quote IDs that contain colons.",...commonSyntaxNotes]}],examples:[{name:"Display recent CDN requests",value:`${packageName} logs requests`},{name:"Find requests with server errors",value:`${packageName} logs requests --query 'httpStatus >= 500 AND httpStatus < 600'`},{name:"Find POST requests with cache misses",value:`${packageName} logs requests --query 'requestMethod:POST AND cacheResult:MISS'`},{name:"Find requests for checkout paths",value:`${packageName} logs requests --query 'requestPath:*checkout*'`},{name:"Find production server errors",value:`${packageName} logs requests --environment production --query 'httpStatus >= 500 AND httpStatus < 600'`},{name:"Output request records as JSON Lines",value:`${packageName} logs requests --query 'httpStatus >= 500' --json`},{name:"Check whether more requests matched",value:`${packageName} logs requests --json | jq 'select(.type == "summary") | .pagination'`}]},FIELD_LIST_WIDTH=64,logsCommand={name:"logs",aliases:["log"],description:["Display logs.","",`Defaults: linked project, all environments, latest ${DEFAULT_LIMIT} records, last ${DEFAULT_WINDOW}.`,"Display the selected records from newest to oldest.",...timeHelpLines,"Team-owned projects only."].join(`
14
+ `),arguments:[],subcommandsTitle:"Data sources",subcommands:[runtimeSubcommand,requestsSubcommand],options:options("records","the selected source"),helpSections:[{title:"Common --query fields",placement:"afterOptions",body:["runtime (default)",...wrapFieldNames(runtimeSource.filterFields.map(field=>field.name),FIELD_LIST_WIDTH).map(line=>` ${line}`)," Unquoted bare words search log messages."," Common values:",...runtimeCommonValueLines.map(line=>` ${line}`),"","requests",...wrapFieldNames(requestsSource.filterFields.map(field=>field.name),FIELD_LIST_WIDTH).map(line=>` ${line}`)," Use field expressions to filter request records."," Background function executions are excluded.","","Additional public fields supported by the API are accepted.",`Use ${packageName} logs runtime --help or ${packageName} logs requests --help for types and examples.`]}],examples:[{name:"Display recent runtime logs",value:`${packageName} logs`},{name:"Find runtime errors in production",value:`${packageName} logs --query 'level:error AND environment:production'`},{name:"Display CDN requests with server errors",value:`${packageName} logs requests --query 'httpStatus >= 500'`},{name:"Output logs for a deployment as JSON Lines",value:`${packageName} logs --deployment dpl_xxxxx --json`},{name:"Continue from the summary's next value",placeholders:["<CURSOR>"],value:`${packageName} logs --next <CURSOR> --json`}]};var mcpCommand={name:"mcp",aliases:[],summary:"Set up MCP agents for Vercel",description:"Set up MCP agents and configuration for Vercel integration",arguments:[],options:[{name:"project",description:"Set up project-specific MCP access for the currently linked project",shorthand:null,type:Boolean,deprecated:!1},{name:"clients",description:"Comma-separated list of MCP clients to set up. In interactive mode, skips the client picker when set. Required in non-interactive mode. Options: Claude Code, Claude.ai and Claude for desktop, Cursor, VS Code with Copilot",shorthand:null,type:String,argument:"CLIENTS",deprecated:!1}],examples:[{name:"Interactively set up MCP agents",value:`${packageName} mcp`},{name:"Set up project-specific MCP access",value:`${packageName} mcp --project`},{name:"Non-interactive: set up Cursor and VS Code",value:`${packageName} mcp --clients "Cursor,VS Code with Copilot"`}]};var createGroupSubcommand={name:"create-group",aliases:[],description:"Create a new microfrontends group to compose multiple projects into one cohesive application with shared routing",arguments:[],options:[{name:"name",shorthand:null,type:String,deprecated:!1,description:"Name of the microfrontends group"},{name:"project",shorthand:"p",type:[String],deprecated:!1,description:"Project name to include (repeatable)"},{name:"default-app",shorthand:null,type:String,deprecated:!1,description:"Project name for the default application"},{name:"default-route",shorthand:null,type:String,deprecated:!1,description:"Default route for the default application"},{name:"project-default-route",shorthand:null,type:[String],deprecated:!1,description:'Default route for a non-default project in the form "<project>=<route>" (repeatable)'},{...yesOption,description:"Skip creation confirmation prompt"}],examples:[{name:"Create a microfrontends group interactively",value:`${packageName} microfrontends create-group`},{name:"Create a microfrontends group with options",value:`${packageName} microfrontends create-group --name="My Group" --project=web --project=docs --default-app=web --project-default-route=docs=/docs --yes`}]},addToGroupSubcommand={name:"add-to-group",aliases:[],description:"Add the current project to a microfrontends group so it can be independently deployed as part of the microfrontends group",arguments:[],options:[{name:"group",shorthand:null,type:String,deprecated:!1,description:"Name of the microfrontends group to add to"},{name:"default-route",shorthand:null,type:String,deprecated:!1,description:"Default route for this project (e.g. /docs)"}],examples:[{name:"Add current project to a group interactively",value:`${packageName} microfrontends add-to-group`},{name:"Add current project to a group with options",value:`${packageName} microfrontends add-to-group --group="My Group" --default-route=/docs`}]},removeFromGroupSubcommand={name:"remove-from-group",aliases:[],description:"Remove the current project from its microfrontends group so it is no longer part of the composed application",arguments:[],options:[{...yesOption,description:"Skip the removal confirmations, including the one for a project still in microfrontends.json"}],examples:[{name:"Remove current project from its group interactively",value:`${packageName} microfrontends remove-from-group`}]},deleteGroupSubcommand={name:"delete-group",aliases:[],description:"Delete a microfrontends group and all of its settings. This action is not reversible.",arguments:[],options:[{...yesOption,description:"Skip the deletion confirmation (without a terminal, also pass --group)"},{name:"group",shorthand:null,type:String,deprecated:!1,description:"Name or ID of the microfrontends group to delete"}],examples:[{name:"Delete a microfrontends group interactively",value:`${packageName} microfrontends delete-group`},{name:"Delete a microfrontends group with options",value:`${packageName} microfrontends delete-group --group="My Group"`}]},pullSubcommand={name:"pull",aliases:[],description:"Pull a Vercel Microfrontends configuration into your project",arguments:[],options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"},{...deploymentOption,description:"The deployment ID to use for pulling the microfrontends configuration"},{name:"dpl",shorthand:null,type:String,deprecated:!0}],examples:[{name:"Pull a microfrontends configuration",value:`${packageName} microfrontends pull`},{name:"Pull a microfrontends configuration for a specific deployment",placeholders:["<DEPLOYMENT>"],value:`${packageName} microfrontends pull --deployment=<DEPLOYMENT>`}]},inspectGroupSubcommand={name:"inspect-group",aliases:[],description:"Inspect a microfrontends group and return project metadata used for setup automation",arguments:[],options:[{name:"group",shorthand:null,type:String,deprecated:!1,description:"Name or ID of the microfrontends group to inspect"},{name:"config-file-name",shorthand:null,type:String,deprecated:!1,description:"Custom microfrontends config file path/name relative to the default app root (must end with .json or .jsonc)"},formatOption,jsonOption],examples:[{name:"Inspect a microfrontends group interactively",value:`${packageName} microfrontends inspect-group`},{name:"Inspect a microfrontends group as JSON",value:`${packageName} microfrontends inspect-group --group="My Group" --json`}]},microfrontendsCommand={name:"microfrontends",aliases:["mf"],summary:"Manage microfrontends groups",description:"Manage microfrontends groups that compose multiple projects into one cohesive application",arguments:[],subcommands:[createGroupSubcommand,addToGroupSubcommand,removeFromGroupSubcommand,deleteGroupSubcommand,inspectGroupSubcommand,pullSubcommand],options:[],examples:[]};var openCommand={name:"open",aliases:[],description:"Opens the current project in the Vercel Dashboard.",arguments:[],options:[{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"}],examples:[{name:"Open the current project in the Vercel Dashboard",value:`${packageName} open`}]};var organizationArgument={name:"organization",required:!1},slugOption={name:"slug",shorthand:null,type:String,argument:"SLUG",deprecated:!1,description:"Set the slug (required)"},nameOption3={name:"name",shorthand:null,type:String,argument:"NAME",deprecated:!1,description:"Set the display name"},childTeamOption={name:"child-team",shorthand:null,type:String,argument:"TEAM",deprecated:!1,description:"Select the existing team to add, by ID or slug (required)"},billingPlanOption={name:"billing-plan",shorthand:null,type:String,argument:"BILLING_PLAN",deprecated:!1,description:"Set the child billing plan: platform or enterprise"},billingYesOption={...yesOption,description:"Confirm the billing change without a prompt"},listLimitOption={...limitOption,description:"Number of results to return (default: 20, max: 100)"},listNextOption={...nextCursorOption,shorthand:null},listSubcommand19={name:"list",aliases:["ls"],description:"List organizations you can view",arguments:[],options:[formatOption,jsonOption,listLimitOption,listNextOption],examples:[{name:"List organizations",value:"vercel organizations list"},{name:"List organizations as JSON",value:"vercel organizations list --json"},{name:"Show the next page",value:"vercel organizations list --limit 20 --next <CURSOR>",placeholders:["<CURSOR>"]}]},inspectSubcommand13={name:"inspect",aliases:[],description:"Show an organization by ID or slug",arguments:[organizationArgument],options:[formatOption,jsonOption],examples:[{name:"Inspect an organization by ID",value:"vercel organizations inspect org_abc123"},{name:"Inspect by slug",value:"vercel organizations inspect acme"},{name:"Inspect the active team's organization",value:"vercel --scope acme organizations inspect"}]},createSubcommand7={name:"create",aliases:[],description:"Create an organization using an existing team",arguments:[],options:[formatOption,jsonOption,slugOption,nameOption3],examples:[{name:"Create an organization from the active team",value:"vercel organizations create --slug acme"},{name:"Create an organization from another team",value:"vercel --scope acme organizations create --slug acme"},{name:"Create an organization with a display name",value:'vercel --scope acme organizations create --slug acme --name "Acme Inc"'}]},updateSubcommand10={name:"update",aliases:[],description:"Update an organization slug",arguments:[organizationArgument],options:[formatOption,jsonOption,slugOption],examples:[{name:"Change the slug",value:"vercel organizations update org_abc123 --slug acme"},{name:"Change the active team's organization slug",value:"vercel --scope acme organizations update --slug acme"}]},teamsListSubcommand={name:"list",aliases:["ls"],description:"List teams in an organization",arguments:[organizationArgument],options:[formatOption,jsonOption,listLimitOption,listNextOption],examples:[{name:"List organization teams as JSON",value:"vercel organizations teams list org_abc123 --json"},{name:"List the active team's organization teams",value:"vercel --scope acme organizations teams list"}]},teamsCreateSubcommand={name:"create",aliases:[],description:"Create a child team billed through the organization",arguments:[organizationArgument],options:[formatOption,jsonOption,slugOption,{...nameOption3,description:"Set the display name (required)"},{...billingPlanOption,description:"Set the child billing plan: platform or enterprise (default: platform)"},billingYesOption],examples:[{name:"Create a child team",value:'vercel organizations teams create org_abc123 --slug acme-web --name "Acme Web"'},{name:"Create a child team in the active team's organization",value:'vercel --scope acme organizations teams create --slug acme-web --name "Acme Web"'},{name:"Create an enterprise child team in CI, after a person approves the billing change",value:'vercel organizations teams create org_abc123 --slug acme-web --name "Acme Web" --billing-plan enterprise --yes'}]},teamsAddSubcommand={descriptionTone:"normal",name:"add",aliases:[],description:"Add an existing team and move its billing under the organization",arguments:[organizationArgument],options:[formatOption,jsonOption,childTeamOption,{...billingPlanOption,description:"Set the child billing plan: platform or enterprise (default: derived from the existing team)"},billingYesOption],examples:[{name:"Add an existing team by ID",value:"vercel organizations teams add org_abc123 --child-team team_abc123"},{name:"Add an existing team by slug",value:"vercel organizations teams add org_abc123 --child-team acme-web"},{name:"Add an existing team in CI, after a person approves the billing change",value:"vercel organizations teams add org_abc123 --child-team acme-web --yes"}]},teamsSubcommand={name:"teams",aliases:["team"],description:"Manage organization child teams",arguments:[],options:[],subcommands:[teamsListSubcommand,teamsCreateSubcommand,teamsAddSubcommand],examples:[]},organizationsCommand={name:"organizations",aliases:["organization"],description:"Manage Vercel organizations",arguments:[],options:[],subcommands:[listSubcommand19,inspectSubcommand13,createSubcommand7,updateSubcommand10,teamsSubcommand],examples:[{name:"List organizations",value:"vercel organizations list"}]};var listOptions=[jsonOption,{...limitOption,shorthand:"n"},nextCursorOption,{...projectOption,shorthand:"p"}];function collectionCommand(name,singular){return{name,aliases:[singular],description:`List Page Integrity ${name}`,arguments:[],options:[jsonOption],subcommands:[{name:"list",aliases:["ls"],description:`List Page Integrity ${name} for a project`,arguments:[],options:[...listOptions,...name!=="headers"?[{...allOption,description:`Include auto-approved ${name}`}]:[]],examples:[{name:`List ${name} for the linked project`,value:`${packageName} page-integrity ${name} list`},{name:`List ${name} for a specific project`,value:`${packageName} page-integrity ${name} list --project storefront`},{name:`List ${name} as JSON`,value:`${packageName} page-integrity ${name} list --json`},...name!=="headers"?[{name:`Include auto-approved ${name}`,value:`${packageName} page-integrity ${name} list --all`}]:[]],helpSections:[{title:"Notes",body:[name==="headers"?"--limit counts header groups. Each value and status is displayed as a separate row.":`Auto-approved ${name} are excluded by a server-side filter unless --all is set.`]}]}],examples:[]}}var scriptsCommand=collectionCommand("scripts","script"),headersCommand=collectionCommand("headers","header"),connectionsCommand=collectionCommand("connections","connection"),pageIntegrityCommand={name:"page-integrity",aliases:[],hidden:!0,summary:"List your Page Integrity inventory",description:"Page Integrity provides client-side security by monitoring scripts, security headers, and outgoing connections from your pages. Use monitoring mode to build an inventory and receive notifications when resources change, then enable blocking when you're ready to prevent new or changed resources from loading.",arguments:[],options:[jsonOption],subcommands:[scriptsCommand,headersCommand,connectionsCommand],examples:[]};var pricingCommand={name:"pricing",aliases:[],summary:"Compare public plan features",description:"Show Hobby, Pro, and Enterprise features from the public Vercel pricing table.",arguments:[{name:"query",required:!1,multiple:!0}],options:[formatOption,jsonOption],examples:[{name:"List features grouped by the lowest plan that includes them",value:`${packageName} pricing`},{name:"Check whether a feature is available on a given plan",value:`${packageName} pricing "skew protection"`},{name:"Output machine-readable JSON for agents",value:`${packageName} pricing firewall --json`}]};var timeoutOption={name:"timeout",description:"Time to wait for promotion completion (default: 3m)",argument:"TIME",shorthand:null,type:String,deprecated:!1},statusSubcommand3={name:"status",aliases:[],description:"Show the status of any current pending promotions",arguments:[{name:"project",required:!1}],options:[timeoutOption,{...yesOption,description:"Skip the confirmation prompt when linking a Project"}],examples:[{name:"Show status for the linked project",value:`${packageName} promote status`},{name:"Show status for a named project",placeholders:["<project>"],value:`${packageName} promote status <project>`},{name:"Wait up to 30 seconds for status",value:`${packageName} promote status --timeout 30s`}]},promoteCommand={name:"promote",aliases:[],description:"Promote an existing Deployment to current",arguments:[{name:"deployment",required:!0}],subcommands:[statusSubcommand3],options:[timeoutOption,{...yesOption,description:"Skip the confirmation prompt when linking a Project"}],examples:[{name:"Promote a Deployment using ID or URL",placeholders:["<DEPLOYMENT>"],value:`${packageName} promote <DEPLOYMENT>`}]};var redeployCommand={name:"redeploy",aliases:[],description:"Rebuild and deploy a previous deployment.",arguments:[{name:"deployment",required:!0}],options:[{name:"no-wait",shorthand:null,description:"Don't wait for the redeploy to finish",type:Boolean,deprecated:!1},{...environmentOption,description:"Environment to redeploy to: production, preview, or a custom environment (default: the original deployment's environment)"},targetOption],examples:[{name:"Rebuild and deploy an existing deployment using id or url",value:`${packageName} redeploy my-deployment.vercel.app`},{name:"Write Deployment URL to a file",value:`${packageName} redeploy my-deployment.vercel.app > deployment-url.txt`},{name:"Rebuild and deploy an existing deployment to a specific environment",value:`${packageName} redeploy my-deployment.vercel.app --environment preview`}]};var listSubcommand20={name:"list",aliases:["ls"],description:"List all redirects for the current project. These redirects apply to all deployments and environments. There may also be redirects defined in a deployment that are not listed here.",arguments:[],options:[projectOption,jsonOption,{name:"query",description:"Search for redirects by source or destination",shorthand:"q",type:String,argument:"TEXT",deprecated:!1},{name:"search",description:"Deprecated alias for `--query`",shorthand:"s",type:String,argument:"QUERY",deprecated:!0},nextCursorOption,{name:"limit",description:"Number of redirects per page (default: 50)",shorthand:"n",type:Number,argument:"NUMBER",deprecated:!1},{name:"page",description:"Page number to display",shorthand:null,type:Number,argument:"NUMBER",deprecated:!0},{name:"per-page",description:"Number of redirects per page (default: 50)",shorthand:null,type:Number,argument:"NUMBER",deprecated:!0},{name:"staging",description:"List redirects from the staging version",shorthand:null,type:Boolean,deprecated:!1},{name:"redirects-version",description:"List redirects from a specific version",shorthand:null,type:String,argument:"VERSION",deprecated:!1},{name:"version",description:"Use `--redirects-version`",shorthand:null,type:String,argument:"VERSION_ID",deprecated:!0}],examples:[{name:"List all redirects",value:`${packageName} redirects list`},{name:"Search for redirects",value:`${packageName} redirects list --query "/old-path"`},{name:"List redirects on page 2",placeholders:["<CURSOR>"],value:`${packageName} redirects list --next <CURSOR>`},{name:"List redirects with custom page size",value:`${packageName} redirects list --limit 25`}]},listVersionsSubcommand={name:"list-versions",aliases:["ls-versions"],description:"List all versions of redirects",arguments:[],options:[projectOption,jsonOption],examples:[{name:"List all redirect versions",value:`${packageName} redirects list-versions`}]},addSubcommand9={name:"add",aliases:[],description:"Add a new redirect",arguments:[{name:"source",required:!1},{name:"destination",required:!1}],options:[projectOption,{name:"status",description:"HTTP status code (301, 302, 307, or 308)",shorthand:null,type:Number,argument:"CODE",deprecated:!1},{name:"case-sensitive",description:"Make the redirect case sensitive",shorthand:null,type:Boolean,deprecated:!1},{name:"preserve-query-params",description:"Preserve query parameters when redirecting",shorthand:null,type:Boolean,deprecated:!1},{name:"name",description:"Version name for this redirect (max 256 characters)",shorthand:null,type:String,argument:"NAME",deprecated:!1},{...yesOption,description:"Skip prompts and use default values"}],examples:[{name:"Add a new redirect interactively",value:`${packageName} redirects add`},{name:"Add a new redirect with arguments",value:`${packageName} redirects add /old-path /new-path`},{name:"Add a redirect with all options",value:`${packageName} redirects add /old-path /new-path --status 301 --case-sensitive --preserve-query-params --name "My redirect"`},{name:"Add a redirect non-interactively",value:`${packageName} redirects add /old-path /new-path --yes`}]},uploadSubcommand={name:"import",aliases:["upload"],description:"Import redirects from a CSV or JSON file",arguments:[{name:"file",required:!0}],options:[projectOption,{...yesOption,description:"Skip confirmation prompt"},{name:"force",description:"Replace all existing redirects",shorthand:null,type:Boolean,deprecated:!1},{name:"overwrite",description:"Deprecated alias for `--force`",shorthand:null,type:Boolean,deprecated:!0}],examples:[{name:"Import redirects from CSV file",value:`${packageName} redirects import redirects.csv`},{name:"Import redirects from JSON file",value:`${packageName} redirects import redirects.json`},{name:"Import and overwrite existing redirects",value:`${packageName} redirects import redirects.csv --force`},{name:"Import without confirmation",value:`${packageName} redirects import redirects.csv --yes`}]},removeSubcommand14={name:"remove",aliases:["rm"],description:"Remove a redirect",arguments:[{name:"source",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when removing a redirect"}],examples:[{name:"Remove a redirect",value:`${packageName} redirects remove /old-path`}]},promoteSubcommand={name:"promote",aliases:[],description:"Promote a staged redirects version to production",arguments:[{name:"version-id",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when promoting"}],examples:[{name:"Promote a redirect version",placeholders:["<version-id>"],value:`${packageName} redirects promote <version-id>`}]},restoreSubcommand={name:"restore",aliases:[],description:"Restore a previous redirects version",arguments:[{name:"version-id",required:!0}],options:[projectOption,{...yesOption,description:"Skip the confirmation prompt when restoring"}],examples:[{name:"Restore a redirects version",placeholders:["<version-id>"],value:`${packageName} redirects restore <version-id>`}]},redirectsCommand={descriptionTone:"normal",name:"redirects",aliases:["redirect"],description:"Manage redirects for a project. Redirects managed at the project level apply to all deployments and environments and take effect immediately after being created and promoted to production.",arguments:[],subcommands:[listSubcommand20,listVersionsSubcommand,addSubcommand9,uploadSubcommand,removeSubcommand14,promoteSubcommand,restoreSubcommand],options:[],examples:[]};var removeCommand={name:"remove",aliases:["rm"],description:"Delete deployment(s) by project name or deployment ID.",arguments:[{name:"name|deploymentId",required:!0,multiple:!0}],options:[{...yesOption,description:"Skip confirmation"},{name:"safe",shorthand:null,deprecatedShorthand:"s",type:Boolean,deprecated:!1,description:"Skip deployments with an active alias"},{name:"hard",shorthand:null,type:Boolean,deprecated:!1}],examples:[{name:"Delete a deployment identified by Deployment ID",value:`${packageName} remove dpl_abcdef123456890`},{name:"Delete all deployments with Project name `my-app`",value:`${packageName} remove my-app`},{name:"Delete two deployments with Deployment IDs",value:`${packageName} remove dpl_eyWt6zuSdeus dpl_uWHoA9RQ1d1o`}]};var timeoutOption2={name:"timeout",description:"Time to wait for rollback completion (default: 3m)",argument:"TIME",shorthand:null,type:String,deprecated:!1},statusSubcommand4={name:"status",aliases:[],description:"Show the status of any current pending rollbacks",arguments:[{name:"project",required:!1}],options:[timeoutOption2],examples:[{name:"Show status for the linked project",value:`${packageName} rollback status`},{name:"Show status for a named project",placeholders:["<project>"],value:`${packageName} rollback status <project>`},{name:"Wait up to 30 seconds for status",value:`${packageName} rollback status --timeout 30s`}]},rollbackCommand={name:"rollback",aliases:[],description:"Roll back to a previous deployment",arguments:[{name:"deployment",required:!0}],subcommands:[statusSubcommand4],options:[timeoutOption2,yesOption],examples:[{name:"Rollback a deployment using id or url",placeholders:["<DEPLOYMENT>"],value:`${packageName} rollback <DEPLOYMENT>`}]};var dplOption={name:"dpl",shorthand:null,deprecated:!0,type:String},configureSubcommand={name:"update",description:"Update rolling release settings for a project",aliases:["configure"],arguments:[],examples:[{name:"Enable automatic rolling release: 10% for 5 minutes, then 50% for 10 minutes, then 100%",value:`${packageName} rolling-release update --enable --advancement-type=automatic --stage=10,5m --stage=50,10m`},{name:"Enable manual-approval rolling release: 10%, then 50%, then 100% (each stage requires approval)",value:`${packageName} rolling-release update --enable --advancement-type=manual-approval --stage=10 --stage=50`},{name:"Disable rolling releases",value:`${packageName} rolling-release update --no-enable`},{name:"Update with raw JSON (advanced)",value:`${packageName} rolling-release update --cfg='{"enabled":true, "advancementType":"automatic", "stages":[{"targetPercentage":10,"duration":5},{"targetPercentage":100}]}'`}],options:[projectOption,{name:"cfg",shorthand:null,deprecated:!1,type:String,description:"Raw JSON configuration (advanced). Overrides other options."},{name:"enable",shorthand:null,deprecated:!1,type:Boolean,description:"Turn on rolling releases for this project"},{name:"no-enable",shorthand:null,deprecated:!1,type:Boolean,description:"Turn off rolling releases for this project"},{name:"disable",shorthand:null,deprecated:!0,type:Boolean,description:"Deprecated alias for `--no-enable`"},{name:"advancement-type",shorthand:null,deprecated:!1,type:String,argument:"TYPE",description:'How stages advance: "automatic" or "manual-approval"'},{name:"stage",shorthand:null,deprecated:!1,type:[String],argument:"PERCENTAGE[,DURATION]",description:'Add a rollout stage. Percentage (1-99) with optional duration for automatic advancement (e.g. "10,5m"). Can be specified multiple times. A final 100% stage is added automatically.'},jsonOption]},startSubcommand2={name:"start",description:"Start a rolling release",aliases:[],arguments:[],examples:[{name:"Start a rolling release",value:`${packageName} rolling-release start --deployment=dpl_123`},{name:"Start a rolling release using URL",value:`${packageName} rolling-release start --deployment=https://example.vercel.app`},{name:"Non-interactive (e.g. preview deployment): use --yes to promote",value:`${packageName} rolling-release start --deployment=dpl_123 --yes`}],options:[{...deploymentOption,description:"The deployment ID or URL to target for the rolling release",required:!0},dplOption,projectOption,yesOption]},approveSubcommand={name:"approve",description:"Approve the current stage of an active rolling release",aliases:[],arguments:[],examples:[{name:"Approve the current stage of an active rolling release",value:`${packageName} rolling-release approve --currentStageIndex=0 --deployment=dpl_123`}],options:[projectOption,{...deploymentOption,description:"The deployment ID or URL of the rolling release"},dplOption,{name:"currentStageIndex",shorthand:null,deprecated:!1,type:String,description:"The current stage of a rolling release to approve"}]},abortSubcommand={name:"abort",description:"Abort an active rolling release",aliases:[],arguments:[],examples:[{name:"Abort an active rolling release",value:`${packageName} rolling-release abort --deployment=dpl_123`}],options:[projectOption,{...deploymentOption,description:"The deployment ID or URL of the rolling release to abort"},dplOption]},completeSubcommand={name:"complete",description:"Complete an active rolling release",aliases:[],arguments:[],examples:[{name:"Complete an active rolling release",value:`${packageName} rolling-release complete --deployment=dpl_123`}],options:[projectOption,{...deploymentOption,description:"The deployment ID or URL of the rolling release to complete"},dplOption]},fetchSubcommand={name:"inspect",description:"Show details about a rolling release",aliases:["fetch"],arguments:[],examples:[{name:"Show details about a rolling release",value:`${packageName} rolling-release inspect`}],options:[projectOption,jsonOption]},rollingReleaseCommand={name:"rolling-release",aliases:["rr"],summary:"Shift deployment traffic in stages",description:"Rolling releases gradually shift traffic to a new deployment in stages, allowing you to monitor for errors before serving all traffic. Learn more: https://vercel.com/docs/rolling-releases",arguments:[],subcommands:[configureSubcommand,startSubcommand2,approveSubcommand,abortSubcommand,completeSubcommand,fetchSubcommand],options:[],examples:[{name:"Enable automatic rolling release with two stages",value:`${packageName} rolling-release update --enable --advancement-type=automatic --stage=10,5m --stage=50,10m`},{name:"Enable manual-approval rolling release",value:`${packageName} rolling-release update --enable --advancement-type=manual-approval --stage=10 --stage=50`},{name:"Disable rolling releases",value:`${packageName} rolling-release update --no-enable`},{name:"Start a rolling release",value:`${packageName} rolling-release start --deployment=dpl_123`},{name:"Approve an active rolling release stage",value:`${packageName} rolling-release approve --currentStageIndex=0 --deployment=dpl_123`},{name:"Abort an active rolling release",value:`${packageName} rolling-release abort --deployment=dpl_123`},{name:"Complete an active rolling release",value:`${packageName} rolling-release complete --deployment=dpl_123`}]};var sandboxCommand={name:"sandbox",aliases:[],description:"Interact with Vercel Sandbox",arguments:[],options:[],examples:[{name:"List sandboxes for the current project",value:`${packageName} sandbox list`},{name:"Create a sandbox and connect to it",value:`${packageName} sandbox create --connect`}]};var localOption={name:"local",shorthand:null,deprecatedShorthand:"L",type:Boolean,deprecated:!1,description:"Use the local Schedules session started by vercel dev"},namespaceOption={name:"namespace",shorthand:null,type:String,argument:"NAMESPACE",deprecated:!1,description:"Use a schedule namespace (default: default)"},scheduleEnvironmentOption={...environmentOption,description:"Use the schedules of production or a custom environment by name or ID (default: production)"},scheduleGitBranchOption={...gitBranchOption,description:"Use the schedules of a Git branch's deployments in the linked repository"},scheduleUserOption={...userOption,description:"Use the schedules of CLI deployments by a user ID"},trackOptions=[scheduleEnvironmentOption,scheduleGitBranchOption,scheduleUserOption],nextOption={name:"next",shorthand:null,type:String,argument:"CURSOR",deprecated:!1,description:"Show the next page using the cursor from the previous output"},cronOption={name:"cron",shorthand:null,type:String,argument:"EXPRESSION",deprecated:!1,description:"Use a cron expression"},atOption={name:"at",shorthand:null,type:String,argument:"DATETIME",deprecated:!1,description:"Run once at a local datetime (YYYY-MM-DDTHH:mm or :00 seconds)"},timezoneOption={name:"timezone",shorthand:null,type:String,argument:"TIMEZONE",deprecated:!1,description:"Evaluate expressions in an IANA timezone (default: UTC)"},createJitterOption={name:"jitter",shorthand:null,type:Number,argument:"MINUTES",deprecated:!1,description:"Add a jitter window between 1 and 15 minutes"},updateJitterOption={name:"jitter",shorthand:null,type:String,argument:"MINUTES|none",deprecated:!1,description:"Set jitter to 1\u201315 minutes, or use none to remove it"},topicOption={name:"topic",shorthand:null,type:String,argument:"TOPIC",deprecated:!1,description:"Target a queue topic"},payloadOption={name:"payload",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Set the JSON payload delivered to the target"},updatePayloadOption={...payloadOption,description:"Replace the JSON payload; use null to remove it"},nameArgument={name:"name",required:!0},scheduleOutputOptions=[formatOption,jsonOption,localOption],createSubcommand8={name:"create",aliases:[],description:"Create a schedule",arguments:[nameArgument],options:[namespaceOption,...trackOptions,cronOption,atOption,timezoneOption,createJitterOption,topicOption,payloadOption,...scheduleOutputOptions],examples:[{name:"Create a recurring schedule",value:`${packageName} schedules create daily-cleanup --cron "0 2 * * *" --topic scheduled-cleanup`},{name:"Create a one-time schedule",value:`${packageName} schedules create send-reminder --at 2026-09-17T10:00 --timezone America/New_York --topic reminders`}]},updateSubcommand11={name:"update",aliases:[],description:"Update a schedule",arguments:[nameArgument],options:[namespaceOption,...trackOptions,cronOption,atOption,timezoneOption,updateJitterOption,topicOption,updatePayloadOption,...scheduleOutputOptions],examples:[{name:"Change a recurring schedule",value:`${packageName} schedules update daily-cleanup --cron "0 3 * * *"`},{name:"Remove a jitter window",value:`${packageName} schedules update daily-cleanup --jitter none`}]};function actionSubcommand(name,description2){return{name,aliases:[],description:description2,arguments:[nameArgument],options:[namespaceOption,...trackOptions,...scheduleOutputOptions],examples:[{name:`${description2} in the default namespace`,value:`${packageName} schedules ${name} daily-cleanup`}]}}var enableUntilOption={...untilOption,description:"Enable only until this time, then disable again: ISO 8601 or Unix milliseconds"},enableForOption={name:"for",shorthand:null,type:String,argument:"DURATION",deprecated:!1,description:"Enable only for this long, then disable again (e.g. 30m, 5h)"},enableSubcommand4={...actionSubcommand("enable","Enable a schedule"),options:[namespaceOption,...trackOptions,enableUntilOption,enableForOption,...scheduleOutputOptions],examples:[{name:"Enable a schedule in the default namespace",value:`${packageName} schedules enable daily-cleanup`},{name:"Enable a schedule for 2 hours",value:`${packageName} schedules enable daily-cleanup --for 2h`},{name:"Enable a schedule until a time",value:`${packageName} schedules enable daily-cleanup --until 2026-10-09T17:00:00Z`}]},disableSubcommand3=actionSubcommand("disable","Disable a schedule"),invokeSubcommand=actionSubcommand("invoke","Invoke a schedule immediately"),deleteSubcommand3={name:"delete",aliases:["rm","del"],description:"Delete a schedule",arguments:[nameArgument],options:[namespaceOption,...trackOptions,{...yesOption,description:"Skip the confirmation prompt when deleting"},...scheduleOutputOptions],examples:[{name:"Delete a schedule",value:`${packageName} schedules delete daily-cleanup`},{name:"Delete without confirmation",value:`${packageName} schedules delete daily-cleanup --yes`}]},sortOption={name:"sort",shorthand:null,type:String,argument:"ORDER",deprecated:!1,description:"Sort by time: asc or desc (default: desc)"},fromOption={name:"from",shorthand:null,type:Number,deprecated:!0},toOption={name:"to",shorthand:null,type:Number,deprecated:!0},executionOption={name:"execution",shorthand:null,type:String,argument:"EXECUTION",deprecated:!1,description:"Filter by execution ID substring"},executionIdOption={name:"execution-id",shorthand:null,type:String,argument:"ID",deprecated:!0,description:"Deprecated alias for `--execution`"},executionsListSubcommand={name:"list",aliases:["ls"],description:"List executions for a schedule",arguments:[nameArgument],options:[namespaceOption,...trackOptions,limitOption,nextOption,sortOption,{...sinceOption,description:"Start time: ISO 8601 or relative, like 1h or 7d (at most 30 days before --until)"},{...untilOption,description:"End time: ISO 8601 or relative; requires --since (default: now)"},fromOption,toOption,executionOption,executionIdOption,formatOption,jsonOption,{...localOption,description:"Local execution history is not supported"}],examples:[{name:"List recent executions for a schedule",value:`${packageName} schedules executions list daily-cleanup`},{name:"List executions from the last 7 days",value:`${packageName} schedules executions list daily-cleanup --since 7d`},{name:"List executions in a time range",value:`${packageName} schedules executions list daily-cleanup --since 2026-09-01T00:00:00Z --until 2026-09-02T00:00:00Z`},{name:"Continue listing executions",placeholders:["<CURSOR>"],value:`${packageName} schedules executions list daily-cleanup --next <CURSOR>`},{name:"List executions as JSON",value:`${packageName} schedules executions list daily-cleanup --json`}]},executionsSubcommand={name:"executions",aliases:[],description:"Inspect schedule execution history",arguments:[],subcommands:[executionsListSubcommand],options:[{...localOption,description:"Local execution history is not supported"}],examples:[{name:"List recent executions for a schedule",value:`${packageName} schedules executions list daily-cleanup`}]},listSubcommand21={name:"list",aliases:["ls"],description:"List schedules",arguments:[],options:[namespaceOption,...trackOptions,limitOption,nextOption,...scheduleOutputOptions],examples:[{name:"List schedules in the default namespace",value:`${packageName} schedules list`},{name:"List schedules in another namespace",value:`${packageName} schedules list --namespace jobs`},{name:"List schedules for a Git branch",value:`${packageName} schedules list --git-branch feature`},{name:"List schedules for a custom environment",value:`${packageName} schedules list --environment staging`},{name:"List schedules for CLI deployments by a user",value:`${packageName} schedules list --user user_123`},{name:"Continue listing schedules",placeholders:["<CURSOR>"],value:`${packageName} schedules list --next <CURSOR>`},{name:"List schedules as JSON",value:`${packageName} schedules list --json`}]},getSubcommand2={name:"inspect",aliases:["get"],description:"Show a schedule",arguments:[nameArgument],options:[...scheduleOutputOptions,namespaceOption,...trackOptions],examples:[{name:"Show a schedule in the default namespace",value:`${packageName} schedules inspect daily-cleanup`},{name:"Show a schedule in another namespace",value:`${packageName} schedules inspect daily-cleanup --namespace jobs`},{name:"Show a schedule as JSON",value:`${packageName} schedules inspect daily-cleanup --json`}]},schedulesCommand={name:"schedules",aliases:[],description:"Manage schedules for the current project",arguments:[],subcommands:[listSubcommand21,getSubcommand2,createSubcommand8,updateSubcommand11,enableSubcommand4,disableSubcommand3,invokeSubcommand,deleteSubcommand3,executionsSubcommand],options:[localOption],examples:[]};var checkSubcommand2={name:"check",aliases:[],description:"Run the security checks for the current team and show each check with its risk level, status, violation count, and muted findings. Pass check slugs to compute only those checks and list their findings",default:!0,arguments:[{name:"check",required:!1,multiple:!0}],options:[{name:"findings",shorthand:null,type:Boolean,deprecated:!1,description:"List individual findings under each check, including muted ones. Implied when a check slug is passed"},{name:"limit",shorthand:"n",type:Number,argument:"N",deprecated:!1,description:"Max findings listed per check (default: all). Violation counts are always exact even when findings are capped"},{...projectOption,shorthand:"p",description:"Scope the report to one project"},formatOption,jsonOption],examples:[{name:"Run all security checks",value:`${packageName} security check`},{name:"Deep-dive one check and its findings",value:`${packageName} security check pats-no-expiration`},{name:"Output the raw report as JSON",value:`${packageName} security check --json`}]},securityCommand={name:"security",aliases:[],description:"Inspect the security posture of the current team",arguments:[],subcommands:[checkSubcommand2],options:[],examples:[]};var signupCommand={name:"signup",aliases:[],description:"Create a Vercel account and sign in.",arguments:[],options:[{name:"email",description:"Email address to use when creating the account",argument:"EMAIL",shorthand:null,type:String,deprecated:!1}],examples:[{name:"Create a Vercel account with an email address.",value:`${packageName} signup --email user@example.com`},{name:"Create a Vercel account and enter your email when prompted.",value:`${packageName} signup`}],disabledGlobalOptions:["token"]};var skillsCommand={name:"skills",aliases:[],description:"Discover agent skills relevant to your project",arguments:[{name:"query",required:!1}],options:[{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"},{name:"format",shorthand:null,type:String,argument:"FORMAT",deprecated:!1},yesOption],examples:[{name:"Recommend skills based on detected project",value:`${packageName} skills`},{name:"Search for skills by keyword",value:`${packageName} skills nextjs`}]};var OIDC_CAPABLE_STORE_TYPES=new Set(["blob"]),FIRST_PARTY_PRODUCT_LABELS={blob:"Vercel Blob",postgres:"Vercel Postgres",redis:"Vercel KV","edge-config":"Vercel Global Config","global-config":"Vercel Global Config"};async function getStorageStores(client,options2={}){return(await client.fetch("/v1/storage/stores",{json:!0,accountId:options2.accountId})).stores??[]}async function getStorageStore(client,storeId,options2={}){return(await client.fetch(`/v1/storage/stores/${encodeURIComponent(storeId)}`,{json:!0,accountId:options2.accountId})).store}function resolveStore(stores,identifier){let byId=stores.find(store=>store.id===identifier);if(byId)return{status:"found",store:byId};let byName=stores.filter(store=>store.name===identifier);return byName.length===1?{status:"found",store:byName[0]}:byName.length>1?{status:"ambiguous",matches:byName}:{status:"not_found"}}function storeSupportsOidc(store){return OIDC_CAPABLE_STORE_TYPES.has(store.type??"")}function storeProductLabel(store){if(store.product?.name)return store.product.name;let type=store.type??"unknown";return FIRST_PARTY_PRODUCT_LABELS[type]??type}function getConnections(store){return store.projectsMetadata??[]}function getProjectConnections(store,projectId){return getConnections(store).filter(connection=>connection.projectId===projectId)}function resolveProjectConnection(store,projectId,environments){let connections=getProjectConnections(store,projectId);if(connections.length===0)return{status:"not_found"};if(connections.length===1)return{status:"found",connection:connections[0]};if(environments?.length){let overlapping=connections.filter(connection=>connection.environments.some(environment=>environments.includes(environment)));if(overlapping.length===1)return{status:"found",connection:overlapping[0]};if(overlapping.length>1)return{status:"ambiguous",connections:overlapping}}return{status:"ambiguous",connections}}function findOverlappingConnections(store,projectId,environments){return getProjectConnections(store,projectId).filter(connection=>connection.environments.some(environment=>environments.includes(environment)))}async function disconnectStoreProjects(client,store,accountId){await client.fetch(`/v1/storage/stores/${encodeURIComponent(store.id)}/connections`,{method:"DELETE",accountId})}var blobAccessOption={name:"access",shorthand:null,type:String,argument:"ACCESS",deprecated:!1,description:"Blob only: access level for the store, `public` or `private` (required)"},blobRegionOption={name:"region",shorthand:null,type:String,argument:"REGION",deprecated:!1,description:"Blob only: region to create the store in (default: iad1)"},BLOB_ACCESS_VALUES=["public","private"];function isBlobAccess(value){return typeof value=="string"&&BLOB_ACCESS_VALUES.includes(value)}var blobProvider={type:"blob",apiTypes:["blob"],label:"Vercel Blob",typeAliases:[],createOptions:[blobAccessOption,blobRegionOption],async validateCreate(flags,{prompt}){let access=flags["--access"];if(access===void 0&&prompt&&(access=await prompt.select("Choose the access type for the blob store",[{name:"Private",value:"private",description:"For sensitive documents, user content, and apps with custom auth"},{name:"Public",value:"public",description:"For images, videos, large media, and public assets"}])),access===void 0)return{valid:!1,reason:"missing_arguments",message:"Blob stores require --access. Pass --access public or --access private."};if(!isBlobAccess(access))return{valid:!1,reason:"invalid_arguments",message:`Invalid --access value "${String(access)}". Must be public or private.`};let region=flags["--region"];return region!==void 0&&typeof region!="string"?{valid:!1,reason:"invalid_arguments",message:"--region must be a region id such as iad1."}:{valid:!0,params:{access,region:region??"iad1"}}},async create(client,{name,params,accountId}){let response=await client.fetch("/v1/storage/stores/blob",{method:"POST",body:{name,...params},accountId});return{id:response.store.id,name:response.store.name??name,details:{region:response.store.region??params.region??null,access:response.store.access??params.access??null}}},async delete(client,{store,accountId}){await disconnectStoreProjects(client,store,accountId),await client.fetch(`/v1/storage/stores/blob/${encodeURIComponent(store.id)}`,{method:"DELETE",accountId})},async describe(_client,{store}){let raw=store,suffix=store.id.replace(/^store_/,"").toLowerCase(),access=raw.access==="private"?"private":"public";return{region:raw.region??null,access,size:raw.size??null,count:raw.count??null,billingState:raw.billingState??null,baseUrl:`${suffix}.${access}.blob.vercel-storage.com`}}},edgeConfigItemsOption={name:"items",shorthand:null,type:String,argument:"JSON",deprecated:!1,description:"Global Config only: initial items as a JSON object of key \u2192 value pairs"},globalConfigProvider={type:"global-config",apiTypes:["global-config","edge-config"],label:"Vercel Global Config",typeAliases:["edge-config","edgeconfig"],createOptions:[edgeConfigItemsOption],async validateCreate(flags){let items=flags["--items"];if(items===void 0)return{valid:!0,params:{}};if(typeof items!="string")return{valid:!1,reason:"invalid_arguments",message:"--items must be a JSON object of key \u2192 value pairs."};let parsed;try{parsed=JSON.parse(items)}catch{return{valid:!1,reason:"invalid_arguments",message:"--items must be valid JSON."}}return!parsed||typeof parsed!="object"||Array.isArray(parsed)?{valid:!1,reason:"invalid_arguments",message:"--items must be a JSON object of key \u2192 value pairs."}:{valid:!0,params:{items:parsed}}},async create(client,{name,params,accountId}){let response=await client.fetch("/v1/global-config",{method:"POST",body:{slug:name,...params},accountId});return{id:response.id,name:response.slug??name,details:{itemCount:response.itemCount??null}}},async delete(client,{store,accountId}){await disconnectStoreProjects(client,store,accountId),await client.fetch(`/v1/global-config/${encodeURIComponent(store.id)}`,{method:"DELETE",accountId})},async describe(client,{store,accountId}){let config=await client.fetch(`/v1/global-config/${encodeURIComponent(store.id)}`,{accountId});return{slug:config.slug??store.name,itemCount:config.itemCount??null,sizeInBytes:config.sizeInBytes??null,digest:config.digest??null}}},STORAGE_PROVIDERS=[blobProvider,globalConfigProvider];function listStorageProviderTypes(){return STORAGE_PROVIDERS.map(provider=>provider.type)}function getStorageProvider(type){if(!type)return;let normalized=type.toLowerCase();return STORAGE_PROVIDERS.find(provider=>provider.type===normalized||provider.typeAliases.includes(normalized)||provider.apiTypes.includes(normalized))}function storeTypeName(store){let apiType=store.type??"unknown";return getStorageProvider(apiType)?.type??apiType}function storeMatchesType(store,type){let provider=getStorageProvider(type);return provider?provider.apiTypes.includes(store.type??""):(store.type??"unknown")===type.toLowerCase()}function getProviderCreateOptions(){return STORAGE_PROVIDERS.flatMap(provider=>provider.createOptions)}function findForeignCreateFlags(provider,flags){let own=new Set(provider.createOptions.map(option=>`--${option.name}`));return getProviderCreateOptions().map(option=>`--${option.name}`).filter(flag=>!own.has(flag)&&flags[flag]!==void 0)}async function loadStoreDetails(client,store,accountId){return getStorageStore(client,store.id,{accountId})}var environmentOption5={name:"environment",shorthand:"e",type:[String],argument:"ENVIRONMENT",deprecated:!1,description:"Environment to connect (repeatable: production, preview, development) (default: all three)."},authOption={name:"auth",shorthand:null,type:String,argument:"MODE",deprecated:!1,description:"Credential mode: `oidc` or `token` (default: `oidc`). Blob only: `token` writes long-lived credentials and requires --add-rw-token. Other stores use the credentials their provider issues."},updateEnvironmentOption={...environmentOption5,description:"Environment to connect (repeatable: production, preview, development) (default: the environments the connection already covers)."},updateAuthOption={...authOption,description:"Credential mode: `oidc` or `token` (default: the mode the connection already uses, so unrelated updates never rotate credentials). Blob only: `token` requires --add-rw-token."},addRwTokenOption={name:"add-rw-token",shorthand:null,type:Boolean,deprecated:!1,description:"Blob only: explicitly write the static read-write token env var. Required for --auth token, and additive on top of --auth oidc."},prefixOption={name:"prefix",shorthand:null,type:String,argument:"PREFIX",deprecated:!1,description:"Prefix for the generated environment variable names (e.g. --prefix UPLOADS writes UPLOADS_STORE_ID)"},dryRunOption={name:"dry-run",shorthand:null,type:Boolean,deprecated:!1,description:"Preview connection changes without applying them (provider variable names may be unavailable)"},connectSubcommand3={name:"connect",aliases:[],description:"Connect a storage resource (Blob, Global Config, Marketplace, or first-party) to a project",arguments:[{name:"store",required:!0}],options:[projectOption,environmentOption5,authOption,addRwTokenOption,prefixOption,dryRunOption,{...yesOption,description:"Skip the confirmation prompt when connecting a resource"},formatOption,jsonOption],examples:[{name:"Connect a store to the linked project in every environment",placeholders:["<store>"],value:`${packageName} storage connect <store>`},{name:"Connect to a specific project and environments",value:`${packageName} storage connect my-blob-store --project my-app --environment production --environment preview`},{name:"Preview the connection and Environment Variable changes",value:[`${packageName} storage connect my-blob-store --dry-run`,`${packageName} storage connect my-blob-store --dry-run --json`]},{name:"Opt in to the static read-write token alongside OIDC",value:`${packageName} storage connect my-blob-store --add-rw-token --yes`},{name:"Use only static credentials (requires the explicit opt-in)",value:`${packageName} storage connect my-blob-store --auth token --add-rw-token --yes`}]},statusSubcommand5={name:"status",aliases:[],description:"Show storage connections, their environments, credential mode, and environment variables",arguments:[{name:"store",required:!1}],options:[projectOption,{...allOption,description:"Show every storage resource in the current scope"},formatOption,jsonOption],examples:[{name:"Show the storage connections of the linked project",value:`${packageName} storage status`},{name:"Show every project connected to one store",value:`${packageName} storage status my-blob-store`},{name:"Show every storage resource in the current scope as JSON",value:`${packageName} storage status --all --json`}]},updateSubcommand12={name:"update",aliases:[],description:"Update an existing storage connection (environments, prefix, or Blob credential mode)",arguments:[{name:"store",required:!0}],options:[projectOption,updateEnvironmentOption,updateAuthOption,addRwTokenOption,prefixOption,dryRunOption,{...yesOption,description:"Skip the confirmation prompt when updating a connection"},formatOption,jsonOption],examples:[{name:"Move an existing connection to OIDC credentials",value:`${packageName} storage update my-blob-store --auth oidc --yes`},{name:"Change the environments of a connection",value:`${packageName} storage update my-blob-store --environment production --yes`},{name:"Preview the environment variable changes without applying them",value:`${packageName} storage update my-blob-store --auth oidc --dry-run`}]},disconnectSubcommand3={descriptionTone:"normal",name:"disconnect",aliases:[],description:"Disconnect a storage resource from a project. Removes its environment variables, so it always requires interactive confirmation.",arguments:[{name:"store",required:!0}],options:[projectOption,{...allOption,description:"Disconnect every project from the specified resource",shorthand:null,deprecatedShorthand:"a"},dryRunOption,formatOption,jsonOption],examples:[{name:"Disconnect a store from the linked project (always asks for confirmation)",value:`${packageName} storage disconnect my-blob-store`},{name:"Disconnect a store from every project",value:`${packageName} storage disconnect my-blob-store --all`},{name:"Preview the environment variables that would be removed",value:[`${packageName} storage disconnect my-blob-store --dry-run`,`${packageName} storage disconnect my-blob-store --dry-run --json`]}]},typeOption2={name:"type",shorthand:null,type:String,argument:"TYPE",deprecated:!1,description:`Store type: ${listStorageProviderTypes().join(", ")}`},listSubcommand22={name:"list",aliases:[],description:"List storage resources in the current scope",arguments:[],options:[{...typeOption2,description:`Only list stores of one type (e.g. ${listStorageProviderTypes().join(", ")}, integration)`},formatOption,jsonOption],examples:[{name:"List every store in the current scope",value:`${packageName} storage list`},{name:"List only Global Config stores as JSON",value:`${packageName} storage list --type global-config --json`}]},createSubcommand9={name:"create",aliases:[],description:`Create a storage resource (${listStorageProviderTypes().join(", ")}). For Marketplace databases (Redis, Postgres, and others), use \`${packageName} install\`.`,arguments:[{name:"name",required:!0}],options:[typeOption2,blobAccessOption,blobRegionOption,edgeConfigItemsOption,formatOption,jsonOption],examples:[{name:"Create a private Blob store",value:`${packageName} storage create my-uploads --type blob --access private`},{name:"Create a Blob store in a specific region",value:`${packageName} storage create my-uploads --type blob --access public --region fra1`},{name:"Create a Global Config with initial items",value:`${packageName} storage create flags --type global-config --items '{"enabled":true}'`},{name:"Create a store and read the result as JSON",value:`${packageName} storage create my-uploads --type blob --access private --json`},{name:"Find Marketplace storage integrations (Redis, Postgres, and others)",value:`${packageName} integration discover --category storage`},{name:"Create a Marketplace database (Redis, Postgres, and others) instead",placeholders:["<integration>"],value:`${packageName} install <integration>`}]},matchTypeOption={...typeOption2,description:`Only match stores of one type when several share a name (e.g. ${listStorageProviderTypes().join(", ")}, integration)`},getSubcommand3={name:"inspect",aliases:["get"],description:"Show the details of one storage resource",arguments:[{name:"store",required:!0}],options:[matchTypeOption,formatOption,jsonOption],examples:[{name:"Show a store by name or ID",value:[`${packageName} storage inspect my-blob-store`,`${packageName} storage inspect store_abc123 --json`,`${packageName} storage inspect uploads --type global-config`]}]},deleteSubcommand4={descriptionTone:"normal",name:"delete",aliases:["rm","del"],description:"Delete a Blob store or Global Config (Marketplace resources: use `vercel integration resource delete`). This cannot be undone and removes its project connections, so it always requires interactive confirmation.",arguments:[{name:"store",required:!0}],options:[matchTypeOption],examples:[{name:"Delete a store (always asks for confirmation)",value:`${packageName} storage delete my-blob-store`},{name:"Disambiguate when a Blob store and a Global Config share a name",value:`${packageName} storage delete uploads --type blob`}]},storageCommand={name:"storage",aliases:[],summary:"Manage project storage resources",description:"List, inspect, connect, update, and disconnect storage resources (Blob, Global Config, Marketplace, and first-party) for your projects. Create and delete Blob stores and Global Config; Marketplace resources use `vercel integration`.",options:[],arguments:[],subcommands:[listSubcommand22,createSubcommand9,getSubcommand3,deleteSubcommand4,connectSubcommand3,statusSubcommand5,updateSubcommand12,disconnectSubcommand3],examples:[{name:"List the stores in the current scope",value:`${packageName} storage list`},{name:"Create a store and connect it to the linked project",value:[`${packageName} storage create my-uploads --type blob --access private`,`${packageName} storage connect my-uploads --yes`]},{name:"Find Marketplace storage integrations (Redis, Postgres, and others)",value:`${packageName} integration discover --category storage`},{name:"Create a Marketplace database (Redis, Postgres, and others) and connect it to the linked project",placeholders:["<integration>"],value:`${packageName} install <integration>`},{name:"Inspect what is connected today",value:`${packageName} storage status`}]};var listSubcommand23={name:"list",aliases:["ls"],description:"List environments for the current Project",default:!0,arguments:[],options:[formatOption,jsonOption,projectOption,{...yesOption,description:"Skip confirmation when linking is required (e.g. in non-interactive mode)"}],examples:[{name:"List all environments for the current Project",value:`${packageName} environments list`}]},targetCommand={name:"environments",aliases:["environment","targets","target"],description:"Manage custom environments for a Project",arguments:[],subcommands:[listSubcommand23],options:[],examples:[]};var requestSubcommand={name:"request",aliases:["access-request"],description:"Show join-request status for the current team (default: the authenticated user)",arguments:[{name:"userId",required:!1}],options:[formatOption,jsonOption],examples:[{name:"Status for your pending request",value:`${packageName} teams request`},{name:"Status for another user id",value:`${packageName} teams request user_abc123`}]},addSubcommand10={name:"create",aliases:["add"],description:"Create a new team",arguments:[],options:[{name:"slug",shorthand:null,type:String,description:"Team URL slug (e.g. acme for vercel.com/acme); required in non-interactive mode",deprecated:!1},{name:"name",shorthand:null,type:String,description:"Display name for the team; required in non-interactive mode",deprecated:!1}],examples:[{name:"Create a team (interactive)",value:`${packageName} teams create`},{name:"Create a team non-interactively",value:`${packageName} teams create --slug acme --name "Acme Corp"`}]},listSubcommand24={name:"list",aliases:["ls"],description:"Show all teams that you're a member of",arguments:[],options:[nextCursorOption,limitOption,formatOption,jsonOption,{name:"since",shorthand:null,type:String,deprecated:!0},{name:"until",shorthand:null,type:String,deprecated:!0},{name:"count",shorthand:"C",type:Number,deprecated:!0}],examples:[{name:"Show the next page, using the cursor from the previous output",placeholders:["<CURSOR>"],value:`${packageName} teams list --next <CURSOR>`}]},switchSubcommand={name:"switch",aliases:["change"],description:"Switch to a different team",arguments:[{name:"name",required:!1}],options:[],examples:[{name:"Switch to a team. If your team's url is 'vercel.com/name', then 'name' is the slug. If the slug is omitted, you can choose interactively",placeholders:["<slug>"],value:`${packageName} teams switch <slug>`}],disabledGlobalOptions:["token"]},inviteSubcommand={name:"invite",aliases:[],description:"Invite a new member to a team (prompts for emails when none are given, except in non-interactive mode)",arguments:[{name:"email",required:!1,multiple:!0}],options:[],examples:[{name:"Invite new members (interactively)",value:`${packageName} teams invite`},{name:"Invite multiple members (required in non-interactive mode)",value:`${packageName} teams invite abc@vercel.com xyz@vercel.com`}]},ssoSubcommand={name:"sso",aliases:[],description:"Show SAML / SSO configuration for the current team",arguments:[],options:[formatOption,jsonOption],examples:[{name:"Human-readable SAML summary",value:`${packageName} teams sso`},{name:"JSON",value:`${packageName} teams sso --json`}]},membersSubcommand2={name:"members",aliases:["member"],description:"List, invite, or remove members from the current team",arguments:[],options:[nextCursorOption,limitOption,formatOption,jsonOption],examples:[{name:"List team members",value:`${packageName} teams members`},{name:"List team members as JSON",value:`${packageName} teams members --json`},{name:"Show the next page, using the cursor from the previous output",placeholders:["<CURSOR>"],value:`${packageName} teams members --next <CURSOR>`},{name:"Invite a member to the currently scoped team",value:`${packageName} teams members invite user@example.com`},{name:"Remove a member from the currently scoped team",value:`${packageName} teams members remove user@example.com`}]},membersInviteSubcommand={name:"members invite",aliases:[],description:"Invite members to the current team (prompts for emails when none are given, except in non-interactive mode)",arguments:[{name:"email",required:!1,multiple:!0}],options:[],examples:[{name:"Invite a member",value:`${packageName} teams members invite user@example.com`}]},membersRemoveSubcommand={name:"members remove",aliases:["members rm"],description:"Remove a member from the current team",arguments:[{name:"member",required:!0}],options:[formatOption,jsonOption],examples:[{name:"Remove a member",value:`${packageName} teams members remove user@example.com`}]},teamsCommand={name:"teams",aliases:["switch","team"],description:"Manage Teams under your Vercel account",arguments:[],subcommands:[addSubcommand10,inviteSubcommand,listSubcommand24,requestSubcommand,switchSubcommand,ssoSubcommand,membersSubcommand2],options:[],examples:[]};var listSubcommand25={name:"list",aliases:["ls"],description:"List your personal authentication tokens",default:!0,arguments:[],options:[formatOption,jsonOption,{name:"limit",shorthand:"n",type:Number,description:"Maximum number of tokens to return (default: 20, max: 100)",deprecated:!1},{name:"next",shorthand:null,type:String,description:"Show the next page using the cursor from the previous output",argument:"CURSOR",deprecated:!1}],examples:[{name:"List tokens as JSON",value:`${packageName} tokens list --json`}]},addSubcommand11={name:"create",aliases:["add"],description:"Create a new personal authentication token",arguments:[{name:"name",required:!0}],options:[formatOption,jsonOption,{...projectOption,description:"Optional project ID to scope the token to"}],examples:[{name:"Create a token",value:`${packageName} tokens create "CI deploy"`}]},removeSubcommand15={name:"revoke",aliases:["remove","rm","delete"],description:"Revoke a personal authentication token by ID",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption,{...yesOption,description:"Skip the confirmation prompt when revoking a token"}],examples:[{name:"Revoke a token",value:`${packageName} tokens revoke tok_abc123`}]},tokensCommand={name:"tokens",aliases:[],description:"Manage your personal Vercel authentication tokens",arguments:[],subcommands:[addSubcommand11,listSubcommand25,removeSubcommand15],options:[],examples:[]};var description="Set up a coding agent with Vercel Token Pass",tokenPassSetupSubcommand={...setupSubcommand,description,options:setupSubcommand.options.filter(option=>option.name!=="token-pass"),examples:[{name:"Set up OpenCode with Vercel Token Pass",value:`${packageName} token-pass setup --agent opencode --yes`}]},tokenPassCommand={...tokenPassSetupSubcommand,name:"token-pass",aliases:["tokenpass"],runsWithoutSubcommand:!0,subcommands:[tokenPassSetupSubcommand],examples:[{name:"Set up detected coding agents with Vercel Token Pass",value:`${packageName} token-pass`},{name:"Set up OpenCode without prompts",value:`${packageName} token-pass --agent opencode --yes`},{name:"Preview Token Pass setup",value:`${packageName} token-pass --agent opencode --dry-run`}]};var statusSubcommand6={name:"status",aliases:[],description:"Shows whether telemetry collection is enabled or disabled",arguments:[],options:[jsonOption],examples:[]},enableSubcommand5={name:"enable",aliases:[],description:"Enables telemetry collection",arguments:[],options:[],examples:[]},flushSubcommand={name:"flush",aliases:[],description:"Internal command to flush telemetry events",hidden:!0,arguments:[],options:[],examples:[]},disableSubcommand4={name:"disable",aliases:[],description:"Disables telemetry collection",arguments:[],options:[],examples:[]},telemetryCommand={name:"telemetry",aliases:[],description:"Allows you to enable or disable telemetry collection",arguments:[],subcommands:[enableSubcommand5,disableSubcommand4,statusSubcommand6,flushSubcommand],options:[],examples:[]};var upgradeCommand={name:"upgrade",aliases:[],description:"Upgrade the current global or native Vercel CLI installation",arguments:[{name:"version|latest",required:!1}],options:[{name:"dry-run",shorthand:null,type:Boolean,deprecated:!1,description:"Show the upgrade command without executing it"},{name:"autoupdate",shorthand:null,type:Boolean,deprecated:!1,description:"Turn on automatic CLI updates for future releases"},{name:"no-autoupdate",shorthand:null,type:Boolean,deprecated:!1,description:"Turn off automatic CLI updates"},{name:"enable-auto",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--autoupdate`"},{name:"disable-auto",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--no-autoupdate`"},{name:"bypass-min-release-age",shorthand:null,type:Boolean,deprecated:!1,description:"Bypass package-manager release-age checks for this and future foreground upgrades"},{name:"no-bypass-min-release-age",shorthand:null,type:Boolean,deprecated:!1,description:"Restore package-manager release-age checks"},{name:"disable-min-release-age-bypass",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--no-bypass-min-release-age`"},formatOption,jsonOption],examples:[{name:"Upgrade the Vercel CLI to the latest version",value:`${packageName} upgrade`},{name:"Install a specific Vercel CLI version",value:`${packageName} upgrade 59.11.7`},{name:"Install the latest version using the package manager",value:`${packageName} upgrade latest`},{name:"Show the upgrade command without running it",value:`${packageName} upgrade --dry-run`},{name:"Turn on automatic CLI updates",value:`${packageName} upgrade --autoupdate`},{name:"Get upgrade information as JSON",value:`${packageName} upgrade --json`}]};var usageCommand={name:"usage",aliases:[],summary:"Show billing usage and costs",description:"Show billing usage and costs for the current billing cycle or a custom date range",arguments:[],options:[{...sinceOption,description:"Start time: YYYY-MM-DD (midnight LA time), ISO 8601, or relative, like 7d (default: start of the current billing cycle)"},{...untilOption,description:"End time: YYYY-MM-DD (end of day LA time), ISO 8601, or relative; requires --since (default: now)"},{name:"from",shorthand:null,type:String,deprecated:!0},{name:"to",shorthand:null,type:String,deprecated:!0},{name:"breakdown",shorthand:null,type:String,argument:"PERIOD",description:"Show usage breakdown by time period instead of aggregated totals (daily, weekly, monthly)",deprecated:!1},{name:"group-by",shorthand:null,type:String,argument:"DIMENSION",description:"Group usage by a dimension instead of aggregated totals (project, region)",deprecated:!1},formatOption,jsonOption],examples:[{name:"Show usage for the current billing period",value:`${packageName} usage`},{name:"Show usage for a custom date range",value:`${packageName} usage --since 2025-01-01 --until 2025-01-31`},{name:"Show usage for the last 7 days",value:`${packageName} usage --since 7d`},{name:"Show daily usage breakdown",value:`${packageName} usage --breakdown daily`},{name:"Show weekly usage breakdown",value:`${packageName} usage --breakdown weekly`},{name:"Show usage grouped by project",value:`${packageName} usage --group-by project`},{name:"Show usage grouped by region",value:`${packageName} usage --group-by region`},{name:"Output usage data as JSON",value:`${packageName} usage --json`}]};var listSubcommand26={name:"list",aliases:["ls"],description:"Lists Vercel CLI versions available to install",arguments:[],options:[jsonOption],examples:[]},installedSubcommand={name:"installed",aliases:[],description:"Lists installed Vercel CLI versions",arguments:[],options:[],examples:[]},useSubcommand={name:"use",aliases:["switch","install"],description:"Installs and switches to a specific Vercel CLI version",arguments:[{name:"version",required:!0}],options:[],examples:[{name:"Use a specific production version",value:`${packageName} version use 50.1.0`},{name:"Use the latest production version",value:`${packageName} version use latest`}]},checkSubcommand3={name:"check",aliases:[],description:"Check for native CLI updates in the background",arguments:[],options:[],examples:[]},updateSubcommand13={name:"update",aliases:["upgrade"],description:"Updates the Vercel CLI to the latest version",arguments:[],options:[],examples:[]},autoupdateEnableSubcommand={name:"enable",aliases:[],description:"Turn on automatic CLI updates",arguments:[],options:[],examples:[{name:"Turn on automatic updates",value:`${packageName} version autoupdate enable`}]},autoupdateDisableSubcommand={name:"disable",aliases:[],description:"Turn off automatic CLI updates",arguments:[],options:[],examples:[{name:"Turn off automatic updates",value:`${packageName} version autoupdate disable`}]},autoupdateStatusSubcommand={name:"status",aliases:[],default:!0,description:"Show whether automatic CLI updates are on",arguments:[],options:[],examples:[{name:"Show whether automatic updates are on",value:`${packageName} version autoupdate status`}]},autoupdateSubcommand={name:"autoupdate",aliases:[],description:"Enables or disables automatic CLI updates",arguments:[],subcommands:[autoupdateEnableSubcommand,autoupdateDisableSubcommand,autoupdateStatusSubcommand],options:[],examples:[{name:"Enable automatic updates",value:`${packageName} version autoupdate enable`},{name:"Show whether automatic updates are enabled",value:`${packageName} version autoupdate status`}]},versionCommand={name:"version",aliases:["versions"],description:"Manages the installed Vercel CLI version.",runsWithoutSubcommand:!0,arguments:[],subcommands:[listSubcommand26,installedSubcommand,useSubcommand,updateSubcommand13,checkSubcommand3,autoupdateSubcommand],options:[],examples:[{name:"Show the current version and install details",value:`${packageName} version`},{name:"List installed versions",value:`${packageName} version installed`},{name:"Use a specific version",value:`${packageName} version use 50.1.0`}]};var whoamiCommand={name:"whoami",aliases:[],description:"Shows the username of the currently logged in user.",arguments:[],options:[formatOption,jsonOption,{name:"cached",shorthand:null,type:Boolean,deprecated:!1,description:"Print the username saved by the last check, without contacting Vercel. It can be out of date."}],examples:[{name:"Shows the username of the currently logged in user",value:`${packageName} whoami`},{name:"Print the saved username without a network request",value:`${packageName} whoami --cached`}]};var ifMatchOption={name:"if-match",shorthand:null,type:String,deprecated:!1,description:"Only perform the operation if the blob's ETag matches this value",argument:"STRING"},ifNoneMatchOption={name:"if-none-match",shorthand:null,type:String,deprecated:!1,description:"Only return content if the blob's ETag does not match this value (returns 304 if unchanged)",argument:"STRING"},accessOption={name:"access",shorthand:null,deprecatedShorthand:"a",type:String,deprecated:!1,description:"Access level for the blob: public or private (required)",argument:"String",choices:["public","private"]},environmentOption6={name:"environment",shorthand:"e",type:[String],deprecated:!1,argument:"ENVIRONMENT",description:"Environment to connect (can be repeated: production, preview, development) (default: all when --yes is used)."},listSubcommand27={name:"list",aliases:["ls"],description:"List all files in the Blob store",arguments:[],options:[{name:"limit",shorthand:"n",deprecatedShorthand:"l",type:Number,deprecated:!1,description:"Number of results to return per page (default: 10, max: 1000)",argument:"NUMBER"},{name:"next",shorthand:null,type:String,deprecated:!1,description:"Show the next page using the cursor from the previous output",argument:"CURSOR"},{name:"cursor",shorthand:"c",type:String,deprecated:!0,description:"Cursor from previous page to start listing from",argument:"STRING"},{name:"prefix",shorthand:null,deprecatedShorthand:"p",type:String,deprecated:!1,description:"Prefix to filter Blobs by",argument:"STRING"},{name:"mode",shorthand:null,deprecatedShorthand:"m",type:String,deprecated:!1,description:"Mode to filter Blobs by either folded or expanded (default: expanded)",argument:"String",choices:["folded","expanded"]},jsonOption],examples:[]},putSubcommand={name:"put",aliases:[],description:"Upload a file to the Blob store",arguments:[{name:"pathToFile",required:!0}],options:[accessOption,{name:"add-random-suffix",shorthand:null,deprecatedShorthand:"r",type:Boolean,deprecated:!1,description:"Add a random suffix to the file name (default: false)"},{name:"pathname",shorthand:null,deprecatedShorthand:"p",type:String,deprecated:!1,description:"Pathname to upload the file to (default: filename)",argument:"String"},{name:"multipart",shorthand:null,deprecatedShorthand:"u",type:Boolean,deprecated:!1,description:"Upload the file in multiple small chunks for performance and reliability (default: true)"},{name:"no-multipart",shorthand:null,type:Boolean,deprecated:!1,description:"Upload the file in a single request"},{name:"content-type",shorthand:null,deprecatedShorthand:"t",type:String,deprecated:!1,description:"Overwrite the content-type. Will be inferred from the file extension if not provided",argument:"String"},{name:"cache-control-max-age",shorthand:null,deprecatedShorthand:"c",type:Number,deprecated:!1,description:"Max-age of the cache-control header directive (default: 2592000 = 30 days)",argument:"Number"},{name:"force",shorthand:null,type:Boolean,deprecated:!1,description:"Overwrite the file if it already exists (default: false)"},{name:"allow-overwrite",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--force`"},ifMatchOption],examples:[]},delSubcommand={name:"delete",aliases:["rm","del","remove"],description:"Delete a file from the Blob store",arguments:[{name:"urlsOrPathnames",required:!0}],options:[ifMatchOption,{...yesOption,description:"Skip the confirmation prompt when deleting blobs"}],examples:[]},copySubcommand={name:"copy",aliases:["cp"],description:"Copy a file in the Blob store",arguments:[{name:"fromUrlOrPathname",required:!0},{name:"toPathname",required:!0}],options:[accessOption,{name:"add-random-suffix",shorthand:null,deprecatedShorthand:"r",type:Boolean,deprecated:!1,description:"Add a random suffix to the file name"},{name:"content-type",shorthand:null,deprecatedShorthand:"t",type:String,deprecated:!1,description:"Overwrite the content-type. Will be inferred from the file extension if not provided",argument:"String"},{name:"cache-control-max-age",shorthand:null,deprecatedShorthand:"c",type:Number,deprecated:!1,description:"Max-age of the cache-control header directive (default: 2592000 = 30 days)",argument:"Number"},ifMatchOption],examples:[]},getSubcommand4={name:"get",aliases:[],description:"Download a blob by URL or pathname",arguments:[{name:"urlOrPathname",required:!0}],options:[accessOption,{name:"output",shorthand:"o",type:String,deprecated:!1,description:"Save blob content to a file instead of stdout",argument:"PATH"},ifNoneMatchOption],examples:[]},putImageSubcommand={descriptionTone:"normal",name:"put-image",aliases:[],description:"Optimize an image with Vercel Image Optimization and store the result in the Blob store (requires OIDC credentials)",arguments:[{name:"pathToFileOrUrl",required:!0}],options:[accessOption,{name:"width",shorthand:null,deprecatedShorthand:"w",type:Number,deprecated:!1,description:"Width of the optimized image in pixels, between 1 and 8192 (required)",argument:"NUMBER"},{name:"quality",shorthand:null,deprecatedShorthand:"q",type:Number,deprecated:!1,description:"Quality of the optimized image, between 1 and 100 (default: 75)",argument:"NUMBER"},{name:"format",shorthand:null,deprecatedShorthand:"F",type:String,deprecated:!1,description:"Output format: jpeg, png, webp, or avif. Keeps the original format when omitted",argument:"FORMAT",choices:["jpeg","png","webp","avif"]},{name:"pathname",shorthand:null,deprecatedShorthand:"p",type:String,deprecated:!1,description:"Pathname to store the optimized image at in the Blob store (required)",argument:"String"},{name:"add-random-suffix",shorthand:null,deprecatedShorthand:"r",type:Boolean,deprecated:!1,description:"Add a random suffix to the file name (default: false)"},{name:"cache-control-max-age",shorthand:null,deprecatedShorthand:"c",type:Number,deprecated:!1,description:"Max-age of the cache-control header directive (default: 2592000 = 30 days)",argument:"Number"},{name:"force",shorthand:null,type:Boolean,deprecated:!1,description:"Overwrite the file if it already exists (default: false)"},{name:"allow-overwrite",shorthand:null,type:Boolean,deprecated:!0,description:"Deprecated alias for `--force`"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output the stored blob as JSON"}],examples:[{name:"Optimize a local image and upload it",value:"vercel blob put-image photo.png --pathname images/photo.png --width 1200 --access public"},{name:"Optimize an image from a public URL and convert it to WebP",value:"vercel blob put-image https://example.com/hero.png --pathname images/hero.webp --width 800 --quality 60 --format webp --access public"}]},signedTokenSubcommand={name:"signed-token",aliases:[],description:"Issue a short-lived signed token for Blob operations",arguments:[],options:[{name:"pathname",shorthand:null,deprecatedShorthand:"p",type:String,deprecated:!1,description:'Pathname scope for the token (default: "*")',argument:"STRING"},{name:"operation",shorthand:null,deprecatedShorthand:"o",type:[String],deprecated:!1,description:"Allowed operation(s): get, head, put, delete (repeatable)",argument:"OPERATION",choices:["get","head","put","delete"]},{name:"valid-until",shorthand:null,type:Number,deprecated:!1,description:"Absolute expiration time as Unix timestamp in milliseconds (mutually exclusive with --valid-for)",argument:"TIMESTAMP_MS"},{name:"valid-for",shorthand:null,type:String,deprecated:!1,description:"Relative duration before expiration (for example: 15m, 1h, 7d; mutually exclusive with --valid-until)",argument:"DURATION"},{name:"allowed-content-type",shorthand:null,type:[String],deprecated:!1,description:"Allowed content type(s) for put operations (repeatable, supports wildcards)",argument:"MIME_TYPE"},{name:"maximum-size-in-bytes",shorthand:null,type:Number,deprecated:!1,description:"Maximum upload size in bytes for put operations (max: 5TB)",argument:"BYTES"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output signed token payload as JSON"}],examples:[{name:"Issue a signed token for reads",value:"vercel blob signed-token --pathname media/photo.jpg --operation get"},{name:"Issue a signed token for uploads with constraints",value:"vercel blob signed-token --pathname uploads/* --operation put --allowed-content-type image/* --maximum-size-in-bytes 10485760"}]},presignSubcommand={name:"presign",aliases:[],description:"Generate a presigned URL for Blob operations",arguments:[{name:"pathname",required:!0}],options:[accessOption,{name:"operation",shorthand:null,deprecatedShorthand:"o",type:String,deprecated:!1,description:"Operation for the presigned URL: get, head, put, or delete (default: get)",argument:"OPERATION",choices:["get","head","put","delete"]},{name:"delegation-token",shorthand:null,type:String,deprecated:!1,description:"Delegation token from `vercel blob signed-token` (must be used with --client-signing-token)",argument:"STRING"},{name:"client-signing-token",shorthand:null,type:String,deprecated:!1,description:"Signing secret/token from `vercel blob signed-token` (must be used with --delegation-token)",argument:"STRING"},{name:"valid-until",shorthand:null,type:Number,deprecated:!1,description:"Absolute expiration time as Unix timestamp in milliseconds (mutually exclusive with --valid-for)",argument:"TIMESTAMP_MS"},{name:"valid-for",shorthand:null,type:String,deprecated:!1,description:"Relative duration before expiration (for example: 15m, 1h, 7d; mutually exclusive with --valid-until)",argument:"DURATION"},{name:"if-match",shorthand:null,type:String,deprecated:!1,description:"If-Match constraint for put or delete operations",argument:"STRING"},{name:"allow-overwrite",shorthand:null,type:Boolean,deprecated:!1,description:"Allow overwriting existing blobs (put only)"},{name:"add-random-suffix",shorthand:null,type:Boolean,deprecated:!1,description:"Add a random suffix to the pathname (put only)"},{name:"cache-control-max-age",shorthand:null,type:Number,deprecated:!1,description:"Cache-Control max-age in seconds (put only)",argument:"SECONDS"},{name:"allowed-content-type",shorthand:null,type:[String],deprecated:!1,description:"Allowed content type(s) for uploads (put only, repeatable)",argument:"MIME_TYPE"},{name:"maximum-size-in-bytes",shorthand:null,type:Number,deprecated:!1,description:"Maximum upload size in bytes (put only, max: 5TB)",argument:"BYTES"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output presign result as JSON"}],examples:[{name:"Generate a presigned GET URL",value:"vercel blob presign media/photo.jpg --access public"},{name:"Generate a presigned PUT URL with upload constraints",value:"vercel blob presign uploads/image.jpg --access private --operation put --allowed-content-type image/* --maximum-size-in-bytes 10485760"},{name:"Generate a presigned URL from existing signed-token output",placeholders:["<delegationToken>","<clientSigningToken>"],value:"vercel blob presign uploads/image.jpg --access private --operation put --delegation-token <delegationToken> --client-signing-token <clientSigningToken>"}]},createStoreSubcommand={name:"create-store",aliases:[],description:"Create a new Blob store",arguments:[{name:"name",required:!1}],options:[accessOption,{name:"region",shorthand:null,deprecatedShorthand:"r",type:String,deprecated:!1,description:'Region to create the Blob store in (default: "iad1"). See https://vercel.com/docs/edge-network/regions#region-list for all available regions',argument:"STRING"},yesOption,environmentOption6],examples:[{name:'Create a blob store (uses default region "iad1")',value:"vercel blob create-store my-store --access private"},{name:"Create a blob store in a specific region",value:"vercel blob create-store my-store --access private --region cdg1"},{name:"Create and connect to project in CI",value:"vercel blob create-store my-store --access private --yes --environment production --environment preview"}]},deleteStoreSubcommand={name:"delete-store",aliases:[],description:"Delete a Blob store",arguments:[{name:"storeId",required:!1}],options:[],examples:[]},emptyStoreSubcommand={name:"empty-store",aliases:[],description:"Delete all blobs in a Blob store",arguments:[],options:[yesOption],examples:[]},getStoreInfoSubcommand={name:"get-store",aliases:[],description:"Get a Blob store",arguments:[{name:"storeId",required:!1}],options:[],examples:[]},listStoresSubcommand={name:"list-stores",aliases:["ls-stores"],description:"List all Blob stores",arguments:[],options:[{name:"all",shorthand:"a",type:Boolean,deprecated:!1,description:"List all blob stores for the team, not just the ones connected to the current project"},{name:"json",shorthand:null,type:Boolean,deprecated:!1,description:"Output as JSON"},{name:"no-projects",shorthand:null,type:Boolean,deprecated:!1,description:"Hide the Projects column (table output only)"}],examples:[{name:"List blob stores for the linked project",value:"vercel blob list-stores"},{name:"List all team blob stores as JSON",value:"vercel blob list-stores --all --json"}]},blobCommand={name:"blob",aliases:[],description:"Interact with Vercel Blob",arguments:[],subcommands:[listSubcommand27,putSubcommand,putImageSubcommand,getSubcommand4,delSubcommand,copySubcommand,signedTokenSubcommand,presignSubcommand,createStoreSubcommand,deleteStoreSubcommand,getStoreInfoSubcommand,listStoresSubcommand,emptyStoreSubcommand],options:[{name:"rw-token",shorthand:null,type:String,deprecated:!1,description:"Use a read-write token instead of OIDC or environment credentials",argument:"String"},{name:"oidc-token",shorthand:null,type:String,deprecated:!1,description:"OIDC token for the Blob store (must be passed together with --store)",argument:"String"},{name:"store",shorthand:null,type:String,deprecated:!1,description:'Blob store id, with or without the "store_" prefix (must be passed together with --oidc-token)',argument:"STORE"},{name:"store-id",shorthand:null,type:String,deprecated:!0,description:"Deprecated alias for `--store`",argument:"String"}],examples:[]};var inspectSubcommand14={name:"inspect",aliases:["overview"],description:"Show this cycle's on-demand spend against Spend Management",arguments:[],options:[formatOption,jsonOption],examples:[{name:"Show this cycle's on-demand spend against Spend Management",value:`${packageName} budgets inspect`}]},listSubcommand28={name:"list",aliases:["ls"],description:"List every Spend Management budget on this team, of any scope",default:!0,arguments:[],options:[formatOption,jsonOption],examples:[{name:"List Spend Management budgets",value:`${packageName} budgets`}]},setSubcommand3={name:"set",aliases:["update"],description:"Create or update this team's Spend Management budget",arguments:[],options:[{name:"amount",shorthand:null,type:Number,argument:"USD",deprecated:!1,description:"Budget amount in whole dollars (minimum 1). Creates with 50/75/100% alerts and notifications on; updates keep pause and webhook settings unless those options are also passed"},{name:"pause",shorthand:null,type:Boolean,deprecated:!1,description:"Pause all projects and production deployments at 100% of the budget amount"},{name:"no-pause",shorthand:null,type:Boolean,deprecated:!1,description:"Do not pause all projects or their production deployments when the budget is reached"},{name:"webhook",shorthand:null,type:String,argument:"URL",deprecated:!1,description:"Webhook URL to notify when a threshold is reached"},{name:"no-webhook",shorthand:null,type:Boolean,deprecated:!1,description:"Remove the budget webhook"},formatOption,jsonOption],examples:[{name:"Create a $500 budget with default 50/75/100% alerts",value:`${packageName} budgets set --amount 500`},{name:"Change the budget amount",value:`${packageName} budgets set --amount 800`},{name:"Pause all projects and production deployments at 100% of the existing budget",value:`${packageName} budgets set --pause`},{name:"Notify a webhook without changing the amount",value:`${packageName} budgets set --webhook https://example.com/hook`},{name:"Remove the webhook",value:`${packageName} budgets set --no-webhook`}]},removeSubcommand16={name:"remove",aliases:["rm","delete","disable"],description:"Remove this team's Spend Management budget",arguments:[],options:[yesOption,formatOption,jsonOption],examples:[{name:"Remove the Spend Management budget without confirmation",value:`${packageName} budgets remove --yes`}]},alertsDescription="List Spend Management alerts: each budget threshold reached, newest first. For observability alerts, see `vercel alerts`.",alertsOptions=[{...sinceOption,description:"Show alerts triggered after this time (ISO 8601 or relative: 1d, 7d, 30d)"},{...untilOption,description:"Show alerts triggered before this time (ISO 8601 or relative)"},limitOption,nextCursorOption,formatOption,jsonOption],alertsListSubcommand2={name:"list",aliases:["ls"],description:alertsDescription,default:!0,hidden:!0,arguments:[],options:alertsOptions,examples:[]},alertsSubcommand2={name:"alerts",aliases:[],description:alertsDescription,arguments:[],subcommands:[alertsListSubcommand2],options:alertsOptions,examples:[{name:"List recent Spend Management alerts for this team",value:`${packageName} budgets alerts`},{name:"List alerts from the last 30 days",value:`${packageName} budgets alerts --since 30d`},{name:"Output alerts as JSON",value:`${packageName} budgets alerts --json`}]},budgetCommand={name:"budgets",aliases:["budget"],summary:"Manage spending beyond included credit",description:"Show and manage Spend Management for on-demand charges after included credit",arguments:[],subcommands:[inspectSubcommand14,listSubcommand28,setSubcommand3,removeSubcommand16,alertsSubcommand2],options:[],examples:[{name:"List Spend Management budgets",value:`${packageName} budgets`},{name:"Show this cycle's on-demand spend against Spend Management",value:`${packageName} budgets inspect`},{name:"Set a $500 budget that pauses all projects and production deployments at 100%",value:`${packageName} budgets set --amount 500 --pause`},{name:"Pause all projects and production deployments at 100% of the existing budget",value:`${packageName} budgets set --pause`},{name:"Remove the Spend Management budget",value:`${packageName} budgets remove --yes`},{name:"List recent Spend Management alerts",value:`${packageName} budgets alerts`}]};var listSubcommand29={name:"list",aliases:["ls"],description:"Show all webhooks",default:!0,arguments:[],options:[formatOption,jsonOption],examples:[{name:"List all webhooks as JSON",value:`${packageName} webhooks list --json`}]},getSubcommand5={name:"inspect",aliases:["get"],description:"Displays information related to a webhook",arguments:[{name:"id",required:!0}],options:[formatOption,jsonOption],examples:[]},createSubcommand10={name:"create",aliases:["add"],description:"Create a new webhook",arguments:[{name:"url",required:!0}],options:[{name:"event",shorthand:null,deprecatedShorthand:"e",type:[String],argument:"EVENT",deprecated:!1,description:"Webhook event to subscribe to (can be used multiple times)"},{name:"project",shorthand:"p",type:[String],argument:"PROJECT_ID",deprecated:!1,description:"Project ID to associate with the webhook (can be used multiple times)"}],examples:[{name:"Create a webhook for deployment events",value:`${packageName} webhooks create https://example.com/webhook --event deployment.created --event deployment.ready`}]},removeSubcommand17={name:"delete",aliases:["rm","del","remove"],description:"Delete a webhook",arguments:[{name:"id",required:!0}],options:[{...yesOption,description:"Skip the confirmation prompt when deleting a webhook"}],examples:[]},webhooksCommand={name:"webhooks",aliases:["webhook"],description:"Manage webhooks",arguments:[],subcommands:[listSubcommand29,getSubcommand5,createSubcommand10,removeSubcommand17],options:[],examples:[]};var commandsStructs=[agentCommand,agentRunsCommand,aiGatewayCommand,alertsCommand,aliasCommand,activityCommand,apiCommand,billingCommand,blobCommand,budgetCommand,bisectCommand,buildCommand,buildersCommand,buyCommand,cacheCommand,certsCommand,changelogCommand,ciCommand,commentsCommand,contractCommand,cronsCommand,curlCommand,daemonsCommand,deployCommand,deployHooksCommand,devCommand,dnsCommand,doctorCommand,domainsCommand,drainsCommand,envCommand,experimentsCommand,feedbackCommand,firewallCommand,flagsCommand,gitCommand,globalConfigCommand,healthCommand,httpstatCommand,initCommand,inspectCommand,installCommand,integrationCommand,integrationResourceCommand,kmsCommand,linkCommand,listCommand,loginCommand,logoutCommand,logsCommand,mcpCommand,microfrontendsCommand,monitorsCommand,openCommand,organizationsCommand,pageIntegrityCommand,pricingCommand,projectCommand,promoteCommand,pullCommand,redeployCommand,redirectsCommand,removeCommand,routesCommand,rollbackCommand,rollingReleaseCommand,sandboxCommand,schedulesCommand,securityCommand,setupCommand,signupCommand,skillsCommand,storageCommand,targetCommand,teamsCommand,tokensCommand,tokenPassCommand,telemetryCommand,tracesCommand,upgradeCommand,webhooksCommand,usageCommand,vcrCommand,versionCommand,whoamiCommand,{name:"help",aliases:[]}];process.env.FF_GUIDANCE_MODE&&commandsStructs.push(guidanceCommand);commandsStructs.push(metricsCommand);commandsStructs.push(connexCommand);registerCommandPaths(commandsStructs);function getCommandAliases(command){return[command.name].concat(command.aliases)}var commands=new Map;for(let command of commandsStructs){let aliases=getCommandAliases(command);output_manager_default.debug(`Registering command ${command.name} with aliases: ${JSON.stringify(aliases)}`);for(let alias of aliases)output_manager_default.debug(`Setting alias ${alias} -> ${command.name}`),commands.set(alias,command.name)}output_manager_default.debug(`All registered commands: ${JSON.stringify(Array.from(commands.entries()))}`);var commandNames=commandsStructs.flatMap(command=>"hidden"in command&&command.hidden?[]:getCommandAliases(command));export{agentCommand,listSubcommand2 as listSubcommand,inspectSubcommand2 as inspectSubcommand,traceSubcommand,projectsSubcommand,agentRunsCommand,createSubcommand,listSubcommand3 as listSubcommand2,inspectSubcommand3 as inspectSubcommand2,removeSubcommand2 as removeSubcommand,apiKeysSubcommand,rulesAddSubcommand,rulesListSubcommand,rulesEditSubcommand,rulesRemoveSubcommand,rulesSubcommand,setupSubcommand,codingAgentsSubcommand,modelsListSubcommand,modelsEndpointsSubcommand,modelsSubcommand,budgetsSetSubcommand,budgetsInspectSubcommand,budgetsListSubcommand,budgetsRemoveSubcommand,leaderboardModelsSubcommand,budgetsDefaultsListSubcommand,budgetsDefaultsSetSubcommand,budgetsDefaultsRemoveSubcommand,budgetsDefaultsSubcommand,budgetsSubcommand,leaderboardLabsSubcommand,leaderboardAppsSubcommand,leaderboardProvidersSubcommand,leaderboardSubcommand,virtualModelsListSubcommand,virtualModelsInspectSubcommand,virtualModelsCreateSubcommand,virtualModelsEditSubcommand,virtualModelsRemoveSubcommand,virtualModelsRestoreSubcommand,virtualModelsSubcommand,aiGatewayCommand,setSubcommand,listSubcommand4 as listSubcommand3,removeSubcommand3 as removeSubcommand2,aliasCommand,INVOICE_STATUSES,invoicesListSubcommand,invoicesInspectSubcommand,invoicesUpcomingSubcommand,invoicesDownloadSubcommand,invoicesSubcommand,bisectCommand,preinstallSubcommand,buildersCommand,isCustomEnvironmentAddonAlias,listSubcommand5 as listSubcommand4,inspectSubcommand4 as inspectSubcommand3,addSubcommand2 as addSubcommand,removeSubcommand4 as removeSubcommand3,priceSubcommand,searchSubcommand,buySubcommand,checkSubcommand,moveSubcommand,transferInSubcommand,autoRenewSubcommand,renewSubcommand,verifySubcommand,domainsCommand,SUPPORTED_CREDIT_TYPES,CREDIT_TYPE_LABELS,creditsSubcommand,SUPPORTED_ADDON_NAMES,addonSubcommand,proSubcommand,domainSubcommand,buyCommand,purgeSubcommand,invalidateSubcommand,dangerouslyDeleteSubcommand,cacheCommand,removeSubcommand5 as removeSubcommand4,issueSubcommand,listSubcommand6 as listSubcommand5,addSubcommand3 as addSubcommand2,certsCommand,searchSubcommand2,changelogCommand,listSubcommand7 as listSubcommand6,inspectSubcommand5 as inspectSubcommand4,CI_LOG_LEVELS,logsSubcommand,rerunSubcommand,grepSubcommand,enableSubcommand,ciCommand,createSubcommand2,updateSubcommand2 as updateSubcommand,listSubcommand8 as listSubcommand7,removeSubcommand6 as removeSubcommand5,tokenSubcommand2 as tokenSubcommand,revokeTokensSubcommand,openSubcommand,attachSubcommand,detachSubcommand,contactsAddSubcommand,contactsSubcommand,discoverSubcommand,categoriesSubcommand,connexCommand,contractCommand,addSubcommand4 as addSubcommand3,listSubcommand9 as listSubcommand8,runSubcommand,cronsCommand,listSubcommand10 as listSubcommand9,scaleSubcommand,inspectSubcommand6 as inspectSubcommand5,instancesListSubcommand,instancesInspectSubcommand,instancesRestartSubcommand,instancesSubcommand,curlCommand,deprecatedArchiveSplitTgz,initSubcommand,continueSubcommand,describeSubcommand,deployCommand,listSubcommand11 as listSubcommand10,createSubcommand3,removeSubcommand7 as removeSubcommand6,deployHooksCommand,doctorCommand,importSubcommand,listSubcommand12 as listSubcommand11,addSubcommand5 as addSubcommand4,inspectSubcommand7 as inspectSubcommand6,removeSubcommand8 as removeSubcommand7,updateSubcommand3 as updateSubcommand2,dnsCommand,listSubcommand13 as listSubcommand12,inspectSubcommand8 as inspectSubcommand7,createSubcommand4,updateSubcommand4 as updateSubcommand3,pauseSubcommand2 as pauseSubcommand,resumeSubcommand2 as resumeSubcommand,deleteSubcommand,drainsCommand,listSubcommand14 as listSubcommand13,inspectSubcommand9 as inspectSubcommand8,createSubcommand5,updateSubcommand5 as updateSubcommand4,startSubcommand,setRampSubcommand,restartAnalysisSubcommand,reseedEnrollmentSubcommand,returnToDraftSubcommand,decideSubcommand,analyzeSubcommand,diagnoseSubcommand,openSubcommand2,deleteSubcommand2,experimentsCommand,feedbackCommand,overviewSubcommand,statusSubcommand,diffSubcommand,publishSubcommand,discardSubcommand,systemBypassListSubcommand,systemBypassAddSubcommand,systemBypassRemoveSubcommand,systemBypassSubcommand,ipBlocksListSubcommand,ipBlocksBlockSubcommand,ipBlocksUnblockSubcommand,ipBlocksSubcommand,rulesListSubcommand2,rulesInspectSubcommand,rulesAddSubcommand2,rulesEditSubcommand2,rulesEnableSubcommand,rulesDisableSubcommand,rulesRemoveSubcommand2,rulesReorderSubcommand,rulesSubcommand2,attackModeEnableSubcommand,attackModeDisableSubcommand,attackModeSubcommand,systemMitigationsPauseSubcommand,systemMitigationsResumeSubcommand,systemMitigationsSubcommand,alertsListSubcommand,alertsInspectSubcommand,alertsSubcommand,persistentActionsListSubcommand,persistentActionsInspectSubcommand,persistentActionsSubcommand,trafficListSubcommand,trafficInspectSubcommand,botManagementSubcommand,trafficSubcommand,firewallCommand,FLAG_ATTRIBUTE_TYPES,isFlagAttributeType,formatFlagAttributeTypeList,isTimestampAttributeType,isBucketingAttribute,getFlagAttributeType,FLAG_CONDITION_LIST_COMPARATORS,FLAG_CONDITION_RHS_OPTIONAL_COMPARATORS,formatFlagConditionComparatorList,formatFlagConditionComparator,FLAG_EVALUATIONS_GRANULARITIES,isFlagEvaluationsGranularity,FLAG_EVALUATIONS_DIMENSIONS,FLAG_EVALUATIONS_DIMENSION_NAMES,isFlagEvaluationsDimension,listSubcommand15 as listSubcommand14,staleSubcommand,cleanupSubcommand,inspectSubcommand10 as inspectSubcommand9,versionsListSubcommand,versionsDiffSubcommand,versionsSubcommand,evaluationsSubcommand,createSubcommand6,openSubcommand3,updateSubcommand6 as updateSubcommand5,setSubcommand2,targetingEnableSubcommand,targetingSubcommand,useTargetingSubcommand,splitSubcommand,rolloutSubcommand,rulesListSubcommand3,rulesAddSubcommand3,rulesUpdateSubcommand,rulesRemoveSubcommand3,rulesMoveSubcommand,rulesSubcommand3,targetsListSubcommand,targetsAddSubcommand,targetsRemoveSubcommand,targetsSubcommand,removeSubcommand9 as removeSubcommand8,archiveSubcommand,unarchiveSubcommand,disableSubcommand,enableSubcommand2,segmentsListSubcommand,segmentsInspectSubcommand,segmentsCreateSubcommand,segmentsUpdateSubcommand,segmentsRemoveSubcommand,segmentsSubcommand,entitiesListSubcommand,entitiesCreateSubcommand,entitiesUpdateSubcommand,entitiesRemoveSubcommand,labelsListSubcommand,labelsSubcommand,entitiesSubcommand,sdkKeysListSubcommand,sdkKeysAddSubcommand,sdkKeysRemoveSubcommand,sdkKeysSubcommand,connectionsListSubcommand,connectionsAddSubcommand,connectionsRemoveSubcommand,connectionsSubcommand,prepareSubcommand,datafileSubcommand,overrideSubcommand,flagsCommand,connectSubcommand,disconnectSubcommand,gitCommand,listSubcommand16 as listSubcommand15,addSubcommand6 as addSubcommand5,getSubcommand,updateSubcommand7 as updateSubcommand6,removeSubcommand10 as removeSubcommand9,itemsSubcommand,tokensSubcommand,backupsSubcommand,globalConfigCommand,statusSubcommand2,enableSubcommand3,disableSubcommand2,guidanceCommand,healthCommand,httpstatCommand,initCommand,inspectCommand,removeSubcommand11 as removeSubcommand10,disconnectSubcommand2,connectSubcommand2,createThresholdSubcommand,claimSubcommand,inspectSubcommand11 as inspectSubcommand10,integrationResourceCommand,addSubcommand7 as addSubcommand6,acceptTermsSubcommand,openSubcommand4,installationsSubcommand,listSubcommand17 as listSubcommand16,discoverSubcommand2,categoriesSubcommand2,balanceSubcommand,updateSubcommand8 as updateSubcommand7,removeSubcommand12 as removeSubcommand11,guideSubcommand,resourceSubcommand,integrationCommand,installCommand,KMS_ALGORITHMS,PROJECT_GRANT_POLICY_KIND,isProjectGrant,issuerUrl,issuerJwksUrl,listSubcommand18 as listSubcommand17,inspectSubcommand12 as inspectSubcommand11,addSubcommand8 as addSubcommand7,importSubcommand2,updateSubcommand9 as updateSubcommand8,removeSubcommand13 as removeSubcommand12,addKeySubcommand,importKeySubcommand,activateKeySubcommand,revokeKeySubcommand,addGrantSubcommand,updateGrantSubcommand,removeGrantSubcommand,kmsCommand,logoutCommand,BACKGROUND_FUNCTION_EXCLUSION,logsSources,sourceForEvent,DEFAULT_LIMIT,MAX_LIMIT,DEFAULT_WINDOW,runtimeSubcommand,requestsSubcommand,logsCommand,mcpCommand,createGroupSubcommand,addToGroupSubcommand,removeFromGroupSubcommand,deleteGroupSubcommand,pullSubcommand,inspectGroupSubcommand,microfrontendsCommand,openCommand,listSubcommand19 as listSubcommand18,inspectSubcommand13 as inspectSubcommand12,createSubcommand7,updateSubcommand10 as updateSubcommand9,teamsListSubcommand,teamsCreateSubcommand,teamsAddSubcommand,teamsSubcommand,organizationsCommand,scriptsCommand,headersCommand,connectionsCommand,pricingCommand,addSubcommand as addSubcommand8,checksAddFlags,checksRemoveFlags,checksSubcommand,inspectSubcommand as inspectSubcommand13,listSubcommand as listSubcommand19,pauseSubcommand as pauseSubcommand2,resumeSubcommand as resumeSubcommand2,removeSubcommand as removeSubcommand13,renameSubcommand,updateSubcommand as updateSubcommand10,tokenSubcommand as tokenSubcommand2,accessSummarySubcommand,membersRemoveFlags,PROJECT_MEMBER_ROLES,membersAddFlags,membersSubcommand,protectionEnableSubcommand,protectionSubcommand,accessGroupsSubcommand,webAnalyticsDisableSubcommand,webAnalyticsSubcommand,speedInsightsSubcommand,observabilityDisableSubcommand,observabilitySubcommand,prioritySubcommand,dangerouslyDeleteImmutableStaticAssetSubcommand,projectCommand,statusSubcommand3,promoteCommand,redeployCommand,listSubcommand20,listVersionsSubcommand,addSubcommand9,uploadSubcommand,removeSubcommand14,promoteSubcommand,restoreSubcommand,redirectsCommand,removeCommand,statusSubcommand4,rollbackCommand,configureSubcommand,startSubcommand2,approveSubcommand,abortSubcommand,completeSubcommand,fetchSubcommand,rollingReleaseCommand,createSubcommand8,updateSubcommand11,enableSubcommand4,disableSubcommand3,invokeSubcommand,deleteSubcommand3,executionsListSubcommand,executionsSubcommand,listSubcommand21,getSubcommand2,schedulesCommand,checkSubcommand2,securityCommand,signupCommand,skillsCommand,getStorageStores,getStorageStore,resolveStore,storeSupportsOidc,storeProductLabel,getConnections,resolveProjectConnection,findOverlappingConnections,STORAGE_PROVIDERS,listStorageProviderTypes,getStorageProvider,storeTypeName,storeMatchesType,findForeignCreateFlags,loadStoreDetails,connectSubcommand3,statusSubcommand5,updateSubcommand12,disconnectSubcommand3,listSubcommand22,createSubcommand9,getSubcommand3,deleteSubcommand4,storageCommand,listSubcommand23,targetCommand,requestSubcommand,addSubcommand10,listSubcommand24,switchSubcommand,inviteSubcommand,ssoSubcommand,membersSubcommand2,membersInviteSubcommand,membersRemoveSubcommand,teamsCommand,listSubcommand25,addSubcommand11,removeSubcommand15,tokensCommand,statusSubcommand6,enableSubcommand5,flushSubcommand,disableSubcommand4,telemetryCommand,upgradeCommand,usageCommand,listSubcommand26,installedSubcommand,useSubcommand,checkSubcommand3,updateSubcommand13,autoupdateSubcommand,versionCommand,whoamiCommand,listSubcommand27,putSubcommand,delSubcommand,copySubcommand,getSubcommand4,putImageSubcommand,signedTokenSubcommand,presignSubcommand,createStoreSubcommand,deleteStoreSubcommand,emptyStoreSubcommand,getStoreInfoSubcommand,listStoresSubcommand,blobCommand,inspectSubcommand14,listSubcommand28,setSubcommand3,removeSubcommand16,alertsListSubcommand2,alertsSubcommand2,budgetCommand,listSubcommand29,getSubcommand5,createSubcommand10,removeSubcommand17,webhooksCommand,commandsStructs,getCommandAliases,commands};