@unbrained/pm-cli 2026.6.21 → 2026.6.22

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 (406) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cli/commands/completion.js +5 -3
  3. package/dist/cli/commands/completion.js.map +1 -1
  4. package/dist/cli/commands/extension/doctor.d.ts +11 -0
  5. package/dist/cli/commands/extension/doctor.js +31 -2
  6. package/dist/cli/commands/extension/doctor.js.map +1 -1
  7. package/dist/cli/commands/extension/scaffold.d.ts +16 -2
  8. package/dist/cli/commands/extension/scaffold.js +481 -48
  9. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  10. package/dist/cli/commands/extension.d.ts +1 -0
  11. package/dist/cli/commands/extension.js +9 -4
  12. package/dist/cli/commands/extension.js.map +1 -1
  13. package/dist/cli/help-content.js +16 -4
  14. package/dist/cli/help-content.js.map +1 -1
  15. package/dist/cli/register-setup.js +6 -2
  16. package/dist/cli/register-setup.js.map +1 -1
  17. package/dist/cli-bundle/chunks/{activity-KW3IRP44.js → activity-DXS2XMQU.js} +11 -11
  18. package/dist/cli-bundle/chunks/activity-NEOI45NX.js +18 -0
  19. package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js → aggregate-IHM4KMQ3.js} +10 -10
  20. package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js → aggregate-NMYDVQF7.js} +10 -10
  21. package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js → append-3HY5G7ET.js} +8 -8
  22. package/dist/cli-bundle/chunks/{append-QEOLX3XB.js → append-K54MDQYC.js} +8 -8
  23. package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js → chunk-25XZN3JD.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js → chunk-2LEYMXI6.js} +4 -4
  25. package/dist/cli-bundle/chunks/chunk-3GL6LTUL.js +643 -0
  26. package/dist/cli-bundle/chunks/chunk-3GL6LTUL.js.map +1 -0
  27. package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js → chunk-3VLPDG3J.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js → chunk-44O4JIN6.js} +13 -13
  29. package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js → chunk-47HTJ6BU.js} +5 -5
  30. package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js → chunk-4JXWVHMN.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js → chunk-4SDKF5BG.js} +3 -3
  32. package/dist/cli-bundle/chunks/chunk-4YJA4LGU.js +646 -0
  33. package/dist/cli-bundle/chunks/chunk-4YJA4LGU.js.map +7 -0
  34. package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js → chunk-5SESR24H.js} +8 -8
  35. package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js → chunk-6FQHNHQQ.js} +3 -3
  36. package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js → chunk-6UPTNMVW.js} +5 -5
  37. package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js → chunk-75VEYQJS.js} +3 -3
  38. package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js → chunk-77VKGH4L.js} +10 -10
  39. package/dist/cli-bundle/chunks/{chunk-5PCI3UBT.js → chunk-7GCCDXXN.js} +55 -266
  40. package/dist/cli-bundle/chunks/chunk-7GCCDXXN.js.map +7 -0
  41. package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js → chunk-7MALIV5H.js} +9 -9
  42. package/dist/cli-bundle/chunks/{chunk-A4Z7ZOL5.js → chunk-7MPTFYT3.js} +20 -15
  43. package/dist/cli-bundle/chunks/chunk-7MPTFYT3.js.map +1 -0
  44. package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js → chunk-7PBGTIN3.js} +5 -5
  45. package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js → chunk-A25LOPRG.js} +2 -2
  46. package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js → chunk-A7E4ZXG2.js} +2 -2
  47. package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js → chunk-AJXYOYJV.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js → chunk-B2KR24R4.js} +9 -9
  49. package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js → chunk-C5SWTISA.js} +12 -12
  50. package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js → chunk-CLLVBO3I.js} +2 -2
  51. package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js → chunk-CR7KFPAQ.js} +3 -3
  52. package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js → chunk-CWPBGUC7.js} +2 -2
  53. package/dist/cli-bundle/chunks/{chunk-32R4PIC6.js → chunk-D35LTIFR.js} +55 -259
  54. package/dist/cli-bundle/chunks/chunk-D35LTIFR.js.map +1 -0
  55. package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js → chunk-DBQUQ3AS.js} +3 -3
  56. package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js → chunk-DHBPJ7VG.js} +2 -2
  57. package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js → chunk-DMT4ODVN.js} +2 -2
  58. package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js → chunk-DU64SZUQ.js} +2 -2
  59. package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js → chunk-EVPVCE4R.js} +3 -3
  60. package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js → chunk-FK6MV5F5.js} +12 -12
  61. package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js → chunk-GGAXE22C.js} +6 -6
  62. package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js → chunk-GNDHOR64.js} +6 -6
  63. package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js → chunk-GU7YHKYP.js} +2 -2
  64. package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js → chunk-GXBSFKSX.js} +4 -4
  65. package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js → chunk-H6FNDCDI.js} +5 -5
  66. package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js → chunk-HYQV75IB.js} +7 -7
  67. package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js → chunk-I367IDZP.js} +7 -7
  68. package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js → chunk-I6XE47J2.js} +5 -5
  69. package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js → chunk-J2TSPY5L.js} +4 -4
  70. package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js → chunk-JLSC5NPC.js} +10 -10
  71. package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js → chunk-JY25IOEZ.js} +5 -5
  72. package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js → chunk-K25UDYJ4.js} +2 -2
  73. package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js → chunk-KBTREGVO.js} +3 -3
  74. package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js → chunk-KK4TQ3ZP.js} +2 -2
  75. package/dist/cli-bundle/chunks/{chunk-434HM6Z5.js → chunk-KL5ELX2X.js} +81 -3
  76. package/dist/cli-bundle/chunks/chunk-KL5ELX2X.js.map +1 -0
  77. package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js → chunk-KRJJPDUO.js} +2 -2
  78. package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js → chunk-MD7XKVWI.js} +7 -7
  79. package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js → chunk-MNGAQB2E.js} +8 -8
  80. package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js → chunk-NIWY4V4Z.js} +3 -3
  81. package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js → chunk-NKZOJPXK.js} +3 -3
  82. package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js → chunk-NVUATMTC.js} +3 -3
  83. package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js → chunk-P7ZU73BO.js} +3 -3
  84. package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js → chunk-PCH2JTEO.js} +2 -2
  85. package/dist/cli-bundle/chunks/{chunk-B473GZWW.js → chunk-PJS2J7Z4.js} +3 -3
  86. package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js → chunk-QQWEROGS.js} +7 -7
  87. package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js → chunk-RPRFBXND.js} +3 -3
  88. package/dist/cli-bundle/chunks/{chunk-HMOADQVT.js → chunk-RZZMSY4P.js} +88 -3
  89. package/dist/cli-bundle/chunks/chunk-RZZMSY4P.js.map +7 -0
  90. package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js → chunk-SFKQAVZA.js} +8 -8
  91. package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js → chunk-THKDPOS5.js} +8 -8
  92. package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js → chunk-TIKJAXQW.js} +3 -3
  93. package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js → chunk-TJABI6PR.js} +5 -5
  94. package/dist/cli-bundle/chunks/{chunk-HC4AWIKT.js → chunk-TRUFOER3.js} +19 -14
  95. package/dist/cli-bundle/chunks/{chunk-HC4AWIKT.js.map → chunk-TRUFOER3.js.map} +2 -2
  96. package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js → chunk-TZQKEBKF.js} +2 -2
  97. package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js → chunk-UKK2VTTH.js} +9 -9
  98. package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js → chunk-V4SM4UAL.js} +13 -13
  99. package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js → chunk-VB54F347.js} +2 -2
  100. package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js → chunk-WBSYW3NT.js} +2 -2
  101. package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js → chunk-WQDX7DVG.js} +7 -7
  102. package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js → chunk-XKNF3VRJ.js} +5 -5
  103. package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js → chunk-Y335KFHD.js} +9 -9
  104. package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js → chunk-Y4BZEND6.js} +2 -2
  105. package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js → chunk-YATDFWYK.js} +7 -7
  106. package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js → chunk-YJICYNAV.js} +8 -8
  107. package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js → chunk-YQSWTVZF.js} +4 -4
  108. package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js → chunk-YRLLL5TY.js} +8 -8
  109. package/dist/cli-bundle/chunks/{claim-RC56YUWG.js → claim-MPXNVBZQ.js} +10 -10
  110. package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js → claim-SKHJDLW6.js} +10 -10
  111. package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js → close-4RKSL5L6.js} +8 -8
  112. package/dist/cli-bundle/chunks/close-Z6AI736U.js +15 -0
  113. package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js → close-many-AWTPXLHJ.js} +15 -15
  114. package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js → close-many-SXODYBDP.js} +15 -15
  115. package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js → comments-OOH64LWW.js} +10 -10
  116. package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js → comments-YYW5P7AG.js} +10 -10
  117. package/dist/cli-bundle/chunks/{config-OZCUABPB.js → config-3445MCQQ.js} +8 -8
  118. package/dist/cli-bundle/chunks/{config-7CK62S7T.js → config-LCDMKRB2.js} +8 -8
  119. package/dist/cli-bundle/chunks/{context-PUG2A7RC.js → context-DZMIBIVP.js} +13 -13
  120. package/dist/cli-bundle/chunks/{context-OEC366TO.js → context-PJCURODY.js} +13 -13
  121. package/dist/cli-bundle/chunks/{contracts-3THOLA7L.js → contracts-7YDFEJB3.js} +4 -4
  122. package/dist/cli-bundle/chunks/{contracts-N65FXEOL.js → contracts-MP2P3HL5.js} +4 -4
  123. package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js → copy-63IQQRRS.js} +7 -7
  124. package/dist/cli-bundle/chunks/{copy-6QLHILAC.js → copy-TASIH2AZ.js} +7 -7
  125. package/dist/cli-bundle/chunks/create-3BV2VA3Q.js +30 -0
  126. package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js → create-TGSB5GV4.js} +14 -14
  127. package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js → delete-ARILQQLB.js} +7 -7
  128. package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js → delete-ZQKBZYNK.js} +7 -7
  129. package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js → deps-MSHQR2GY.js} +7 -7
  130. package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js → deps-NJFJIMQ5.js} +7 -7
  131. package/dist/cli-bundle/chunks/{docs-C75YIXHC.js → docs-SS4UKYYA.js} +9 -9
  132. package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js → docs-XK2UVUXX.js} +9 -9
  133. package/dist/cli-bundle/chunks/{eval-GTENKE24.js → eval-FVZGX5IZ.js} +12 -12
  134. package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js → eval-JOTG2YHU.js} +12 -12
  135. package/dist/cli-bundle/chunks/{extension-46NWACO3.js → extension-NLMS47I4.js} +6 -5
  136. package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js → extension-OQPS27B4.js} +6 -5
  137. package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js → files-3EVJQZ2N.js} +9 -9
  138. package/dist/cli-bundle/chunks/{files-DSZBOSSN.js → files-Y2P6LN5A.js} +9 -9
  139. package/dist/cli-bundle/chunks/{focus-5STQXDPU.js → focus-D5ZUPTII.js} +8 -8
  140. package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js → focus-ZPIFTY4R.js} +8 -8
  141. package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js → gc-LXXDY456.js} +3 -3
  142. package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js → gc-RNOEQHSX.js} +3 -3
  143. package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js → get-Q3SZGQHD.js} +11 -11
  144. package/dist/cli-bundle/chunks/{get-J2IPJRZW.js → get-W23G7MJX.js} +11 -11
  145. package/dist/cli-bundle/chunks/{health-WOYBR3KU.js → health-5LHSX365.js} +14 -13
  146. package/dist/cli-bundle/chunks/{health-WOYBR3KU.js.map → health-5LHSX365.js.map} +1 -1
  147. package/dist/cli-bundle/chunks/{health-IVMA3XQC.js → health-UDDGJLPP.js} +16 -15
  148. package/dist/cli-bundle/chunks/{health-IVMA3XQC.js.map → health-UDDGJLPP.js.map} +1 -1
  149. package/dist/cli-bundle/chunks/{history-RLH2QCRO.js → history-6CZVFIUJ.js} +10 -10
  150. package/dist/cli-bundle/chunks/history-YRQUD4YM.js +20 -0
  151. package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js → history-compact-M35PDQ4G.js} +12 -12
  152. package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js → history-compact-VWUSQH6Z.js} +12 -12
  153. package/dist/cli-bundle/chunks/history-redact-27OEOZRZ.js +21 -0
  154. package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js → history-redact-AJGARHT3.js} +11 -11
  155. package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js → history-repair-5RDMF7K4.js} +12 -12
  156. package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js → history-repair-YUAHIPIN.js} +12 -12
  157. package/dist/cli-bundle/chunks/init-DWAKYRXI.js +21 -0
  158. package/dist/cli-bundle/chunks/{init-2BNZOO6F.js → init-HASX3YNJ.js} +11 -10
  159. package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js → learnings-JNGUIJDK.js} +10 -10
  160. package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js → learnings-M4KA6MQE.js} +10 -10
  161. package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js → list-5UU2W24O.js} +10 -10
  162. package/dist/cli-bundle/chunks/{list-K6FPV4J4.js → list-6FMKTIH3.js} +10 -10
  163. package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js → notes-MODH5CBT.js} +10 -10
  164. package/dist/cli-bundle/chunks/{notes-PU74EPKV.js → notes-PYCPLA5Y.js} +10 -10
  165. package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js → plan-DXRIRYRU.js} +14 -14
  166. package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js → plan-EHQALWSC.js} +14 -14
  167. package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js → register-list-query-QAASVP2J.js} +19 -19
  168. package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js → register-list-query-WE54YJMH.js} +19 -19
  169. package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js → register-mutation-B6DZJTY2.js} +33 -33
  170. package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js → register-mutation-CPV4C2KR.js} +33 -33
  171. package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js → register-operations-AT3BVVX2.js} +32 -32
  172. package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js → register-operations-RC4C3423.js} +32 -32
  173. package/dist/cli-bundle/chunks/{register-setup-EG2U6CEU.js → register-setup-HXEHMDHE.js} +23 -18
  174. package/dist/cli-bundle/chunks/register-setup-HXEHMDHE.js.map +7 -0
  175. package/dist/cli-bundle/chunks/{register-setup-DYBFLEZX.js → register-setup-JSMJEFCJ.js} +24 -19
  176. package/dist/cli-bundle/chunks/register-setup-JSMJEFCJ.js.map +1 -0
  177. package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js → restore-FNBV4GWE.js} +11 -11
  178. package/dist/cli-bundle/chunks/restore-XY4YE2OV.js +19 -0
  179. package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js → scheduling-shortcuts-ECL6GBMZ.js} +14 -14
  180. package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js → scheduling-shortcuts-JRIUREEU.js} +14 -14
  181. package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js → schema-74YENAJL.js} +9 -9
  182. package/dist/cli-bundle/chunks/{schema-263RI4WW.js → schema-TCW3I7QR.js} +9 -9
  183. package/dist/cli-bundle/chunks/{search-SFRJOVDG.js → search-7USZ6XZA.js} +12 -12
  184. package/dist/cli-bundle/chunks/{search-LECJYSXE.js → search-GNAUE65M.js} +12 -12
  185. package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js → stats-CVHASAEU.js} +8 -8
  186. package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js → stats-DQMKJMFT.js} +8 -8
  187. package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js → telemetry-7P5EUWCS.js} +4 -4
  188. package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js → telemetry-PQTL5YS2.js} +4 -4
  189. package/dist/cli-bundle/chunks/test-COWPCGBE.js +36 -0
  190. package/dist/cli-bundle/chunks/{test-3EGNS3T5.js → test-FDQZQNZ4.js} +16 -15
  191. package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js → test-all-PIPPS4S5.js} +18 -17
  192. package/dist/cli-bundle/chunks/{test-all-ZHFAWNC3.js.map → test-all-PIPPS4S5.js.map} +1 -1
  193. package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js → test-all-WQIAZVA6.js} +16 -15
  194. package/dist/cli-bundle/chunks/{test-all-NJ5V2QFS.js.map → test-all-WQIAZVA6.js.map} +1 -1
  195. package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js → test-runs-JS6DNCCI.js} +5 -5
  196. package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js → test-runs-NZD2QGL5.js} +5 -5
  197. package/dist/cli-bundle/chunks/update-7IYQHX4Q.js +24 -0
  198. package/dist/cli-bundle/chunks/update-IJKDRBIX.js +28 -0
  199. package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js → update-many-6NTZ5J5D.js} +23 -23
  200. package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js → update-many-B3TH5TDS.js} +23 -23
  201. package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js → upgrade-4C7VE7MS.js} +8 -7
  202. package/dist/cli-bundle/chunks/{upgrade-VPCIYAVW.js.map → upgrade-4C7VE7MS.js.map} +1 -1
  203. package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js → upgrade-76IKZ6EZ.js} +6 -5
  204. package/dist/cli-bundle/chunks/{upgrade-TJXFLZIX.js.map → upgrade-76IKZ6EZ.js.map} +1 -1
  205. package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js → validate-AQU7OCL3.js} +21 -20
  206. package/dist/cli-bundle/chunks/{validate-PHKIYGSY.js.map → validate-AQU7OCL3.js.map} +1 -1
  207. package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js → validate-BPM6Z3OT.js} +23 -22
  208. package/dist/cli-bundle/chunks/{validate-JMNWEUYF.js.map → validate-BPM6Z3OT.js.map} +1 -1
  209. package/dist/cli-bundle/main.js +34 -22
  210. package/dist/cli-bundle/main.js.map +2 -2
  211. package/dist/cli.js +3 -3
  212. package/dist/cli.js.map +1 -1
  213. package/dist/core/extensions/capability-usage.d.ts +82 -0
  214. package/dist/core/extensions/capability-usage.js +133 -0
  215. package/dist/core/extensions/capability-usage.js.map +1 -0
  216. package/dist/core/extensions/extension-capability-aliases.d.ts +7 -0
  217. package/dist/core/extensions/extension-capability-aliases.js +12 -2
  218. package/dist/core/extensions/extension-capability-aliases.js.map +1 -1
  219. package/dist/core/extensions/index.d.ts +1 -0
  220. package/dist/core/extensions/index.js +3 -2
  221. package/dist/core/extensions/index.js.map +1 -1
  222. package/dist/sdk/cli-contracts.d.ts +1 -0
  223. package/dist/sdk/cli-contracts.js +18 -13
  224. package/dist/sdk/cli-contracts.js.map +1 -1
  225. package/dist/sdk/index.d.ts +7 -2
  226. package/dist/sdk/index.js +8 -3
  227. package/dist/sdk/index.js.map +1 -1
  228. package/dist/sdk/testing.d.ts +520 -1
  229. package/dist/sdk/testing.js +477 -18
  230. package/dist/sdk/testing.js.map +1 -1
  231. package/docs/EXTENSIONS.md +4 -8
  232. package/docs/SDK.md +257 -0
  233. package/package.json +2 -2
  234. package/dist/cli-bundle/chunks/activity-CIHV64UC.js +0 -18
  235. package/dist/cli-bundle/chunks/chunk-32R4PIC6.js.map +0 -1
  236. package/dist/cli-bundle/chunks/chunk-434HM6Z5.js.map +0 -1
  237. package/dist/cli-bundle/chunks/chunk-5PCI3UBT.js.map +0 -7
  238. package/dist/cli-bundle/chunks/chunk-A4Z7ZOL5.js.map +0 -1
  239. package/dist/cli-bundle/chunks/chunk-HMOADQVT.js.map +0 -7
  240. package/dist/cli-bundle/chunks/close-DNMHGOCX.js +0 -15
  241. package/dist/cli-bundle/chunks/create-NNP6TSFO.js +0 -30
  242. package/dist/cli-bundle/chunks/history-WX3MGFS2.js +0 -20
  243. package/dist/cli-bundle/chunks/history-redact-YQGU3XRA.js +0 -21
  244. package/dist/cli-bundle/chunks/init-SC2P6CHP.js +0 -20
  245. package/dist/cli-bundle/chunks/register-setup-DYBFLEZX.js.map +0 -1
  246. package/dist/cli-bundle/chunks/register-setup-EG2U6CEU.js.map +0 -7
  247. package/dist/cli-bundle/chunks/restore-5KHR2YYQ.js +0 -19
  248. package/dist/cli-bundle/chunks/test-RQCTSWUK.js +0 -35
  249. package/dist/cli-bundle/chunks/update-6YXOGHRT.js +0 -24
  250. package/dist/cli-bundle/chunks/update-V33YUBRP.js +0 -28
  251. /package/dist/cli-bundle/chunks/{activity-KW3IRP44.js.map → activity-DXS2XMQU.js.map} +0 -0
  252. /package/dist/cli-bundle/chunks/{activity-CIHV64UC.js.map → activity-NEOI45NX.js.map} +0 -0
  253. /package/dist/cli-bundle/chunks/{aggregate-FIGQEIL3.js.map → aggregate-IHM4KMQ3.js.map} +0 -0
  254. /package/dist/cli-bundle/chunks/{aggregate-3ZKQG5SW.js.map → aggregate-NMYDVQF7.js.map} +0 -0
  255. /package/dist/cli-bundle/chunks/{append-EWJYJ7CH.js.map → append-3HY5G7ET.js.map} +0 -0
  256. /package/dist/cli-bundle/chunks/{append-QEOLX3XB.js.map → append-K54MDQYC.js.map} +0 -0
  257. /package/dist/cli-bundle/chunks/{chunk-CF55WVVS.js.map → chunk-25XZN3JD.js.map} +0 -0
  258. /package/dist/cli-bundle/chunks/{chunk-WQ7NIVDK.js.map → chunk-2LEYMXI6.js.map} +0 -0
  259. /package/dist/cli-bundle/chunks/{chunk-FRUFKWNK.js.map → chunk-3VLPDG3J.js.map} +0 -0
  260. /package/dist/cli-bundle/chunks/{chunk-C3AZ5ZML.js.map → chunk-44O4JIN6.js.map} +0 -0
  261. /package/dist/cli-bundle/chunks/{chunk-J4MYYSOL.js.map → chunk-47HTJ6BU.js.map} +0 -0
  262. /package/dist/cli-bundle/chunks/{chunk-YCJX76PW.js.map → chunk-4JXWVHMN.js.map} +0 -0
  263. /package/dist/cli-bundle/chunks/{chunk-37QXHBIB.js.map → chunk-4SDKF5BG.js.map} +0 -0
  264. /package/dist/cli-bundle/chunks/{chunk-NJHMAJ6N.js.map → chunk-5SESR24H.js.map} +0 -0
  265. /package/dist/cli-bundle/chunks/{chunk-2EIMPCE4.js.map → chunk-6FQHNHQQ.js.map} +0 -0
  266. /package/dist/cli-bundle/chunks/{chunk-5FIEHKEX.js.map → chunk-6UPTNMVW.js.map} +0 -0
  267. /package/dist/cli-bundle/chunks/{chunk-FKBDKV7Y.js.map → chunk-75VEYQJS.js.map} +0 -0
  268. /package/dist/cli-bundle/chunks/{chunk-GMHPNNYG.js.map → chunk-77VKGH4L.js.map} +0 -0
  269. /package/dist/cli-bundle/chunks/{chunk-OFYMIDF2.js.map → chunk-7MALIV5H.js.map} +0 -0
  270. /package/dist/cli-bundle/chunks/{chunk-RLK7P77C.js.map → chunk-7PBGTIN3.js.map} +0 -0
  271. /package/dist/cli-bundle/chunks/{chunk-6H4LF7AO.js.map → chunk-A25LOPRG.js.map} +0 -0
  272. /package/dist/cli-bundle/chunks/{chunk-M5XALUSL.js.map → chunk-A7E4ZXG2.js.map} +0 -0
  273. /package/dist/cli-bundle/chunks/{chunk-7D3SAQXM.js.map → chunk-AJXYOYJV.js.map} +0 -0
  274. /package/dist/cli-bundle/chunks/{chunk-HCU6WUSY.js.map → chunk-B2KR24R4.js.map} +0 -0
  275. /package/dist/cli-bundle/chunks/{chunk-2GCDRRIF.js.map → chunk-C5SWTISA.js.map} +0 -0
  276. /package/dist/cli-bundle/chunks/{chunk-AIS5PGI3.js.map → chunk-CLLVBO3I.js.map} +0 -0
  277. /package/dist/cli-bundle/chunks/{chunk-QGG32QHW.js.map → chunk-CR7KFPAQ.js.map} +0 -0
  278. /package/dist/cli-bundle/chunks/{chunk-UV6IYE5U.js.map → chunk-CWPBGUC7.js.map} +0 -0
  279. /package/dist/cli-bundle/chunks/{chunk-QQHISQBJ.js.map → chunk-DBQUQ3AS.js.map} +0 -0
  280. /package/dist/cli-bundle/chunks/{chunk-5QICDWMV.js.map → chunk-DHBPJ7VG.js.map} +0 -0
  281. /package/dist/cli-bundle/chunks/{chunk-SRYYRVPB.js.map → chunk-DMT4ODVN.js.map} +0 -0
  282. /package/dist/cli-bundle/chunks/{chunk-PUH4D67U.js.map → chunk-DU64SZUQ.js.map} +0 -0
  283. /package/dist/cli-bundle/chunks/{chunk-C4N5I7ZW.js.map → chunk-EVPVCE4R.js.map} +0 -0
  284. /package/dist/cli-bundle/chunks/{chunk-3EWSGA7N.js.map → chunk-FK6MV5F5.js.map} +0 -0
  285. /package/dist/cli-bundle/chunks/{chunk-NIUEXCFS.js.map → chunk-GGAXE22C.js.map} +0 -0
  286. /package/dist/cli-bundle/chunks/{chunk-SX75ADBK.js.map → chunk-GNDHOR64.js.map} +0 -0
  287. /package/dist/cli-bundle/chunks/{chunk-GOZUHWFD.js.map → chunk-GU7YHKYP.js.map} +0 -0
  288. /package/dist/cli-bundle/chunks/{chunk-NXS7ZKAK.js.map → chunk-GXBSFKSX.js.map} +0 -0
  289. /package/dist/cli-bundle/chunks/{chunk-NJN7LL7U.js.map → chunk-H6FNDCDI.js.map} +0 -0
  290. /package/dist/cli-bundle/chunks/{chunk-FWPDUYEY.js.map → chunk-HYQV75IB.js.map} +0 -0
  291. /package/dist/cli-bundle/chunks/{chunk-F5NZWFSW.js.map → chunk-I367IDZP.js.map} +0 -0
  292. /package/dist/cli-bundle/chunks/{chunk-52OCIDPG.js.map → chunk-I6XE47J2.js.map} +0 -0
  293. /package/dist/cli-bundle/chunks/{chunk-HIP7WVTL.js.map → chunk-J2TSPY5L.js.map} +0 -0
  294. /package/dist/cli-bundle/chunks/{chunk-2PKHRP6G.js.map → chunk-JLSC5NPC.js.map} +0 -0
  295. /package/dist/cli-bundle/chunks/{chunk-PP2U4NMT.js.map → chunk-JY25IOEZ.js.map} +0 -0
  296. /package/dist/cli-bundle/chunks/{chunk-Q2J2HJUN.js.map → chunk-K25UDYJ4.js.map} +0 -0
  297. /package/dist/cli-bundle/chunks/{chunk-SBGXDO7A.js.map → chunk-KBTREGVO.js.map} +0 -0
  298. /package/dist/cli-bundle/chunks/{chunk-QZTWBFXJ.js.map → chunk-KK4TQ3ZP.js.map} +0 -0
  299. /package/dist/cli-bundle/chunks/{chunk-NIGXMNNI.js.map → chunk-KRJJPDUO.js.map} +0 -0
  300. /package/dist/cli-bundle/chunks/{chunk-AZMOLBN3.js.map → chunk-MD7XKVWI.js.map} +0 -0
  301. /package/dist/cli-bundle/chunks/{chunk-6ZXM2XNF.js.map → chunk-MNGAQB2E.js.map} +0 -0
  302. /package/dist/cli-bundle/chunks/{chunk-3MDHREEV.js.map → chunk-NIWY4V4Z.js.map} +0 -0
  303. /package/dist/cli-bundle/chunks/{chunk-TKBHZPKD.js.map → chunk-NKZOJPXK.js.map} +0 -0
  304. /package/dist/cli-bundle/chunks/{chunk-CZPXY7UW.js.map → chunk-NVUATMTC.js.map} +0 -0
  305. /package/dist/cli-bundle/chunks/{chunk-LEU5GHRC.js.map → chunk-P7ZU73BO.js.map} +0 -0
  306. /package/dist/cli-bundle/chunks/{chunk-NSBZ2CKF.js.map → chunk-PCH2JTEO.js.map} +0 -0
  307. /package/dist/cli-bundle/chunks/{chunk-B473GZWW.js.map → chunk-PJS2J7Z4.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{chunk-5IDI42VV.js.map → chunk-QQWEROGS.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{chunk-6M4RJS4M.js.map → chunk-RPRFBXND.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{chunk-N5ZJACJ6.js.map → chunk-SFKQAVZA.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{chunk-EBH56IXK.js.map → chunk-THKDPOS5.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{chunk-LUWW7L4B.js.map → chunk-TIKJAXQW.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{chunk-OTHIWLMB.js.map → chunk-TJABI6PR.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{chunk-76Z3YSHV.js.map → chunk-TZQKEBKF.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{chunk-PFSRUHDH.js.map → chunk-UKK2VTTH.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{chunk-H7NJZWG2.js.map → chunk-V4SM4UAL.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{chunk-CZUB4XWO.js.map → chunk-VB54F347.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{chunk-O47BPOPC.js.map → chunk-WBSYW3NT.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{chunk-UPE3CDD7.js.map → chunk-WQDX7DVG.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{chunk-NB3PYLQ6.js.map → chunk-XKNF3VRJ.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{chunk-F7K5GWP3.js.map → chunk-Y335KFHD.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{chunk-D7FYS6PG.js.map → chunk-Y4BZEND6.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-6CJWZAN7.js.map → chunk-YATDFWYK.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-UEMNL33O.js.map → chunk-YJICYNAV.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-Z6T4PQI2.js.map → chunk-YQSWTVZF.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-RVHYI7SL.js.map → chunk-YRLLL5TY.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{claim-RC56YUWG.js.map → claim-MPXNVBZQ.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{claim-THOJ6CMV.js.map → claim-SKHJDLW6.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{close-SG5MNCVQ.js.map → close-4RKSL5L6.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{close-DNMHGOCX.js.map → close-Z6AI736U.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{close-many-DKQLBGLV.js.map → close-many-AWTPXLHJ.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{close-many-3L3AQZBU.js.map → close-many-SXODYBDP.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{comments-SKWMDWCW.js.map → comments-OOH64LWW.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{comments-M7ZOZNBX.js.map → comments-YYW5P7AG.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{config-OZCUABPB.js.map → config-3445MCQQ.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{config-7CK62S7T.js.map → config-LCDMKRB2.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{context-PUG2A7RC.js.map → context-DZMIBIVP.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{context-OEC366TO.js.map → context-PJCURODY.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{contracts-3THOLA7L.js.map → contracts-7YDFEJB3.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{contracts-N65FXEOL.js.map → contracts-MP2P3HL5.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{copy-JPX7VZCH.js.map → copy-63IQQRRS.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{copy-6QLHILAC.js.map → copy-TASIH2AZ.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{create-NNP6TSFO.js.map → create-3BV2VA3Q.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{create-Y54ZVVZH.js.map → create-TGSB5GV4.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{delete-63PCMQAJ.js.map → delete-ARILQQLB.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{delete-GDSMGAGJ.js.map → delete-ZQKBZYNK.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{deps-T4ZF5G54.js.map → deps-MSHQR2GY.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{deps-XYQ73XRH.js.map → deps-NJFJIMQ5.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{docs-C75YIXHC.js.map → docs-SS4UKYYA.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{docs-EHNPDWUL.js.map → docs-XK2UVUXX.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{eval-GTENKE24.js.map → eval-FVZGX5IZ.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{eval-3WKDTRMH.js.map → eval-JOTG2YHU.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{extension-46NWACO3.js.map → extension-NLMS47I4.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{extension-D5FDZ2CO.js.map → extension-OQPS27B4.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{files-X3H7CCBQ.js.map → files-3EVJQZ2N.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{files-DSZBOSSN.js.map → files-Y2P6LN5A.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{focus-5STQXDPU.js.map → focus-D5ZUPTII.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{focus-MDVPOWB5.js.map → focus-ZPIFTY4R.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{gc-ZMST3WQP.js.map → gc-LXXDY456.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{gc-ZC7JHBG7.js.map → gc-RNOEQHSX.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{get-NT7L2HUZ.js.map → get-Q3SZGQHD.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{get-J2IPJRZW.js.map → get-W23G7MJX.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{history-RLH2QCRO.js.map → history-6CZVFIUJ.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{history-WX3MGFS2.js.map → history-YRQUD4YM.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{history-compact-ZBEBGJM7.js.map → history-compact-M35PDQ4G.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{history-compact-UXDIFC33.js.map → history-compact-VWUSQH6Z.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{history-redact-YQGU3XRA.js.map → history-redact-27OEOZRZ.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{history-redact-P7I7AWMB.js.map → history-redact-AJGARHT3.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{history-repair-52KINVIK.js.map → history-repair-5RDMF7K4.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{history-repair-RM5ITLU5.js.map → history-repair-YUAHIPIN.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{init-SC2P6CHP.js.map → init-DWAKYRXI.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{init-2BNZOO6F.js.map → init-HASX3YNJ.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{learnings-W6F3FIPL.js.map → learnings-JNGUIJDK.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{learnings-YGYVHWJK.js.map → learnings-M4KA6MQE.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{list-KPAYU5KZ.js.map → list-5UU2W24O.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{list-K6FPV4J4.js.map → list-6FMKTIH3.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{notes-YTD6ZILW.js.map → notes-MODH5CBT.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{notes-PU74EPKV.js.map → notes-PYCPLA5Y.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{plan-GEQYUCBW.js.map → plan-DXRIRYRU.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{plan-FNXHXRCI.js.map → plan-EHQALWSC.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{register-list-query-QI45RMKN.js.map → register-list-query-QAASVP2J.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{register-list-query-PHWYHENI.js.map → register-list-query-WE54YJMH.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{register-mutation-YINRTS7L.js.map → register-mutation-B6DZJTY2.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{register-mutation-X3BUOQEL.js.map → register-mutation-CPV4C2KR.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{register-operations-E5JEASRK.js.map → register-operations-AT3BVVX2.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{register-operations-MIDTRW7S.js.map → register-operations-RC4C3423.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{restore-XQYSWBV7.js.map → restore-FNBV4GWE.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{restore-5KHR2YYQ.js.map → restore-XY4YE2OV.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-HJMTEXKE.js.map → scheduling-shortcuts-ECL6GBMZ.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-NNT5ASZR.js.map → scheduling-shortcuts-JRIUREEU.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{schema-TZXW6XWD.js.map → schema-74YENAJL.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{schema-263RI4WW.js.map → schema-TCW3I7QR.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{search-SFRJOVDG.js.map → search-7USZ6XZA.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{search-LECJYSXE.js.map → search-GNAUE65M.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{stats-VPBGSRQH.js.map → stats-CVHASAEU.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{stats-N7ER2PNK.js.map → stats-DQMKJMFT.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{telemetry-PP3FUNBU.js.map → telemetry-7P5EUWCS.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{telemetry-L6K3BUIQ.js.map → telemetry-PQTL5YS2.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{test-RQCTSWUK.js.map → test-COWPCGBE.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{test-3EGNS3T5.js.map → test-FDQZQNZ4.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{test-runs-GN3C6GOI.js.map → test-runs-JS6DNCCI.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{test-runs-AJHR6IQF.js.map → test-runs-NZD2QGL5.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{update-6YXOGHRT.js.map → update-7IYQHX4Q.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{update-V33YUBRP.js.map → update-IJKDRBIX.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{update-many-RYQ64CFW.js.map → update-many-6NTZ5J5D.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{update-many-N2AN6ZDH.js.map → update-many-B3TH5TDS.js.map} +0 -0
@@ -1,18 +1,21 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5b1918c3-a3a1-53f2-b547-2724ff2a4f28")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5b87215b-bb14-5510-af50-0d572df794ca")}catch(e){}}();
3
+ import {
4
+ scaffoldExtensionProject
5
+ } from "./chunk-3GL6LTUL.js";
3
6
  import {
4
7
  normalizeExtensionNameForMatch,
5
8
  normalizeManagedDirectoryName,
6
9
  normalizeStringList,
7
10
  parseExtensionManifest,
8
11
  validateExtensionDirectory
9
- } from "./chunk-SRYYRVPB.js";
12
+ } from "./chunk-DMT4ODVN.js";
10
13
  import {
11
14
  splitCommaList
12
15
  } from "./chunk-P4SESZGT.js";
13
16
  import {
14
17
  nowIso
15
- } from "./chunk-NSBZ2CKF.js";
18
+ } from "./chunk-PCH2JTEO.js";
16
19
  import {
17
20
  EXIT_CODE,
18
21
  EXTENSION_CAPABILITY_CONTRACT,
@@ -26,18 +29,19 @@ import {
26
29
  parseUnknownExtensionCapabilityWarning,
27
30
  pathExists,
28
31
  readSettings,
32
+ reconcileExtensionCapabilityUsage,
29
33
  resolveExtensionRoots,
30
34
  resolveGlobalPmRoot,
31
35
  resolvePmPackageRootFromModule,
32
36
  resolvePmRoot,
33
37
  writeSettings
34
- } from "./chunk-434HM6Z5.js";
38
+ } from "./chunk-KL5ELX2X.js";
35
39
 
36
40
  // dist/cli/commands/extension.js
37
41
  import { execFile as execFile2 } from "node:child_process";
38
- import fs6 from "node:fs/promises";
42
+ import fs5 from "node:fs/promises";
39
43
  import os2 from "node:os";
40
- import path6 from "node:path";
44
+ import path5 from "node:path";
41
45
  import { promisify as promisify2 } from "node:util";
42
46
 
43
47
  // dist/cli/commands/extension/managed-state.js
@@ -1152,231 +1156,6 @@ function projectPackageCatalogEntry(entry, fields) {
1152
1156
  return projected;
1153
1157
  }
1154
1158
 
1155
- // dist/cli/commands/extension/scaffold.js
1156
- import fs5 from "node:fs/promises";
1157
- import path5 from "node:path";
1158
- var SCAFFOLD_MANIFEST_VERSION = 1;
1159
- var SCAFFOLD_PM_MIN_VERSION = "2026.5.0";
1160
- function buildStarterExtensionScaffoldFiles(extensionName, commandName, vocabulary) {
1161
- const packageName = `pm-${extensionName}`;
1162
- const manifest = `${JSON.stringify({
1163
- name: extensionName,
1164
- version: "0.1.0",
1165
- entry: "./index.js",
1166
- capabilities: ["commands"],
1167
- manifest_version: SCAFFOLD_MANIFEST_VERSION,
1168
- pm_min_version: SCAFFOLD_PM_MIN_VERSION
1169
- }, null, 2)}
1170
- `;
1171
- const entrypoint = [
1172
- '/** @param {import("@unbrained/pm-cli/sdk").ExtensionApi} api */',
1173
- "export function activate(api) {",
1174
- " api.registerCommand({",
1175
- ` name: ${JSON.stringify(commandName)},`,
1176
- ' description: "Starter scaffold command. Replace with your own behavior.",',
1177
- " run: async (context) => ({",
1178
- " ok: true,",
1179
- ` source: ${JSON.stringify(extensionName)},`,
1180
- " command: context.command,",
1181
- ' message: "Starter extension scaffold is active.",',
1182
- " }),",
1183
- " });",
1184
- "}",
1185
- "",
1186
- "export default {",
1187
- " activate,",
1188
- "};",
1189
- ""
1190
- ].join("\n");
1191
- if (vocabulary === "package") {
1192
- const packageJson = `${JSON.stringify({
1193
- name: packageName,
1194
- version: "0.1.0",
1195
- private: true,
1196
- type: "module",
1197
- keywords: ["pm-package"],
1198
- // `node --test` runs the colocated *.test.js sample against the peer SDK
1199
- // testing helpers; no extra dev-dependency or test runner is required.
1200
- scripts: {
1201
- test: "node --test"
1202
- },
1203
- peerDependencies: {
1204
- "@unbrained/pm-cli": "*"
1205
- },
1206
- pm: {
1207
- aliases: [extensionName],
1208
- extensions: ["."],
1209
- docs: ["README.md"],
1210
- examples: ["README.md"],
1211
- catalog: {
1212
- display_name: extensionName,
1213
- category: "workflow",
1214
- summary: "Starter pm package scaffold.",
1215
- tags: ["starter"]
1216
- }
1217
- }
1218
- }, null, 2)}
1219
- `;
1220
- const sampleTest = [
1221
- 'import assert from "node:assert/strict";',
1222
- 'import { test } from "node:test";',
1223
- 'import { activateExtensionForTest, assertRegisteredCommandContract } from "@unbrained/pm-cli/sdk/testing";',
1224
- 'import extension from "./index.js";',
1225
- "",
1226
- `test(${JSON.stringify(`${extensionName} registers its starter command`)}, async () => {`,
1227
- " // `capabilities` mirrors manifest.json so the in-memory activation grants",
1228
- " // the `commands` capability the entrypoint relies on.",
1229
- " const activation = await activateExtensionForTest(extension, {",
1230
- ` name: ${JSON.stringify(extensionName)},`,
1231
- ' capabilities: ["commands"],',
1232
- " });",
1233
- " // assertRegisteredCommandContract throws if the command is not",
1234
- " // registered, so reaching here already proves the wiring; assert on the",
1235
- " // returned definition to demonstrate inspecting registered metadata.",
1236
- " const registered = assertRegisteredCommandContract(activation.registrations, {",
1237
- ` command: ${JSON.stringify(commandName)},`,
1238
- ` extensionName: ${JSON.stringify(extensionName)},`,
1239
- " });",
1240
- ' assert.equal(typeof registered.command.description, "string");',
1241
- "});",
1242
- ""
1243
- ].join("\n");
1244
- const gitignore = ["node_modules/", "*.log", ""].join("\n");
1245
- const packageReadme = [
1246
- `# ${packageName}`,
1247
- "",
1248
- "Generated by `pm package init`.",
1249
- "",
1250
- "## Included Files",
1251
- "- `package.json`: package metadata, `test` script, and `pm` resource manifest.",
1252
- "- `manifest.json`: extension metadata and capabilities.",
1253
- "- `index.js`: starter command registration using the `commands` capability.",
1254
- "- `index.test.js`: sample `node:test` suite using the SDK testing helpers.",
1255
- "- `.gitignore`: ignores `node_modules/` and log files.",
1256
- "",
1257
- "## Quick Start",
1258
- "```bash",
1259
- "pm install --project <package-path>",
1260
- `pm ${commandName}`,
1261
- "pm package doctor --project --detail summary",
1262
- "```",
1263
- "",
1264
- "## Validate the Package",
1265
- "Install the peer SDK once, then run the colocated sample test:",
1266
- "```bash",
1267
- "npm install",
1268
- "npm test",
1269
- "```",
1270
- "`npm test` runs `node --test`, which executes `index.test.js` against the",
1271
- "`@unbrained/pm-cli/sdk/testing` helpers \u2014 no extra test runner required.",
1272
- "",
1273
- "## Compatibility Bounds",
1274
- "`manifest.json` cannot hold comments, so the version-compatibility fields are documented here:",
1275
- `- \`manifest_version\` (integer): manifest schema generation. Leave at \`${SCAFFOLD_MANIFEST_VERSION}\` unless you adopt a newer manifest schema.`,
1276
- `- \`pm_min_version\` (string): lowest pm CLI version that may load this package. Scaffolded as \`${SCAFFOLD_PM_MIN_VERSION}\`. The loader blocks the package on older CLIs.`,
1277
- "- `pm_max_version` (string, optional): highest pm CLI version that may load this package. Add it to block CLIs that are newer than the version you have validated against. The loader blocks the package when the CLI exceeds this bound.",
1278
- "",
1279
- "## Notes",
1280
- "- Keep simple starter runtime behavior at the package root so local installs work without dependency bootstrapping.",
1281
- "- Move larger runtimes into subdirectories only after adding package dependencies and validating `pm package doctor`.",
1282
- "- Add capabilities to the extension manifest only when the entrypoint uses the matching SDK API.",
1283
- "- Use `@unbrained/pm-cli/sdk` as the public SDK import for richer package runtimes.",
1284
- ""
1285
- ].join("\n");
1286
- return {
1287
- "package.json": packageJson,
1288
- "manifest.json": manifest,
1289
- "index.js": entrypoint,
1290
- "index.test.js": sampleTest,
1291
- ".gitignore": gitignore,
1292
- "README.md": packageReadme
1293
- };
1294
- }
1295
- const readme = [
1296
- `# ${extensionName}`,
1297
- "",
1298
- "Generated by `pm extension init`.",
1299
- "",
1300
- "## Included Files",
1301
- "- `manifest.json`: extension metadata and capabilities.",
1302
- "- `index.js`: starter command registration using the `commands` capability.",
1303
- "",
1304
- "## Quick Start",
1305
- "```bash",
1306
- "pm extension --install --project <scaffold-path>",
1307
- `pm ${commandName}`,
1308
- "pm extension --doctor --project --detail summary",
1309
- "```",
1310
- "",
1311
- "## Compatibility Bounds",
1312
- "`manifest.json` cannot hold comments, so the version-compatibility fields are documented here:",
1313
- `- \`manifest_version\` (integer): manifest schema generation. Leave at \`${SCAFFOLD_MANIFEST_VERSION}\` unless you adopt a newer manifest schema.`,
1314
- `- \`pm_min_version\` (string): lowest pm CLI version that may load this extension. Scaffolded as \`${SCAFFOLD_PM_MIN_VERSION}\`. The loader blocks the extension on older CLIs.`,
1315
- "- `pm_max_version` (string, optional): highest pm CLI version that may load this extension. Add it to block CLIs that are newer than the version you have validated against. The loader blocks the extension when the CLI exceeds this bound.",
1316
- "",
1317
- "## Notes",
1318
- "- This scaffold uses ESM exports so it works in package scopes with `type: module`.",
1319
- "- Update `manifest.json` capabilities and `index.js` command behavior as your extension evolves.",
1320
- ""
1321
- ].join("\n");
1322
- return {
1323
- "manifest.json": manifest,
1324
- "index.js": entrypoint,
1325
- "README.md": readme
1326
- };
1327
- }
1328
- async function scaffoldExtensionProject(target, vocabulary = "extension") {
1329
- const normalizedTarget = target.trim();
1330
- const targetPath = path5.resolve(process.cwd(), normalizedTarget);
1331
- const extensionName = normalizeManagedDirectoryName(path5.basename(targetPath));
1332
- const commandName = `${extensionName} ping`;
1333
- const scaffoldFiles = buildStarterExtensionScaffoldFiles(extensionName, commandName, vocabulary);
1334
- let createdDirectory = false;
1335
- if (await pathExists(targetPath)) {
1336
- const existingTargetStats = await fs5.stat(targetPath);
1337
- if (!existingTargetStats.isDirectory()) {
1338
- throw new PmCliError(`Scaffold target "${targetPath}" exists and is not a directory.`, EXIT_CODE.CONFLICT);
1339
- }
1340
- } else {
1341
- await fs5.mkdir(targetPath, { recursive: true });
1342
- createdDirectory = true;
1343
- }
1344
- for (const [relativePath, content] of Object.entries(scaffoldFiles)) {
1345
- const absolutePath = path5.join(targetPath, relativePath);
1346
- if (!await pathExists(absolutePath)) {
1347
- continue;
1348
- }
1349
- const existingContent = await fs5.readFile(absolutePath, "utf8");
1350
- if (existingContent !== content) {
1351
- throw new PmCliError(`Scaffold file "${relativePath}" already exists with different content in "${targetPath}". Choose a new target path or remove conflicting files.`, EXIT_CODE.CONFLICT);
1352
- }
1353
- }
1354
- const files = [];
1355
- for (const [relativePath, content] of Object.entries(scaffoldFiles)) {
1356
- const absolutePath = path5.join(targetPath, relativePath);
1357
- if (await pathExists(absolutePath)) {
1358
- files.push({
1359
- path: relativePath,
1360
- status: "unchanged"
1361
- });
1362
- continue;
1363
- }
1364
- await fs5.mkdir(path5.dirname(absolutePath), { recursive: true });
1365
- await fs5.writeFile(absolutePath, content, "utf8");
1366
- files.push({
1367
- path: relativePath,
1368
- status: "created"
1369
- });
1370
- }
1371
- return {
1372
- extension_name: extensionName,
1373
- command_name: commandName,
1374
- target_path: targetPath,
1375
- created_directory: createdDirectory,
1376
- files
1377
- };
1378
- }
1379
-
1380
1159
  // dist/cli/commands/extension/doctor.js
1381
1160
  function applyDoctorRuntimeActivationState(extensions, loadResult, activationResult) {
1382
1161
  const loadedNames = new Set(loadResult.loaded.map((entry) => normalizeExtensionNameForMatch(entry.name)));
@@ -1621,6 +1400,15 @@ function classifyDoctorActivationFailureWarnings(activationFailures = []) {
1621
1400
  }
1622
1401
  return [...new Set(warnings)].sort((left, right) => left.localeCompare(right));
1623
1402
  }
1403
+ function classifyUnusedCapabilityWarnings(loadResult, activationResult) {
1404
+ const warnings = [];
1405
+ for (const entry of reconcileExtensionCapabilityUsage(loadResult.loaded, activationResult)) {
1406
+ for (const capability of entry.unused) {
1407
+ warnings.push(`extension_capability_unused:${entry.layer}:${entry.name}:${capability}`);
1408
+ }
1409
+ }
1410
+ return [...new Set(warnings)].sort((left, right) => left.localeCompare(right));
1411
+ }
1624
1412
  function buildExtensionTriageSummary(scope, warnings, extensions, options = {}) {
1625
1413
  const normalizedWarnings = [...new Set(warnings)].sort((left, right) => left.localeCompare(right));
1626
1414
  const managedTotal = extensions.filter((entry) => entry.managed).length;
@@ -1671,6 +1459,9 @@ function buildExtensionTriageSummary(scope, warnings, extensions, options = {})
1671
1459
  if (normalizedWarnings.some((warning) => warning.startsWith("extension_capability_missing:"))) {
1672
1460
  remediation.push(`Extension activation failed because code registered a surface missing from manifest capabilities. Run ${lifecycleFlagCommand(options, "doctor")} ${scopeFlag} --detail deep --trace and add the reported missing_capability to manifest.json before publishing.`);
1673
1461
  }
1462
+ if (normalizedWarnings.some((warning) => warning.startsWith("extension_capability_unused:"))) {
1463
+ remediation.push(`Extension manifests declare capabilities that are never registered against. Remove each reported unused capability from manifest.json to keep least privilege, or add the matching registration. Run ${lifecycleFlagCommand(options, "doctor")} ${scopeFlag} --detail deep --trace for per-extension registration counts.`);
1464
+ }
1674
1465
  if (normalizedWarnings.some((warning) => warning.startsWith("extension_command_definition_legacy_handler_alias:"))) {
1675
1466
  remediation.push("Extension command definitions using legacy handler were auto-remapped. Update command definitions to use run: (context) => ... for forward compatibility.");
1676
1467
  }
@@ -1905,11 +1696,11 @@ function sleep(ms) {
1905
1696
  setTimeout(resolve, ms);
1906
1697
  });
1907
1698
  }
1908
- async function copyExtensionDirectoryForInstall(sourceDirectory, destinationDirectory, copyDirectory = fs6.cp) {
1699
+ async function copyExtensionDirectoryForInstall(sourceDirectory, destinationDirectory, copyDirectory = fs5.cp) {
1909
1700
  for (let attempt = 1; attempt <= EXTENSION_INSTALL_COPY_ATTEMPTS; attempt += 1) {
1910
1701
  try {
1911
1702
  if (await pathExists(destinationDirectory)) {
1912
- await fs6.rm(destinationDirectory, { recursive: true, force: true });
1703
+ await fs5.rm(destinationDirectory, { recursive: true, force: true });
1913
1704
  }
1914
1705
  await copyExtensionDirectoryWithoutSelfNesting(sourceDirectory, destinationDirectory, copyDirectory);
1915
1706
  return;
@@ -1922,8 +1713,8 @@ async function copyExtensionDirectoryForInstall(sourceDirectory, destinationDire
1922
1713
  }
1923
1714
  }
1924
1715
  async function copyExtensionDirectoryWithoutSelfNesting(sourceDirectory, destinationDirectory, copyDirectory) {
1925
- const resolvedSource = path6.resolve(sourceDirectory);
1926
- const resolvedDestination = path6.resolve(destinationDirectory);
1716
+ const resolvedSource = path5.resolve(sourceDirectory);
1717
+ const resolvedDestination = path5.resolve(destinationDirectory);
1927
1718
  if (resolvedSource === resolvedDestination) {
1928
1719
  return;
1929
1720
  }
@@ -1931,28 +1722,28 @@ async function copyExtensionDirectoryWithoutSelfNesting(sourceDirectory, destina
1931
1722
  await copyDirectory(sourceDirectory, destinationDirectory, { recursive: true, force: true });
1932
1723
  return;
1933
1724
  }
1934
- const stagingRoot = await fs6.mkdtemp(path6.join(os2.tmpdir(), "pm-extension-copy-"));
1935
- const stagedDirectory = path6.join(stagingRoot, "extension");
1725
+ const stagingRoot = await fs5.mkdtemp(path5.join(os2.tmpdir(), "pm-extension-copy-"));
1726
+ const stagedDirectory = path5.join(stagingRoot, "extension");
1936
1727
  try {
1937
1728
  await copyDirectory(sourceDirectory, stagedDirectory, { recursive: true, force: true });
1938
1729
  await copyDirectory(stagedDirectory, destinationDirectory, { recursive: true, force: true });
1939
1730
  } finally {
1940
- await fs6.rm(stagingRoot, { recursive: true, force: true });
1731
+ await fs5.rm(stagingRoot, { recursive: true, force: true });
1941
1732
  }
1942
1733
  }
1943
1734
  async function withExtensionInstallLock(settingsRoot, destinationDirectoryName, run, options) {
1944
- const lockRoot = path6.join(settingsRoot, "runtime", "extension-install-locks");
1945
- const lockPath = path6.join(lockRoot, `${destinationDirectoryName}.lock`);
1946
- await fs6.mkdir(lockRoot, { recursive: true });
1735
+ const lockRoot = path5.join(settingsRoot, "runtime", "extension-install-locks");
1736
+ const lockPath = path5.join(lockRoot, `${destinationDirectoryName}.lock`);
1737
+ await fs5.mkdir(lockRoot, { recursive: true });
1947
1738
  const attempts = Math.max(1, Math.floor(options?.attempts ?? EXTENSION_INSTALL_LOCK_ATTEMPTS));
1948
1739
  const delayMs = Math.max(0, Math.floor(options?.delay_ms ?? EXTENSION_INSTALL_LOCK_DELAY_MS));
1949
1740
  const staleMs = Math.max(0, Math.floor(options?.stale_ms ?? EXTENSION_INSTALL_LOCK_STALE_MS));
1950
1741
  let acquired = false;
1951
1742
  for (let attempt = 1; attempt <= attempts; attempt += 1) {
1952
1743
  try {
1953
- await fs6.mkdir(lockPath);
1744
+ await fs5.mkdir(lockPath);
1954
1745
  acquired = true;
1955
- await fs6.writeFile(path6.join(lockPath, "owner.json"), `${JSON.stringify({ pid: process.pid, created_at: nowIso(), destination: destinationDirectoryName }, null, 2)}
1746
+ await fs5.writeFile(path5.join(lockPath, "owner.json"), `${JSON.stringify({ pid: process.pid, created_at: nowIso(), destination: destinationDirectoryName }, null, 2)}
1956
1747
  `, "utf8");
1957
1748
  break;
1958
1749
  } catch (error) {
@@ -1961,12 +1752,12 @@ async function withExtensionInstallLock(settingsRoot, destinationDirectoryName,
1961
1752
  }
1962
1753
  let stat = null;
1963
1754
  try {
1964
- stat = await fs6.stat(lockPath);
1755
+ stat = await fs5.stat(lockPath);
1965
1756
  } catch {
1966
1757
  stat = null;
1967
1758
  }
1968
1759
  if (stat && Date.now() - stat.mtimeMs > staleMs) {
1969
- await fs6.rm(lockPath, { recursive: true, force: true });
1760
+ await fs5.rm(lockPath, { recursive: true, force: true });
1970
1761
  continue;
1971
1762
  }
1972
1763
  await sleep(delayMs);
@@ -1978,7 +1769,7 @@ async function withExtensionInstallLock(settingsRoot, destinationDirectoryName,
1978
1769
  try {
1979
1770
  return await run();
1980
1771
  } finally {
1981
- await fs6.rm(lockPath, { recursive: true, force: true }).catch(() => void 0);
1772
+ await fs5.rm(lockPath, { recursive: true, force: true }).catch(() => void 0);
1982
1773
  }
1983
1774
  }
1984
1775
  async function resolveInstalledExtensionCandidate(installed, extensionTarget) {
@@ -2156,7 +1947,7 @@ async function listInstalledExtensions(extensionsRoot, scope, settings, state) {
2156
1947
  warnings: []
2157
1948
  };
2158
1949
  }
2159
- const entries = await fs6.readdir(extensionsRoot, { withFileTypes: true });
1950
+ const entries = await fs5.readdir(extensionsRoot, { withFileTypes: true });
2160
1951
  const directories = entries.filter((entry) => entry.isDirectory()).map((entry) => entry.name).sort((left, right) => left.localeCompare(right));
2161
1952
  const managedByName = /* @__PURE__ */ new Map();
2162
1953
  const managedByDirectory = /* @__PURE__ */ new Map();
@@ -2167,8 +1958,8 @@ async function listInstalledExtensions(extensionsRoot, scope, settings, state) {
2167
1958
  const warnings = [];
2168
1959
  const summaries = [];
2169
1960
  for (const directoryName of directories) {
2170
- const extensionDirectory = path6.join(extensionsRoot, directoryName);
2171
- const manifestPath = path6.join(extensionDirectory, "manifest.json");
1961
+ const extensionDirectory = path5.join(extensionsRoot, directoryName);
1962
+ const manifestPath = path5.join(extensionDirectory, "manifest.json");
2172
1963
  if (!await pathExists(manifestPath)) {
2173
1964
  warnings.push(`extension_manifest_missing:${scope}:${directoryName}`);
2174
1965
  const managedEntry2 = managedByDirectory.get(normalizeExtensionNameForMatch(directoryName));
@@ -2197,7 +1988,7 @@ async function listInstalledExtensions(extensionsRoot, scope, settings, state) {
2197
1988
  }
2198
1989
  let rawManifest;
2199
1990
  try {
2200
- rawManifest = JSON.parse(await fs6.readFile(manifestPath, "utf8"));
1991
+ rawManifest = JSON.parse(await fs5.readFile(manifestPath, "utf8"));
2201
1992
  } catch {
2202
1993
  warnings.push(`extension_manifest_invalid_json:${scope}:${directoryName}`);
2203
1994
  continue;
@@ -2374,7 +2165,7 @@ async function adoptUnmanagedExtensions(extensionsRoot, scope, installedExtensio
2374
2165
  let nextState = state;
2375
2166
  const adoptedEntries = [];
2376
2167
  for (const candidate of sortedCandidates) {
2377
- const extensionDirectory = path6.join(extensionsRoot, candidate.directory);
2168
+ const extensionDirectory = path5.join(extensionsRoot, candidate.directory);
2378
2169
  const validated = await validateExtensionDirectory(extensionDirectory);
2379
2170
  const now = nowIso();
2380
2171
  const sourceRecord = {
@@ -2476,6 +2267,9 @@ async function runExtension(target, options, global) {
2476
2267
  if (options.fixManagedState === true && action !== "manage" && action !== "doctor") {
2477
2268
  throw new PmCliError("--fix-managed-state is only valid with --manage or --doctor.", EXIT_CODE.USAGE);
2478
2269
  }
2270
+ if (options.capability !== void 0 && action !== "init") {
2271
+ throw new PmCliError("--capability is only valid with --init/--scaffold.", EXIT_CODE.USAGE);
2272
+ }
2479
2273
  const normalizedTarget = (() => {
2480
2274
  const normalizedInput = target?.trim().toLowerCase();
2481
2275
  if (action === "doctor" && normalizedInput === "doctor") {
@@ -2530,7 +2324,7 @@ async function runExtension(target, options, global) {
2530
2324
  throw new PmCliError('Action "init" does not accept --gh/--github/--ref options.', EXIT_CODE.USAGE);
2531
2325
  }
2532
2326
  const scaffoldTarget = requireTarget(normalizedTarget, action);
2533
- const scaffold = await scaffoldExtensionProject(scaffoldTarget, options.vocabulary ?? "extension");
2327
+ const scaffold = await scaffoldExtensionProject(scaffoldTarget, options.vocabulary ?? "extension", options.capability);
2534
2328
  const quotedTargetPath = JSON.stringify(scaffold.target_path);
2535
2329
  const quotedShellTargetPath = JSON.stringify(scaffold.target_path.replace(/\\/g, "/"));
2536
2330
  return withResult({
@@ -2539,6 +2333,7 @@ async function runExtension(target, options, global) {
2539
2333
  name: scaffold.extension_name,
2540
2334
  command: scaffold.command_name
2541
2335
  },
2336
+ capability: scaffold.capability,
2542
2337
  target_path: scaffold.target_path,
2543
2338
  created_directory: scaffold.created_directory,
2544
2339
  files: scaffold.files,
@@ -2655,10 +2450,10 @@ async function runExtension(target, options, global) {
2655
2450
  const settings = await readSettings(resolvedRoots.settings_root);
2656
2451
  const managedStateRead = await readManagedExtensionState(resolvedRoots.selected_root);
2657
2452
  warnings.push(...managedStateRead.warnings);
2658
- const destinationDirectory = path6.join(resolvedRoots.selected_root, destinationDirectoryName);
2453
+ const destinationDirectory = path5.join(resolvedRoots.selected_root, destinationDirectoryName);
2659
2454
  const destinationExists = await pathExists(destinationDirectory);
2660
2455
  const installInPlace = await areDirectoriesEquivalent(validated.directory, destinationDirectory);
2661
- await fs6.mkdir(resolvedRoots.selected_root, { recursive: true });
2456
+ await fs5.mkdir(resolvedRoots.selected_root, { recursive: true });
2662
2457
  if (!installInPlace) {
2663
2458
  await copyExtensionDirectoryForInstall(validated.directory, destinationDirectory);
2664
2459
  }
@@ -2805,7 +2600,7 @@ async function runExtension(target, options, global) {
2805
2600
  }
2806
2601
  });
2807
2602
  }
2808
- const extensionDirectory = path6.join(resolvedRoots.selected_root, candidate.directory);
2603
+ const extensionDirectory = path5.join(resolvedRoots.selected_root, candidate.directory);
2809
2604
  const validated = await validateExtensionDirectory(extensionDirectory);
2810
2605
  const now = nowIso();
2811
2606
  const sourceRecord = githubOption === void 0 ? {
@@ -2870,8 +2665,8 @@ async function runExtension(target, options, global) {
2870
2665
  if (!candidate) {
2871
2666
  throw new PmCliError(`Installed extension "${extensionTarget}" was not found in ${scope} scope.`, EXIT_CODE.NOT_FOUND);
2872
2667
  }
2873
- const destinationDirectory = path6.join(resolvedRoots.selected_root, candidate.directory);
2874
- await fs6.rm(destinationDirectory, { recursive: true, force: true });
2668
+ const destinationDirectory = path5.join(resolvedRoots.selected_root, candidate.directory);
2669
+ await fs5.rm(destinationDirectory, { recursive: true, force: true });
2875
2670
  const updatedState = {
2876
2671
  ...managedStateRead.state,
2877
2672
  updated_at: nowIso(),
@@ -2957,6 +2752,7 @@ async function runExtension(target, options, global) {
2957
2752
  warnings.push(...classifyDoctorLoadFailureWarnings(loadResult.failed));
2958
2753
  warnings.push(...activationResult.warnings);
2959
2754
  warnings.push(...classifyDoctorActivationFailureWarnings(activationResult.failed));
2755
+ warnings.push(...classifyUnusedCapabilityWarnings(loadResult, activationResult));
2960
2756
  warnings.push(...collectGlobalOutputOverrideDoctorWarnings(activationResult));
2961
2757
  const runtimeInstalledExtensions = applyDoctorRuntimeActivationState(refreshedInstalled.extensions, loadResult, activationResult);
2962
2758
  const doctorConsistency = buildDoctorConsistencySummary(scope, runtimeInstalledExtensions, loadResult.loaded.map((entry) => ({ layer: entry.layer, name: entry.name })), loadResult.failed.map((entry) => ({ name: entry.name })), loadResult.disabled_by_flag);
@@ -3274,6 +3070,6 @@ export {
3274
3070
  runExtension,
3275
3071
  _testOnly
3276
3072
  };
3277
- //# sourceMappingURL=chunk-32R4PIC6.js.map
3073
+ //# sourceMappingURL=chunk-D35LTIFR.js.map
3278
3074
 
3279
- //# debugId=5b1918c3-a3a1-53f2-b547-2724ff2a4f28
3075
+ //# debugId=5b87215b-bb14-5510-af50-0d572df794ca