@unbrained/pm-cli 2026.6.24 → 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 (744) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +113 -1
  3. package/CONTRIBUTING.md +30 -0
  4. package/README.md +16 -3
  5. package/dist/cli/bootstrap-args.js +89 -79
  6. package/dist/cli/bootstrap-args.js.map +1 -1
  7. package/dist/cli/commander-usage.js +3 -3
  8. package/dist/cli/commander-usage.js.map +1 -1
  9. package/dist/cli/commands/aggregate.js +8 -7
  10. package/dist/cli/commands/aggregate.js.map +1 -1
  11. package/dist/cli/commands/calendar.js +63 -62
  12. package/dist/cli/commands/calendar.js.map +1 -1
  13. package/dist/cli/commands/close.d.ts +2 -4
  14. package/dist/cli/commands/close.js +5 -17
  15. package/dist/cli/commands/close.js.map +1 -1
  16. package/dist/cli/commands/completion.js +158 -9
  17. package/dist/cli/commands/completion.js.map +1 -1
  18. package/dist/cli/commands/config.d.ts +1 -1
  19. package/dist/cli/commands/config.js +2 -2
  20. package/dist/cli/commands/config.js.map +1 -1
  21. package/dist/cli/commands/context.d.ts +31 -4
  22. package/dist/cli/commands/context.js +33 -10
  23. package/dist/cli/commands/context.js.map +1 -1
  24. package/dist/cli/commands/contracts.js +48 -8
  25. package/dist/cli/commands/contracts.js.map +1 -1
  26. package/dist/cli/commands/create.d.ts +1 -6
  27. package/dist/cli/commands/create.js +491 -587
  28. package/dist/cli/commands/create.js.map +1 -1
  29. package/dist/cli/commands/extension/bundled-catalog.js +59 -46
  30. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  31. package/dist/cli/commands/extension/describe.d.ts +15 -0
  32. package/dist/cli/commands/extension/describe.js +48 -2
  33. package/dist/cli/commands/extension/describe.js.map +1 -1
  34. package/dist/cli/commands/extension/doctor.js +129 -75
  35. package/dist/cli/commands/extension/doctor.js.map +1 -1
  36. package/dist/cli/commands/extension/install-sources.js +37 -7
  37. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  38. package/dist/cli/commands/extension/managed-state.js +101 -57
  39. package/dist/cli/commands/extension/managed-state.js.map +1 -1
  40. package/dist/cli/commands/extension/scaffold.d.ts +38 -8
  41. package/dist/cli/commands/extension/scaffold.js +1956 -242
  42. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  43. package/dist/cli/commands/extension.d.ts +28 -3
  44. package/dist/cli/commands/extension.js +1181 -880
  45. package/dist/cli/commands/extension.js.map +1 -1
  46. package/dist/cli/commands/index.d.ts +3 -1
  47. package/dist/cli/commands/index.js +5 -3
  48. package/dist/cli/commands/index.js.map +1 -1
  49. package/dist/cli/commands/item-filter-options.d.ts +63 -0
  50. package/dist/cli/commands/item-filter-options.js +10 -0
  51. package/dist/cli/commands/item-filter-options.js.map +1 -0
  52. package/dist/cli/commands/legacy-none-tokens.d.ts +14 -0
  53. package/dist/cli/commands/legacy-none-tokens.js +31 -2
  54. package/dist/cli/commands/legacy-none-tokens.js.map +1 -1
  55. package/dist/cli/commands/linked-artifacts.d.ts +7 -0
  56. package/dist/cli/commands/linked-artifacts.js +12 -2
  57. package/dist/cli/commands/linked-artifacts.js.map +1 -1
  58. package/dist/cli/commands/list-filter-shared.js +55 -48
  59. package/dist/cli/commands/list-filter-shared.js.map +1 -1
  60. package/dist/cli/commands/list.d.ts +16 -39
  61. package/dist/cli/commands/list.js +127 -118
  62. package/dist/cli/commands/list.js.map +1 -1
  63. package/dist/cli/commands/next.d.ts +98 -0
  64. package/dist/cli/commands/next.js +304 -0
  65. package/dist/cli/commands/next.js.map +1 -0
  66. package/dist/cli/commands/profile.d.ts +208 -0
  67. package/dist/cli/commands/profile.js +418 -0
  68. package/dist/cli/commands/profile.js.map +1 -0
  69. package/dist/cli/commands/repeatable-metadata-parsers.js +12 -13
  70. package/dist/cli/commands/repeatable-metadata-parsers.js.map +1 -1
  71. package/dist/cli/commands/schema.d.ts +7 -0
  72. package/dist/cli/commands/schema.js +9 -3
  73. package/dist/cli/commands/schema.js.map +1 -1
  74. package/dist/cli/commands/search.d.ts +2 -39
  75. package/dist/cli/commands/search.js +196 -172
  76. package/dist/cli/commands/search.js.map +1 -1
  77. package/dist/cli/commands/shared-unset-fields.d.ts +30 -0
  78. package/dist/cli/commands/shared-unset-fields.js +161 -0
  79. package/dist/cli/commands/shared-unset-fields.js.map +1 -0
  80. package/dist/cli/commands/stats.js +15 -3
  81. package/dist/cli/commands/stats.js.map +1 -1
  82. package/dist/cli/commands/test.js +115 -125
  83. package/dist/cli/commands/test.js.map +1 -1
  84. package/dist/cli/commands/update.d.ts +1 -6
  85. package/dist/cli/commands/update.js +37 -232
  86. package/dist/cli/commands/update.js.map +1 -1
  87. package/dist/cli/commands/validate.js +20 -5
  88. package/dist/cli/commands/validate.js.map +1 -1
  89. package/dist/cli/extension-command-options.js +48 -21
  90. package/dist/cli/extension-command-options.js.map +1 -1
  91. package/dist/cli/help-content.js +26 -2
  92. package/dist/cli/help-content.js.map +1 -1
  93. package/dist/cli/help-json-payload.js +3 -3
  94. package/dist/cli/help-json-payload.js.map +1 -1
  95. package/dist/cli/main.js +27 -12
  96. package/dist/cli/main.js.map +1 -1
  97. package/dist/cli/register-list-query.js +42 -3
  98. package/dist/cli/register-list-query.js.map +1 -1
  99. package/dist/cli/register-mutation.js +86 -2
  100. package/dist/cli/register-mutation.js.map +1 -1
  101. package/dist/cli/register-setup.js +67 -6
  102. package/dist/cli/register-setup.js.map +1 -1
  103. package/dist/cli/registration-helpers.d.ts +9 -1
  104. package/dist/cli/registration-helpers.js +149 -123
  105. package/dist/cli/registration-helpers.js.map +1 -1
  106. package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +16 -0
  107. package/dist/cli-bundle/chunks/{activity-N7RVTLBQ.js → activity-DBLQVIP6.js} +9 -11
  108. package/dist/cli-bundle/chunks/{aggregate-63NWNIBR.js → aggregate-JTEF4BP7.js} +17 -18
  109. package/dist/cli-bundle/chunks/aggregate-JTEF4BP7.js.map +1 -0
  110. package/dist/cli-bundle/chunks/{aggregate-YHCYX2EV.js → aggregate-SDF7DUOD.js} +16 -17
  111. package/dist/cli-bundle/chunks/aggregate-SDF7DUOD.js.map +7 -0
  112. package/dist/cli-bundle/chunks/{append-VLQQDHMJ.js → append-LOVPGVPT.js} +8 -10
  113. package/dist/cli-bundle/chunks/{append-VLQQDHMJ.js.map → append-LOVPGVPT.js.map} +1 -1
  114. package/dist/cli-bundle/chunks/{append-PUKREFV5.js → append-QCFJSDFL.js} +10 -12
  115. package/dist/cli-bundle/chunks/{append-PUKREFV5.js.map → append-QCFJSDFL.js.map} +1 -1
  116. package/dist/cli-bundle/chunks/{chunk-ABYCA5VX.js → chunk-22WKIL3H.js} +9 -11
  117. package/dist/cli-bundle/chunks/{chunk-ABYCA5VX.js.map → chunk-22WKIL3H.js.map} +1 -1
  118. package/dist/cli-bundle/chunks/{chunk-A66VYUOV.js → chunk-2466X6E4.js} +9 -11
  119. package/dist/cli-bundle/chunks/{chunk-A66VYUOV.js.map → chunk-2466X6E4.js.map} +1 -1
  120. package/dist/cli-bundle/chunks/{chunk-F32L4HR6.js → chunk-27BXPBAY.js} +3 -3
  121. package/dist/cli-bundle/chunks/{schema-QO5I4FBL.js → chunk-2D4HATP2.js} +136 -66
  122. package/dist/cli-bundle/chunks/chunk-2D4HATP2.js.map +1 -0
  123. package/dist/cli-bundle/chunks/{chunk-J7I4C5ZB.js → chunk-3J6JRJ3I.js} +153 -125
  124. package/dist/cli-bundle/chunks/chunk-3J6JRJ3I.js.map +7 -0
  125. package/dist/cli-bundle/chunks/{chunk-OHDQNKJB.js → chunk-3K2M5OYU.js} +106 -34
  126. package/dist/cli-bundle/chunks/chunk-3K2M5OYU.js.map +7 -0
  127. package/dist/cli-bundle/chunks/{chunk-XVYKWZNL.js → chunk-3S2KT7NG.js} +127 -127
  128. package/dist/cli-bundle/chunks/chunk-3S2KT7NG.js.map +7 -0
  129. package/dist/cli-bundle/chunks/{chunk-5BBEWX6C.js → chunk-3VGN2UWE.js} +2 -2
  130. package/dist/cli-bundle/chunks/{chunk-N5B6WZC5.js → chunk-3XZCOZ5J.js} +115 -123
  131. package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +1 -0
  132. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js +799 -0
  133. package/dist/cli-bundle/chunks/chunk-4A3BJ675.js.map +1 -0
  134. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +87 -0
  135. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-HZF5RLKX.js → chunk-4DSGXSBL.js} +5 -7
  137. package/dist/cli-bundle/chunks/{chunk-HZF5RLKX.js.map → chunk-4DSGXSBL.js.map} +1 -1
  138. package/dist/cli-bundle/chunks/{chunk-JV27C7OZ.js → chunk-4DUVCVLZ.js} +4 -6
  139. package/dist/cli-bundle/chunks/{chunk-JV27C7OZ.js.map → chunk-4DUVCVLZ.js.map} +1 -1
  140. package/dist/cli-bundle/chunks/{chunk-IAP5KYBQ.js → chunk-4XOIEKSD.js} +563 -506
  141. package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +1 -0
  142. package/dist/cli-bundle/chunks/{context-5LB7UGKE.js → chunk-55SNVXRQ.js} +79 -82
  143. package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +7 -0
  144. package/dist/cli-bundle/chunks/{chunk-BFFO3AIB.js → chunk-5CGRF3L5.js} +128 -128
  145. package/dist/cli-bundle/chunks/chunk-5CGRF3L5.js.map +1 -0
  146. package/dist/cli-bundle/chunks/{chunk-JKL6HRMV.js → chunk-5QFDBI4F.js} +1260 -1046
  147. package/dist/cli-bundle/chunks/chunk-5QFDBI4F.js.map +7 -0
  148. package/dist/cli-bundle/chunks/{chunk-LU36E6GU.js → chunk-64HNBBFQ.js} +8 -12
  149. package/dist/cli-bundle/chunks/{chunk-LU36E6GU.js.map → chunk-64HNBBFQ.js.map} +1 -1
  150. package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js +2444 -0
  151. package/dist/cli-bundle/chunks/chunk-6AQZPVHQ.js.map +1 -0
  152. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js +17 -0
  153. package/dist/cli-bundle/chunks/chunk-7M2HAZEB.js.map +7 -0
  154. package/dist/cli-bundle/chunks/{chunk-VSAABFGQ.js → chunk-7R4QEMZZ.js} +1490 -734
  155. package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +1 -0
  156. package/dist/cli-bundle/chunks/{chunk-M6TUBOGW.js → chunk-A7FPBAQS.js} +19 -12
  157. package/dist/cli-bundle/chunks/chunk-A7FPBAQS.js.map +1 -0
  158. package/dist/cli-bundle/chunks/{chunk-GQYJEEFX.js → chunk-AVEE5EHK.js} +53 -54
  159. package/dist/cli-bundle/chunks/chunk-AVEE5EHK.js.map +1 -0
  160. package/dist/cli-bundle/chunks/{chunk-FMWW2JDU.js → chunk-AXIDKKAT.js} +2 -2
  161. package/dist/cli-bundle/chunks/{chunk-TIM4OD74.js → chunk-BDTISOSD.js} +2 -2
  162. package/dist/cli-bundle/chunks/{chunk-C4C3EJCJ.js → chunk-BHO33VBQ.js} +509 -363
  163. package/dist/cli-bundle/chunks/chunk-BHO33VBQ.js.map +7 -0
  164. package/dist/cli-bundle/chunks/{chunk-6W3Y65PL.js → chunk-BZCEN4JA.js} +198 -177
  165. package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +7 -0
  166. package/dist/cli-bundle/chunks/{chunk-RRP6D345.js → chunk-CF7RL6FR.js} +12 -16
  167. package/dist/cli-bundle/chunks/{chunk-RRP6D345.js.map → chunk-CF7RL6FR.js.map} +1 -1
  168. package/dist/cli-bundle/chunks/{chunk-HC2S36NB.js → chunk-CWFNTKQJ.js} +154 -126
  169. package/dist/cli-bundle/chunks/chunk-CWFNTKQJ.js.map +1 -0
  170. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js +87 -0
  171. package/dist/cli-bundle/chunks/chunk-CZVISY5A.js.map +7 -0
  172. package/dist/cli-bundle/chunks/{chunk-CZIFFMZI.js → chunk-DDPTYJIM.js} +2 -2
  173. package/dist/cli-bundle/chunks/{chunk-AYPQUFCX.js → chunk-EJUDVUYZ.js} +3 -3
  174. package/dist/cli-bundle/chunks/{chunk-EOGBMLCE.js → chunk-EVMTBV6V.js} +3 -3
  175. package/dist/cli-bundle/chunks/{chunk-RAWA3Y7O.js → chunk-FFMQB7WR.js} +199 -178
  176. package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +1 -0
  177. package/dist/cli-bundle/chunks/{chunk-CG3KP6I5.js → chunk-G7I7DEZA.js} +4 -4
  178. package/dist/cli-bundle/chunks/{chunk-MEXZ5XUM.js → chunk-GJ326ZKX.js} +53 -54
  179. package/dist/cli-bundle/chunks/chunk-GJ326ZKX.js.map +7 -0
  180. package/dist/cli-bundle/chunks/chunk-HPPFYYOV.js +119 -0
  181. package/dist/cli-bundle/chunks/chunk-HPPFYYOV.js.map +7 -0
  182. package/dist/cli-bundle/chunks/{chunk-OF7V47P3.js → chunk-HXTQJXWT.js} +2172 -2146
  183. package/dist/cli-bundle/chunks/chunk-HXTQJXWT.js.map +1 -0
  184. package/dist/cli-bundle/chunks/{chunk-F4BNR2IN.js → chunk-HYTGA6GI.js} +3 -3
  185. package/dist/cli-bundle/chunks/{chunk-2WCYE3IF.js → chunk-HZZEHPRG.js} +2 -2
  186. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js +14 -0
  187. package/dist/cli-bundle/chunks/chunk-IBMFIKVS.js.map +1 -0
  188. package/dist/cli-bundle/chunks/{chunk-YV2OSAMS.js → chunk-IJYK2T43.js} +2 -2
  189. package/dist/cli-bundle/chunks/{chunk-4XDGYFHL.js → chunk-IPYBJWTE.js} +10 -14
  190. package/dist/cli-bundle/chunks/{chunk-4XDGYFHL.js.map → chunk-IPYBJWTE.js.map} +1 -1
  191. package/dist/cli-bundle/chunks/{chunk-6EBNFQOR.js → chunk-IZBR4NRW.js} +10 -14
  192. package/dist/cli-bundle/chunks/{chunk-6EBNFQOR.js.map → chunk-IZBR4NRW.js.map} +1 -1
  193. package/dist/cli-bundle/chunks/{chunk-VFJYVXHL.js → chunk-JLM7BHI7.js} +7 -9
  194. package/dist/cli-bundle/chunks/{chunk-VFJYVXHL.js.map → chunk-JLM7BHI7.js.map} +1 -1
  195. package/dist/cli-bundle/chunks/{chunk-6EL7SW5C.js → chunk-JMP4E6D7.js} +114 -122
  196. package/dist/cli-bundle/chunks/chunk-JMP4E6D7.js.map +7 -0
  197. package/dist/cli-bundle/chunks/{chunk-QOUOMPHO.js → chunk-JPECA746.js} +2 -2
  198. package/dist/cli-bundle/chunks/{chunk-KJZOSF7J.js → chunk-JSU5P7VS.js} +100 -35
  199. package/dist/cli-bundle/chunks/chunk-JSU5P7VS.js.map +1 -0
  200. package/dist/cli-bundle/chunks/{context-55VEOYI3.js → chunk-JWXRETDF.js} +79 -82
  201. package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +1 -0
  202. package/dist/cli-bundle/chunks/{chunk-OQ2E64FH.js → chunk-KNPEF7QG.js} +4 -4
  203. package/dist/cli-bundle/chunks/{chunk-3BKH2CL3.js → chunk-L5OEFZQG.js} +3 -3
  204. package/dist/cli-bundle/chunks/{chunk-DTABLLVE.js → chunk-LB6TP6MC.js} +5 -7
  205. package/dist/cli-bundle/chunks/{chunk-DTABLLVE.js.map → chunk-LB6TP6MC.js.map} +2 -2
  206. package/dist/cli-bundle/chunks/{chunk-TSI32UEL.js → chunk-MAUKX7JC.js} +6 -8
  207. package/dist/cli-bundle/chunks/{chunk-TSI32UEL.js.map → chunk-MAUKX7JC.js.map} +1 -1
  208. package/dist/cli-bundle/chunks/{chunk-SMXSDY7J.js → chunk-MDPEOIGN.js} +2221 -2172
  209. package/dist/cli-bundle/chunks/chunk-MDPEOIGN.js.map +7 -0
  210. package/dist/cli-bundle/chunks/{chunk-5S4ZGDB2.js → chunk-N74UMG5H.js} +2 -2
  211. package/dist/cli-bundle/chunks/{chunk-IXAZI443.js → chunk-NFDPYAIP.js} +2 -2
  212. package/dist/cli-bundle/chunks/{chunk-SKC4UTRP.js → chunk-NKZAN7BD.js} +3 -3
  213. package/dist/cli-bundle/chunks/chunk-NOLPZMSV.js +116 -0
  214. package/dist/cli-bundle/chunks/chunk-NOLPZMSV.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{chunk-L7UXKP2I.js → chunk-NU2UEROZ.js} +1257 -1029
  216. package/dist/cli-bundle/chunks/chunk-NU2UEROZ.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-HBAEFWX3.js → chunk-NUHHPVVS.js} +65 -335
  218. package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +7 -0
  219. package/dist/cli-bundle/chunks/{chunk-JPJDP4VU.js → chunk-NWMZWYYB.js} +2 -2
  220. package/dist/cli-bundle/chunks/{chunk-MWMHZOZZ.js → chunk-OGXLACHC.js} +10 -14
  221. package/dist/cli-bundle/chunks/{chunk-MWMHZOZZ.js.map → chunk-OGXLACHC.js.map} +1 -1
  222. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js +379 -0
  223. package/dist/cli-bundle/chunks/chunk-OKQ22KTH.js.map +1 -0
  224. package/dist/cli-bundle/chunks/{chunk-KKX4Z2SE.js → chunk-OTUHB4HS.js} +4 -4
  225. package/dist/cli-bundle/chunks/{chunk-ZLWRPBOW.js → chunk-QCWF6IYD.js} +510 -364
  226. package/dist/cli-bundle/chunks/chunk-QCWF6IYD.js.map +1 -0
  227. package/dist/cli-bundle/chunks/{chunk-PRVTGX64.js → chunk-RGEMWD6Q.js} +11 -23
  228. package/dist/cli-bundle/chunks/chunk-RGEMWD6Q.js.map +7 -0
  229. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js +809 -0
  230. package/dist/cli-bundle/chunks/chunk-RH5ZBYFD.js.map +7 -0
  231. package/dist/cli-bundle/chunks/{chunk-ALQKV6U7.js → chunk-RLDHZHQS.js} +12 -16
  232. package/dist/cli-bundle/chunks/{chunk-ALQKV6U7.js.map → chunk-RLDHZHQS.js.map} +1 -1
  233. package/dist/cli-bundle/chunks/{schema-C6QA367T.js → chunk-RMMQ74TG.js} +144 -67
  234. package/dist/cli-bundle/chunks/chunk-RMMQ74TG.js.map +7 -0
  235. package/dist/cli-bundle/chunks/{chunk-EYPINTFR.js → chunk-RVUALSJF.js} +1516 -753
  236. package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +7 -0
  237. package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js +2468 -0
  238. package/dist/cli-bundle/chunks/chunk-SDR5J34Q.js.map +7 -0
  239. package/dist/cli-bundle/chunks/{chunk-WB5BYQMF.js → chunk-SLMUGTK3.js} +4 -4
  240. package/dist/cli-bundle/chunks/{chunk-SUREE24M.js → chunk-TP5Q5ZD3.js} +12 -24
  241. package/dist/cli-bundle/chunks/chunk-TP5Q5ZD3.js.map +1 -0
  242. package/dist/cli-bundle/chunks/{chunk-UACWNBL2.js → chunk-UYUYDGIB.js} +7 -9
  243. package/dist/cli-bundle/chunks/{chunk-UACWNBL2.js.map → chunk-UYUYDGIB.js.map} +1 -1
  244. package/dist/cli-bundle/chunks/{chunk-V4UYNSEM.js → chunk-UZIWVBE6.js} +6 -8
  245. package/dist/cli-bundle/chunks/{chunk-V4UYNSEM.js.map → chunk-UZIWVBE6.js.map} +1 -1
  246. package/dist/cli-bundle/chunks/{chunk-EWRSXOIZ.js → chunk-V3NOKJF2.js} +11 -13
  247. package/dist/cli-bundle/chunks/{chunk-EWRSXOIZ.js.map → chunk-V3NOKJF2.js.map} +1 -1
  248. package/dist/cli-bundle/chunks/{chunk-XXKV4UWE.js → chunk-VARHOHYV.js} +571 -507
  249. package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +7 -0
  250. package/dist/cli-bundle/chunks/{chunk-AEACLRVH.js → chunk-VICZWYGZ.js} +18 -11
  251. package/dist/cli-bundle/chunks/chunk-VICZWYGZ.js.map +7 -0
  252. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +84 -0
  253. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +1 -0
  254. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js +382 -0
  255. package/dist/cli-bundle/chunks/chunk-VZDBVEZR.js.map +7 -0
  256. package/dist/cli-bundle/chunks/{chunk-GDUMGZK3.js → chunk-W4ULYO7Z.js} +11 -13
  257. package/dist/cli-bundle/chunks/{chunk-GDUMGZK3.js.map → chunk-W4ULYO7Z.js.map} +1 -1
  258. package/dist/cli-bundle/chunks/{chunk-I6QMJ2XT.js → chunk-WYDHYJPO.js} +2 -2
  259. package/dist/cli-bundle/chunks/{chunk-ALKFCIIB.js → chunk-YITK2PJ6.js} +9 -11
  260. package/dist/cli-bundle/chunks/{chunk-ALKFCIIB.js.map → chunk-YITK2PJ6.js.map} +1 -1
  261. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js +84 -0
  262. package/dist/cli-bundle/chunks/chunk-YJIEJRZB.js.map +1 -0
  263. package/dist/cli-bundle/chunks/{chunk-LNEDHJNQ.js → chunk-ZETXE4SE.js} +66 -329
  264. package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +1 -0
  265. package/dist/cli-bundle/chunks/{chunk-KIEAK7YE.js → chunk-ZRP4VG5U.js} +2 -2
  266. package/dist/cli-bundle/chunks/{claim-FZZZCAY6.js → claim-EMQLYPRW.js} +10 -12
  267. package/dist/cli-bundle/chunks/{claim-FZZZCAY6.js.map → claim-EMQLYPRW.js.map} +1 -1
  268. package/dist/cli-bundle/chunks/{claim-XK5QBZE3.js → claim-T3GCKV7C.js} +8 -10
  269. package/dist/cli-bundle/chunks/{claim-XK5QBZE3.js.map → claim-T3GCKV7C.js.map} +1 -1
  270. package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +14 -0
  271. package/dist/cli-bundle/chunks/{close-QHMVWM7M.js → close-TQYAAFJP.js} +7 -8
  272. package/dist/cli-bundle/chunks/{close-many-OIXJE2JZ.js → close-many-BG5QQIDQ.js} +16 -18
  273. package/dist/cli-bundle/chunks/{close-many-OIXJE2JZ.js.map → close-many-BG5QQIDQ.js.map} +1 -1
  274. package/dist/cli-bundle/chunks/{close-many-SUU5BS2C.js → close-many-LDRVEQY2.js} +18 -20
  275. package/dist/cli-bundle/chunks/{close-many-SUU5BS2C.js.map → close-many-LDRVEQY2.js.map} +1 -1
  276. package/dist/cli-bundle/chunks/{comments-5YM62D75.js → comments-QCKR2YY2.js} +11 -13
  277. package/dist/cli-bundle/chunks/{comments-5YM62D75.js.map → comments-QCKR2YY2.js.map} +1 -1
  278. package/dist/cli-bundle/chunks/{comments-RH3IBIRH.js → comments-YUXJRZPQ.js} +9 -11
  279. package/dist/cli-bundle/chunks/{comments-RH3IBIRH.js.map → comments-YUXJRZPQ.js.map} +1 -1
  280. package/dist/cli-bundle/chunks/{config-NCNNWF6R.js → config-DMSU64QO.js} +18 -387
  281. package/dist/cli-bundle/chunks/config-DMSU64QO.js.map +7 -0
  282. package/dist/cli-bundle/chunks/{config-SW3U7XP2.js → config-QH2DICD6.js} +18 -380
  283. package/dist/cli-bundle/chunks/config-QH2DICD6.js.map +1 -0
  284. package/dist/cli-bundle/chunks/context-B6275WPX.js +46 -0
  285. package/dist/cli-bundle/chunks/context-OCZ3FJ4Z.js +42 -0
  286. package/dist/cli-bundle/chunks/{contracts-SY6PDFIK.js → contracts-HN7ABKLP.js} +72 -15
  287. package/dist/cli-bundle/chunks/contracts-HN7ABKLP.js.map +7 -0
  288. package/dist/cli-bundle/chunks/{contracts-JXFGBOYT.js → contracts-W4FZVVD6.js} +72 -15
  289. package/dist/cli-bundle/chunks/contracts-W4FZVVD6.js.map +1 -0
  290. package/dist/cli-bundle/chunks/{copy-N3GE6FYS.js → copy-BTJOSKKT.js} +7 -11
  291. package/dist/cli-bundle/chunks/{copy-N3GE6FYS.js.map → copy-BTJOSKKT.js.map} +1 -1
  292. package/dist/cli-bundle/chunks/{copy-IEDBJOOX.js → copy-DEM4DATS.js} +9 -13
  293. package/dist/cli-bundle/chunks/{copy-IEDBJOOX.js.map → copy-DEM4DATS.js.map} +1 -1
  294. package/dist/cli-bundle/chunks/create-OH3BDGBB.js +28 -0
  295. package/dist/cli-bundle/chunks/{create-O4VONGPG.js → create-RLRJMRTM.js} +12 -14
  296. package/dist/cli-bundle/chunks/{delete-LPEIF7RU.js → delete-BHK7VB2Z.js} +5 -7
  297. package/dist/cli-bundle/chunks/{delete-LPEIF7RU.js.map → delete-BHK7VB2Z.js.map} +1 -1
  298. package/dist/cli-bundle/chunks/{delete-724EQ6OS.js → delete-LSVHAB4Y.js} +7 -9
  299. package/dist/cli-bundle/chunks/{delete-724EQ6OS.js.map → delete-LSVHAB4Y.js.map} +1 -1
  300. package/dist/cli-bundle/chunks/{deps-RSBU4SIU.js → deps-4UDFJRUA.js} +8 -11
  301. package/dist/cli-bundle/chunks/{deps-RSBU4SIU.js.map → deps-4UDFJRUA.js.map} +1 -1
  302. package/dist/cli-bundle/chunks/{deps-T3Y6Y7RT.js → deps-XHYXWEPT.js} +6 -9
  303. package/dist/cli-bundle/chunks/{deps-T3Y6Y7RT.js.map → deps-XHYXWEPT.js.map} +1 -1
  304. package/dist/cli-bundle/chunks/{docs-IFS7HZPP.js → docs-26S44RXU.js} +8 -9
  305. package/dist/cli-bundle/chunks/{docs-IFS7HZPP.js.map → docs-26S44RXU.js.map} +1 -1
  306. package/dist/cli-bundle/chunks/{docs-75ZLCO3G.js → docs-GYZNVS26.js} +10 -11
  307. package/dist/cli-bundle/chunks/{docs-75ZLCO3G.js.map → docs-GYZNVS26.js.map} +1 -1
  308. package/dist/cli-bundle/chunks/{eval-L2KD7W3M.js → eval-PGRVIJQU.js} +12 -14
  309. package/dist/cli-bundle/chunks/{eval-L2KD7W3M.js.map → eval-PGRVIJQU.js.map} +1 -1
  310. package/dist/cli-bundle/chunks/{eval-QGR7JCQO.js → eval-UYF3ZPVO.js} +10 -12
  311. package/dist/cli-bundle/chunks/{eval-QGR7JCQO.js.map → eval-UYF3ZPVO.js.map} +1 -1
  312. package/dist/cli-bundle/chunks/{extension-YQF4CPIR.js → extension-CPSLJQVE.js} +12 -7
  313. package/dist/cli-bundle/chunks/{extension-3JYWJ5K2.js → extension-CXJ6RELI.js} +12 -7
  314. package/dist/cli-bundle/chunks/{files-EPEJMJHQ.js → files-MBNICQFM.js} +9 -11
  315. package/dist/cli-bundle/chunks/{files-EPEJMJHQ.js.map → files-MBNICQFM.js.map} +1 -1
  316. package/dist/cli-bundle/chunks/{files-5BQWDRDT.js → files-NQHEXUZD.js} +11 -13
  317. package/dist/cli-bundle/chunks/{files-5BQWDRDT.js.map → files-NQHEXUZD.js.map} +1 -1
  318. package/dist/cli-bundle/chunks/{focus-RWGKD76E.js → focus-DWYIG7GU.js} +10 -14
  319. package/dist/cli-bundle/chunks/{focus-RWGKD76E.js.map → focus-DWYIG7GU.js.map} +1 -1
  320. package/dist/cli-bundle/chunks/{focus-DQVJAPOE.js → focus-XZW5423D.js} +8 -12
  321. package/dist/cli-bundle/chunks/{focus-DQVJAPOE.js.map → focus-XZW5423D.js.map} +1 -1
  322. package/dist/cli-bundle/chunks/{gc-BEJMQT64.js → gc-7GQYOS2G.js} +3 -3
  323. package/dist/cli-bundle/chunks/{gc-JEFQDJPA.js → gc-LPVMKJQJ.js} +3 -3
  324. package/dist/cli-bundle/chunks/{get-LQG6PEVG.js → get-A7MAOHCU.js} +10 -13
  325. package/dist/cli-bundle/chunks/{get-LQG6PEVG.js.map → get-A7MAOHCU.js.map} +1 -1
  326. package/dist/cli-bundle/chunks/{get-WVN75H42.js → get-DSDEKJ3L.js} +12 -15
  327. package/dist/cli-bundle/chunks/{get-WVN75H42.js.map → get-DSDEKJ3L.js.map} +1 -1
  328. package/dist/cli-bundle/chunks/{health-JJJOY7DJ.js → health-3IPFLKXB.js} +17 -17
  329. package/dist/cli-bundle/chunks/{health-P67NZ6TT.js → health-GZXGBZ36.js} +17 -17
  330. package/dist/cli-bundle/chunks/{history-RUKPKNY7.js → history-NERDJNUB.js} +8 -10
  331. package/dist/cli-bundle/chunks/history-WSZHY3PN.js +18 -0
  332. package/dist/cli-bundle/chunks/{history-compact-NQ7VPRVT.js → history-compact-2WRZ2WK4.js} +11 -14
  333. package/dist/cli-bundle/chunks/{history-compact-NQ7VPRVT.js.map → history-compact-2WRZ2WK4.js.map} +1 -1
  334. package/dist/cli-bundle/chunks/{history-compact-ZAOWR7GD.js → history-compact-HR7BB4LR.js} +13 -16
  335. package/dist/cli-bundle/chunks/{history-compact-ZAOWR7GD.js.map → history-compact-HR7BB4LR.js.map} +1 -1
  336. package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +19 -0
  337. package/dist/cli-bundle/chunks/{history-redact-YY4XYVEP.js → history-redact-O3NBCNWC.js} +9 -11
  338. package/dist/cli-bundle/chunks/{history-repair-EHL4ODQY.js → history-repair-LCMOS45X.js} +11 -14
  339. package/dist/cli-bundle/chunks/{history-repair-EHL4ODQY.js.map → history-repair-LCMOS45X.js.map} +1 -1
  340. package/dist/cli-bundle/chunks/{history-repair-YSQH6SY6.js → history-repair-XA3LC4GA.js} +13 -16
  341. package/dist/cli-bundle/chunks/{history-repair-YSQH6SY6.js.map → history-repair-XA3LC4GA.js.map} +1 -1
  342. package/dist/cli-bundle/chunks/{init-HBFGYS66.js → init-64XDLQJB.js} +12 -11
  343. package/dist/cli-bundle/chunks/init-PAX32BJA.js +22 -0
  344. package/dist/cli-bundle/chunks/{learnings-KFQO7GEZ.js → learnings-JR6MA5TI.js} +9 -11
  345. package/dist/cli-bundle/chunks/{learnings-KFQO7GEZ.js.map → learnings-JR6MA5TI.js.map} +1 -1
  346. package/dist/cli-bundle/chunks/{learnings-J555ZFPD.js → learnings-LPKCSJX7.js} +11 -13
  347. package/dist/cli-bundle/chunks/{learnings-J555ZFPD.js.map → learnings-LPKCSJX7.js.map} +1 -1
  348. package/dist/cli-bundle/chunks/{list-C7R33MD5.js → list-DNBJVO3E.js} +10 -10
  349. package/dist/cli-bundle/chunks/{list-DSN6UNFB.js → list-G5Y65VF6.js} +10 -10
  350. package/dist/cli-bundle/chunks/next-BCERKDUR.js +277 -0
  351. package/dist/cli-bundle/chunks/next-BCERKDUR.js.map +7 -0
  352. package/dist/cli-bundle/chunks/next-FYTQF6HG.js +274 -0
  353. package/dist/cli-bundle/chunks/next-FYTQF6HG.js.map +1 -0
  354. package/dist/cli-bundle/chunks/{notes-V4VNIQL4.js → notes-2BMU3VVQ.js} +9 -11
  355. package/dist/cli-bundle/chunks/{notes-V4VNIQL4.js.map → notes-2BMU3VVQ.js.map} +1 -1
  356. package/dist/cli-bundle/chunks/{notes-VYJFN2A3.js → notes-6KTGO2OJ.js} +11 -13
  357. package/dist/cli-bundle/chunks/{notes-VYJFN2A3.js.map → notes-6KTGO2OJ.js.map} +1 -1
  358. package/dist/cli-bundle/chunks/{plan-RBHQ5PO7.js → plan-4WXEQCTN.js} +15 -18
  359. package/dist/cli-bundle/chunks/{plan-RBHQ5PO7.js.map → plan-4WXEQCTN.js.map} +1 -1
  360. package/dist/cli-bundle/chunks/{plan-DHRSVSHR.js → plan-RKZHQVXR.js} +17 -20
  361. package/dist/cli-bundle/chunks/{plan-DHRSVSHR.js.map → plan-RKZHQVXR.js.map} +1 -1
  362. package/dist/cli-bundle/chunks/profile-4OMM32CD.js +1235 -0
  363. package/dist/cli-bundle/chunks/profile-4OMM32CD.js.map +7 -0
  364. package/dist/cli-bundle/chunks/profile-QLER5ENE.js +1197 -0
  365. package/dist/cli-bundle/chunks/profile-QLER5ENE.js.map +1 -0
  366. package/dist/cli-bundle/chunks/{register-list-query-OM3E2KMY.js → register-list-query-7LV46VAU.js} +45 -21
  367. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js.map +1 -0
  368. package/dist/cli-bundle/chunks/{register-list-query-CCMHGZTF.js → register-list-query-SNG5PGA4.js} +44 -20
  369. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js.map +7 -0
  370. package/dist/cli-bundle/chunks/{register-mutation-N3CDEGZU.js → register-mutation-ENNDUAZG.js} +106 -40
  371. package/dist/cli-bundle/chunks/register-mutation-ENNDUAZG.js.map +1 -0
  372. package/dist/cli-bundle/chunks/{register-mutation-UXTTWL6N.js → register-mutation-KK7PHYYU.js} +105 -39
  373. package/dist/cli-bundle/chunks/register-mutation-KK7PHYYU.js.map +7 -0
  374. package/dist/cli-bundle/chunks/{register-operations-UDIFMQKD.js → register-operations-C6OWLDSH.js} +32 -34
  375. package/dist/cli-bundle/chunks/{register-operations-UDIFMQKD.js.map → register-operations-C6OWLDSH.js.map} +1 -1
  376. package/dist/cli-bundle/chunks/{register-operations-R2FLOCRI.js → register-operations-HZ6XERQG.js} +30 -32
  377. package/dist/cli-bundle/chunks/{register-operations-R2FLOCRI.js.map → register-operations-HZ6XERQG.js.map} +1 -1
  378. package/dist/cli-bundle/chunks/{register-setup-G5LTSFYK.js → register-setup-P67EMBDJ.js} +68 -25
  379. package/dist/cli-bundle/chunks/register-setup-P67EMBDJ.js.map +1 -0
  380. package/dist/cli-bundle/chunks/{register-setup-TWHKICM2.js → register-setup-ZKJ53RS7.js} +67 -24
  381. package/dist/cli-bundle/chunks/register-setup-ZKJ53RS7.js.map +7 -0
  382. package/dist/cli-bundle/chunks/{restore-LL2WLEDG.js → restore-4MHZFJ2E.js} +9 -11
  383. package/dist/cli-bundle/chunks/restore-YALDGTQR.js +17 -0
  384. package/dist/cli-bundle/chunks/{scheduling-shortcuts-M4H2ZI64.js → scheduling-shortcuts-LB6DOLRL.js} +14 -16
  385. package/dist/cli-bundle/chunks/{scheduling-shortcuts-M4H2ZI64.js.map → scheduling-shortcuts-LB6DOLRL.js.map} +1 -1
  386. package/dist/cli-bundle/chunks/{scheduling-shortcuts-255GI3BU.js → scheduling-shortcuts-UTOYKLXQ.js} +12 -14
  387. package/dist/cli-bundle/chunks/{scheduling-shortcuts-255GI3BU.js.map → scheduling-shortcuts-UTOYKLXQ.js.map} +1 -1
  388. package/dist/cli-bundle/chunks/schema-73HR2OJW.js +75 -0
  389. package/dist/cli-bundle/chunks/schema-U6LJKSIR.js +71 -0
  390. package/dist/cli-bundle/chunks/{search-2EI6EAXH.js → search-AXPXKZER.js} +10 -12
  391. package/dist/cli-bundle/chunks/{search-QBFBLQRO.js → search-KILGT37L.js} +10 -12
  392. package/dist/cli-bundle/chunks/{stats-TKC6CAKB.js → stats-PSYVVTNZ.js} +21 -13
  393. package/dist/cli-bundle/chunks/stats-PSYVVTNZ.js.map +1 -0
  394. package/dist/cli-bundle/chunks/{stats-TCW2SZQG.js → stats-W5KNVJWQ.js} +20 -12
  395. package/dist/cli-bundle/chunks/stats-W5KNVJWQ.js.map +7 -0
  396. package/dist/cli-bundle/chunks/{telemetry-BT2VSWU2.js → telemetry-BZUF6H7G.js} +4 -4
  397. package/dist/cli-bundle/chunks/{telemetry-LQ6FRTUT.js → telemetry-GAHHQTOS.js} +4 -4
  398. package/dist/cli-bundle/chunks/test-ACD52Z3S.js +35 -0
  399. package/dist/cli-bundle/chunks/test-ACD52Z3S.js.map +7 -0
  400. package/dist/cli-bundle/chunks/{test-NV2DRPUS.js → test-PWDIZ255.js} +15 -16
  401. package/dist/cli-bundle/chunks/test-PWDIZ255.js.map +1 -0
  402. package/dist/cli-bundle/chunks/{test-all-DZ76VTPQ.js → test-all-L2MDDUCA.js} +20 -22
  403. package/dist/cli-bundle/chunks/{test-all-DZ76VTPQ.js.map → test-all-L2MDDUCA.js.map} +1 -1
  404. package/dist/cli-bundle/chunks/{test-all-REW67LXT.js → test-all-RBZ6DLU2.js} +18 -20
  405. package/dist/cli-bundle/chunks/{test-all-REW67LXT.js.map → test-all-RBZ6DLU2.js.map} +1 -1
  406. package/dist/cli-bundle/chunks/{test-runs-PX73DMMI.js → test-runs-PLRAZEFW.js} +5 -6
  407. package/dist/cli-bundle/chunks/test-runs-PLRAZEFW.js.map +7 -0
  408. package/dist/cli-bundle/chunks/{test-runs-FQ5WNQLP.js → test-runs-UXIXPDKU.js} +6 -7
  409. package/dist/cli-bundle/chunks/test-runs-UXIXPDKU.js.map +1 -0
  410. package/dist/cli-bundle/chunks/update-AMRSOIWP.js +24 -0
  411. package/dist/cli-bundle/chunks/update-AMRSOIWP.js.map +7 -0
  412. package/dist/cli-bundle/chunks/update-KFX2SIAC.js +28 -0
  413. package/dist/cli-bundle/chunks/update-KFX2SIAC.js.map +1 -0
  414. package/dist/cli-bundle/chunks/{update-many-Q5ZEI64S.js → update-many-RNSBX2TA.js} +35 -36
  415. package/dist/cli-bundle/chunks/{update-many-Q5ZEI64S.js.map → update-many-RNSBX2TA.js.map} +1 -1
  416. package/dist/cli-bundle/chunks/{update-many-2ILP6E4Y.js → update-many-Z5GJS5LC.js} +33 -34
  417. package/dist/cli-bundle/chunks/{update-many-2ILP6E4Y.js.map → update-many-Z5GJS5LC.js.map} +1 -1
  418. package/dist/cli-bundle/chunks/{upgrade-FOZKQTQF.js → upgrade-BRL6KCOJ.js} +13 -8
  419. package/dist/cli-bundle/chunks/{upgrade-FOZKQTQF.js.map → upgrade-BRL6KCOJ.js.map} +1 -1
  420. package/dist/cli-bundle/chunks/{upgrade-DHL74PQH.js → upgrade-HAK6JG2O.js} +11 -6
  421. package/dist/cli-bundle/chunks/{upgrade-DHL74PQH.js.map → upgrade-HAK6JG2O.js.map} +1 -1
  422. package/dist/cli-bundle/chunks/{validate-HYZNIB6W.js → validate-MTUVL5VC.js} +38 -28
  423. package/dist/cli-bundle/chunks/validate-MTUVL5VC.js.map +7 -0
  424. package/dist/cli-bundle/chunks/{validate-54SYJ7QW.js → validate-X5W76YJL.js} +39 -29
  425. package/dist/cli-bundle/chunks/validate-X5W76YJL.js.map +1 -0
  426. package/dist/cli-bundle/main.js +95 -724
  427. package/dist/cli-bundle/main.js.map +4 -4
  428. package/dist/core/config/positional-value.d.ts +2 -0
  429. package/dist/core/config/positional-value.js +2 -2
  430. package/dist/core/config/positional-value.js.map +1 -1
  431. package/dist/core/extensions/activation-summary-markdown.d.ts +71 -0
  432. package/dist/core/extensions/activation-summary-markdown.js +151 -0
  433. package/dist/core/extensions/activation-summary-markdown.js.map +1 -0
  434. package/dist/core/extensions/activation-summary.d.ts +2 -0
  435. package/dist/core/extensions/activation-summary.js +3 -2
  436. package/dist/core/extensions/activation-summary.js.map +1 -1
  437. package/dist/core/extensions/capability-usage.d.ts +1 -1
  438. package/dist/core/extensions/capability-usage.js +4 -3
  439. package/dist/core/extensions/capability-usage.js.map +1 -1
  440. package/dist/core/extensions/extension-policy.d.ts +18 -3
  441. package/dist/core/extensions/extension-policy.js +116 -106
  442. package/dist/core/extensions/extension-policy.js.map +1 -1
  443. package/dist/core/extensions/extension-registries.js +3 -2
  444. package/dist/core/extensions/extension-registries.js.map +1 -1
  445. package/dist/core/extensions/extension-types.d.ts +21 -1
  446. package/dist/core/extensions/extension-types.js +3 -2
  447. package/dist/core/extensions/extension-types.js.map +1 -1
  448. package/dist/core/extensions/loader.js +439 -232
  449. package/dist/core/extensions/loader.js.map +1 -1
  450. package/dist/core/fs/fs-utils.js +27 -2
  451. package/dist/core/fs/fs-utils.js.map +1 -1
  452. package/dist/core/item/actionability.d.ts +57 -0
  453. package/dist/core/item/actionability.js +178 -0
  454. package/dist/core/item/actionability.js.map +1 -0
  455. package/dist/core/item/item-format.js +523 -410
  456. package/dist/core/item/item-format.js.map +1 -1
  457. package/dist/core/item/type-registry.js +18 -45
  458. package/dist/core/item/type-registry.js.map +1 -1
  459. package/dist/core/profile/profile-describe.d.ts +64 -0
  460. package/dist/core/profile/profile-describe.js +83 -0
  461. package/dist/core/profile/profile-describe.js.map +1 -0
  462. package/dist/core/profile/profile-lint.d.ts +53 -0
  463. package/dist/core/profile/profile-lint.js +422 -0
  464. package/dist/core/profile/profile-lint.js.map +1 -0
  465. package/dist/core/profile/profile-plan.d.ts +145 -0
  466. package/dist/core/profile/profile-plan.js +0 -0
  467. package/dist/core/profile/profile-plan.js.map +1 -0
  468. package/dist/core/profile/profile-presets.d.ts +218 -0
  469. package/dist/core/profile/profile-presets.js +325 -0
  470. package/dist/core/profile/profile-presets.js.map +1 -0
  471. package/dist/core/schema/fields-file.js +25 -25
  472. package/dist/core/schema/fields-file.js.map +1 -1
  473. package/dist/core/schema/item-types-file.js +3 -3
  474. package/dist/core/schema/item-types-file.js.map +1 -1
  475. package/dist/core/schema/runtime-schema.js +4 -4
  476. package/dist/core/schema/runtime-schema.js.map +1 -1
  477. package/dist/core/schema/status-defs-file.js +3 -3
  478. package/dist/core/schema/status-defs-file.js.map +1 -1
  479. package/dist/core/shared/serialization.js +83 -62
  480. package/dist/core/shared/serialization.js.map +1 -1
  481. package/dist/core/store/item-store.d.ts +1 -0
  482. package/dist/core/store/item-store.js +16 -8
  483. package/dist/core/store/item-store.js.map +1 -1
  484. package/dist/core/store/paths.js +4 -32
  485. package/dist/core/store/paths.js.map +1 -1
  486. package/dist/core/store/settings.js +14 -14
  487. package/dist/core/store/settings.js.map +1 -1
  488. package/dist/core/telemetry/observability.js +50 -54
  489. package/dist/core/telemetry/observability.js.map +1 -1
  490. package/dist/core/telemetry/runtime.js +11 -2
  491. package/dist/core/telemetry/runtime.js.map +1 -1
  492. package/dist/core/test/background-runs.js +3 -2
  493. package/dist/core/test/background-runs.js.map +1 -1
  494. package/dist/core/validate/linked-artifact-reference.d.ts +24 -0
  495. package/dist/core/validate/linked-artifact-reference.js +41 -0
  496. package/dist/core/validate/linked-artifact-reference.js.map +1 -0
  497. package/dist/mcp/server.js +540 -420
  498. package/dist/mcp/server.js.map +1 -1
  499. package/dist/mcp/tool-definitions.js +33 -2
  500. package/dist/mcp/tool-definitions.js.map +1 -1
  501. package/dist/sdk/cli-contracts/commander-types.d.ts +1 -0
  502. package/dist/sdk/cli-contracts/commander-types.js +15 -2
  503. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  504. package/dist/sdk/cli-contracts/enum-contracts.d.ts +3 -3
  505. package/dist/sdk/cli-contracts/enum-contracts.js +6 -2
  506. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  507. package/dist/sdk/cli-contracts/flag-contracts.d.ts +149 -0
  508. package/dist/sdk/cli-contracts/flag-contracts.js +1514 -0
  509. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -0
  510. package/dist/sdk/cli-contracts/string-lists.d.ts +14 -0
  511. package/dist/sdk/cli-contracts/string-lists.js +20 -0
  512. package/dist/sdk/cli-contracts/string-lists.js.map +1 -0
  513. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +1 -1
  514. package/dist/sdk/cli-contracts/tool-option-contracts.js +51 -109
  515. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  516. package/dist/sdk/cli-contracts/tool-parameter-tables.d.ts +17 -0
  517. package/dist/sdk/cli-contracts/tool-parameter-tables.js +54 -5
  518. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  519. package/dist/sdk/cli-contracts/tool-schema.d.ts +74 -0
  520. package/dist/sdk/cli-contracts/tool-schema.js +871 -0
  521. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -0
  522. package/dist/sdk/cli-contracts.d.ts +13 -193
  523. package/dist/sdk/cli-contracts.js +5 -2277
  524. package/dist/sdk/cli-contracts.js.map +1 -1
  525. package/dist/sdk/compose.d.ts +11 -5
  526. package/dist/sdk/compose.js +240 -124
  527. package/dist/sdk/compose.js.map +1 -1
  528. package/dist/sdk/define.d.ts +14 -0
  529. package/dist/sdk/define.js +17 -2
  530. package/dist/sdk/define.js.map +1 -1
  531. package/dist/sdk/index.d.ts +14 -3
  532. package/dist/sdk/index.js +14 -3
  533. package/dist/sdk/index.js.map +1 -1
  534. package/dist/sdk/testing.d.ts +82 -2
  535. package/dist/sdk/testing.js +74 -3
  536. package/dist/sdk/testing.js.map +1 -1
  537. package/docs/AGENT_GUIDE.md +2 -0
  538. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  539. package/docs/COMMANDS.md +37 -0
  540. package/docs/EXTENSIONS.md +12 -13
  541. package/docs/RELEASING.md +8 -4
  542. package/docs/SDK.md +184 -17
  543. package/docs/TESTING.md +12 -0
  544. package/docs/examples/policy-restricted-extension/README.md +6 -0
  545. package/docs/examples/policy-restricted-extension/index.ts +40 -0
  546. package/docs/examples/policy-restricted-extension/manifest.json +2 -2
  547. package/docs/examples/starter-extension/README.md +14 -2
  548. package/docs/examples/starter-extension/{index.js → index.ts} +51 -6
  549. package/docs/examples/starter-extension/manifest.json +2 -2
  550. package/package.json +20 -7
  551. package/packages/pm-beads/extensions/beads/index.ts +3 -3
  552. package/packages/pm-beads/extensions/beads/manifest.json +2 -2
  553. package/packages/pm-beads/extensions/beads/runtime-loader.ts +19 -7
  554. package/packages/pm-beads/extensions/beads/runtime.ts +155 -37
  555. package/packages/pm-calendar/extensions/calendar/index.ts +3 -3
  556. package/packages/pm-calendar/extensions/calendar/manifest.json +2 -2
  557. package/packages/pm-calendar/extensions/calendar/runtime.ts +2 -2
  558. package/packages/pm-command-kit/extensions/command-kit/index.ts +1 -1
  559. package/packages/pm-command-kit/extensions/command-kit/manifest.json +2 -2
  560. package/packages/pm-governance-audit/extensions/governance-audit/index.ts +2 -2
  561. package/packages/pm-governance-audit/extensions/governance-audit/manifest.json +2 -2
  562. package/packages/pm-governance-audit/extensions/governance-audit/runtime.ts +1 -1
  563. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +2 -2
  564. package/packages/pm-guide-shell/extensions/guide-shell/manifest.json +2 -2
  565. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +1 -1
  566. package/packages/pm-kanban/README.md +97 -0
  567. package/packages/pm-kanban/extensions/kanban/index.ts +191 -0
  568. package/packages/pm-kanban/extensions/kanban/manifest.json +19 -0
  569. package/packages/pm-kanban/package.json +57 -0
  570. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.ts +1 -1
  571. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/manifest.json +2 -2
  572. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.ts +2 -2
  573. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/manifest.json +2 -2
  574. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.ts +1 -1
  575. package/packages/pm-search-advanced/extensions/search-advanced/index.ts +2 -2
  576. package/packages/pm-search-advanced/extensions/search-advanced/manifest.json +2 -2
  577. package/packages/pm-search-advanced/extensions/search-advanced/runtime.ts +1 -1
  578. package/packages/pm-templates/extensions/templates/index.ts +2 -2
  579. package/packages/pm-templates/extensions/templates/manifest.json +2 -2
  580. package/packages/pm-templates/extensions/templates/runtime.ts +1 -1
  581. package/packages/pm-todos/extensions/todos/index.ts +3 -3
  582. package/packages/pm-todos/extensions/todos/manifest.json +2 -2
  583. package/packages/pm-todos/extensions/todos/runtime-loader.ts +19 -7
  584. package/packages/pm-todos/extensions/todos/runtime.ts +177 -43
  585. package/plugins/pm-claude/scripts/pm-mcp-server.mjs +2 -2
  586. package/plugins/pm-codex/scripts/pm-mcp-server.mjs +2 -2
  587. package/scripts/bundle-cli.mjs +1 -1
  588. package/dist/cli-bundle/chunks/activity-54TXGJ2T.js +0 -18
  589. package/dist/cli-bundle/chunks/aggregate-63NWNIBR.js.map +0 -1
  590. package/dist/cli-bundle/chunks/aggregate-YHCYX2EV.js.map +0 -7
  591. package/dist/cli-bundle/chunks/chunk-6EL7SW5C.js.map +0 -7
  592. package/dist/cli-bundle/chunks/chunk-6W3Y65PL.js.map +0 -7
  593. package/dist/cli-bundle/chunks/chunk-AEACLRVH.js.map +0 -7
  594. package/dist/cli-bundle/chunks/chunk-B74BP6IS.js +0 -78
  595. package/dist/cli-bundle/chunks/chunk-B74BP6IS.js.map +0 -7
  596. package/dist/cli-bundle/chunks/chunk-BFFO3AIB.js.map +0 -1
  597. package/dist/cli-bundle/chunks/chunk-C4C3EJCJ.js.map +0 -7
  598. package/dist/cli-bundle/chunks/chunk-EYPINTFR.js.map +0 -7
  599. package/dist/cli-bundle/chunks/chunk-FBLT6WGK.js +0 -75
  600. package/dist/cli-bundle/chunks/chunk-FBLT6WGK.js.map +0 -1
  601. package/dist/cli-bundle/chunks/chunk-GQYJEEFX.js.map +0 -1
  602. package/dist/cli-bundle/chunks/chunk-HBAEFWX3.js.map +0 -7
  603. package/dist/cli-bundle/chunks/chunk-HC2S36NB.js.map +0 -1
  604. package/dist/cli-bundle/chunks/chunk-IAP5KYBQ.js.map +0 -1
  605. package/dist/cli-bundle/chunks/chunk-INPHFO33.js +0 -764
  606. package/dist/cli-bundle/chunks/chunk-INPHFO33.js.map +0 -7
  607. package/dist/cli-bundle/chunks/chunk-IOT6WRL5.js +0 -86
  608. package/dist/cli-bundle/chunks/chunk-IOT6WRL5.js.map +0 -7
  609. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js +0 -35
  610. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js.map +0 -7
  611. package/dist/cli-bundle/chunks/chunk-J3NMWFIN.js +0 -115
  612. package/dist/cli-bundle/chunks/chunk-J3NMWFIN.js.map +0 -1
  613. package/dist/cli-bundle/chunks/chunk-J7I4C5ZB.js.map +0 -7
  614. package/dist/cli-bundle/chunks/chunk-JKL6HRMV.js.map +0 -7
  615. package/dist/cli-bundle/chunks/chunk-KJZOSF7J.js.map +0 -1
  616. package/dist/cli-bundle/chunks/chunk-L7UXKP2I.js.map +0 -1
  617. package/dist/cli-bundle/chunks/chunk-LNEDHJNQ.js.map +0 -1
  618. package/dist/cli-bundle/chunks/chunk-M6TUBOGW.js.map +0 -1
  619. package/dist/cli-bundle/chunks/chunk-MEXZ5XUM.js.map +0 -7
  620. package/dist/cli-bundle/chunks/chunk-N5B6WZC5.js.map +0 -1
  621. package/dist/cli-bundle/chunks/chunk-NJ73ALW2.js +0 -761
  622. package/dist/cli-bundle/chunks/chunk-NJ73ALW2.js.map +0 -1
  623. package/dist/cli-bundle/chunks/chunk-NVXGVEFD.js +0 -83
  624. package/dist/cli-bundle/chunks/chunk-NVXGVEFD.js.map +0 -1
  625. package/dist/cli-bundle/chunks/chunk-OF7V47P3.js.map +0 -1
  626. package/dist/cli-bundle/chunks/chunk-OHDQNKJB.js.map +0 -7
  627. package/dist/cli-bundle/chunks/chunk-PEL2NLQE.js +0 -118
  628. package/dist/cli-bundle/chunks/chunk-PEL2NLQE.js.map +0 -7
  629. package/dist/cli-bundle/chunks/chunk-PRVTGX64.js.map +0 -7
  630. package/dist/cli-bundle/chunks/chunk-RAWA3Y7O.js.map +0 -1
  631. package/dist/cli-bundle/chunks/chunk-SMXSDY7J.js.map +0 -7
  632. package/dist/cli-bundle/chunks/chunk-SUREE24M.js.map +0 -1
  633. package/dist/cli-bundle/chunks/chunk-TKPP4GOO.js +0 -654
  634. package/dist/cli-bundle/chunks/chunk-TKPP4GOO.js.map +0 -1
  635. package/dist/cli-bundle/chunks/chunk-VSAABFGQ.js.map +0 -1
  636. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js +0 -32
  637. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js.map +0 -1
  638. package/dist/cli-bundle/chunks/chunk-XVYKWZNL.js.map +0 -7
  639. package/dist/cli-bundle/chunks/chunk-XXKV4UWE.js.map +0 -7
  640. package/dist/cli-bundle/chunks/chunk-ZLWRPBOW.js.map +0 -1
  641. package/dist/cli-bundle/chunks/chunk-ZV7IQ23N.js +0 -657
  642. package/dist/cli-bundle/chunks/chunk-ZV7IQ23N.js.map +0 -7
  643. package/dist/cli-bundle/chunks/close-JEBZXONN.js +0 -15
  644. package/dist/cli-bundle/chunks/config-NCNNWF6R.js.map +0 -7
  645. package/dist/cli-bundle/chunks/config-SW3U7XP2.js.map +0 -1
  646. package/dist/cli-bundle/chunks/context-55VEOYI3.js.map +0 -1
  647. package/dist/cli-bundle/chunks/context-5LB7UGKE.js.map +0 -7
  648. package/dist/cli-bundle/chunks/contracts-JXFGBOYT.js.map +0 -1
  649. package/dist/cli-bundle/chunks/contracts-SY6PDFIK.js.map +0 -7
  650. package/dist/cli-bundle/chunks/create-CLSCHGJJ.js +0 -30
  651. package/dist/cli-bundle/chunks/history-ALTM2RRP.js +0 -20
  652. package/dist/cli-bundle/chunks/history-redact-5YGLWUDH.js +0 -21
  653. package/dist/cli-bundle/chunks/init-C4CRHW22.js +0 -21
  654. package/dist/cli-bundle/chunks/register-list-query-CCMHGZTF.js.map +0 -7
  655. package/dist/cli-bundle/chunks/register-list-query-OM3E2KMY.js.map +0 -1
  656. package/dist/cli-bundle/chunks/register-mutation-N3CDEGZU.js.map +0 -1
  657. package/dist/cli-bundle/chunks/register-mutation-UXTTWL6N.js.map +0 -7
  658. package/dist/cli-bundle/chunks/register-setup-G5LTSFYK.js.map +0 -1
  659. package/dist/cli-bundle/chunks/register-setup-TWHKICM2.js.map +0 -7
  660. package/dist/cli-bundle/chunks/restore-LQHXBAY5.js +0 -19
  661. package/dist/cli-bundle/chunks/schema-C6QA367T.js.map +0 -7
  662. package/dist/cli-bundle/chunks/schema-QO5I4FBL.js.map +0 -1
  663. package/dist/cli-bundle/chunks/stats-TCW2SZQG.js.map +0 -7
  664. package/dist/cli-bundle/chunks/stats-TKC6CAKB.js.map +0 -1
  665. package/dist/cli-bundle/chunks/test-WA6RZGM2.js +0 -36
  666. package/dist/cli-bundle/chunks/test-runs-FQ5WNQLP.js.map +0 -1
  667. package/dist/cli-bundle/chunks/test-runs-PX73DMMI.js.map +0 -7
  668. package/dist/cli-bundle/chunks/update-BSKMQOYH.js +0 -28
  669. package/dist/cli-bundle/chunks/update-FIGYNQ2I.js +0 -24
  670. package/dist/cli-bundle/chunks/validate-54SYJ7QW.js.map +0 -1
  671. package/dist/cli-bundle/chunks/validate-HYZNIB6W.js.map +0 -7
  672. package/docs/examples/policy-restricted-extension/index.js +0 -21
  673. package/packages/pm-beads/extensions/beads/index.js +0 -64
  674. package/packages/pm-beads/extensions/beads/runtime-loader.js +0 -86
  675. package/packages/pm-beads/extensions/beads/runtime.js +0 -482
  676. package/packages/pm-calendar/extensions/calendar/index.js +0 -150
  677. package/packages/pm-calendar/extensions/calendar/runtime.js +0 -126
  678. package/packages/pm-command-kit/extensions/command-kit/index.js +0 -181
  679. package/packages/pm-governance-audit/extensions/governance-audit/index.js +0 -177
  680. package/packages/pm-governance-audit/extensions/governance-audit/runtime.js +0 -153
  681. package/packages/pm-guide-shell/extensions/guide-shell/index.js +0 -98
  682. package/packages/pm-guide-shell/extensions/guide-shell/runtime.js +0 -294
  683. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/index.js +0 -18
  684. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/index.js +0 -124
  685. package/packages/pm-linked-test-adapters/extensions/linked-test-adapters/runtime.js +0 -110
  686. package/packages/pm-search-advanced/extensions/search-advanced/index.js +0 -258
  687. package/packages/pm-search-advanced/extensions/search-advanced/runtime.js +0 -361
  688. package/packages/pm-templates/extensions/templates/index.js +0 -132
  689. package/packages/pm-templates/extensions/templates/runtime.js +0 -35
  690. package/packages/pm-todos/extensions/todos/index.js +0 -81
  691. package/packages/pm-todos/extensions/todos/runtime-loader.js +0 -86
  692. package/packages/pm-todos/extensions/todos/runtime.js +0 -545
  693. /package/dist/cli-bundle/chunks/{activity-54TXGJ2T.js.map → activity-AW6XVFH6.js.map} +0 -0
  694. /package/dist/cli-bundle/chunks/{activity-N7RVTLBQ.js.map → activity-DBLQVIP6.js.map} +0 -0
  695. /package/dist/cli-bundle/chunks/{chunk-F32L4HR6.js.map → chunk-27BXPBAY.js.map} +0 -0
  696. /package/dist/cli-bundle/chunks/{chunk-5BBEWX6C.js.map → chunk-3VGN2UWE.js.map} +0 -0
  697. /package/dist/cli-bundle/chunks/{chunk-FMWW2JDU.js.map → chunk-AXIDKKAT.js.map} +0 -0
  698. /package/dist/cli-bundle/chunks/{chunk-TIM4OD74.js.map → chunk-BDTISOSD.js.map} +0 -0
  699. /package/dist/cli-bundle/chunks/{chunk-CZIFFMZI.js.map → chunk-DDPTYJIM.js.map} +0 -0
  700. /package/dist/cli-bundle/chunks/{chunk-AYPQUFCX.js.map → chunk-EJUDVUYZ.js.map} +0 -0
  701. /package/dist/cli-bundle/chunks/{chunk-EOGBMLCE.js.map → chunk-EVMTBV6V.js.map} +0 -0
  702. /package/dist/cli-bundle/chunks/{chunk-CG3KP6I5.js.map → chunk-G7I7DEZA.js.map} +0 -0
  703. /package/dist/cli-bundle/chunks/{chunk-F4BNR2IN.js.map → chunk-HYTGA6GI.js.map} +0 -0
  704. /package/dist/cli-bundle/chunks/{chunk-2WCYE3IF.js.map → chunk-HZZEHPRG.js.map} +0 -0
  705. /package/dist/cli-bundle/chunks/{chunk-YV2OSAMS.js.map → chunk-IJYK2T43.js.map} +0 -0
  706. /package/dist/cli-bundle/chunks/{chunk-QOUOMPHO.js.map → chunk-JPECA746.js.map} +0 -0
  707. /package/dist/cli-bundle/chunks/{chunk-OQ2E64FH.js.map → chunk-KNPEF7QG.js.map} +0 -0
  708. /package/dist/cli-bundle/chunks/{chunk-3BKH2CL3.js.map → chunk-L5OEFZQG.js.map} +0 -0
  709. /package/dist/cli-bundle/chunks/{chunk-5S4ZGDB2.js.map → chunk-N74UMG5H.js.map} +0 -0
  710. /package/dist/cli-bundle/chunks/{chunk-IXAZI443.js.map → chunk-NFDPYAIP.js.map} +0 -0
  711. /package/dist/cli-bundle/chunks/{chunk-SKC4UTRP.js.map → chunk-NKZAN7BD.js.map} +0 -0
  712. /package/dist/cli-bundle/chunks/{chunk-JPJDP4VU.js.map → chunk-NWMZWYYB.js.map} +0 -0
  713. /package/dist/cli-bundle/chunks/{chunk-KKX4Z2SE.js.map → chunk-OTUHB4HS.js.map} +0 -0
  714. /package/dist/cli-bundle/chunks/{chunk-WB5BYQMF.js.map → chunk-SLMUGTK3.js.map} +0 -0
  715. /package/dist/cli-bundle/chunks/{chunk-I6QMJ2XT.js.map → chunk-WYDHYJPO.js.map} +0 -0
  716. /package/dist/cli-bundle/chunks/{chunk-KIEAK7YE.js.map → chunk-ZRP4VG5U.js.map} +0 -0
  717. /package/dist/cli-bundle/chunks/{close-JEBZXONN.js.map → close-E6ZZGCJY.js.map} +0 -0
  718. /package/dist/cli-bundle/chunks/{close-QHMVWM7M.js.map → close-TQYAAFJP.js.map} +0 -0
  719. /package/dist/cli-bundle/chunks/{create-O4VONGPG.js.map → context-B6275WPX.js.map} +0 -0
  720. /package/dist/cli-bundle/chunks/{create-CLSCHGJJ.js.map → context-OCZ3FJ4Z.js.map} +0 -0
  721. /package/dist/cli-bundle/chunks/{extension-YQF4CPIR.js.map → create-OH3BDGBB.js.map} +0 -0
  722. /package/dist/cli-bundle/chunks/{extension-3JYWJ5K2.js.map → create-RLRJMRTM.js.map} +0 -0
  723. /package/dist/cli-bundle/chunks/{history-ALTM2RRP.js.map → extension-CPSLJQVE.js.map} +0 -0
  724. /package/dist/cli-bundle/chunks/{history-RUKPKNY7.js.map → extension-CXJ6RELI.js.map} +0 -0
  725. /package/dist/cli-bundle/chunks/{gc-BEJMQT64.js.map → gc-7GQYOS2G.js.map} +0 -0
  726. /package/dist/cli-bundle/chunks/{gc-JEFQDJPA.js.map → gc-LPVMKJQJ.js.map} +0 -0
  727. /package/dist/cli-bundle/chunks/{health-JJJOY7DJ.js.map → health-3IPFLKXB.js.map} +0 -0
  728. /package/dist/cli-bundle/chunks/{health-P67NZ6TT.js.map → health-GZXGBZ36.js.map} +0 -0
  729. /package/dist/cli-bundle/chunks/{history-redact-YY4XYVEP.js.map → history-NERDJNUB.js.map} +0 -0
  730. /package/dist/cli-bundle/chunks/{history-redact-5YGLWUDH.js.map → history-WSZHY3PN.js.map} +0 -0
  731. /package/dist/cli-bundle/chunks/{init-C4CRHW22.js.map → history-redact-MP6CH7U5.js.map} +0 -0
  732. /package/dist/cli-bundle/chunks/{init-HBFGYS66.js.map → history-redact-O3NBCNWC.js.map} +0 -0
  733. /package/dist/cli-bundle/chunks/{list-C7R33MD5.js.map → init-64XDLQJB.js.map} +0 -0
  734. /package/dist/cli-bundle/chunks/{list-DSN6UNFB.js.map → init-PAX32BJA.js.map} +0 -0
  735. /package/dist/cli-bundle/chunks/{restore-LL2WLEDG.js.map → list-DNBJVO3E.js.map} +0 -0
  736. /package/dist/cli-bundle/chunks/{restore-LQHXBAY5.js.map → list-G5Y65VF6.js.map} +0 -0
  737. /package/dist/cli-bundle/chunks/{search-2EI6EAXH.js.map → restore-4MHZFJ2E.js.map} +0 -0
  738. /package/dist/cli-bundle/chunks/{search-QBFBLQRO.js.map → restore-YALDGTQR.js.map} +0 -0
  739. /package/dist/cli-bundle/chunks/{test-NV2DRPUS.js.map → schema-73HR2OJW.js.map} +0 -0
  740. /package/dist/cli-bundle/chunks/{test-WA6RZGM2.js.map → schema-U6LJKSIR.js.map} +0 -0
  741. /package/dist/cli-bundle/chunks/{update-BSKMQOYH.js.map → search-AXPXKZER.js.map} +0 -0
  742. /package/dist/cli-bundle/chunks/{update-FIGYNQ2I.js.map → search-KILGT37L.js.map} +0 -0
  743. /package/dist/cli-bundle/chunks/{telemetry-BT2VSWU2.js.map → telemetry-BZUF6H7G.js.map} +0 -0
  744. /package/dist/cli-bundle/chunks/{telemetry-LQ6FRTUT.js.map → telemetry-GAHHQTOS.js.map} +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../../cli/commands/close-many.ts"],
4
4
  "sourcesContent": ["/**\n * @module cli/commands/close-many\n *\n * Implements the pm close many command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n createCheckpointId,\n loadMutationCheckpoint,\n restoreCheckpointItems,\n writeMutationCheckpoint,\n type MutationCheckpointItem,\n} from \"../../core/checkpoint/mutation-checkpoint.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { toErrorMessage } from \"../../core/shared/primitives.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { listAllFrontMatterLight } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose, type CloseCommandOptions } from \"./close.js\";\nimport { hasListFilters } from \"./list-filter-shared.js\";\nimport { runList, type ListOptions, type ListedItem } from \"./list.js\";\nimport { runRestore } from \"./restore.js\";\n\nconst CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;\nconst CLOSE_MANY_CHECKPOINT_SUBDIR = \"close-many\";\n\nconst CLOSE_MANY_FILTER_GUIDANCE = [\n \"--filter-status\",\n \"--filter-type\",\n \"--filter-tag\",\n \"--filter-priority\",\n \"--filter-sprint\",\n \"--filter-release\",\n \"--filter-parent\",\n \"--filter-assignee\",\n \"--filter-updated-before\",\n \"--ids\",\n].join(\", \");\n\n/**\n * Documents the close many command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseManyCommandOptions {\n status?: string;\n list?: ListOptions;\n reason?: string;\n resolution?: string;\n expectedResult?: string;\n actualResult?: string;\n validateClose?: string;\n author?: string;\n message?: string;\n force?: boolean;\n dryRun?: boolean;\n rollback?: string;\n checkpoint?: boolean;\n}\n\ninterface CloseManyPlanRow {\n id: string;\n title: string;\n status: string;\n action: \"close\" | \"skip\";\n skip_reason?: string;\n active_child_ids?: string[];\n}\n\ninterface CloseManyApplyRow {\n id: string;\n status: \"closed\" | \"skipped\" | \"failed\";\n skip_reason?: string;\n changed_fields?: string[];\n warnings?: string[];\n error?: string;\n}\n\n/**\n * Documents the close many result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseManyResult {\n mode: \"dry_run\" | \"apply\" | \"rollback\";\n matched_count: number;\n dry_run: boolean;\n reason?: string;\n filters?: Record<string, unknown>;\n validate_close?: string;\n item_plans?: CloseManyPlanRow[];\n checkpoint?: {\n id: string;\n created_at: string;\n path: string;\n rollback_command: string;\n };\n closed_count?: number;\n skipped_count?: number;\n failed_count?: number;\n restored_count?: number;\n rollback_checkpoint_id?: string;\n rows?: CloseManyApplyRow[] | Array<{ id: string; status: \"restored\" | \"failed\"; changed_fields?: string[]; warnings?: string[]; error?: string }>;\n ids: string[];\n}\n\nfunction hasCloseManyFilters(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status, { includePagination: false });\n}\n\nfunction hasCloseManyRollbackConflicts(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status);\n}\n\nfunction rejectBlankIdsFilter(list: ListOptions | undefined): void {\n if (list?.ids != null && String(list.ids).trim().length === 0) {\n throw new PmCliError(\"--ids requires at least one non-empty item ID\", EXIT_CODE.USAGE);\n }\n}\n\nfunction activeListOptions(list: ListOptions | undefined): ListOptions {\n const active: ListOptions = {};\n if (!list) {\n return active;\n }\n for (const [key, value] of Object.entries(list) as Array<[keyof ListOptions, unknown]>) {\n if (value == null || (typeof value === \"string\" && !value.split(\",\").some((entry) => entry.trim().length > 0))) {\n continue;\n }\n (active as Record<string, unknown>)[key] = value;\n }\n return active;\n}\n\nfunction resolveReason(reason: unknown, required: boolean): string | undefined {\n const trimmed = String(reason ?? \"\").trim();\n if (trimmed.length > 0) {\n return trimmed;\n }\n if (required) {\n throw new PmCliError(\n \"pm close-many requires a shared close reason via --reason because governance.require_close_reason is enabled.\",\n EXIT_CODE.USAGE,\n {\n code: \"close_reason_required\",\n required: \"Provide a shared closing summary via --reason for the whole batch.\",\n why: \"governance.require_close_reason is enabled, so every close must record why the items are done.\",\n examples: [\n 'pm close-many --filter-sprint S-12 --reason \"Sprint S-12 acceptance criteria met\"',\n 'pm close-many --ids pm-a,pm-b --reason \"Superseded by redesign\"',\n ],\n nextSteps: [\n \"Re-run with --reason describing the shared outcome.\",\n \"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled\",\n ],\n },\n );\n }\n return undefined;\n}\n\n// Build a parent -> non-terminal child id map in a single light scan so each\n// matched parent can be annotated with the active children that closing it\n// would orphan (the same signal runClose surfaces per item on apply).\nasync function buildActiveChildrenByParent(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n): Promise<{ childrenByParent: Map<string, string[]>; parentByChild: Map<string, string> }> {\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const items = await listAllFrontMatterLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n const childrenByParent = new Map<string, string[]>();\n const parentByChild = new Map<string, string>();\n for (const item of items) {\n if (typeof item.parent !== \"string\" || item.parent.length === 0) {\n continue;\n }\n parentByChild.set(item.id, item.parent);\n if (isTerminalStatus(item.status, statusRegistry)) {\n continue;\n }\n const existing = childrenByParent.get(item.parent);\n if (existing) {\n existing.push(item.id);\n } else {\n childrenByParent.set(item.parent, [item.id]);\n }\n }\n for (const ids of childrenByParent.values()) {\n ids.sort((left, right) => left.localeCompare(right));\n }\n return { childrenByParent, parentByChild };\n}\n\nfunction hierarchyDepth(id: string, parentByChild: Map<string, string>, cache?: Map<string, number>): number {\n const cached = cache?.get(id);\n if (cached !== undefined) {\n return cached;\n }\n let depth = 0;\n let current = parentByChild.get(id);\n const path: string[] = [];\n const visited = new Set<string>();\n let hasCycle = false;\n while (current !== undefined && !visited.has(current)) {\n const cachedCurrent = cache?.get(current);\n if (cachedCurrent !== undefined) {\n depth += cachedCurrent + 1;\n break;\n }\n visited.add(current);\n path.push(current);\n depth += 1;\n current = parentByChild.get(current);\n }\n if (current !== undefined && visited.has(current)) {\n hasCycle = true;\n }\n if (!hasCycle) {\n cache?.set(id, depth);\n for (const [index, ancestorId] of path.entries()) {\n cache?.set(ancestorId, depth - index - 1);\n }\n }\n return depth;\n}\n\n/**\n * Implements run close many for the public runtime surface of this module.\n */\nexport async function runCloseMany(options: CloseManyCommandOptions, global: GlobalOptions): Promise<CloseManyResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n\n const dryRun = options.dryRun === true;\n const rollbackId = typeof options.rollback === \"string\" ? options.rollback : undefined;\n rejectBlankIdsFilter(options.list);\n\n if (rollbackId) {\n if (dryRun) {\n throw new PmCliError(\"--dry-run cannot be combined with --rollback\", EXIT_CODE.USAGE);\n }\n if (hasCloseManyRollbackConflicts(options.list, options.status)) {\n throw new PmCliError(\"Rollback mode does not accept filter options\", EXIT_CODE.USAGE);\n }\n const checkpoint = await loadMutationCheckpoint(\n pmRoot,\n CLOSE_MANY_CHECKPOINT_SUBDIR,\n rollbackId,\n CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n );\n const restoreMessage = options.message ?? `Rollback close-many checkpoint ${checkpoint.id}`;\n const rollback = await restoreCheckpointItems(checkpoint.items, (id, targetUpdatedAt) =>\n runRestore(id, targetUpdatedAt, { author: options.author, message: restoreMessage, force: true }, global),\n );\n return {\n mode: \"rollback\",\n matched_count: checkpoint.items.length,\n dry_run: false,\n rollback_checkpoint_id: checkpoint.id,\n checkpoint: {\n id: checkpoint.id,\n created_at: checkpoint.created_at,\n path: checkpoint.path,\n rollback_command: `pm close-many --rollback ${checkpoint.id}`,\n },\n restored_count: rollback.restored_ids.length,\n failed_count: rollback.failed_count,\n rows: rollback.rows,\n ids: rollback.restored_ids,\n };\n }\n\n if (!hasCloseManyFilters(options.list, options.status)) {\n throw new PmCliError(\n `close-many requires at least one filter to scope the close (for example: ${CLOSE_MANY_FILTER_GUIDANCE}). Refusing to match every item.`,\n EXIT_CODE.USAGE,\n );\n }\n\n const reason = resolveReason(options.reason, settings.governance.require_close_reason);\n const validateCloseMode = options.validateClose;\n const force = options.force === true;\n\n const listOptions = activeListOptions(options.list);\n const listed = await runList(options.status, listOptions, global);\n const { childrenByParent, parentByChild } = await buildActiveChildrenByParent(pmRoot, settings);\n const depthCache = new Map<string, number>();\n const matched = [...(listed.items as ListedItem[])].sort((left, right) => {\n const depthDelta = hierarchyDepth(right.id, parentByChild, depthCache) - hierarchyDepth(left.id, parentByChild, depthCache);\n return depthDelta !== 0 ? depthDelta : left.id.localeCompare(right.id);\n });\n const closePlannedIds = new Set(\n matched\n .filter((item) => force || !isTerminalStatus(item.status, statusRegistry))\n .map((item) => item.id),\n );\n\n const planRows: CloseManyPlanRow[] = matched.map((item) => {\n const alreadyTerminal = isTerminalStatus(item.status, statusRegistry);\n const activeChildIds = (childrenByParent.get(item.id) ?? []).filter((childId) => !closePlannedIds.has(childId));\n const willSkip = alreadyTerminal && !force;\n return {\n id: item.id,\n title: typeof item.title === \"string\" ? item.title : \"\",\n status: item.status,\n action: willSkip ? \"skip\" : \"close\",\n ...(willSkip ? { skip_reason: \"already_terminal\" } : {}),\n ...(activeChildIds.length > 0 ? { active_child_ids: activeChildIds } : {}),\n };\n });\n\n if (dryRun) {\n return {\n mode: \"dry_run\",\n matched_count: matched.length,\n dry_run: true,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n item_plans: planRows,\n ids: [],\n };\n }\n\n const closableIds = new Set(planRows.filter((row) => row.action === \"close\").map((row) => row.id));\n\n const nowValue = nowIso();\n const checkpointId = createCheckpointId(CLOSE_MANY_CHECKPOINT_SUBDIR, nowValue);\n const checkpointEnabled = options.checkpoint !== false;\n let checkpointInfo: CloseManyResult[\"checkpoint\"] | undefined;\n if (checkpointEnabled && closableIds.size > 0) {\n const checkpointItems: MutationCheckpointItem[] = matched\n .filter((item) => closableIds.has(item.id))\n .map((item) => ({ id: item.id, target_updated_at: item.updated_at }));\n const checkpointPath = await writeMutationCheckpoint(pmRoot, CLOSE_MANY_CHECKPOINT_SUBDIR, checkpointId, {\n schema_version: CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n id: checkpointId,\n created_at: nowValue,\n author: resolveAuthor(options.author, \"unknown\"),\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n items: checkpointItems,\n });\n checkpointInfo = {\n id: checkpointId,\n created_at: nowValue,\n path: checkpointPath,\n rollback_command: `pm close-many --rollback ${checkpointId}`,\n };\n }\n\n const closeOptions: CloseCommandOptions = {\n author: options.author,\n message: options.message ?? `close-many apply ${checkpointId}`,\n validateClose: validateCloseMode,\n force,\n resolution: options.resolution,\n expectedResult: options.expectedResult,\n actualResult: options.actualResult,\n };\n\n const rows: CloseManyApplyRow[] = [];\n const closedIds: string[] = [];\n for (const item of matched) {\n if (!closableIds.has(item.id)) {\n rows.push({ id: item.id, status: \"skipped\", skip_reason: \"already_terminal\" });\n continue;\n }\n try {\n const result = await runClose(item.id, reason, closeOptions, global);\n rows.push({\n id: item.id,\n status: \"closed\",\n changed_fields: result.changed_fields,\n ...(result.warnings && result.warnings.length > 0 ? { warnings: result.warnings } : {}),\n });\n closedIds.push(item.id);\n } catch (error: unknown) {\n rows.push({ id: item.id, status: \"failed\", error: toErrorMessage(error) });\n }\n }\n\n return {\n mode: \"apply\",\n matched_count: matched.length,\n dry_run: false,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n ...(checkpointInfo ? { checkpoint: checkpointInfo } : {}),\n closed_count: rows.filter((row) => row.status === \"closed\").length,\n skipped_count: rows.filter((row) => row.status === \"skipped\").length,\n failed_count: rows.filter((row) => row.status === \"failed\").length,\n rows,\n ids: closedIds,\n };\n}\n\nexport const _testOnly = {\n activeListOptions,\n buildActiveChildrenByParent,\n hasCloseManyFilters,\n hasCloseManyRollbackConflicts,\n hierarchyDepth,\n rejectBlankIdsFilter,\n resolveReason,\n};\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["global"]
7
7
  }
@@ -1,44 +1,41 @@
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]="beb312c4-985b-5187-b0bd-bb5b636bdf1d")}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]="35c16ca4-7008-5026-a440-58da2eee0015")}catch(e){}}();
3
3
  import {
4
4
  createCheckpointId,
5
5
  loadMutationCheckpoint,
6
6
  restoreCheckpointItems,
7
7
  writeMutationCheckpoint
8
- } from "./chunk-3BKH2CL3.js";
8
+ } from "./chunk-L5OEFZQG.js";
9
9
  import {
10
10
  runClose
11
- } from "./chunk-SUREE24M.js";
11
+ } from "./chunk-TP5Q5ZD3.js";
12
12
  import {
13
13
  runRestore
14
- } from "./chunk-RRP6D345.js";
14
+ } from "./chunk-CF7RL6FR.js";
15
15
  import {
16
16
  resolveAuthor
17
17
  } from "./chunk-T5RRNDA7.js";
18
- import "./chunk-MWMHZOZZ.js";
19
- import "./chunk-WB5BYQMF.js";
20
18
  import {
21
19
  hasListFilters
22
- } from "./chunk-W2VMLL5S.js";
20
+ } from "./chunk-VY3VQ22F.js";
21
+ import "./chunk-NOLPZMSV.js";
22
+ import "./chunk-OGXLACHC.js";
23
+ import "./chunk-SLMUGTK3.js";
23
24
  import {
24
25
  runList
25
- } from "./chunk-BFFO3AIB.js";
26
+ } from "./chunk-5CGRF3L5.js";
26
27
  import "./chunk-QB7XMHJW.js";
27
- import "./chunk-5BBEWX6C.js";
28
- import "./chunk-V4UYNSEM.js";
28
+ import "./chunk-3VGN2UWE.js";
29
+ import "./chunk-UZIWVBE6.js";
29
30
  import {
30
31
  listAllFrontMatterLight
31
- } from "./chunk-KJZOSF7J.js";
32
- import "./chunk-FBLT6WGK.js";
32
+ } from "./chunk-JSU5P7VS.js";
33
33
  import {
34
34
  isTerminalStatus
35
- } from "./chunk-ZLWRPBOW.js";
36
- import {
37
- resolveItemTypeRegistry
38
- } from "./chunk-TKPP4GOO.js";
35
+ } from "./chunk-QCWF6IYD.js";
39
36
  import {
40
37
  nowIso
41
- } from "./chunk-FMWW2JDU.js";
38
+ } from "./chunk-AXIDKKAT.js";
42
39
  import {
43
40
  EXIT_CODE,
44
41
  PmCliError,
@@ -46,10 +43,11 @@ import {
46
43
  getSettingsPath,
47
44
  pathExists,
48
45
  readSettings,
46
+ resolveItemTypeRegistry,
49
47
  resolvePmRoot,
50
48
  resolveRuntimeStatusRegistry,
51
49
  toErrorMessage
52
- } from "./chunk-VSAABFGQ.js";
50
+ } from "./chunk-7R4QEMZZ.js";
53
51
 
54
52
  // dist/cli/commands/close-many.js
55
53
  var CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;
@@ -327,6 +325,6 @@ export {
327
325
  _testOnly,
328
326
  runCloseMany
329
327
  };
330
- //# sourceMappingURL=close-many-SUU5BS2C.js.map
328
+ //# sourceMappingURL=close-many-LDRVEQY2.js.map
331
329
 
332
- //# debugId=beb312c4-985b-5187-b0bd-bb5b636bdf1d
330
+ //# debugId=35c16ca4-7008-5026-a440-58da2eee0015
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../cli/commands/close-many.ts"],"sourcesContent":["/**\n * @module cli/commands/close-many\n *\n * Implements the pm close many command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n createCheckpointId,\n loadMutationCheckpoint,\n restoreCheckpointItems,\n writeMutationCheckpoint,\n type MutationCheckpointItem,\n} from \"../../core/checkpoint/mutation-checkpoint.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { toErrorMessage } from \"../../core/shared/primitives.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { listAllFrontMatterLight } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose, type CloseCommandOptions } from \"./close.js\";\nimport { hasListFilters } from \"./list-filter-shared.js\";\nimport { runList, type ListOptions, type ListedItem } from \"./list.js\";\nimport { runRestore } from \"./restore.js\";\n\nconst CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;\nconst CLOSE_MANY_CHECKPOINT_SUBDIR = \"close-many\";\n\nconst CLOSE_MANY_FILTER_GUIDANCE = [\n \"--filter-status\",\n \"--filter-type\",\n \"--filter-tag\",\n \"--filter-priority\",\n \"--filter-sprint\",\n \"--filter-release\",\n \"--filter-parent\",\n \"--filter-assignee\",\n \"--filter-updated-before\",\n \"--ids\",\n].join(\", \");\n\n/**\n * Documents the close many command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseManyCommandOptions {\n status?: string;\n list?: ListOptions;\n reason?: string;\n resolution?: string;\n expectedResult?: string;\n actualResult?: string;\n validateClose?: string;\n author?: string;\n message?: string;\n force?: boolean;\n dryRun?: boolean;\n rollback?: string;\n checkpoint?: boolean;\n}\n\ninterface CloseManyPlanRow {\n id: string;\n title: string;\n status: string;\n action: \"close\" | \"skip\";\n skip_reason?: string;\n active_child_ids?: string[];\n}\n\ninterface CloseManyApplyRow {\n id: string;\n status: \"closed\" | \"skipped\" | \"failed\";\n skip_reason?: string;\n changed_fields?: string[];\n warnings?: string[];\n error?: string;\n}\n\n/**\n * Documents the close many result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseManyResult {\n mode: \"dry_run\" | \"apply\" | \"rollback\";\n matched_count: number;\n dry_run: boolean;\n reason?: string;\n filters?: Record<string, unknown>;\n validate_close?: string;\n item_plans?: CloseManyPlanRow[];\n checkpoint?: {\n id: string;\n created_at: string;\n path: string;\n rollback_command: string;\n };\n closed_count?: number;\n skipped_count?: number;\n failed_count?: number;\n restored_count?: number;\n rollback_checkpoint_id?: string;\n rows?: CloseManyApplyRow[] | Array<{ id: string; status: \"restored\" | \"failed\"; changed_fields?: string[]; warnings?: string[]; error?: string }>;\n ids: string[];\n}\n\nfunction hasCloseManyFilters(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status, { includePagination: false });\n}\n\nfunction hasCloseManyRollbackConflicts(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status);\n}\n\nfunction rejectBlankIdsFilter(list: ListOptions | undefined): void {\n if (list?.ids != null && String(list.ids).trim().length === 0) {\n throw new PmCliError(\"--ids requires at least one non-empty item ID\", EXIT_CODE.USAGE);\n }\n}\n\nfunction activeListOptions(list: ListOptions | undefined): ListOptions {\n const active: ListOptions = {};\n if (!list) {\n return active;\n }\n for (const [key, value] of Object.entries(list) as Array<[keyof ListOptions, unknown]>) {\n if (value == null || (typeof value === \"string\" && !value.split(\",\").some((entry) => entry.trim().length > 0))) {\n continue;\n }\n (active as Record<string, unknown>)[key] = value;\n }\n return active;\n}\n\nfunction resolveReason(reason: unknown, required: boolean): string | undefined {\n const trimmed = String(reason ?? \"\").trim();\n if (trimmed.length > 0) {\n return trimmed;\n }\n if (required) {\n throw new PmCliError(\n \"pm close-many requires a shared close reason via --reason because governance.require_close_reason is enabled.\",\n EXIT_CODE.USAGE,\n {\n code: \"close_reason_required\",\n required: \"Provide a shared closing summary via --reason for the whole batch.\",\n why: \"governance.require_close_reason is enabled, so every close must record why the items are done.\",\n examples: [\n 'pm close-many --filter-sprint S-12 --reason \"Sprint S-12 acceptance criteria met\"',\n 'pm close-many --ids pm-a,pm-b --reason \"Superseded by redesign\"',\n ],\n nextSteps: [\n \"Re-run with --reason describing the shared outcome.\",\n \"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled\",\n ],\n },\n );\n }\n return undefined;\n}\n\n// Build a parent -> non-terminal child id map in a single light scan so each\n// matched parent can be annotated with the active children that closing it\n// would orphan (the same signal runClose surfaces per item on apply).\nasync function buildActiveChildrenByParent(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n): Promise<{ childrenByParent: Map<string, string[]>; parentByChild: Map<string, string> }> {\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const items = await listAllFrontMatterLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n const childrenByParent = new Map<string, string[]>();\n const parentByChild = new Map<string, string>();\n for (const item of items) {\n if (typeof item.parent !== \"string\" || item.parent.length === 0) {\n continue;\n }\n parentByChild.set(item.id, item.parent);\n if (isTerminalStatus(item.status, statusRegistry)) {\n continue;\n }\n const existing = childrenByParent.get(item.parent);\n if (existing) {\n existing.push(item.id);\n } else {\n childrenByParent.set(item.parent, [item.id]);\n }\n }\n for (const ids of childrenByParent.values()) {\n ids.sort((left, right) => left.localeCompare(right));\n }\n return { childrenByParent, parentByChild };\n}\n\nfunction hierarchyDepth(id: string, parentByChild: Map<string, string>, cache?: Map<string, number>): number {\n const cached = cache?.get(id);\n if (cached !== undefined) {\n return cached;\n }\n let depth = 0;\n let current = parentByChild.get(id);\n const path: string[] = [];\n const visited = new Set<string>();\n let hasCycle = false;\n while (current !== undefined && !visited.has(current)) {\n const cachedCurrent = cache?.get(current);\n if (cachedCurrent !== undefined) {\n depth += cachedCurrent + 1;\n break;\n }\n visited.add(current);\n path.push(current);\n depth += 1;\n current = parentByChild.get(current);\n }\n if (current !== undefined && visited.has(current)) {\n hasCycle = true;\n }\n if (!hasCycle) {\n cache?.set(id, depth);\n for (const [index, ancestorId] of path.entries()) {\n cache?.set(ancestorId, depth - index - 1);\n }\n }\n return depth;\n}\n\n/**\n * Implements run close many for the public runtime surface of this module.\n */\nexport async function runCloseMany(options: CloseManyCommandOptions, global: GlobalOptions): Promise<CloseManyResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n\n const dryRun = options.dryRun === true;\n const rollbackId = typeof options.rollback === \"string\" ? options.rollback : undefined;\n rejectBlankIdsFilter(options.list);\n\n if (rollbackId) {\n if (dryRun) {\n throw new PmCliError(\"--dry-run cannot be combined with --rollback\", EXIT_CODE.USAGE);\n }\n if (hasCloseManyRollbackConflicts(options.list, options.status)) {\n throw new PmCliError(\"Rollback mode does not accept filter options\", EXIT_CODE.USAGE);\n }\n const checkpoint = await loadMutationCheckpoint(\n pmRoot,\n CLOSE_MANY_CHECKPOINT_SUBDIR,\n rollbackId,\n CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n );\n const restoreMessage = options.message ?? `Rollback close-many checkpoint ${checkpoint.id}`;\n const rollback = await restoreCheckpointItems(checkpoint.items, (id, targetUpdatedAt) =>\n runRestore(id, targetUpdatedAt, { author: options.author, message: restoreMessage, force: true }, global),\n );\n return {\n mode: \"rollback\",\n matched_count: checkpoint.items.length,\n dry_run: false,\n rollback_checkpoint_id: checkpoint.id,\n checkpoint: {\n id: checkpoint.id,\n created_at: checkpoint.created_at,\n path: checkpoint.path,\n rollback_command: `pm close-many --rollback ${checkpoint.id}`,\n },\n restored_count: rollback.restored_ids.length,\n failed_count: rollback.failed_count,\n rows: rollback.rows,\n ids: rollback.restored_ids,\n };\n }\n\n if (!hasCloseManyFilters(options.list, options.status)) {\n throw new PmCliError(\n `close-many requires at least one filter to scope the close (for example: ${CLOSE_MANY_FILTER_GUIDANCE}). Refusing to match every item.`,\n EXIT_CODE.USAGE,\n );\n }\n\n const reason = resolveReason(options.reason, settings.governance.require_close_reason);\n const validateCloseMode = options.validateClose;\n const force = options.force === true;\n\n const listOptions = activeListOptions(options.list);\n const listed = await runList(options.status, listOptions, global);\n const { childrenByParent, parentByChild } = await buildActiveChildrenByParent(pmRoot, settings);\n const depthCache = new Map<string, number>();\n const matched = [...(listed.items as ListedItem[])].sort((left, right) => {\n const depthDelta = hierarchyDepth(right.id, parentByChild, depthCache) - hierarchyDepth(left.id, parentByChild, depthCache);\n return depthDelta !== 0 ? depthDelta : left.id.localeCompare(right.id);\n });\n const closePlannedIds = new Set(\n matched\n .filter((item) => force || !isTerminalStatus(item.status, statusRegistry))\n .map((item) => item.id),\n );\n\n const planRows: CloseManyPlanRow[] = matched.map((item) => {\n const alreadyTerminal = isTerminalStatus(item.status, statusRegistry);\n const activeChildIds = (childrenByParent.get(item.id) ?? []).filter((childId) => !closePlannedIds.has(childId));\n const willSkip = alreadyTerminal && !force;\n return {\n id: item.id,\n title: typeof item.title === \"string\" ? item.title : \"\",\n status: item.status,\n action: willSkip ? \"skip\" : \"close\",\n ...(willSkip ? { skip_reason: \"already_terminal\" } : {}),\n ...(activeChildIds.length > 0 ? { active_child_ids: activeChildIds } : {}),\n };\n });\n\n if (dryRun) {\n return {\n mode: \"dry_run\",\n matched_count: matched.length,\n dry_run: true,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n item_plans: planRows,\n ids: [],\n };\n }\n\n const closableIds = new Set(planRows.filter((row) => row.action === \"close\").map((row) => row.id));\n\n const nowValue = nowIso();\n const checkpointId = createCheckpointId(CLOSE_MANY_CHECKPOINT_SUBDIR, nowValue);\n const checkpointEnabled = options.checkpoint !== false;\n let checkpointInfo: CloseManyResult[\"checkpoint\"] | undefined;\n if (checkpointEnabled && closableIds.size > 0) {\n const checkpointItems: MutationCheckpointItem[] = matched\n .filter((item) => closableIds.has(item.id))\n .map((item) => ({ id: item.id, target_updated_at: item.updated_at }));\n const checkpointPath = await writeMutationCheckpoint(pmRoot, CLOSE_MANY_CHECKPOINT_SUBDIR, checkpointId, {\n schema_version: CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n id: checkpointId,\n created_at: nowValue,\n author: resolveAuthor(options.author, \"unknown\"),\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n items: checkpointItems,\n });\n checkpointInfo = {\n id: checkpointId,\n created_at: nowValue,\n path: checkpointPath,\n rollback_command: `pm close-many --rollback ${checkpointId}`,\n };\n }\n\n const closeOptions: CloseCommandOptions = {\n author: options.author,\n message: options.message ?? `close-many apply ${checkpointId}`,\n validateClose: validateCloseMode,\n force,\n resolution: options.resolution,\n expectedResult: options.expectedResult,\n actualResult: options.actualResult,\n };\n\n const rows: CloseManyApplyRow[] = [];\n const closedIds: string[] = [];\n for (const item of matched) {\n if (!closableIds.has(item.id)) {\n rows.push({ id: item.id, status: \"skipped\", skip_reason: \"already_terminal\" });\n continue;\n }\n try {\n const result = await runClose(item.id, reason, closeOptions, global);\n rows.push({\n id: item.id,\n status: \"closed\",\n changed_fields: result.changed_fields,\n ...(result.warnings && result.warnings.length > 0 ? { warnings: result.warnings } : {}),\n });\n closedIds.push(item.id);\n } catch (error: unknown) {\n rows.push({ id: item.id, status: \"failed\", error: toErrorMessage(error) });\n }\n }\n\n return {\n mode: \"apply\",\n matched_count: matched.length,\n dry_run: false,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n ...(checkpointInfo ? { checkpoint: checkpointInfo } : {}),\n closed_count: rows.filter((row) => row.status === \"closed\").length,\n skipped_count: rows.filter((row) => row.status === \"skipped\").length,\n failed_count: rows.filter((row) => row.status === \"failed\").length,\n rows,\n ids: closedIds,\n };\n}\n\nexport const _testOnly = {\n activeListOptions,\n buildActiveChildrenByParent,\n hasCloseManyFilters,\n hasCloseManyRollbackConflicts,\n hierarchyDepth,\n rejectBlankIdsFilter,\n resolveReason,\n};\n"],"names":[],"mappings":"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","debugId":"beb312c4-985b-5187-b0bd-bb5b636bdf1d"}
1
+ {"version":3,"sources":["../../../../../../../../cli/commands/close-many.ts"],"sourcesContent":["/**\n * @module cli/commands/close-many\n *\n * Implements the pm close many command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n createCheckpointId,\n loadMutationCheckpoint,\n restoreCheckpointItems,\n writeMutationCheckpoint,\n type MutationCheckpointItem,\n} from \"../../core/checkpoint/mutation-checkpoint.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { toErrorMessage } from \"../../core/shared/primitives.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { listAllFrontMatterLight } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose, type CloseCommandOptions } from \"./close.js\";\nimport { hasListFilters } from \"./list-filter-shared.js\";\nimport { runList, type ListOptions, type ListedItem } from \"./list.js\";\nimport { runRestore } from \"./restore.js\";\n\nconst CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;\nconst CLOSE_MANY_CHECKPOINT_SUBDIR = \"close-many\";\n\nconst CLOSE_MANY_FILTER_GUIDANCE = [\n \"--filter-status\",\n \"--filter-type\",\n \"--filter-tag\",\n \"--filter-priority\",\n \"--filter-sprint\",\n \"--filter-release\",\n \"--filter-parent\",\n \"--filter-assignee\",\n \"--filter-updated-before\",\n \"--ids\",\n].join(\", \");\n\n/**\n * Documents the close many command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseManyCommandOptions {\n status?: string;\n list?: ListOptions;\n reason?: string;\n resolution?: string;\n expectedResult?: string;\n actualResult?: string;\n validateClose?: string;\n author?: string;\n message?: string;\n force?: boolean;\n dryRun?: boolean;\n rollback?: string;\n checkpoint?: boolean;\n}\n\ninterface CloseManyPlanRow {\n id: string;\n title: string;\n status: string;\n action: \"close\" | \"skip\";\n skip_reason?: string;\n active_child_ids?: string[];\n}\n\ninterface CloseManyApplyRow {\n id: string;\n status: \"closed\" | \"skipped\" | \"failed\";\n skip_reason?: string;\n changed_fields?: string[];\n warnings?: string[];\n error?: string;\n}\n\n/**\n * Documents the close many result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CloseManyResult {\n mode: \"dry_run\" | \"apply\" | \"rollback\";\n matched_count: number;\n dry_run: boolean;\n reason?: string;\n filters?: Record<string, unknown>;\n validate_close?: string;\n item_plans?: CloseManyPlanRow[];\n checkpoint?: {\n id: string;\n created_at: string;\n path: string;\n rollback_command: string;\n };\n closed_count?: number;\n skipped_count?: number;\n failed_count?: number;\n restored_count?: number;\n rollback_checkpoint_id?: string;\n rows?: CloseManyApplyRow[] | Array<{ id: string; status: \"restored\" | \"failed\"; changed_fields?: string[]; warnings?: string[]; error?: string }>;\n ids: string[];\n}\n\nfunction hasCloseManyFilters(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status, { includePagination: false });\n}\n\nfunction hasCloseManyRollbackConflicts(list: ListOptions | undefined, status: string | undefined): boolean {\n return hasListFilters(list, status);\n}\n\nfunction rejectBlankIdsFilter(list: ListOptions | undefined): void {\n if (list?.ids != null && String(list.ids).trim().length === 0) {\n throw new PmCliError(\"--ids requires at least one non-empty item ID\", EXIT_CODE.USAGE);\n }\n}\n\nfunction activeListOptions(list: ListOptions | undefined): ListOptions {\n const active: ListOptions = {};\n if (!list) {\n return active;\n }\n for (const [key, value] of Object.entries(list) as Array<[keyof ListOptions, unknown]>) {\n if (value == null || (typeof value === \"string\" && !value.split(\",\").some((entry) => entry.trim().length > 0))) {\n continue;\n }\n (active as Record<string, unknown>)[key] = value;\n }\n return active;\n}\n\nfunction resolveReason(reason: unknown, required: boolean): string | undefined {\n const trimmed = String(reason ?? \"\").trim();\n if (trimmed.length > 0) {\n return trimmed;\n }\n if (required) {\n throw new PmCliError(\n \"pm close-many requires a shared close reason via --reason because governance.require_close_reason is enabled.\",\n EXIT_CODE.USAGE,\n {\n code: \"close_reason_required\",\n required: \"Provide a shared closing summary via --reason for the whole batch.\",\n why: \"governance.require_close_reason is enabled, so every close must record why the items are done.\",\n examples: [\n 'pm close-many --filter-sprint S-12 --reason \"Sprint S-12 acceptance criteria met\"',\n 'pm close-many --ids pm-a,pm-b --reason \"Superseded by redesign\"',\n ],\n nextSteps: [\n \"Re-run with --reason describing the shared outcome.\",\n \"To stop requiring reasons, run: pm config set governance-require-close-reason --policy disabled\",\n ],\n },\n );\n }\n return undefined;\n}\n\n// Build a parent -> non-terminal child id map in a single light scan so each\n// matched parent can be annotated with the active children that closing it\n// would orphan (the same signal runClose surfaces per item on apply).\nasync function buildActiveChildrenByParent(\n pmRoot: string,\n settings: Awaited<ReturnType<typeof readSettings>>,\n): Promise<{ childrenByParent: Map<string, string[]>; parentByChild: Map<string, string> }> {\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const items = await listAllFrontMatterLight(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n undefined,\n settings.schema,\n );\n const childrenByParent = new Map<string, string[]>();\n const parentByChild = new Map<string, string>();\n for (const item of items) {\n if (typeof item.parent !== \"string\" || item.parent.length === 0) {\n continue;\n }\n parentByChild.set(item.id, item.parent);\n if (isTerminalStatus(item.status, statusRegistry)) {\n continue;\n }\n const existing = childrenByParent.get(item.parent);\n if (existing) {\n existing.push(item.id);\n } else {\n childrenByParent.set(item.parent, [item.id]);\n }\n }\n for (const ids of childrenByParent.values()) {\n ids.sort((left, right) => left.localeCompare(right));\n }\n return { childrenByParent, parentByChild };\n}\n\nfunction hierarchyDepth(id: string, parentByChild: Map<string, string>, cache?: Map<string, number>): number {\n const cached = cache?.get(id);\n if (cached !== undefined) {\n return cached;\n }\n let depth = 0;\n let current = parentByChild.get(id);\n const path: string[] = [];\n const visited = new Set<string>();\n let hasCycle = false;\n while (current !== undefined && !visited.has(current)) {\n const cachedCurrent = cache?.get(current);\n if (cachedCurrent !== undefined) {\n depth += cachedCurrent + 1;\n break;\n }\n visited.add(current);\n path.push(current);\n depth += 1;\n current = parentByChild.get(current);\n }\n if (current !== undefined && visited.has(current)) {\n hasCycle = true;\n }\n if (!hasCycle) {\n cache?.set(id, depth);\n for (const [index, ancestorId] of path.entries()) {\n cache?.set(ancestorId, depth - index - 1);\n }\n }\n return depth;\n}\n\n/**\n * Implements run close many for the public runtime surface of this module.\n */\nexport async function runCloseMany(options: CloseManyCommandOptions, global: GlobalOptions): Promise<CloseManyResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n\n const dryRun = options.dryRun === true;\n const rollbackId = typeof options.rollback === \"string\" ? options.rollback : undefined;\n rejectBlankIdsFilter(options.list);\n\n if (rollbackId) {\n if (dryRun) {\n throw new PmCliError(\"--dry-run cannot be combined with --rollback\", EXIT_CODE.USAGE);\n }\n if (hasCloseManyRollbackConflicts(options.list, options.status)) {\n throw new PmCliError(\"Rollback mode does not accept filter options\", EXIT_CODE.USAGE);\n }\n const checkpoint = await loadMutationCheckpoint(\n pmRoot,\n CLOSE_MANY_CHECKPOINT_SUBDIR,\n rollbackId,\n CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n );\n const restoreMessage = options.message ?? `Rollback close-many checkpoint ${checkpoint.id}`;\n const rollback = await restoreCheckpointItems(checkpoint.items, (id, targetUpdatedAt) =>\n runRestore(id, targetUpdatedAt, { author: options.author, message: restoreMessage, force: true }, global),\n );\n return {\n mode: \"rollback\",\n matched_count: checkpoint.items.length,\n dry_run: false,\n rollback_checkpoint_id: checkpoint.id,\n checkpoint: {\n id: checkpoint.id,\n created_at: checkpoint.created_at,\n path: checkpoint.path,\n rollback_command: `pm close-many --rollback ${checkpoint.id}`,\n },\n restored_count: rollback.restored_ids.length,\n failed_count: rollback.failed_count,\n rows: rollback.rows,\n ids: rollback.restored_ids,\n };\n }\n\n if (!hasCloseManyFilters(options.list, options.status)) {\n throw new PmCliError(\n `close-many requires at least one filter to scope the close (for example: ${CLOSE_MANY_FILTER_GUIDANCE}). Refusing to match every item.`,\n EXIT_CODE.USAGE,\n );\n }\n\n const reason = resolveReason(options.reason, settings.governance.require_close_reason);\n const validateCloseMode = options.validateClose;\n const force = options.force === true;\n\n const listOptions = activeListOptions(options.list);\n const listed = await runList(options.status, listOptions, global);\n const { childrenByParent, parentByChild } = await buildActiveChildrenByParent(pmRoot, settings);\n const depthCache = new Map<string, number>();\n const matched = [...(listed.items as ListedItem[])].sort((left, right) => {\n const depthDelta = hierarchyDepth(right.id, parentByChild, depthCache) - hierarchyDepth(left.id, parentByChild, depthCache);\n return depthDelta !== 0 ? depthDelta : left.id.localeCompare(right.id);\n });\n const closePlannedIds = new Set(\n matched\n .filter((item) => force || !isTerminalStatus(item.status, statusRegistry))\n .map((item) => item.id),\n );\n\n const planRows: CloseManyPlanRow[] = matched.map((item) => {\n const alreadyTerminal = isTerminalStatus(item.status, statusRegistry);\n const activeChildIds = (childrenByParent.get(item.id) ?? []).filter((childId) => !closePlannedIds.has(childId));\n const willSkip = alreadyTerminal && !force;\n return {\n id: item.id,\n title: typeof item.title === \"string\" ? item.title : \"\",\n status: item.status,\n action: willSkip ? \"skip\" : \"close\",\n ...(willSkip ? { skip_reason: \"already_terminal\" } : {}),\n ...(activeChildIds.length > 0 ? { active_child_ids: activeChildIds } : {}),\n };\n });\n\n if (dryRun) {\n return {\n mode: \"dry_run\",\n matched_count: matched.length,\n dry_run: true,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n item_plans: planRows,\n ids: [],\n };\n }\n\n const closableIds = new Set(planRows.filter((row) => row.action === \"close\").map((row) => row.id));\n\n const nowValue = nowIso();\n const checkpointId = createCheckpointId(CLOSE_MANY_CHECKPOINT_SUBDIR, nowValue);\n const checkpointEnabled = options.checkpoint !== false;\n let checkpointInfo: CloseManyResult[\"checkpoint\"] | undefined;\n if (checkpointEnabled && closableIds.size > 0) {\n const checkpointItems: MutationCheckpointItem[] = matched\n .filter((item) => closableIds.has(item.id))\n .map((item) => ({ id: item.id, target_updated_at: item.updated_at }));\n const checkpointPath = await writeMutationCheckpoint(pmRoot, CLOSE_MANY_CHECKPOINT_SUBDIR, checkpointId, {\n schema_version: CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION,\n id: checkpointId,\n created_at: nowValue,\n author: resolveAuthor(options.author, \"unknown\"),\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n items: checkpointItems,\n });\n checkpointInfo = {\n id: checkpointId,\n created_at: nowValue,\n path: checkpointPath,\n rollback_command: `pm close-many --rollback ${checkpointId}`,\n };\n }\n\n const closeOptions: CloseCommandOptions = {\n author: options.author,\n message: options.message ?? `close-many apply ${checkpointId}`,\n validateClose: validateCloseMode,\n force,\n resolution: options.resolution,\n expectedResult: options.expectedResult,\n actualResult: options.actualResult,\n };\n\n const rows: CloseManyApplyRow[] = [];\n const closedIds: string[] = [];\n for (const item of matched) {\n if (!closableIds.has(item.id)) {\n rows.push({ id: item.id, status: \"skipped\", skip_reason: \"already_terminal\" });\n continue;\n }\n try {\n const result = await runClose(item.id, reason, closeOptions, global);\n rows.push({\n id: item.id,\n status: \"closed\",\n changed_fields: result.changed_fields,\n ...(result.warnings && result.warnings.length > 0 ? { warnings: result.warnings } : {}),\n });\n closedIds.push(item.id);\n } catch (error: unknown) {\n rows.push({ id: item.id, status: \"failed\", error: toErrorMessage(error) });\n }\n }\n\n return {\n mode: \"apply\",\n matched_count: matched.length,\n dry_run: false,\n ...(reason !== undefined ? { reason } : {}),\n filters: listed.filters,\n ...(validateCloseMode ? { validate_close: validateCloseMode } : {}),\n ...(checkpointInfo ? { checkpoint: checkpointInfo } : {}),\n closed_count: rows.filter((row) => row.status === \"closed\").length,\n skipped_count: rows.filter((row) => row.status === \"skipped\").length,\n failed_count: rows.filter((row) => row.status === \"failed\").length,\n rows,\n ids: closedIds,\n };\n}\n\nexport const _testOnly = {\n activeListOptions,\n buildActiveChildrenByParent,\n hasCloseManyFilters,\n hasCloseManyRollbackConflicts,\n hierarchyDepth,\n rejectBlankIdsFilter,\n resolveReason,\n};\n"],"names":[],"mappings":"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","debugId":"35c16ca4-7008-5026-a440-58da2eee0015"}
@@ -1,23 +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]="bb954701-24a1-56b8-8e2e-72aabb4589ff")}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]="2b734356-43f8-55d2-af9c-ea78787f9965")}catch(e){}}();
3
3
  import {
4
4
  parseAnnotationTextInput,
5
5
  runAnnotationCommand
6
- } from "./chunk-GDUMGZK3.js";
7
- import "./chunk-T5RRNDA7.js";
6
+ } from "./chunk-W4ULYO7Z.js";
8
7
  import {
9
8
  createStdinTokenResolver
10
- } from "./chunk-KIEAK7YE.js";
11
- import "./chunk-V4UYNSEM.js";
12
- import "./chunk-KJZOSF7J.js";
13
- import "./chunk-FBLT6WGK.js";
14
- import "./chunk-ZLWRPBOW.js";
15
- import "./chunk-TKPP4GOO.js";
16
- import "./chunk-FMWW2JDU.js";
9
+ } from "./chunk-ZRP4VG5U.js";
10
+ import "./chunk-T5RRNDA7.js";
11
+ import "./chunk-UZIWVBE6.js";
12
+ import "./chunk-JSU5P7VS.js";
13
+ import "./chunk-QCWF6IYD.js";
14
+ import "./chunk-AXIDKKAT.js";
17
15
  import {
18
16
  EXIT_CODE,
19
17
  PmCliError
20
- } from "./chunk-VSAABFGQ.js";
18
+ } from "./chunk-7R4QEMZZ.js";
21
19
 
22
20
  // dist/cli/commands/comments.js
23
21
  import { readFile } from "node:fs/promises";
@@ -119,6 +117,6 @@ async function runComments(id, options, global) {
119
117
  export {
120
118
  runComments
121
119
  };
122
- //# sourceMappingURL=comments-5YM62D75.js.map
120
+ //# sourceMappingURL=comments-QCKR2YY2.js.map
123
121
 
124
- //# debugId=bb954701-24a1-56b8-8e2e-72aabb4589ff
122
+ //# debugId=2b734356-43f8-55d2-af9c-ea78787f9965
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../cli/commands/comments.ts"],"sourcesContent":["/**\n * @module cli/commands/comments\n *\n * Implements the pm comments command surface and its agent-facing runtime behavior.\n */\nimport { readFile } from \"node:fs/promises\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { createStdinTokenResolver } from \"../../core/item/parse.js\";\nimport type { Comment } from \"../../types/index.js\";\nimport { parseAnnotationTextInput, runAnnotationCommand } from \"./annotation-command.js\";\n\n/**\n * Documents the comments command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommentsCommandOptions {\n add?: string;\n stdin?: boolean;\n file?: string;\n edit?: number;\n delete?: number;\n limit?: string;\n includeMeta?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditComment?: boolean;\n}\n\n/**\n * Documents the comments result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommentsResult {\n id: string;\n comments: Comment[];\n count: number;\n total_count?: number;\n returned_count?: number;\n has_more?: boolean;\n limit?: number;\n}\n\ninterface ResolvedCommentInput {\n mode: \"list\" | \"add\" | \"stdin\" | \"file\" | \"edit\" | \"delete\";\n value?: string;\n emptyFlag?: string;\n index?: number;\n}\n\nfunction isErrnoError(error: unknown): error is NodeJS.ErrnoException {\n return typeof error === \"object\" && error !== null && \"code\" in error;\n}\n\nasync function resolveCommentTextSource(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<{ value: string; emptyFlag: string } | undefined> {\n const hasAdd = options.add !== undefined;\n const hasStdin = options.stdin === true;\n const hasFile = typeof options.file === \"string\";\n const sourceCount = Number(hasAdd) + Number(hasStdin) + Number(hasFile);\n if (sourceCount === 0) {\n return undefined;\n }\n if (sourceCount > 1) {\n throw new PmCliError(\"Specify comment text using only one input source: --add, --stdin, or --file\", EXIT_CODE.USAGE);\n }\n if (hasAdd) {\n const addInput = await stdinResolver.resolveValue(options.add, \"--add\");\n return { value: addInput ?? \"\", emptyFlag: \"--add\" };\n }\n if (hasStdin) {\n const stdinInput = await stdinResolver.resolveValue(\"-\", \"--stdin\");\n return { value: stdinInput ?? \"\", emptyFlag: \"--stdin\" };\n }\n const filePath = (options.file as string).trim();\n if (!filePath) {\n throw new PmCliError(\"--file path cannot be empty\", EXIT_CODE.USAGE);\n }\n try {\n const fileInput = await readFile(filePath, \"utf8\");\n return { value: fileInput, emptyFlag: \"--file\" };\n } catch (error: unknown) {\n if (isErrnoError(error) && error.code === \"ENOENT\") {\n throw new PmCliError(`--file path not found: ${filePath}`, EXIT_CODE.USAGE);\n }\n const detail = error instanceof Error ? error.message : String(error);\n throw new PmCliError(`Failed to read --file path \"${filePath}\": ${detail}`, EXIT_CODE.USAGE);\n }\n}\n\nasync function resolveCommentInput(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<ResolvedCommentInput> {\n const hasEdit = options.edit !== undefined;\n const hasDelete = options.delete !== undefined;\n if (hasEdit && hasDelete) {\n throw new PmCliError(\"Specify only one of --edit or --delete\", EXIT_CODE.USAGE);\n }\n\n if (hasDelete) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource !== undefined) {\n throw new PmCliError(\"--delete does not take comment text\", EXIT_CODE.USAGE);\n }\n return { mode: \"delete\", index: options.delete };\n }\n\n if (hasEdit) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n throw new PmCliError(\n \"--edit requires replacement text via positional [text], --add, --stdin, or --file\",\n EXIT_CODE.USAGE,\n );\n }\n return {\n mode: \"edit\",\n index: options.edit,\n value: textSource.value,\n emptyFlag: textSource.emptyFlag,\n };\n }\n\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n return { mode: \"list\" };\n }\n // Map the single resolved input source back to its add/stdin/file mode so the\n // caller still knows whether to run plain-text markdown parsing (add-only).\n const mode = textSource.emptyFlag === \"--add\" ? \"add\" : textSource.emptyFlag === \"--stdin\" ? \"stdin\" : \"file\";\n return { mode, value: textSource.value, emptyFlag: textSource.emptyFlag };\n}\n\n/**\n * Implements run comments for the public runtime surface of this module.\n */\nexport async function runComments(id: string, options: CommentsCommandOptions, global: GlobalOptions): Promise<CommentsResult> {\n const stdinResolver = createStdinTokenResolver();\n const commentInput = await resolveCommentInput(options, stdinResolver);\n\n const shouldParseText = commentInput.mode === \"add\" || commentInput.mode === \"edit\";\n // list/delete carry no text (value undefined → \"\"); add/edit/stdin/file always\n // resolve to a string. Normalize once so neither branch below is unreachable.\n const rawValue = commentInput.value ?? \"\";\n return runAnnotationCommand<\"comments\", Comment>(id, options, global, {\n input: {\n ...commentInput,\n value: shouldParseText ? parseAnnotationTextInput(rawValue, { stripPlainTextPrefix: true }) : rawValue,\n },\n collectionKey: \"comments\",\n op: \"comment_add\",\n editOp: \"comment_edit\",\n deleteOp: \"comment_delete\",\n parseText: (raw) => raw,\n allowAuditBypass: Boolean(options.allowAuditComment),\n conflictGuidance: {\n required:\n \"For append-only comment audits on another owner's item, prefer --allow-audit-comment before considering --force.\",\n examples: ['pm comments pm-a1b2 --add \"audit note\" --author \"reviewer\" --allow-audit-comment'],\n nextSteps: [\n \"Retry with --allow-audit-comment for append-only audits that do not mutate item metadata beyond comments.\",\n \"Use --force only when an ownership override is explicitly approved.\",\n ],\n },\n });\n}\n"],"names":["textSource"],"mappings":"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","debugId":"bb954701-24a1-56b8-8e2e-72aabb4589ff"}
1
+ {"version":3,"sources":["../../../../../../../../cli/commands/comments.ts"],"sourcesContent":["/**\n * @module cli/commands/comments\n *\n * Implements the pm comments command surface and its agent-facing runtime behavior.\n */\nimport { readFile } from \"node:fs/promises\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { createStdinTokenResolver } from \"../../core/item/parse.js\";\nimport type { Comment } from \"../../types/index.js\";\nimport { parseAnnotationTextInput, runAnnotationCommand } from \"./annotation-command.js\";\n\n/**\n * Documents the comments command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommentsCommandOptions {\n add?: string;\n stdin?: boolean;\n file?: string;\n edit?: number;\n delete?: number;\n limit?: string;\n includeMeta?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditComment?: boolean;\n}\n\n/**\n * Documents the comments result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommentsResult {\n id: string;\n comments: Comment[];\n count: number;\n total_count?: number;\n returned_count?: number;\n has_more?: boolean;\n limit?: number;\n}\n\ninterface ResolvedCommentInput {\n mode: \"list\" | \"add\" | \"stdin\" | \"file\" | \"edit\" | \"delete\";\n value?: string;\n emptyFlag?: string;\n index?: number;\n}\n\nfunction isErrnoError(error: unknown): error is NodeJS.ErrnoException {\n return typeof error === \"object\" && error !== null && \"code\" in error;\n}\n\nasync function resolveCommentTextSource(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<{ value: string; emptyFlag: string } | undefined> {\n const hasAdd = options.add !== undefined;\n const hasStdin = options.stdin === true;\n const hasFile = typeof options.file === \"string\";\n const sourceCount = Number(hasAdd) + Number(hasStdin) + Number(hasFile);\n if (sourceCount === 0) {\n return undefined;\n }\n if (sourceCount > 1) {\n throw new PmCliError(\"Specify comment text using only one input source: --add, --stdin, or --file\", EXIT_CODE.USAGE);\n }\n if (hasAdd) {\n const addInput = await stdinResolver.resolveValue(options.add, \"--add\");\n return { value: addInput ?? \"\", emptyFlag: \"--add\" };\n }\n if (hasStdin) {\n const stdinInput = await stdinResolver.resolveValue(\"-\", \"--stdin\");\n return { value: stdinInput ?? \"\", emptyFlag: \"--stdin\" };\n }\n const filePath = (options.file as string).trim();\n if (!filePath) {\n throw new PmCliError(\"--file path cannot be empty\", EXIT_CODE.USAGE);\n }\n try {\n const fileInput = await readFile(filePath, \"utf8\");\n return { value: fileInput, emptyFlag: \"--file\" };\n } catch (error: unknown) {\n if (isErrnoError(error) && error.code === \"ENOENT\") {\n throw new PmCliError(`--file path not found: ${filePath}`, EXIT_CODE.USAGE);\n }\n const detail = error instanceof Error ? error.message : String(error);\n throw new PmCliError(`Failed to read --file path \"${filePath}\": ${detail}`, EXIT_CODE.USAGE);\n }\n}\n\nasync function resolveCommentInput(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<ResolvedCommentInput> {\n const hasEdit = options.edit !== undefined;\n const hasDelete = options.delete !== undefined;\n if (hasEdit && hasDelete) {\n throw new PmCliError(\"Specify only one of --edit or --delete\", EXIT_CODE.USAGE);\n }\n\n if (hasDelete) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource !== undefined) {\n throw new PmCliError(\"--delete does not take comment text\", EXIT_CODE.USAGE);\n }\n return { mode: \"delete\", index: options.delete };\n }\n\n if (hasEdit) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n throw new PmCliError(\n \"--edit requires replacement text via positional [text], --add, --stdin, or --file\",\n EXIT_CODE.USAGE,\n );\n }\n return {\n mode: \"edit\",\n index: options.edit,\n value: textSource.value,\n emptyFlag: textSource.emptyFlag,\n };\n }\n\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n return { mode: \"list\" };\n }\n // Map the single resolved input source back to its add/stdin/file mode so the\n // caller still knows whether to run plain-text markdown parsing (add-only).\n const mode = textSource.emptyFlag === \"--add\" ? \"add\" : textSource.emptyFlag === \"--stdin\" ? \"stdin\" : \"file\";\n return { mode, value: textSource.value, emptyFlag: textSource.emptyFlag };\n}\n\n/**\n * Implements run comments for the public runtime surface of this module.\n */\nexport async function runComments(id: string, options: CommentsCommandOptions, global: GlobalOptions): Promise<CommentsResult> {\n const stdinResolver = createStdinTokenResolver();\n const commentInput = await resolveCommentInput(options, stdinResolver);\n\n const shouldParseText = commentInput.mode === \"add\" || commentInput.mode === \"edit\";\n // list/delete carry no text (value undefined → \"\"); add/edit/stdin/file always\n // resolve to a string. Normalize once so neither branch below is unreachable.\n const rawValue = commentInput.value ?? \"\";\n return runAnnotationCommand<\"comments\", Comment>(id, options, global, {\n input: {\n ...commentInput,\n value: shouldParseText ? parseAnnotationTextInput(rawValue, { stripPlainTextPrefix: true }) : rawValue,\n },\n collectionKey: \"comments\",\n op: \"comment_add\",\n editOp: \"comment_edit\",\n deleteOp: \"comment_delete\",\n parseText: (raw) => raw,\n allowAuditBypass: Boolean(options.allowAuditComment),\n conflictGuidance: {\n required:\n \"For append-only comment audits on another owner's item, prefer --allow-audit-comment before considering --force.\",\n examples: ['pm comments pm-a1b2 --add \"audit note\" --author \"reviewer\" --allow-audit-comment'],\n nextSteps: [\n \"Retry with --allow-audit-comment for append-only audits that do not mutate item metadata beyond comments.\",\n \"Use --force only when an ownership override is explicitly approved.\",\n ],\n },\n });\n}\n"],"names":["textSource"],"mappings":"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","debugId":"2b734356-43f8-55d2-af9c-ea78787f9965"}
@@ -1,21 +1,19 @@
1
1
  import {
2
2
  parseAnnotationTextInput,
3
3
  runAnnotationCommand
4
- } from "./chunk-A66VYUOV.js";
5
- import "./chunk-WW4E2DC3.js";
4
+ } from "./chunk-2466X6E4.js";
6
5
  import {
7
6
  createStdinTokenResolver
8
- } from "./chunk-CZIFFMZI.js";
9
- import "./chunk-JV27C7OZ.js";
10
- import "./chunk-OHDQNKJB.js";
11
- import "./chunk-B74BP6IS.js";
12
- import "./chunk-C4C3EJCJ.js";
13
- import "./chunk-ZV7IQ23N.js";
14
- import "./chunk-I6QMJ2XT.js";
7
+ } from "./chunk-DDPTYJIM.js";
8
+ import "./chunk-WW4E2DC3.js";
9
+ import "./chunk-4DUVCVLZ.js";
10
+ import "./chunk-3K2M5OYU.js";
11
+ import "./chunk-BHO33VBQ.js";
12
+ import "./chunk-WYDHYJPO.js";
15
13
  import {
16
14
  EXIT_CODE,
17
15
  PmCliError
18
- } from "./chunk-EYPINTFR.js";
16
+ } from "./chunk-RVUALSJF.js";
19
17
 
20
18
  // dist/cli/commands/comments.js
21
19
  import { readFile } from "node:fs/promises";
@@ -124,4 +122,4 @@ async function runComments(id, options, global2) {
124
122
  export {
125
123
  runComments
126
124
  };
127
- //# sourceMappingURL=comments-RH3IBIRH.js.map
125
+ //# sourceMappingURL=comments-YUXJRZPQ.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../../cli/commands/comments.ts"],
4
4
  "sourcesContent": ["/**\n * @module cli/commands/comments\n *\n * Implements the pm comments command surface and its agent-facing runtime behavior.\n */\nimport { readFile } from \"node:fs/promises\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { createStdinTokenResolver } from \"../../core/item/parse.js\";\nimport type { Comment } from \"../../types/index.js\";\nimport { parseAnnotationTextInput, runAnnotationCommand } from \"./annotation-command.js\";\n\n/**\n * Documents the comments command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommentsCommandOptions {\n add?: string;\n stdin?: boolean;\n file?: string;\n edit?: number;\n delete?: number;\n limit?: string;\n includeMeta?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditComment?: boolean;\n}\n\n/**\n * Documents the comments result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CommentsResult {\n id: string;\n comments: Comment[];\n count: number;\n total_count?: number;\n returned_count?: number;\n has_more?: boolean;\n limit?: number;\n}\n\ninterface ResolvedCommentInput {\n mode: \"list\" | \"add\" | \"stdin\" | \"file\" | \"edit\" | \"delete\";\n value?: string;\n emptyFlag?: string;\n index?: number;\n}\n\nfunction isErrnoError(error: unknown): error is NodeJS.ErrnoException {\n return typeof error === \"object\" && error !== null && \"code\" in error;\n}\n\nasync function resolveCommentTextSource(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<{ value: string; emptyFlag: string } | undefined> {\n const hasAdd = options.add !== undefined;\n const hasStdin = options.stdin === true;\n const hasFile = typeof options.file === \"string\";\n const sourceCount = Number(hasAdd) + Number(hasStdin) + Number(hasFile);\n if (sourceCount === 0) {\n return undefined;\n }\n if (sourceCount > 1) {\n throw new PmCliError(\"Specify comment text using only one input source: --add, --stdin, or --file\", EXIT_CODE.USAGE);\n }\n if (hasAdd) {\n const addInput = await stdinResolver.resolveValue(options.add, \"--add\");\n return { value: addInput ?? \"\", emptyFlag: \"--add\" };\n }\n if (hasStdin) {\n const stdinInput = await stdinResolver.resolveValue(\"-\", \"--stdin\");\n return { value: stdinInput ?? \"\", emptyFlag: \"--stdin\" };\n }\n const filePath = (options.file as string).trim();\n if (!filePath) {\n throw new PmCliError(\"--file path cannot be empty\", EXIT_CODE.USAGE);\n }\n try {\n const fileInput = await readFile(filePath, \"utf8\");\n return { value: fileInput, emptyFlag: \"--file\" };\n } catch (error: unknown) {\n if (isErrnoError(error) && error.code === \"ENOENT\") {\n throw new PmCliError(`--file path not found: ${filePath}`, EXIT_CODE.USAGE);\n }\n const detail = error instanceof Error ? error.message : String(error);\n throw new PmCliError(`Failed to read --file path \"${filePath}\": ${detail}`, EXIT_CODE.USAGE);\n }\n}\n\nasync function resolveCommentInput(\n options: CommentsCommandOptions,\n stdinResolver: ReturnType<typeof createStdinTokenResolver>,\n): Promise<ResolvedCommentInput> {\n const hasEdit = options.edit !== undefined;\n const hasDelete = options.delete !== undefined;\n if (hasEdit && hasDelete) {\n throw new PmCliError(\"Specify only one of --edit or --delete\", EXIT_CODE.USAGE);\n }\n\n if (hasDelete) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource !== undefined) {\n throw new PmCliError(\"--delete does not take comment text\", EXIT_CODE.USAGE);\n }\n return { mode: \"delete\", index: options.delete };\n }\n\n if (hasEdit) {\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n throw new PmCliError(\n \"--edit requires replacement text via positional [text], --add, --stdin, or --file\",\n EXIT_CODE.USAGE,\n );\n }\n return {\n mode: \"edit\",\n index: options.edit,\n value: textSource.value,\n emptyFlag: textSource.emptyFlag,\n };\n }\n\n const textSource = await resolveCommentTextSource(options, stdinResolver);\n if (textSource === undefined) {\n return { mode: \"list\" };\n }\n // Map the single resolved input source back to its add/stdin/file mode so the\n // caller still knows whether to run plain-text markdown parsing (add-only).\n const mode = textSource.emptyFlag === \"--add\" ? \"add\" : textSource.emptyFlag === \"--stdin\" ? \"stdin\" : \"file\";\n return { mode, value: textSource.value, emptyFlag: textSource.emptyFlag };\n}\n\n/**\n * Implements run comments for the public runtime surface of this module.\n */\nexport async function runComments(id: string, options: CommentsCommandOptions, global: GlobalOptions): Promise<CommentsResult> {\n const stdinResolver = createStdinTokenResolver();\n const commentInput = await resolveCommentInput(options, stdinResolver);\n\n const shouldParseText = commentInput.mode === \"add\" || commentInput.mode === \"edit\";\n // list/delete carry no text (value undefined → \"\"); add/edit/stdin/file always\n // resolve to a string. Normalize once so neither branch below is unreachable.\n const rawValue = commentInput.value ?? \"\";\n return runAnnotationCommand<\"comments\", Comment>(id, options, global, {\n input: {\n ...commentInput,\n value: shouldParseText ? parseAnnotationTextInput(rawValue, { stripPlainTextPrefix: true }) : rawValue,\n },\n collectionKey: \"comments\",\n op: \"comment_add\",\n editOp: \"comment_edit\",\n deleteOp: \"comment_delete\",\n parseText: (raw) => raw,\n allowAuditBypass: Boolean(options.allowAuditComment),\n conflictGuidance: {\n required:\n \"For append-only comment audits on another owner's item, prefer --allow-audit-comment before considering --force.\",\n examples: ['pm comments pm-a1b2 --add \"audit note\" --author \"reviewer\" --allow-audit-comment'],\n nextSteps: [\n \"Retry with --allow-audit-comment for append-only audits that do not mutate item metadata beyond comments.\",\n \"Use --force only when an ownership override is explicitly approved.\",\n ],\n },\n });\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["textSource", "global"]
7
7
  }