vercel 59.14.0 → 59.15.0

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 (459) hide show
  1. package/dist/chunks/add-7XFD2OHW.js +8 -0
  2. package/dist/chunks/add-HZC7AUBY.js +8 -0
  3. package/dist/chunks/add-PYUNJZ6K.js +8 -0
  4. package/dist/chunks/build-EFKQ6BND.js +7 -0
  5. package/dist/chunks/chunk-2B2MN3U5.js +8 -0
  6. package/dist/chunks/chunk-2H77IRPI.js +9 -0
  7. package/dist/chunks/chunk-2I64AYHG.js +7 -0
  8. package/dist/chunks/chunk-2PPXY24N.js +20 -0
  9. package/dist/chunks/chunk-2S6PE6GB.js +7 -0
  10. package/dist/chunks/{chunk-PIMIVJYK.js → chunk-3FMJYJUR.js} +7 -32
  11. package/dist/chunks/chunk-3IAQUNQH.js +7 -0
  12. package/dist/chunks/chunk-3QHJYVCY.js +7 -0
  13. package/dist/chunks/chunk-3QT7VOE3.js +7 -0
  14. package/dist/chunks/chunk-3TXEXPUW.js +7 -0
  15. package/dist/chunks/chunk-4MZK6JT6.js +7 -0
  16. package/dist/chunks/chunk-4NE5IQ25.js +7 -0
  17. package/dist/chunks/chunk-4PNSSS3L.js +7 -0
  18. package/dist/chunks/chunk-4QX77CP7.js +7 -0
  19. package/dist/chunks/chunk-57GHYR4Y.js +25 -0
  20. package/dist/chunks/chunk-5QQNYN4N.js +7 -0
  21. package/dist/chunks/chunk-5XJNPXQK.js +7 -0
  22. package/dist/chunks/chunk-6L236MNA.js +7 -0
  23. package/dist/chunks/chunk-6PFC3KWQ.js +7 -0
  24. package/dist/chunks/chunk-6QKS6QK7.js +7 -0
  25. package/dist/chunks/chunk-6RIQPTJA.js +8 -0
  26. package/dist/chunks/chunk-6TAQ6OWD.js +13 -0
  27. package/dist/chunks/chunk-6YAADRQB.js +9 -0
  28. package/dist/chunks/chunk-75CPY75D.js +15 -0
  29. package/dist/chunks/chunk-7HL2RPUO.js +7 -0
  30. package/dist/chunks/chunk-7PNYOSDU.js +9 -0
  31. package/dist/chunks/chunk-7R5FEXZ5.js +7 -0
  32. package/dist/chunks/chunk-7RMCBXBB.js +62 -0
  33. package/dist/chunks/chunk-7RR7MIMT.js +7 -0
  34. package/dist/chunks/chunk-7T6TL3GQ.js +7 -0
  35. package/dist/chunks/chunk-ADUYPK2G.js +13 -0
  36. package/dist/chunks/chunk-AFPOIDM5.js +7 -0
  37. package/dist/chunks/chunk-AM46JVVN.js +7 -0
  38. package/dist/chunks/chunk-AVSPFBLM.js +7 -0
  39. package/dist/chunks/chunk-B4ATVYZW.js +7 -0
  40. package/dist/chunks/chunk-BATE73HA.js +9 -0
  41. package/dist/chunks/{chunk-64IF634X.js → chunk-BRK4OB4B.js} +1 -12
  42. package/dist/chunks/chunk-BVH2AEFE.js +7 -0
  43. package/dist/chunks/chunk-CN2QZO4U.js +7 -0
  44. package/dist/chunks/chunk-COQGD2EI.js +8 -0
  45. package/dist/chunks/chunk-CUAIEGNE.js +7 -0
  46. package/dist/chunks/chunk-CVKB54WW.js +7 -0
  47. package/dist/chunks/{chunk-A3NYPUKZ.js → chunk-CZSOZKHX.js} +1 -11
  48. package/dist/chunks/chunk-D4MW3RDW.js +7 -0
  49. package/dist/chunks/chunk-DFVNL5ML.js +7 -0
  50. package/dist/chunks/chunk-EE3FVJLV.js +16 -0
  51. package/dist/chunks/chunk-EGMJRU5P.js +28 -0
  52. package/dist/chunks/chunk-ENBTTYJR.js +7 -0
  53. package/dist/chunks/chunk-ENS6KX2F.js +7 -0
  54. package/dist/chunks/chunk-EOBD4ZEG.js +8 -0
  55. package/dist/chunks/chunk-EOCTK4EA.js +7 -0
  56. package/dist/chunks/chunk-EQ52F4LH.js +7 -0
  57. package/dist/chunks/chunk-ETV3C2CV.js +7 -0
  58. package/dist/chunks/chunk-EVZRQGNK.js +7 -0
  59. package/dist/chunks/chunk-F2ZWW2IO.js +8 -0
  60. package/dist/chunks/chunk-FAW6NBLQ.js +7 -0
  61. package/dist/chunks/chunk-FI772UVH.js +7 -0
  62. package/dist/chunks/chunk-FKCOBJFH.js +7 -0
  63. package/dist/chunks/chunk-FVGESGJI.js +45 -0
  64. package/dist/chunks/chunk-G5FC5ZCO.js +9 -0
  65. package/dist/chunks/chunk-G6CTAHKY.js +39 -0
  66. package/dist/chunks/chunk-G7Y77DFH.js +7 -0
  67. package/dist/chunks/chunk-GHAY4PSD.js +7 -0
  68. package/dist/chunks/chunk-GHM7V3GG.js +7 -0
  69. package/dist/chunks/chunk-GRNTLNC7.js +7 -0
  70. package/dist/chunks/chunk-GTRGQIY2.js +10 -0
  71. package/dist/chunks/chunk-GU6VIFR5.js +7 -0
  72. package/dist/chunks/{constants-YMCRE6IG.js → chunk-GZNDA6SV.js} +2 -9
  73. package/dist/chunks/chunk-HBFPLBTX.js +10 -0
  74. package/dist/chunks/chunk-HEGJZJO7.js +7 -0
  75. package/dist/chunks/chunk-HSJ6AHWG.js +12 -0
  76. package/dist/chunks/chunk-HTC6KO2B.js +7 -0
  77. package/dist/chunks/chunk-HVUHCRZB.js +18 -0
  78. package/dist/chunks/chunk-HZZ5L472.js +7 -0
  79. package/dist/chunks/chunk-IVSSTHB6.js +7 -0
  80. package/dist/chunks/chunk-IVWPQYIH.js +7 -0
  81. package/dist/chunks/chunk-J3U3L45Y.js +7 -0
  82. package/dist/chunks/chunk-JAJW3P42.js +7 -0
  83. package/dist/chunks/chunk-JEIMW3CO.js +7 -0
  84. package/dist/chunks/chunk-JIYY3B4C.js +7 -0
  85. package/dist/chunks/chunk-JKTQV2QJ.js +7 -0
  86. package/dist/chunks/chunk-JTVVBRW7.js +7 -0
  87. package/dist/chunks/chunk-JYAUUIR4.js +7 -0
  88. package/dist/chunks/chunk-JZRMH5UA.js +7 -0
  89. package/dist/chunks/chunk-K2RAW5DI.js +10 -0
  90. package/dist/chunks/chunk-K3KJZLBD.js +7 -0
  91. package/dist/chunks/chunk-KK4AJES5.js +36 -0
  92. package/dist/chunks/chunk-KKS7XWEX.js +7 -0
  93. package/dist/chunks/chunk-KNEWCUWF.js +14 -0
  94. package/dist/chunks/chunk-KO733OJG.js +9 -0
  95. package/dist/chunks/chunk-L243RUIR.js +19 -0
  96. package/dist/chunks/chunk-L3JDEHCQ.js +7 -0
  97. package/dist/chunks/chunk-LDM3SQAU.js +13 -0
  98. package/dist/chunks/chunk-LNPMDXBJ.js +7 -0
  99. package/dist/chunks/chunk-M2W3HKV3.js +23 -0
  100. package/dist/chunks/chunk-M2XARQBF.js +9 -0
  101. package/dist/chunks/chunk-M5AV545M.js +7 -0
  102. package/dist/chunks/chunk-MAVRGZQP.js +7 -0
  103. package/dist/chunks/chunk-MBL6TXEJ.js +7 -0
  104. package/dist/chunks/chunk-MEAY2K5Z.js +11 -0
  105. package/dist/chunks/chunk-MY4MONOH.js +7 -0
  106. package/dist/chunks/chunk-N3N5UHIL.js +7 -0
  107. package/dist/chunks/chunk-N3ZZ7FHQ.js +7 -0
  108. package/dist/chunks/chunk-N6CNMMSZ.js +7 -0
  109. package/dist/chunks/chunk-NBVY237X.js +7 -0
  110. package/dist/chunks/chunk-NGNOUPWS.js +25 -0
  111. package/dist/chunks/chunk-NHTF332K.js +7 -0
  112. package/dist/chunks/chunk-NNP5NITU.js +15 -0
  113. package/dist/chunks/chunk-NS4FH2TY.js +11 -0
  114. package/dist/chunks/chunk-NUGLE4QY.js +11 -0
  115. package/dist/chunks/chunk-NWFHHUKZ.js +7 -0
  116. package/dist/chunks/chunk-O7G3CZ42.js +7 -0
  117. package/dist/chunks/chunk-OD6RZ3XZ.js +8 -0
  118. package/dist/chunks/chunk-OHDEHZLX.js +7 -0
  119. package/dist/chunks/chunk-OK3S6KFX.js +16 -0
  120. package/dist/chunks/chunk-OKZDOANA.js +23 -0
  121. package/dist/chunks/chunk-OSCCYU74.js +7 -0
  122. package/dist/chunks/chunk-OUHPDA7Q.js +7 -0
  123. package/dist/chunks/chunk-P2O5DOYE.js +7 -0
  124. package/dist/chunks/chunk-PHW54NU5.js +13 -0
  125. package/dist/chunks/chunk-PPCFQQSU.js +7 -0
  126. package/dist/chunks/chunk-QGIGNMII.js +8 -0
  127. package/dist/chunks/chunk-QGIQK47P.js +7 -0
  128. package/dist/chunks/chunk-QHJLRTVY.js +7 -0
  129. package/dist/chunks/{chunk-2473DUBR.js → chunk-QR7QPUFN.js} +1 -9
  130. package/dist/chunks/chunk-QTKJC2O5.js +7 -0
  131. package/dist/chunks/chunk-R2TGGVCT.js +19 -0
  132. package/dist/chunks/chunk-RAIBQIKB.js +7 -0
  133. package/dist/chunks/chunk-RCTYVKM5.js +16 -0
  134. package/dist/chunks/chunk-RKAUVPOQ.js +86 -0
  135. package/dist/chunks/chunk-S5CEIACD.js +7 -0
  136. package/dist/chunks/chunk-SGWVKRSR.js +8 -0
  137. package/dist/chunks/chunk-SOJCELXH.js +7 -0
  138. package/dist/chunks/chunk-SXUEGVWB.js +7 -0
  139. package/dist/chunks/{chunk-GGPE5377.js → chunk-T3GQAMBJ.js} +1 -9
  140. package/dist/chunks/chunk-T52FMXWC.js +7 -0
  141. package/dist/chunks/chunk-TG2RCYTH.js +7 -0
  142. package/dist/chunks/chunk-TJCIHDPZ.js +9 -0
  143. package/dist/chunks/chunk-TKBXN4H3.js +9 -0
  144. package/dist/chunks/chunk-TRTEXGVN.js +7 -0
  145. package/dist/chunks/chunk-TXELFFNK.js +15 -0
  146. package/dist/chunks/chunk-U56NHYAH.js +7 -0
  147. package/dist/chunks/chunk-U7KCDTCH.js +12 -0
  148. package/dist/chunks/chunk-UETTIYUQ.js +8 -0
  149. package/dist/chunks/chunk-UGMZQZJE.js +24 -0
  150. package/dist/chunks/chunk-ULLWCOYC.js +7 -0
  151. package/dist/chunks/chunk-UXTHEQVJ.js +21 -0
  152. package/dist/chunks/chunk-VLZ47RWM.js +44 -0
  153. package/dist/chunks/chunk-WKZ6JSGZ.js +7 -0
  154. package/dist/chunks/chunk-WPS6JZF6.js +7 -0
  155. package/dist/chunks/chunk-WRILLB46.js +7 -0
  156. package/dist/chunks/chunk-WUZD4KBL.js +7 -0
  157. package/dist/chunks/chunk-XCJDGQO7.js +7 -0
  158. package/dist/chunks/{pkg-56KRLZ5K.js → chunk-XD2LZRBS.js} +1 -7
  159. package/dist/chunks/chunk-XFVGX5HG.js +7 -0
  160. package/dist/chunks/chunk-XHOGOH6N.js +7 -0
  161. package/dist/chunks/{update-route-version-E3V47KNI.js → chunk-XPXOV5UO.js} +1 -7
  162. package/dist/chunks/chunk-XQ73QIQ3.js +7 -0
  163. package/dist/chunks/chunk-XSVBYDYI.js +8 -0
  164. package/dist/chunks/chunk-YKZLKOOD.js +12 -0
  165. package/dist/chunks/chunk-YMVDWVMO.js +7 -0
  166. package/dist/chunks/chunk-YPTLSODC.js +7 -0
  167. package/dist/chunks/chunk-YV6CTDHR.js +7 -0
  168. package/dist/chunks/chunk-Z6Y55QJW.js +23 -0
  169. package/dist/chunks/chunk-ZDX75YNZ.js +7 -0
  170. package/dist/chunks/chunk-ZIPVX7LD.js +7 -0
  171. package/dist/chunks/chunk-ZKYS7EAB.js +7 -0
  172. package/dist/chunks/chunk-ZT6KDLLY.js +20 -0
  173. package/dist/chunks/chunk-ZXE4XYIV.js +7 -0
  174. package/dist/chunks/chunk-ZZQRMRWD.js +20 -0
  175. package/dist/chunks/cjs-GOQHXIHX.js +54 -0
  176. package/dist/chunks/clear-5NQAVWIF.js +8 -0
  177. package/dist/chunks/compile-vercel-config-6J2XUFRK.js +7 -0
  178. package/dist/chunks/config-CKYRXZXL.js +7 -0
  179. package/dist/chunks/config-VNUY4RJ4.js +8 -0
  180. package/dist/chunks/connect-git-provider-GIU5WZ52.js +7 -0
  181. package/dist/chunks/constants-G4UYVLOF.js +7 -0
  182. package/dist/chunks/create-project-SRQGD4JY.js +7 -0
  183. package/dist/chunks/delete-GTXXCSKQ.js +10 -0
  184. package/dist/chunks/delete-HRJEO4MI.js +9 -0
  185. package/dist/chunks/detect-projects-2GNCZ4CS.js +7 -0
  186. package/dist/chunks/detect-services-GHILEGNU.js +7 -0
  187. package/dist/chunks/disable-RWCRVG5O.js +7 -0
  188. package/dist/chunks/discard-SHFIYCJU.js +14 -0
  189. package/dist/chunks/edit-DMO3NSO2.js +9 -0
  190. package/dist/chunks/edit-EVQI2RSS.js +8 -0
  191. package/dist/chunks/enable-AWDU6STD.js +7 -0
  192. package/dist/chunks/esm-7HVUFWMN.js +7 -0
  193. package/dist/chunks/esm-BZBEM7YA.js +7 -0
  194. package/dist/chunks/esm-CXICLFA3.js +9 -0
  195. package/dist/chunks/esm-HDEHVK7I.js +9 -0
  196. package/dist/chunks/esm-NQRLKALI.js +20 -0
  197. package/dist/chunks/esm-SZZI53W7.js +7 -0
  198. package/dist/chunks/esm-WGJFGCLK.js +7 -0
  199. package/dist/chunks/exec-4AISDHUV.js +16372 -0
  200. package/dist/chunks/export-IQKTA4RS.js +19 -0
  201. package/dist/chunks/fetch-proxy-AEAWC6MD.js +7 -0
  202. package/dist/chunks/future-E2FHKPJN.js +7 -0
  203. package/dist/chunks/generate-cert-for-deploy-VKOWC4PZ.js +7 -0
  204. package/dist/chunks/image-LDFYNOCA.js +7 -0
  205. package/dist/chunks/import-builders-P7CXSX2D.js +7 -0
  206. package/dist/chunks/inspect-3N47ODIH.js +15 -0
  207. package/dist/chunks/inspect-53SGDDAH.js +20 -0
  208. package/dist/chunks/inspect-5INZDUQS.js +19 -0
  209. package/dist/chunks/inspect-WMT2M335.js +9 -0
  210. package/dist/chunks/inspect-Y6BUCOUV.js +13 -0
  211. package/dist/chunks/list-BIAPHKFM.js +11 -0
  212. package/dist/chunks/list-DMOCRRSE.js +16 -0
  213. package/dist/chunks/list-K5J7OULR.js +10 -0
  214. package/dist/chunks/login-DEAEVUHM.js +7 -0
  215. package/dist/chunks/login-SRVNHI4Y.js +9 -0
  216. package/dist/chunks/logs-GK7CJBYY.js +7 -0
  217. package/dist/chunks/ls-7ZX6DCJW.js +12 -0
  218. package/dist/chunks/ls-AJWN5ZR4.js +12 -0
  219. package/dist/chunks/ls-BFJWCRLZ.js +12 -0
  220. package/dist/chunks/ls-KGIE6HCO.js +12 -0
  221. package/dist/chunks/ls-UVKTHBTE.js +8 -0
  222. package/dist/chunks/ls-WEG45IOC.js +8 -0
  223. package/dist/chunks/native-self-update-KOJVRMHR.js +7 -0
  224. package/dist/chunks/open-OEWPI5G6.js +7 -0
  225. package/dist/chunks/openapi-MO5HYMHR.js +7 -0
  226. package/dist/chunks/permissions-EPQBQFE3.js +7 -0
  227. package/dist/chunks/pkg-YFU67U7I.js +7 -0
  228. package/dist/chunks/prompt-missing-credentials-IUHLYSQU.js +7 -0
  229. package/dist/chunks/publish-JG7MEPWT.js +15 -0
  230. package/dist/chunks/pull-MRKXG6TO.js +7 -0
  231. package/dist/chunks/purchase-domain-if-available-O5ARXEZ5.js +7 -0
  232. package/dist/chunks/push-XOXJDFYO.js +7 -0
  233. package/dist/chunks/query-AL7C6WV2.js +12 -0
  234. package/dist/chunks/reauthenticate-SH4XR7NH.js +7 -0
  235. package/dist/chunks/reorder-5DMRFDBY.js +10 -0
  236. package/dist/chunks/reply-WSRNZWFD.js +9 -0
  237. package/dist/chunks/repo-info-to-url-SK3VX6UL.js +7 -0
  238. package/dist/chunks/resolve-YJUXQVOZ.js +12 -0
  239. package/dist/chunks/resolve-deployment-framework-preset-XF3NJIDS.js +7 -0
  240. package/dist/chunks/restore-QT3DBGKU.js +16 -0
  241. package/dist/chunks/rm-MHPIUEZ5.js +8 -0
  242. package/dist/chunks/rm-MVZFU6RG.js +8 -0
  243. package/dist/chunks/rm-PXR4J2US.js +8 -0
  244. package/dist/chunks/rm-WB2AIP3N.js +8 -0
  245. package/dist/chunks/rm-XRP6MRUT.js +8 -0
  246. package/dist/chunks/routes-5DERZV5M.js +7 -0
  247. package/dist/chunks/rule-inspect-TT3DRGCS.js +8 -0
  248. package/dist/chunks/rules-B5GW4KJH.js +7 -0
  249. package/dist/chunks/schema-JY5QTZOG.js +14 -0
  250. package/dist/chunks/schema-KCNKVFT3.js +44 -0
  251. package/dist/chunks/select-org-KSCYSESV.js +7 -0
  252. package/dist/chunks/set-7BANEWEL.js +7 -0
  253. package/dist/chunks/setup-and-link-ZAV3EFGC.js +7 -0
  254. package/dist/chunks/slugify-O5DBATYT.js +7 -0
  255. package/dist/chunks/stamp-OX4YO3KY.js +7 -0
  256. package/dist/chunks/tags-VZR66NUC.js +7 -0
  257. package/dist/chunks/types-LRXQEDYI.js +14 -0
  258. package/dist/chunks/update-RBFNNSWE.js +8 -0
  259. package/dist/chunks/update-route-version-XZAFPQJC.js +7 -0
  260. package/dist/chunks/utils-B5ZTMQKY.js +58 -0
  261. package/dist/chunks/vlt-builder-importer-YVCYYRVV.js +11 -0
  262. package/dist/commands/build/index.js +24 -4925
  263. package/dist/commands/deploy/index.js +43 -2875
  264. package/dist/commands/dev/index.js +56 -23857
  265. package/dist/commands/env/index.js +26 -3411
  266. package/dist/commands/link/index.js +4 -284
  267. package/dist/commands/list/index.js +6 -566
  268. package/dist/commands-bulk.js +1187 -87691
  269. package/dist/help.js +1 -8
  270. package/dist/index.js +19 -2591
  271. package/dist/version.mjs +1 -1
  272. package/package.json +50 -51
  273. package/dist/chunks/add-EQZRT4XL.js +0 -221
  274. package/dist/chunks/add-KMDROZC3.js +0 -196
  275. package/dist/chunks/add-QPJ3XMBV.js +0 -145
  276. package/dist/chunks/build-W4HPTAOB.js +0 -251
  277. package/dist/chunks/chunk-26CU4Q3C.js +0 -598
  278. package/dist/chunks/chunk-2HSQ7YUK.js +0 -93
  279. package/dist/chunks/chunk-2JIX6UMI.js +0 -4626
  280. package/dist/chunks/chunk-2LCFOK66.js +0 -1536
  281. package/dist/chunks/chunk-332LMJLZ.js +0 -16014
  282. package/dist/chunks/chunk-3HZLXCVL.js +0 -137
  283. package/dist/chunks/chunk-3VM7HWF6.js +0 -104
  284. package/dist/chunks/chunk-3ZE5CFVM.js +0 -346
  285. package/dist/chunks/chunk-4IALDGB7.js +0 -22
  286. package/dist/chunks/chunk-4KD5BYHB.js +0 -127
  287. package/dist/chunks/chunk-4TUMNBEE.js +0 -231
  288. package/dist/chunks/chunk-4WG2MYCI.js +0 -163
  289. package/dist/chunks/chunk-57RHXXXG.js +0 -150
  290. package/dist/chunks/chunk-5AJPMLDV.js +0 -28
  291. package/dist/chunks/chunk-5EIV6LPQ.js +0 -305
  292. package/dist/chunks/chunk-5NF5HOBJ.js +0 -1854
  293. package/dist/chunks/chunk-653QRQAD.js +0 -417
  294. package/dist/chunks/chunk-67CRVWDF.js +0 -81
  295. package/dist/chunks/chunk-6E6KPBXY.js +0 -43
  296. package/dist/chunks/chunk-75VENWDN.js +0 -1892
  297. package/dist/chunks/chunk-7MRDIPJY.js +0 -107
  298. package/dist/chunks/chunk-7NRNFV77.js +0 -875
  299. package/dist/chunks/chunk-7Q45OKWR.js +0 -149
  300. package/dist/chunks/chunk-AHU7WNL2.js +0 -24
  301. package/dist/chunks/chunk-AINIBIP4.js +0 -39
  302. package/dist/chunks/chunk-AJ5HUOWB.js +0 -14059
  303. package/dist/chunks/chunk-AKLTIZCU.js +0 -46
  304. package/dist/chunks/chunk-AQ6P3IGG.js +0 -49
  305. package/dist/chunks/chunk-B5NH7SLK.js +0 -324
  306. package/dist/chunks/chunk-B5XLQKHI.js +0 -849
  307. package/dist/chunks/chunk-BEQV3X2L.js +0 -86
  308. package/dist/chunks/chunk-CAHP7UGE.js +0 -79
  309. package/dist/chunks/chunk-CFDDM4TX.js +0 -13618
  310. package/dist/chunks/chunk-CJV7J7B5.js +0 -314
  311. package/dist/chunks/chunk-CV5YC2EN.js +0 -867
  312. package/dist/chunks/chunk-CXFY6A6W.js +0 -255
  313. package/dist/chunks/chunk-D5SMZXVO.js +0 -233
  314. package/dist/chunks/chunk-E336ZXPP.js +0 -43
  315. package/dist/chunks/chunk-EDMW7SBH.js +0 -246
  316. package/dist/chunks/chunk-EFYMIIER.js +0 -40
  317. package/dist/chunks/chunk-EKPSCRJZ.js +0 -26
  318. package/dist/chunks/chunk-EOZFDJSY.js +0 -18
  319. package/dist/chunks/chunk-EWBCSDTM.js +0 -1708
  320. package/dist/chunks/chunk-EZKW5YJ2.js +0 -177
  321. package/dist/chunks/chunk-F2QLCXCF.js +0 -2399
  322. package/dist/chunks/chunk-FGDKMNEN.js +0 -21
  323. package/dist/chunks/chunk-FRVG4OW3.js +0 -7438
  324. package/dist/chunks/chunk-FVF4UHDM.js +0 -1288
  325. package/dist/chunks/chunk-G5FBSUL4.js +0 -822
  326. package/dist/chunks/chunk-GDOUDU6O.js +0 -74
  327. package/dist/chunks/chunk-GGP5R3FU.js +0 -129
  328. package/dist/chunks/chunk-GVNCVKCI.js +0 -68
  329. package/dist/chunks/chunk-GY5I4AYD.js +0 -122
  330. package/dist/chunks/chunk-GZLPFESR.js +0 -48
  331. package/dist/chunks/chunk-HB4UKFDO.js +0 -1295
  332. package/dist/chunks/chunk-HD4DR3DA.js +0 -818
  333. package/dist/chunks/chunk-HKHXKSXQ.js +0 -152
  334. package/dist/chunks/chunk-HM24ZWQL.js +0 -174
  335. package/dist/chunks/chunk-HRXRELD3.js +0 -338
  336. package/dist/chunks/chunk-IB5L4LKZ.js +0 -1082
  337. package/dist/chunks/chunk-IIMSID24.js +0 -104
  338. package/dist/chunks/chunk-J7JKZM4T.js +0 -58
  339. package/dist/chunks/chunk-JC2O346E.js +0 -137
  340. package/dist/chunks/chunk-JSD4EZL3.js +0 -34
  341. package/dist/chunks/chunk-JZXJZX7O.js +0 -257
  342. package/dist/chunks/chunk-K3RED3VO.js +0 -566
  343. package/dist/chunks/chunk-KFWQ3EFH.js +0 -151
  344. package/dist/chunks/chunk-KW7BS25T.js +0 -466
  345. package/dist/chunks/chunk-KXDWXXJH.js +0 -70
  346. package/dist/chunks/chunk-LERVNZTD.js +0 -90
  347. package/dist/chunks/chunk-LYAAQDNS.js +0 -242
  348. package/dist/chunks/chunk-M5I6INNF.js +0 -61
  349. package/dist/chunks/chunk-N6HP5BLI.js +0 -18190
  350. package/dist/chunks/chunk-ND5CF2H3.js +0 -53
  351. package/dist/chunks/chunk-NFU4XJIR.js +0 -120
  352. package/dist/chunks/chunk-NW34PW6V.js +0 -1772
  353. package/dist/chunks/chunk-OAMU5QO6.js +0 -18
  354. package/dist/chunks/chunk-OCIZ6ZYA.js +0 -253
  355. package/dist/chunks/chunk-ORQZKIIB.js +0 -2914
  356. package/dist/chunks/chunk-P3SKP5WM.js +0 -27
  357. package/dist/chunks/chunk-P4QNYOFB.js +0 -96
  358. package/dist/chunks/chunk-P7VSBDR4.js +0 -827
  359. package/dist/chunks/chunk-PEC3CQSK.js +0 -90
  360. package/dist/chunks/chunk-PMSMUMUO.js +0 -30
  361. package/dist/chunks/chunk-PNGVSHR3.js +0 -40
  362. package/dist/chunks/chunk-POOO7W47.js +0 -916
  363. package/dist/chunks/chunk-PRWJUY5U.js +0 -848
  364. package/dist/chunks/chunk-Q2DGFCO7.js +0 -579
  365. package/dist/chunks/chunk-RBF2NPUP.js +0 -577
  366. package/dist/chunks/chunk-RBIFXFZX.js +0 -52
  367. package/dist/chunks/chunk-RDTRWLWB.js +0 -11441
  368. package/dist/chunks/chunk-RN6V5ODW.js +0 -114
  369. package/dist/chunks/chunk-RNSMTWA6.js +0 -122
  370. package/dist/chunks/chunk-RTJASENB.js +0 -59
  371. package/dist/chunks/chunk-RVBZ64EQ.js +0 -52
  372. package/dist/chunks/chunk-S7KYDPEM.js +0 -1564
  373. package/dist/chunks/chunk-SLPSPYVR.js +0 -334
  374. package/dist/chunks/chunk-SM3F3PYJ.js +0 -522
  375. package/dist/chunks/chunk-TO7QZGYK.js +0 -105
  376. package/dist/chunks/chunk-TSBUHSN7.js +0 -3495
  377. package/dist/chunks/chunk-TSFWMUCY.js +0 -506
  378. package/dist/chunks/chunk-TZ2YI2VH.js +0 -87
  379. package/dist/chunks/chunk-UG2WOB5L.js +0 -150
  380. package/dist/chunks/chunk-UNKHOYMF.js +0 -559
  381. package/dist/chunks/chunk-UOVWUSLG.js +0 -2099
  382. package/dist/chunks/chunk-V4RMJKQP.js +0 -36
  383. package/dist/chunks/chunk-VGIMO3ZK.js +0 -17
  384. package/dist/chunks/chunk-VGKSIKCC.js +0 -92
  385. package/dist/chunks/chunk-VP5Y3SZG.js +0 -106
  386. package/dist/chunks/chunk-VXYGCOKL.js +0 -28
  387. package/dist/chunks/chunk-W7FGI2GZ.js +0 -233
  388. package/dist/chunks/chunk-WGGABYO5.js +0 -31
  389. package/dist/chunks/chunk-XDGOOW3K.js +0 -60
  390. package/dist/chunks/chunk-XFF5TGRA.js +0 -303
  391. package/dist/chunks/chunk-XNIZGCN5.js +0 -58
  392. package/dist/chunks/chunk-XPJLPUKO.js +0 -117
  393. package/dist/chunks/chunk-XUAWTW4W.js +0 -467
  394. package/dist/chunks/chunk-YPQSDAEW.js +0 -29
  395. package/dist/chunks/chunk-YS76T533.js +0 -270
  396. package/dist/chunks/chunk-ZDU2NODC.js +0 -104
  397. package/dist/chunks/chunk-ZW6HETRE.js +0 -97
  398. package/dist/chunks/cjs-DV4RM7XU.js +0 -20743
  399. package/dist/chunks/clear-4IACMLFU.js +0 -141
  400. package/dist/chunks/compile-vercel-config-PQQ3OCLV.js +0 -33
  401. package/dist/chunks/config-BQQKMQBP.js +0 -168
  402. package/dist/chunks/config-OCPNHXQL.js +0 -127
  403. package/dist/chunks/delete-HRKIYPCO.js +0 -159
  404. package/dist/chunks/delete-P2UL3KTU.js +0 -226
  405. package/dist/chunks/detect-projects-ODNU4PK2.js +0 -18
  406. package/dist/chunks/detect-services-U7QGT7VO.js +0 -40
  407. package/dist/chunks/disable-3NYMICQ3.js +0 -198
  408. package/dist/chunks/discard-RNVEJUK3.js +0 -145
  409. package/dist/chunks/edit-63S2RQHR.js +0 -162
  410. package/dist/chunks/edit-CTENFZ7H.js +0 -647
  411. package/dist/chunks/enable-WILWXAHV.js +0 -204
  412. package/dist/chunks/exec-4IPHZ55G.js +0 -1291
  413. package/dist/chunks/export-YHGV3EPK.js +0 -177
  414. package/dist/chunks/fetch-proxy-R3JZNXBZ.js +0 -99
  415. package/dist/chunks/image-MWKS2YMB.js +0 -75
  416. package/dist/chunks/import-builders-H55X5VYD.js +0 -39
  417. package/dist/chunks/inspect-JTJMK6TO.js +0 -596
  418. package/dist/chunks/inspect-KBIPLMGR.js +0 -216
  419. package/dist/chunks/inspect-OP26FDBY.js +0 -171
  420. package/dist/chunks/inspect-SW4UMWTB.js +0 -175
  421. package/dist/chunks/inspect-WPLZPVBO.js +0 -145
  422. package/dist/chunks/list-HE7DWAWH.js +0 -387
  423. package/dist/chunks/list-OUG7WCT7.js +0 -404
  424. package/dist/chunks/list-QUSEURJZ.js +0 -426
  425. package/dist/chunks/login-MIIQJVF3.js +0 -233
  426. package/dist/chunks/ls-24N3DUK4.js +0 -183
  427. package/dist/chunks/ls-3Y7KEFKT.js +0 -175
  428. package/dist/chunks/ls-75F5HIJ5.js +0 -188
  429. package/dist/chunks/ls-REN6X2X5.js +0 -204
  430. package/dist/chunks/ls-W4STUDXK.js +0 -223
  431. package/dist/chunks/ls-Z4CTSD6C.js +0 -210
  432. package/dist/chunks/open-ARMCLPBK.js +0 -116
  433. package/dist/chunks/permissions-JKI67F62.js +0 -99
  434. package/dist/chunks/publish-SMSQ7OX2.js +0 -155
  435. package/dist/chunks/pull-4QZJZELD.js +0 -45
  436. package/dist/chunks/push-T6IYQY2J.js +0 -191
  437. package/dist/chunks/query-CP3JK5LW.js +0 -725
  438. package/dist/chunks/reorder-RAWKFGLV.js +0 -412
  439. package/dist/chunks/reply-235UHUD4.js +0 -176
  440. package/dist/chunks/resolve-5KCLN7QV.js +0 -237
  441. package/dist/chunks/resolve-deployment-framework-preset-NPE6RLV3.js +0 -36
  442. package/dist/chunks/restore-D24WAUAN.js +0 -252
  443. package/dist/chunks/rm-DBQDXSOC.js +0 -162
  444. package/dist/chunks/rm-G5INO77R.js +0 -148
  445. package/dist/chunks/rm-NLKSEKZ5.js +0 -195
  446. package/dist/chunks/rm-QV76CJA4.js +0 -322
  447. package/dist/chunks/rm-TZ4PDDUK.js +0 -147
  448. package/dist/chunks/routes-QVMBXOSX.js +0 -24
  449. package/dist/chunks/rule-inspect-76MC7I2D.js +0 -123
  450. package/dist/chunks/rules-IDUXVTPG.js +0 -89
  451. package/dist/chunks/schema-AV6BHGKY.js +0 -237
  452. package/dist/chunks/schema-QJVQTNB4.js +0 -381
  453. package/dist/chunks/set-L5NFQSCF.js +0 -250
  454. package/dist/chunks/setup-and-link-USSVDKCM.js +0 -65
  455. package/dist/chunks/stamp-AA7R3MZS.js +0 -16
  456. package/dist/chunks/tags-2NLUU4EC.js +0 -69
  457. package/dist/chunks/types-4GAJ7XQQ.js +0 -116
  458. package/dist/chunks/update-WGLBB65M.js +0 -224
  459. package/dist/chunks/vlt-builder-importer-USCFHWPL.js +0 -322
@@ -1,566 +0,0 @@
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 {
8
- output_manager_default
9
- } from "./chunk-2JIX6UMI.js";
10
-
11
- // src/util/agent/auto-install-agentic.ts
12
- import { readFile, writeFile } from "fs/promises";
13
- import { access } from "fs/promises";
14
- import { dirname, join, resolve } from "path";
15
- import { homedir } from "os";
16
- import { spawn } from "child_process";
17
- import { KNOWN_AGENTS } from "@vercel/detect-agent";
18
- import { z } from "zod";
19
- var PREFS_FILE = "agent-preferences.json";
20
- var CLAUDE_LEGACY_PLUGIN_ID = "vercel-plugin@vercel";
21
- var CLAUDE_OFFICIAL_PLUGIN_ID = "vercel@claude-plugins-official";
22
- var VERCEL_PLUGIN_VERSION_URL = "https://raw.githubusercontent.com/vercel/vercel-plugin/main/.claude-plugin/plugin.json";
23
- var AGENT_TO_TARGET = {
24
- [KNOWN_AGENTS.CLAUDE]: "claude-code",
25
- [KNOWN_AGENTS.COWORK]: "claude-code"
26
- };
27
- function getPluginTargetForAgent(agentName) {
28
- if (!agentName) {
29
- return void 0;
30
- }
31
- if (agentName === KNOWN_AGENTS.CLAUDE || agentName.startsWith("claude-code") || agentName === KNOWN_AGENTS.COWORK) {
32
- return "claude-code";
33
- }
34
- return AGENT_TO_TARGET[agentName];
35
- }
36
- var promptedAtSchema = z.codec(
37
- z.union([z.iso.date(), z.iso.datetime()]),
38
- z.date(),
39
- {
40
- decode: (value) => new Date(value),
41
- encode: (value) => value.toISOString()
42
- }
43
- );
44
- var agentPreferencesSchema = z.object({
45
- pluginDeclined: z.boolean().optional(),
46
- pluginAutoUpdate: z.boolean().optional(),
47
- lastPromptedAt: promptedAtSchema.optional(),
48
- lastPluginAutoUpdateAttemptedAt: promptedAtSchema.optional(),
49
- lastPluginAutoUpdateAttemptedKey: z.string().optional()
50
- });
51
- async function fileExists(filePath) {
52
- try {
53
- await access(filePath);
54
- return true;
55
- } catch {
56
- return false;
57
- }
58
- }
59
- async function readPrefs(client) {
60
- return await client.maybeReadConfig(PREFS_FILE, agentPreferencesSchema) ?? {};
61
- }
62
- async function writePrefs(client, prefs) {
63
- try {
64
- await client.writeConfig(PREFS_FILE, agentPreferencesSchema, prefs);
65
- } catch {
66
- }
67
- }
68
- function encodeClaudeProjectDir(projectPath) {
69
- return projectPath.replace(/[^A-Za-z0-9]/g, "-");
70
- }
71
- async function projectHasUsedClaudeCode(cwd) {
72
- const home = homedir();
73
- const projectsDir = join(home, ".claude", "projects");
74
- let dir = resolve(cwd);
75
- while (dir !== home) {
76
- if (await fileExists(join(projectsDir, encodeClaudeProjectDir(dir)))) {
77
- return true;
78
- }
79
- const parent = dirname(dir);
80
- if (parent === dir) {
81
- break;
82
- }
83
- dir = parent;
84
- }
85
- return false;
86
- }
87
- async function getPluginTargets(agentName, cwd) {
88
- const targetForAgent = getPluginTargetForAgent(agentName);
89
- if (targetForAgent) {
90
- return [targetForAgent];
91
- }
92
- if (agentName) {
93
- return [];
94
- }
95
- if (cwd && await projectHasUsedClaudeCode(cwd)) {
96
- return ["claude-code"];
97
- }
98
- return [];
99
- }
100
- async function readClaudeInstalledPluginsFromRegistry() {
101
- try {
102
- const raw = await readFile(
103
- getClaudeInstalledPluginsRegistryPath(),
104
- "utf-8"
105
- );
106
- const data = JSON.parse(raw);
107
- const plugins = data?.plugins ?? {};
108
- const entries = [];
109
- for (const [id, installs] of Object.entries(plugins)) {
110
- if (!Array.isArray(installs))
111
- continue;
112
- for (const install of installs) {
113
- if (!install || typeof install !== "object")
114
- continue;
115
- entries.push({
116
- id,
117
- ...install,
118
- enabled: true
119
- });
120
- }
121
- }
122
- return entries;
123
- } catch {
124
- return [];
125
- }
126
- }
127
- function getClaudeInstalledPluginsRegistryPath() {
128
- return join(homedir(), ".claude", "plugins", "installed_plugins.json");
129
- }
130
- async function markStaleClaudePluginInstalls(plugins) {
131
- return Promise.all(
132
- plugins.map(async (plugin) => {
133
- if (plugin.installPath && !await fileExists(plugin.installPath)) {
134
- return { ...plugin, stale: true };
135
- }
136
- return plugin;
137
- })
138
- );
139
- }
140
- async function removeClaudePluginFromRegistry(pluginId) {
141
- try {
142
- const registryPath = getClaudeInstalledPluginsRegistryPath();
143
- const raw = await readFile(registryPath, "utf-8");
144
- const data = JSON.parse(raw);
145
- if (!data.plugins || !(pluginId in data.plugins)) {
146
- return false;
147
- }
148
- delete data.plugins[pluginId];
149
- await writeFile(
150
- registryPath,
151
- `${JSON.stringify(data, null, 2)}
152
- `,
153
- "utf-8"
154
- );
155
- return true;
156
- } catch (err) {
157
- output_manager_default.debug(`Failed to remove Claude plugin registry entry: ${err}`);
158
- return false;
159
- }
160
- }
161
- async function isPluginInstalledForTarget(target) {
162
- if (target === "claude-code") {
163
- const status = await getClaudePluginStatus();
164
- return status.state === "official-only";
165
- }
166
- return false;
167
- }
168
- async function confirm(client, message) {
169
- if (client.nonInteractive || !client.stdin.isTTY) {
170
- return false;
171
- }
172
- return client.input.confirm(message, true);
173
- }
174
- function isSameDay(left, right) {
175
- return left.getFullYear() === right.getFullYear() && left.getMonth() === right.getMonth() && left.getDate() === right.getDate();
176
- }
177
- function wasPromptedToday(prefs) {
178
- return prefs.lastPromptedAt ? isSameDay(prefs.lastPromptedAt, /* @__PURE__ */ new Date()) : false;
179
- }
180
- function wasPluginAutoUpdateAttemptedToday(prefs, attemptKey) {
181
- return prefs.lastPluginAutoUpdateAttemptedKey === attemptKey && !!prefs.lastPluginAutoUpdateAttemptedAt && isSameDay(prefs.lastPluginAutoUpdateAttemptedAt, /* @__PURE__ */ new Date());
182
- }
183
- async function markPromptedToday(client, prefs) {
184
- prefs.lastPromptedAt = /* @__PURE__ */ new Date();
185
- await writePrefs(client, prefs);
186
- }
187
- function markPluginAutoUpdateAttempted(prefs, attemptKey) {
188
- if (!attemptKey)
189
- return;
190
- prefs.lastPluginAutoUpdateAttemptedAt = /* @__PURE__ */ new Date();
191
- prefs.lastPluginAutoUpdateAttemptedKey = attemptKey;
192
- }
193
- async function runCommand(command, args) {
194
- return await new Promise((resolve2) => {
195
- const child = spawn(command, args, { stdio: "pipe" });
196
- let stdout = "";
197
- let stderr = "";
198
- child.stdout.on("data", (chunk) => {
199
- stdout += chunk.toString();
200
- });
201
- child.stderr.on("data", (chunk) => {
202
- stderr += chunk.toString();
203
- });
204
- child.on("close", (code) => {
205
- resolve2({ exitCode: code ?? 1, stdout, stderr });
206
- });
207
- child.on("error", (err) => {
208
- resolve2({ exitCode: 1, stdout, stderr: `${stderr}${String(err)}` });
209
- });
210
- });
211
- }
212
- async function getClaudeInstalledPlugins() {
213
- const result = await runCommand("claude", ["plugins", "list", "--json"]);
214
- if (result.exitCode === 0) {
215
- try {
216
- const parsed = JSON.parse(result.stdout);
217
- if (Array.isArray(parsed)) {
218
- return markStaleClaudePluginInstalls(parsed);
219
- }
220
- } catch (err) {
221
- output_manager_default.debug(`Failed to parse Claude plugin list JSON: ${err}`);
222
- }
223
- } else if (result.stderr.trim().length > 0) {
224
- output_manager_default.debug(
225
- `Failed to run 'claude plugins list --json': ${result.stderr}`
226
- );
227
- }
228
- return markStaleClaudePluginInstalls(
229
- await readClaudeInstalledPluginsFromRegistry()
230
- );
231
- }
232
- async function fetchLatestVercelPluginVersion() {
233
- try {
234
- const response = await fetch(VERCEL_PLUGIN_VERSION_URL);
235
- if (!response.ok) {
236
- output_manager_default.debug(
237
- `Failed to fetch latest Vercel plugin version: ${response.status}`
238
- );
239
- return void 0;
240
- }
241
- const manifest = await response.json();
242
- return typeof manifest.version === "string" ? manifest.version : void 0;
243
- } catch (err) {
244
- output_manager_default.debug(`Failed to fetch latest Vercel plugin version: ${err}`);
245
- return void 0;
246
- }
247
- }
248
- function comparePluginVersions(a, b) {
249
- if (!a && !b)
250
- return 0;
251
- if (!a)
252
- return -1;
253
- if (!b)
254
- return 1;
255
- const parse = (value) => value.split(".").map((part) => Number.parseInt(part, 10) || 0);
256
- const left = parse(a);
257
- const right = parse(b);
258
- const maxLength = Math.max(left.length, right.length);
259
- for (let i = 0; i < maxLength; i++) {
260
- const l = left[i] ?? 0;
261
- const r = right[i] ?? 0;
262
- if (l > r)
263
- return 1;
264
- if (l < r)
265
- return -1;
266
- }
267
- return 0;
268
- }
269
- function buildClaudePluginStatus(installedPlugins, latestVersion) {
270
- const legacy = installedPlugins.find(
271
- (plugin) => plugin.id === CLAUDE_LEGACY_PLUGIN_ID
272
- );
273
- const official = installedPlugins.find(
274
- (plugin) => plugin.id === CLAUDE_OFFICIAL_PLUGIN_ID
275
- );
276
- let state = "none";
277
- if (legacy && official)
278
- state = "both";
279
- else if (legacy)
280
- state = "legacy-only";
281
- else if (official)
282
- state = "official-only";
283
- return {
284
- state,
285
- legacy,
286
- official,
287
- latestVersion
288
- };
289
- }
290
- function buildClaudePluginMigrationPlan(status) {
291
- const plan = {
292
- installOfficial: false,
293
- updateOfficial: false,
294
- removeLegacy: false,
295
- removeLegacyMarketplace: false
296
- };
297
- switch (status.state) {
298
- case "none":
299
- plan.installOfficial = true;
300
- break;
301
- case "legacy-only":
302
- plan.installOfficial = true;
303
- plan.removeLegacy = true;
304
- plan.removeLegacyMarketplace = true;
305
- break;
306
- case "both":
307
- plan.removeLegacy = true;
308
- plan.removeLegacyMarketplace = true;
309
- break;
310
- case "official-only":
311
- break;
312
- }
313
- if (status.official?.version && status.latestVersion && comparePluginVersions(status.official.version, status.latestVersion) < 0) {
314
- plan.updateOfficial = true;
315
- }
316
- return plan;
317
- }
318
- function hasClaudeMigrationActions(plan) {
319
- return plan.installOfficial || plan.updateOfficial || plan.removeLegacy || plan.removeLegacyMarketplace;
320
- }
321
- function getClaudeAutoUpdateAttemptKey(status, plan) {
322
- return [
323
- status.state,
324
- status.legacy?.version ?? "none",
325
- status.official?.version ?? "none",
326
- status.latestVersion ?? "unknown",
327
- plan.installOfficial ? "install" : "",
328
- plan.updateOfficial ? "update" : "",
329
- plan.removeLegacy ? "remove-legacy" : "",
330
- plan.removeLegacyMarketplace ? "remove-marketplace" : ""
331
- ].join(":");
332
- }
333
- function buildClaudePromptCopy(status, plan) {
334
- if (plan.installOfficial && status.state === "none") {
335
- return {
336
- message: "Vercel Plugin for Claude Code is not installed.",
337
- confirm: "Would you like to install it now?"
338
- };
339
- }
340
- if (plan.installOfficial && status.state === "legacy-only") {
341
- return {
342
- message: "Update available for Vercel Plugin for Claude Code (legacy -> official).",
343
- confirm: "Would you like to update now?"
344
- };
345
- }
346
- if (status.state === "both" && plan.removeLegacy) {
347
- return {
348
- message: "Vercel Plugin for Claude Code has a legacy install to clean up.",
349
- confirm: "Would you like to update now?"
350
- };
351
- }
352
- if (plan.updateOfficial) {
353
- const fromVersion = status.official?.version;
354
- const toVersion = status.latestVersion;
355
- const versionRange = fromVersion && toVersion ? ` (v${fromVersion} -> v${toVersion})` : "";
356
- return {
357
- message: `Update available for Vercel Plugin for Claude Code${versionRange}.`,
358
- confirm: "Would you like to update now?"
359
- };
360
- }
361
- return {
362
- message: "The Vercel plugin needs attention in Claude Code before your agent harness is fully up to date.",
363
- confirm: "Apply the Vercel plugin changes for Claude Code?"
364
- };
365
- }
366
- async function runClaudeCommand(spinnerMessage, successMessage, failureMessage, args, options) {
367
- output_manager_default.spinner(spinnerMessage);
368
- const result = await runCommand("claude", args);
369
- output_manager_default.stopSpinner();
370
- if (result.exitCode === 0) {
371
- if (!options?.quietSuccess) {
372
- output_manager_default.success(successMessage);
373
- }
374
- return true;
375
- }
376
- output_manager_default.warn(failureMessage);
377
- output_manager_default.debug(
378
- `Claude command failed: claude ${args.join(" ")}
379
- ${result.stderr || result.stdout}`
380
- );
381
- return false;
382
- }
383
- async function removeStaleLegacyClaudePlugin(removeMarketplace) {
384
- output_manager_default.spinner("Removing the stale legacy Vercel Claude plugin...");
385
- const removedRegistryEntry = await removeClaudePluginFromRegistry(
386
- CLAUDE_LEGACY_PLUGIN_ID
387
- );
388
- output_manager_default.stopSpinner();
389
- if (!removedRegistryEntry) {
390
- output_manager_default.warn(
391
- "Could not remove the stale legacy Vercel Claude plugin registry entry."
392
- );
393
- return false;
394
- }
395
- output_manager_default.success("Removed the stale legacy Vercel Claude plugin");
396
- if (removeMarketplace) {
397
- const removedMarketplace = await runClaudeCommand(
398
- "Removing the legacy Vercel marketplace...",
399
- "Removed the legacy Vercel marketplace",
400
- "Removed the stale legacy Vercel plugin, but could not remove the legacy marketplace.",
401
- ["plugins", "marketplace", "remove", "vercel"],
402
- { quietSuccess: true }
403
- );
404
- if (!removedMarketplace) {
405
- output_manager_default.log("Cleanup command: claude plugins marketplace remove vercel");
406
- }
407
- }
408
- return true;
409
- }
410
- async function runClaudeMigration(plan) {
411
- let removedStaleLegacy = false;
412
- if (plan.removeLegacy) {
413
- const statusBeforeInstall = await getClaudePluginStatus();
414
- if (statusBeforeInstall.legacy?.stale) {
415
- removedStaleLegacy = await removeStaleLegacyClaudePlugin(
416
- plan.removeLegacyMarketplace
417
- );
418
- }
419
- }
420
- if (plan.installOfficial) {
421
- const installed = await runClaudeCommand(
422
- "Installing the official Vercel Claude plugin...",
423
- "Updated the Vercel plugin",
424
- "Failed to install the official Vercel Claude plugin.",
425
- ["plugins", "install", CLAUDE_OFFICIAL_PLUGIN_ID]
426
- );
427
- if (!installed) {
428
- return;
429
- }
430
- } else if (plan.updateOfficial) {
431
- await runClaudeCommand(
432
- "Updating the official Vercel Claude plugin...",
433
- "Updated the Vercel plugin",
434
- "Failed to update the official Vercel Claude plugin.",
435
- ["plugins", "update", CLAUDE_OFFICIAL_PLUGIN_ID]
436
- );
437
- }
438
- const statusAfterInstall = await getClaudePluginStatus();
439
- if (!statusAfterInstall.official) {
440
- output_manager_default.warn(
441
- "Skipping Claude cleanup because the official Vercel plugin is not installed."
442
- );
443
- return;
444
- }
445
- if (plan.removeLegacy && statusAfterInstall.legacy) {
446
- const removedLegacy = await runClaudeCommand(
447
- "Removing the legacy Vercel Claude plugin...",
448
- "Removed the legacy Vercel Claude plugin",
449
- "Installed the official Vercel Claude plugin, but could not remove the legacy install.",
450
- ["plugins", "uninstall", CLAUDE_LEGACY_PLUGIN_ID],
451
- { quietSuccess: true }
452
- );
453
- if (!removedLegacy) {
454
- output_manager_default.log(
455
- `Cleanup command: claude plugins uninstall ${CLAUDE_LEGACY_PLUGIN_ID}`
456
- );
457
- return;
458
- }
459
- }
460
- if (plan.removeLegacyMarketplace && !removedStaleLegacy) {
461
- const finalStatus = await getClaudePluginStatus();
462
- if (!finalStatus.legacy) {
463
- const removedMarketplace = await runClaudeCommand(
464
- "Removing the legacy Vercel marketplace...",
465
- "Removed the legacy Vercel marketplace",
466
- "Removed the legacy Vercel plugin, but could not remove the legacy marketplace.",
467
- ["plugins", "marketplace", "remove", "vercel"],
468
- { quietSuccess: true }
469
- );
470
- if (!removedMarketplace) {
471
- output_manager_default.log("Cleanup command: claude plugins marketplace remove vercel");
472
- }
473
- }
474
- }
475
- }
476
- async function getClaudePluginStatus() {
477
- const [installedPlugins, latestVersion] = await Promise.all([
478
- getClaudeInstalledPlugins(),
479
- fetchLatestVercelPluginVersion()
480
- ]);
481
- return buildClaudePluginStatus(installedPlugins, latestVersion);
482
- }
483
- async function applyPluginActions(targets, claudePlan) {
484
- for (const target of targets) {
485
- if (target === "claude-code" && claudePlan) {
486
- await runClaudeMigration(claudePlan);
487
- } else {
488
- output_manager_default.debug(`Skipping unsupported plugin target: ${target}`);
489
- }
490
- }
491
- }
492
- async function autoInstallVercelPlugin(client, options) {
493
- try {
494
- const prefs = await readPrefs(client);
495
- const applyMode = options?.mode === "apply";
496
- if (!prefs.pluginDeclined || prefs.pluginAutoUpdate || applyMode) {
497
- const targets = await getPluginTargets(client.agentName, client.cwd);
498
- const uninstalledTargets = [];
499
- const claudeStatus = targets.includes("claude-code") ? await getClaudePluginStatus() : void 0;
500
- const claudePlan = claudeStatus ? buildClaudePluginMigrationPlan(claudeStatus) : void 0;
501
- const claudeAutoUpdateAttemptKey = claudeStatus && claudePlan ? getClaudeAutoUpdateAttemptKey(claudeStatus, claudePlan) : void 0;
502
- for (const target of targets) {
503
- if (target === "claude-code") {
504
- if (claudePlan && hasClaudeMigrationActions(claudePlan)) {
505
- uninstalledTargets.push(target);
506
- }
507
- continue;
508
- }
509
- if (!await isPluginInstalledForTarget(target)) {
510
- uninstalledTargets.push(target);
511
- }
512
- }
513
- if (uninstalledTargets.length > 0) {
514
- if (prefs.pluginAutoUpdate) {
515
- if (claudeAutoUpdateAttemptKey && wasPluginAutoUpdateAttemptedToday(prefs, claudeAutoUpdateAttemptKey)) {
516
- return;
517
- }
518
- prefs.pluginDeclined = false;
519
- markPluginAutoUpdateAttempted(prefs, claudeAutoUpdateAttemptKey);
520
- await writePrefs(client, prefs);
521
- await applyPluginActions(uninstalledTargets, claudePlan);
522
- return;
523
- }
524
- if (!applyMode && wasPromptedToday(prefs)) {
525
- return;
526
- }
527
- if (applyMode) {
528
- prefs.pluginDeclined = false;
529
- prefs.pluginAutoUpdate = true;
530
- await writePrefs(client, prefs);
531
- await applyPluginActions(uninstalledTargets, claudePlan);
532
- return;
533
- }
534
- const promptMessages = [];
535
- let confirmMessage = "Install the Vercel plugin?";
536
- if (uninstalledTargets.includes("claude-code") && claudeStatus && claudePlan) {
537
- const claudePrompt = buildClaudePromptCopy(claudeStatus, claudePlan);
538
- promptMessages.push(claudePrompt.message);
539
- confirmMessage = claudePrompt.confirm;
540
- }
541
- const promptMessage = promptMessages.join(" ").trim();
542
- if (promptMessage) {
543
- output_manager_default.log(promptMessage);
544
- }
545
- const accepted = await confirm(client, confirmMessage);
546
- await markPromptedToday(client, prefs);
547
- if (accepted) {
548
- prefs.pluginDeclined = false;
549
- prefs.pluginAutoUpdate = true;
550
- await writePrefs(client, prefs);
551
- await applyPluginActions(uninstalledTargets, claudePlan);
552
- } else {
553
- prefs.pluginDeclined = true;
554
- prefs.pluginAutoUpdate = false;
555
- await writePrefs(client, prefs);
556
- }
557
- }
558
- }
559
- } catch (err) {
560
- output_manager_default.debug(`Auto-install agent tooling failed: ${err}`);
561
- }
562
- }
563
-
564
- export {
565
- autoInstallVercelPlugin
566
- };
@@ -1,151 +0,0 @@
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 {
8
- require_ms
9
- } from "./chunk-GGP5R3FU.js";
10
- import {
11
- output_manager_default
12
- } from "./chunk-2JIX6UMI.js";
13
- import {
14
- __toESM
15
- } from "./chunk-TZ2YI2VH.js";
16
-
17
- // src/util/time-utils.ts
18
- var import_ms = __toESM(require_ms(), 1);
19
- function parseTimeFlag(input) {
20
- const milliseconds = (0, import_ms.default)(input);
21
- if (milliseconds !== void 0) {
22
- return new Date(Date.now() - milliseconds);
23
- }
24
- const date = new Date(input);
25
- if (isNaN(date.getTime())) {
26
- throw new Error(
27
- `Invalid time format "${input}". Use relative (1h, 30m, 2d, 1w) or ISO 8601 datetime.`
28
- );
29
- }
30
- return date;
31
- }
32
- function resolveTimeRange(since = "1h", until) {
33
- const startTime = parseTimeFlag(since);
34
- const endTime = until ? parseTimeFlag(until) : /* @__PURE__ */ new Date();
35
- return { startTime, endTime };
36
- }
37
-
38
- // src/util/command-validation.ts
39
- function validateAllProjectMutualExclusivity(all, project) {
40
- if (all && project) {
41
- return {
42
- valid: false,
43
- code: "MUTUAL_EXCLUSIVITY",
44
- message: "Cannot specify both --all and --project. Use one or the other."
45
- };
46
- }
47
- return { valid: true };
48
- }
49
- function validateTimeBound(input) {
50
- if (!input) {
51
- return { valid: true, value: void 0 };
52
- }
53
- try {
54
- return { valid: true, value: parseTimeFlag(input) };
55
- } catch (err) {
56
- return {
57
- valid: false,
58
- code: "INVALID_TIME",
59
- message: err.message
60
- };
61
- }
62
- }
63
- function validateTimeOrder(since, until) {
64
- if (since && until && since.getTime() > until.getTime()) {
65
- return {
66
- valid: false,
67
- code: "INVALID_TIME_RANGE",
68
- message: "`--since` must be earlier than `--until`."
69
- };
70
- }
71
- return { valid: true };
72
- }
73
- function normalizeRepeatableStringFilters(filters) {
74
- if (!filters || filters.length === 0) {
75
- return [];
76
- }
77
- const normalized = filters.flatMap((filter) => filter.split(",")).map((filter) => filter.trim()).filter(Boolean);
78
- return [...new Set(normalized)];
79
- }
80
- function validateIntegerRangeWithDefault(value, opts) {
81
- if (value === void 0) {
82
- return { valid: true, value: opts.defaultValue };
83
- }
84
- if (Number.isNaN(value)) {
85
- return {
86
- valid: false,
87
- code: "INVALID_LIMIT",
88
- message: `Please provide a number for flag \`${opts.flag}\`.`
89
- };
90
- }
91
- if (!Number.isInteger(value) || value < opts.min || value > opts.max) {
92
- return {
93
- valid: false,
94
- code: "INVALID_LIMIT",
95
- message: `\`${opts.flag}\` must be an integer between ${opts.min} and ${opts.max}.`
96
- };
97
- }
98
- return { valid: true, value };
99
- }
100
- function validateOptionalIntegerRange(value, opts) {
101
- if (value === void 0) {
102
- return { valid: true, value: void 0 };
103
- }
104
- if (Number.isNaN(value)) {
105
- return {
106
- valid: false,
107
- code: opts.code || "INVALID_LIMIT",
108
- message: `Please provide a number for flag \`${opts.flag}\`.`
109
- };
110
- }
111
- if (!Number.isInteger(value) || value < opts.min || value > opts.max) {
112
- return {
113
- valid: false,
114
- code: opts.code || "INVALID_LIMIT",
115
- message: `\`${opts.flag}\` must be an integer between ${opts.min} and ${opts.max}.`
116
- };
117
- }
118
- return { valid: true, value };
119
- }
120
- function formatJsonError(code, message) {
121
- return `${JSON.stringify({ error: { code, message } }, null, 2)}
122
- `;
123
- }
124
- function writeJsonError(client, code, message) {
125
- client.stdout.write(formatJsonError(code, message));
126
- }
127
- function outputError(client, jsonOutput, code, message) {
128
- if (jsonOutput) {
129
- writeJsonError(client, code, message);
130
- } else {
131
- output_manager_default.error(message);
132
- }
133
- return 1;
134
- }
135
- function handleValidationError(result, jsonOutput, client) {
136
- return outputError(client, jsonOutput, result.code, result.message);
137
- }
138
-
139
- export {
140
- parseTimeFlag,
141
- resolveTimeRange,
142
- validateAllProjectMutualExclusivity,
143
- validateTimeBound,
144
- validateTimeOrder,
145
- normalizeRepeatableStringFilters,
146
- validateIntegerRangeWithDefault,
147
- validateOptionalIntegerRange,
148
- writeJsonError,
149
- outputError,
150
- handleValidationError
151
- };