@unbrained/pm-cli 2026.6.19 → 2026.6.20

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 (517) hide show
  1. package/CHANGELOG.md +311 -258
  2. package/README.md +1 -1
  3. package/dist/cli/bootstrap-args.d.ts +12 -1
  4. package/dist/cli/bootstrap-args.js +20 -9
  5. package/dist/cli/bootstrap-args.js.map +1 -1
  6. package/dist/cli/commander-usage.js +31 -25
  7. package/dist/cli/commander-usage.js.map +1 -1
  8. package/dist/cli/commands/completion.js +3 -3
  9. package/dist/cli/commands/completion.js.map +1 -1
  10. package/dist/cli/commands/contracts.js +4 -3
  11. package/dist/cli/commands/contracts.js.map +1 -1
  12. package/dist/cli/commands/eval.d.ts +62 -0
  13. package/dist/cli/commands/eval.js +158 -0
  14. package/dist/cli/commands/eval.js.map +1 -0
  15. package/dist/cli/commands/extension/install-sources.d.ts +12 -0
  16. package/dist/cli/commands/extension/install-sources.js +77 -10
  17. package/dist/cli/commands/extension/install-sources.js.map +1 -1
  18. package/dist/cli/commands/gc.d.ts +12 -1
  19. package/dist/cli/commands/gc.js +53 -6
  20. package/dist/cli/commands/gc.js.map +1 -1
  21. package/dist/cli/commands/health.js +14 -8
  22. package/dist/cli/commands/health.js.map +1 -1
  23. package/dist/cli/commands/index.d.ts +1 -0
  24. package/dist/cli/commands/index.js +3 -2
  25. package/dist/cli/commands/index.js.map +1 -1
  26. package/dist/cli/commands/linked-artifacts.js +13 -3
  27. package/dist/cli/commands/linked-artifacts.js.map +1 -1
  28. package/dist/cli/commands/list.js +12 -9
  29. package/dist/cli/commands/list.js.map +1 -1
  30. package/dist/cli/commands/plan.js +2 -2
  31. package/dist/cli/commands/plan.js.map +1 -1
  32. package/dist/cli/commands/restore.js +5 -11
  33. package/dist/cli/commands/restore.js.map +1 -1
  34. package/dist/cli/commands/search.d.ts +39 -1
  35. package/dist/cli/commands/search.js +89 -12
  36. package/dist/cli/commands/search.js.map +1 -1
  37. package/dist/cli/commands/update.js +96 -58
  38. package/dist/cli/commands/update.js.map +1 -1
  39. package/dist/cli/extension-command-help.d.ts +9 -0
  40. package/dist/cli/extension-command-help.js +13 -2
  41. package/dist/cli/extension-command-help.js.map +1 -1
  42. package/dist/cli/extension-command-options.d.ts +8 -0
  43. package/dist/cli/extension-command-options.js +27 -2
  44. package/dist/cli/extension-command-options.js.map +1 -1
  45. package/dist/cli/help-content.js +15 -2
  46. package/dist/cli/help-content.js.map +1 -1
  47. package/dist/cli/main.d.ts +12 -0
  48. package/dist/cli/main.js +49 -9
  49. package/dist/cli/main.js.map +1 -1
  50. package/dist/cli/register-list-query.js +34 -4
  51. package/dist/cli/register-list-query.js.map +1 -1
  52. package/dist/cli/register-operations.js +3 -3
  53. package/dist/cli/register-operations.js.map +1 -1
  54. package/dist/cli-bundle/chunks/activity-7G7NNNZQ.js +18 -0
  55. package/dist/cli-bundle/chunks/{activity-XJ7WRNWS.js → activity-KEEITOTB.js} +11 -11
  56. package/dist/cli-bundle/chunks/{aggregate-OFT4YVB6.js → aggregate-5BTHOHW2.js} +10 -10
  57. package/dist/cli-bundle/chunks/{aggregate-LBCWF6UJ.js → aggregate-GB2LJNTZ.js} +10 -10
  58. package/dist/cli-bundle/chunks/{append-BP2ARHOK.js → append-BBM4MNVD.js} +8 -8
  59. package/dist/cli-bundle/chunks/{append-5U3XR5SD.js → append-BFV5UYWS.js} +8 -8
  60. package/dist/cli-bundle/chunks/{chunk-ZZEM2PH7.js → chunk-26OQTCGH.js} +19 -14
  61. package/dist/cli-bundle/chunks/chunk-26OQTCGH.js.map +1 -0
  62. package/dist/cli-bundle/chunks/{chunk-RVG3WLY3.js → chunk-2LUNPA3U.js} +2 -2
  63. package/dist/cli-bundle/chunks/{chunk-OURX4WVG.js → chunk-2QJLN4KM.js} +7 -7
  64. package/dist/cli-bundle/chunks/{search-2JX776KX.js → chunk-2ZY5SLNR.js} +184 -23
  65. package/dist/cli-bundle/chunks/chunk-2ZY5SLNR.js.map +1 -0
  66. package/dist/cli-bundle/chunks/{chunk-AVMSP2HH.js → chunk-3KVCMB2M.js} +2 -2
  67. package/dist/cli-bundle/chunks/{chunk-FVZSUIN5.js → chunk-3WAKNI2W.js} +3 -3
  68. package/dist/cli-bundle/chunks/{chunk-H3DP6OUM.js → chunk-4KFL5OYK.js} +3 -3
  69. package/dist/cli-bundle/chunks/{chunk-VG3B2CYD.js → chunk-4PW4C3ZB.js} +2 -2
  70. package/dist/cli-bundle/chunks/{chunk-SDUZTZ55.js → chunk-4S4INK3B.js} +7 -7
  71. package/dist/cli-bundle/chunks/{chunk-QCHNPN24.js → chunk-4YMX7XFI.js} +7 -5
  72. package/dist/cli-bundle/chunks/{chunk-QSH34DSQ.js → chunk-5MWA46UN.js} +3 -3
  73. package/dist/cli-bundle/chunks/{chunk-UIMLAFOE.js → chunk-5XK2RYJR.js} +7 -7
  74. package/dist/cli-bundle/chunks/{chunk-B2NEFANY.js → chunk-6DZO5NN7.js} +3 -3
  75. package/dist/cli-bundle/chunks/{chunk-VP4Z36GO.js → chunk-6FSPWUBI.js} +2 -2
  76. package/dist/cli-bundle/chunks/{chunk-MPEWACTG.js → chunk-6KARQMC6.js} +2 -2
  77. package/dist/cli-bundle/chunks/{chunk-N7LDJRB4.js → chunk-6KSFULO6.js} +2 -2
  78. package/dist/cli-bundle/chunks/{chunk-XV6N3QND.js → chunk-6LTSLEHD.js} +2 -2
  79. package/dist/cli-bundle/chunks/{chunk-X26ODPU4.js → chunk-6Y7IQ6XN.js} +14 -18
  80. package/dist/cli-bundle/chunks/chunk-6Y7IQ6XN.js.map +7 -0
  81. package/dist/cli-bundle/chunks/{chunk-USKTNI7P.js → chunk-7MMXBIRZ.js} +2 -2
  82. package/dist/cli-bundle/chunks/{chunk-UCNEPMPY.js → chunk-ACULWT7G.js} +105 -66
  83. package/dist/cli-bundle/chunks/chunk-ACULWT7G.js.map +7 -0
  84. package/dist/cli-bundle/chunks/{chunk-2K56AWDP.js → chunk-AOCYDQLT.js} +5 -5
  85. package/dist/cli-bundle/chunks/{chunk-ZBVYKWT2.js → chunk-ATRXPXAL.js} +15 -15
  86. package/dist/cli-bundle/chunks/{chunk-A5JPMD4Q.js → chunk-AW4PYYNF.js} +2 -2
  87. package/dist/cli-bundle/chunks/{chunk-I2VJM36R.js → chunk-AZ75OVK4.js} +20 -21
  88. package/dist/cli-bundle/chunks/chunk-AZ75OVK4.js.map +1 -0
  89. package/dist/cli-bundle/chunks/{chunk-MTGMNUMJ.js → chunk-B3LROPTV.js} +2 -2
  90. package/dist/cli-bundle/chunks/{chunk-NPNNW5TU.js → chunk-BBSUVIIT.js} +8 -8
  91. package/dist/cli-bundle/chunks/{chunk-47BYN6CA.js → chunk-BYNJWB5F.js} +7 -7
  92. package/dist/cli-bundle/chunks/{chunk-PSWSQHM7.js → chunk-BZWIDTDE.js} +15 -19
  93. package/dist/cli-bundle/chunks/chunk-BZWIDTDE.js.map +1 -0
  94. package/dist/cli-bundle/chunks/{chunk-S673PVHD.js → chunk-CNPWCUDR.js} +3 -3
  95. package/dist/cli-bundle/chunks/{chunk-TYQBGXH2.js → chunk-DKWIPIJY.js} +2 -2
  96. package/dist/cli-bundle/chunks/{search-AZR2JITW.js → chunk-DYOJJTCG.js} +190 -22
  97. package/dist/cli-bundle/chunks/chunk-DYOJJTCG.js.map +7 -0
  98. package/dist/cli-bundle/chunks/{chunk-Y4IBSEQ2.js → chunk-E4E7UQBT.js} +20 -8
  99. package/dist/cli-bundle/chunks/chunk-E4E7UQBT.js.map +1 -0
  100. package/dist/cli-bundle/chunks/{chunk-HMQMRHQJ.js → chunk-EKMHDL6Z.js} +8 -8
  101. package/dist/cli-bundle/chunks/{chunk-LIVRA6VG.js → chunk-EOFROIC5.js} +7 -7
  102. package/dist/cli-bundle/chunks/{chunk-NNMBNN6Q.js → chunk-ETJKPURB.js} +7 -5
  103. package/dist/cli-bundle/chunks/{chunk-2E3KSWFG.js → chunk-F4EYOSNC.js} +2 -2
  104. package/dist/cli-bundle/chunks/{chunk-DJ3YYLHG.js → chunk-FA5O2DEG.js} +5 -5
  105. package/dist/cli-bundle/chunks/{chunk-QTWWHFI3.js → chunk-FBBPCSJM.js} +8 -8
  106. package/dist/cli-bundle/chunks/{chunk-EMFDZ7N3.js → chunk-FSOJCFDS.js} +3 -3
  107. package/dist/cli-bundle/chunks/{chunk-M35R7LFX.js → chunk-FXKPUMIR.js} +5 -5
  108. package/dist/cli-bundle/chunks/{chunk-YOGXK3ON.js → chunk-GF44HVZL.js} +18 -13
  109. package/dist/cli-bundle/chunks/chunk-GF44HVZL.js.map +7 -0
  110. package/dist/cli-bundle/chunks/{chunk-UA4ANRJY.js → chunk-H3ZTSYPA.js} +71 -13
  111. package/dist/cli-bundle/chunks/chunk-H3ZTSYPA.js.map +7 -0
  112. package/dist/cli-bundle/chunks/{chunk-II3WDRCM.js → chunk-HWHZ7EY7.js} +3 -3
  113. package/dist/cli-bundle/chunks/{chunk-7R5YKVKO.js → chunk-ICEWMJYH.js} +7 -7
  114. package/dist/cli-bundle/chunks/{chunk-UMTPQMEG.js → chunk-II4BRHKM.js} +3 -3
  115. package/dist/cli-bundle/chunks/{chunk-GDOTTY2S.js → chunk-IWKD7B33.js} +19 -2
  116. package/dist/cli-bundle/chunks/chunk-IWKD7B33.js.map +7 -0
  117. package/dist/cli-bundle/chunks/{chunk-QG6M6XQE.js → chunk-J7VSEFWB.js} +3 -3
  118. package/dist/cli-bundle/chunks/{chunk-22YA6GCA.js → chunk-K2LBDYDC.js} +2 -2
  119. package/dist/cli-bundle/chunks/{chunk-BQVESTOG.js → chunk-KCJZREBI.js} +2 -2
  120. package/dist/cli-bundle/chunks/{chunk-YWAYOWDQ.js → chunk-LTUB7ARL.js} +72 -14
  121. package/dist/cli-bundle/chunks/chunk-LTUB7ARL.js.map +1 -0
  122. package/dist/cli-bundle/chunks/{chunk-DVUU3AHP.js → chunk-MFCFHL27.js} +17 -6
  123. package/dist/cli-bundle/chunks/chunk-MFCFHL27.js.map +1 -0
  124. package/dist/cli-bundle/chunks/{chunk-5P2LQV2F.js → chunk-MTQK5ZSB.js} +2 -2
  125. package/dist/cli-bundle/chunks/{chunk-LEC57E7K.js → chunk-NCGQ27PK.js} +2 -2
  126. package/dist/cli-bundle/chunks/{chunk-2RI3BDFK.js → chunk-NKTUBA2C.js} +10 -9
  127. package/dist/cli-bundle/chunks/chunk-NKTUBA2C.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-5LZPDRFW.js → chunk-NMQNXH4U.js} +5 -5
  129. package/dist/cli-bundle/chunks/{chunk-COHNQLB2.js → chunk-OLEP5TJH.js} +20 -3
  130. package/dist/cli-bundle/chunks/chunk-OLEP5TJH.js.map +1 -0
  131. package/dist/cli-bundle/chunks/{chunk-PRUB7RI4.js → chunk-OVSFW4KD.js} +3 -3
  132. package/dist/cli-bundle/chunks/{chunk-4L7Q4OVT.js → chunk-PF5GLFPU.js} +9 -9
  133. package/dist/cli-bundle/chunks/{chunk-YVYJQR6S.js → chunk-QUTJOHGK.js} +9 -9
  134. package/dist/cli-bundle/chunks/{chunk-5QLHQK7V.js → chunk-QWAJPGEI.js} +25 -26
  135. package/dist/cli-bundle/chunks/chunk-QWAJPGEI.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-K5TD74VU.js → chunk-RADIHKJ3.js} +19 -7
  137. package/dist/cli-bundle/chunks/chunk-RADIHKJ3.js.map +7 -0
  138. package/dist/cli-bundle/chunks/{chunk-CSRFOIHG.js → chunk-RICT5QYR.js} +3 -3
  139. package/dist/cli-bundle/chunks/{chunk-OUG4CL4H.js → chunk-RNKUCHUQ.js} +8 -8
  140. package/dist/cli-bundle/chunks/{chunk-X7RKOJXL.js → chunk-SL233DQD.js} +6 -6
  141. package/dist/cli-bundle/chunks/{chunk-USVOBLGB.js → chunk-U3WTMYBX.js} +2 -2
  142. package/dist/cli-bundle/chunks/{chunk-DYZKSIVX.js → chunk-VE3BUO3R.js} +3 -3
  143. package/dist/cli-bundle/chunks/{chunk-FPQA4ZMA.js → chunk-VONJSFUW.js} +18 -7
  144. package/dist/cli-bundle/chunks/chunk-VONJSFUW.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-RNWE2HZR.js → chunk-W2ZESOQE.js} +15 -15
  146. package/dist/cli-bundle/chunks/{chunk-4BFNWAMQ.js → chunk-WFOITX4A.js} +29 -12
  147. package/dist/cli-bundle/chunks/chunk-WFOITX4A.js.map +7 -0
  148. package/dist/cli-bundle/chunks/{chunk-FP7YLQ52.js → chunk-WMQBNVZL.js} +11 -10
  149. package/dist/cli-bundle/chunks/chunk-WMQBNVZL.js.map +1 -0
  150. package/dist/cli-bundle/chunks/{chunk-5SRID7DV.js → chunk-X3CD2VUI.js} +29 -12
  151. package/dist/cli-bundle/chunks/chunk-X3CD2VUI.js.map +1 -0
  152. package/dist/cli-bundle/chunks/{chunk-GL3QKIET.js → chunk-XKJDCJEH.js} +6 -6
  153. package/dist/cli-bundle/chunks/{chunk-SO2IOH37.js → chunk-XNQ3YH6N.js} +2 -2
  154. package/dist/cli-bundle/chunks/{chunk-ZGEWEO7B.js → chunk-XXGAWTH5.js} +2 -2
  155. package/dist/cli-bundle/chunks/{chunk-4EOS35RL.js → chunk-YBQF4CAW.js} +3 -3
  156. package/dist/cli-bundle/chunks/{chunk-MTDEEUGV.js → chunk-YT4Z2OVB.js} +3 -3
  157. package/dist/cli-bundle/chunks/{chunk-5NS6TJ2F.js → chunk-ZHCSGIUX.js} +2 -2
  158. package/dist/cli-bundle/chunks/{chunk-MAKOMXVM.js → chunk-ZYG4TR32.js} +106 -67
  159. package/dist/cli-bundle/chunks/chunk-ZYG4TR32.js.map +1 -0
  160. package/dist/cli-bundle/chunks/{claim-2BSYPJTJ.js → claim-G57ZJLZ4.js} +10 -10
  161. package/dist/cli-bundle/chunks/{claim-EZ6JKY5X.js → claim-TRSDQO6L.js} +10 -10
  162. package/dist/cli-bundle/chunks/{close-3TSX6BYF.js → close-4QMUQMON.js} +8 -8
  163. package/dist/cli-bundle/chunks/close-NNZZTZ5V.js +15 -0
  164. package/dist/cli-bundle/chunks/{close-many-B7DBVA46.js → close-many-3UWKJRQK.js} +15 -15
  165. package/dist/cli-bundle/chunks/{close-many-HB4UFCS3.js → close-many-A7U62CRI.js} +15 -15
  166. package/dist/cli-bundle/chunks/{comments-M7PAINZT.js → comments-4EM7XR74.js} +10 -10
  167. package/dist/cli-bundle/chunks/{comments-X7M7XM6I.js → comments-URWDZP2I.js} +10 -10
  168. package/dist/cli-bundle/chunks/{config-YICACPHA.js → config-GRJYZ2O3.js} +30 -10
  169. package/dist/cli-bundle/chunks/config-GRJYZ2O3.js.map +1 -0
  170. package/dist/cli-bundle/chunks/{config-UWF3KRP5.js → config-PSZ5GWAK.js} +29 -9
  171. package/dist/cli-bundle/chunks/config-PSZ5GWAK.js.map +7 -0
  172. package/dist/cli-bundle/chunks/{context-EGUGU4K7.js → context-A46YAV2F.js} +13 -13
  173. package/dist/cli-bundle/chunks/{context-V32ZAPL6.js → context-BCR34RKM.js} +13 -13
  174. package/dist/cli-bundle/chunks/{contracts-7G553BHP.js → contracts-HPT25X4D.js} +10 -8
  175. package/dist/cli-bundle/chunks/contracts-HPT25X4D.js.map +1 -0
  176. package/dist/cli-bundle/chunks/{contracts-B2YWYUV5.js → contracts-JOPCQNDP.js} +10 -8
  177. package/dist/cli-bundle/chunks/contracts-JOPCQNDP.js.map +7 -0
  178. package/dist/cli-bundle/chunks/{copy-RMLXLZOL.js → copy-KBTIUW7L.js} +7 -7
  179. package/dist/cli-bundle/chunks/{copy-NWFFRYWM.js → copy-X7V6AEDB.js} +7 -7
  180. package/dist/cli-bundle/chunks/create-4KOAQ6ME.js +30 -0
  181. package/dist/cli-bundle/chunks/{create-GK4MX2LJ.js → create-ZPZKJDFQ.js} +14 -14
  182. package/dist/cli-bundle/chunks/{delete-EFQLVEAS.js → delete-2ZI6CJZM.js} +7 -7
  183. package/dist/cli-bundle/chunks/{delete-RMGNIL2S.js → delete-FGKVPUQZ.js} +7 -7
  184. package/dist/cli-bundle/chunks/{deps-WKHUPVD3.js → deps-IUJOBF2H.js} +7 -7
  185. package/dist/cli-bundle/chunks/{deps-K2I7QV4Y.js → deps-SJCEFU3C.js} +7 -7
  186. package/dist/cli-bundle/chunks/{docs-2H2UGIT6.js → docs-2LXF5SVC.js} +12 -11
  187. package/dist/cli-bundle/chunks/{docs-2H2UGIT6.js.map → docs-2LXF5SVC.js.map} +1 -1
  188. package/dist/cli-bundle/chunks/{docs-3FXRDYA7.js → docs-UWJ75CKR.js} +10 -9
  189. package/dist/cli-bundle/chunks/{docs-3FXRDYA7.js.map → docs-UWJ75CKR.js.map} +1 -1
  190. package/dist/cli-bundle/chunks/eval-FRIDCTM2.js +276 -0
  191. package/dist/cli-bundle/chunks/eval-FRIDCTM2.js.map +1 -0
  192. package/dist/cli-bundle/chunks/eval-ZTT3F3SL.js +286 -0
  193. package/dist/cli-bundle/chunks/eval-ZTT3F3SL.js.map +7 -0
  194. package/dist/cli-bundle/chunks/{extension-4LPTFTV4.js → extension-VRYTNNSV.js} +5 -5
  195. package/dist/cli-bundle/chunks/{extension-ASUPTDCC.js → extension-XFQG3BXL.js} +5 -5
  196. package/dist/cli-bundle/chunks/{files-UAZFB3EA.js → files-AJOGTTAN.js} +10 -9
  197. package/dist/cli-bundle/chunks/{files-UAZFB3EA.js.map → files-AJOGTTAN.js.map} +1 -1
  198. package/dist/cli-bundle/chunks/{files-TXEQOA7C.js → files-B2RUCA32.js} +12 -11
  199. package/dist/cli-bundle/chunks/{files-TXEQOA7C.js.map → files-B2RUCA32.js.map} +1 -1
  200. package/dist/cli-bundle/chunks/{focus-UGROAMAX.js → focus-7N36RIMT.js} +8 -8
  201. package/dist/cli-bundle/chunks/{focus-ELOPN2SR.js → focus-CFE33IYC.js} +8 -8
  202. package/dist/cli-bundle/chunks/gc-OYJK4YBY.js +395 -0
  203. package/dist/cli-bundle/chunks/gc-OYJK4YBY.js.map +7 -0
  204. package/dist/cli-bundle/chunks/gc-SBF2FGHK.js +385 -0
  205. package/dist/cli-bundle/chunks/gc-SBF2FGHK.js.map +1 -0
  206. package/dist/cli-bundle/chunks/{get-OTXPLWYW.js → get-577VLZZ7.js} +11 -11
  207. package/dist/cli-bundle/chunks/{get-IWZ7IMPS.js → get-LLFWSPXW.js} +11 -11
  208. package/dist/cli-bundle/chunks/{health-PPTJ7XKW.js → health-C2PUT6JZ.js} +21 -22
  209. package/dist/cli-bundle/chunks/{health-PPTJ7XKW.js.map → health-C2PUT6JZ.js.map} +1 -1
  210. package/dist/cli-bundle/chunks/{health-JEBESKID.js → health-PBJS7W2T.js} +20 -21
  211. package/dist/cli-bundle/chunks/{health-JEBESKID.js.map → health-PBJS7W2T.js.map} +2 -2
  212. package/dist/cli-bundle/chunks/{history-HNWBUDMI.js → history-4FJK6Y3O.js} +10 -10
  213. package/dist/cli-bundle/chunks/history-ZXNWG6H4.js +20 -0
  214. package/dist/cli-bundle/chunks/{history-compact-EQXVPK3V.js → history-compact-AXR6R6GU.js} +12 -12
  215. package/dist/cli-bundle/chunks/{history-compact-MMQC7MCW.js → history-compact-HXF3OT7G.js} +12 -12
  216. package/dist/cli-bundle/chunks/history-redact-GV633Z4H.js +21 -0
  217. package/dist/cli-bundle/chunks/{history-redact-UBDHBEJE.js → history-redact-UMPD4G3K.js} +11 -11
  218. package/dist/cli-bundle/chunks/{history-repair-GMMHFAGH.js → history-repair-WHOK2ICG.js} +12 -12
  219. package/dist/cli-bundle/chunks/{history-repair-7DSDRPMX.js → history-repair-X57HE5EA.js} +12 -12
  220. package/dist/cli-bundle/chunks/init-KQWZSNBX.js +20 -0
  221. package/dist/cli-bundle/chunks/{init-QGK4JFF6.js → init-N7MIIYCU.js} +10 -10
  222. package/dist/cli-bundle/chunks/{learnings-A6DGBMG3.js → learnings-FPG7WAVW.js} +10 -10
  223. package/dist/cli-bundle/chunks/{learnings-DR53TWRA.js → learnings-GZRBIEAN.js} +10 -10
  224. package/dist/cli-bundle/chunks/{list-LJ5DBXC3.js → list-MZBCSKLU.js} +10 -10
  225. package/dist/cli-bundle/chunks/{list-KOJN23UL.js → list-ZDQ2OBSO.js} +10 -10
  226. package/dist/cli-bundle/chunks/{notes-K5I3TAYR.js → notes-LW53PFLH.js} +10 -10
  227. package/dist/cli-bundle/chunks/{notes-7VLTHKPW.js → notes-WQAP67EC.js} +10 -10
  228. package/dist/cli-bundle/chunks/{plan-X3STKLED.js → plan-AVJ4VJQO.js} +15 -15
  229. package/dist/cli-bundle/chunks/plan-AVJ4VJQO.js.map +7 -0
  230. package/dist/cli-bundle/chunks/{plan-BK3OMLGP.js → plan-VZKICKIJ.js} +16 -16
  231. package/dist/cli-bundle/chunks/plan-VZKICKIJ.js.map +1 -0
  232. package/dist/cli-bundle/chunks/{register-list-query-FUMXPWZ4.js → register-list-query-7BD6ZHU5.js} +42 -21
  233. package/dist/cli-bundle/chunks/register-list-query-7BD6ZHU5.js.map +7 -0
  234. package/dist/cli-bundle/chunks/{register-list-query-XDLFESU7.js → register-list-query-CM4SVAQA.js} +43 -22
  235. package/dist/cli-bundle/chunks/register-list-query-CM4SVAQA.js.map +1 -0
  236. package/dist/cli-bundle/chunks/{register-mutation-ZAGVKMBQ.js → register-mutation-ANZIWHUF.js} +33 -33
  237. package/dist/cli-bundle/chunks/{register-mutation-RXRX4P7D.js → register-mutation-PLFHAS4N.js} +33 -33
  238. package/dist/cli-bundle/chunks/{register-operations-DGSHCS75.js → register-operations-KQPQIFF2.js} +35 -35
  239. package/dist/cli-bundle/chunks/register-operations-KQPQIFF2.js.map +1 -0
  240. package/dist/cli-bundle/chunks/{register-operations-6UURPZN5.js → register-operations-VLGCAWIW.js} +34 -34
  241. package/dist/cli-bundle/chunks/{register-operations-6UURPZN5.js.map → register-operations-VLGCAWIW.js.map} +2 -2
  242. package/dist/cli-bundle/chunks/{register-setup-2FEGSFLM.js → register-setup-KPTZ36D4.js} +15 -15
  243. package/dist/cli-bundle/chunks/{register-setup-LTJG52WP.js → register-setup-TMEF6V7O.js} +15 -15
  244. package/dist/cli-bundle/chunks/{restore-SJUWYOCK.js → restore-64JKQV7G.js} +11 -11
  245. package/dist/cli-bundle/chunks/restore-GKM26SAW.js +19 -0
  246. package/dist/cli-bundle/chunks/{scheduling-shortcuts-W4F2LKHW.js → scheduling-shortcuts-4ION7QAX.js} +14 -14
  247. package/dist/cli-bundle/chunks/{scheduling-shortcuts-VWAMP2S2.js → scheduling-shortcuts-X6D6VSZR.js} +14 -14
  248. package/dist/cli-bundle/chunks/{schema-N5ETYD4P.js → schema-OA4RSVMI.js} +9 -9
  249. package/dist/cli-bundle/chunks/{schema-DXQRIEFM.js → schema-TA3NF3RG.js} +9 -9
  250. package/dist/cli-bundle/chunks/search-INCM5I4J.js +33 -0
  251. package/dist/cli-bundle/chunks/search-UAIHEQZL.js +37 -0
  252. package/dist/cli-bundle/chunks/{stats-J563NJBY.js → stats-RHEMG4CE.js} +8 -8
  253. package/dist/cli-bundle/chunks/{stats-ZFESFVQC.js → stats-WQWTIA5Y.js} +8 -8
  254. package/dist/cli-bundle/chunks/{telemetry-BNGLIFEM.js → telemetry-G6UKGKJU.js} +4 -4
  255. package/dist/cli-bundle/chunks/{telemetry-SC7HPRXX.js → telemetry-XA5D2QEO.js} +4 -4
  256. package/dist/cli-bundle/chunks/{test-55RJCGRU.js → test-XF7BYLMZ.js} +15 -15
  257. package/dist/cli-bundle/chunks/{test-47UQGEXE.js → test-ZMQF23P3.js} +15 -15
  258. package/dist/cli-bundle/chunks/{test-all-DN6KG4FX.js → test-all-WUBBJCPU.js} +15 -15
  259. package/dist/cli-bundle/chunks/{test-all-5SFTTRNL.js → test-all-ZNQBMUOI.js} +15 -15
  260. package/dist/cli-bundle/chunks/{test-runs-DZEDJ4GH.js → test-runs-N7LI7HLH.js} +5 -5
  261. package/dist/cli-bundle/chunks/{test-runs-NHRBT7SN.js → test-runs-RFA42EEX.js} +5 -5
  262. package/dist/cli-bundle/chunks/update-CPNOG73P.js +24 -0
  263. package/dist/cli-bundle/chunks/update-CPNOG73P.js.map +7 -0
  264. package/dist/cli-bundle/chunks/update-T5AYT6ZN.js +28 -0
  265. package/dist/cli-bundle/chunks/update-T5AYT6ZN.js.map +1 -0
  266. package/dist/cli-bundle/chunks/{update-many-OKYWFCBO.js → update-many-6XFR7TFG.js} +23 -23
  267. package/dist/cli-bundle/chunks/{update-many-IRNV3OTG.js → update-many-NMRUQZL2.js} +23 -23
  268. package/dist/cli-bundle/chunks/{upgrade-KP4I45V5.js → upgrade-EJTME2YQ.js} +5 -5
  269. package/dist/cli-bundle/chunks/{upgrade-3RIAFQIK.js → upgrade-QMCSONWR.js} +5 -5
  270. package/dist/cli-bundle/chunks/{validate-GVY4VE43.js → validate-3SUCHXXX.js} +21 -21
  271. package/dist/cli-bundle/chunks/{validate-ADKGN37M.js → validate-KIIJY5RC.js} +21 -21
  272. package/dist/cli-bundle/main.js +133 -55
  273. package/dist/cli-bundle/main.js.map +2 -2
  274. package/dist/core/checkpoint/checkpoint-gc.d.ts +69 -0
  275. package/dist/core/checkpoint/checkpoint-gc.js +175 -0
  276. package/dist/core/checkpoint/checkpoint-gc.js.map +1 -0
  277. package/dist/core/config/nested-settings.js +22 -2
  278. package/dist/core/config/nested-settings.js.map +1 -1
  279. package/dist/core/diagnostics/remediation.js +19 -2
  280. package/dist/core/diagnostics/remediation.js.map +1 -1
  281. package/dist/core/extensions/extension-types.d.ts +0 -9
  282. package/dist/core/extensions/extension-types.js +2 -27
  283. package/dist/core/extensions/extension-types.js.map +1 -1
  284. package/dist/core/fs/fs-utils.d.ts +17 -1
  285. package/dist/core/fs/fs-utils.js +19 -3
  286. package/dist/core/fs/fs-utils.js.map +1 -1
  287. package/dist/core/history/drift-scan.d.ts +17 -5
  288. package/dist/core/history/drift-scan.js +22 -14
  289. package/dist/core/history/drift-scan.js.map +1 -1
  290. package/dist/core/history/replay.d.ts +7 -0
  291. package/dist/core/history/replay.js +11 -6
  292. package/dist/core/history/replay.js.map +1 -1
  293. package/dist/core/item/status-filter.d.ts +7 -3
  294. package/dist/core/item/status-filter.js +26 -5
  295. package/dist/core/item/status-filter.js.map +1 -1
  296. package/dist/core/search/bm25.d.ts +113 -0
  297. package/dist/core/search/bm25.js +178 -0
  298. package/dist/core/search/bm25.js.map +1 -0
  299. package/dist/core/search/eval.d.ts +114 -0
  300. package/dist/core/search/eval.js +217 -0
  301. package/dist/core/search/eval.js.map +1 -0
  302. package/dist/core/sentry/instrument.d.ts +14 -0
  303. package/dist/core/sentry/instrument.js +43 -3
  304. package/dist/core/sentry/instrument.js.map +1 -1
  305. package/dist/core/shared/constants.js +5 -2
  306. package/dist/core/shared/constants.js.map +1 -1
  307. package/dist/core/store/paths.js +4 -3
  308. package/dist/core/store/paths.js.map +1 -1
  309. package/dist/core/store/settings-validator.d.ts +7 -0
  310. package/dist/core/store/settings-validator.js +10 -2
  311. package/dist/core/store/settings-validator.js.map +1 -1
  312. package/dist/core/store/settings.js +6 -2
  313. package/dist/core/store/settings.js.map +1 -1
  314. package/dist/mcp/tool-definitions.js +4 -3
  315. package/dist/mcp/tool-definitions.js.map +1 -1
  316. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  317. package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
  318. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  319. package/dist/sdk/cli-contracts/tool-parameter-tables.js +4 -4
  320. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  321. package/dist/sdk/cli-contracts.d.ts +1 -0
  322. package/dist/sdk/cli-contracts.js +11 -2
  323. package/dist/sdk/cli-contracts.js.map +1 -1
  324. package/dist/types.d.ts +19 -0
  325. package/dist/types.js +2 -2
  326. package/dist/types.js.map +1 -1
  327. package/docs/AGENT_GUIDE.md +1 -0
  328. package/docs/ARCHITECTURE.md +124 -11
  329. package/docs/CLAUDE_CODE_PLUGIN.md +5 -13
  330. package/docs/COMMANDS.md +55 -5
  331. package/docs/CONFIGURATION.md +39 -0
  332. package/docs/EXTENSIONS.md +2 -2
  333. package/docs/MIGRATION_CLI_SIMPLIFICATION.md +9 -2
  334. package/docs/QUICKSTART.md +2 -0
  335. package/docs/README.md +2 -0
  336. package/docs/RELEASING.md +2 -1
  337. package/docs/SDK.md +9 -1
  338. package/docs/TESTING.md +18 -0
  339. package/package.json +4 -3
  340. package/packages/pm-todos/extensions/todos/index.js +2 -0
  341. package/packages/pm-todos/extensions/todos/index.ts +2 -0
  342. package/packages/pm-todos/extensions/todos/runtime.js +1 -1
  343. package/packages/pm-todos/extensions/todos/runtime.ts +4 -1
  344. package/dist/cli-bundle/chunks/activity-62I26XZB.js +0 -18
  345. package/dist/cli-bundle/chunks/chunk-2RI3BDFK.js.map +0 -7
  346. package/dist/cli-bundle/chunks/chunk-4BFNWAMQ.js.map +0 -7
  347. package/dist/cli-bundle/chunks/chunk-5QLHQK7V.js.map +0 -7
  348. package/dist/cli-bundle/chunks/chunk-5SRID7DV.js.map +0 -1
  349. package/dist/cli-bundle/chunks/chunk-COHNQLB2.js.map +0 -1
  350. package/dist/cli-bundle/chunks/chunk-DVUU3AHP.js.map +0 -1
  351. package/dist/cli-bundle/chunks/chunk-FP7YLQ52.js.map +0 -1
  352. package/dist/cli-bundle/chunks/chunk-FPQA4ZMA.js.map +0 -7
  353. package/dist/cli-bundle/chunks/chunk-GDOTTY2S.js.map +0 -7
  354. package/dist/cli-bundle/chunks/chunk-I2VJM36R.js.map +0 -1
  355. package/dist/cli-bundle/chunks/chunk-K5TD74VU.js.map +0 -7
  356. package/dist/cli-bundle/chunks/chunk-MAKOMXVM.js.map +0 -1
  357. package/dist/cli-bundle/chunks/chunk-PSWSQHM7.js.map +0 -1
  358. package/dist/cli-bundle/chunks/chunk-UA4ANRJY.js.map +0 -7
  359. package/dist/cli-bundle/chunks/chunk-UCNEPMPY.js.map +0 -7
  360. package/dist/cli-bundle/chunks/chunk-X26ODPU4.js.map +0 -7
  361. package/dist/cli-bundle/chunks/chunk-Y4IBSEQ2.js.map +0 -1
  362. package/dist/cli-bundle/chunks/chunk-YOGXK3ON.js.map +0 -7
  363. package/dist/cli-bundle/chunks/chunk-YWAYOWDQ.js.map +0 -1
  364. package/dist/cli-bundle/chunks/chunk-ZZEM2PH7.js.map +0 -1
  365. package/dist/cli-bundle/chunks/close-TQZK43Z5.js +0 -15
  366. package/dist/cli-bundle/chunks/config-UWF3KRP5.js.map +0 -7
  367. package/dist/cli-bundle/chunks/config-YICACPHA.js.map +0 -1
  368. package/dist/cli-bundle/chunks/contracts-7G553BHP.js.map +0 -1
  369. package/dist/cli-bundle/chunks/contracts-B2YWYUV5.js.map +0 -7
  370. package/dist/cli-bundle/chunks/create-UZLJXHLA.js +0 -30
  371. package/dist/cli-bundle/chunks/gc-5RTYXLQU.js +0 -211
  372. package/dist/cli-bundle/chunks/gc-5RTYXLQU.js.map +0 -7
  373. package/dist/cli-bundle/chunks/gc-FK5732EK.js +0 -208
  374. package/dist/cli-bundle/chunks/gc-FK5732EK.js.map +0 -1
  375. package/dist/cli-bundle/chunks/history-TKTULEVE.js +0 -20
  376. package/dist/cli-bundle/chunks/history-redact-SPIFIXVY.js +0 -21
  377. package/dist/cli-bundle/chunks/init-A6FTZ5UC.js +0 -20
  378. package/dist/cli-bundle/chunks/plan-BK3OMLGP.js.map +0 -1
  379. package/dist/cli-bundle/chunks/plan-X3STKLED.js.map +0 -7
  380. package/dist/cli-bundle/chunks/register-list-query-FUMXPWZ4.js.map +0 -7
  381. package/dist/cli-bundle/chunks/register-list-query-XDLFESU7.js.map +0 -1
  382. package/dist/cli-bundle/chunks/register-operations-DGSHCS75.js.map +0 -1
  383. package/dist/cli-bundle/chunks/restore-PI3WM4GK.js +0 -19
  384. package/dist/cli-bundle/chunks/search-2JX776KX.js.map +0 -1
  385. package/dist/cli-bundle/chunks/search-AZR2JITW.js.map +0 -7
  386. package/dist/cli-bundle/chunks/update-2BZEAI7B.js +0 -24
  387. package/dist/cli-bundle/chunks/update-GCNLER2H.js +0 -28
  388. /package/dist/cli-bundle/chunks/{activity-62I26XZB.js.map → activity-7G7NNNZQ.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{activity-XJ7WRNWS.js.map → activity-KEEITOTB.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{aggregate-OFT4YVB6.js.map → aggregate-5BTHOHW2.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{aggregate-LBCWF6UJ.js.map → aggregate-GB2LJNTZ.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{append-BP2ARHOK.js.map → append-BBM4MNVD.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{append-5U3XR5SD.js.map → append-BFV5UYWS.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{chunk-RVG3WLY3.js.map → chunk-2LUNPA3U.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{chunk-OURX4WVG.js.map → chunk-2QJLN4KM.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{chunk-AVMSP2HH.js.map → chunk-3KVCMB2M.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{chunk-FVZSUIN5.js.map → chunk-3WAKNI2W.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{chunk-H3DP6OUM.js.map → chunk-4KFL5OYK.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{chunk-VG3B2CYD.js.map → chunk-4PW4C3ZB.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{chunk-SDUZTZ55.js.map → chunk-4S4INK3B.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{chunk-QCHNPN24.js.map → chunk-4YMX7XFI.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{chunk-QSH34DSQ.js.map → chunk-5MWA46UN.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{chunk-UIMLAFOE.js.map → chunk-5XK2RYJR.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{chunk-B2NEFANY.js.map → chunk-6DZO5NN7.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{chunk-VP4Z36GO.js.map → chunk-6FSPWUBI.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{chunk-MPEWACTG.js.map → chunk-6KARQMC6.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{chunk-N7LDJRB4.js.map → chunk-6KSFULO6.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{chunk-XV6N3QND.js.map → chunk-6LTSLEHD.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{chunk-USKTNI7P.js.map → chunk-7MMXBIRZ.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{chunk-2K56AWDP.js.map → chunk-AOCYDQLT.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{chunk-ZBVYKWT2.js.map → chunk-ATRXPXAL.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{chunk-A5JPMD4Q.js.map → chunk-AW4PYYNF.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{chunk-MTGMNUMJ.js.map → chunk-B3LROPTV.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{chunk-NPNNW5TU.js.map → chunk-BBSUVIIT.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{chunk-47BYN6CA.js.map → chunk-BYNJWB5F.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{chunk-S673PVHD.js.map → chunk-CNPWCUDR.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{chunk-TYQBGXH2.js.map → chunk-DKWIPIJY.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{chunk-HMQMRHQJ.js.map → chunk-EKMHDL6Z.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{chunk-LIVRA6VG.js.map → chunk-EOFROIC5.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{chunk-NNMBNN6Q.js.map → chunk-ETJKPURB.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{chunk-2E3KSWFG.js.map → chunk-F4EYOSNC.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{chunk-DJ3YYLHG.js.map → chunk-FA5O2DEG.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{chunk-QTWWHFI3.js.map → chunk-FBBPCSJM.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{chunk-EMFDZ7N3.js.map → chunk-FSOJCFDS.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{chunk-M35R7LFX.js.map → chunk-FXKPUMIR.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{chunk-II3WDRCM.js.map → chunk-HWHZ7EY7.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{chunk-7R5YKVKO.js.map → chunk-ICEWMJYH.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{chunk-UMTPQMEG.js.map → chunk-II4BRHKM.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{chunk-QG6M6XQE.js.map → chunk-J7VSEFWB.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{chunk-22YA6GCA.js.map → chunk-K2LBDYDC.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{chunk-BQVESTOG.js.map → chunk-KCJZREBI.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{chunk-5P2LQV2F.js.map → chunk-MTQK5ZSB.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{chunk-LEC57E7K.js.map → chunk-NCGQ27PK.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{chunk-5LZPDRFW.js.map → chunk-NMQNXH4U.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{chunk-PRUB7RI4.js.map → chunk-OVSFW4KD.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{chunk-4L7Q4OVT.js.map → chunk-PF5GLFPU.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{chunk-YVYJQR6S.js.map → chunk-QUTJOHGK.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{chunk-CSRFOIHG.js.map → chunk-RICT5QYR.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{chunk-OUG4CL4H.js.map → chunk-RNKUCHUQ.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{chunk-X7RKOJXL.js.map → chunk-SL233DQD.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{chunk-USVOBLGB.js.map → chunk-U3WTMYBX.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{chunk-DYZKSIVX.js.map → chunk-VE3BUO3R.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{chunk-RNWE2HZR.js.map → chunk-W2ZESOQE.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{chunk-GL3QKIET.js.map → chunk-XKJDCJEH.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{chunk-SO2IOH37.js.map → chunk-XNQ3YH6N.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{chunk-ZGEWEO7B.js.map → chunk-XXGAWTH5.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{chunk-4EOS35RL.js.map → chunk-YBQF4CAW.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{chunk-MTDEEUGV.js.map → chunk-YT4Z2OVB.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{chunk-5NS6TJ2F.js.map → chunk-ZHCSGIUX.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{claim-2BSYPJTJ.js.map → claim-G57ZJLZ4.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{claim-EZ6JKY5X.js.map → claim-TRSDQO6L.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{close-3TSX6BYF.js.map → close-4QMUQMON.js.map} +0 -0
  453. /package/dist/cli-bundle/chunks/{close-TQZK43Z5.js.map → close-NNZZTZ5V.js.map} +0 -0
  454. /package/dist/cli-bundle/chunks/{close-many-B7DBVA46.js.map → close-many-3UWKJRQK.js.map} +0 -0
  455. /package/dist/cli-bundle/chunks/{close-many-HB4UFCS3.js.map → close-many-A7U62CRI.js.map} +0 -0
  456. /package/dist/cli-bundle/chunks/{comments-M7PAINZT.js.map → comments-4EM7XR74.js.map} +0 -0
  457. /package/dist/cli-bundle/chunks/{comments-X7M7XM6I.js.map → comments-URWDZP2I.js.map} +0 -0
  458. /package/dist/cli-bundle/chunks/{context-EGUGU4K7.js.map → context-A46YAV2F.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{context-V32ZAPL6.js.map → context-BCR34RKM.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{copy-RMLXLZOL.js.map → copy-KBTIUW7L.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{copy-NWFFRYWM.js.map → copy-X7V6AEDB.js.map} +0 -0
  462. /package/dist/cli-bundle/chunks/{create-UZLJXHLA.js.map → create-4KOAQ6ME.js.map} +0 -0
  463. /package/dist/cli-bundle/chunks/{create-GK4MX2LJ.js.map → create-ZPZKJDFQ.js.map} +0 -0
  464. /package/dist/cli-bundle/chunks/{delete-EFQLVEAS.js.map → delete-2ZI6CJZM.js.map} +0 -0
  465. /package/dist/cli-bundle/chunks/{delete-RMGNIL2S.js.map → delete-FGKVPUQZ.js.map} +0 -0
  466. /package/dist/cli-bundle/chunks/{deps-WKHUPVD3.js.map → deps-IUJOBF2H.js.map} +0 -0
  467. /package/dist/cli-bundle/chunks/{deps-K2I7QV4Y.js.map → deps-SJCEFU3C.js.map} +0 -0
  468. /package/dist/cli-bundle/chunks/{extension-4LPTFTV4.js.map → extension-VRYTNNSV.js.map} +0 -0
  469. /package/dist/cli-bundle/chunks/{extension-ASUPTDCC.js.map → extension-XFQG3BXL.js.map} +0 -0
  470. /package/dist/cli-bundle/chunks/{focus-UGROAMAX.js.map → focus-7N36RIMT.js.map} +0 -0
  471. /package/dist/cli-bundle/chunks/{focus-ELOPN2SR.js.map → focus-CFE33IYC.js.map} +0 -0
  472. /package/dist/cli-bundle/chunks/{get-OTXPLWYW.js.map → get-577VLZZ7.js.map} +0 -0
  473. /package/dist/cli-bundle/chunks/{get-IWZ7IMPS.js.map → get-LLFWSPXW.js.map} +0 -0
  474. /package/dist/cli-bundle/chunks/{history-HNWBUDMI.js.map → history-4FJK6Y3O.js.map} +0 -0
  475. /package/dist/cli-bundle/chunks/{history-TKTULEVE.js.map → history-ZXNWG6H4.js.map} +0 -0
  476. /package/dist/cli-bundle/chunks/{history-compact-EQXVPK3V.js.map → history-compact-AXR6R6GU.js.map} +0 -0
  477. /package/dist/cli-bundle/chunks/{history-compact-MMQC7MCW.js.map → history-compact-HXF3OT7G.js.map} +0 -0
  478. /package/dist/cli-bundle/chunks/{history-redact-SPIFIXVY.js.map → history-redact-GV633Z4H.js.map} +0 -0
  479. /package/dist/cli-bundle/chunks/{history-redact-UBDHBEJE.js.map → history-redact-UMPD4G3K.js.map} +0 -0
  480. /package/dist/cli-bundle/chunks/{history-repair-GMMHFAGH.js.map → history-repair-WHOK2ICG.js.map} +0 -0
  481. /package/dist/cli-bundle/chunks/{history-repair-7DSDRPMX.js.map → history-repair-X57HE5EA.js.map} +0 -0
  482. /package/dist/cli-bundle/chunks/{init-A6FTZ5UC.js.map → init-KQWZSNBX.js.map} +0 -0
  483. /package/dist/cli-bundle/chunks/{init-QGK4JFF6.js.map → init-N7MIIYCU.js.map} +0 -0
  484. /package/dist/cli-bundle/chunks/{learnings-A6DGBMG3.js.map → learnings-FPG7WAVW.js.map} +0 -0
  485. /package/dist/cli-bundle/chunks/{learnings-DR53TWRA.js.map → learnings-GZRBIEAN.js.map} +0 -0
  486. /package/dist/cli-bundle/chunks/{list-LJ5DBXC3.js.map → list-MZBCSKLU.js.map} +0 -0
  487. /package/dist/cli-bundle/chunks/{list-KOJN23UL.js.map → list-ZDQ2OBSO.js.map} +0 -0
  488. /package/dist/cli-bundle/chunks/{notes-K5I3TAYR.js.map → notes-LW53PFLH.js.map} +0 -0
  489. /package/dist/cli-bundle/chunks/{notes-7VLTHKPW.js.map → notes-WQAP67EC.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{register-mutation-ZAGVKMBQ.js.map → register-mutation-ANZIWHUF.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{register-mutation-RXRX4P7D.js.map → register-mutation-PLFHAS4N.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{register-setup-2FEGSFLM.js.map → register-setup-KPTZ36D4.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{register-setup-LTJG52WP.js.map → register-setup-TMEF6V7O.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{restore-SJUWYOCK.js.map → restore-64JKQV7G.js.map} +0 -0
  495. /package/dist/cli-bundle/chunks/{restore-PI3WM4GK.js.map → restore-GKM26SAW.js.map} +0 -0
  496. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-W4F2LKHW.js.map → scheduling-shortcuts-4ION7QAX.js.map} +0 -0
  497. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-VWAMP2S2.js.map → scheduling-shortcuts-X6D6VSZR.js.map} +0 -0
  498. /package/dist/cli-bundle/chunks/{schema-N5ETYD4P.js.map → schema-OA4RSVMI.js.map} +0 -0
  499. /package/dist/cli-bundle/chunks/{schema-DXQRIEFM.js.map → schema-TA3NF3RG.js.map} +0 -0
  500. /package/dist/cli-bundle/chunks/{test-55RJCGRU.js.map → search-INCM5I4J.js.map} +0 -0
  501. /package/dist/cli-bundle/chunks/{test-47UQGEXE.js.map → search-UAIHEQZL.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{stats-J563NJBY.js.map → stats-RHEMG4CE.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{stats-ZFESFVQC.js.map → stats-WQWTIA5Y.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{telemetry-BNGLIFEM.js.map → telemetry-G6UKGKJU.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{telemetry-SC7HPRXX.js.map → telemetry-XA5D2QEO.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{update-2BZEAI7B.js.map → test-XF7BYLMZ.js.map} +0 -0
  507. /package/dist/cli-bundle/chunks/{update-GCNLER2H.js.map → test-ZMQF23P3.js.map} +0 -0
  508. /package/dist/cli-bundle/chunks/{test-all-DN6KG4FX.js.map → test-all-WUBBJCPU.js.map} +0 -0
  509. /package/dist/cli-bundle/chunks/{test-all-5SFTTRNL.js.map → test-all-ZNQBMUOI.js.map} +0 -0
  510. /package/dist/cli-bundle/chunks/{test-runs-DZEDJ4GH.js.map → test-runs-N7LI7HLH.js.map} +0 -0
  511. /package/dist/cli-bundle/chunks/{test-runs-NHRBT7SN.js.map → test-runs-RFA42EEX.js.map} +0 -0
  512. /package/dist/cli-bundle/chunks/{update-many-OKYWFCBO.js.map → update-many-6XFR7TFG.js.map} +0 -0
  513. /package/dist/cli-bundle/chunks/{update-many-IRNV3OTG.js.map → update-many-NMRUQZL2.js.map} +0 -0
  514. /package/dist/cli-bundle/chunks/{upgrade-KP4I45V5.js.map → upgrade-EJTME2YQ.js.map} +0 -0
  515. /package/dist/cli-bundle/chunks/{upgrade-3RIAFQIK.js.map → upgrade-QMCSONWR.js.map} +0 -0
  516. /package/dist/cli-bundle/chunks/{validate-GVY4VE43.js.map → validate-3SUCHXXX.js.map} +0 -0
  517. /package/dist/cli-bundle/chunks/{validate-ADKGN37M.js.map → validate-KIIJY5RC.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sources":["cli/commands/update.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/update\n *\n * Implements the pm update command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n canonicalizeCommandOptionKey,\n commandOptionFlagLabel,\n resolveItemTypeRegistry,\n resolveCommandOptionPolicyState,\n resolveTypeDefinition,\n resolveTypeName,\n validateTypeOptions,\n} from \"../../core/item/type-registry.js\";\nimport { normalizeItemId } from \"../../core/item/id.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { buildInvalidTypeError } from \"../../core/schema/item-types-file.js\";\nimport {\n normalizeParentReferenceValue,\n validateMissingParentReference,\n} from \"../../core/item/parent-reference-policy.js\";\nimport { validateSprintOrReleaseValue } from \"../../core/item/sprint-release-format.js\";\nimport {\n applyTagRemovals,\n assertNoUnknownCsvKeys,\n createStdinTokenResolver,\n looksLikeGenericKeyValueEntry,\n mergeAdditiveTags,\n parseCsvKv,\n parseOptionalNumber,\n parseTags,\n} from \"../../core/item/parse.js\";\nimport { resolvePriority } from \"../../core/item/priority.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { collectRuntimeUpdateFieldValues } from \"../../core/schema/runtime-field-values.js\";\nimport {\n resolveItemTypesFilePath,\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport {\n describeAllowedTransitions,\n evaluateTransition,\n resolveTypeWorkflows,\n type NormalizedTypeWorkflow,\n} from \"../../core/schema/type-workflows.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 { stableValueEquals } from \"../../core/shared/serialization.js\";\nimport { resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport {\n collectRegisteredItemFieldNames,\n applyRegisteredItemFieldDefaultsAndValidation,\n parseRegisteredItemFieldAssignments,\n} from \"../../core/extensions/item-fields.js\";\nimport { buildItemNotFoundError, locateItem, mutateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose } from \"./close.js\";\nimport {\n normalizeRiskInput,\n normalizeSeverityInput,\n parseConfidenceInput,\n parseRegressionInput,\n} from \"./metadata-normalizers.js\";\nimport { assertNoLegacyNoneToken, assertNoLegacyNoneTokens, isLegacyNoneToken } from \"./legacy-none-tokens.js\";\nimport { ensureEnumValue as ensureEnum } from \"./recurrence-parsers.js\";\nimport {\n parseEventEntries,\n parseReminderEntries,\n parseTypeOptionEntries,\n} from \"./repeatable-metadata-parsers.js\";\nimport type {\n Comment,\n Dependency,\n GovernanceWorkflowEnforcement,\n ItemFormat,\n ItemFrontMatter,\n ItemStatus,\n LinkedDoc,\n LinkedFile,\n LinkedTest,\n LogNote,\n} from \"../../types/index.js\";\nimport {\n DEPENDENCY_KIND_VALUES,\n ISSUE_SEVERITY_VALUES,\n RISK_VALUES,\n} from \"../../types/index.js\";\nimport { parseDocs, parseFiles, parseLogSeed, parseTests } from \"./create.js\";\n\n/**\n * Documents the update command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpdateCommandOptions {\n title?: string;\n description?: string;\n body?: string;\n status?: string;\n closeReason?: string;\n priority?: string;\n type?: string;\n tags?: string;\n addTags?: string[];\n removeTags?: string[];\n deadline?: string;\n estimatedMinutes?: string;\n acceptanceCriteria?: string;\n definitionOfReady?: string;\n order?: string;\n rank?: string;\n goal?: string;\n objective?: string;\n value?: string;\n impact?: string;\n outcome?: string;\n whyNow?: string;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditUpdate?: boolean;\n allowAuditDepUpdate?: boolean;\n assignee?: string;\n parent?: string;\n reviewer?: string;\n risk?: string;\n confidence?: string;\n sprint?: string;\n release?: string;\n blockedBy?: string;\n blockedReason?: string;\n unblockNote?: string;\n reporter?: string;\n severity?: string;\n environment?: string;\n reproSteps?: string;\n resolution?: string;\n expectedResult?: string;\n actualResult?: string;\n affectedVersion?: string;\n fixedVersion?: string;\n component?: string;\n regression?: string;\n customerImpact?: string;\n dep?: string[];\n depRemove?: string[];\n replaceDeps?: boolean;\n replaceTests?: boolean;\n runtimeFieldCommands?: Array<\"update\" | \"update_many\">;\n comment?: string[];\n note?: string[];\n learning?: string[];\n file?: string[];\n test?: string[];\n doc?: string[];\n reminder?: string[];\n event?: string[];\n typeOption?: string[];\n field?: string[];\n unset?: string[];\n clearDeps?: boolean;\n clearComments?: boolean;\n clearNotes?: boolean;\n clearLearnings?: boolean;\n clearFiles?: boolean;\n clearTests?: boolean;\n clearDocs?: boolean;\n clearReminders?: boolean;\n clearEvents?: boolean;\n clearTypeOptions?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Documents the update result payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpdateResult {\n item: Record<string, unknown>;\n changed_fields: string[];\n warnings: string[];\n audit_update?: boolean;\n}\n\ninterface UpdateUnsetFieldDefinition {\n optionKey: string;\n frontMatterKey: string;\n}\n\nconst UPDATE_UNSET_FIELD_DEFINITIONS: ReadonlyArray<{\n canonical: string;\n aliases: readonly string[];\n optionKey: string;\n frontMatterKey: string;\n}> = [\n { canonical: \"tags\", aliases: [\"tags\"], optionKey: \"tags\", frontMatterKey: \"tags\" },\n { canonical: \"close-reason\", aliases: [\"close_reason\", \"close-reason\"], optionKey: \"closeReason\", frontMatterKey: \"close_reason\" },\n { canonical: \"deadline\", aliases: [\"deadline\"], optionKey: \"deadline\", frontMatterKey: \"deadline\" },\n {\n canonical: \"estimate\",\n aliases: [\"estimate\", \"estimated_minutes\", \"estimated-minutes\"],\n optionKey: \"estimatedMinutes\",\n frontMatterKey: \"estimated_minutes\",\n },\n {\n canonical: \"acceptance-criteria\",\n aliases: [\"acceptance_criteria\", \"acceptance-criteria\", \"ac\"],\n optionKey: \"acceptanceCriteria\",\n frontMatterKey: \"acceptance_criteria\",\n },\n {\n canonical: \"definition-of-ready\",\n aliases: [\"definition_of_ready\", \"definition-of-ready\"],\n optionKey: \"definitionOfReady\",\n frontMatterKey: \"definition_of_ready\",\n },\n { canonical: \"order\", aliases: [\"order\", \"rank\"], optionKey: \"order\", frontMatterKey: \"order\" },\n { canonical: \"goal\", aliases: [\"goal\"], optionKey: \"goal\", frontMatterKey: \"goal\" },\n { canonical: \"objective\", aliases: [\"objective\"], optionKey: \"objective\", frontMatterKey: \"objective\" },\n { canonical: \"value\", aliases: [\"value\"], optionKey: \"value\", frontMatterKey: \"value\" },\n { canonical: \"impact\", aliases: [\"impact\"], optionKey: \"impact\", frontMatterKey: \"impact\" },\n { canonical: \"outcome\", aliases: [\"outcome\"], optionKey: \"outcome\", frontMatterKey: \"outcome\" },\n { canonical: \"why-now\", aliases: [\"why_now\", \"why-now\"], optionKey: \"whyNow\", frontMatterKey: \"why_now\" },\n { canonical: \"assignee\", aliases: [\"assignee\"], optionKey: \"assignee\", frontMatterKey: \"assignee\" },\n { canonical: \"parent\", aliases: [\"parent\"], optionKey: \"parent\", frontMatterKey: \"parent\" },\n { canonical: \"reviewer\", aliases: [\"reviewer\"], optionKey: \"reviewer\", frontMatterKey: \"reviewer\" },\n { canonical: \"risk\", aliases: [\"risk\"], optionKey: \"risk\", frontMatterKey: \"risk\" },\n { canonical: \"confidence\", aliases: [\"confidence\"], optionKey: \"confidence\", frontMatterKey: \"confidence\" },\n { canonical: \"sprint\", aliases: [\"sprint\"], optionKey: \"sprint\", frontMatterKey: \"sprint\" },\n { canonical: \"release\", aliases: [\"release\"], optionKey: \"release\", frontMatterKey: \"release\" },\n {\n canonical: \"blocked-by\",\n aliases: [\"blocked_by\", \"blocked-by\"],\n optionKey: \"blockedBy\",\n frontMatterKey: \"blocked_by\",\n },\n {\n canonical: \"blocked-reason\",\n aliases: [\"blocked_reason\", \"blocked-reason\"],\n optionKey: \"blockedReason\",\n frontMatterKey: \"blocked_reason\",\n },\n {\n canonical: \"unblock-note\",\n aliases: [\"unblock_note\", \"unblock-note\"],\n optionKey: \"unblockNote\",\n frontMatterKey: \"unblock_note\",\n },\n { canonical: \"reporter\", aliases: [\"reporter\"], optionKey: \"reporter\", frontMatterKey: \"reporter\" },\n { canonical: \"severity\", aliases: [\"severity\"], optionKey: \"severity\", frontMatterKey: \"severity\" },\n {\n canonical: \"environment\",\n aliases: [\"environment\"],\n optionKey: \"environment\",\n frontMatterKey: \"environment\",\n },\n {\n canonical: \"repro-steps\",\n aliases: [\"repro_steps\", \"repro-steps\"],\n optionKey: \"reproSteps\",\n frontMatterKey: \"repro_steps\",\n },\n {\n canonical: \"resolution\",\n aliases: [\"resolution\"],\n optionKey: \"resolution\",\n frontMatterKey: \"resolution\",\n },\n {\n canonical: \"expected-result\",\n aliases: [\"expected_result\", \"expected-result\"],\n optionKey: \"expectedResult\",\n frontMatterKey: \"expected_result\",\n },\n {\n canonical: \"actual-result\",\n aliases: [\"actual_result\", \"actual-result\"],\n optionKey: \"actualResult\",\n frontMatterKey: \"actual_result\",\n },\n {\n canonical: \"affected-version\",\n aliases: [\"affected_version\", \"affected-version\"],\n optionKey: \"affectedVersion\",\n frontMatterKey: \"affected_version\",\n },\n {\n canonical: \"fixed-version\",\n aliases: [\"fixed_version\", \"fixed-version\"],\n optionKey: \"fixedVersion\",\n frontMatterKey: \"fixed_version\",\n },\n { canonical: \"component\", aliases: [\"component\"], optionKey: \"component\", frontMatterKey: \"component\" },\n { canonical: \"regression\", aliases: [\"regression\"], optionKey: \"regression\", frontMatterKey: \"regression\" },\n {\n canonical: \"customer-impact\",\n aliases: [\"customer_impact\", \"customer-impact\"],\n optionKey: \"customerImpact\",\n frontMatterKey: \"customer_impact\",\n },\n];\n\nconst UPDATE_UNSET_ALIAS_MAP: Map<string, UpdateUnsetFieldDefinition> = (() => {\n const map = new Map<string, UpdateUnsetFieldDefinition>();\n for (const definition of UPDATE_UNSET_FIELD_DEFINITIONS) {\n for (const alias of definition.aliases) {\n map.set(alias, {\n optionKey: definition.optionKey,\n frontMatterKey: definition.frontMatterKey,\n });\n }\n }\n return map;\n})();\n\nconst UPDATE_OPTION_KEY_TO_UNSET_CANONICAL = new Map<string, string>(\n UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => [definition.optionKey, definition.canonical]),\n);\n\nconst UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS = UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => definition.canonical)\n .sort((left, right) => left.localeCompare(right))\n .join(\", \");\n\nconst AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS = new Set<string>([\n \"close_reason\",\n \"assignee\",\n \"parent\",\n \"blocked_by\",\n \"blocked_reason\",\n \"unblock_note\",\n \"dependencies\",\n \"comments\",\n \"notes\",\n \"learnings\",\n \"files\",\n \"tests\",\n \"docs\",\n \"reminders\",\n \"events\",\n]);\n\nfunction toAuthor(candidate: string | undefined, defaultAuthor: string): string {\n const resolved = candidate ?? process.env.PM_AUTHOR ?? defaultAuthor;\n const trimmed = resolved.trim();\n return trimmed || \"unknown\";\n}\n\ninterface LegacyNoneCollectionNormalizationDefinition {\n optionKey: keyof UpdateCommandOptions;\n clearFlagKey: keyof UpdateCommandOptions;\n valueFlag: string;\n clearFlag: string;\n disableReplaceFlagKey?: \"replaceDeps\" | \"replaceTests\";\n}\n\nconst UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS: ReadonlyArray<LegacyNoneCollectionNormalizationDefinition> = [\n { optionKey: \"dep\", clearFlagKey: \"clearDeps\", valueFlag: \"--dep\", clearFlag: \"--clear-deps\", disableReplaceFlagKey: \"replaceDeps\" },\n { optionKey: \"comment\", clearFlagKey: \"clearComments\", valueFlag: \"--comment\", clearFlag: \"--clear-comments\" },\n { optionKey: \"note\", clearFlagKey: \"clearNotes\", valueFlag: \"--note\", clearFlag: \"--clear-notes\" },\n { optionKey: \"learning\", clearFlagKey: \"clearLearnings\", valueFlag: \"--learning\", clearFlag: \"--clear-learnings\" },\n { optionKey: \"file\", clearFlagKey: \"clearFiles\", valueFlag: \"--file\", clearFlag: \"--clear-files\" },\n { optionKey: \"test\", clearFlagKey: \"clearTests\", valueFlag: \"--test\", clearFlag: \"--clear-tests\", disableReplaceFlagKey: \"replaceTests\" },\n { optionKey: \"doc\", clearFlagKey: \"clearDocs\", valueFlag: \"--doc\", clearFlag: \"--clear-docs\" },\n { optionKey: \"reminder\", clearFlagKey: \"clearReminders\", valueFlag: \"--reminder\", clearFlag: \"--clear-reminders\" },\n { optionKey: \"event\", clearFlagKey: \"clearEvents\", valueFlag: \"--event\", clearFlag: \"--clear-events\" },\n { optionKey: \"typeOption\", clearFlagKey: \"clearTypeOptions\", valueFlag: \"--type-option\", clearFlag: \"--clear-type-options\" },\n];\n\nfunction normalizeLegacyNoneUpdateOptions(options: UpdateCommandOptions): UpdateCommandOptions {\n const normalized: UpdateCommandOptions = {\n ...options,\n unset: options.unset ? [...options.unset] : undefined,\n };\n /* c8 ignore start -- unset dedupe helper branch permutations are covered by legacy option compatibility suites. */\n const appendUnsetTarget = (value: string): void => {\n const current = normalized.unset ? [...normalized.unset] : [];\n if (!current.includes(value)) {\n current.push(value);\n }\n normalized.unset = current;\n };\n /* c8 ignore stop */\n\n const scalarOptionKeys = new Set<string>([...UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.keys(), \"rank\"]);\n for (const optionKey of scalarOptionKeys) {\n const candidate = normalized[optionKey];\n if (typeof candidate !== \"string\" || !isLegacyNoneToken(candidate)) {\n continue;\n }\n /* c8 ignore start -- rank alias canonicalization is exercised in legacy-option compatibility tests. */\n const canonicalUnset = optionKey === \"rank\" ? \"order\" : (UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey);\n appendUnsetTarget(canonicalUnset);\n normalized[optionKey] = undefined;\n /* c8 ignore stop */\n }\n\n for (const definition of UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS) {\n const entries = normalized[definition.optionKey];\n if (!Array.isArray(entries) || entries.length === 0) {\n continue;\n }\n const hasLegacy = entries.some((entry) => isLegacyNoneToken(entry));\n if (!hasLegacy) {\n continue;\n }\n const concreteEntries = entries.filter((entry) => !isLegacyNoneToken(entry));\n if (concreteEntries.length > 0) {\n throw new PmCliError(\n `Cannot mix legacy clear token \"none\"/\"null\" with concrete ${definition.valueFlag} entries. Use ${definition.clearFlag} to clear or provide explicit entries.`,\n EXIT_CODE.USAGE,\n );\n }\n normalized[definition.optionKey] = undefined;\n normalized[definition.clearFlagKey] = true;\n if (definition.disableReplaceFlagKey) {\n normalized[definition.disableReplaceFlagKey] = false;\n }\n }\n\n return normalized;\n}\n\nfunction resolveRuntimeUnsetDefinition(\n token: string,\n runtimeFieldRegistry: RuntimeFieldRegistry | undefined,\n): UpdateUnsetFieldDefinition | undefined {\n if (!runtimeFieldRegistry) {\n return undefined;\n }\n for (const definition of runtimeFieldRegistry.definitions) {\n if (definition.allow_unset === false) {\n continue;\n }\n const candidates = new Set<string>([\n definition.key,\n definition.metadata_key,\n definition.cli_flag.replaceAll(\"-\", \"_\"),\n definition.cli_flag,\n ...definition.cli_aliases.map((alias) => alias.replaceAll(\"-\", \"_\")),\n ...definition.cli_aliases,\n ]);\n if (!candidates.has(token)) {\n continue;\n }\n return {\n optionKey: definition.key,\n frontMatterKey: definition.metadata_key,\n };\n }\n return undefined;\n}\n\nfunction parseUpdateUnsetTargets(\n raw: string[] | undefined,\n runtimeFieldRegistry?: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[] = [],\n): { frontMatterKeys: Set<string>; optionKeys: Set<string> } {\n const frontMatterKeys = new Set<string>();\n const optionKeys = new Set<string>();\n if (!raw || raw.length === 0) {\n return { frontMatterKeys, optionKeys };\n }\n\n for (const entry of raw) {\n const trimmed = entry.trim().toLowerCase();\n if (!trimmed) {\n throw new PmCliError(\"--unset values must not be empty\", EXIT_CODE.USAGE);\n }\n if (isLegacyNoneToken(trimmed)) {\n throw new PmCliError(\n '--unset no longer accepts \"none\" or \"null\". Specify concrete field names such as --unset deadline',\n EXIT_CODE.USAGE,\n );\n }\n const extensionFieldName = extensionFieldNames.find((fieldName) => {\n const normalizedFieldName = fieldName.toLowerCase();\n return (\n normalizedFieldName === trimmed ||\n normalizedFieldName.replaceAll(\"_\", \"-\") === trimmed ||\n normalizedFieldName.replaceAll(\"-\", \"_\") === trimmed\n );\n });\n const definition = UPDATE_UNSET_ALIAS_MAP.get(trimmed) ??\n resolveRuntimeUnsetDefinition(trimmed, runtimeFieldRegistry) ??\n (extensionFieldName ? { optionKey: \"field\", frontMatterKey: extensionFieldName } : undefined);\n if (!definition) {\n throw new PmCliError(\n `Unsupported --unset field \"${entry}\". Supported fields: ${UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS}`,\n EXIT_CODE.USAGE,\n );\n }\n frontMatterKeys.add(definition.frontMatterKey);\n optionKeys.add(definition.optionKey);\n }\n\n return { frontMatterKeys, optionKeys };\n}\n\n// Restricted append-style flags have dedicated commands with their own\n// audit/override semantics; map each one to its exact replacement invocation so\n// audit-scope errors tell the agent how to retry instead of dead-ending. The\n// evidence append flags are allowed by --allow-audit-update, but still used by\n// narrower scopes such as --allow-audit-dep-update.\nconst AUDIT_RESTRICTED_FLAG_REPLACEMENTS: ReadonlyMap<string, (id: string) => string> = new Map([\n [\"--comment\", (id: string) => `pm comments ${id} --add \"<text>\" --allow-audit-comment`],\n [\"--file\", (id: string) => `pm files ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`],\n [\"--doc\", (id: string) => `pm docs ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`],\n]);\n\nfunction buildAuditScopeRestrictedOptionsError(params: {\n id: string;\n code: string;\n message: string;\n required: string;\n why: string;\n disallowedFlags: string[];\n}): PmCliError {\n // Only surface replacement commands for restricted flags the caller actually\n // passed, so the guidance is an exact retry path.\n const replacementCommands = params.disallowedFlags\n .filter((flag) => AUDIT_RESTRICTED_FLAG_REPLACEMENTS.has(flag))\n .map((flag) => AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag)!(params.id));\n const replacementSteps = params.disallowedFlags\n .filter((flag) => AUDIT_RESTRICTED_FLAG_REPLACEMENTS.has(flag))\n .map((flag) => `Replace ${flag} with: ${AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag)!(params.id)}`);\n return new PmCliError(params.message, EXIT_CODE.USAGE, {\n code: params.code,\n required: params.required,\n why: params.why,\n ...(replacementCommands.length > 0 ? { examples: replacementCommands } : {}),\n nextSteps: [\n `Re-run without: ${params.disallowedFlags.join(\", \")}`,\n ...replacementSteps,\n ],\n });\n}\n\nfunction enforceAllowAuditUpdateScope(id: string, options: UpdateCommandOptions, clearFrontMatterKeys: Set<string>): void {\n const allowAuditUpdate = options.allowAuditUpdate === true;\n const allowAuditDepUpdate = options.allowAuditDepUpdate === true;\n if (!allowAuditUpdate && !allowAuditDepUpdate) {\n return;\n }\n if (allowAuditUpdate && allowAuditDepUpdate) {\n throw new PmCliError(\n \"Choose either --allow-audit-update or --allow-audit-dep-update; these override modes are mutually exclusive.\",\n EXIT_CODE.USAGE,\n );\n }\n const pushIf = (condition: boolean, flag: string, list: string[]): void => {\n if (condition) {\n list.push(flag);\n }\n };\n if (allowAuditDepUpdate) {\n const disallowedFlags: string[] = [];\n pushIf(options.title !== undefined, \"--title\", disallowedFlags);\n pushIf(options.description !== undefined, \"--description\", disallowedFlags);\n pushIf(options.body !== undefined, \"--body\", disallowedFlags);\n pushIf(options.status !== undefined, \"--status\", disallowedFlags);\n pushIf(options.closeReason !== undefined, \"--close-reason\", disallowedFlags);\n pushIf(options.priority !== undefined, \"--priority\", disallowedFlags);\n pushIf(options.type !== undefined, \"--type\", disallowedFlags);\n pushIf(options.tags !== undefined, \"--tags\", disallowedFlags);\n pushIf(Array.isArray(options.addTags) && options.addTags.length > 0, \"--add-tags\", disallowedFlags);\n pushIf(Array.isArray(options.removeTags) && options.removeTags.length > 0, \"--remove-tags\", disallowedFlags);\n pushIf(options.deadline !== undefined, \"--deadline\", disallowedFlags);\n pushIf(options.estimatedMinutes !== undefined, \"--estimate\", disallowedFlags);\n pushIf(options.acceptanceCriteria !== undefined, \"--acceptance-criteria\", disallowedFlags);\n pushIf(options.definitionOfReady !== undefined, \"--definition-of-ready\", disallowedFlags);\n pushIf(options.order !== undefined || options.rank !== undefined, \"--order/--rank\", disallowedFlags);\n pushIf(options.goal !== undefined, \"--goal\", disallowedFlags);\n pushIf(options.objective !== undefined, \"--objective\", disallowedFlags);\n pushIf(options.value !== undefined, \"--value\", disallowedFlags);\n pushIf(options.impact !== undefined, \"--impact\", disallowedFlags);\n pushIf(options.outcome !== undefined, \"--outcome\", disallowedFlags);\n pushIf(options.whyNow !== undefined, \"--why-now\", disallowedFlags);\n pushIf(options.assignee !== undefined, \"--assignee\", disallowedFlags);\n pushIf(options.parent !== undefined, \"--parent\", disallowedFlags);\n pushIf(options.reviewer !== undefined, \"--reviewer\", disallowedFlags);\n pushIf(options.risk !== undefined, \"--risk\", disallowedFlags);\n pushIf(options.confidence !== undefined, \"--confidence\", disallowedFlags);\n pushIf(options.sprint !== undefined, \"--sprint\", disallowedFlags);\n pushIf(options.release !== undefined, \"--release\", disallowedFlags);\n pushIf(options.blockedBy !== undefined, \"--blocked-by\", disallowedFlags);\n pushIf(options.blockedReason !== undefined, \"--blocked-reason\", disallowedFlags);\n pushIf(options.unblockNote !== undefined, \"--unblock-note\", disallowedFlags);\n pushIf(options.reporter !== undefined, \"--reporter\", disallowedFlags);\n pushIf(options.severity !== undefined, \"--severity\", disallowedFlags);\n pushIf(options.environment !== undefined, \"--environment\", disallowedFlags);\n pushIf(options.reproSteps !== undefined, \"--repro-steps\", disallowedFlags);\n pushIf(options.resolution !== undefined, \"--resolution\", disallowedFlags);\n pushIf(options.expectedResult !== undefined, \"--expected-result\", disallowedFlags);\n pushIf(options.actualResult !== undefined, \"--actual-result\", disallowedFlags);\n pushIf(options.affectedVersion !== undefined, \"--affected-version\", disallowedFlags);\n pushIf(options.fixedVersion !== undefined, \"--fixed-version\", disallowedFlags);\n pushIf(options.component !== undefined, \"--component\", disallowedFlags);\n pushIf(options.regression !== undefined, \"--regression\", disallowedFlags);\n pushIf(options.customerImpact !== undefined, \"--customer-impact\", disallowedFlags);\n pushIf(options.depRemove !== undefined, \"--dep-remove\", disallowedFlags);\n pushIf(options.replaceDeps === true, \"--replace-deps\", disallowedFlags);\n pushIf(options.replaceTests === true, \"--replace-tests\", disallowedFlags);\n pushIf(options.comment !== undefined, \"--comment\", disallowedFlags);\n pushIf(options.note !== undefined, \"--note\", disallowedFlags);\n pushIf(options.learning !== undefined, \"--learning\", disallowedFlags);\n pushIf(options.file !== undefined, \"--file\", disallowedFlags);\n pushIf(options.test !== undefined, \"--test\", disallowedFlags);\n pushIf(options.doc !== undefined, \"--doc\", disallowedFlags);\n pushIf(options.reminder !== undefined, \"--reminder\", disallowedFlags);\n pushIf(options.event !== undefined, \"--event\", disallowedFlags);\n pushIf(options.typeOption !== undefined, \"--type-option\", disallowedFlags);\n pushIf(options.clearDeps === true, \"--clear-deps\", disallowedFlags);\n pushIf(options.clearComments === true, \"--clear-comments\", disallowedFlags);\n pushIf(options.clearNotes === true, \"--clear-notes\", disallowedFlags);\n pushIf(options.clearLearnings === true, \"--clear-learnings\", disallowedFlags);\n pushIf(options.clearFiles === true, \"--clear-files\", disallowedFlags);\n pushIf(options.clearTests === true, \"--clear-tests\", disallowedFlags);\n pushIf(options.clearDocs === true, \"--clear-docs\", disallowedFlags);\n pushIf(options.clearReminders === true, \"--clear-reminders\", disallowedFlags);\n pushIf(options.clearEvents === true, \"--clear-events\", disallowedFlags);\n pushIf(options.clearTypeOptions === true, \"--clear-type-options\", disallowedFlags);\n pushIf(options.force === true, \"--force\", disallowedFlags);\n pushIf(clearFrontMatterKeys.size > 0, \"--unset\", disallowedFlags);\n if (options.dep === undefined || options.dep.length === 0) {\n throw new PmCliError(\"--allow-audit-dep-update requires at least one --dep value\", EXIT_CODE.USAGE);\n }\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_dep_update_restricted_options\",\n message: `--allow-audit-dep-update supports append-only dependency additions via --dep. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required: \"Pass only --dep additions (plus --message/--author) when using --allow-audit-dep-update.\",\n why: \"--allow-audit-dep-update is a narrow non-owner override scoped to append-only dependency additions; every other mutation keeps its normal ownership rules.\",\n disallowedFlags,\n });\n }\n return;\n }\n\n const disallowedFlags: string[] = [];\n if (options.status !== undefined) {\n disallowedFlags.push(\"--status\");\n }\n if (options.closeReason !== undefined) {\n disallowedFlags.push(\"--close-reason\");\n }\n if (options.assignee !== undefined) {\n disallowedFlags.push(\"--assignee\");\n }\n if (options.parent !== undefined) {\n disallowedFlags.push(\"--parent\");\n }\n if (options.blockedBy !== undefined) {\n disallowedFlags.push(\"--blocked-by\");\n }\n if (options.blockedReason !== undefined) {\n disallowedFlags.push(\"--blocked-reason\");\n }\n if (options.unblockNote !== undefined) {\n disallowedFlags.push(\"--unblock-note\");\n }\n if (options.dep !== undefined) {\n disallowedFlags.push(\"--dep\");\n }\n if (options.depRemove !== undefined) {\n disallowedFlags.push(\"--dep-remove\");\n }\n if (options.replaceDeps === true) {\n disallowedFlags.push(\"--replace-deps\");\n }\n if (options.replaceTests === true) {\n disallowedFlags.push(\"--replace-tests\");\n }\n if (options.note !== undefined) {\n disallowedFlags.push(\"--note\");\n }\n if (options.learning !== undefined) {\n disallowedFlags.push(\"--learning\");\n }\n if (options.test !== undefined) {\n disallowedFlags.push(\"--test\");\n }\n if (options.reminder !== undefined) {\n disallowedFlags.push(\"--reminder\");\n }\n if (options.event !== undefined) {\n disallowedFlags.push(\"--event\");\n }\n if (options.clearDeps === true) {\n disallowedFlags.push(\"--clear-deps\");\n }\n if (options.clearComments === true) {\n disallowedFlags.push(\"--clear-comments\");\n }\n if (options.clearNotes === true) {\n disallowedFlags.push(\"--clear-notes\");\n }\n if (options.clearLearnings === true) {\n disallowedFlags.push(\"--clear-learnings\");\n }\n if (options.clearFiles === true) {\n disallowedFlags.push(\"--clear-files\");\n }\n if (options.clearTests === true) {\n disallowedFlags.push(\"--clear-tests\");\n }\n if (options.clearDocs === true) {\n disallowedFlags.push(\"--clear-docs\");\n }\n if (options.clearReminders === true) {\n disallowedFlags.push(\"--clear-reminders\");\n }\n if (options.clearEvents === true) {\n disallowedFlags.push(\"--clear-events\");\n }\n\n /* c8 ignore start -- audit unset ordering fallback is validated by audit-governance integration coverage. */\n const disallowedUnset = [...clearFrontMatterKeys]\n .filter((field) => AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS.has(field))\n .sort((left, right) => left.localeCompare(right))\n .map((field) => `--unset ${field.replaceAll(\"_\", \"-\")}`);\n /* c8 ignore stop */\n disallowedFlags.push(...disallowedUnset);\n\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_update_restricted_options\",\n message: `--allow-audit-update only supports non-lifecycle metadata fields and evidence appends. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required: \"Limit --allow-audit-update to non-lifecycle metadata fields plus append-only --comment/--file/--doc evidence; route restricted appends and lifecycle changes through their dedicated commands.\",\n why: \"--allow-audit-update is a non-owner override scoped to metadata audits and append-only evidence; lifecycle, ownership, dependency mutations, restricted append fields, and clear/replace operations keep their normal ownership rules.\",\n disallowedFlags,\n });\n }\n}\n\n/* c8 ignore start -- lifecycle/dependency edge branches are exercised by dedicated update workflow integration tests. */\nfunction parseStatus(value: string, statusRegistry: RuntimeStatusRegistry): ItemStatus {\n const normalized = normalizeStatusInput(value, statusRegistry);\n if (!normalized) {\n const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);\n throw new PmCliError(`Invalid --status value \"${value}\". Allowed: ${allowedStatuses.join(\", \")}`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\n/**\n * Enforce per-type allowed-transition rules (governance.workflow_enforcement).\n * `off` (default) or an unrestricted type is a no-op. `strict` throws on a\n * disallowed transition; `warn` returns a warning string surfaced on the\n * update result. The target status is the raw `--status` value (resolved\n * case-insensitively through the registry inside evaluateTransition).\n */\nfunction enforceTypeWorkflowTransition(params: {\n enforcement: GovernanceWorkflowEnforcement;\n typeWorkflows: NormalizedTypeWorkflow[];\n statusRegistry: RuntimeStatusRegistry;\n typeName: string;\n fromStatus: string;\n toStatus: string;\n}): string | undefined {\n if (params.enforcement === \"off\" || params.typeWorkflows.length === 0) {\n return undefined;\n }\n const result = evaluateTransition({\n typeName: params.typeName,\n fromStatus: params.fromStatus,\n toStatus: params.toStatus,\n typeWorkflows: params.typeWorkflows,\n statusRegistry: params.statusRegistry,\n });\n if (!result.hasRule || result.allowed) {\n return undefined;\n }\n const normalizedFrom = normalizeStatusInput(params.fromStatus, params.statusRegistry) ?? params.fromStatus;\n const normalizedTo = normalizeStatusInput(params.toStatus, params.statusRegistry) ?? params.toStatus;\n const message =\n `Disallowed transition for type \"${params.typeName}\": ${normalizedFrom} -> ${normalizedTo}. ` +\n `Allowed transitions: ${describeAllowedTransitions(result.allowedTransitions)}.`;\n if (params.enforcement === \"strict\") {\n throw new PmCliError(message, EXIT_CODE.USAGE);\n }\n return `workflow_transition_not_allowed: ${message}`;\n}\n\ninterface ParsedDependencyUpdates {\n additions: Dependency[];\n}\n\ninterface DependencyRemovalSelector {\n id: string;\n kind?: (typeof DEPENDENCY_KIND_VALUES)[number];\n source_kind?: string;\n}\n\nfunction parseDependencyCreatedAt(value: string | undefined, currentIso: string): string {\n if (!value || value.trim() === \"\" || value.trim().toLowerCase() === \"now\") {\n return currentIso;\n }\n const parsed = Date.parse(value);\n if (!Number.isFinite(parsed)) {\n throw new PmCliError(`Invalid dependency created_at timestamp \"${value}\"`, EXIT_CODE.USAGE);\n }\n return new Date(parsed).toISOString();\n}\n\nfunction parseOptionalDependencyString(value: string | undefined): string | undefined {\n if (value === undefined) return undefined;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\n/** Allowed CSV/markdown keys for the update `--dep` addition seed (GH-258). */\nconst DEP_ADDITION_KEYS = [\"id\", \"kind\", \"type\", \"author\", \"created_at\", \"source_kind\"] as const;\n/** Allowed CSV/markdown keys for the `--dep-remove` selector (GH-258). */\nconst DEP_REMOVE_KEYS = [\"id\", \"kind\", \"type\", \"source_kind\"] as const;\n\nfunction looksLikeStructuredDependencyEntry(raw: string): boolean {\n if (raw.startsWith(\"```\") || raw.includes(\"\\n\")) {\n return true;\n }\n if (/^(?:[-*+]\\s+)?(?:id|kind|type|author|created_at|source_kind)\\s*[:=]/i.test(raw)) {\n return true;\n }\n // A first-key typo (e.g. `bogus=v,id=pm-2`) must still be parsed so the unknown\n // key is rejected rather than swallowed as a bare item id (GH-258).\n return looksLikeGenericKeyValueEntry(raw);\n}\n\n// pm-fl0c #4 (2026-05-28): `pm plan` accepts `depends_on` as a link kind\n// (`PLAN_STEP_LINK_KIND_VALUES`) but `pm update --dep kind=depends_on` rejected\n// it because `DEPENDENCY_KIND_VALUES` only lists `blocked_by`. The two terms\n// are semantically identical from this side (\"X depends on Y\" === \"X blocked\n// by Y\"), so we normalize input here rather than expanding the persisted enum\n// — the stored kind stays canonical (`blocked_by`) and downstream consumers\n// (closing logic, dependency graphs, blockers views) keep working unchanged.\nconst DEPENDENCY_KIND_INPUT_ALIASES: Readonly<Record<string, string>> = {\n \"blocked-by\": \"blocked_by\",\n depends_on: \"blocked_by\",\n \"depends-on\": \"blocked_by\",\n};\n\nfunction normalizeDependencyKindInput(raw: string | undefined): string | undefined {\n if (typeof raw !== \"string\") {\n return raw;\n }\n const trimmed = raw.trim();\n const alias = DEPENDENCY_KIND_INPUT_ALIASES[trimmed.toLowerCase()];\n return alias ?? trimmed;\n}\n\nfunction parseDependencyAdditions(raw: string[] | undefined, prefix: string, nowIso: string): ParsedDependencyUpdates {\n if (!raw) {\n return { additions: [] };\n }\n assertNoLegacyNoneTokens(raw, \"--dep\", \"Use --clear-deps to clear dependencies.\");\n const additions: Dependency[] = raw.map((entry) => {\n const trimmedEntry = entry.trim();\n const isStructured = looksLikeStructuredDependencyEntry(trimmedEntry);\n const kv = isStructured ? parseCsvKv(entry, \"--dep\") : { id: trimmedEntry, kind: \"related\" };\n if (isStructured) {\n assertNoUnknownCsvKeys(kv, \"--dep\", DEP_ADDITION_KEYS);\n }\n const id = kv.id?.trim();\n const kind = normalizeDependencyKindInput((kv.kind ?? kv.type)?.trim());\n if (!id || !kind) {\n throw new PmCliError(\"--dep requires id and kind, or a bare item id to add a related dependency\", EXIT_CODE.USAGE);\n }\n if (id.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep id must not use placeholder token \"${id}\". Use --clear-deps to clear dependencies.`,\n EXIT_CODE.USAGE,\n );\n }\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(id, prefix),\n kind: ensureEnum(kind, DEPENDENCY_KIND_VALUES, \"dependency kind\"),\n created_at: parseDependencyCreatedAt(kv.created_at, nowIso),\n author: parseOptionalDependencyString(kv.author),\n source_kind: sourceKind,\n };\n });\n return { additions };\n}\n\nfunction parseDependencyRemovals(raw: string[] | undefined, prefix: string): DependencyRemovalSelector[] {\n if (!raw) {\n return [];\n }\n assertNoLegacyNoneTokens(raw, \"--dep-remove\");\n return raw.map((entry) => {\n const trimmed = entry.trim();\n if (!trimmed) {\n throw new PmCliError(\"--dep-remove requires id or key/value selectors\", EXIT_CODE.USAGE);\n }\n if (trimmed.includes(\"=\") || /^(?:[-*+]\\s+)?(?:id|kind|type|source_kind)\\s*[:=]/i.test(trimmed) || trimmed.startsWith(\"```\")) {\n const kv = parseCsvKv(trimmed, \"--dep-remove\");\n assertNoUnknownCsvKeys(kv, \"--dep-remove\", DEP_REMOVE_KEYS);\n const idRaw = kv.id?.trim();\n if (!idRaw) {\n throw new PmCliError(\"--dep-remove key/value form requires id=<value>\", EXIT_CODE.USAGE);\n }\n if (idRaw.toLowerCase() === \"undefined\") {\n throw new PmCliError(`--dep-remove id must not use placeholder token \"${idRaw}\"`, EXIT_CODE.USAGE);\n }\n const kindRaw = normalizeDependencyKindInput(parseOptionalDependencyString(kv.kind ?? kv.type));\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(idRaw, prefix),\n kind: kindRaw ? ensureEnum(kindRaw, DEPENDENCY_KIND_VALUES, \"dependency kind\") : undefined,\n source_kind: sourceKind,\n };\n }\n if (trimmed.toLowerCase() === \"undefined\") {\n throw new PmCliError(`--dep-remove id must not use placeholder token \"${trimmed}\"`, EXIT_CODE.USAGE);\n }\n return {\n id: normalizeItemId(trimmed, prefix),\n };\n });\n}\n\nfunction dependencyKey(value: Pick<Dependency, \"id\" | \"kind\" | \"source_kind\">): string {\n return `${value.id}::${value.kind}::${value.source_kind ?? \"\"}`;\n}\n\n// pm-kyd6: `--blocked-by` writes the `blocked_by` scalar, but the dependency\n// graph (`pm deps`) is built only from the `dependencies` array. Mirror the\n// behaviour create.ts already has so the metadata and the graph agree: a\n// resolvable blocker also gets a `blocked_by` dependency edge, clearing the\n// scalar removes that edge, and re-pointing it replaces the prior edge.\nfunction reconcileBlockedByDependency(\n current: Dependency[] | undefined,\n nextBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n): { dependencies: Dependency[] | undefined; changed: boolean } {\n let next = [...(current ?? [])];\n let changed = false;\n const filtered = next.filter((dep) => dep.kind !== \"blocked_by\" || dep.id === nextBlockedById);\n if (filtered.length !== next.length) {\n next = filtered;\n changed = true;\n }\n if (nextBlockedById && !next.some((dep) => dep.kind === \"blocked_by\" && dep.id === nextBlockedById)) {\n next.push({ id: nextBlockedById, kind: \"blocked_by\", created_at: nowIsoValue, author });\n changed = true;\n }\n if (!changed) {\n return { dependencies: current, changed: false };\n }\n return { dependencies: next.length > 0 ? next : undefined, changed: true };\n}\n\n// pm-kyd6: resolve the --blocked-by target before the synchronous mutate\n// callback so a real blocker can also become a `blocked_by` dependency edge.\n// `id` is set when the target resolves; `unresolved` carries the raw value when\n// --blocked-by points at an item that does not exist (the scalar is still set,\n// mirroring create.ts and the never-block missing-parent behaviour, but the\n// caller surfaces a warning so the metadata/graph mismatch is visible).\nasync function resolveBlockedByDependencyTarget(\n blockedByOption: string | undefined,\n blockedByCleared: boolean,\n pmRoot: string,\n idPrefix: string,\n itemFormat: ItemFormat,\n typeToFolder: Record<string, string>,\n): Promise<{ id?: string; unresolved?: string }> {\n if (blockedByOption === undefined || blockedByCleared) {\n return {};\n }\n const blockedByValue = blockedByOption.trim();\n if (blockedByValue.length === 0) {\n return {};\n }\n const located = await locateItem(pmRoot, normalizeItemId(blockedByValue, idPrefix), idPrefix, itemFormat, typeToFolder);\n return located ? { id: located.id } : { unresolved: blockedByValue };\n}\n\n// pm-kyd6: apply the reconciled blocked_by dependency edge to the item metadata\n// and record the `dependencies` change. Kept out of the mutate callback so the\n// large runUpdate function stays under the static-quality complexity budget.\nfunction applyBlockedByDependencyEdge(\n metadata: ItemFrontMatter,\n resolvedBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n changedFields: string[],\n): void {\n const reconciled = reconcileBlockedByDependency(\n metadata.dependencies,\n resolvedBlockedById,\n nowIsoValue,\n author,\n );\n if (!reconciled.changed) {\n return;\n }\n if (reconciled.dependencies === undefined) {\n delete metadata.dependencies;\n } else {\n metadata.dependencies = reconciled.dependencies;\n }\n if (!changedFields.includes(\"dependencies\")) {\n changedFields.push(\"dependencies\");\n }\n}\n\nfunction fileKey(value: Pick<LinkedFile, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction docKey(value: Pick<LinkedDoc, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction testKey(value: Pick<LinkedTest, \"command\" | \"path\" | \"scope\" | \"pm_context_mode\">): string {\n return `${value.command}::${value.path ?? \"\"}::${value.scope}::${value.pm_context_mode ?? \"\"}`;\n}\n\nfunction matchesDependencySelector(value: Dependency, selector: DependencyRemovalSelector): boolean {\n if (value.id !== selector.id) {\n return false;\n }\n if (selector.kind && value.kind !== selector.kind) {\n return false;\n }\n if (selector.source_kind !== undefined && (value.source_kind ?? undefined) !== selector.source_kind) {\n return false;\n }\n return true;\n}\n\nfunction ensurePriority(raw: string | number): 0 | 1 | 2 | 3 | 4 {\n return resolvePriority(raw);\n}\n\nfunction normalizeUpdatePolicyOptionKey(raw: string, typeName: string): string {\n const canonical = canonicalizeCommandOptionKey(\"update\", raw);\n if (!canonical) {\n throw new PmCliError(\n `Unsupported command_option_policies option \"${raw}\" for update command on type \"${typeName}\"`,\n EXIT_CODE.CONFLICT,\n );\n }\n return canonical;\n}\n\nfunction collectProvidedUpdatePolicyOptions(options: UpdateCommandOptions, extensionFieldNames: readonly string[]): Set<string> {\n const provided = new Set<string>();\n const mark = (optionKey: string, isProvided: boolean): void => {\n if (isProvided) {\n provided.add(optionKey);\n }\n };\n mark(\"title\", options.title !== undefined);\n mark(\"description\", options.description !== undefined);\n mark(\"body\", options.body !== undefined);\n mark(\"status\", options.status !== undefined);\n mark(\"closeReason\", options.closeReason !== undefined);\n mark(\"priority\", options.priority !== undefined);\n mark(\"type\", options.type !== undefined);\n // `--add-tags` / `--remove-tags` mutate the same `tags` field as `--tags`, so\n // they count toward the `tags` command_option_policy (disabled + required).\n mark(\n \"tags\",\n options.tags !== undefined ||\n (Array.isArray(options.addTags) && options.addTags.length > 0) ||\n (Array.isArray(options.removeTags) && options.removeTags.length > 0),\n );\n mark(\"deadline\", options.deadline !== undefined);\n mark(\"estimatedMinutes\", options.estimatedMinutes !== undefined);\n mark(\"acceptanceCriteria\", options.acceptanceCriteria !== undefined);\n mark(\"definitionOfReady\", options.definitionOfReady !== undefined);\n mark(\"order\", options.order !== undefined || options.rank !== undefined);\n mark(\"goal\", options.goal !== undefined);\n mark(\"objective\", options.objective !== undefined);\n mark(\"value\", options.value !== undefined);\n mark(\"impact\", options.impact !== undefined);\n mark(\"outcome\", options.outcome !== undefined);\n mark(\"whyNow\", options.whyNow !== undefined);\n mark(\"author\", options.author !== undefined);\n mark(\"message\", options.message !== undefined);\n mark(\"assignee\", options.assignee !== undefined);\n mark(\"parent\", options.parent !== undefined);\n mark(\"reviewer\", options.reviewer !== undefined);\n mark(\"risk\", options.risk !== undefined);\n mark(\"confidence\", options.confidence !== undefined);\n mark(\"sprint\", options.sprint !== undefined);\n mark(\"release\", options.release !== undefined);\n mark(\"blockedBy\", options.blockedBy !== undefined);\n mark(\"blockedReason\", options.blockedReason !== undefined);\n mark(\"unblockNote\", options.unblockNote !== undefined);\n mark(\"reporter\", options.reporter !== undefined);\n mark(\"severity\", options.severity !== undefined);\n mark(\"environment\", options.environment !== undefined);\n mark(\"reproSteps\", options.reproSteps !== undefined);\n mark(\"resolution\", options.resolution !== undefined);\n mark(\"expectedResult\", options.expectedResult !== undefined);\n mark(\"actualResult\", options.actualResult !== undefined);\n mark(\"affectedVersion\", options.affectedVersion !== undefined);\n mark(\"fixedVersion\", options.fixedVersion !== undefined);\n mark(\"component\", options.component !== undefined);\n mark(\"regression\", options.regression !== undefined);\n mark(\"customerImpact\", options.customerImpact !== undefined);\n mark(\"dep\", options.dep !== undefined);\n mark(\"depRemove\", options.depRemove !== undefined);\n mark(\"dep\", options.replaceDeps === true);\n mark(\"comment\", options.comment !== undefined);\n mark(\"note\", options.note !== undefined);\n mark(\"learning\", options.learning !== undefined);\n mark(\"file\", options.file !== undefined);\n mark(\"test\", options.test !== undefined);\n mark(\"test\", options.replaceTests === true);\n mark(\"doc\", options.doc !== undefined);\n mark(\"reminder\", options.reminder !== undefined);\n mark(\"event\", options.event !== undefined);\n mark(\"typeOption\", options.typeOption !== undefined);\n mark(\"field\", options.field !== undefined);\n mark(\"force\", options.force === true);\n mark(\"allowAuditUpdate\", options.allowAuditUpdate === true);\n mark(\"dep\", options.clearDeps === true);\n mark(\"comment\", options.clearComments === true);\n mark(\"note\", options.clearNotes === true);\n mark(\"learning\", options.clearLearnings === true);\n mark(\"file\", options.clearFiles === true);\n mark(\"test\", options.clearTests === true);\n mark(\"doc\", options.clearDocs === true);\n mark(\"reminder\", options.clearReminders === true);\n mark(\"event\", options.clearEvents === true);\n mark(\"typeOption\", options.clearTypeOptions === true);\n if (options.unset && options.unset.length > 0) {\n const unsetTargets = parseUpdateUnsetTargets(options.unset, undefined, extensionFieldNames);\n for (const optionKey of unsetTargets.optionKeys) {\n mark(optionKey, true);\n }\n }\n return provided;\n}\n\nfunction enforceUpdateOptionsByType(\n typeName: string,\n options: UpdateCommandOptions,\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n extensionFieldNames: readonly string[],\n): void {\n const typeDefinition = resolveTypeDefinition(typeName, typeRegistry);\n if (!typeDefinition) {\n throw new PmCliError(`Invalid type value \"${typeName}\"`, EXIT_CODE.USAGE);\n }\n const policyState = resolveCommandOptionPolicyState(typeDefinition, \"update\", []);\n if (policyState.errors.length > 0) {\n throw new PmCliError(policyState.errors.join(\"; \"), EXIT_CODE.CONFLICT);\n }\n\n const provided = collectProvidedUpdatePolicyOptions(options, extensionFieldNames);\n for (const disabled of policyState.disabled) {\n if (provided.has(normalizeUpdatePolicyOptionKey(disabled, typeName))) {\n throw new PmCliError(\n `Option ${commandOptionFlagLabel(\"update\", disabled)} is disabled for type \"${typeName}\" by command_option_policies`,\n EXIT_CODE.USAGE,\n );\n }\n }\n\n for (const required of policyState.required) {\n if (!provided.has(normalizeUpdatePolicyOptionKey(required, typeName))) {\n throw new PmCliError(\n `Missing required option ${commandOptionFlagLabel(\"update\", required)} for type \"${typeName}\"`,\n EXIT_CODE.USAGE,\n );\n }\n }\n}\n\n/**\n * Implements run update for the public runtime surface of this module.\n */\nexport async function runUpdate(id: string, options: UpdateCommandOptions, global: GlobalOptions): Promise<UpdateResult> {\n const stdinResolver = createStdinTokenResolver();\n options = normalizeLegacyNoneUpdateOptions({\n ...options,\n body: await stdinResolver.resolveValue(options.body, \"--body\"),\n dep: await stdinResolver.resolveList(options.dep, \"--dep\"),\n depRemove: await stdinResolver.resolveList(options.depRemove, \"--dep-remove\"),\n comment: await stdinResolver.resolveList(options.comment, \"--comment\"),\n note: await stdinResolver.resolveList(options.note, \"--note\"),\n learning: await stdinResolver.resolveList(options.learning, \"--learning\"),\n file: await stdinResolver.resolveList(options.file, \"--file\"),\n test: await stdinResolver.resolveList(options.test, \"--test\"),\n doc: await stdinResolver.resolveList(options.doc, \"--doc\"),\n reminder: await stdinResolver.resolveList(options.reminder, \"--reminder\"),\n event: await stdinResolver.resolveList(options.event, \"--event\"),\n typeOption: await stdinResolver.resolveList(options.typeOption, \"--type-option\"),\n field: await stdinResolver.resolveList(options.field, \"--field\"),\n });\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 const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const extensionRegistrations = getActiveExtensionRegistrations();\n const extensionFieldNames = collectRegisteredItemFieldNames(extensionRegistrations);\n const typeRegistry = resolveItemTypeRegistry(settings, extensionRegistrations);\n // Per-type allowed-transition enforcement is read RAW (not preset-derived) so\n // existing projects are unaffected when unset; defaults to \"off\".\n const workflowEnforcement: GovernanceWorkflowEnforcement = settings.governance.workflow_enforcement ?? \"off\";\n const typeWorkflows = workflowEnforcement === \"off\" ? [] : resolveTypeWorkflows(settings.schema);\n const parentReferencePolicy = settings.validation.parent_reference;\n const sprintReleasePolicy = settings.validation.sprint_release_format;\n const unsetTargets = parseUpdateUnsetTargets(options.unset, runtimeFieldRegistry, extensionFieldNames);\n const clearOptionKeys = new Set<string>(unsetTargets.optionKeys);\n const clearFrontMatterKeys = new Set<string>(unsetTargets.frontMatterKeys);\n\n const clearCollectionDefinitions: ReadonlyArray<{\n enabled: boolean | undefined;\n optionKey: string;\n clearFlag: string;\n valueFlag: string;\n values: string[] | undefined;\n frontMatterKey: string;\n }> = [\n {\n enabled: options.clearDeps || options.replaceDeps,\n optionKey: \"dep\",\n clearFlag: \"--clear-deps\",\n valueFlag: \"--dep\",\n values: options.dep,\n frontMatterKey: \"dependencies\",\n },\n {\n enabled: options.clearComments,\n optionKey: \"comment\",\n clearFlag: \"--clear-comments\",\n valueFlag: \"--comment\",\n values: options.comment,\n frontMatterKey: \"comments\",\n },\n {\n enabled: options.clearNotes,\n optionKey: \"note\",\n clearFlag: \"--clear-notes\",\n valueFlag: \"--note\",\n values: options.note,\n frontMatterKey: \"notes\",\n },\n {\n enabled: options.clearLearnings,\n optionKey: \"learning\",\n clearFlag: \"--clear-learnings\",\n valueFlag: \"--learning\",\n values: options.learning,\n frontMatterKey: \"learnings\",\n },\n {\n enabled: options.clearFiles,\n optionKey: \"file\",\n clearFlag: \"--clear-files\",\n valueFlag: \"--file\",\n values: options.file,\n frontMatterKey: \"files\",\n },\n {\n enabled: options.clearTests || options.replaceTests,\n optionKey: \"test\",\n clearFlag: \"--clear-tests\",\n valueFlag: \"--test\",\n values: options.test,\n frontMatterKey: \"tests\",\n },\n {\n enabled: options.clearDocs,\n optionKey: \"doc\",\n clearFlag: \"--clear-docs\",\n valueFlag: \"--doc\",\n values: options.doc,\n frontMatterKey: \"docs\",\n },\n {\n enabled: options.clearReminders,\n optionKey: \"reminder\",\n clearFlag: \"--clear-reminders\",\n valueFlag: \"--reminder\",\n values: options.reminder,\n frontMatterKey: \"reminders\",\n },\n {\n enabled: options.clearEvents,\n optionKey: \"event\",\n clearFlag: \"--clear-events\",\n valueFlag: \"--event\",\n values: options.event,\n frontMatterKey: \"events\",\n },\n {\n enabled: options.clearTypeOptions,\n optionKey: \"typeOption\",\n clearFlag: \"--clear-type-options\",\n valueFlag: \"--type-option\",\n values: options.typeOption,\n frontMatterKey: \"type_options\",\n },\n ];\n if (options.replaceDeps === true && (options.dep === undefined || options.dep.length === 0)) {\n throw new PmCliError(\"--replace-deps requires at least one --dep entry\", EXIT_CODE.USAGE);\n }\n if (options.replaceDeps === true && options.depRemove !== undefined && options.depRemove.length > 0) {\n throw new PmCliError(\"--replace-deps cannot be combined with --dep-remove\", EXIT_CODE.USAGE);\n }\n if (options.replaceTests === true && (options.test === undefined || options.test.length === 0)) {\n throw new PmCliError(\"--replace-tests requires at least one --test entry\", EXIT_CODE.USAGE);\n }\n if (options.replaceTests === true && options.clearTests === true) {\n throw new PmCliError(\"--replace-tests cannot be combined with --clear-tests\", EXIT_CODE.USAGE);\n }\n for (const definition of clearCollectionDefinitions) {\n if (!definition.enabled) {\n continue;\n }\n if (\n definition.values &&\n definition.values.length > 0 &&\n !(\n (definition.optionKey === \"dep\" && options.replaceDeps === true) ||\n (definition.optionKey === \"test\" && options.replaceTests === true)\n )\n ) {\n throw new PmCliError(`Cannot combine ${definition.clearFlag} with ${definition.valueFlag}`, EXIT_CODE.USAGE);\n }\n clearOptionKeys.add(definition.optionKey);\n clearFrontMatterKeys.add(definition.frontMatterKey);\n }\n enforceAllowAuditUpdateScope(id, options, clearFrontMatterKeys);\n\n const scalarOptionPresence: Record<string, boolean> = {\n tags: options.tags !== undefined,\n closeReason: options.closeReason !== undefined,\n deadline: options.deadline !== undefined,\n estimatedMinutes: options.estimatedMinutes !== undefined,\n acceptanceCriteria: options.acceptanceCriteria !== undefined,\n definitionOfReady: options.definitionOfReady !== undefined,\n order: options.order !== undefined || options.rank !== undefined,\n goal: options.goal !== undefined,\n objective: options.objective !== undefined,\n value: options.value !== undefined,\n impact: options.impact !== undefined,\n outcome: options.outcome !== undefined,\n whyNow: options.whyNow !== undefined,\n assignee: options.assignee !== undefined,\n parent: options.parent !== undefined,\n reviewer: options.reviewer !== undefined,\n risk: options.risk !== undefined,\n confidence: options.confidence !== undefined,\n sprint: options.sprint !== undefined,\n release: options.release !== undefined,\n blockedBy: options.blockedBy !== undefined,\n blockedReason: options.blockedReason !== undefined,\n unblockNote: options.unblockNote !== undefined,\n reporter: options.reporter !== undefined,\n severity: options.severity !== undefined,\n environment: options.environment !== undefined,\n reproSteps: options.reproSteps !== undefined,\n resolution: options.resolution !== undefined,\n expectedResult: options.expectedResult !== undefined,\n actualResult: options.actualResult !== undefined,\n affectedVersion: options.affectedVersion !== undefined,\n fixedVersion: options.fixedVersion !== undefined,\n component: options.component !== undefined,\n regression: options.regression !== undefined,\n customerImpact: options.customerImpact !== undefined,\n };\n for (const [optionKey, hasValue] of Object.entries(scalarOptionPresence)) {\n if (!hasValue || !unsetTargets.optionKeys.has(optionKey)) {\n continue;\n }\n const unsetField = UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey;\n throw new PmCliError(\n `Cannot combine --unset ${unsetField} with ${commandOptionFlagLabel(\"update\", optionKey)}`,\n EXIT_CODE.USAGE,\n );\n }\n // `--add-tags`/`--remove-tags` aren't in the scalar presence map above (they\n // are repeatable), but combining them with `--unset tags` is the same\n // contradiction as `--unset tags --tags ...`, so reject it explicitly.\n if (clearFrontMatterKeys.has(\"tags\")) {\n if (Array.isArray(options.addTags) && options.addTags.length > 0) {\n throw new PmCliError(\"Cannot combine --unset tags with --add-tags\", EXIT_CODE.USAGE);\n }\n if (Array.isArray(options.removeTags) && options.removeTags.length > 0) {\n throw new PmCliError(\"Cannot combine --unset tags with --remove-tags\", EXIT_CODE.USAGE);\n }\n }\n\n const assertNoLegacyScalarToken = (value: string | undefined, optionKey: string): void => {\n const unsetField = UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey);\n const hint = unsetField ? `Use --unset ${unsetField} to clear this field.` : undefined;\n assertNoLegacyNoneToken(value, commandOptionFlagLabel(\"update\", optionKey), hint);\n };\n assertNoLegacyScalarToken(options.tags, \"tags\");\n assertNoLegacyScalarToken(options.closeReason, \"closeReason\");\n assertNoLegacyScalarToken(options.deadline, \"deadline\");\n assertNoLegacyScalarToken(options.estimatedMinutes, \"estimatedMinutes\");\n assertNoLegacyScalarToken(options.acceptanceCriteria, \"acceptanceCriteria\");\n assertNoLegacyScalarToken(options.definitionOfReady, \"definitionOfReady\");\n assertNoLegacyScalarToken(options.order ?? options.rank, \"order\");\n assertNoLegacyScalarToken(options.goal, \"goal\");\n assertNoLegacyScalarToken(options.objective, \"objective\");\n assertNoLegacyScalarToken(options.value, \"value\");\n assertNoLegacyScalarToken(options.impact, \"impact\");\n assertNoLegacyScalarToken(options.outcome, \"outcome\");\n assertNoLegacyScalarToken(options.whyNow, \"whyNow\");\n assertNoLegacyScalarToken(options.assignee, \"assignee\");\n assertNoLegacyScalarToken(options.parent, \"parent\");\n assertNoLegacyScalarToken(options.reviewer, \"reviewer\");\n assertNoLegacyScalarToken(options.risk, \"risk\");\n assertNoLegacyScalarToken(options.confidence, \"confidence\");\n assertNoLegacyScalarToken(options.sprint, \"sprint\");\n assertNoLegacyScalarToken(options.release, \"release\");\n assertNoLegacyScalarToken(options.blockedBy, \"blockedBy\");\n assertNoLegacyScalarToken(options.blockedReason, \"blockedReason\");\n assertNoLegacyScalarToken(options.unblockNote, \"unblockNote\");\n assertNoLegacyScalarToken(options.reporter, \"reporter\");\n assertNoLegacyScalarToken(options.severity, \"severity\");\n assertNoLegacyScalarToken(options.environment, \"environment\");\n assertNoLegacyScalarToken(options.reproSteps, \"reproSteps\");\n assertNoLegacyScalarToken(options.resolution, \"resolution\");\n assertNoLegacyScalarToken(options.expectedResult, \"expectedResult\");\n assertNoLegacyScalarToken(options.actualResult, \"actualResult\");\n assertNoLegacyScalarToken(options.affectedVersion, \"affectedVersion\");\n assertNoLegacyScalarToken(options.fixedVersion, \"fixedVersion\");\n assertNoLegacyScalarToken(options.component, \"component\");\n assertNoLegacyScalarToken(options.regression, \"regression\");\n assertNoLegacyScalarToken(options.customerImpact, \"customerImpact\");\n assertNoLegacyNoneTokens(options.reminder, \"--reminder\", \"Use --clear-reminders to clear reminders.\");\n assertNoLegacyNoneTokens(options.event, \"--event\", \"Use --clear-events to clear linked events.\");\n\n const author = toAuthor(options.author, settings.author_default);\n const nowValue = new Date();\n const nowIso = nowValue.toISOString();\n const dependencyUpdates = parseDependencyAdditions(options.dep, settings.id_prefix, nowIso);\n const dependencyRemovals = parseDependencyRemovals(options.depRemove, settings.id_prefix);\n const parsedCommentUpdates = parseLogSeed(\"--comment\", options.comment, nowIso, author);\n const commentUpdates = options.allowAuditUpdate === true && parsedCommentUpdates.values\n ? {\n ...parsedCommentUpdates,\n values: parsedCommentUpdates.values.map((entry) => ({ ...entry, author })),\n }\n : parsedCommentUpdates;\n const noteUpdates = parseLogSeed(\"--note\", options.note, nowIso, author);\n const learningUpdates = parseLogSeed(\"--learning\", options.learning, nowIso, author);\n const fileUpdates = parseFiles(options.file);\n const testUpdates = parseTests(options.test);\n const docUpdates = parseDocs(options.doc);\n const parentReferenceWarnings: string[] = [];\n const workflowTransitionWarnings: string[] = [];\n let resolvedParentValue: string | undefined;\n if (options.parent !== undefined && !unsetTargets.frontMatterKeys.has(\"parent\")) {\n resolvedParentValue = normalizeParentReferenceValue(options.parent);\n const parentLocated = await locateItem(\n pmRoot,\n resolvedParentValue,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n if (!parentLocated) {\n const normalizedParentId = normalizeItemId(resolvedParentValue, settings.id_prefix);\n parentReferenceWarnings.push(...validateMissingParentReference(normalizedParentId, parentReferencePolicy).warnings);\n }\n }\n\n // pm-kyd6: resolve the --blocked-by target up front (async) so the sync\n // mutate callback can mirror create.ts and add a `blocked_by` dependency edge.\n const blockedByResolution = await resolveBlockedByDependencyTarget(\n options.blockedBy,\n clearFrontMatterKeys.has(\"blocked_by\"),\n pmRoot,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n const resolvedBlockedByDependencyId = blockedByResolution.id;\n if (blockedByResolution.unresolved !== undefined) {\n parentReferenceWarnings.push(`blocked_by_unresolved:${blockedByResolution.unresolved}`);\n }\n\n const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(\n options as Record<string, unknown>,\n runtimeFieldRegistry,\n options.runtimeFieldCommands,\n );\n const fieldFlags: Record<string, boolean> = {\n title: options.title !== undefined,\n description: options.description !== undefined,\n body: options.body !== undefined,\n status: options.status !== undefined,\n closeReason: options.closeReason !== undefined,\n priority: options.priority !== undefined,\n type: options.type !== undefined,\n tags: options.tags !== undefined,\n addTags: Array.isArray(options.addTags) && options.addTags.length > 0,\n removeTags: Array.isArray(options.removeTags) && options.removeTags.length > 0,\n deadline: options.deadline !== undefined,\n estimatedMinutes: options.estimatedMinutes !== undefined,\n acceptanceCriteria: options.acceptanceCriteria !== undefined,\n definitionOfReady: options.definitionOfReady !== undefined,\n order: options.order !== undefined,\n rank: options.rank !== undefined,\n goal: options.goal !== undefined,\n objective: options.objective !== undefined,\n value: options.value !== undefined,\n impact: options.impact !== undefined,\n outcome: options.outcome !== undefined,\n whyNow: options.whyNow !== undefined,\n assignee: options.assignee !== undefined,\n parent: options.parent !== undefined,\n reviewer: options.reviewer !== undefined,\n risk: options.risk !== undefined,\n confidence: options.confidence !== undefined,\n sprint: options.sprint !== undefined,\n release: options.release !== undefined,\n blockedBy: options.blockedBy !== undefined,\n blockedReason: options.blockedReason !== undefined,\n unblockNote: options.unblockNote !== undefined,\n reporter: options.reporter !== undefined,\n severity: options.severity !== undefined,\n environment: options.environment !== undefined,\n reproSteps: options.reproSteps !== undefined,\n resolution: options.resolution !== undefined,\n expectedResult: options.expectedResult !== undefined,\n actualResult: options.actualResult !== undefined,\n affectedVersion: options.affectedVersion !== undefined,\n fixedVersion: options.fixedVersion !== undefined,\n component: options.component !== undefined,\n regression: options.regression !== undefined,\n customerImpact: options.customerImpact !== undefined,\n dep: options.dep !== undefined,\n depRemove: options.depRemove !== undefined,\n replaceDeps: options.replaceDeps === true,\n comment: options.comment !== undefined,\n note: options.note !== undefined,\n learning: options.learning !== undefined,\n file: options.file !== undefined,\n test: options.test !== undefined,\n replaceTests: options.replaceTests === true,\n doc: options.doc !== undefined,\n reminder: options.reminder !== undefined,\n event: options.event !== undefined,\n typeOption: options.typeOption !== undefined,\n field: options.field !== undefined,\n unset: options.unset !== undefined && options.unset.length > 0,\n clearDeps: options.clearDeps === true,\n clearComments: options.clearComments === true,\n clearNotes: options.clearNotes === true,\n clearLearnings: options.clearLearnings === true,\n clearFiles: options.clearFiles === true,\n clearTests: options.clearTests === true,\n clearDocs: options.clearDocs === true,\n clearReminders: options.clearReminders === true,\n clearEvents: options.clearEvents === true,\n clearTypeOptions: options.clearTypeOptions === true,\n runtimeFields: Object.keys(runtimeFieldUpdates).length > 0,\n };\n const changedFlags = Object.values(fieldFlags).some(Boolean);\n\n if (!changedFlags) {\n const located = await locateItem(\n pmRoot,\n id,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const { document } = await readLocatedItem(located, { schema: settings.schema });\n return {\n item: toItemRecord(document.metadata),\n changed_fields: [],\n warnings: [\"noop_no_update_fields\"],\n };\n }\n\n // Per-type allowed-transition enforcement runs BEFORE the close-reroute so a\n // transition toward the close status is gated too. We read the item's current\n // status + type once (only when enforcement is active and --status is set) so\n // the default `off` path adds zero extra work. A `strict` violation throws; a\n // `warn` violation surfaces a warning on the result.\n if (workflowEnforcement !== \"off\" && typeWorkflows.length > 0 && fieldFlags.status && options.status !== undefined) {\n const located = await locateItem(\n pmRoot,\n id,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const { document } = await readLocatedItem(located, { schema: settings.schema });\n // When this update also changes --type, gate the transition against the\n // EFFECTIVE (post-update) type, so a combined --type/--status change can't\n // bypass a target-type rule (or be wrongly blocked by the pre-update type's\n // rule that will no longer apply). Falls back to the raw value when --type is\n // unresolved; the later type resolution surfaces an invalid-type error.\n const effectiveType =\n options.type !== undefined\n ? (resolveTypeName(options.type, typeRegistry) ?? options.type)\n : (document.metadata?.type ?? \"\");\n const warning = enforceTypeWorkflowTransition({\n enforcement: workflowEnforcement,\n typeWorkflows,\n statusRegistry,\n typeName: effectiveType,\n fromStatus: document.metadata?.status ?? \"\",\n toStatus: options.status ?? \"\",\n });\n if (warning) {\n workflowTransitionWarnings.push(warning);\n }\n }\n\n // `pm update --status <close_status>` always routes to the auditable close\n // workflow so agents are never blocked by close-through-update errors. Any\n // other field updates in the same call are applied first, then the item is\n // closed with the supplied --close-reason (or a derived default when omitted).\n if (fieldFlags.status) {\n const targetStatus = normalizeStatusInput(options.status as ItemStatus, statusRegistry);\n if (targetStatus === statusRegistry.close_status) {\n const otherFieldKeys = Object.entries(fieldFlags)\n .filter(([key, value]) => value && key !== \"status\" && key !== \"closeReason\")\n .map(([key]) => key);\n\n const routeWarnings: string[] = [];\n let preChangedFields: string[] = [];\n if (otherFieldKeys.length > 0) {\n const preUpdate = await runUpdate(\n id,\n { ...options, status: undefined, closeReason: undefined, message: undefined },\n global,\n );\n preChangedFields = preUpdate.changed_fields;\n routeWarnings.push(...preUpdate.warnings);\n }\n\n const explicitReason = typeof options.closeReason === \"string\" ? options.closeReason.trim() : \"\";\n const fallbackMessage = typeof options.message === \"string\" ? options.message.trim() : \"\";\n const closeReason = explicitReason || fallbackMessage || \"Closed via pm update\";\n // Only flag a defaulted reason when neither --close-reason nor --message\n // supplied any text and we had to invent the generic placeholder.\n const reasonDefaulted = explicitReason.length === 0 && fallbackMessage.length === 0;\n\n const closeResult = await runClose(\n id,\n closeReason,\n {\n author: options.author,\n message: options.message,\n force: options.force,\n },\n global,\n );\n\n const warnings = [\n ...workflowTransitionWarnings,\n ...routeWarnings,\n ...closeResult.warnings,\n \"auto_routed_from_update_to_close\",\n ];\n if (reasonDefaulted) {\n warnings.push(\"close_reason_defaulted\");\n }\n return {\n item: closeResult.item,\n changed_fields: [...preChangedFields, ...closeResult.changed_fields],\n warnings,\n };\n }\n }\n if (options.order !== undefined && options.rank !== undefined && options.order !== options.rank) {\n throw new PmCliError(\"--order and --rank must match when both are provided\", EXIT_CODE.USAGE);\n }\n\n const result = await mutateItem({\n pmRoot,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n id,\n op: options.allowAuditUpdate === true || options.allowAuditDepUpdate === true ? \"update_audit\" : \"update\",\n author,\n message: options.message,\n force: options.force,\n bypassAssigneeConflict: options.allowAuditUpdate === true || options.allowAuditDepUpdate === true,\n extensionFieldNames,\n mutate(document) {\n const changedFields: string[] = [];\n const warnings: string[] = [];\n let activeTypeName = resolveTypeName(document.metadata.type, typeRegistry) ?? document.metadata.type;\n\n // Declarative set-or-clear helpers for the many string scalar fields that\n // share an identical shape: set from `--flag` (optionally transformed) or\n // delete when `--unset <field>` was requested, then record the change.\n // Each call is placed in the same position the inline block occupied so\n // the order of `changedFields` is preserved exactly (pm-why9).\n const metadataRecord = toItemRecord(document.metadata);\n const setOrClearScalar = (\n optionValue: string | undefined,\n metadataKey: string,\n transform: (value: string) => unknown,\n ): void => {\n if (optionValue === undefined && !clearFrontMatterKeys.has(metadataKey)) {\n return;\n }\n if (clearFrontMatterKeys.has(metadataKey)) {\n delete metadataRecord[metadataKey];\n } else {\n metadataRecord[metadataKey] = transform(optionValue as string);\n }\n changedFields.push(metadataKey);\n };\n const setOrClearTrimScalar = (optionValue: string | undefined, metadataKey: string): void => {\n setOrClearScalar(optionValue, metadataKey, (value) => value.trim());\n };\n\n if (options.title !== undefined) {\n document.metadata.title = options.title;\n changedFields.push(\"title\");\n }\n if (options.description !== undefined) {\n document.metadata.description = options.description;\n changedFields.push(\"description\");\n }\n if (options.body !== undefined) {\n document.body = options.body;\n changedFields.push(\"body\");\n }\n const previousStatus = document.metadata.status;\n const previousStatusNormalized = normalizeStatusInput(previousStatus, statusRegistry) ?? previousStatus;\n if (options.status !== undefined) {\n // Close-status routing (with reason + audit) is handled before mutateItem\n // by the close gate above, so only non-close transitions reach this path.\n const status = parseStatus(options.status, statusRegistry);\n document.metadata.status = status;\n if (status === statusRegistry.canceled_status) {\n delete document.metadata.assignee;\n }\n changedFields.push(\"status\");\n }\n if (options.closeReason !== undefined || clearFrontMatterKeys.has(\"close_reason\")) {\n if (clearFrontMatterKeys.has(\"close_reason\")) {\n delete document.metadata.close_reason;\n } else {\n const closeReason = options.closeReason!.trim();\n if (closeReason.length === 0) {\n throw new PmCliError(\"--close-reason must not be empty\", EXIT_CODE.USAGE);\n }\n document.metadata.close_reason = closeReason;\n }\n changedFields.push(\"close_reason\");\n } else if (\n options.status !== undefined &&\n previousStatusNormalized === statusRegistry.close_status &&\n document.metadata.status !== statusRegistry.canceled_status &&\n document.metadata.close_reason !== undefined\n ) {\n delete document.metadata.close_reason;\n changedFields.push(\"close_reason\");\n }\n if (options.priority !== undefined) {\n document.metadata.priority = ensurePriority(options.priority);\n changedFields.push(\"priority\");\n }\n if (options.type !== undefined) {\n const resolvedTypeName = resolveTypeName(options.type, typeRegistry);\n if (!resolvedTypeName) {\n throw new PmCliError(\n buildInvalidTypeError(options.type, typeRegistry.types, resolveItemTypesFilePath(pmRoot, settings.schema)),\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type = resolvedTypeName;\n activeTypeName = resolvedTypeName;\n changedFields.push(\"type\");\n }\n enforceUpdateOptionsByType(activeTypeName, options, typeRegistry, extensionFieldNames);\n if (options.typeOption !== undefined || clearFrontMatterKeys.has(\"type_options\")) {\n if (clearFrontMatterKeys.has(\"type_options\")) {\n delete document.metadata.type_options;\n } else {\n const parsedTypeOptions = parseTypeOptionEntries(options.typeOption!);\n const validation = validateTypeOptions(activeTypeName, parsedTypeOptions, typeRegistry);\n if (validation.errors.length > 0) {\n throw new PmCliError(validation.errors.join(\"; \"), EXIT_CODE.USAGE);\n }\n document.metadata.type_options = validation.normalized;\n }\n changedFields.push(\"type_options\");\n } else if (options.type !== undefined && document.metadata.type_options !== undefined) {\n const validation = validateTypeOptions(activeTypeName, document.metadata.type_options, typeRegistry);\n if (validation.errors.length > 0) {\n throw new PmCliError(\n `Current type options are incompatible with type \"${activeTypeName}\". ${validation.errors.join(\"; \")}. Use --clear-type-options to clear them.`,\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type_options = validation.normalized;\n }\n if (options.dep !== undefined || options.depRemove !== undefined || clearFrontMatterKeys.has(\"dependencies\")) {\n let nextDependencies = clearFrontMatterKeys.has(\"dependencies\") ? [] : [...(document.metadata.dependencies ?? [])];\n if (dependencyUpdates.additions.length > 0) {\n const seen = new Set(nextDependencies.map((entry) => dependencyKey(entry)));\n for (const addition of dependencyUpdates.additions) {\n const key = dependencyKey(addition);\n if (seen.has(key)) {\n continue;\n }\n nextDependencies.push(addition);\n seen.add(key);\n }\n }\n if (dependencyRemovals.length > 0) {\n nextDependencies = nextDependencies.filter(\n (entry) => !dependencyRemovals.some((selector) => matchesDependencySelector(entry, selector)),\n );\n }\n if (nextDependencies.length === 0) {\n delete document.metadata.dependencies;\n } else {\n document.metadata.dependencies = nextDependencies;\n }\n changedFields.push(\"dependencies\");\n }\n if (options.comment !== undefined || clearFrontMatterKeys.has(\"comments\")) {\n if (clearFrontMatterKeys.has(\"comments\") || !commentUpdates.values || commentUpdates.values.length === 0) {\n delete document.metadata.comments;\n } else {\n document.metadata.comments = [...(document.metadata.comments ?? []), ...(commentUpdates.values as Comment[])];\n }\n changedFields.push(\"comments\");\n }\n if (options.note !== undefined || clearFrontMatterKeys.has(\"notes\")) {\n if (clearFrontMatterKeys.has(\"notes\") || !noteUpdates.values || noteUpdates.values.length === 0) {\n delete document.metadata.notes;\n } else {\n document.metadata.notes = [...(document.metadata.notes ?? []), ...(noteUpdates.values as LogNote[])];\n }\n changedFields.push(\"notes\");\n }\n if (options.learning !== undefined || clearFrontMatterKeys.has(\"learnings\")) {\n if (clearFrontMatterKeys.has(\"learnings\") || !learningUpdates.values || learningUpdates.values.length === 0) {\n delete document.metadata.learnings;\n } else {\n document.metadata.learnings = [...(document.metadata.learnings ?? []), ...(learningUpdates.values as LogNote[])];\n }\n changedFields.push(\"learnings\");\n }\n if (options.file !== undefined || clearFrontMatterKeys.has(\"files\")) {\n if (clearFrontMatterKeys.has(\"files\") || !fileUpdates.values || fileUpdates.values.length === 0) {\n delete document.metadata.files;\n } else {\n const nextFiles = [...(document.metadata.files ?? [])];\n const seen = new Set(nextFiles.map((entry) => fileKey(entry)));\n for (const entry of fileUpdates.values) {\n const key = fileKey(entry);\n if (seen.has(key)) {\n continue;\n }\n nextFiles.push(entry);\n seen.add(key);\n }\n document.metadata.files = nextFiles;\n }\n changedFields.push(\"files\");\n }\n if (options.test !== undefined || clearFrontMatterKeys.has(\"tests\")) {\n if (clearFrontMatterKeys.has(\"tests\") && options.replaceTests === true) {\n if (!testUpdates.values || testUpdates.values.length === 0) {\n delete document.metadata.tests;\n } else {\n const replacementTests: LinkedTest[] = [];\n const seen = new Set<string>();\n for (const entry of testUpdates.values) {\n const key = testKey(entry);\n if (seen.has(key)) {\n continue;\n }\n replacementTests.push(entry);\n seen.add(key);\n }\n document.metadata.tests = replacementTests;\n }\n } else if (clearFrontMatterKeys.has(\"tests\") || !testUpdates.values || testUpdates.values.length === 0) {\n delete document.metadata.tests;\n } else {\n const nextTests = [...(document.metadata.tests ?? [])];\n const seen = new Set(nextTests.map((entry) => testKey(entry)));\n for (const entry of testUpdates.values) {\n const key = testKey(entry);\n if (seen.has(key)) {\n continue;\n }\n nextTests.push(entry);\n seen.add(key);\n }\n document.metadata.tests = nextTests;\n }\n changedFields.push(\"tests\");\n }\n if (options.doc !== undefined || clearFrontMatterKeys.has(\"docs\")) {\n if (clearFrontMatterKeys.has(\"docs\") || !docUpdates.values || docUpdates.values.length === 0) {\n delete document.metadata.docs;\n } else {\n const nextDocs = [...(document.metadata.docs ?? [])];\n const seen = new Set(nextDocs.map((entry) => docKey(entry)));\n for (const entry of docUpdates.values) {\n const key = docKey(entry);\n if (seen.has(key)) {\n continue;\n }\n nextDocs.push(entry);\n seen.add(key);\n }\n document.metadata.docs = nextDocs;\n }\n changedFields.push(\"docs\");\n }\n const addTagsValues = options.addTags;\n const removeTagsValues = options.removeTags;\n const hasAdditiveTagMutation =\n (Array.isArray(addTagsValues) && addTagsValues.length > 0) ||\n (Array.isArray(removeTagsValues) && removeTagsValues.length > 0);\n if (options.tags !== undefined || clearFrontMatterKeys.has(\"tags\") || hasAdditiveTagMutation) {\n const baseTags = clearFrontMatterKeys.has(\"tags\")\n ? []\n : options.tags !== undefined\n ? parseTags(options.tags!)\n : Array.isArray(document.metadata.tags)\n ? [...(document.metadata.tags as string[])]\n : [];\n const withAdditions = mergeAdditiveTags(baseTags, addTagsValues);\n const finalTags = applyTagRemovals(withAdditions, removeTagsValues);\n document.metadata.tags = finalTags;\n changedFields.push(\"tags\");\n }\n setOrClearScalar(options.deadline, \"deadline\", (value) => resolveIsoOrRelative(value, nowValue, \"deadline\"));\n setOrClearScalar(options.estimatedMinutes, \"estimated_minutes\", (value) =>\n parseOptionalNumber(value, \"estimated-minutes\"),\n );\n setOrClearScalar(options.acceptanceCriteria, \"acceptance_criteria\", (value) => value);\n setOrClearTrimScalar(options.definitionOfReady, \"definition_of_ready\");\n const orderRaw = options.order ?? options.rank;\n if (orderRaw !== undefined || clearFrontMatterKeys.has(\"order\")) {\n if (clearFrontMatterKeys.has(\"order\")) {\n delete document.metadata.order;\n } else {\n const parsedOrder = parseOptionalNumber(orderRaw!, \"order\");\n if (!Number.isInteger(parsedOrder)) {\n throw new PmCliError(\"Order must be an integer\", EXIT_CODE.USAGE);\n }\n document.metadata.order = parsedOrder;\n }\n changedFields.push(\"order\");\n }\n setOrClearTrimScalar(options.goal, \"goal\");\n setOrClearTrimScalar(options.objective, \"objective\");\n setOrClearTrimScalar(options.value, \"value\");\n setOrClearTrimScalar(options.impact, \"impact\");\n setOrClearTrimScalar(options.outcome, \"outcome\");\n setOrClearTrimScalar(options.whyNow, \"why_now\");\n if (options.assignee !== undefined || clearFrontMatterKeys.has(\"assignee\")) {\n if (clearFrontMatterKeys.has(\"assignee\")) {\n delete document.metadata.assignee;\n } else {\n if (options.assignee!.trim() === \"\") {\n throw new PmCliError(\"--assignee must not be empty. Use --unset assignee to clear it.\", EXIT_CODE.USAGE);\n }\n document.metadata.assignee = options.assignee!.trim();\n }\n changedFields.push(\"assignee\");\n }\n if (options.parent !== undefined || clearFrontMatterKeys.has(\"parent\")) {\n if (clearFrontMatterKeys.has(\"parent\")) {\n delete document.metadata.parent;\n } else {\n document.metadata.parent = resolvedParentValue as string;\n }\n changedFields.push(\"parent\");\n }\n setOrClearTrimScalar(options.reviewer, \"reviewer\");\n setOrClearScalar(options.risk, \"risk\", (value) => ensureEnum(normalizeRiskInput(value), RISK_VALUES, \"risk\"));\n setOrClearScalar(options.confidence, \"confidence\", (value) => parseConfidenceInput(value));\n if (options.sprint !== undefined || clearFrontMatterKeys.has(\"sprint\")) {\n if (clearFrontMatterKeys.has(\"sprint\")) {\n delete document.metadata.sprint;\n } else {\n const sprintValidation = validateSprintOrReleaseValue(\"sprint\", options.sprint!, sprintReleasePolicy);\n document.metadata.sprint = sprintValidation.value;\n warnings.push(...sprintValidation.warnings);\n }\n changedFields.push(\"sprint\");\n }\n if (options.release !== undefined || clearFrontMatterKeys.has(\"release\")) {\n if (clearFrontMatterKeys.has(\"release\")) {\n delete document.metadata.release;\n } else {\n const releaseValidation = validateSprintOrReleaseValue(\"release\", options.release!, sprintReleasePolicy);\n document.metadata.release = releaseValidation.value;\n warnings.push(...releaseValidation.warnings);\n }\n changedFields.push(\"release\");\n }\n if (options.blockedBy !== undefined || clearFrontMatterKeys.has(\"blocked_by\")) {\n if (clearFrontMatterKeys.has(\"blocked_by\")) {\n delete document.metadata.blocked_by;\n } else {\n document.metadata.blocked_by = options.blockedBy!.trim();\n }\n changedFields.push(\"blocked_by\");\n // pm-kyd6: keep the dependency graph in sync with the blocked_by scalar.\n applyBlockedByDependencyEdge(\n document.metadata,\n resolvedBlockedByDependencyId,\n nowIso,\n author,\n changedFields,\n );\n }\n setOrClearTrimScalar(options.blockedReason, \"blocked_reason\");\n setOrClearTrimScalar(options.unblockNote, \"unblock_note\");\n setOrClearTrimScalar(options.reporter, \"reporter\");\n setOrClearScalar(options.severity, \"severity\", (value) =>\n ensureEnum(normalizeSeverityInput(value), ISSUE_SEVERITY_VALUES, \"severity\"),\n );\n setOrClearTrimScalar(options.environment, \"environment\");\n setOrClearTrimScalar(options.reproSteps, \"repro_steps\");\n setOrClearTrimScalar(options.resolution, \"resolution\");\n setOrClearTrimScalar(options.expectedResult, \"expected_result\");\n setOrClearTrimScalar(options.actualResult, \"actual_result\");\n setOrClearTrimScalar(options.affectedVersion, \"affected_version\");\n setOrClearTrimScalar(options.fixedVersion, \"fixed_version\");\n setOrClearTrimScalar(options.component, \"component\");\n setOrClearScalar(options.regression, \"regression\", (value) => parseRegressionInput(value));\n setOrClearTrimScalar(options.customerImpact, \"customer_impact\");\n if (options.reminder !== undefined || clearFrontMatterKeys.has(\"reminders\")) {\n if (clearFrontMatterKeys.has(\"reminders\")) {\n delete document.metadata.reminders;\n } else {\n document.metadata.reminders = parseReminderEntries(options.reminder!, nowValue, { valueMode: \"trimmed\" });\n }\n changedFields.push(\"reminders\");\n }\n if (options.event !== undefined || clearFrontMatterKeys.has(\"events\")) {\n if (clearFrontMatterKeys.has(\"events\")) {\n delete document.metadata.events;\n } else {\n document.metadata.events = parseEventEntries(options.event!, nowValue, {\n allDayEmptyGuard: \"truthy\",\n recurrenceEmptyNumericGuard: \"truthy\",\n });\n }\n changedFields.push(\"events\");\n }\n\n for (const definition of runtimeFieldRegistry.definitions) {\n if (!clearFrontMatterKeys.has(definition.metadata_key)) {\n continue;\n }\n if (metadataRecord[definition.metadata_key] === undefined) {\n continue;\n }\n delete metadataRecord[definition.metadata_key];\n changedFields.push(definition.metadata_key);\n }\n\n for (const fieldKey of extensionFieldNames) {\n if (!clearFrontMatterKeys.has(fieldKey)) {\n continue;\n }\n if (metadataRecord[fieldKey] === undefined) {\n continue;\n }\n delete metadataRecord[fieldKey];\n changedFields.push(fieldKey);\n }\n\n for (const [fieldKey, fieldValue] of Object.entries(runtimeFieldUpdates)) {\n if (clearFrontMatterKeys.has(fieldKey)) {\n continue;\n }\n if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n continue;\n }\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n\n const registeredItemFieldUpdates = parseRegisteredItemFieldAssignments(options.field, extensionRegistrations);\n for (const fieldKey of Object.keys(registeredItemFieldUpdates)) {\n if (!clearFrontMatterKeys.has(fieldKey)) {\n continue;\n }\n throw new PmCliError(\n `Cannot combine --unset ${fieldKey.replaceAll(\"_\", \"-\")} with --field ${fieldKey}=...`,\n EXIT_CODE.USAGE,\n );\n }\n for (const [fieldKey, fieldValue] of Object.entries(registeredItemFieldUpdates)) {\n if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n continue;\n }\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n\n try {\n applyRegisteredItemFieldDefaultsAndValidation(\n metadataRecord,\n extensionRegistrations,\n { skipDefaultFields: clearFrontMatterKeys },\n );\n } catch (error: unknown) {\n throw new PmCliError(error instanceof Error ? error.message : \"Invalid extension item field values\", EXIT_CODE.USAGE);\n }\n\n return { changedFields, warnings };\n },\n });\n\n return {\n item: toItemRecord(result.item),\n changed_fields: result.changedFields,\n warnings: [...workflowTransitionWarnings, ...parentReferenceWarnings, ...result.warnings],\n ...(options.allowAuditUpdate === true || options.allowAuditDepUpdate === true ? { audit_update: true } : {}),\n };\n}\n\n/* c8 ignore stop */\nexport const _testOnlyUpdateCommand = {\n collectProvidedUpdatePolicyOptions,\n buildAuditScopeRestrictedOptionsError,\n enforceAllowAuditUpdateScope,\n enforceTypeWorkflowTransition,\n matchesDependencySelector,\n normalizeLegacyNoneUpdateOptions,\n normalizeUpdatePolicyOptionKey,\n parseDependencyAdditions,\n parseDependencyRemovals,\n parseUpdateUnsetTargets,\n reconcileBlockedByDependency,\n resolveRuntimeUnsetDefinition,\n};\n"],"names":[],"mappings":"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","debugId":"538b3676-bb3c-57d6-8a1a-98165a15fbca"}
1
+ {"version":3,"file":"update.js","sources":["cli/commands/update.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/commands/update\n *\n * Implements the pm update command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport {\n canonicalizeCommandOptionKey,\n commandOptionFlagLabel,\n resolveItemTypeRegistry,\n resolveCommandOptionPolicyState,\n resolveTypeDefinition,\n resolveTypeName,\n validateTypeOptions,\n} from \"../../core/item/type-registry.js\";\nimport { normalizeItemId } from \"../../core/item/id.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { buildInvalidTypeError } from \"../../core/schema/item-types-file.js\";\nimport {\n normalizeParentReferenceValue,\n validateMissingParentReference,\n} from \"../../core/item/parent-reference-policy.js\";\nimport { validateSprintOrReleaseValue } from \"../../core/item/sprint-release-format.js\";\nimport {\n applyTagRemovals,\n assertNoUnknownCsvKeys,\n createStdinTokenResolver,\n looksLikeGenericKeyValueEntry,\n mergeAdditiveTags,\n parseCsvKv,\n parseOptionalNumber,\n parseTags,\n} from \"../../core/item/parse.js\";\nimport { resolvePriority } from \"../../core/item/priority.js\";\nimport { normalizeStatusInput } from \"../../core/item/status.js\";\nimport { collectRuntimeUpdateFieldValues } from \"../../core/schema/runtime-field-values.js\";\nimport {\n resolveItemTypesFilePath,\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeFieldRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport {\n describeAllowedTransitions,\n evaluateTransition,\n resolveTypeWorkflows,\n type NormalizedTypeWorkflow,\n} from \"../../core/schema/type-workflows.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 { stableValueEquals } from \"../../core/shared/serialization.js\";\nimport { resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport {\n collectRegisteredItemFieldNames,\n applyRegisteredItemFieldDefaultsAndValidation,\n parseRegisteredItemFieldAssignments,\n} from \"../../core/extensions/item-fields.js\";\nimport { buildItemNotFoundError, locateItem, mutateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { runClose } from \"./close.js\";\nimport {\n normalizeRiskInput,\n normalizeSeverityInput,\n parseConfidenceInput,\n parseRegressionInput,\n} from \"./metadata-normalizers.js\";\nimport { assertNoLegacyNoneToken, assertNoLegacyNoneTokens, isLegacyNoneToken } from \"./legacy-none-tokens.js\";\nimport { ensureEnumValue as ensureEnum } from \"./recurrence-parsers.js\";\nimport {\n parseEventEntries,\n parseReminderEntries,\n parseTypeOptionEntries,\n} from \"./repeatable-metadata-parsers.js\";\nimport type {\n Comment,\n Dependency,\n GovernanceWorkflowEnforcement,\n ItemFormat,\n ItemFrontMatter,\n ItemStatus,\n LinkedDoc,\n LinkedFile,\n LinkedTest,\n LogNote,\n} from \"../../types/index.js\";\nimport {\n DEPENDENCY_KIND_VALUES,\n ISSUE_SEVERITY_VALUES,\n RISK_VALUES,\n} from \"../../types/index.js\";\nimport { parseDocs, parseFiles, parseLogSeed, parseTests } from \"./create.js\";\n\n/**\n * Documents the update command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpdateCommandOptions {\n title?: string;\n description?: string;\n body?: string;\n status?: string;\n closeReason?: string;\n priority?: string;\n type?: string;\n tags?: string;\n addTags?: string[];\n removeTags?: string[];\n deadline?: string;\n estimatedMinutes?: string;\n acceptanceCriteria?: string;\n definitionOfReady?: string;\n order?: string;\n rank?: string;\n goal?: string;\n objective?: string;\n value?: string;\n impact?: string;\n outcome?: string;\n whyNow?: string;\n author?: string;\n message?: string;\n force?: boolean;\n allowAuditUpdate?: boolean;\n allowAuditDepUpdate?: boolean;\n assignee?: string;\n parent?: string;\n reviewer?: string;\n risk?: string;\n confidence?: string;\n sprint?: string;\n release?: string;\n blockedBy?: string;\n blockedReason?: string;\n unblockNote?: string;\n reporter?: string;\n severity?: string;\n environment?: string;\n reproSteps?: string;\n resolution?: string;\n expectedResult?: string;\n actualResult?: string;\n affectedVersion?: string;\n fixedVersion?: string;\n component?: string;\n regression?: string;\n customerImpact?: string;\n dep?: string[];\n depRemove?: string[];\n replaceDeps?: boolean;\n replaceTests?: boolean;\n runtimeFieldCommands?: Array<\"update\" | \"update_many\">;\n comment?: string[];\n note?: string[];\n learning?: string[];\n file?: string[];\n test?: string[];\n doc?: string[];\n reminder?: string[];\n event?: string[];\n typeOption?: string[];\n field?: string[];\n unset?: string[];\n clearDeps?: boolean;\n clearComments?: boolean;\n clearNotes?: boolean;\n clearLearnings?: boolean;\n clearFiles?: boolean;\n clearTests?: boolean;\n clearDocs?: boolean;\n clearReminders?: boolean;\n clearEvents?: boolean;\n clearTypeOptions?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Documents the update result payload exchanged by command, SDK, and package integrations.\n */\nexport interface UpdateResult {\n item: Record<string, unknown>;\n changed_fields: string[];\n warnings: string[];\n audit_update?: boolean;\n}\n\ninterface UpdateUnsetFieldDefinition {\n optionKey: string;\n frontMatterKey: string;\n}\n\nconst UPDATE_UNSET_FIELD_DEFINITIONS: ReadonlyArray<{\n canonical: string;\n aliases: readonly string[];\n optionKey: string;\n frontMatterKey: string;\n}> = [\n { canonical: \"tags\", aliases: [\"tags\"], optionKey: \"tags\", frontMatterKey: \"tags\" },\n { canonical: \"close-reason\", aliases: [\"close_reason\", \"close-reason\"], optionKey: \"closeReason\", frontMatterKey: \"close_reason\" },\n { canonical: \"deadline\", aliases: [\"deadline\"], optionKey: \"deadline\", frontMatterKey: \"deadline\" },\n {\n canonical: \"estimate\",\n aliases: [\"estimate\", \"estimated_minutes\", \"estimated-minutes\"],\n optionKey: \"estimatedMinutes\",\n frontMatterKey: \"estimated_minutes\",\n },\n {\n canonical: \"acceptance-criteria\",\n aliases: [\"acceptance_criteria\", \"acceptance-criteria\", \"ac\"],\n optionKey: \"acceptanceCriteria\",\n frontMatterKey: \"acceptance_criteria\",\n },\n {\n canonical: \"definition-of-ready\",\n aliases: [\"definition_of_ready\", \"definition-of-ready\"],\n optionKey: \"definitionOfReady\",\n frontMatterKey: \"definition_of_ready\",\n },\n { canonical: \"order\", aliases: [\"order\", \"rank\"], optionKey: \"order\", frontMatterKey: \"order\" },\n { canonical: \"goal\", aliases: [\"goal\"], optionKey: \"goal\", frontMatterKey: \"goal\" },\n { canonical: \"objective\", aliases: [\"objective\"], optionKey: \"objective\", frontMatterKey: \"objective\" },\n { canonical: \"value\", aliases: [\"value\"], optionKey: \"value\", frontMatterKey: \"value\" },\n { canonical: \"impact\", aliases: [\"impact\"], optionKey: \"impact\", frontMatterKey: \"impact\" },\n { canonical: \"outcome\", aliases: [\"outcome\"], optionKey: \"outcome\", frontMatterKey: \"outcome\" },\n { canonical: \"why-now\", aliases: [\"why_now\", \"why-now\"], optionKey: \"whyNow\", frontMatterKey: \"why_now\" },\n { canonical: \"assignee\", aliases: [\"assignee\"], optionKey: \"assignee\", frontMatterKey: \"assignee\" },\n { canonical: \"parent\", aliases: [\"parent\"], optionKey: \"parent\", frontMatterKey: \"parent\" },\n { canonical: \"reviewer\", aliases: [\"reviewer\"], optionKey: \"reviewer\", frontMatterKey: \"reviewer\" },\n { canonical: \"risk\", aliases: [\"risk\"], optionKey: \"risk\", frontMatterKey: \"risk\" },\n { canonical: \"confidence\", aliases: [\"confidence\"], optionKey: \"confidence\", frontMatterKey: \"confidence\" },\n { canonical: \"sprint\", aliases: [\"sprint\"], optionKey: \"sprint\", frontMatterKey: \"sprint\" },\n { canonical: \"release\", aliases: [\"release\"], optionKey: \"release\", frontMatterKey: \"release\" },\n {\n canonical: \"blocked-by\",\n aliases: [\"blocked_by\", \"blocked-by\"],\n optionKey: \"blockedBy\",\n frontMatterKey: \"blocked_by\",\n },\n {\n canonical: \"blocked-reason\",\n aliases: [\"blocked_reason\", \"blocked-reason\"],\n optionKey: \"blockedReason\",\n frontMatterKey: \"blocked_reason\",\n },\n {\n canonical: \"unblock-note\",\n aliases: [\"unblock_note\", \"unblock-note\"],\n optionKey: \"unblockNote\",\n frontMatterKey: \"unblock_note\",\n },\n { canonical: \"reporter\", aliases: [\"reporter\"], optionKey: \"reporter\", frontMatterKey: \"reporter\" },\n { canonical: \"severity\", aliases: [\"severity\"], optionKey: \"severity\", frontMatterKey: \"severity\" },\n {\n canonical: \"environment\",\n aliases: [\"environment\"],\n optionKey: \"environment\",\n frontMatterKey: \"environment\",\n },\n {\n canonical: \"repro-steps\",\n aliases: [\"repro_steps\", \"repro-steps\"],\n optionKey: \"reproSteps\",\n frontMatterKey: \"repro_steps\",\n },\n {\n canonical: \"resolution\",\n aliases: [\"resolution\"],\n optionKey: \"resolution\",\n frontMatterKey: \"resolution\",\n },\n {\n canonical: \"expected-result\",\n aliases: [\"expected_result\", \"expected-result\"],\n optionKey: \"expectedResult\",\n frontMatterKey: \"expected_result\",\n },\n {\n canonical: \"actual-result\",\n aliases: [\"actual_result\", \"actual-result\"],\n optionKey: \"actualResult\",\n frontMatterKey: \"actual_result\",\n },\n {\n canonical: \"affected-version\",\n aliases: [\"affected_version\", \"affected-version\"],\n optionKey: \"affectedVersion\",\n frontMatterKey: \"affected_version\",\n },\n {\n canonical: \"fixed-version\",\n aliases: [\"fixed_version\", \"fixed-version\"],\n optionKey: \"fixedVersion\",\n frontMatterKey: \"fixed_version\",\n },\n { canonical: \"component\", aliases: [\"component\"], optionKey: \"component\", frontMatterKey: \"component\" },\n { canonical: \"regression\", aliases: [\"regression\"], optionKey: \"regression\", frontMatterKey: \"regression\" },\n {\n canonical: \"customer-impact\",\n aliases: [\"customer_impact\", \"customer-impact\"],\n optionKey: \"customerImpact\",\n frontMatterKey: \"customer_impact\",\n },\n];\n\nconst UPDATE_UNSET_ALIAS_MAP: Map<string, UpdateUnsetFieldDefinition> = (() => {\n const map = new Map<string, UpdateUnsetFieldDefinition>();\n for (const definition of UPDATE_UNSET_FIELD_DEFINITIONS) {\n for (const alias of definition.aliases) {\n map.set(alias, {\n optionKey: definition.optionKey,\n frontMatterKey: definition.frontMatterKey,\n });\n }\n }\n return map;\n})();\n\nconst UPDATE_OPTION_KEY_TO_UNSET_CANONICAL = new Map<string, string>(\n UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => [definition.optionKey, definition.canonical]),\n);\n\nconst UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS = UPDATE_UNSET_FIELD_DEFINITIONS.map((definition) => definition.canonical)\n .sort((left, right) => left.localeCompare(right))\n .join(\", \");\n\nconst AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS = new Set<string>([\n \"close_reason\",\n \"assignee\",\n \"parent\",\n \"blocked_by\",\n \"blocked_reason\",\n \"unblock_note\",\n \"dependencies\",\n \"comments\",\n \"notes\",\n \"learnings\",\n \"files\",\n \"tests\",\n \"docs\",\n \"reminders\",\n \"events\",\n]);\n\nfunction toAuthor(candidate: string | undefined, defaultAuthor: string): string {\n const resolved = candidate ?? process.env.PM_AUTHOR ?? defaultAuthor;\n const trimmed = resolved.trim();\n return trimmed || \"unknown\";\n}\n\ninterface LegacyNoneCollectionNormalizationDefinition {\n optionKey: keyof UpdateCommandOptions;\n clearFlagKey: keyof UpdateCommandOptions;\n valueFlag: string;\n clearFlag: string;\n disableReplaceFlagKey?: \"replaceDeps\" | \"replaceTests\";\n}\n\nconst UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS: ReadonlyArray<LegacyNoneCollectionNormalizationDefinition> = [\n { optionKey: \"dep\", clearFlagKey: \"clearDeps\", valueFlag: \"--dep\", clearFlag: \"--clear-deps\", disableReplaceFlagKey: \"replaceDeps\" },\n { optionKey: \"comment\", clearFlagKey: \"clearComments\", valueFlag: \"--comment\", clearFlag: \"--clear-comments\" },\n { optionKey: \"note\", clearFlagKey: \"clearNotes\", valueFlag: \"--note\", clearFlag: \"--clear-notes\" },\n { optionKey: \"learning\", clearFlagKey: \"clearLearnings\", valueFlag: \"--learning\", clearFlag: \"--clear-learnings\" },\n { optionKey: \"file\", clearFlagKey: \"clearFiles\", valueFlag: \"--file\", clearFlag: \"--clear-files\" },\n { optionKey: \"test\", clearFlagKey: \"clearTests\", valueFlag: \"--test\", clearFlag: \"--clear-tests\", disableReplaceFlagKey: \"replaceTests\" },\n { optionKey: \"doc\", clearFlagKey: \"clearDocs\", valueFlag: \"--doc\", clearFlag: \"--clear-docs\" },\n { optionKey: \"reminder\", clearFlagKey: \"clearReminders\", valueFlag: \"--reminder\", clearFlag: \"--clear-reminders\" },\n { optionKey: \"event\", clearFlagKey: \"clearEvents\", valueFlag: \"--event\", clearFlag: \"--clear-events\" },\n { optionKey: \"typeOption\", clearFlagKey: \"clearTypeOptions\", valueFlag: \"--type-option\", clearFlag: \"--clear-type-options\" },\n];\n\nfunction normalizeLegacyNoneUpdateOptions(options: UpdateCommandOptions): UpdateCommandOptions {\n const normalized: UpdateCommandOptions = {\n ...options,\n unset: options.unset ? [...options.unset] : undefined,\n };\n /* c8 ignore start -- unset dedupe helper branch permutations are covered by legacy option compatibility suites. */\n const appendUnsetTarget = (value: string): void => {\n const current = normalized.unset ? [...normalized.unset] : [];\n if (!current.includes(value)) {\n current.push(value);\n }\n normalized.unset = current;\n };\n /* c8 ignore stop */\n\n const scalarOptionKeys = new Set<string>([...UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.keys(), \"rank\"]);\n for (const optionKey of scalarOptionKeys) {\n const candidate = normalized[optionKey];\n if (typeof candidate !== \"string\" || !isLegacyNoneToken(candidate)) {\n continue;\n }\n /* c8 ignore start -- rank alias canonicalization is exercised in legacy-option compatibility tests. */\n const canonicalUnset = optionKey === \"rank\" ? \"order\" : (UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey);\n appendUnsetTarget(canonicalUnset);\n normalized[optionKey] = undefined;\n /* c8 ignore stop */\n }\n\n for (const definition of UPDATE_LEGACY_NONE_COLLECTION_NORMALIZERS) {\n const entries = normalized[definition.optionKey];\n if (!Array.isArray(entries) || entries.length === 0) {\n continue;\n }\n const hasLegacy = entries.some((entry) => isLegacyNoneToken(entry));\n if (!hasLegacy) {\n continue;\n }\n const concreteEntries = entries.filter((entry) => !isLegacyNoneToken(entry));\n if (concreteEntries.length > 0) {\n throw new PmCliError(\n `Cannot mix legacy clear token \"none\"/\"null\" with concrete ${definition.valueFlag} entries. Use ${definition.clearFlag} to clear or provide explicit entries.`,\n EXIT_CODE.USAGE,\n );\n }\n normalized[definition.optionKey] = undefined;\n normalized[definition.clearFlagKey] = true;\n if (definition.disableReplaceFlagKey) {\n normalized[definition.disableReplaceFlagKey] = false;\n }\n }\n\n return normalized;\n}\n\nfunction resolveRuntimeUnsetDefinition(\n token: string,\n runtimeFieldRegistry: RuntimeFieldRegistry | undefined,\n): UpdateUnsetFieldDefinition | undefined {\n if (!runtimeFieldRegistry) {\n return undefined;\n }\n for (const definition of runtimeFieldRegistry.definitions) {\n if (definition.allow_unset === false) {\n continue;\n }\n const candidates = new Set<string>([\n definition.key,\n definition.metadata_key,\n definition.cli_flag.replaceAll(\"-\", \"_\"),\n definition.cli_flag,\n ...definition.cli_aliases.map((alias) => alias.replaceAll(\"-\", \"_\")),\n ...definition.cli_aliases,\n ]);\n if (!candidates.has(token)) {\n continue;\n }\n return {\n optionKey: definition.key,\n frontMatterKey: definition.metadata_key,\n };\n }\n return undefined;\n}\n\nfunction parseUpdateUnsetTargets(\n raw: string[] | undefined,\n runtimeFieldRegistry?: RuntimeFieldRegistry,\n extensionFieldNames: readonly string[] = [],\n): { frontMatterKeys: Set<string>; optionKeys: Set<string> } {\n const frontMatterKeys = new Set<string>();\n const optionKeys = new Set<string>();\n if (!raw || raw.length === 0) {\n return { frontMatterKeys, optionKeys };\n }\n\n for (const entry of raw) {\n const trimmed = entry.trim().toLowerCase();\n if (!trimmed) {\n throw new PmCliError(\"--unset values must not be empty\", EXIT_CODE.USAGE);\n }\n if (isLegacyNoneToken(trimmed)) {\n throw new PmCliError(\n '--unset no longer accepts \"none\" or \"null\". Specify concrete field names such as --unset deadline',\n EXIT_CODE.USAGE,\n );\n }\n const extensionFieldName = extensionFieldNames.find((fieldName) => {\n const normalizedFieldName = fieldName.toLowerCase();\n return (\n normalizedFieldName === trimmed ||\n normalizedFieldName.replaceAll(\"_\", \"-\") === trimmed ||\n normalizedFieldName.replaceAll(\"-\", \"_\") === trimmed\n );\n });\n const definition = UPDATE_UNSET_ALIAS_MAP.get(trimmed) ??\n resolveRuntimeUnsetDefinition(trimmed, runtimeFieldRegistry) ??\n (extensionFieldName ? { optionKey: \"field\", frontMatterKey: extensionFieldName } : undefined);\n if (!definition) {\n throw new PmCliError(\n `Unsupported --unset field \"${entry}\". Supported fields: ${UPDATE_UNSET_SUPPORTED_CANONICAL_FIELDS}`,\n EXIT_CODE.USAGE,\n );\n }\n frontMatterKeys.add(definition.frontMatterKey);\n optionKeys.add(definition.optionKey);\n }\n\n return { frontMatterKeys, optionKeys };\n}\n\n// Restricted append-style flags have dedicated commands with their own\n// audit/override semantics; map each one to its exact replacement invocation so\n// audit-scope errors tell the agent how to retry instead of dead-ending. The\n// evidence append flags are allowed by --allow-audit-update, but still used by\n// narrower scopes such as --allow-audit-dep-update.\nconst AUDIT_RESTRICTED_FLAG_REPLACEMENTS: ReadonlyMap<string, (id: string) => string> = new Map([\n [\"--comment\", (id: string) => `pm comments ${id} --add \"<text>\" --allow-audit-comment`],\n [\"--file\", (id: string) => `pm files ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`],\n [\"--doc\", (id: string) => `pm docs ${id} --add \"path=<path>,scope=<scope>,note=<note>\" --force`],\n]);\n\nfunction buildAuditScopeRestrictedOptionsError(params: {\n id: string;\n code: string;\n message: string;\n required: string;\n why: string;\n disallowedFlags: string[];\n}): PmCliError {\n // Only surface replacement commands for restricted flags the caller actually\n // passed, so the guidance is an exact retry path.\n const replacementCommands = params.disallowedFlags\n .flatMap((flag) => {\n const replacement = AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag);\n return replacement ? [replacement(params.id)] : [];\n });\n const replacementSteps = params.disallowedFlags\n .flatMap((flag) => {\n const replacement = AUDIT_RESTRICTED_FLAG_REPLACEMENTS.get(flag);\n return replacement ? [`Replace ${flag} with: ${replacement(params.id)}`] : [];\n });\n return new PmCliError(params.message, EXIT_CODE.USAGE, {\n code: params.code,\n required: params.required,\n why: params.why,\n ...(replacementCommands.length > 0 ? { examples: replacementCommands } : {}),\n nextSteps: [\n `Re-run without: ${params.disallowedFlags.join(\", \")}`,\n ...replacementSteps,\n ],\n });\n}\n\nfunction enforceAllowAuditUpdateScope(id: string, options: UpdateCommandOptions, clearFrontMatterKeys: Set<string>): void {\n const allowAuditUpdate = options.allowAuditUpdate === true;\n const allowAuditDepUpdate = options.allowAuditDepUpdate === true;\n if (!allowAuditUpdate && !allowAuditDepUpdate) {\n return;\n }\n if (allowAuditUpdate && allowAuditDepUpdate) {\n throw new PmCliError(\n \"Choose either --allow-audit-update or --allow-audit-dep-update; these override modes are mutually exclusive.\",\n EXIT_CODE.USAGE,\n );\n }\n const pushIf = (condition: boolean, flag: string, list: string[]): void => {\n if (condition) {\n list.push(flag);\n }\n };\n if (allowAuditDepUpdate) {\n const disallowedFlags: string[] = [];\n pushIf(options.title !== undefined, \"--title\", disallowedFlags);\n pushIf(options.description !== undefined, \"--description\", disallowedFlags);\n pushIf(options.body !== undefined, \"--body\", disallowedFlags);\n pushIf(options.status !== undefined, \"--status\", disallowedFlags);\n pushIf(options.closeReason !== undefined, \"--close-reason\", disallowedFlags);\n pushIf(options.priority !== undefined, \"--priority\", disallowedFlags);\n pushIf(options.type !== undefined, \"--type\", disallowedFlags);\n pushIf(options.tags !== undefined, \"--tags\", disallowedFlags);\n pushIf(Array.isArray(options.addTags) && options.addTags.length > 0, \"--add-tags\", disallowedFlags);\n pushIf(Array.isArray(options.removeTags) && options.removeTags.length > 0, \"--remove-tags\", disallowedFlags);\n pushIf(options.deadline !== undefined, \"--deadline\", disallowedFlags);\n pushIf(options.estimatedMinutes !== undefined, \"--estimate\", disallowedFlags);\n pushIf(options.acceptanceCriteria !== undefined, \"--acceptance-criteria\", disallowedFlags);\n pushIf(options.definitionOfReady !== undefined, \"--definition-of-ready\", disallowedFlags);\n pushIf(options.order !== undefined || options.rank !== undefined, \"--order/--rank\", disallowedFlags);\n pushIf(options.goal !== undefined, \"--goal\", disallowedFlags);\n pushIf(options.objective !== undefined, \"--objective\", disallowedFlags);\n pushIf(options.value !== undefined, \"--value\", disallowedFlags);\n pushIf(options.impact !== undefined, \"--impact\", disallowedFlags);\n pushIf(options.outcome !== undefined, \"--outcome\", disallowedFlags);\n pushIf(options.whyNow !== undefined, \"--why-now\", disallowedFlags);\n pushIf(options.assignee !== undefined, \"--assignee\", disallowedFlags);\n pushIf(options.parent !== undefined, \"--parent\", disallowedFlags);\n pushIf(options.reviewer !== undefined, \"--reviewer\", disallowedFlags);\n pushIf(options.risk !== undefined, \"--risk\", disallowedFlags);\n pushIf(options.confidence !== undefined, \"--confidence\", disallowedFlags);\n pushIf(options.sprint !== undefined, \"--sprint\", disallowedFlags);\n pushIf(options.release !== undefined, \"--release\", disallowedFlags);\n pushIf(options.blockedBy !== undefined, \"--blocked-by\", disallowedFlags);\n pushIf(options.blockedReason !== undefined, \"--blocked-reason\", disallowedFlags);\n pushIf(options.unblockNote !== undefined, \"--unblock-note\", disallowedFlags);\n pushIf(options.reporter !== undefined, \"--reporter\", disallowedFlags);\n pushIf(options.severity !== undefined, \"--severity\", disallowedFlags);\n pushIf(options.environment !== undefined, \"--environment\", disallowedFlags);\n pushIf(options.reproSteps !== undefined, \"--repro-steps\", disallowedFlags);\n pushIf(options.resolution !== undefined, \"--resolution\", disallowedFlags);\n pushIf(options.expectedResult !== undefined, \"--expected-result\", disallowedFlags);\n pushIf(options.actualResult !== undefined, \"--actual-result\", disallowedFlags);\n pushIf(options.affectedVersion !== undefined, \"--affected-version\", disallowedFlags);\n pushIf(options.fixedVersion !== undefined, \"--fixed-version\", disallowedFlags);\n pushIf(options.component !== undefined, \"--component\", disallowedFlags);\n pushIf(options.regression !== undefined, \"--regression\", disallowedFlags);\n pushIf(options.customerImpact !== undefined, \"--customer-impact\", disallowedFlags);\n pushIf(options.depRemove !== undefined, \"--dep-remove\", disallowedFlags);\n pushIf(options.replaceDeps === true, \"--replace-deps\", disallowedFlags);\n pushIf(options.replaceTests === true, \"--replace-tests\", disallowedFlags);\n pushIf(options.comment !== undefined, \"--comment\", disallowedFlags);\n pushIf(options.note !== undefined, \"--note\", disallowedFlags);\n pushIf(options.learning !== undefined, \"--learning\", disallowedFlags);\n pushIf(options.file !== undefined, \"--file\", disallowedFlags);\n pushIf(options.test !== undefined, \"--test\", disallowedFlags);\n pushIf(options.doc !== undefined, \"--doc\", disallowedFlags);\n pushIf(options.reminder !== undefined, \"--reminder\", disallowedFlags);\n pushIf(options.event !== undefined, \"--event\", disallowedFlags);\n pushIf(options.typeOption !== undefined, \"--type-option\", disallowedFlags);\n pushIf(options.clearDeps === true, \"--clear-deps\", disallowedFlags);\n pushIf(options.clearComments === true, \"--clear-comments\", disallowedFlags);\n pushIf(options.clearNotes === true, \"--clear-notes\", disallowedFlags);\n pushIf(options.clearLearnings === true, \"--clear-learnings\", disallowedFlags);\n pushIf(options.clearFiles === true, \"--clear-files\", disallowedFlags);\n pushIf(options.clearTests === true, \"--clear-tests\", disallowedFlags);\n pushIf(options.clearDocs === true, \"--clear-docs\", disallowedFlags);\n pushIf(options.clearReminders === true, \"--clear-reminders\", disallowedFlags);\n pushIf(options.clearEvents === true, \"--clear-events\", disallowedFlags);\n pushIf(options.clearTypeOptions === true, \"--clear-type-options\", disallowedFlags);\n pushIf(options.force === true, \"--force\", disallowedFlags);\n pushIf(clearFrontMatterKeys.size > 0, \"--unset\", disallowedFlags);\n if (options.dep === undefined || options.dep.length === 0) {\n throw new PmCliError(\"--allow-audit-dep-update requires at least one --dep value\", EXIT_CODE.USAGE);\n }\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_dep_update_restricted_options\",\n message: `--allow-audit-dep-update supports append-only dependency additions via --dep. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required: \"Pass only --dep additions (plus --message/--author) when using --allow-audit-dep-update.\",\n why: \"--allow-audit-dep-update is a narrow non-owner override scoped to append-only dependency additions; every other mutation keeps its normal ownership rules.\",\n disallowedFlags,\n });\n }\n return;\n }\n\n const disallowedFlags: string[] = [];\n if (options.status !== undefined) {\n disallowedFlags.push(\"--status\");\n }\n if (options.closeReason !== undefined) {\n disallowedFlags.push(\"--close-reason\");\n }\n if (options.assignee !== undefined) {\n disallowedFlags.push(\"--assignee\");\n }\n if (options.parent !== undefined) {\n disallowedFlags.push(\"--parent\");\n }\n if (options.blockedBy !== undefined) {\n disallowedFlags.push(\"--blocked-by\");\n }\n if (options.blockedReason !== undefined) {\n disallowedFlags.push(\"--blocked-reason\");\n }\n if (options.unblockNote !== undefined) {\n disallowedFlags.push(\"--unblock-note\");\n }\n if (options.dep !== undefined) {\n disallowedFlags.push(\"--dep\");\n }\n if (options.depRemove !== undefined) {\n disallowedFlags.push(\"--dep-remove\");\n }\n if (options.replaceDeps === true) {\n disallowedFlags.push(\"--replace-deps\");\n }\n if (options.replaceTests === true) {\n disallowedFlags.push(\"--replace-tests\");\n }\n if (options.note !== undefined) {\n disallowedFlags.push(\"--note\");\n }\n if (options.learning !== undefined) {\n disallowedFlags.push(\"--learning\");\n }\n if (options.test !== undefined) {\n disallowedFlags.push(\"--test\");\n }\n if (options.reminder !== undefined) {\n disallowedFlags.push(\"--reminder\");\n }\n if (options.event !== undefined) {\n disallowedFlags.push(\"--event\");\n }\n if (options.clearDeps === true) {\n disallowedFlags.push(\"--clear-deps\");\n }\n if (options.clearComments === true) {\n disallowedFlags.push(\"--clear-comments\");\n }\n if (options.clearNotes === true) {\n disallowedFlags.push(\"--clear-notes\");\n }\n if (options.clearLearnings === true) {\n disallowedFlags.push(\"--clear-learnings\");\n }\n if (options.clearFiles === true) {\n disallowedFlags.push(\"--clear-files\");\n }\n if (options.clearTests === true) {\n disallowedFlags.push(\"--clear-tests\");\n }\n if (options.clearDocs === true) {\n disallowedFlags.push(\"--clear-docs\");\n }\n if (options.clearReminders === true) {\n disallowedFlags.push(\"--clear-reminders\");\n }\n if (options.clearEvents === true) {\n disallowedFlags.push(\"--clear-events\");\n }\n\n /* c8 ignore start -- audit unset ordering fallback is validated by audit-governance integration coverage. */\n const disallowedUnset = [...clearFrontMatterKeys]\n .filter((field) => AUDIT_UPDATE_DISALLOWED_UNSET_FRONT_MATTER_KEYS.has(field))\n .sort((left, right) => left.localeCompare(right))\n .map((field) => `--unset ${field.replaceAll(\"_\", \"-\")}`);\n /* c8 ignore stop */\n disallowedFlags.push(...disallowedUnset);\n\n if (disallowedFlags.length > 0) {\n throw buildAuditScopeRestrictedOptionsError({\n id,\n code: \"audit_update_restricted_options\",\n message: `--allow-audit-update only supports non-lifecycle metadata fields and evidence appends. Remove restricted options: ${disallowedFlags.join(\", \")}`,\n required: \"Limit --allow-audit-update to non-lifecycle metadata fields plus append-only --comment/--file/--doc evidence; route restricted appends and lifecycle changes through their dedicated commands.\",\n why: \"--allow-audit-update is a non-owner override scoped to metadata audits and append-only evidence; lifecycle, ownership, dependency mutations, restricted append fields, and clear/replace operations keep their normal ownership rules.\",\n disallowedFlags,\n });\n }\n}\n\n/* c8 ignore start -- lifecycle/dependency edge branches are exercised by dedicated update workflow integration tests. */\nfunction parseStatus(value: string, statusRegistry: RuntimeStatusRegistry): ItemStatus {\n const normalized = normalizeStatusInput(value, statusRegistry);\n if (!normalized) {\n const allowedStatuses = statusRegistry.definitions.map((definition) => definition.id);\n throw new PmCliError(`Invalid --status value \"${value}\". Allowed: ${allowedStatuses.join(\", \")}`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\n/**\n * Enforce per-type allowed-transition rules (governance.workflow_enforcement).\n * `off` (default) or an unrestricted type is a no-op. `strict` throws on a\n * disallowed transition; `warn` returns a warning string surfaced on the\n * update result. The target status is the raw `--status` value (resolved\n * case-insensitively through the registry inside evaluateTransition).\n */\nfunction enforceTypeWorkflowTransition(params: {\n enforcement: GovernanceWorkflowEnforcement;\n typeWorkflows: NormalizedTypeWorkflow[];\n statusRegistry: RuntimeStatusRegistry;\n typeName: string;\n fromStatus: string;\n toStatus: string;\n}): string | undefined {\n if (params.enforcement === \"off\" || params.typeWorkflows.length === 0) {\n return undefined;\n }\n const result = evaluateTransition({\n typeName: params.typeName,\n fromStatus: params.fromStatus,\n toStatus: params.toStatus,\n typeWorkflows: params.typeWorkflows,\n statusRegistry: params.statusRegistry,\n });\n if (!result.hasRule || result.allowed) {\n return undefined;\n }\n const normalizedFrom = normalizeStatusInput(params.fromStatus, params.statusRegistry) ?? params.fromStatus;\n const normalizedTo = normalizeStatusInput(params.toStatus, params.statusRegistry) ?? params.toStatus;\n const message =\n `Disallowed transition for type \"${params.typeName}\": ${normalizedFrom} -> ${normalizedTo}. ` +\n `Allowed transitions: ${describeAllowedTransitions(result.allowedTransitions)}.`;\n if (params.enforcement === \"strict\") {\n throw new PmCliError(message, EXIT_CODE.USAGE);\n }\n return `workflow_transition_not_allowed: ${message}`;\n}\n\ninterface ParsedDependencyUpdates {\n additions: Dependency[];\n}\n\ninterface DependencyRemovalSelector {\n id: string;\n kind?: (typeof DEPENDENCY_KIND_VALUES)[number];\n source_kind?: string;\n}\n\nfunction parseDependencyCreatedAt(value: string | undefined, currentIso: string): string {\n if (!value || value.trim() === \"\" || value.trim().toLowerCase() === \"now\") {\n return currentIso;\n }\n const parsed = Date.parse(value);\n if (!Number.isFinite(parsed)) {\n throw new PmCliError(`Invalid dependency created_at timestamp \"${value}\"`, EXIT_CODE.USAGE);\n }\n return new Date(parsed).toISOString();\n}\n\nfunction parseOptionalDependencyString(value: string | undefined): string | undefined {\n if (value === undefined) return undefined;\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\n/** Allowed CSV/markdown keys for the update `--dep` addition seed (GH-258). */\nconst DEP_ADDITION_KEYS = [\"id\", \"kind\", \"type\", \"author\", \"created_at\", \"source_kind\"] as const;\n/** Allowed CSV/markdown keys for the `--dep-remove` selector (GH-258). */\nconst DEP_REMOVE_KEYS = [\"id\", \"kind\", \"type\", \"source_kind\"] as const;\n\nfunction looksLikeStructuredDependencyEntry(raw: string): boolean {\n if (raw.startsWith(\"```\") || raw.includes(\"\\n\")) {\n return true;\n }\n if (/^(?:[-*+]\\s+)?(?:id|kind|type|author|created_at|source_kind)\\s*[:=]/i.test(raw)) {\n return true;\n }\n // A first-key typo (e.g. `bogus=v,id=pm-2`) must still be parsed so the unknown\n // key is rejected rather than swallowed as a bare item id (GH-258).\n return looksLikeGenericKeyValueEntry(raw);\n}\n\n// pm-fl0c #4 (2026-05-28): `pm plan` accepts `depends_on` as a link kind\n// (`PLAN_STEP_LINK_KIND_VALUES`) but `pm update --dep kind=depends_on` rejected\n// it because `DEPENDENCY_KIND_VALUES` only lists `blocked_by`. The two terms\n// are semantically identical from this side (\"X depends on Y\" === \"X blocked\n// by Y\"), so we normalize input here rather than expanding the persisted enum\n// — the stored kind stays canonical (`blocked_by`) and downstream consumers\n// (closing logic, dependency graphs, blockers views) keep working unchanged.\nconst DEPENDENCY_KIND_INPUT_ALIASES: Readonly<Record<string, string>> = {\n \"blocked-by\": \"blocked_by\",\n depends_on: \"blocked_by\",\n \"depends-on\": \"blocked_by\",\n};\n\nfunction normalizeDependencyKindInput(raw: string | undefined): string | undefined {\n if (typeof raw !== \"string\") {\n return raw;\n }\n const trimmed = raw.trim();\n const alias = DEPENDENCY_KIND_INPUT_ALIASES[trimmed.toLowerCase()];\n return alias ?? trimmed;\n}\n\nfunction parseDependencyAdditions(raw: string[] | undefined, prefix: string, nowIso: string): ParsedDependencyUpdates {\n if (!raw) {\n return { additions: [] };\n }\n assertNoLegacyNoneTokens(raw, \"--dep\", \"Use --clear-deps to clear dependencies.\");\n const additions: Dependency[] = raw.map((entry) => {\n const trimmedEntry = entry.trim();\n const isStructured = looksLikeStructuredDependencyEntry(trimmedEntry);\n const kv = isStructured ? parseCsvKv(entry, \"--dep\") : { id: trimmedEntry, kind: \"related\" };\n if (isStructured) {\n assertNoUnknownCsvKeys(kv, \"--dep\", DEP_ADDITION_KEYS);\n }\n const id = kv.id?.trim();\n const kind = normalizeDependencyKindInput((kv.kind ?? kv.type)?.trim());\n if (!id || !kind) {\n throw new PmCliError(\"--dep requires id and kind, or a bare item id to add a related dependency\", EXIT_CODE.USAGE);\n }\n if (id.toLowerCase() === \"undefined\") {\n throw new PmCliError(\n `--dep id must not use placeholder token \"${id}\". Use --clear-deps to clear dependencies.`,\n EXIT_CODE.USAGE,\n );\n }\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(id, prefix),\n kind: ensureEnum(kind, DEPENDENCY_KIND_VALUES, \"dependency kind\"),\n created_at: parseDependencyCreatedAt(kv.created_at, nowIso),\n author: parseOptionalDependencyString(kv.author),\n source_kind: sourceKind,\n };\n });\n return { additions };\n}\n\nfunction parseDependencyRemovals(raw: string[] | undefined, prefix: string): DependencyRemovalSelector[] {\n if (!raw) {\n return [];\n }\n assertNoLegacyNoneTokens(raw, \"--dep-remove\");\n return raw.map((entry) => {\n const trimmed = entry.trim();\n if (!trimmed) {\n throw new PmCliError(\"--dep-remove requires id or key/value selectors\", EXIT_CODE.USAGE);\n }\n if (trimmed.includes(\"=\") || /^(?:[-*+]\\s+)?(?:id|kind|type|source_kind)\\s*[:=]/i.test(trimmed) || trimmed.startsWith(\"```\")) {\n const kv = parseCsvKv(trimmed, \"--dep-remove\");\n assertNoUnknownCsvKeys(kv, \"--dep-remove\", DEP_REMOVE_KEYS);\n const idRaw = kv.id?.trim();\n if (!idRaw) {\n throw new PmCliError(\"--dep-remove key/value form requires id=<value>\", EXIT_CODE.USAGE);\n }\n if (idRaw.toLowerCase() === \"undefined\") {\n throw new PmCliError(`--dep-remove id must not use placeholder token \"${idRaw}\"`, EXIT_CODE.USAGE);\n }\n const kindRaw = normalizeDependencyKindInput(parseOptionalDependencyString(kv.kind ?? kv.type));\n const sourceKind = parseOptionalDependencyString(kv.source_kind);\n return {\n id: normalizeItemId(idRaw, prefix),\n kind: kindRaw ? ensureEnum(kindRaw, DEPENDENCY_KIND_VALUES, \"dependency kind\") : undefined,\n source_kind: sourceKind,\n };\n }\n if (trimmed.toLowerCase() === \"undefined\") {\n throw new PmCliError(`--dep-remove id must not use placeholder token \"${trimmed}\"`, EXIT_CODE.USAGE);\n }\n return {\n id: normalizeItemId(trimmed, prefix),\n };\n });\n}\n\nfunction dependencyKey(value: Pick<Dependency, \"id\" | \"kind\" | \"source_kind\">): string {\n return `${value.id}::${value.kind}::${value.source_kind ?? \"\"}`;\n}\n\n// pm-kyd6: `--blocked-by` writes the `blocked_by` scalar, but the dependency\n// graph (`pm deps`) is built only from the `dependencies` array. Mirror the\n// behaviour create.ts already has so the metadata and the graph agree: a\n// resolvable blocker also gets a `blocked_by` dependency edge, clearing the\n// scalar removes that edge, and re-pointing it replaces the prior edge.\nfunction reconcileBlockedByDependency(\n current: Dependency[] | undefined,\n nextBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n): { dependencies: Dependency[] | undefined; changed: boolean } {\n let next = [...(current ?? [])];\n let changed = false;\n const filtered = next.filter((dep) => dep.kind !== \"blocked_by\" || dep.id === nextBlockedById);\n if (filtered.length !== next.length) {\n next = filtered;\n changed = true;\n }\n if (nextBlockedById && !next.some((dep) => dep.kind === \"blocked_by\" && dep.id === nextBlockedById)) {\n next.push({ id: nextBlockedById, kind: \"blocked_by\", created_at: nowIsoValue, author });\n changed = true;\n }\n if (!changed) {\n return { dependencies: current, changed: false };\n }\n return { dependencies: next.length > 0 ? next : undefined, changed: true };\n}\n\n// pm-kyd6: resolve the --blocked-by target before the synchronous mutate\n// callback so a real blocker can also become a `blocked_by` dependency edge.\n// `id` is set when the target resolves; `unresolved` carries the raw value when\n// --blocked-by points at an item that does not exist (the scalar is still set,\n// mirroring create.ts and the never-block missing-parent behaviour, but the\n// caller surfaces a warning so the metadata/graph mismatch is visible).\nasync function resolveBlockedByDependencyTarget(\n blockedByOption: string | undefined,\n blockedByCleared: boolean,\n pmRoot: string,\n idPrefix: string,\n itemFormat: ItemFormat,\n typeToFolder: Record<string, string>,\n): Promise<{ id?: string; unresolved?: string }> {\n if (blockedByOption === undefined || blockedByCleared) {\n return {};\n }\n const blockedByValue = blockedByOption.trim();\n if (blockedByValue.length === 0) {\n return {};\n }\n const located = await locateItem(pmRoot, normalizeItemId(blockedByValue, idPrefix), idPrefix, itemFormat, typeToFolder);\n return located ? { id: located.id } : { unresolved: blockedByValue };\n}\n\n// pm-kyd6: apply the reconciled blocked_by dependency edge to the item metadata\n// and record the `dependencies` change. Kept out of the mutate callback so the\n// large runUpdate function stays under the static-quality complexity budget.\nfunction applyBlockedByDependencyEdge(\n metadata: ItemFrontMatter,\n resolvedBlockedById: string | undefined,\n nowIsoValue: string,\n author: string,\n changedFields: string[],\n): void {\n const reconciled = reconcileBlockedByDependency(\n metadata.dependencies,\n resolvedBlockedById,\n nowIsoValue,\n author,\n );\n if (!reconciled.changed) {\n return;\n }\n if (reconciled.dependencies === undefined) {\n delete metadata.dependencies;\n } else {\n metadata.dependencies = reconciled.dependencies;\n }\n if (!changedFields.includes(\"dependencies\")) {\n changedFields.push(\"dependencies\");\n }\n}\n\nfunction fileKey(value: Pick<LinkedFile, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction docKey(value: Pick<LinkedDoc, \"path\" | \"scope\">): string {\n return `${value.path}::${value.scope}`;\n}\n\nfunction testKey(value: Pick<LinkedTest, \"command\" | \"path\" | \"scope\" | \"pm_context_mode\">): string {\n return `${value.command}::${value.path ?? \"\"}::${value.scope}::${value.pm_context_mode ?? \"\"}`;\n}\n\nfunction matchesDependencySelector(value: Dependency, selector: DependencyRemovalSelector): boolean {\n if (value.id !== selector.id) {\n return false;\n }\n if (selector.kind && value.kind !== selector.kind) {\n return false;\n }\n if (selector.source_kind !== undefined && (value.source_kind ?? undefined) !== selector.source_kind) {\n return false;\n }\n return true;\n}\n\nfunction ensurePriority(raw: string | number): 0 | 1 | 2 | 3 | 4 {\n return resolvePriority(raw);\n}\n\nfunction normalizeUpdatePolicyOptionKey(raw: string, typeName: string): string {\n const canonical = canonicalizeCommandOptionKey(\"update\", raw);\n if (!canonical) {\n throw new PmCliError(\n `Unsupported command_option_policies option \"${raw}\" for update command on type \"${typeName}\"`,\n EXIT_CODE.CONFLICT,\n );\n }\n return canonical;\n}\n\nfunction collectProvidedUpdatePolicyOptions(options: UpdateCommandOptions, extensionFieldNames: readonly string[]): Set<string> {\n const provided = new Set<string>();\n const mark = (optionKey: string, isProvided: boolean): void => {\n if (isProvided) {\n provided.add(optionKey);\n }\n };\n mark(\"title\", options.title !== undefined);\n mark(\"description\", options.description !== undefined);\n mark(\"body\", options.body !== undefined);\n mark(\"status\", options.status !== undefined);\n mark(\"closeReason\", options.closeReason !== undefined);\n mark(\"priority\", options.priority !== undefined);\n mark(\"type\", options.type !== undefined);\n // `--add-tags` / `--remove-tags` mutate the same `tags` field as `--tags`, so\n // they count toward the `tags` command_option_policy (disabled + required).\n mark(\n \"tags\",\n options.tags !== undefined ||\n (Array.isArray(options.addTags) && options.addTags.length > 0) ||\n (Array.isArray(options.removeTags) && options.removeTags.length > 0),\n );\n mark(\"deadline\", options.deadline !== undefined);\n mark(\"estimatedMinutes\", options.estimatedMinutes !== undefined);\n mark(\"acceptanceCriteria\", options.acceptanceCriteria !== undefined);\n mark(\"definitionOfReady\", options.definitionOfReady !== undefined);\n mark(\"order\", options.order !== undefined || options.rank !== undefined);\n mark(\"goal\", options.goal !== undefined);\n mark(\"objective\", options.objective !== undefined);\n mark(\"value\", options.value !== undefined);\n mark(\"impact\", options.impact !== undefined);\n mark(\"outcome\", options.outcome !== undefined);\n mark(\"whyNow\", options.whyNow !== undefined);\n mark(\"author\", options.author !== undefined);\n mark(\"message\", options.message !== undefined);\n mark(\"assignee\", options.assignee !== undefined);\n mark(\"parent\", options.parent !== undefined);\n mark(\"reviewer\", options.reviewer !== undefined);\n mark(\"risk\", options.risk !== undefined);\n mark(\"confidence\", options.confidence !== undefined);\n mark(\"sprint\", options.sprint !== undefined);\n mark(\"release\", options.release !== undefined);\n mark(\"blockedBy\", options.blockedBy !== undefined);\n mark(\"blockedReason\", options.blockedReason !== undefined);\n mark(\"unblockNote\", options.unblockNote !== undefined);\n mark(\"reporter\", options.reporter !== undefined);\n mark(\"severity\", options.severity !== undefined);\n mark(\"environment\", options.environment !== undefined);\n mark(\"reproSteps\", options.reproSteps !== undefined);\n mark(\"resolution\", options.resolution !== undefined);\n mark(\"expectedResult\", options.expectedResult !== undefined);\n mark(\"actualResult\", options.actualResult !== undefined);\n mark(\"affectedVersion\", options.affectedVersion !== undefined);\n mark(\"fixedVersion\", options.fixedVersion !== undefined);\n mark(\"component\", options.component !== undefined);\n mark(\"regression\", options.regression !== undefined);\n mark(\"customerImpact\", options.customerImpact !== undefined);\n mark(\"dep\", options.dep !== undefined);\n mark(\"depRemove\", options.depRemove !== undefined);\n mark(\"dep\", options.replaceDeps === true);\n mark(\"comment\", options.comment !== undefined);\n mark(\"note\", options.note !== undefined);\n mark(\"learning\", options.learning !== undefined);\n mark(\"file\", options.file !== undefined);\n mark(\"test\", options.test !== undefined);\n mark(\"test\", options.replaceTests === true);\n mark(\"doc\", options.doc !== undefined);\n mark(\"reminder\", options.reminder !== undefined);\n mark(\"event\", options.event !== undefined);\n mark(\"typeOption\", options.typeOption !== undefined);\n mark(\"field\", options.field !== undefined);\n mark(\"force\", options.force === true);\n mark(\"allowAuditUpdate\", options.allowAuditUpdate === true);\n mark(\"dep\", options.clearDeps === true);\n mark(\"comment\", options.clearComments === true);\n mark(\"note\", options.clearNotes === true);\n mark(\"learning\", options.clearLearnings === true);\n mark(\"file\", options.clearFiles === true);\n mark(\"test\", options.clearTests === true);\n mark(\"doc\", options.clearDocs === true);\n mark(\"reminder\", options.clearReminders === true);\n mark(\"event\", options.clearEvents === true);\n mark(\"typeOption\", options.clearTypeOptions === true);\n if (options.unset && options.unset.length > 0) {\n const unsetTargets = parseUpdateUnsetTargets(options.unset, undefined, extensionFieldNames);\n for (const optionKey of unsetTargets.optionKeys) {\n mark(optionKey, true);\n }\n }\n return provided;\n}\n\nfunction enforceUpdateOptionsByType(\n typeName: string,\n options: UpdateCommandOptions,\n typeRegistry: ReturnType<typeof resolveItemTypeRegistry>,\n extensionFieldNames: readonly string[],\n): void {\n const typeDefinition = resolveTypeDefinition(typeName, typeRegistry);\n if (!typeDefinition) {\n throw new PmCliError(`Invalid type value \"${typeName}\"`, EXIT_CODE.USAGE);\n }\n const policyState = resolveCommandOptionPolicyState(typeDefinition, \"update\", []);\n if (policyState.errors.length > 0) {\n throw new PmCliError(policyState.errors.join(\"; \"), EXIT_CODE.CONFLICT);\n }\n\n const provided = collectProvidedUpdatePolicyOptions(options, extensionFieldNames);\n for (const disabled of policyState.disabled) {\n if (provided.has(normalizeUpdatePolicyOptionKey(disabled, typeName))) {\n throw new PmCliError(\n `Option ${commandOptionFlagLabel(\"update\", disabled)} is disabled for type \"${typeName}\" by command_option_policies`,\n EXIT_CODE.USAGE,\n );\n }\n }\n\n for (const required of policyState.required) {\n if (!provided.has(normalizeUpdatePolicyOptionKey(required, typeName))) {\n throw new PmCliError(\n `Missing required option ${commandOptionFlagLabel(\"update\", required)} for type \"${typeName}\"`,\n EXIT_CODE.USAGE,\n );\n }\n }\n}\n\ninterface UpdateScalarMutationContext {\n metadataRecord: Record<string, unknown>;\n clearFrontMatterKeys: ReadonlySet<string>;\n changedFields: string[];\n nowValue: Date;\n}\n\ninterface UpdateScalarMutationDefinition {\n optionKey: keyof UpdateCommandOptions;\n metadataKey: string;\n transform?: (value: string, context: UpdateScalarMutationContext) => unknown;\n}\n\nconst UPDATE_POST_TAG_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> = [\n {\n optionKey: \"deadline\",\n metadataKey: \"deadline\",\n transform: (value, context) => resolveIsoOrRelative(value, context.nowValue, \"deadline\"),\n },\n {\n optionKey: \"estimatedMinutes\",\n metadataKey: \"estimated_minutes\",\n transform: (value) => parseOptionalNumber(value, \"estimated-minutes\"),\n },\n { optionKey: \"acceptanceCriteria\", metadataKey: \"acceptance_criteria\", transform: (value) => value },\n { optionKey: \"definitionOfReady\", metadataKey: \"definition_of_ready\" },\n { optionKey: \"goal\", metadataKey: \"goal\" },\n { optionKey: \"objective\", metadataKey: \"objective\" },\n { optionKey: \"value\", metadataKey: \"value\" },\n { optionKey: \"impact\", metadataKey: \"impact\" },\n { optionKey: \"outcome\", metadataKey: \"outcome\" },\n { optionKey: \"whyNow\", metadataKey: \"why_now\" },\n];\n\nconst UPDATE_STAKEHOLDER_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> = [\n { optionKey: \"reviewer\", metadataKey: \"reviewer\" },\n { optionKey: \"risk\", metadataKey: \"risk\", transform: (value) => ensureEnum(normalizeRiskInput(value), RISK_VALUES, \"risk\") },\n { optionKey: \"confidence\", metadataKey: \"confidence\", transform: (value) => parseConfidenceInput(value) },\n];\n\nconst UPDATE_ISSUE_SCALAR_MUTATIONS: ReadonlyArray<UpdateScalarMutationDefinition> = [\n { optionKey: \"blockedReason\", metadataKey: \"blocked_reason\" },\n { optionKey: \"unblockNote\", metadataKey: \"unblock_note\" },\n { optionKey: \"reporter\", metadataKey: \"reporter\" },\n {\n optionKey: \"severity\",\n metadataKey: \"severity\",\n transform: (value) => ensureEnum(normalizeSeverityInput(value), ISSUE_SEVERITY_VALUES, \"severity\"),\n },\n { optionKey: \"environment\", metadataKey: \"environment\" },\n { optionKey: \"reproSteps\", metadataKey: \"repro_steps\" },\n { optionKey: \"resolution\", metadataKey: \"resolution\" },\n { optionKey: \"expectedResult\", metadataKey: \"expected_result\" },\n { optionKey: \"actualResult\", metadataKey: \"actual_result\" },\n { optionKey: \"affectedVersion\", metadataKey: \"affected_version\" },\n { optionKey: \"fixedVersion\", metadataKey: \"fixed_version\" },\n { optionKey: \"component\", metadataKey: \"component\" },\n { optionKey: \"regression\", metadataKey: \"regression\", transform: (value) => parseRegressionInput(value) },\n { optionKey: \"customerImpact\", metadataKey: \"customer_impact\" },\n];\n\nfunction applyUpdateScalarMutations(\n definitions: ReadonlyArray<UpdateScalarMutationDefinition>,\n options: UpdateCommandOptions,\n context: UpdateScalarMutationContext,\n): void {\n for (const definition of definitions) {\n const optionValue = options[definition.optionKey];\n const shouldClear = context.clearFrontMatterKeys.has(definition.metadataKey);\n if (optionValue === undefined && !shouldClear) {\n continue;\n }\n if (shouldClear) {\n delete context.metadataRecord[definition.metadataKey];\n context.changedFields.push(definition.metadataKey);\n continue;\n }\n if (typeof optionValue !== \"string\") {\n throw new PmCliError(\n `${commandOptionFlagLabel(\"update\", String(definition.optionKey))} must be a string value`,\n EXIT_CODE.USAGE,\n );\n }\n context.metadataRecord[definition.metadataKey] = definition.transform\n ? definition.transform(optionValue, context)\n : optionValue.trim();\n context.changedFields.push(definition.metadataKey);\n }\n}\n\n/**\n * Implements run update for the public runtime surface of this module.\n */\nexport async function runUpdate(id: string, options: UpdateCommandOptions, global: GlobalOptions): Promise<UpdateResult> {\n const stdinResolver = createStdinTokenResolver();\n options = normalizeLegacyNoneUpdateOptions({\n ...options,\n body: await stdinResolver.resolveValue(options.body, \"--body\"),\n dep: await stdinResolver.resolveList(options.dep, \"--dep\"),\n depRemove: await stdinResolver.resolveList(options.depRemove, \"--dep-remove\"),\n comment: await stdinResolver.resolveList(options.comment, \"--comment\"),\n note: await stdinResolver.resolveList(options.note, \"--note\"),\n learning: await stdinResolver.resolveList(options.learning, \"--learning\"),\n file: await stdinResolver.resolveList(options.file, \"--file\"),\n test: await stdinResolver.resolveList(options.test, \"--test\"),\n doc: await stdinResolver.resolveList(options.doc, \"--doc\"),\n reminder: await stdinResolver.resolveList(options.reminder, \"--reminder\"),\n event: await stdinResolver.resolveList(options.event, \"--event\"),\n typeOption: await stdinResolver.resolveList(options.typeOption, \"--type-option\"),\n field: await stdinResolver.resolveList(options.field, \"--field\"),\n });\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 const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const extensionRegistrations = getActiveExtensionRegistrations();\n const extensionFieldNames = collectRegisteredItemFieldNames(extensionRegistrations);\n const typeRegistry = resolveItemTypeRegistry(settings, extensionRegistrations);\n // Per-type allowed-transition enforcement is read RAW (not preset-derived) so\n // existing projects are unaffected when unset; defaults to \"off\".\n const workflowEnforcement: GovernanceWorkflowEnforcement = settings.governance.workflow_enforcement ?? \"off\";\n const typeWorkflows = workflowEnforcement === \"off\" ? [] : resolveTypeWorkflows(settings.schema);\n const parentReferencePolicy = settings.validation.parent_reference;\n const sprintReleasePolicy = settings.validation.sprint_release_format;\n const unsetTargets = parseUpdateUnsetTargets(options.unset, runtimeFieldRegistry, extensionFieldNames);\n const clearOptionKeys = new Set<string>(unsetTargets.optionKeys);\n const clearFrontMatterKeys = new Set<string>(unsetTargets.frontMatterKeys);\n\n const clearCollectionDefinitions: ReadonlyArray<{\n enabled: boolean | undefined;\n optionKey: string;\n clearFlag: string;\n valueFlag: string;\n values: string[] | undefined;\n frontMatterKey: string;\n }> = [\n {\n enabled: options.clearDeps || options.replaceDeps,\n optionKey: \"dep\",\n clearFlag: \"--clear-deps\",\n valueFlag: \"--dep\",\n values: options.dep,\n frontMatterKey: \"dependencies\",\n },\n {\n enabled: options.clearComments,\n optionKey: \"comment\",\n clearFlag: \"--clear-comments\",\n valueFlag: \"--comment\",\n values: options.comment,\n frontMatterKey: \"comments\",\n },\n {\n enabled: options.clearNotes,\n optionKey: \"note\",\n clearFlag: \"--clear-notes\",\n valueFlag: \"--note\",\n values: options.note,\n frontMatterKey: \"notes\",\n },\n {\n enabled: options.clearLearnings,\n optionKey: \"learning\",\n clearFlag: \"--clear-learnings\",\n valueFlag: \"--learning\",\n values: options.learning,\n frontMatterKey: \"learnings\",\n },\n {\n enabled: options.clearFiles,\n optionKey: \"file\",\n clearFlag: \"--clear-files\",\n valueFlag: \"--file\",\n values: options.file,\n frontMatterKey: \"files\",\n },\n {\n enabled: options.clearTests || options.replaceTests,\n optionKey: \"test\",\n clearFlag: \"--clear-tests\",\n valueFlag: \"--test\",\n values: options.test,\n frontMatterKey: \"tests\",\n },\n {\n enabled: options.clearDocs,\n optionKey: \"doc\",\n clearFlag: \"--clear-docs\",\n valueFlag: \"--doc\",\n values: options.doc,\n frontMatterKey: \"docs\",\n },\n {\n enabled: options.clearReminders,\n optionKey: \"reminder\",\n clearFlag: \"--clear-reminders\",\n valueFlag: \"--reminder\",\n values: options.reminder,\n frontMatterKey: \"reminders\",\n },\n {\n enabled: options.clearEvents,\n optionKey: \"event\",\n clearFlag: \"--clear-events\",\n valueFlag: \"--event\",\n values: options.event,\n frontMatterKey: \"events\",\n },\n {\n enabled: options.clearTypeOptions,\n optionKey: \"typeOption\",\n clearFlag: \"--clear-type-options\",\n valueFlag: \"--type-option\",\n values: options.typeOption,\n frontMatterKey: \"type_options\",\n },\n ];\n if (options.replaceDeps === true && (options.dep === undefined || options.dep.length === 0)) {\n throw new PmCliError(\"--replace-deps requires at least one --dep entry\", EXIT_CODE.USAGE);\n }\n if (options.replaceDeps === true && options.depRemove !== undefined && options.depRemove.length > 0) {\n throw new PmCliError(\"--replace-deps cannot be combined with --dep-remove\", EXIT_CODE.USAGE);\n }\n if (options.replaceTests === true && (options.test === undefined || options.test.length === 0)) {\n throw new PmCliError(\"--replace-tests requires at least one --test entry\", EXIT_CODE.USAGE);\n }\n if (options.replaceTests === true && options.clearTests === true) {\n throw new PmCliError(\"--replace-tests cannot be combined with --clear-tests\", EXIT_CODE.USAGE);\n }\n for (const definition of clearCollectionDefinitions) {\n if (!definition.enabled) {\n continue;\n }\n if (\n definition.values &&\n definition.values.length > 0 &&\n !(\n (definition.optionKey === \"dep\" && options.replaceDeps === true) ||\n (definition.optionKey === \"test\" && options.replaceTests === true)\n )\n ) {\n throw new PmCliError(`Cannot combine ${definition.clearFlag} with ${definition.valueFlag}`, EXIT_CODE.USAGE);\n }\n clearOptionKeys.add(definition.optionKey);\n clearFrontMatterKeys.add(definition.frontMatterKey);\n }\n enforceAllowAuditUpdateScope(id, options, clearFrontMatterKeys);\n\n const scalarOptionPresence: Record<string, boolean> = {\n tags: options.tags !== undefined,\n closeReason: options.closeReason !== undefined,\n deadline: options.deadline !== undefined,\n estimatedMinutes: options.estimatedMinutes !== undefined,\n acceptanceCriteria: options.acceptanceCriteria !== undefined,\n definitionOfReady: options.definitionOfReady !== undefined,\n order: options.order !== undefined || options.rank !== undefined,\n goal: options.goal !== undefined,\n objective: options.objective !== undefined,\n value: options.value !== undefined,\n impact: options.impact !== undefined,\n outcome: options.outcome !== undefined,\n whyNow: options.whyNow !== undefined,\n assignee: options.assignee !== undefined,\n parent: options.parent !== undefined,\n reviewer: options.reviewer !== undefined,\n risk: options.risk !== undefined,\n confidence: options.confidence !== undefined,\n sprint: options.sprint !== undefined,\n release: options.release !== undefined,\n blockedBy: options.blockedBy !== undefined,\n blockedReason: options.blockedReason !== undefined,\n unblockNote: options.unblockNote !== undefined,\n reporter: options.reporter !== undefined,\n severity: options.severity !== undefined,\n environment: options.environment !== undefined,\n reproSteps: options.reproSteps !== undefined,\n resolution: options.resolution !== undefined,\n expectedResult: options.expectedResult !== undefined,\n actualResult: options.actualResult !== undefined,\n affectedVersion: options.affectedVersion !== undefined,\n fixedVersion: options.fixedVersion !== undefined,\n component: options.component !== undefined,\n regression: options.regression !== undefined,\n customerImpact: options.customerImpact !== undefined,\n };\n for (const [optionKey, hasValue] of Object.entries(scalarOptionPresence)) {\n if (!hasValue || !unsetTargets.optionKeys.has(optionKey)) {\n continue;\n }\n const unsetField = UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey) ?? optionKey;\n throw new PmCliError(\n `Cannot combine --unset ${unsetField} with ${commandOptionFlagLabel(\"update\", optionKey)}`,\n EXIT_CODE.USAGE,\n );\n }\n // `--add-tags`/`--remove-tags` aren't in the scalar presence map above (they\n // are repeatable), but combining them with `--unset tags` is the same\n // contradiction as `--unset tags --tags ...`, so reject it explicitly.\n if (clearFrontMatterKeys.has(\"tags\")) {\n if (Array.isArray(options.addTags) && options.addTags.length > 0) {\n throw new PmCliError(\"Cannot combine --unset tags with --add-tags\", EXIT_CODE.USAGE);\n }\n if (Array.isArray(options.removeTags) && options.removeTags.length > 0) {\n throw new PmCliError(\"Cannot combine --unset tags with --remove-tags\", EXIT_CODE.USAGE);\n }\n }\n\n const assertNoLegacyScalarToken = (value: string | undefined, optionKey: string): void => {\n const unsetField = UPDATE_OPTION_KEY_TO_UNSET_CANONICAL.get(optionKey);\n const hint = unsetField ? `Use --unset ${unsetField} to clear this field.` : undefined;\n assertNoLegacyNoneToken(value, commandOptionFlagLabel(\"update\", optionKey), hint);\n };\n assertNoLegacyScalarToken(options.tags, \"tags\");\n assertNoLegacyScalarToken(options.closeReason, \"closeReason\");\n assertNoLegacyScalarToken(options.deadline, \"deadline\");\n assertNoLegacyScalarToken(options.estimatedMinutes, \"estimatedMinutes\");\n assertNoLegacyScalarToken(options.acceptanceCriteria, \"acceptanceCriteria\");\n assertNoLegacyScalarToken(options.definitionOfReady, \"definitionOfReady\");\n assertNoLegacyScalarToken(options.order ?? options.rank, \"order\");\n assertNoLegacyScalarToken(options.goal, \"goal\");\n assertNoLegacyScalarToken(options.objective, \"objective\");\n assertNoLegacyScalarToken(options.value, \"value\");\n assertNoLegacyScalarToken(options.impact, \"impact\");\n assertNoLegacyScalarToken(options.outcome, \"outcome\");\n assertNoLegacyScalarToken(options.whyNow, \"whyNow\");\n assertNoLegacyScalarToken(options.assignee, \"assignee\");\n assertNoLegacyScalarToken(options.parent, \"parent\");\n assertNoLegacyScalarToken(options.reviewer, \"reviewer\");\n assertNoLegacyScalarToken(options.risk, \"risk\");\n assertNoLegacyScalarToken(options.confidence, \"confidence\");\n assertNoLegacyScalarToken(options.sprint, \"sprint\");\n assertNoLegacyScalarToken(options.release, \"release\");\n assertNoLegacyScalarToken(options.blockedBy, \"blockedBy\");\n assertNoLegacyScalarToken(options.blockedReason, \"blockedReason\");\n assertNoLegacyScalarToken(options.unblockNote, \"unblockNote\");\n assertNoLegacyScalarToken(options.reporter, \"reporter\");\n assertNoLegacyScalarToken(options.severity, \"severity\");\n assertNoLegacyScalarToken(options.environment, \"environment\");\n assertNoLegacyScalarToken(options.reproSteps, \"reproSteps\");\n assertNoLegacyScalarToken(options.resolution, \"resolution\");\n assertNoLegacyScalarToken(options.expectedResult, \"expectedResult\");\n assertNoLegacyScalarToken(options.actualResult, \"actualResult\");\n assertNoLegacyScalarToken(options.affectedVersion, \"affectedVersion\");\n assertNoLegacyScalarToken(options.fixedVersion, \"fixedVersion\");\n assertNoLegacyScalarToken(options.component, \"component\");\n assertNoLegacyScalarToken(options.regression, \"regression\");\n assertNoLegacyScalarToken(options.customerImpact, \"customerImpact\");\n assertNoLegacyNoneTokens(options.reminder, \"--reminder\", \"Use --clear-reminders to clear reminders.\");\n assertNoLegacyNoneTokens(options.event, \"--event\", \"Use --clear-events to clear linked events.\");\n\n const author = toAuthor(options.author, settings.author_default);\n const nowValue = new Date();\n const nowIso = nowValue.toISOString();\n const dependencyUpdates = parseDependencyAdditions(options.dep, settings.id_prefix, nowIso);\n const dependencyRemovals = parseDependencyRemovals(options.depRemove, settings.id_prefix);\n const parsedCommentUpdates = parseLogSeed(\"--comment\", options.comment, nowIso, author);\n const commentUpdates = options.allowAuditUpdate === true && parsedCommentUpdates.values\n ? {\n ...parsedCommentUpdates,\n values: parsedCommentUpdates.values.map((entry) => ({ ...entry, author })),\n }\n : parsedCommentUpdates;\n const noteUpdates = parseLogSeed(\"--note\", options.note, nowIso, author);\n const learningUpdates = parseLogSeed(\"--learning\", options.learning, nowIso, author);\n const fileUpdates = parseFiles(options.file);\n const testUpdates = parseTests(options.test);\n const docUpdates = parseDocs(options.doc);\n const parentReferenceWarnings: string[] = [];\n const workflowTransitionWarnings: string[] = [];\n let resolvedParentValue: string | undefined;\n if (options.parent !== undefined && !unsetTargets.frontMatterKeys.has(\"parent\")) {\n resolvedParentValue = normalizeParentReferenceValue(options.parent);\n const parentLocated = await locateItem(\n pmRoot,\n resolvedParentValue,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n if (!parentLocated) {\n const normalizedParentId = normalizeItemId(resolvedParentValue, settings.id_prefix);\n parentReferenceWarnings.push(...validateMissingParentReference(normalizedParentId, parentReferencePolicy).warnings);\n }\n }\n\n // pm-kyd6: resolve the --blocked-by target up front (async) so the sync\n // mutate callback can mirror create.ts and add a `blocked_by` dependency edge.\n const blockedByResolution = await resolveBlockedByDependencyTarget(\n options.blockedBy,\n clearFrontMatterKeys.has(\"blocked_by\"),\n pmRoot,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n const resolvedBlockedByDependencyId = blockedByResolution.id;\n if (blockedByResolution.unresolved !== undefined) {\n parentReferenceWarnings.push(`blocked_by_unresolved:${blockedByResolution.unresolved}`);\n }\n\n const runtimeFieldUpdates = collectRuntimeUpdateFieldValues(\n options as Record<string, unknown>,\n runtimeFieldRegistry,\n options.runtimeFieldCommands,\n );\n const fieldFlags: Record<string, boolean> = {\n title: options.title !== undefined,\n description: options.description !== undefined,\n body: options.body !== undefined,\n status: options.status !== undefined,\n closeReason: options.closeReason !== undefined,\n priority: options.priority !== undefined,\n type: options.type !== undefined,\n tags: options.tags !== undefined,\n addTags: Array.isArray(options.addTags) && options.addTags.length > 0,\n removeTags: Array.isArray(options.removeTags) && options.removeTags.length > 0,\n deadline: options.deadline !== undefined,\n estimatedMinutes: options.estimatedMinutes !== undefined,\n acceptanceCriteria: options.acceptanceCriteria !== undefined,\n definitionOfReady: options.definitionOfReady !== undefined,\n order: options.order !== undefined,\n rank: options.rank !== undefined,\n goal: options.goal !== undefined,\n objective: options.objective !== undefined,\n value: options.value !== undefined,\n impact: options.impact !== undefined,\n outcome: options.outcome !== undefined,\n whyNow: options.whyNow !== undefined,\n assignee: options.assignee !== undefined,\n parent: options.parent !== undefined,\n reviewer: options.reviewer !== undefined,\n risk: options.risk !== undefined,\n confidence: options.confidence !== undefined,\n sprint: options.sprint !== undefined,\n release: options.release !== undefined,\n blockedBy: options.blockedBy !== undefined,\n blockedReason: options.blockedReason !== undefined,\n unblockNote: options.unblockNote !== undefined,\n reporter: options.reporter !== undefined,\n severity: options.severity !== undefined,\n environment: options.environment !== undefined,\n reproSteps: options.reproSteps !== undefined,\n resolution: options.resolution !== undefined,\n expectedResult: options.expectedResult !== undefined,\n actualResult: options.actualResult !== undefined,\n affectedVersion: options.affectedVersion !== undefined,\n fixedVersion: options.fixedVersion !== undefined,\n component: options.component !== undefined,\n regression: options.regression !== undefined,\n customerImpact: options.customerImpact !== undefined,\n dep: options.dep !== undefined,\n depRemove: options.depRemove !== undefined,\n replaceDeps: options.replaceDeps === true,\n comment: options.comment !== undefined,\n note: options.note !== undefined,\n learning: options.learning !== undefined,\n file: options.file !== undefined,\n test: options.test !== undefined,\n replaceTests: options.replaceTests === true,\n doc: options.doc !== undefined,\n reminder: options.reminder !== undefined,\n event: options.event !== undefined,\n typeOption: options.typeOption !== undefined,\n field: options.field !== undefined,\n unset: options.unset !== undefined && options.unset.length > 0,\n clearDeps: options.clearDeps === true,\n clearComments: options.clearComments === true,\n clearNotes: options.clearNotes === true,\n clearLearnings: options.clearLearnings === true,\n clearFiles: options.clearFiles === true,\n clearTests: options.clearTests === true,\n clearDocs: options.clearDocs === true,\n clearReminders: options.clearReminders === true,\n clearEvents: options.clearEvents === true,\n clearTypeOptions: options.clearTypeOptions === true,\n runtimeFields: Object.keys(runtimeFieldUpdates).length > 0,\n };\n const changedFlags = Object.values(fieldFlags).some(Boolean);\n\n if (!changedFlags) {\n const located = await locateItem(\n pmRoot,\n id,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const { document } = await readLocatedItem(located, { schema: settings.schema });\n return {\n item: toItemRecord(document.metadata),\n changed_fields: [],\n warnings: [\"noop_no_update_fields\"],\n };\n }\n\n // Per-type allowed-transition enforcement runs BEFORE the close-reroute so a\n // transition toward the close status is gated too. We read the item's current\n // status + type once (only when enforcement is active and --status is set) so\n // the default `off` path adds zero extra work. A `strict` violation throws; a\n // `warn` violation surfaces a warning on the result.\n if (workflowEnforcement !== \"off\" && typeWorkflows.length > 0 && fieldFlags.status && options.status !== undefined) {\n const located = await locateItem(\n pmRoot,\n id,\n settings.id_prefix,\n settings.item_format,\n typeRegistry.type_to_folder,\n );\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const { document } = await readLocatedItem(located, { schema: settings.schema });\n // When this update also changes --type, gate the transition against the\n // EFFECTIVE (post-update) type, so a combined --type/--status change can't\n // bypass a target-type rule (or be wrongly blocked by the pre-update type's\n // rule that will no longer apply). Falls back to the raw value when --type is\n // unresolved; the later type resolution surfaces an invalid-type error.\n const effectiveType =\n options.type !== undefined\n ? (resolveTypeName(options.type, typeRegistry) ?? options.type)\n : (document.metadata?.type ?? \"\");\n const warning = enforceTypeWorkflowTransition({\n enforcement: workflowEnforcement,\n typeWorkflows,\n statusRegistry,\n typeName: effectiveType,\n fromStatus: document.metadata?.status ?? \"\",\n toStatus: options.status ?? \"\",\n });\n if (warning) {\n workflowTransitionWarnings.push(warning);\n }\n }\n\n // `pm update --status <close_status>` always routes to the auditable close\n // workflow so agents are never blocked by close-through-update errors. Any\n // other field updates in the same call are applied first, then the item is\n // closed with the supplied --close-reason (or a derived default when omitted).\n if (fieldFlags.status) {\n const targetStatus = normalizeStatusInput(options.status as ItemStatus, statusRegistry);\n if (targetStatus === statusRegistry.close_status) {\n const otherFieldKeys = Object.entries(fieldFlags)\n .filter(([key, value]) => value && key !== \"status\" && key !== \"closeReason\")\n .map(([key]) => key);\n\n const routeWarnings: string[] = [];\n let preChangedFields: string[] = [];\n if (otherFieldKeys.length > 0) {\n const preUpdate = await runUpdate(\n id,\n { ...options, status: undefined, closeReason: undefined, message: undefined },\n global,\n );\n preChangedFields = preUpdate.changed_fields;\n routeWarnings.push(...preUpdate.warnings);\n }\n\n const explicitReason = typeof options.closeReason === \"string\" ? options.closeReason.trim() : \"\";\n const fallbackMessage = typeof options.message === \"string\" ? options.message.trim() : \"\";\n const closeReason = explicitReason || fallbackMessage || \"Closed via pm update\";\n // Only flag a defaulted reason when neither --close-reason nor --message\n // supplied any text and we had to invent the generic placeholder.\n const reasonDefaulted = explicitReason.length === 0 && fallbackMessage.length === 0;\n\n const closeResult = await runClose(\n id,\n closeReason,\n {\n author: options.author,\n message: options.message,\n force: options.force,\n },\n global,\n );\n\n const warnings = [\n ...workflowTransitionWarnings,\n ...routeWarnings,\n ...closeResult.warnings,\n \"auto_routed_from_update_to_close\",\n ];\n if (reasonDefaulted) {\n warnings.push(\"close_reason_defaulted\");\n }\n return {\n item: closeResult.item,\n changed_fields: [...preChangedFields, ...closeResult.changed_fields],\n warnings,\n };\n }\n }\n if (options.order !== undefined && options.rank !== undefined && options.order !== options.rank) {\n throw new PmCliError(\"--order and --rank must match when both are provided\", EXIT_CODE.USAGE);\n }\n\n const result = await mutateItem({\n pmRoot,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n id,\n op: options.allowAuditUpdate === true || options.allowAuditDepUpdate === true ? \"update_audit\" : \"update\",\n author,\n message: options.message,\n force: options.force,\n bypassAssigneeConflict: options.allowAuditUpdate === true || options.allowAuditDepUpdate === true,\n extensionFieldNames,\n mutate(document) {\n const changedFields: string[] = [];\n const warnings: string[] = [];\n let activeTypeName = resolveTypeName(document.metadata.type, typeRegistry) ?? document.metadata.type;\n\n // Declarative set-or-clear helpers for the many string scalar fields that\n // share an identical shape: set from `--flag` (optionally transformed) or\n // delete when `--unset <field>` was requested, then record the change.\n // Each call is placed in the same position the inline block occupied so\n // the order of `changedFields` is preserved exactly (pm-why9).\n const metadataRecord = toItemRecord(document.metadata);\n const scalarMutationContext: UpdateScalarMutationContext = {\n metadataRecord,\n clearFrontMatterKeys,\n changedFields,\n nowValue,\n };\n\n if (options.title !== undefined) {\n document.metadata.title = options.title;\n changedFields.push(\"title\");\n }\n if (options.description !== undefined) {\n document.metadata.description = options.description;\n changedFields.push(\"description\");\n }\n if (options.body !== undefined) {\n document.body = options.body;\n changedFields.push(\"body\");\n }\n const previousStatus = document.metadata.status;\n const previousStatusNormalized = normalizeStatusInput(previousStatus, statusRegistry) ?? previousStatus;\n if (options.status !== undefined) {\n // Close-status routing (with reason + audit) is handled before mutateItem\n // by the close gate above, so only non-close transitions reach this path.\n const status = parseStatus(options.status, statusRegistry);\n document.metadata.status = status;\n if (status === statusRegistry.canceled_status) {\n delete document.metadata.assignee;\n }\n changedFields.push(\"status\");\n }\n if (options.closeReason !== undefined || clearFrontMatterKeys.has(\"close_reason\")) {\n if (clearFrontMatterKeys.has(\"close_reason\")) {\n delete document.metadata.close_reason;\n } else {\n const closeReason = options.closeReason?.trim() ?? \"\";\n if (closeReason.length === 0) {\n throw new PmCliError(\"--close-reason must not be empty\", EXIT_CODE.USAGE);\n }\n document.metadata.close_reason = closeReason;\n }\n changedFields.push(\"close_reason\");\n } else if (\n options.status !== undefined &&\n previousStatusNormalized === statusRegistry.close_status &&\n document.metadata.status !== statusRegistry.canceled_status &&\n document.metadata.close_reason !== undefined\n ) {\n delete document.metadata.close_reason;\n changedFields.push(\"close_reason\");\n }\n if (options.priority !== undefined) {\n document.metadata.priority = ensurePriority(options.priority);\n changedFields.push(\"priority\");\n }\n if (options.type !== undefined) {\n const resolvedTypeName = resolveTypeName(options.type, typeRegistry);\n if (!resolvedTypeName) {\n throw new PmCliError(\n buildInvalidTypeError(options.type, typeRegistry.types, resolveItemTypesFilePath(pmRoot, settings.schema)),\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type = resolvedTypeName;\n activeTypeName = resolvedTypeName;\n changedFields.push(\"type\");\n }\n enforceUpdateOptionsByType(activeTypeName, options, typeRegistry, extensionFieldNames);\n if (options.typeOption !== undefined || clearFrontMatterKeys.has(\"type_options\")) {\n if (clearFrontMatterKeys.has(\"type_options\")) {\n delete document.metadata.type_options;\n } else {\n const parsedTypeOptions = parseTypeOptionEntries(options.typeOption ?? []);\n const validation = validateTypeOptions(activeTypeName, parsedTypeOptions, typeRegistry);\n if (validation.errors.length > 0) {\n throw new PmCliError(validation.errors.join(\"; \"), EXIT_CODE.USAGE);\n }\n document.metadata.type_options = validation.normalized;\n }\n changedFields.push(\"type_options\");\n } else if (options.type !== undefined && document.metadata.type_options !== undefined) {\n const validation = validateTypeOptions(activeTypeName, document.metadata.type_options, typeRegistry);\n if (validation.errors.length > 0) {\n throw new PmCliError(\n `Current type options are incompatible with type \"${activeTypeName}\". ${validation.errors.join(\"; \")}. Use --clear-type-options to clear them.`,\n EXIT_CODE.USAGE,\n );\n }\n document.metadata.type_options = validation.normalized;\n }\n if (options.dep !== undefined || options.depRemove !== undefined || clearFrontMatterKeys.has(\"dependencies\")) {\n let nextDependencies = clearFrontMatterKeys.has(\"dependencies\") ? [] : [...(document.metadata.dependencies ?? [])];\n if (dependencyUpdates.additions.length > 0) {\n const seen = new Set(nextDependencies.map((entry) => dependencyKey(entry)));\n for (const addition of dependencyUpdates.additions) {\n const key = dependencyKey(addition);\n if (seen.has(key)) {\n continue;\n }\n nextDependencies.push(addition);\n seen.add(key);\n }\n }\n if (dependencyRemovals.length > 0) {\n nextDependencies = nextDependencies.filter(\n (entry) => !dependencyRemovals.some((selector) => matchesDependencySelector(entry, selector)),\n );\n }\n if (nextDependencies.length === 0) {\n delete document.metadata.dependencies;\n } else {\n document.metadata.dependencies = nextDependencies;\n }\n changedFields.push(\"dependencies\");\n }\n if (options.comment !== undefined || clearFrontMatterKeys.has(\"comments\")) {\n if (clearFrontMatterKeys.has(\"comments\") || !commentUpdates.values || commentUpdates.values.length === 0) {\n delete document.metadata.comments;\n } else {\n document.metadata.comments = [...(document.metadata.comments ?? []), ...(commentUpdates.values as Comment[])];\n }\n changedFields.push(\"comments\");\n }\n if (options.note !== undefined || clearFrontMatterKeys.has(\"notes\")) {\n if (clearFrontMatterKeys.has(\"notes\") || !noteUpdates.values || noteUpdates.values.length === 0) {\n delete document.metadata.notes;\n } else {\n document.metadata.notes = [...(document.metadata.notes ?? []), ...(noteUpdates.values as LogNote[])];\n }\n changedFields.push(\"notes\");\n }\n if (options.learning !== undefined || clearFrontMatterKeys.has(\"learnings\")) {\n if (clearFrontMatterKeys.has(\"learnings\") || !learningUpdates.values || learningUpdates.values.length === 0) {\n delete document.metadata.learnings;\n } else {\n document.metadata.learnings = [...(document.metadata.learnings ?? []), ...(learningUpdates.values as LogNote[])];\n }\n changedFields.push(\"learnings\");\n }\n if (options.file !== undefined || clearFrontMatterKeys.has(\"files\")) {\n if (clearFrontMatterKeys.has(\"files\") || !fileUpdates.values || fileUpdates.values.length === 0) {\n delete document.metadata.files;\n } else {\n const nextFiles = [...(document.metadata.files ?? [])];\n const seen = new Set(nextFiles.map((entry) => fileKey(entry)));\n for (const entry of fileUpdates.values) {\n const key = fileKey(entry);\n if (seen.has(key)) {\n continue;\n }\n nextFiles.push(entry);\n seen.add(key);\n }\n document.metadata.files = nextFiles;\n }\n changedFields.push(\"files\");\n }\n if (options.test !== undefined || clearFrontMatterKeys.has(\"tests\")) {\n if (clearFrontMatterKeys.has(\"tests\") && options.replaceTests === true) {\n if (!testUpdates.values || testUpdates.values.length === 0) {\n delete document.metadata.tests;\n } else {\n const replacementTests: LinkedTest[] = [];\n const seen = new Set<string>();\n for (const entry of testUpdates.values) {\n const key = testKey(entry);\n if (seen.has(key)) {\n continue;\n }\n replacementTests.push(entry);\n seen.add(key);\n }\n document.metadata.tests = replacementTests;\n }\n } else if (clearFrontMatterKeys.has(\"tests\") || !testUpdates.values || testUpdates.values.length === 0) {\n delete document.metadata.tests;\n } else {\n const nextTests = [...(document.metadata.tests ?? [])];\n const seen = new Set(nextTests.map((entry) => testKey(entry)));\n for (const entry of testUpdates.values) {\n const key = testKey(entry);\n if (seen.has(key)) {\n continue;\n }\n nextTests.push(entry);\n seen.add(key);\n }\n document.metadata.tests = nextTests;\n }\n changedFields.push(\"tests\");\n }\n if (options.doc !== undefined || clearFrontMatterKeys.has(\"docs\")) {\n if (clearFrontMatterKeys.has(\"docs\") || !docUpdates.values || docUpdates.values.length === 0) {\n delete document.metadata.docs;\n } else {\n const nextDocs = [...(document.metadata.docs ?? [])];\n const seen = new Set(nextDocs.map((entry) => docKey(entry)));\n for (const entry of docUpdates.values) {\n const key = docKey(entry);\n if (seen.has(key)) {\n continue;\n }\n nextDocs.push(entry);\n seen.add(key);\n }\n document.metadata.docs = nextDocs;\n }\n changedFields.push(\"docs\");\n }\n const addTagsValues = options.addTags;\n const removeTagsValues = options.removeTags;\n const hasAdditiveTagMutation =\n (Array.isArray(addTagsValues) && addTagsValues.length > 0) ||\n (Array.isArray(removeTagsValues) && removeTagsValues.length > 0);\n if (options.tags !== undefined || clearFrontMatterKeys.has(\"tags\") || hasAdditiveTagMutation) {\n const baseTags = clearFrontMatterKeys.has(\"tags\")\n ? []\n : options.tags !== undefined\n ? parseTags(options.tags)\n : Array.isArray(document.metadata.tags)\n ? [...(document.metadata.tags as string[])]\n : [];\n const withAdditions = mergeAdditiveTags(baseTags, addTagsValues);\n const finalTags = applyTagRemovals(withAdditions, removeTagsValues);\n document.metadata.tags = finalTags;\n changedFields.push(\"tags\");\n }\n applyUpdateScalarMutations(UPDATE_POST_TAG_SCALAR_MUTATIONS, options, scalarMutationContext);\n const orderRaw = options.order ?? options.rank;\n if (orderRaw !== undefined || clearFrontMatterKeys.has(\"order\")) {\n if (clearFrontMatterKeys.has(\"order\")) {\n delete document.metadata.order;\n } else {\n const parsedOrder = parseOptionalNumber(orderRaw ?? \"\", \"order\");\n if (!Number.isInteger(parsedOrder)) {\n throw new PmCliError(\"Order must be an integer\", EXIT_CODE.USAGE);\n }\n document.metadata.order = parsedOrder;\n }\n changedFields.push(\"order\");\n }\n if (options.assignee !== undefined || clearFrontMatterKeys.has(\"assignee\")) {\n if (clearFrontMatterKeys.has(\"assignee\")) {\n delete document.metadata.assignee;\n } else {\n const assignee = options.assignee?.trim() ?? \"\";\n if (assignee === \"\") {\n throw new PmCliError(\"--assignee must not be empty. Use --unset assignee to clear it.\", EXIT_CODE.USAGE);\n }\n document.metadata.assignee = assignee;\n }\n changedFields.push(\"assignee\");\n }\n if (options.parent !== undefined || clearFrontMatterKeys.has(\"parent\")) {\n if (clearFrontMatterKeys.has(\"parent\")) {\n delete document.metadata.parent;\n } else {\n document.metadata.parent = resolvedParentValue ?? \"\";\n }\n changedFields.push(\"parent\");\n }\n applyUpdateScalarMutations(UPDATE_STAKEHOLDER_SCALAR_MUTATIONS, options, scalarMutationContext);\n if (options.sprint !== undefined || clearFrontMatterKeys.has(\"sprint\")) {\n if (clearFrontMatterKeys.has(\"sprint\")) {\n delete document.metadata.sprint;\n } else {\n const sprintValidation = validateSprintOrReleaseValue(\"sprint\", options.sprint ?? \"\", sprintReleasePolicy);\n document.metadata.sprint = sprintValidation.value;\n warnings.push(...sprintValidation.warnings);\n }\n changedFields.push(\"sprint\");\n }\n if (options.release !== undefined || clearFrontMatterKeys.has(\"release\")) {\n if (clearFrontMatterKeys.has(\"release\")) {\n delete document.metadata.release;\n } else {\n const releaseValidation = validateSprintOrReleaseValue(\"release\", options.release ?? \"\", sprintReleasePolicy);\n document.metadata.release = releaseValidation.value;\n warnings.push(...releaseValidation.warnings);\n }\n changedFields.push(\"release\");\n }\n if (options.blockedBy !== undefined || clearFrontMatterKeys.has(\"blocked_by\")) {\n if (clearFrontMatterKeys.has(\"blocked_by\")) {\n delete document.metadata.blocked_by;\n } else {\n document.metadata.blocked_by = options.blockedBy?.trim() ?? \"\";\n }\n changedFields.push(\"blocked_by\");\n // pm-kyd6: keep the dependency graph in sync with the blocked_by scalar.\n applyBlockedByDependencyEdge(\n document.metadata,\n resolvedBlockedByDependencyId,\n nowIso,\n author,\n changedFields,\n );\n }\n applyUpdateScalarMutations(UPDATE_ISSUE_SCALAR_MUTATIONS, options, scalarMutationContext);\n if (options.reminder !== undefined || clearFrontMatterKeys.has(\"reminders\")) {\n if (clearFrontMatterKeys.has(\"reminders\")) {\n delete document.metadata.reminders;\n } else {\n document.metadata.reminders = parseReminderEntries(options.reminder ?? [], nowValue, { valueMode: \"trimmed\" });\n }\n changedFields.push(\"reminders\");\n }\n if (options.event !== undefined || clearFrontMatterKeys.has(\"events\")) {\n if (clearFrontMatterKeys.has(\"events\")) {\n delete document.metadata.events;\n } else {\n document.metadata.events = parseEventEntries(options.event ?? [], nowValue, {\n allDayEmptyGuard: \"truthy\",\n recurrenceEmptyNumericGuard: \"truthy\",\n });\n }\n changedFields.push(\"events\");\n }\n\n for (const definition of runtimeFieldRegistry.definitions) {\n if (!clearFrontMatterKeys.has(definition.metadata_key)) {\n continue;\n }\n if (metadataRecord[definition.metadata_key] === undefined) {\n continue;\n }\n delete metadataRecord[definition.metadata_key];\n changedFields.push(definition.metadata_key);\n }\n\n for (const fieldKey of extensionFieldNames) {\n if (!clearFrontMatterKeys.has(fieldKey)) {\n continue;\n }\n if (metadataRecord[fieldKey] === undefined) {\n continue;\n }\n delete metadataRecord[fieldKey];\n changedFields.push(fieldKey);\n }\n\n for (const [fieldKey, fieldValue] of Object.entries(runtimeFieldUpdates)) {\n if (clearFrontMatterKeys.has(fieldKey)) {\n continue;\n }\n if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n continue;\n }\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n\n const registeredItemFieldUpdates = parseRegisteredItemFieldAssignments(options.field, extensionRegistrations);\n for (const fieldKey of Object.keys(registeredItemFieldUpdates)) {\n if (!clearFrontMatterKeys.has(fieldKey)) {\n continue;\n }\n throw new PmCliError(\n `Cannot combine --unset ${fieldKey.replaceAll(\"_\", \"-\")} with --field ${fieldKey}=...`,\n EXIT_CODE.USAGE,\n );\n }\n for (const [fieldKey, fieldValue] of Object.entries(registeredItemFieldUpdates)) {\n if (stableValueEquals(metadataRecord[fieldKey], fieldValue)) {\n continue;\n }\n metadataRecord[fieldKey] = fieldValue;\n changedFields.push(fieldKey);\n }\n\n try {\n applyRegisteredItemFieldDefaultsAndValidation(\n metadataRecord,\n extensionRegistrations,\n { skipDefaultFields: clearFrontMatterKeys },\n );\n } catch (error: unknown) {\n throw new PmCliError(error instanceof Error ? error.message : \"Invalid extension item field values\", EXIT_CODE.USAGE);\n }\n\n return { changedFields, warnings };\n },\n });\n\n return {\n item: toItemRecord(result.item),\n changed_fields: result.changedFields,\n warnings: [...workflowTransitionWarnings, ...parentReferenceWarnings, ...result.warnings],\n ...(options.allowAuditUpdate === true || options.allowAuditDepUpdate === true ? { audit_update: true } : {}),\n };\n}\n\n/* c8 ignore stop */\nexport const _testOnlyUpdateCommand = {\n collectProvidedUpdatePolicyOptions,\n buildAuditScopeRestrictedOptionsError,\n enforceAllowAuditUpdateScope,\n enforceTypeWorkflowTransition,\n matchesDependencySelector,\n normalizeLegacyNoneUpdateOptions,\n normalizeUpdatePolicyOptionKey,\n parseDependencyAdditions,\n parseDependencyRemovals,\n parseUpdateUnsetTargets,\n reconcileBlockedByDependency,\n resolveRuntimeUnsetDefinition,\n};\n"],"names":[],"mappings":"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","debugId":"d2ccc413-72f7-567b-b533-3bfa002cf260"}