@unbrained/pm-cli 2026.6.30 → 2026.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +20 -0
  3. package/dist/cli/bootstrap-args.js +89 -79
  4. package/dist/cli/bootstrap-args.js.map +1 -1
  5. package/dist/cli/commands/calendar.js +63 -62
  6. package/dist/cli/commands/calendar.js.map +1 -1
  7. package/dist/cli/commands/create.js +483 -434
  8. package/dist/cli/commands/create.js.map +1 -1
  9. package/dist/cli/commands/extension/bundled-catalog.js +59 -46
  10. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  11. package/dist/cli/commands/extension/doctor.js +129 -78
  12. package/dist/cli/commands/extension/doctor.js.map +1 -1
  13. package/dist/cli/commands/extension/managed-state.js +101 -57
  14. package/dist/cli/commands/extension/managed-state.js.map +1 -1
  15. package/dist/cli/commands/extension/scaffold.d.ts +7 -0
  16. package/dist/cli/commands/extension/scaffold.js +214 -186
  17. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  18. package/dist/cli/commands/extension.d.ts +6 -1
  19. package/dist/cli/commands/extension.js +1034 -902
  20. package/dist/cli/commands/extension.js.map +1 -1
  21. package/dist/cli/commands/list-filter-shared.js +55 -48
  22. package/dist/cli/commands/list-filter-shared.js.map +1 -1
  23. package/dist/cli/commands/search.js +94 -68
  24. package/dist/cli/commands/search.js.map +1 -1
  25. package/dist/cli/commands/test.js +108 -122
  26. package/dist/cli/commands/test.js.map +1 -1
  27. package/dist/cli/commands/update.js +27 -77
  28. package/dist/cli/commands/update.js.map +1 -1
  29. package/dist/cli/extension-command-options.js +48 -21
  30. package/dist/cli/extension-command-options.js.map +1 -1
  31. package/dist/cli/registration-helpers.js +117 -122
  32. package/dist/cli/registration-helpers.js.map +1 -1
  33. package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +16 -0
  34. package/dist/cli-bundle/chunks/{activity-MVSEND6D.js → activity-DBLQVIP6.js} +9 -9
  35. package/dist/cli-bundle/chunks/{aggregate-MOC4TR2G.js → aggregate-JTEF4BP7.js} +9 -9
  36. package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js → aggregate-SDF7DUOD.js} +9 -9
  37. package/dist/cli-bundle/chunks/{append-LEDBAM3K.js → append-LOVPGVPT.js} +6 -6
  38. package/dist/cli-bundle/chunks/{append-KDHT4GHI.js → append-QCFJSDFL.js} +6 -6
  39. package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js → chunk-22WKIL3H.js} +6 -6
  40. package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js → chunk-2466X6E4.js} +6 -6
  41. package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js → chunk-27BXPBAY.js} +3 -3
  42. package/dist/cli-bundle/chunks/{chunk-WTRUDJ3R.js → chunk-2D4HATP2.js} +5 -5
  43. package/dist/cli-bundle/chunks/{chunk-DORJSBGJ.js → chunk-3J6JRJ3I.js} +127 -125
  44. package/dist/cli-bundle/chunks/chunk-3J6JRJ3I.js.map +7 -0
  45. package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js → chunk-3K2M5OYU.js} +4 -4
  46. package/dist/cli-bundle/chunks/{chunk-KTMMTOIP.js → chunk-3S2KT7NG.js} +7 -7
  47. package/dist/cli-bundle/chunks/{chunk-FDEVKXC4.js → chunk-3VGN2UWE.js} +2 -2
  48. package/dist/cli-bundle/chunks/{chunk-K46GQ265.js → chunk-3XZCOZ5J.js} +107 -117
  49. package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +1 -0
  50. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js +799 -0
  51. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js.map +1 -0
  52. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +87 -0
  53. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +7 -0
  54. package/dist/cli-bundle/chunks/{chunk-KYDYQMNW.js → chunk-4DSGXSBL.js} +4 -4
  55. package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js → chunk-4DUVCVLZ.js} +2 -2
  56. package/dist/cli-bundle/chunks/{chunk-UB3V5WUI.js → chunk-4XOIEKSD.js} +351 -330
  57. package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +1 -0
  58. package/dist/cli-bundle/chunks/{chunk-DJDXAU74.js → chunk-55SNVXRQ.js} +68 -69
  59. package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +7 -0
  60. package/dist/cli-bundle/chunks/{chunk-ZIE6WXJ2.js → chunk-5CGRF3L5.js} +7 -7
  61. package/dist/cli-bundle/chunks/{chunk-7WDETKGP.js → chunk-5QFDBI4F.js} +1105 -965
  62. package/dist/cli-bundle/chunks/chunk-5QFDBI4F.js.map +7 -0
  63. package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js → chunk-64HNBBFQ.js} +6 -6
  64. package/dist/cli-bundle/chunks/{chunk-T7ZMQI4J.js → chunk-6AQZPVHQ.js} +198 -189
  65. package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js.map +1 -0
  66. package/dist/cli-bundle/chunks/{chunk-CY5IJMUM.js → chunk-7R4QEMZZ.js} +361 -322
  67. package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +1 -0
  68. package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js → chunk-A7FPBAQS.js} +4 -4
  69. package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js → chunk-AVEE5EHK.js} +3 -3
  70. package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js → chunk-AXIDKKAT.js} +2 -2
  71. package/dist/cli-bundle/chunks/{chunk-CHRNYKNI.js → chunk-BDTISOSD.js} +2 -2
  72. package/dist/cli-bundle/chunks/{chunk-ZFIEEDTJ.js → chunk-BHO33VBQ.js} +509 -363
  73. package/dist/cli-bundle/chunks/chunk-BHO33VBQ.js.map +7 -0
  74. package/dist/cli-bundle/chunks/{chunk-RM6MHL6A.js → chunk-BZCEN4JA.js} +98 -74
  75. package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +7 -0
  76. package/dist/cli-bundle/chunks/{chunk-RPRW26NG.js → chunk-CF7RL6FR.js} +7 -7
  77. package/dist/cli-bundle/chunks/{chunk-NIBP3I7A.js → chunk-CWFNTKQJ.js} +128 -126
  78. package/dist/cli-bundle/chunks/chunk-CWFNTKQJ.js.map +1 -0
  79. package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js → chunk-DDPTYJIM.js} +2 -2
  80. package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js → chunk-EJUDVUYZ.js} +3 -3
  81. package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js → chunk-EVMTBV6V.js} +3 -3
  82. package/dist/cli-bundle/chunks/{chunk-6YRAMXRS.js → chunk-FFMQB7WR.js} +99 -75
  83. package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +1 -0
  84. package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js → chunk-G7I7DEZA.js} +4 -4
  85. package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js → chunk-GJ326ZKX.js} +3 -3
  86. package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js → chunk-HPPFYYOV.js} +2 -2
  87. package/dist/cli-bundle/chunks/{chunk-5IRVSKPS.js → chunk-HXTQJXWT.js} +150 -224
  88. package/dist/cli-bundle/chunks/chunk-HXTQJXWT.js.map +1 -0
  89. package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js → chunk-HYTGA6GI.js} +3 -3
  90. package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js → chunk-HZZEHPRG.js} +2 -2
  91. package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js → chunk-IJYK2T43.js} +2 -2
  92. package/dist/cli-bundle/chunks/{chunk-GF7EAR22.js → chunk-IPYBJWTE.js} +7 -7
  93. package/dist/cli-bundle/chunks/{chunk-AWN4PPH5.js → chunk-IZBR4NRW.js} +7 -7
  94. package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js → chunk-JLM7BHI7.js} +6 -6
  95. package/dist/cli-bundle/chunks/{chunk-DU66JUGT.js → chunk-JMP4E6D7.js} +106 -116
  96. package/dist/cli-bundle/chunks/chunk-JMP4E6D7.js.map +7 -0
  97. package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js → chunk-JPECA746.js} +2 -2
  98. package/dist/cli-bundle/chunks/{chunk-KGQ3W65B.js → chunk-JSU5P7VS.js} +4 -4
  99. package/dist/cli-bundle/chunks/{chunk-HIBK6H4S.js → chunk-JWXRETDF.js} +69 -70
  100. package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +1 -0
  101. package/dist/cli-bundle/chunks/{chunk-Z5BM2FKQ.js → chunk-KNPEF7QG.js} +4 -4
  102. package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js → chunk-L5OEFZQG.js} +3 -3
  103. package/dist/cli-bundle/chunks/{chunk-DRPF274X.js → chunk-LB6TP6MC.js} +2 -2
  104. package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js → chunk-MAUKX7JC.js} +2 -2
  105. package/dist/cli-bundle/chunks/{chunk-6T5ZIWBS.js → chunk-MDPEOIGN.js} +150 -224
  106. package/dist/cli-bundle/chunks/chunk-MDPEOIGN.js.map +7 -0
  107. package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js → chunk-N74UMG5H.js} +2 -2
  108. package/dist/cli-bundle/chunks/{chunk-ZEATCVAC.js → chunk-NFDPYAIP.js} +2 -2
  109. package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js → chunk-NKZAN7BD.js} +3 -3
  110. package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js → chunk-NOLPZMSV.js} +2 -2
  111. package/dist/cli-bundle/chunks/{chunk-JZG5ADVE.js → chunk-NU2UEROZ.js} +1103 -963
  112. package/dist/cli-bundle/chunks/chunk-NU2UEROZ.js.map +1 -0
  113. package/dist/cli-bundle/chunks/{chunk-A3UNLXNJ.js → chunk-NUHHPVVS.js} +36 -86
  114. package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +7 -0
  115. package/dist/cli-bundle/chunks/{chunk-QE5UFCCO.js → chunk-NWMZWYYB.js} +2 -2
  116. package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js → chunk-OGXLACHC.js} +6 -6
  117. package/dist/cli-bundle/chunks/{chunk-IHXXUIXS.js → chunk-OTUHB4HS.js} +4 -4
  118. package/dist/cli-bundle/chunks/{chunk-V3KLX7U7.js → chunk-QCWF6IYD.js} +510 -364
  119. package/dist/cli-bundle/chunks/chunk-QCWF6IYD.js.map +1 -0
  120. package/dist/cli-bundle/chunks/{chunk-UFKNF23C.js → chunk-RGEMWD6Q.js} +5 -5
  121. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js +809 -0
  122. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js.map +7 -0
  123. package/dist/cli-bundle/chunks/{chunk-Z55WX4IQ.js → chunk-RLDHZHQS.js} +7 -7
  124. package/dist/cli-bundle/chunks/{chunk-NO6Y6FB2.js → chunk-RMMQ74TG.js} +5 -5
  125. package/dist/cli-bundle/chunks/{chunk-SNUK7H5J.js → chunk-RVUALSJF.js} +361 -322
  126. package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +7 -0
  127. package/dist/cli-bundle/chunks/{chunk-IZQOJR2B.js → chunk-SDR5J34Q.js} +198 -189
  128. package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js.map +7 -0
  129. package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js → chunk-SLMUGTK3.js} +4 -4
  130. package/dist/cli-bundle/chunks/{chunk-BOWQWXLI.js → chunk-TP5Q5ZD3.js} +5 -5
  131. package/dist/cli-bundle/chunks/{chunk-D5LYZVGB.js → chunk-UYUYDGIB.js} +4 -4
  132. package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js → chunk-UZIWVBE6.js} +2 -2
  133. package/dist/cli-bundle/chunks/{chunk-JTRKME24.js → chunk-V3NOKJF2.js} +6 -6
  134. package/dist/cli-bundle/chunks/{chunk-5T6WPLRO.js → chunk-VARHOHYV.js} +350 -329
  135. package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js → chunk-VICZWYGZ.js} +4 -4
  137. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +84 -0
  138. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +1 -0
  139. package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js → chunk-W4ULYO7Z.js} +6 -6
  140. package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js → chunk-WYDHYJPO.js} +2 -2
  141. package/dist/cli-bundle/chunks/{chunk-53ARXF2O.js → chunk-YITK2PJ6.js} +6 -6
  142. package/dist/cli-bundle/chunks/{chunk-VD3LKZFX.js → chunk-ZETXE4SE.js} +37 -87
  143. package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +1 -0
  144. package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js → chunk-ZRP4VG5U.js} +2 -2
  145. package/dist/cli-bundle/chunks/{claim-6NINZYB3.js → claim-EMQLYPRW.js} +8 -8
  146. package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js → claim-T3GCKV7C.js} +8 -8
  147. package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +14 -0
  148. package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js → close-TQYAAFJP.js} +7 -7
  149. package/dist/cli-bundle/chunks/{close-many-BFMP6HHK.js → close-many-BG5QQIDQ.js} +15 -15
  150. package/dist/cli-bundle/chunks/{close-many-CXJBOWWY.js → close-many-LDRVEQY2.js} +15 -15
  151. package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js → comments-QCKR2YY2.js} +8 -8
  152. package/dist/cli-bundle/chunks/{comments-ETHABIY6.js → comments-YUXJRZPQ.js} +8 -8
  153. package/dist/cli-bundle/chunks/{config-FIXJZEQK.js → config-DMSU64QO.js} +7 -7
  154. package/dist/cli-bundle/chunks/{config-X3ZVCUUG.js → config-QH2DICD6.js} +7 -7
  155. package/dist/cli-bundle/chunks/{context-XDI4DKKT.js → context-B6275WPX.js} +12 -12
  156. package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js → context-OCZ3FJ4Z.js} +12 -12
  157. package/dist/cli-bundle/chunks/{contracts-SMOAN5NF.js → contracts-HN7ABKLP.js} +3 -3
  158. package/dist/cli-bundle/chunks/{contracts-KP4QAGVW.js → contracts-W4FZVVD6.js} +3 -3
  159. package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js → copy-BTJOSKKT.js} +5 -5
  160. package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js → copy-DEM4DATS.js} +5 -5
  161. package/dist/cli-bundle/chunks/create-OH3BDGBB.js +28 -0
  162. package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js → create-RLRJMRTM.js} +12 -12
  163. package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js → delete-BHK7VB2Z.js} +5 -5
  164. package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js → delete-LSVHAB4Y.js} +5 -5
  165. package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js → deps-4UDFJRUA.js} +5 -5
  166. package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js → deps-XHYXWEPT.js} +5 -5
  167. package/dist/cli-bundle/chunks/{docs-2TIFR62T.js → docs-26S44RXU.js} +7 -7
  168. package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js → docs-GYZNVS26.js} +7 -7
  169. package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js → eval-PGRVIJQU.js} +10 -10
  170. package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js → eval-UYF3ZPVO.js} +10 -10
  171. package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js → extension-CPSLJQVE.js} +11 -10
  172. package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js → extension-CXJ6RELI.js} +11 -10
  173. package/dist/cli-bundle/chunks/{files-T5ODMETM.js → files-MBNICQFM.js} +7 -7
  174. package/dist/cli-bundle/chunks/{files-DF3HO6XK.js → files-NQHEXUZD.js} +7 -7
  175. package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js → focus-DWYIG7GU.js} +6 -6
  176. package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js → focus-XZW5423D.js} +6 -6
  177. package/dist/cli-bundle/chunks/{gc-FULIVYR4.js → gc-7GQYOS2G.js} +3 -3
  178. package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js → gc-LPVMKJQJ.js} +3 -3
  179. package/dist/cli-bundle/chunks/{get-AWK324RS.js → get-A7MAOHCU.js} +9 -9
  180. package/dist/cli-bundle/chunks/{get-VYPIICPC.js → get-DSDEKJ3L.js} +9 -9
  181. package/dist/cli-bundle/chunks/{health-Q66C43GN.js → health-3IPFLKXB.js} +17 -16
  182. package/dist/cli-bundle/chunks/{health-Q66C43GN.js.map → health-3IPFLKXB.js.map} +1 -1
  183. package/dist/cli-bundle/chunks/{health-FBCVZGSX.js → health-GZXGBZ36.js} +15 -14
  184. package/dist/cli-bundle/chunks/{health-FBCVZGSX.js.map → health-GZXGBZ36.js.map} +1 -1
  185. package/dist/cli-bundle/chunks/{history-X4OSES6K.js → history-NERDJNUB.js} +8 -8
  186. package/dist/cli-bundle/chunks/history-WSZHY3PN.js +18 -0
  187. package/dist/cli-bundle/chunks/{history-compact-WLCQEKXS.js → history-compact-2WRZ2WK4.js} +10 -10
  188. package/dist/cli-bundle/chunks/{history-compact-2GHT32UX.js → history-compact-HR7BB4LR.js} +10 -10
  189. package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +19 -0
  190. package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js → history-redact-O3NBCNWC.js} +9 -9
  191. package/dist/cli-bundle/chunks/{history-repair-GABSDSVD.js → history-repair-LCMOS45X.js} +10 -10
  192. package/dist/cli-bundle/chunks/{history-repair-FY75IC26.js → history-repair-XA3LC4GA.js} +10 -10
  193. package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js → init-64XDLQJB.js} +12 -11
  194. package/dist/cli-bundle/chunks/init-PAX32BJA.js +22 -0
  195. package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js → learnings-JR6MA5TI.js} +8 -8
  196. package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js → learnings-LPKCSJX7.js} +8 -8
  197. package/dist/cli-bundle/chunks/{list-ROT7JF62.js → list-DNBJVO3E.js} +8 -8
  198. package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js → list-G5Y65VF6.js} +8 -8
  199. package/dist/cli-bundle/chunks/{next-66BJB4N2.js → next-BCERKDUR.js} +13 -13
  200. package/dist/cli-bundle/chunks/{next-N5MWJTBY.js → next-FYTQF6HG.js} +13 -13
  201. package/dist/cli-bundle/chunks/{notes-FW6YFLND.js → notes-2BMU3VVQ.js} +8 -8
  202. package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js → notes-6KTGO2OJ.js} +8 -8
  203. package/dist/cli-bundle/chunks/{plan-DQ7G4EDC.js → plan-4WXEQCTN.js} +12 -12
  204. package/dist/cli-bundle/chunks/{plan-ZHKZ7JVF.js → plan-RKZHQVXR.js} +12 -12
  205. package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js → profile-4OMM32CD.js} +8 -8
  206. package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js → profile-QLER5ENE.js} +8 -8
  207. package/dist/cli-bundle/chunks/{register-list-query-Y2VRHPCL.js → register-list-query-7LV46VAU.js} +18 -18
  208. package/dist/cli-bundle/chunks/{register-list-query-KY6Z6WV7.js → register-list-query-SNG5PGA4.js} +18 -18
  209. package/dist/cli-bundle/chunks/{register-mutation-PCARIGZS.js → register-mutation-ENNDUAZG.js} +35 -35
  210. package/dist/cli-bundle/chunks/{register-mutation-N6AYSKPM.js → register-mutation-KK7PHYYU.js} +35 -35
  211. package/dist/cli-bundle/chunks/{register-operations-YAT6FUUB.js → register-operations-C6OWLDSH.js} +30 -30
  212. package/dist/cli-bundle/chunks/{register-operations-L6CYTOIH.js → register-operations-HZ6XERQG.js} +30 -30
  213. package/dist/cli-bundle/chunks/{register-setup-N7UGXYJC.js → register-setup-P67EMBDJ.js} +15 -15
  214. package/dist/cli-bundle/chunks/{register-setup-MPANILQF.js → register-setup-ZKJ53RS7.js} +15 -15
  215. package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js → restore-4MHZFJ2E.js} +9 -9
  216. package/dist/cli-bundle/chunks/restore-YALDGTQR.js +17 -0
  217. package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js → scheduling-shortcuts-LB6DOLRL.js} +12 -12
  218. package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js → scheduling-shortcuts-UTOYKLXQ.js} +12 -12
  219. package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js → schema-73HR2OJW.js} +7 -7
  220. package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js → schema-U6LJKSIR.js} +7 -7
  221. package/dist/cli-bundle/chunks/{search-CX5UMV4H.js → search-AXPXKZER.js} +10 -10
  222. package/dist/cli-bundle/chunks/{search-KP6H7COV.js → search-KILGT37L.js} +10 -10
  223. package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js → stats-PSYVVTNZ.js} +6 -6
  224. package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js → stats-W5KNVJWQ.js} +6 -6
  225. package/dist/cli-bundle/chunks/{telemetry-WTYFUPRL.js → telemetry-BZUF6H7G.js} +4 -4
  226. package/dist/cli-bundle/chunks/{telemetry-DIFPXCAT.js → telemetry-GAHHQTOS.js} +4 -4
  227. package/dist/cli-bundle/chunks/{test-QNDXZQCW.js → test-ACD52Z3S.js} +15 -14
  228. package/dist/cli-bundle/chunks/{test-HU2BS7EY.js → test-PWDIZ255.js} +15 -14
  229. package/dist/cli-bundle/chunks/{test-all-XLPI4USF.js → test-all-L2MDDUCA.js} +17 -16
  230. package/dist/cli-bundle/chunks/{test-all-XLPI4USF.js.map → test-all-L2MDDUCA.js.map} +1 -1
  231. package/dist/cli-bundle/chunks/{test-all-PZTBLLQ6.js → test-all-RBZ6DLU2.js} +15 -14
  232. package/dist/cli-bundle/chunks/{test-all-PZTBLLQ6.js.map → test-all-RBZ6DLU2.js.map} +1 -1
  233. package/dist/cli-bundle/chunks/{test-runs-LANLLPVO.js → test-runs-PLRAZEFW.js} +4 -4
  234. package/dist/cli-bundle/chunks/{test-runs-CA6K32RD.js → test-runs-UXIXPDKU.js} +4 -4
  235. package/dist/cli-bundle/chunks/update-AMRSOIWP.js +24 -0
  236. package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js → update-KFX2SIAC.js} +15 -15
  237. package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js → update-many-RNSBX2TA.js} +23 -23
  238. package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js → update-many-Z5GJS5LC.js} +23 -23
  239. package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js → upgrade-BRL6KCOJ.js} +13 -12
  240. package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js.map → upgrade-BRL6KCOJ.js.map} +1 -1
  241. package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js → upgrade-HAK6JG2O.js} +11 -10
  242. package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js.map → upgrade-HAK6JG2O.js.map} +1 -1
  243. package/dist/cli-bundle/chunks/{validate-2G566PKQ.js → validate-MTUVL5VC.js} +20 -19
  244. package/dist/cli-bundle/chunks/{validate-2G566PKQ.js.map → validate-MTUVL5VC.js.map} +1 -1
  245. package/dist/cli-bundle/chunks/{validate-BDPVXHHH.js → validate-X5W76YJL.js} +22 -21
  246. package/dist/cli-bundle/chunks/{validate-BDPVXHHH.js.map → validate-X5W76YJL.js.map} +1 -1
  247. package/dist/cli-bundle/main.js +55 -702
  248. package/dist/cli-bundle/main.js.map +4 -4
  249. package/dist/core/extensions/activation-summary-markdown.js +23 -12
  250. package/dist/core/extensions/activation-summary-markdown.js.map +1 -1
  251. package/dist/core/extensions/extension-policy.d.ts +18 -3
  252. package/dist/core/extensions/extension-policy.js +116 -106
  253. package/dist/core/extensions/extension-policy.js.map +1 -1
  254. package/dist/core/extensions/loader.js +310 -232
  255. package/dist/core/extensions/loader.js.map +1 -1
  256. package/dist/core/item/item-format.js +523 -410
  257. package/dist/core/item/item-format.js.map +1 -1
  258. package/dist/mcp/server.js +387 -367
  259. package/dist/mcp/server.js.map +1 -1
  260. package/dist/sdk/cli-contracts/flag-contracts.js +111 -180
  261. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  262. package/dist/sdk/cli-contracts/tool-schema.js +76 -45
  263. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  264. package/dist/sdk/compose.d.ts +4 -1
  265. package/dist/sdk/compose.js +181 -115
  266. package/dist/sdk/compose.js.map +1 -1
  267. package/docs/RELEASING.md +2 -3
  268. package/package.json +1 -1
  269. package/dist/cli-bundle/chunks/activity-EJBMXUBH.js +0 -16
  270. package/dist/cli-bundle/chunks/chunk-5IRVSKPS.js.map +0 -1
  271. package/dist/cli-bundle/chunks/chunk-5T6WPLRO.js.map +0 -7
  272. package/dist/cli-bundle/chunks/chunk-6T5ZIWBS.js.map +0 -7
  273. package/dist/cli-bundle/chunks/chunk-6YRAMXRS.js.map +0 -1
  274. package/dist/cli-bundle/chunks/chunk-7WDETKGP.js.map +0 -7
  275. package/dist/cli-bundle/chunks/chunk-A3UNLXNJ.js.map +0 -7
  276. package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js +0 -115
  277. package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js.map +0 -1
  278. package/dist/cli-bundle/chunks/chunk-CY5IJMUM.js.map +0 -1
  279. package/dist/cli-bundle/chunks/chunk-DJDXAU74.js.map +0 -7
  280. package/dist/cli-bundle/chunks/chunk-DORJSBGJ.js.map +0 -7
  281. package/dist/cli-bundle/chunks/chunk-DU66JUGT.js.map +0 -7
  282. package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js +0 -118
  283. package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js.map +0 -7
  284. package/dist/cli-bundle/chunks/chunk-HIBK6H4S.js.map +0 -1
  285. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js +0 -35
  286. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js.map +0 -7
  287. package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js.map +0 -7
  288. package/dist/cli-bundle/chunks/chunk-JZG5ADVE.js.map +0 -1
  289. package/dist/cli-bundle/chunks/chunk-K46GQ265.js.map +0 -1
  290. package/dist/cli-bundle/chunks/chunk-NIBP3I7A.js.map +0 -1
  291. package/dist/cli-bundle/chunks/chunk-RM6MHL6A.js.map +0 -7
  292. package/dist/cli-bundle/chunks/chunk-SNUK7H5J.js.map +0 -7
  293. package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js.map +0 -1
  294. package/dist/cli-bundle/chunks/chunk-UB3V5WUI.js.map +0 -1
  295. package/dist/cli-bundle/chunks/chunk-V3KLX7U7.js.map +0 -1
  296. package/dist/cli-bundle/chunks/chunk-VD3LKZFX.js.map +0 -1
  297. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js +0 -32
  298. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js.map +0 -1
  299. package/dist/cli-bundle/chunks/chunk-ZFIEEDTJ.js.map +0 -7
  300. package/dist/cli-bundle/chunks/close-37KEHLYM.js +0 -14
  301. package/dist/cli-bundle/chunks/create-DFMNBKBS.js +0 -28
  302. package/dist/cli-bundle/chunks/history-5XUSLAJA.js +0 -18
  303. package/dist/cli-bundle/chunks/history-redact-BVHWDXPR.js +0 -19
  304. package/dist/cli-bundle/chunks/init-TRYJELH4.js +0 -21
  305. package/dist/cli-bundle/chunks/restore-IRAKSWIW.js +0 -17
  306. package/dist/cli-bundle/chunks/update-UXDLTEOZ.js +0 -24
  307. /package/dist/cli-bundle/chunks/{activity-EJBMXUBH.js.map → activity-AW6XVFH6.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{activity-MVSEND6D.js.map → activity-DBLQVIP6.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{aggregate-MOC4TR2G.js.map → aggregate-JTEF4BP7.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js.map → aggregate-SDF7DUOD.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{append-LEDBAM3K.js.map → append-LOVPGVPT.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{append-KDHT4GHI.js.map → append-QCFJSDFL.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js.map → chunk-22WKIL3H.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js.map → chunk-2466X6E4.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js.map → chunk-27BXPBAY.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{chunk-WTRUDJ3R.js.map → chunk-2D4HATP2.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js.map → chunk-3K2M5OYU.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{chunk-KTMMTOIP.js.map → chunk-3S2KT7NG.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{chunk-FDEVKXC4.js.map → chunk-3VGN2UWE.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{chunk-KYDYQMNW.js.map → chunk-4DSGXSBL.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js.map → chunk-4DUVCVLZ.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{chunk-ZIE6WXJ2.js.map → chunk-5CGRF3L5.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js.map → chunk-64HNBBFQ.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js.map → chunk-A7FPBAQS.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js.map → chunk-AVEE5EHK.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js.map → chunk-AXIDKKAT.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{chunk-CHRNYKNI.js.map → chunk-BDTISOSD.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{chunk-RPRW26NG.js.map → chunk-CF7RL6FR.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js.map → chunk-DDPTYJIM.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js.map → chunk-EJUDVUYZ.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js.map → chunk-EVMTBV6V.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js.map → chunk-G7I7DEZA.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js.map → chunk-GJ326ZKX.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js.map → chunk-HPPFYYOV.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js.map → chunk-HYTGA6GI.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js.map → chunk-HZZEHPRG.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js.map → chunk-IJYK2T43.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{chunk-GF7EAR22.js.map → chunk-IPYBJWTE.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{chunk-AWN4PPH5.js.map → chunk-IZBR4NRW.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js.map → chunk-JLM7BHI7.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js.map → chunk-JPECA746.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{chunk-KGQ3W65B.js.map → chunk-JSU5P7VS.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{chunk-Z5BM2FKQ.js.map → chunk-KNPEF7QG.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js.map → chunk-L5OEFZQG.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{chunk-DRPF274X.js.map → chunk-LB6TP6MC.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js.map → chunk-MAUKX7JC.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js.map → chunk-N74UMG5H.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{chunk-ZEATCVAC.js.map → chunk-NFDPYAIP.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js.map → chunk-NKZAN7BD.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js.map → chunk-NOLPZMSV.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{chunk-QE5UFCCO.js.map → chunk-NWMZWYYB.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js.map → chunk-OGXLACHC.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{chunk-IHXXUIXS.js.map → chunk-OTUHB4HS.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{chunk-UFKNF23C.js.map → chunk-RGEMWD6Q.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{chunk-Z55WX4IQ.js.map → chunk-RLDHZHQS.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{chunk-NO6Y6FB2.js.map → chunk-RMMQ74TG.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js.map → chunk-SLMUGTK3.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{chunk-BOWQWXLI.js.map → chunk-TP5Q5ZD3.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{chunk-D5LYZVGB.js.map → chunk-UYUYDGIB.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js.map → chunk-UZIWVBE6.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{chunk-JTRKME24.js.map → chunk-V3NOKJF2.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js.map → chunk-VICZWYGZ.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js.map → chunk-W4ULYO7Z.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js.map → chunk-WYDHYJPO.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{chunk-53ARXF2O.js.map → chunk-YITK2PJ6.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js.map → chunk-ZRP4VG5U.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{claim-6NINZYB3.js.map → claim-EMQLYPRW.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js.map → claim-T3GCKV7C.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{close-37KEHLYM.js.map → close-E6ZZGCJY.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js.map → close-TQYAAFJP.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{close-many-BFMP6HHK.js.map → close-many-BG5QQIDQ.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{close-many-CXJBOWWY.js.map → close-many-LDRVEQY2.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js.map → comments-QCKR2YY2.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{comments-ETHABIY6.js.map → comments-YUXJRZPQ.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{config-FIXJZEQK.js.map → config-DMSU64QO.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{config-X3ZVCUUG.js.map → config-QH2DICD6.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{context-XDI4DKKT.js.map → context-B6275WPX.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js.map → context-OCZ3FJ4Z.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{contracts-SMOAN5NF.js.map → contracts-HN7ABKLP.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{contracts-KP4QAGVW.js.map → contracts-W4FZVVD6.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js.map → copy-BTJOSKKT.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js.map → copy-DEM4DATS.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{create-DFMNBKBS.js.map → create-OH3BDGBB.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js.map → create-RLRJMRTM.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js.map → delete-BHK7VB2Z.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js.map → delete-LSVHAB4Y.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js.map → deps-4UDFJRUA.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js.map → deps-XHYXWEPT.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{docs-2TIFR62T.js.map → docs-26S44RXU.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js.map → docs-GYZNVS26.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js.map → eval-PGRVIJQU.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js.map → eval-UYF3ZPVO.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js.map → extension-CPSLJQVE.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js.map → extension-CXJ6RELI.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{files-T5ODMETM.js.map → files-MBNICQFM.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{files-DF3HO6XK.js.map → files-NQHEXUZD.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js.map → focus-DWYIG7GU.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js.map → focus-XZW5423D.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{gc-FULIVYR4.js.map → gc-7GQYOS2G.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js.map → gc-LPVMKJQJ.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{get-AWK324RS.js.map → get-A7MAOHCU.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{get-VYPIICPC.js.map → get-DSDEKJ3L.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{history-X4OSES6K.js.map → history-NERDJNUB.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{history-5XUSLAJA.js.map → history-WSZHY3PN.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{history-compact-WLCQEKXS.js.map → history-compact-2WRZ2WK4.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{history-compact-2GHT32UX.js.map → history-compact-HR7BB4LR.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{history-redact-BVHWDXPR.js.map → history-redact-MP6CH7U5.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js.map → history-redact-O3NBCNWC.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{history-repair-GABSDSVD.js.map → history-repair-LCMOS45X.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{history-repair-FY75IC26.js.map → history-repair-XA3LC4GA.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js.map → init-64XDLQJB.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{init-TRYJELH4.js.map → init-PAX32BJA.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js.map → learnings-JR6MA5TI.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js.map → learnings-LPKCSJX7.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{list-ROT7JF62.js.map → list-DNBJVO3E.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js.map → list-G5Y65VF6.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{next-66BJB4N2.js.map → next-BCERKDUR.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{next-N5MWJTBY.js.map → next-FYTQF6HG.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{notes-FW6YFLND.js.map → notes-2BMU3VVQ.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js.map → notes-6KTGO2OJ.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{plan-DQ7G4EDC.js.map → plan-4WXEQCTN.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{plan-ZHKZ7JVF.js.map → plan-RKZHQVXR.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js.map → profile-4OMM32CD.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js.map → profile-QLER5ENE.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{register-list-query-Y2VRHPCL.js.map → register-list-query-7LV46VAU.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{register-list-query-KY6Z6WV7.js.map → register-list-query-SNG5PGA4.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{register-mutation-PCARIGZS.js.map → register-mutation-ENNDUAZG.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{register-mutation-N6AYSKPM.js.map → register-mutation-KK7PHYYU.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{register-operations-YAT6FUUB.js.map → register-operations-C6OWLDSH.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{register-operations-L6CYTOIH.js.map → register-operations-HZ6XERQG.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{register-setup-N7UGXYJC.js.map → register-setup-P67EMBDJ.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{register-setup-MPANILQF.js.map → register-setup-ZKJ53RS7.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js.map → restore-4MHZFJ2E.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{restore-IRAKSWIW.js.map → restore-YALDGTQR.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js.map → scheduling-shortcuts-LB6DOLRL.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js.map → scheduling-shortcuts-UTOYKLXQ.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js.map → schema-73HR2OJW.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js.map → schema-U6LJKSIR.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{search-CX5UMV4H.js.map → search-AXPXKZER.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{search-KP6H7COV.js.map → search-KILGT37L.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js.map → stats-PSYVVTNZ.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js.map → stats-W5KNVJWQ.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{telemetry-WTYFUPRL.js.map → telemetry-BZUF6H7G.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{telemetry-DIFPXCAT.js.map → telemetry-GAHHQTOS.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{test-QNDXZQCW.js.map → test-ACD52Z3S.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{test-HU2BS7EY.js.map → test-PWDIZ255.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{test-runs-LANLLPVO.js.map → test-runs-PLRAZEFW.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{test-runs-CA6K32RD.js.map → test-runs-UXIXPDKU.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{update-UXDLTEOZ.js.map → update-AMRSOIWP.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js.map → update-KFX2SIAC.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js.map → update-many-RNSBX2TA.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js.map → update-many-Z5GJS5LC.js.map} +0 -0
@@ -5,7 +5,7 @@
5
5
  * Runs the MCP server adapter that exposes pm actions and contracts to external agents.
6
6
  */
7
7
 
8
- !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]="4921fdeb-d146-5458-bf25-02e9e7c091c0")}catch(e){}}();
8
+ !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]="28140feb-d035-55d6-bd6a-d90ed2c41f26")}catch(e){}}();
9
9
  import { realpathSync } from "node:fs";
10
10
  import readline from "node:readline";
11
11
  import { fileURLToPath } from "node:url";
@@ -588,378 +588,398 @@ async function runAction(args) {
588
588
  const resolutionCwd = explicitCwd ?? process.cwd();
589
589
  return withActiveExtensions(global, explicitCwd, resolutionCwd, (activeExtensions) => dispatchAction(action, args, global, activeExtensions));
590
590
  }
591
- async function dispatchAction(action, args, global, activeExtensions) {
592
- const options = optionsWithAuthor(args, action);
593
- const id = readString(args, "id");
594
- const force = args.force === true;
595
- switch (action) {
596
- case "init":
597
- return runInit(readString(args, "prefix"), global, options);
598
- case "context":
599
- return runContext(options, global);
600
- case "next":
601
- return runNext(options, global);
602
- case "list": {
603
- const listOptions = { ...options };
604
- if (listOptions.compact === undefined &&
605
- listOptions.brief === undefined &&
606
- listOptions.fields === undefined &&
607
- listOptions.includeBody === undefined) {
608
- listOptions.compact = true;
609
- }
610
- // pm-rmjy: echo the applied filters + resolved projection mode so agents
611
- // get structured confirmation of what the server actually ran.
612
- return withQuerySummary((await runList(readString(args, "status"), listOptions, global)), listOptions);
613
- }
614
- case "get":
615
- return runGet(id ?? readRequiredString(options, "id"), global, options);
616
- case "search": {
617
- const searchOptions = { ...options };
618
- if (searchOptions.compact === undefined &&
619
- searchOptions.full === undefined &&
620
- searchOptions.fields === undefined) {
621
- searchOptions.compact = true;
622
- }
623
- // pm-rmjy: echo the applied filters + resolved projection mode (see list).
624
- return withQuerySummary((await runSearch(readRequiredString(args, "query"), searchOptions, global)), searchOptions);
625
- }
626
- case "create": {
627
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
628
- return projectMutationResult(await runCreate(runnerOptions, global), { changedFields, idOnly });
629
- }
630
- case "copy": {
631
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
632
- const copyOptions = {
633
- ...runnerOptions,
634
- ...(runnerOptions.title === undefined && typeof args.title === "string" ? { title: args.title } : {}),
635
- ...(runnerOptions.message === undefined && typeof args.message === "string" ? { message: args.message } : {}),
636
- };
637
- return projectMutationResult(await runCopy(id ?? readRequiredString(copyOptions, "id"), copyOptions, global), { changedFields, idOnly });
638
- }
639
- case "focus": {
640
- const clear = options.clear === true || args.clear === true;
641
- return runFocus(id, { clear }, global);
642
- }
643
- case "update": {
644
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
645
- return projectMutationResult(await runUpdate(id ?? readRequiredString(runnerOptions, "id"), runnerOptions, global), { changedFields, idOnly });
646
- }
647
- case "claim":
648
- return runClaim(id ?? readRequiredString(options, "id"), force, global, options);
649
- case "release":
650
- return runRelease(id ?? readRequiredString(options, "id"), force, global, options);
651
- case "close": {
652
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
653
- const closeReason = readString(args, "reason") ??
654
- readString(args, "text") ??
655
- readString(runnerOptions, "reason") ??
656
- readString(runnerOptions, "text");
657
- return projectMutationResult(await runClose(id ?? readRequiredString(runnerOptions, "id"), closeReason, runnerOptions, global), { changedFields, idOnly });
658
- }
659
- case "comments": {
660
- const commentOptions = { ...options };
661
- const isListing = commentOptions.add === undefined &&
662
- commentOptions.stdin === undefined &&
663
- commentOptions.file === undefined &&
664
- commentOptions.edit === undefined &&
665
- commentOptions.delete === undefined;
666
- if (isListing) {
667
- commentOptions.includeMeta = true;
668
- if (commentOptions.limit === undefined && commentOptions.full !== true) {
669
- commentOptions.limit = "20";
670
- }
671
- }
672
- delete commentOptions.full;
673
- return runComments(id ?? readRequiredString(options, "id"), commentOptions, global);
674
- }
675
- case "notes":
676
- return runNotes(id ?? readRequiredString(options, "id"), options, global);
677
- case "learnings":
678
- return runLearnings(id ?? readRequiredString(options, "id"), options, global);
679
- case "files": {
680
- const fileId = id ?? readRequiredString(options, "id");
681
- if (options.discover === true) {
682
- return runFilesDiscover(fileId, withFilesDiscoveryOptions(options), global);
683
- }
684
- return runFiles(fileId, withAddNoteOption(options), global);
685
- }
686
- case "docs":
687
- return runDocs(id ?? readRequiredString(options, "id"), withAddNoteOption(options), global);
688
- case "test":
689
- return runTest(id ?? readRequiredString(options, "id"), options, global);
690
- case "test-all":
691
- return runTestAll(options, global);
692
- case "telemetry":
693
- return runTelemetry({
694
- subcommand: readString(args, "subcommand") ?? readString(options, "subcommand"),
695
- limit: typeof args.limit === "number" && Number.isFinite(args.limit)
696
- ? args.limit
697
- : typeof options.limit === "number" && Number.isFinite(options.limit)
698
- ? options.limit
699
- : readString(args, "limit") ?? readString(options, "limit"),
700
- }, global);
701
- case "validate":
702
- return runValidate(options, global);
703
- case "health": {
704
- // Default to the compact `summary` projection for agents (ok + per-check
705
- // status + warning samples; ~22x smaller than the full payload). Callers
706
- // opt into detail with brief/summary/full or the deep remediation payload
707
- // via full=true. Mirrors the compact-by-default list/search behavior (F2).
708
- const healthOptions = { ...options };
709
- if (healthOptions.brief === undefined &&
710
- healthOptions.summary === undefined &&
711
- healthOptions.full === undefined) {
712
- healthOptions.summary = true;
713
- }
714
- return runHealth(global, healthOptions);
715
- }
716
- case "contracts":
717
- return runContracts(options, global);
718
- case "config": {
719
- // pm-v68d: the narrow pm_config tool declares configAction top-level;
720
- // options.configAction/options.action remain accepted for pm_run parity.
721
- const configAction = readString(args, "configAction") ?? readString(options, "configAction") ?? readString(options, "action");
722
- if (configAction === undefined) {
723
- throw new PmCliError("Missing required argument: configAction", 64);
724
- }
725
- return runConfig(readString(args, "scope") ?? readString(options, "scope") ?? "project", configAction, readString(args, "key") ?? readString(options, "key"), options, global, readString(args, "value") ?? readString(options, "value"));
726
- }
727
- case "activity": {
728
- const activityOptions = { ...options };
729
- if (activityOptions.compact === undefined) {
730
- activityOptions.compact = activityOptions.full === true ? false : true;
731
- }
732
- delete activityOptions.full;
733
- return runActivity(activityOptions, global);
734
- }
735
- case "aggregate":
736
- return runAggregate(options, global);
737
- case "extension":
738
- return runExtension(readString(args, "target") ?? readString(options, "target"), options, global);
739
- case "extension-reload":
740
- return runExtension(undefined, { ...options, reload: true }, global);
741
- case "package":
742
- return runExtension(readString(args, "target") ?? readString(options, "target"), options, global);
743
- case "package-install":
744
- case "install":
745
- return runExtension(readString(args, "target") ?? readString(options, "target"), { ...options, install: true }, global);
746
- case "package-catalog":
747
- return runExtension(undefined, { ...options, catalog: true, vocabulary: "package" }, global);
748
- case "upgrade":
749
- return runUpgrade(readString(args, "target") ?? readString(options, "target"), options, global);
750
- case "delete":
751
- return runDelete(id ?? readRequiredString(options, "id"), options, global);
752
- case "deps":
753
- return runDeps(id ?? readRequiredString(options, "id"), options, global);
754
- case "files-discover":
755
- return runFilesDiscover(id ?? readRequiredString(options, "id"), options, global);
756
- case "history":
757
- return runHistory(id ?? readRequiredString(options, "id"), options, global);
758
- case "history-redact":
759
- return runHistoryRedact(id ?? readRequiredString(options, "id"), options, global);
760
- case "history-repair": {
761
- const repairAll = options.all === true;
762
- const repairId = id ?? readString(options, "id");
763
- assertHistoryRepairTarget(repairId, repairAll);
764
- return repairAll ? runHistoryRepairAll(options, global) : runHistoryRepair(repairId, options, global);
591
+ function getOwnHandler(handlers, key) {
592
+ return Object.prototype.hasOwnProperty.call(handlers, key) ? handlers[key] : undefined;
593
+ }
594
+ function readMcpTarget(ctx) {
595
+ return readString(ctx.args, "target") ?? readString(ctx.options, "target");
596
+ }
597
+ function requireMcpItemId(ctx, source = ctx.options) {
598
+ return ctx.id ?? readRequiredString(source, "id");
599
+ }
600
+ async function runMcpListAction(ctx) {
601
+ const listOptions = { ...ctx.options };
602
+ if (listOptions.compact === undefined &&
603
+ listOptions.brief === undefined &&
604
+ listOptions.fields === undefined &&
605
+ listOptions.includeBody === undefined) {
606
+ listOptions.compact = true;
607
+ }
608
+ // pm-rmjy: echo applied filters + projection mode so agents get structured confirmation.
609
+ return withQuerySummary((await runList(readString(ctx.args, "status"), listOptions, ctx.global)), listOptions);
610
+ }
611
+ async function runMcpSearchAction(ctx) {
612
+ const searchOptions = { ...ctx.options };
613
+ if (searchOptions.compact === undefined && searchOptions.full === undefined && searchOptions.fields === undefined) {
614
+ searchOptions.compact = true;
615
+ }
616
+ return withQuerySummary((await runSearch(readRequiredString(ctx.args, "query"), searchOptions, ctx.global)), searchOptions);
617
+ }
618
+ async function runMcpCreateAction(ctx) {
619
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
620
+ return projectMutationResult(await runCreate(runnerOptions, ctx.global), { changedFields, idOnly });
621
+ }
622
+ async function runMcpCopyAction(ctx) {
623
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
624
+ const copyOptions = {
625
+ ...runnerOptions,
626
+ ...(runnerOptions.title === undefined && typeof ctx.args.title === "string" ? { title: ctx.args.title } : {}),
627
+ ...(runnerOptions.message === undefined && typeof ctx.args.message === "string" ? { message: ctx.args.message } : {}),
628
+ };
629
+ return projectMutationResult(await runCopy(requireMcpItemId(ctx, copyOptions), copyOptions, ctx.global), {
630
+ changedFields,
631
+ idOnly,
632
+ });
633
+ }
634
+ async function runMcpUpdateAction(ctx) {
635
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
636
+ return projectMutationResult(await runUpdate(requireMcpItemId(ctx, runnerOptions), runnerOptions, ctx.global), {
637
+ changedFields,
638
+ idOnly,
639
+ });
640
+ }
641
+ async function runMcpCloseAction(ctx) {
642
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
643
+ const closeReason = readString(ctx.args, "reason") ??
644
+ readString(ctx.args, "text") ??
645
+ readString(runnerOptions, "reason") ??
646
+ readString(runnerOptions, "text");
647
+ return projectMutationResult(await runClose(requireMcpItemId(ctx, runnerOptions), closeReason, runnerOptions, ctx.global), { changedFields, idOnly });
648
+ }
649
+ function runMcpCommentsAction(ctx) {
650
+ const commentOptions = { ...ctx.options };
651
+ const isListing = commentOptions.add === undefined &&
652
+ commentOptions.stdin === undefined &&
653
+ commentOptions.file === undefined &&
654
+ commentOptions.edit === undefined &&
655
+ commentOptions.delete === undefined;
656
+ if (isListing) {
657
+ commentOptions.includeMeta = true;
658
+ if (commentOptions.limit === undefined && commentOptions.full !== true) {
659
+ commentOptions.limit = "20";
765
660
  }
766
- case "history-compact":
767
- return runHistoryCompact(id ?? readRequiredString(options, "id"), options, global);
768
- case "plan": {
769
- const subcommand = readRequiredString(options, "subcommand");
770
- const planRecord = options;
771
- const reorderToken = planRecord.reorderTo ?? args.reorderTo;
772
- const reorderTo = typeof reorderToken === "number" && Number.isFinite(reorderToken)
773
- ? reorderToken
774
- : typeof reorderToken === "string" && reorderToken.trim().length > 0
775
- ? Number.parseInt(reorderToken, 10)
776
- : undefined;
777
- const stepRef = typeof planRecord.stepRef === "string"
778
- ? planRecord.stepRef
779
- : typeof args.stepRef === "string"
780
- ? args.stepRef
781
- : undefined;
782
- return runPlan({
783
- subcommand: subcommand,
784
- id: typeof id === "string" ? id : typeof planRecord.id === "string" ? planRecord.id : undefined,
785
- stepRef,
786
- reorderTo,
787
- options: options,
788
- global,
789
- });
661
+ }
662
+ delete commentOptions.full;
663
+ return runComments(requireMcpItemId(ctx), commentOptions, ctx.global);
664
+ }
665
+ function runMcpFilesAction(ctx) {
666
+ const fileId = requireMcpItemId(ctx);
667
+ return ctx.options.discover === true
668
+ ? runFilesDiscover(fileId, withFilesDiscoveryOptions(ctx.options), ctx.global)
669
+ : runFiles(fileId, withAddNoteOption(ctx.options), ctx.global);
670
+ }
671
+ function runMcpTelemetryAction(ctx) {
672
+ return runTelemetry({
673
+ subcommand: readString(ctx.args, "subcommand") ?? readString(ctx.options, "subcommand"),
674
+ limit: resolveMcpTelemetryLimit(ctx.args, ctx.options),
675
+ }, ctx.global);
676
+ }
677
+ function resolveMcpTelemetryLimit(args, options) {
678
+ if (typeof args.limit === "number" && Number.isFinite(args.limit)) {
679
+ return args.limit;
680
+ }
681
+ if (typeof options.limit === "number" && Number.isFinite(options.limit)) {
682
+ return options.limit;
683
+ }
684
+ return readString(args, "limit") ?? readString(options, "limit");
685
+ }
686
+ function runMcpHealthAction(ctx) {
687
+ const healthOptions = { ...ctx.options };
688
+ if (healthOptions.brief === undefined && healthOptions.summary === undefined && healthOptions.full === undefined) {
689
+ healthOptions.summary = true;
690
+ }
691
+ return runHealth(ctx.global, healthOptions);
692
+ }
693
+ function runMcpConfigAction(ctx) {
694
+ const configAction = readString(ctx.args, "configAction") ?? readString(ctx.options, "configAction") ?? readString(ctx.options, "action");
695
+ if (configAction === undefined) {
696
+ throw new PmCliError("Missing required argument: configAction", 64);
697
+ }
698
+ return runConfig(readString(ctx.args, "scope") ?? readString(ctx.options, "scope") ?? "project", configAction, readString(ctx.args, "key") ?? readString(ctx.options, "key"), ctx.options, ctx.global, readString(ctx.args, "value") ?? readString(ctx.options, "value"));
699
+ }
700
+ function runMcpActivityAction(ctx) {
701
+ const activityOptions = { ...ctx.options };
702
+ if (activityOptions.compact === undefined) {
703
+ activityOptions.compact = activityOptions.full === true ? false : true;
704
+ }
705
+ delete activityOptions.full;
706
+ return runActivity(activityOptions, ctx.global);
707
+ }
708
+ function runMcpHistoryRepairAction(ctx) {
709
+ const repairAll = ctx.options.all === true;
710
+ const repairId = ctx.id ?? readString(ctx.options, "id");
711
+ assertHistoryRepairTarget(repairId, repairAll);
712
+ return repairAll ? runHistoryRepairAll(ctx.options, ctx.global) : runHistoryRepair(repairId, ctx.options, ctx.global);
713
+ }
714
+ function parseMcpInteger(value, label) {
715
+ if (typeof value === "number") {
716
+ if (!Number.isInteger(value)) {
717
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
790
718
  }
791
- case "schema": {
792
- // subcommand/name are top-level fields in the published action contract,
793
- // so accept them from args first and fall back to options for parity.
794
- const subcommand = readString(args, "subcommand") ?? readRequiredString(options, "subcommand");
795
- const normalizedSubcommand = subcommand.trim().toLowerCase();
796
- const schemaName = readString(args, "name") ?? readString(options, "name");
797
- const schemaAuthor = readString(args, "author") ?? readString(options, "author");
798
- const schemaForce = args.force === true || options.force === true;
799
- if (normalizedSubcommand === "list") {
800
- return runSchemaList(global);
801
- }
802
- if (normalizedSubcommand === "show") {
803
- return runSchemaShow(schemaName, global);
804
- }
805
- if (normalizedSubcommand === "show-status") {
806
- return runSchemaShowStatus(schemaName, global);
807
- }
808
- if (normalizedSubcommand === "list-fields") {
809
- return runSchemaListFields(global);
810
- }
811
- if (normalizedSubcommand === "show-field") {
812
- return runSchemaShowField(schemaName, global);
813
- }
814
- if (normalizedSubcommand === "remove-type") {
815
- return runSchemaRemoveType(schemaName, { author: schemaAuthor, force: schemaForce }, global);
816
- }
817
- if (normalizedSubcommand === "remove-field") {
818
- return runSchemaRemoveField(schemaName, { author: schemaAuthor, force: schemaForce }, global);
819
- }
820
- if (normalizedSubcommand === "apply-preset") {
821
- const presetSource = readString(args, "typePreset") ?? readString(options, "typePreset");
822
- return runSchemaApplyPreset(presetSource, { author: schemaAuthor, force: schemaForce }, global);
823
- }
824
- const aliasSource = args.alias ?? options.alias;
825
- const aliases = aliasSource === undefined ? undefined : readStringArray(aliasSource);
826
- if (normalizedSubcommand === "add-field") {
827
- const commandsSource = args.commands ?? options.commands;
828
- const commands = commandsSource === undefined ? undefined : readStringArray(commandsSource);
829
- const requiredTypesSource = args.requiredTypes ?? options.requiredTypes;
830
- const requiredTypes = requiredTypesSource === undefined ? undefined : readStringArray(requiredTypesSource);
831
- return runSchemaAddField(schemaName, {
832
- type: readString(args, "fieldType") ?? readString(options, "fieldType"),
833
- commands,
834
- description: readString(args, "description") ?? readString(options, "description"),
835
- cliFlag: readString(args, "cliFlag") ?? readString(options, "cliFlag"),
836
- alias: aliases,
837
- required: args.required === true || options.required === true,
838
- requiredOnCreate: args.requiredOnCreate === true || options.requiredOnCreate === true,
839
- // allow_unset defaults true; only an explicit false disables it.
840
- allowUnset: !(args.allowUnset === false || options.allowUnset === false),
841
- requiredTypes,
842
- author: schemaAuthor,
843
- force: schemaForce,
844
- }, global);
845
- }
846
- if (normalizedSubcommand === "add-status") {
847
- const roleSource = args.role ?? options.role;
848
- const roles = roleSource === undefined ? undefined : readStringArray(roleSource);
849
- const orderSource = args.order ?? options.order;
850
- let order;
851
- if (typeof orderSource === "number") {
852
- if (!Number.isInteger(orderSource)) {
853
- throw new PmCliError("schema add-status order must be a finite integer.", 64);
854
- }
855
- order = orderSource;
856
- }
857
- else if (typeof orderSource === "string" && orderSource.trim().length > 0) {
858
- const parsed = Number(orderSource);
859
- if (!Number.isInteger(parsed)) {
860
- throw new PmCliError("schema add-status order must be a finite integer.", 64);
861
- }
862
- order = parsed;
863
- }
864
- return runSchemaAddStatus(schemaName, {
865
- role: roles,
866
- alias: aliases,
867
- description: readString(args, "description") ?? readString(options, "description"),
868
- order,
869
- author: schemaAuthor,
870
- force: schemaForce,
871
- }, global);
872
- }
873
- if (normalizedSubcommand === "remove-status") {
874
- return runSchemaRemoveStatus(schemaName, { author: schemaAuthor, force: schemaForce }, global);
875
- }
876
- if (normalizedSubcommand !== "add-type") {
877
- throw new PmCliError(`Unknown pm schema subcommand "${subcommand}". Allowed: add-type, remove-type, add-status, remove-status, add-field, remove-field, list-fields, show-field, apply-preset, list, show, show-status`, 64);
878
- }
879
- if (args.infer === true || options.infer === true) {
880
- const minCountSource = args.minCount ?? options.minCount;
881
- const minCount = typeof minCountSource === "number"
882
- ? minCountSource
883
- : typeof minCountSource === "string" && minCountSource.trim().length > 0
884
- ? Number(minCountSource)
885
- : undefined;
886
- return runSchemaInferTypes({
887
- minCount,
888
- apply: args.apply === true || options.apply === true,
889
- author: schemaAuthor,
890
- force: schemaForce,
891
- }, global);
892
- }
893
- return runSchemaAddType(schemaName, {
894
- description: readString(args, "description") ?? readString(options, "description"),
895
- defaultStatus: readString(args, "defaultStatus") ??
896
- readString(args, "default_status") ??
897
- readString(options, "defaultStatus") ??
898
- readString(options, "default_status"),
899
- folder: readString(args, "folder") ?? readString(options, "folder"),
900
- alias: aliases,
901
- author: schemaAuthor,
902
- force: schemaForce,
903
- }, global);
719
+ return value;
720
+ }
721
+ if (typeof value === "string" && value.trim().length > 0) {
722
+ const parsed = Number(value);
723
+ if (!Number.isInteger(parsed)) {
724
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
904
725
  }
905
- case "profile": {
906
- // subcommand/name are top-level fields in the published action contract,
907
- // so accept them from args first and fall back to options for parity.
908
- const subcommand = readString(args, "subcommand") ?? readRequiredString(options, "subcommand");
909
- const normalizedSubcommand = subcommand.trim().toLowerCase();
910
- const profileName = readString(args, "name") ?? readString(options, "name");
911
- if (normalizedSubcommand === "list") {
912
- return runProfileList();
913
- }
914
- if (normalizedSubcommand === "show") {
915
- return runProfileShow(profileName);
916
- }
917
- if (normalizedSubcommand === "lint") {
918
- return runProfileLint(profileName);
919
- }
920
- if (normalizedSubcommand === "apply") {
921
- return runProfileApply(profileName, {
922
- dryRun: args.dryRun === true || options.dryRun === true,
923
- author: readString(args, "author") ?? readString(options, "author"),
924
- force: args.force === true || options.force === true,
925
- }, global);
926
- }
927
- throw new PmCliError(`Unknown pm profile subcommand "${subcommand}". Allowed: list, show, apply, lint`, 64);
726
+ return parsed;
727
+ }
728
+ return undefined;
729
+ }
730
+ function parseMcpIntegerPrefix(value, label) {
731
+ if (typeof value === "number") {
732
+ const parsed = Number.parseInt(String(value), 10);
733
+ if (!Number.isInteger(parsed)) {
734
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
928
735
  }
929
- case "stats":
930
- return runStats(global, {
931
- storage: options.storage === true,
932
- metadataCoverage: options.metadataCoverage === true,
933
- fieldUtilization: options.fieldUtilization === true,
934
- byAssignee: options.byAssignee === true,
935
- byTag: options.byTag === true,
936
- byPriority: options.byPriority === true,
937
- tagPrefix: typeof options.tagPrefix === "string" ? options.tagPrefix : undefined,
938
- });
939
- case "append": {
940
- const { changedFields, runnerOptions } = withMutationCompaction(args, options);
941
- return projectMutationResult(await runAppend(id ?? readRequiredString(runnerOptions, "id"), runnerOptions, global), { changedFields });
736
+ return parsed;
737
+ }
738
+ if (typeof value === "string" && value.trim().length > 0) {
739
+ const trimmed = value.trim();
740
+ if (!/^[+-]?\d+(?:st|nd|rd|th)?$/i.test(trimmed)) {
741
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
942
742
  }
943
- case "update-many": {
944
- const { changedFields, runnerOptions } = withMutationCompaction(args, options);
945
- return projectMutationResult(await runUpdateMany(updateManyOptionsFromFlat(runnerOptions), global), { changedFields });
743
+ const parsed = Number.parseInt(trimmed, 10);
744
+ if (!Number.isInteger(parsed)) {
745
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
946
746
  }
947
- case "close-many": {
948
- const { changedFields, runnerOptions } = withMutationCompaction(args, options);
949
- const topLevelReason = readString(args, "reason");
950
- const closeManyRunnerOptions = topLevelReason !== undefined && runnerOptions.reason === undefined
951
- ? { ...runnerOptions, reason: topLevelReason }
952
- : { ...runnerOptions };
953
- if (force && closeManyRunnerOptions.force === undefined) {
954
- closeManyRunnerOptions.force = true;
955
- }
956
- return projectMutationResult(await runCloseMany(closeManyOptionsFromFlat(closeManyRunnerOptions), global), { changedFields });
747
+ return parsed;
748
+ }
749
+ return undefined;
750
+ }
751
+ function runMcpPlanAction(ctx) {
752
+ const subcommand = readRequiredString(ctx.options, "subcommand");
753
+ const planRecord = ctx.options;
754
+ return runPlan({
755
+ subcommand: subcommand,
756
+ id: typeof ctx.id === "string" ? ctx.id : typeof planRecord.id === "string" ? planRecord.id : undefined,
757
+ stepRef: readMcpPlanStepRef(ctx),
758
+ reorderTo: parseMcpIntegerPrefix(planRecord.reorderTo ?? ctx.args.reorderTo, "plan reorderTo"),
759
+ options: ctx.options,
760
+ global: ctx.global,
761
+ });
762
+ }
763
+ function readMcpPlanStepRef(ctx) {
764
+ return typeof ctx.options.stepRef === "string"
765
+ ? ctx.options.stepRef
766
+ : typeof ctx.args.stepRef === "string"
767
+ ? ctx.args.stepRef
768
+ : undefined;
769
+ }
770
+ function createMcpSchemaContext(ctx) {
771
+ const subcommand = readString(ctx.args, "subcommand") ?? readRequiredString(ctx.options, "subcommand");
772
+ const aliasSource = ctx.args.alias ?? ctx.options.alias;
773
+ return {
774
+ ctx,
775
+ subcommand: subcommand.trim().toLowerCase(),
776
+ name: readString(ctx.args, "name") ?? readString(ctx.options, "name"),
777
+ author: readString(ctx.args, "author") ?? readString(ctx.options, "author"),
778
+ force: ctx.args.force === true || ctx.options.force === true,
779
+ aliases: aliasSource === undefined ? undefined : readStringArray(aliasSource),
780
+ };
781
+ }
782
+ function runMcpSchemaReadOrRemoveAction(schema) {
783
+ const { ctx, subcommand, name, author, force } = schema;
784
+ const simpleHandlers = {
785
+ list: () => runSchemaList(ctx.global),
786
+ show: () => runSchemaShow(name, ctx.global),
787
+ "show-status": () => runSchemaShowStatus(name, ctx.global),
788
+ "list-fields": () => runSchemaListFields(ctx.global),
789
+ "show-field": () => runSchemaShowField(name, ctx.global),
790
+ "remove-type": () => runSchemaRemoveType(name, { author, force }, ctx.global),
791
+ "remove-field": () => runSchemaRemoveField(name, { author, force }, ctx.global),
792
+ "remove-status": () => runSchemaRemoveStatus(name, { author, force }, ctx.global),
793
+ "apply-preset": () => runSchemaApplyPreset(readString(ctx.args, "typePreset") ?? readString(ctx.options, "typePreset"), { author, force }, ctx.global),
794
+ };
795
+ const handler = getOwnHandler(simpleHandlers, subcommand);
796
+ return handler ? handler() : null;
797
+ }
798
+ function runMcpSchemaAddFieldAction(schema) {
799
+ const { ctx, name, author, force, aliases } = schema;
800
+ const commandsSource = ctx.args.commands ?? ctx.options.commands;
801
+ const requiredTypesSource = ctx.args.requiredTypes ?? ctx.options.requiredTypes;
802
+ return runSchemaAddField(name, {
803
+ type: readString(ctx.args, "fieldType") ?? readString(ctx.options, "fieldType"),
804
+ commands: commandsSource === undefined ? undefined : readStringArray(commandsSource),
805
+ description: readString(ctx.args, "description") ?? readString(ctx.options, "description"),
806
+ cliFlag: readString(ctx.args, "cliFlag") ?? readString(ctx.options, "cliFlag"),
807
+ alias: aliases,
808
+ required: ctx.args.required === true || ctx.options.required === true,
809
+ requiredOnCreate: ctx.args.requiredOnCreate === true || ctx.options.requiredOnCreate === true,
810
+ allowUnset: !(ctx.args.allowUnset === false || ctx.options.allowUnset === false),
811
+ requiredTypes: requiredTypesSource === undefined ? undefined : readStringArray(requiredTypesSource),
812
+ author,
813
+ force,
814
+ }, ctx.global);
815
+ }
816
+ function runMcpSchemaAddStatusAction(schema) {
817
+ const { ctx, name, author, force, aliases } = schema;
818
+ const roleSource = ctx.args.role ?? ctx.options.role;
819
+ return runSchemaAddStatus(name, {
820
+ role: roleSource === undefined ? undefined : readStringArray(roleSource),
821
+ alias: aliases,
822
+ description: readString(ctx.args, "description") ?? readString(ctx.options, "description"),
823
+ order: parseMcpInteger(ctx.args.order ?? ctx.options.order, "schema add-status order"),
824
+ author,
825
+ force,
826
+ }, ctx.global);
827
+ }
828
+ function runMcpSchemaAddTypeAction(schema) {
829
+ const { ctx, name, author, force, aliases } = schema;
830
+ return runSchemaAddType(name, {
831
+ description: readString(ctx.args, "description") ?? readString(ctx.options, "description"),
832
+ defaultStatus: readString(ctx.args, "defaultStatus") ??
833
+ readString(ctx.args, "default_status") ??
834
+ readString(ctx.options, "defaultStatus") ??
835
+ readString(ctx.options, "default_status"),
836
+ folder: readString(ctx.args, "folder") ?? readString(ctx.options, "folder"),
837
+ alias: aliases,
838
+ author,
839
+ force,
840
+ }, ctx.global);
841
+ }
842
+ function runMcpSchemaAction(ctx) {
843
+ const schema = createMcpSchemaContext(ctx);
844
+ const simpleResult = runMcpSchemaReadOrRemoveAction(schema);
845
+ if (simpleResult !== null) {
846
+ return simpleResult;
847
+ }
848
+ if (schema.subcommand === "add-field") {
849
+ return runMcpSchemaAddFieldAction(schema);
850
+ }
851
+ if (schema.subcommand === "add-status") {
852
+ return runMcpSchemaAddStatusAction(schema);
853
+ }
854
+ if (schema.subcommand === "add-type") {
855
+ if (ctx.args.infer === true || ctx.options.infer === true) {
856
+ return runSchemaInferTypes({
857
+ minCount: parseMcpInteger(ctx.args.minCount ?? ctx.options.minCount, "schema infer minCount"),
858
+ apply: ctx.args.apply === true || ctx.options.apply === true,
859
+ author: schema.author,
860
+ force: schema.force,
861
+ }, ctx.global);
957
862
  }
958
- case "gc":
959
- return runGc(global, options);
960
- default:
961
- return dispatchActiveExtensionAction(action, args, options, global, activeExtensions);
863
+ return runMcpSchemaAddTypeAction(schema);
864
+ }
865
+ throw new PmCliError(`Unknown pm schema subcommand "${schema.subcommand}". Allowed: add-type, remove-type, add-status, remove-status, add-field, remove-field, list-fields, show-field, apply-preset, list, show, show-status`, 64);
866
+ }
867
+ function runMcpProfileAction(ctx) {
868
+ const subcommand = readString(ctx.args, "subcommand") ?? readRequiredString(ctx.options, "subcommand");
869
+ const normalizedSubcommand = subcommand.trim().toLowerCase();
870
+ const profileName = readString(ctx.args, "name") ?? readString(ctx.options, "name");
871
+ const handlers = {
872
+ list: () => runProfileList(),
873
+ show: () => runProfileShow(profileName),
874
+ lint: () => runProfileLint(profileName),
875
+ apply: () => runProfileApply(profileName, {
876
+ dryRun: ctx.args.dryRun === true || ctx.options.dryRun === true,
877
+ author: readString(ctx.args, "author") ?? readString(ctx.options, "author"),
878
+ force: ctx.args.force === true || ctx.options.force === true,
879
+ }, ctx.global),
880
+ };
881
+ const handler = getOwnHandler(handlers, normalizedSubcommand);
882
+ if (!handler) {
883
+ throw new PmCliError(`Unknown pm profile subcommand "${subcommand}". Allowed: list, show, apply, lint`, 64);
962
884
  }
885
+ return handler();
886
+ }
887
+ function runMcpStatsAction(ctx) {
888
+ return runStats(ctx.global, {
889
+ storage: ctx.options.storage === true,
890
+ metadataCoverage: ctx.options.metadataCoverage === true,
891
+ fieldUtilization: ctx.options.fieldUtilization === true,
892
+ byAssignee: ctx.options.byAssignee === true,
893
+ byTag: ctx.options.byTag === true,
894
+ byPriority: ctx.options.byPriority === true,
895
+ tagPrefix: typeof ctx.options.tagPrefix === "string" ? ctx.options.tagPrefix : undefined,
896
+ });
897
+ }
898
+ async function runMcpAppendAction(ctx) {
899
+ const { changedFields, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
900
+ return projectMutationResult(await runAppend(requireMcpItemId(ctx, runnerOptions), runnerOptions, ctx.global), {
901
+ changedFields,
902
+ });
903
+ }
904
+ async function runMcpUpdateManyAction(ctx) {
905
+ const { changedFields, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
906
+ return projectMutationResult(await runUpdateMany(updateManyOptionsFromFlat(runnerOptions), ctx.global), { changedFields });
907
+ }
908
+ async function runMcpCloseManyAction(ctx) {
909
+ const { changedFields, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
910
+ const topLevelReason = readString(ctx.args, "reason");
911
+ const closeManyRunnerOptions = topLevelReason !== undefined && runnerOptions.reason === undefined
912
+ ? { ...runnerOptions, reason: topLevelReason }
913
+ : { ...runnerOptions };
914
+ if (ctx.force && closeManyRunnerOptions.force === undefined) {
915
+ closeManyRunnerOptions.force = true;
916
+ }
917
+ return projectMutationResult(await runCloseMany(closeManyOptionsFromFlat(closeManyRunnerOptions), ctx.global), { changedFields });
918
+ }
919
+ const MCP_ACTION_HANDLERS = {
920
+ init: (ctx) => runInit(readString(ctx.args, "prefix"), ctx.global, ctx.options),
921
+ context: (ctx) => runContext(ctx.options, ctx.global),
922
+ next: (ctx) => runNext(ctx.options, ctx.global),
923
+ list: runMcpListAction,
924
+ get: (ctx) => runGet(requireMcpItemId(ctx), ctx.global, ctx.options),
925
+ search: runMcpSearchAction,
926
+ create: runMcpCreateAction,
927
+ copy: runMcpCopyAction,
928
+ focus: (ctx) => runFocus(ctx.id, { clear: ctx.options.clear === true || ctx.args.clear === true }, ctx.global),
929
+ update: runMcpUpdateAction,
930
+ claim: (ctx) => runClaim(requireMcpItemId(ctx), ctx.force, ctx.global, ctx.options),
931
+ release: (ctx) => runRelease(requireMcpItemId(ctx), ctx.force, ctx.global, ctx.options),
932
+ close: runMcpCloseAction,
933
+ comments: runMcpCommentsAction,
934
+ notes: (ctx) => runNotes(requireMcpItemId(ctx), ctx.options, ctx.global),
935
+ learnings: (ctx) => runLearnings(requireMcpItemId(ctx), ctx.options, ctx.global),
936
+ files: runMcpFilesAction,
937
+ docs: (ctx) => runDocs(requireMcpItemId(ctx), withAddNoteOption(ctx.options), ctx.global),
938
+ test: (ctx) => runTest(requireMcpItemId(ctx), ctx.options, ctx.global),
939
+ "test-all": (ctx) => runTestAll(ctx.options, ctx.global),
940
+ telemetry: runMcpTelemetryAction,
941
+ validate: (ctx) => runValidate(ctx.options, ctx.global),
942
+ health: runMcpHealthAction,
943
+ contracts: (ctx) => runContracts(ctx.options, ctx.global),
944
+ config: runMcpConfigAction,
945
+ activity: runMcpActivityAction,
946
+ aggregate: (ctx) => runAggregate(ctx.options, ctx.global),
947
+ extension: (ctx) => runExtension(readMcpTarget(ctx), ctx.options, ctx.global),
948
+ "extension-reload": (ctx) => runExtension(undefined, { ...ctx.options, reload: true }, ctx.global),
949
+ package: (ctx) => runExtension(readMcpTarget(ctx), ctx.options, ctx.global),
950
+ "package-install": (ctx) => runExtension(readMcpTarget(ctx), { ...ctx.options, install: true }, ctx.global),
951
+ install: (ctx) => runExtension(readMcpTarget(ctx), { ...ctx.options, install: true }, ctx.global),
952
+ "package-catalog": (ctx) => runExtension(undefined, { ...ctx.options, catalog: true, vocabulary: "package" }, ctx.global),
953
+ upgrade: (ctx) => runUpgrade(readMcpTarget(ctx), ctx.options, ctx.global),
954
+ delete: (ctx) => runDelete(requireMcpItemId(ctx), ctx.options, ctx.global),
955
+ deps: (ctx) => runDeps(requireMcpItemId(ctx), ctx.options, ctx.global),
956
+ "files-discover": (ctx) => runFilesDiscover(requireMcpItemId(ctx), ctx.options, ctx.global),
957
+ history: (ctx) => runHistory(requireMcpItemId(ctx), ctx.options, ctx.global),
958
+ "history-redact": (ctx) => runHistoryRedact(requireMcpItemId(ctx), ctx.options, ctx.global),
959
+ "history-repair": runMcpHistoryRepairAction,
960
+ "history-compact": (ctx) => runHistoryCompact(requireMcpItemId(ctx), ctx.options, ctx.global),
961
+ plan: runMcpPlanAction,
962
+ schema: runMcpSchemaAction,
963
+ profile: runMcpProfileAction,
964
+ stats: runMcpStatsAction,
965
+ append: runMcpAppendAction,
966
+ "update-many": runMcpUpdateManyAction,
967
+ "close-many": runMcpCloseManyAction,
968
+ gc: (ctx) => runGc(ctx.global, ctx.options),
969
+ };
970
+ async function dispatchAction(action, args, global, activeExtensions) {
971
+ const options = optionsWithAuthor(args, action);
972
+ const ctx = {
973
+ action,
974
+ args,
975
+ options,
976
+ id: readString(args, "id"),
977
+ force: args.force === true,
978
+ global,
979
+ activeExtensions,
980
+ };
981
+ const handler = getOwnHandler(MCP_ACTION_HANDLERS, action);
982
+ return handler ? handler(ctx) : dispatchActiveExtensionAction(action, args, options, global, activeExtensions);
963
983
  }
964
984
  const HANDLERS = {
965
985
  pm_run: (args) => runAction(args),
@@ -1053,7 +1073,7 @@ export async function handleRequest(request) {
1053
1073
  if (request.method === "tools/call") {
1054
1074
  const params = asRecordClone(request.params);
1055
1075
  const name = readRequiredString(params, "name");
1056
- const handler = HANDLERS[name];
1076
+ const handler = getOwnHandler(HANDLERS, name);
1057
1077
  if (!handler) {
1058
1078
  throw new PmCliError(`Unknown pm MCP tool: ${name}`, 64);
1059
1079
  }
@@ -1193,4 +1213,4 @@ if (isInvokedAsMcpMainModule(process.argv[1], import.meta.url)) {
1193
1213
  }
1194
1214
  /* c8 ignore stop */
1195
1215
  //# sourceMappingURL=server.js.map
1196
- //# debugId=4921fdeb-d146-5458-bf25-02e9e7c091c0
1216
+ //# debugId=28140feb-d035-55d6-bd6a-d90ed2c41f26