@unbrained/pm-cli 2026.7.19 → 2026.7.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 (600) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/AGENTS.md +2 -0
  3. package/CHANGELOG.md +36 -0
  4. package/dist/cli/commands/append.js +13 -6
  5. package/dist/cli/commands/append.js.map +1 -1
  6. package/dist/cli/commands/calendar.d.ts +1 -1
  7. package/dist/cli/commands/calendar.js +2 -2
  8. package/dist/cli/commands/calendar.js.map +1 -1
  9. package/dist/cli/commands/comments.js +2 -5
  10. package/dist/cli/commands/comments.js.map +1 -1
  11. package/dist/cli/commands/completion.js +11 -3
  12. package/dist/cli/commands/completion.js.map +1 -1
  13. package/dist/cli/commands/context.d.ts +1 -1
  14. package/dist/cli/commands/context.js +2 -2
  15. package/dist/cli/commands/context.js.map +1 -1
  16. package/dist/cli/commands/contracts.js +4 -3
  17. package/dist/cli/commands/contracts.js.map +1 -1
  18. package/dist/cli/commands/copy.js +5 -3
  19. package/dist/cli/commands/copy.js.map +1 -1
  20. package/dist/cli/commands/create.d.ts +3 -1
  21. package/dist/cli/commands/create.js +5 -3
  22. package/dist/cli/commands/create.js.map +1 -1
  23. package/dist/cli/commands/merge.d.ts +8 -0
  24. package/dist/cli/commands/merge.js +12 -0
  25. package/dist/cli/commands/merge.js.map +1 -0
  26. package/dist/cli/commands/plan.d.ts +1 -1
  27. package/dist/cli/commands/plan.js +2 -2
  28. package/dist/cli/commands/plan.js.map +1 -1
  29. package/dist/cli/commands/update-many.d.ts +5 -0
  30. package/dist/cli/commands/update-many.js +81 -6
  31. package/dist/cli/commands/update-many.js.map +1 -1
  32. package/dist/cli/commands/update.d.ts +5 -1
  33. package/dist/cli/commands/update.js +50 -4
  34. package/dist/cli/commands/update.js.map +1 -1
  35. package/dist/cli/register-list-query.js +14 -2
  36. package/dist/cli/register-list-query.js.map +1 -1
  37. package/dist/cli/register-mutation.js +61 -2
  38. package/dist/cli/register-mutation.js.map +1 -1
  39. package/dist/cli/register-operations.js +5 -3
  40. package/dist/cli/register-operations.js.map +1 -1
  41. package/dist/cli/registration-helpers.js +4 -2
  42. package/dist/cli/registration-helpers.js.map +1 -1
  43. package/dist/cli-bundle/bundle-manifest.json +365 -333
  44. package/dist/cli-bundle/chunks/{append-MBXHNWSX.js → append-E6V54WOQ.js} +5 -5
  45. package/dist/cli-bundle/chunks/append-NNJ3EFIT.js +11 -0
  46. package/dist/cli-bundle/chunks/{chunk-M4B4RK4J.js → chunk-2BO4CA46.js} +14 -238
  47. package/dist/cli-bundle/chunks/{chunk-M4B4RK4J.js.map → chunk-2BO4CA46.js.map} +1 -1
  48. package/dist/cli-bundle/chunks/{chunk-MQOSMBWV.js → chunk-3AO5VSDR.js} +25 -6
  49. package/dist/cli-bundle/chunks/chunk-3AO5VSDR.js.map +7 -0
  50. package/dist/cli-bundle/chunks/{chunk-ODEIDKGW.js → chunk-3LPFHE3P.js} +596 -154
  51. package/dist/cli-bundle/chunks/chunk-3LPFHE3P.js.map +1 -0
  52. package/dist/cli-bundle/chunks/{chunk-YGEA4CLH.js → chunk-3MCTMJXI.js} +4 -4
  53. package/dist/cli-bundle/chunks/{chunk-N7FCFJ76.js → chunk-3P7UJQOX.js} +2 -2
  54. package/dist/cli-bundle/chunks/{chunk-7B7IHMLH.js → chunk-3VY6MIEO.js} +3 -3
  55. package/dist/cli-bundle/chunks/{chunk-3EZZTFL2.js → chunk-4F6BWJ4J.js} +51 -43
  56. package/dist/cli-bundle/chunks/chunk-4F6BWJ4J.js.map +7 -0
  57. package/dist/cli-bundle/chunks/{chunk-VA3H7VVC.js → chunk-4L23AGQ7.js} +9 -7
  58. package/dist/cli-bundle/chunks/chunk-4L23AGQ7.js.map +1 -0
  59. package/dist/cli-bundle/chunks/{chunk-5S6IZXK7.js → chunk-4U4Z6AHI.js} +7 -7
  60. package/dist/cli-bundle/chunks/{chunk-UOIFZ66L.js → chunk-4XGJLADW.js} +3 -3
  61. package/dist/cli-bundle/chunks/{chunk-SUNZKVAH.js → chunk-5IZJWSDB.js} +5 -5
  62. package/dist/cli-bundle/chunks/{chunk-QQ77W23U.js → chunk-5NTE36LD.js} +4 -4
  63. package/dist/cli-bundle/chunks/{chunk-EVAN5VJA.js → chunk-5OK4UGFV.js} +5 -8
  64. package/dist/cli-bundle/chunks/{chunk-EVAN5VJA.js.map → chunk-5OK4UGFV.js.map} +2 -2
  65. package/dist/cli-bundle/chunks/{chunk-H3YKUVDR.js → chunk-5UX66S6U.js} +26 -7
  66. package/dist/cli-bundle/chunks/chunk-5UX66S6U.js.map +1 -0
  67. package/dist/cli-bundle/chunks/{chunk-KGPLSHJD.js → chunk-6C2ZZX5Z.js} +2 -2
  68. package/dist/cli-bundle/chunks/{chunk-Q5NHJ6RO.js → chunk-6JUTHVQS.js} +2 -2
  69. package/dist/cli-bundle/chunks/{chunk-NTS2RKHN.js → chunk-6VIJ7UA5.js} +15 -15
  70. package/dist/cli-bundle/chunks/{chunk-BBGR4FKQ.js → chunk-6XMUURSS.js} +6 -6
  71. package/dist/cli-bundle/chunks/chunk-6XMUURSS.js.map +1 -0
  72. package/dist/cli-bundle/chunks/{chunk-XVB6BATY.js → chunk-72LQ4TKV.js} +3 -3
  73. package/dist/cli-bundle/chunks/{chunk-WCBB6VI3.js → chunk-7AVEY74G.js} +8 -5
  74. package/dist/cli-bundle/chunks/chunk-7AVEY74G.js.map +7 -0
  75. package/dist/cli-bundle/chunks/{chunk-YG56M3NE.js → chunk-7DOJC3HS.js} +8 -8
  76. package/dist/cli-bundle/chunks/chunk-7DOJC3HS.js.map +1 -0
  77. package/dist/cli-bundle/chunks/{chunk-KZ5AC6B5.js → chunk-7WCE6Y64.js} +2 -2
  78. package/dist/cli-bundle/chunks/{chunk-VQOG2ETB.js → chunk-AF2CCM5U.js} +4 -4
  79. package/dist/cli-bundle/chunks/{chunk-P24ZU5QV.js → chunk-AOEOYL3S.js} +49 -12
  80. package/dist/cli-bundle/chunks/chunk-AOEOYL3S.js.map +7 -0
  81. package/dist/cli-bundle/chunks/{chunk-BZKE2O5V.js → chunk-BKIAH72N.js} +8 -6
  82. package/dist/cli-bundle/chunks/chunk-BKIAH72N.js.map +1 -0
  83. package/dist/cli-bundle/chunks/{chunk-RWAIRGBC.js → chunk-C3KD7U3T.js} +12 -243
  84. package/dist/cli-bundle/chunks/chunk-C3KD7U3T.js.map +7 -0
  85. package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js +334 -0
  86. package/dist/cli-bundle/chunks/chunk-CFHAODHQ.js.map +1 -0
  87. package/dist/cli-bundle/chunks/{chunk-TELI67UP.js → chunk-CQTQKUUV.js} +6 -9
  88. package/dist/cli-bundle/chunks/{chunk-TELI67UP.js.map → chunk-CQTQKUUV.js.map} +1 -1
  89. package/dist/cli-bundle/chunks/{chunk-ZUCBPXNA.js → chunk-D6NXDNP3.js} +5 -5
  90. package/dist/cli-bundle/chunks/chunk-D6NXDNP3.js.map +7 -0
  91. package/dist/cli-bundle/chunks/{chunk-EAV3P54W.js → chunk-DAQ45GCS.js} +5 -5
  92. package/dist/cli-bundle/chunks/{chunk-6V4T4RD3.js → chunk-DVDBQA3B.js} +79 -22
  93. package/dist/cli-bundle/chunks/chunk-DVDBQA3B.js.map +1 -0
  94. package/dist/cli-bundle/chunks/chunk-E6LEMURX.js +249 -0
  95. package/dist/cli-bundle/chunks/chunk-E6LEMURX.js.map +7 -0
  96. package/dist/cli-bundle/chunks/{chunk-ZF52NVRT.js → chunk-E7ICD63T.js} +131 -179
  97. package/dist/cli-bundle/chunks/chunk-E7ICD63T.js.map +7 -0
  98. package/dist/cli-bundle/chunks/{chunk-RX53WHFI.js → chunk-EJDGV4GR.js} +3 -3
  99. package/dist/cli-bundle/chunks/{chunk-IXG5CMBR.js → chunk-FDHPAVVB.js} +4 -4
  100. package/dist/cli-bundle/chunks/{chunk-KAE727L2.js → chunk-FSRHYUDA.js} +2 -2
  101. package/dist/cli-bundle/chunks/chunk-FSRHYUDA.js.map +7 -0
  102. package/dist/cli-bundle/chunks/{chunk-46Z6FAVP.js → chunk-G3COA6GS.js} +51 -43
  103. package/dist/cli-bundle/chunks/chunk-G3COA6GS.js.map +1 -0
  104. package/dist/cli-bundle/chunks/{chunk-A4FVWFZY.js → chunk-GFQP7HAZ.js} +8 -6
  105. package/dist/cli-bundle/chunks/chunk-GFQP7HAZ.js.map +7 -0
  106. package/dist/cli-bundle/chunks/{chunk-2XPDCXK5.js → chunk-GIQSU6S2.js} +6 -6
  107. package/dist/cli-bundle/chunks/chunk-GIQSU6S2.js.map +1 -0
  108. package/dist/cli-bundle/chunks/{chunk-V4QHAMI5.js → chunk-GROYI4RB.js} +3 -3
  109. package/dist/cli-bundle/chunks/{chunk-77XFQRTD.js → chunk-GSJSM5BJ.js} +3 -3
  110. package/dist/cli-bundle/chunks/{chunk-QYGK2XQ3.js → chunk-GTLCVJOE.js} +3 -3
  111. package/dist/cli-bundle/chunks/{chunk-VSQE43NO.js → chunk-GV2262OF.js} +4 -4
  112. package/dist/cli-bundle/chunks/{chunk-N2TEEOXJ.js → chunk-GVI6FAFG.js} +8 -6
  113. package/dist/cli-bundle/chunks/chunk-GVI6FAFG.js.map +7 -0
  114. package/dist/cli-bundle/chunks/{chunk-A5EQPNV7.js → chunk-GVT754PX.js} +44 -3
  115. package/dist/cli-bundle/chunks/chunk-GVT754PX.js.map +7 -0
  116. package/dist/cli-bundle/chunks/{chunk-Y2VSGFT4.js → chunk-HB3P4M52.js} +22 -7
  117. package/dist/cli-bundle/chunks/chunk-HB3P4M52.js.map +1 -0
  118. package/dist/cli-bundle/chunks/{chunk-STBCBDKF.js → chunk-HCEBZNC3.js} +6 -6
  119. package/dist/cli-bundle/chunks/{chunk-EEECAV5M.js → chunk-HEWM6CEN.js} +80 -25
  120. package/dist/cli-bundle/chunks/chunk-HEWM6CEN.js.map +7 -0
  121. package/dist/cli-bundle/chunks/{chunk-GKCEEXMA.js → chunk-HQ3SB4CN.js} +21 -6
  122. package/dist/cli-bundle/chunks/{chunk-GKCEEXMA.js.map → chunk-HQ3SB4CN.js.map} +2 -2
  123. package/dist/cli-bundle/chunks/{chunk-U6RYD446.js → chunk-HRW7GF6T.js} +7 -7
  124. package/dist/cli-bundle/chunks/{chunk-D35WYXWC.js → chunk-HYW67VJ5.js} +6 -3
  125. package/dist/cli-bundle/chunks/chunk-HYW67VJ5.js.map +1 -0
  126. package/dist/cli-bundle/chunks/{chunk-OKWJUL6F.js → chunk-I577UHC7.js} +16 -9
  127. package/dist/cli-bundle/chunks/{chunk-OKWJUL6F.js.map → chunk-I577UHC7.js.map} +2 -2
  128. package/dist/cli-bundle/chunks/{chunk-XDWXPG2E.js → chunk-IAQE32BI.js} +4 -4
  129. package/dist/cli-bundle/chunks/{chunk-66SRNEBK.js → chunk-IJNK6WW2.js} +3 -3
  130. package/dist/cli-bundle/chunks/chunk-INSTSQNZ.js +623 -0
  131. package/dist/cli-bundle/chunks/chunk-INSTSQNZ.js.map +7 -0
  132. package/dist/cli-bundle/chunks/{chunk-A3GAQLBH.js → chunk-IX677TRO.js} +75 -12
  133. package/dist/cli-bundle/chunks/chunk-IX677TRO.js.map +7 -0
  134. package/dist/cli-bundle/chunks/{chunk-RLLOZAM2.js → chunk-IY6VZ3IW.js} +29 -8
  135. package/dist/cli-bundle/chunks/chunk-IY6VZ3IW.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-SVAWG7EE.js → chunk-J4FBIFU6.js} +45 -4
  137. package/dist/cli-bundle/chunks/chunk-J4FBIFU6.js.map +1 -0
  138. package/dist/cli-bundle/chunks/{chunk-AGEBQRBG.js → chunk-JAPE62Y5.js} +9 -9
  139. package/dist/cli-bundle/chunks/{chunk-UWAQI3B7.js → chunk-JGUKMMRS.js} +3 -3
  140. package/dist/cli-bundle/chunks/{chunk-UU6EP25G.js → chunk-JH2ZSLO3.js} +2 -2
  141. package/dist/cli-bundle/chunks/{chunk-GRDK25BN.js → chunk-JHJSFOAM.js} +6 -6
  142. package/dist/cli-bundle/chunks/{chunk-FQO5THHM.js → chunk-JM6YAXTR.js} +2 -2
  143. package/dist/cli-bundle/chunks/{chunk-E7KBMWEF.js → chunk-JSLT7WVE.js} +2 -2
  144. package/dist/cli-bundle/chunks/{chunk-FIUTBFC6.js → chunk-K4CI6Y45.js} +2 -2
  145. package/dist/cli-bundle/chunks/{chunk-IEMXESIS.js → chunk-KSPWRNVP.js} +7 -7
  146. package/dist/cli-bundle/chunks/{chunk-3QNUDDY2.js → chunk-KZEANWJS.js} +14 -12
  147. package/dist/cli-bundle/chunks/{chunk-3QNUDDY2.js.map → chunk-KZEANWJS.js.map} +2 -2
  148. package/dist/cli-bundle/chunks/{chunk-BFJP4VYC.js → chunk-L7BH7IWU.js} +4 -4
  149. package/dist/cli-bundle/chunks/{chunk-2UCG5H6B.js → chunk-LPEYZRUR.js} +3 -3
  150. package/dist/cli-bundle/chunks/{chunk-FQF6VVPH.js → chunk-MYSS5H2A.js} +9 -7
  151. package/dist/cli-bundle/chunks/{chunk-FQF6VVPH.js.map → chunk-MYSS5H2A.js.map} +1 -1
  152. package/dist/cli-bundle/chunks/{chunk-IR3GOO6E.js → chunk-NHT3F4WZ.js} +15 -15
  153. package/dist/cli-bundle/chunks/{chunk-6BNV3G6C.js → chunk-NLR32VFS.js} +2 -2
  154. package/dist/cli-bundle/chunks/{chunk-BDC4TW4B.js → chunk-OV7MSW3I.js} +15 -13
  155. package/dist/cli-bundle/chunks/chunk-OV7MSW3I.js.map +1 -0
  156. package/dist/cli-bundle/chunks/{chunk-EI3UIMZM.js → chunk-OWXOPDHD.js} +4 -4
  157. package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js +246 -0
  158. package/dist/cli-bundle/chunks/chunk-P7JTWYLH.js.map +1 -0
  159. package/dist/cli-bundle/chunks/{chunk-AQUNTB7G.js → chunk-PEQGTJ5Q.js} +3 -3
  160. package/dist/cli-bundle/chunks/{chunk-QFG4MB7P.js → chunk-POG76WWZ.js} +28 -7
  161. package/dist/cli-bundle/chunks/chunk-POG76WWZ.js.map +1 -0
  162. package/dist/cli-bundle/chunks/{chunk-MI3346YW.js → chunk-QANSTTC7.js} +129 -170
  163. package/dist/cli-bundle/chunks/chunk-QANSTTC7.js.map +1 -0
  164. package/dist/cli-bundle/chunks/{chunk-T6MOTLOJ.js → chunk-QJKL5PHS.js} +2 -2
  165. package/dist/cli-bundle/chunks/{chunk-SBW7EQC4.js → chunk-QLZ643FM.js} +76 -13
  166. package/dist/cli-bundle/chunks/chunk-QLZ643FM.js.map +1 -0
  167. package/dist/cli-bundle/chunks/{chunk-XKVHL3MB.js → chunk-QWRVBJ4D.js} +2 -2
  168. package/dist/cli-bundle/chunks/chunk-R3EWPG4A.js +106 -0
  169. package/dist/cli-bundle/chunks/chunk-R3EWPG4A.js.map +1 -0
  170. package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js +344 -0
  171. package/dist/cli-bundle/chunks/chunk-R5U2VZ3K.js.map +7 -0
  172. package/dist/cli-bundle/chunks/{chunk-VFA5EIEN.js → chunk-R7QV7ICM.js} +4 -4
  173. package/dist/cli-bundle/chunks/{chunk-NPEYH6CE.js → chunk-RDV4ZFYS.js} +12 -10
  174. package/dist/cli-bundle/chunks/{chunk-NPEYH6CE.js.map → chunk-RDV4ZFYS.js.map} +1 -1
  175. package/dist/cli-bundle/chunks/{chunk-K2L6FZBX.js → chunk-RJO3YAFM.js} +4 -4
  176. package/dist/cli-bundle/chunks/{chunk-YIC5NGXF.js → chunk-RMF7LMBS.js} +7 -7
  177. package/dist/cli-bundle/chunks/{chunk-YIC5NGXF.js.map → chunk-RMF7LMBS.js.map} +2 -2
  178. package/dist/cli-bundle/chunks/{chunk-MRXAHR4B.js → chunk-RZJLNXFG.js} +50 -13
  179. package/dist/cli-bundle/chunks/chunk-RZJLNXFG.js.map +1 -0
  180. package/dist/cli-bundle/chunks/{chunk-DJAGYYCQ.js → chunk-SC2HMDGB.js} +19 -3
  181. package/dist/cli-bundle/chunks/chunk-SC2HMDGB.js.map +1 -0
  182. package/dist/cli-bundle/chunks/{chunk-SGJB6PXA.js → chunk-SF3DT5HJ.js} +3 -3
  183. package/dist/cli-bundle/chunks/chunk-SG74J6MV.js +604 -0
  184. package/dist/cli-bundle/chunks/chunk-SG74J6MV.js.map +1 -0
  185. package/dist/cli-bundle/chunks/{chunk-Q3K5XPAQ.js → chunk-SR3JOATZ.js} +18 -2
  186. package/dist/cli-bundle/chunks/chunk-SR3JOATZ.js.map +7 -0
  187. package/dist/cli-bundle/chunks/{chunk-DUDLSQFG.js → chunk-SSKOQNMS.js} +14 -12
  188. package/dist/cli-bundle/chunks/{chunk-DUDLSQFG.js.map → chunk-SSKOQNMS.js.map} +1 -1
  189. package/dist/cli-bundle/chunks/{chunk-UNNCT5QY.js → chunk-SZVB53Y3.js} +3 -3
  190. package/dist/cli-bundle/chunks/{chunk-JBW2S2C6.js → chunk-T44FMVRL.js} +613 -157
  191. package/dist/cli-bundle/chunks/chunk-T44FMVRL.js.map +7 -0
  192. package/dist/cli-bundle/chunks/{chunk-GFZB5CLP.js → chunk-T6PPNM7V.js} +4 -4
  193. package/dist/cli-bundle/chunks/{chunk-UE7LK3RE.js → chunk-THAOZG4U.js} +9 -7
  194. package/dist/cli-bundle/chunks/chunk-THAOZG4U.js.map +1 -0
  195. package/dist/cli-bundle/chunks/{chunk-IGBBTPM5.js → chunk-TOBGV45Y.js} +4 -4
  196. package/dist/cli-bundle/chunks/chunk-TOBGV45Y.js.map +1 -0
  197. package/dist/cli-bundle/chunks/{chunk-W6IEJXNC.js → chunk-TVYYO5A7.js} +2 -2
  198. package/dist/cli-bundle/chunks/chunk-TYHJDFYW.js +109 -0
  199. package/dist/cli-bundle/chunks/chunk-TYHJDFYW.js.map +7 -0
  200. package/dist/cli-bundle/chunks/{chunk-DOASIOQR.js → chunk-UQLXSG72.js} +2 -2
  201. package/dist/cli-bundle/chunks/{chunk-IDUTGRDM.js → chunk-URXVHN3L.js} +3 -3
  202. package/dist/cli-bundle/chunks/chunk-URXVHN3L.js.map +1 -0
  203. package/dist/cli-bundle/chunks/{chunk-7CHWLT2J.js → chunk-UVN66B3M.js} +2 -2
  204. package/dist/cli-bundle/chunks/{chunk-Q6JPYR7I.js → chunk-UX6SSO2I.js} +2 -2
  205. package/dist/cli-bundle/chunks/{chunk-JPWUZOMR.js → chunk-UZDQXNUB.js} +75 -20
  206. package/dist/cli-bundle/chunks/chunk-UZDQXNUB.js.map +1 -0
  207. package/dist/cli-bundle/chunks/{chunk-OK7VSX3N.js → chunk-UZLJOEAC.js} +3 -3
  208. package/dist/cli-bundle/chunks/{chunk-4PSJVGRE.js → chunk-VDO2JMD4.js} +7 -7
  209. package/dist/cli-bundle/chunks/{chunk-IRJ6F23W.js → chunk-VQIHNHMJ.js} +2 -2
  210. package/dist/cli-bundle/chunks/{chunk-FQODDTE7.js → chunk-WUVEBQW6.js} +7 -5
  211. package/dist/cli-bundle/chunks/{chunk-FQODDTE7.js.map → chunk-WUVEBQW6.js.map} +1 -1
  212. package/dist/cli-bundle/chunks/{chunk-Q4PSG2GV.js → chunk-WVA4DVNV.js} +5 -5
  213. package/dist/cli-bundle/chunks/{chunk-Q4PSG2GV.js.map → chunk-WVA4DVNV.js.map} +1 -1
  214. package/dist/cli-bundle/chunks/{chunk-4M6RZJXF.js → chunk-WWNL6WMH.js} +3 -3
  215. package/dist/cli-bundle/chunks/chunk-WWNL6WMH.js.map +7 -0
  216. package/dist/cli-bundle/chunks/{chunk-3KPNOZOH.js → chunk-X6K5XTTN.js} +78 -21
  217. package/dist/cli-bundle/chunks/chunk-X6K5XTTN.js.map +7 -0
  218. package/dist/cli-bundle/chunks/{chunk-G33XIMRT.js → chunk-XJF7CDNH.js} +17 -10
  219. package/dist/cli-bundle/chunks/{chunk-G33XIMRT.js.map → chunk-XJF7CDNH.js.map} +1 -1
  220. package/dist/cli-bundle/chunks/{chunk-AR24KW26.js → chunk-YBT7O4KT.js} +17 -112
  221. package/dist/cli-bundle/chunks/chunk-YBT7O4KT.js.map +7 -0
  222. package/dist/cli-bundle/chunks/{chunk-CZA2DXCV.js → chunk-YQQNAKW3.js} +17 -105
  223. package/dist/cli-bundle/chunks/chunk-YQQNAKW3.js.map +1 -0
  224. package/dist/cli-bundle/chunks/{chunk-OKPZDH43.js → chunk-YQWCZ5AC.js} +7 -5
  225. package/dist/cli-bundle/chunks/{chunk-OKPZDH43.js.map → chunk-YQWCZ5AC.js.map} +2 -2
  226. package/dist/cli-bundle/chunks/{chunk-LT5UWU7H.js → chunk-ZOJ3LR7O.js} +2 -2
  227. package/dist/cli-bundle/chunks/{chunk-3HSRP6T2.js → chunk-ZOY5K4D3.js} +2 -2
  228. package/dist/cli-bundle/chunks/{chunk-XXWDEQ6O.js → chunk-ZV2NTVMJ.js} +4 -4
  229. package/dist/cli-bundle/chunks/{chunk-UW6HCMP2.js → chunk-ZYPFOO3L.js} +9 -9
  230. package/dist/cli-bundle/chunks/close-O5QVZ6ET.js +12 -0
  231. package/dist/cli-bundle/chunks/{close-7NWA3GLA.js → close-QEMOYZN3.js} +5 -5
  232. package/dist/cli-bundle/chunks/close-many-SDA426VT.js +24 -0
  233. package/dist/cli-bundle/chunks/{close-many-YALQ7AXS.js → close-many-UTZANOCQ.js} +15 -14
  234. package/dist/cli-bundle/chunks/{comments-SQIQ5WYR.js → comments-LZN6FXXC.js} +7 -7
  235. package/dist/cli-bundle/chunks/comments-VBQ345ND.js +13 -0
  236. package/dist/cli-bundle/chunks/{copy-YDAMENCP.js → copy-DKTSSCK7.js} +4 -4
  237. package/dist/cli-bundle/chunks/copy-M7DDI6LS.js +9 -0
  238. package/dist/cli-bundle/chunks/{create-JSL6CXU3.js → create-GG4RBCGC.js} +11 -11
  239. package/dist/cli-bundle/chunks/create-JBC5KUW6.js +29 -0
  240. package/dist/cli-bundle/chunks/{delete-IGVOZEU2.js → delete-LCS3VPDH.js} +4 -4
  241. package/dist/cli-bundle/chunks/delete-MD7YXQLH.js +10 -0
  242. package/dist/cli-bundle/chunks/{deps-BQAXUQAK.js → deps-DELOO4TL.js} +6 -6
  243. package/dist/cli-bundle/chunks/{deps-CBPPSS6J.js → deps-FI4O6NQS.js} +6 -6
  244. package/dist/cli-bundle/chunks/docs-2UYBP5D6.js +14 -0
  245. package/dist/cli-bundle/chunks/{docs-NS2AZWCN.js → docs-6Z2MP526.js} +6 -6
  246. package/dist/cli-bundle/chunks/{files-XUUBQ76I.js → files-HEUGSJZL.js} +6 -6
  247. package/dist/cli-bundle/chunks/{files-PVWEPT5J.js → files-HKEAN5MA.js} +6 -6
  248. package/dist/cli-bundle/chunks/{focus-DHBHKK3E.js → focus-7SOUT5PZ.js} +5 -5
  249. package/dist/cli-bundle/chunks/focus-DRQ6FQH6.js +10 -0
  250. package/dist/cli-bundle/chunks/history-compact-65YVN5DB.js +17 -0
  251. package/dist/cli-bundle/chunks/{history-compact-3TNPYVFG.js → history-compact-7NDVP3PT.js} +7 -6
  252. package/dist/cli-bundle/chunks/{history-redact-KKFDICCF.js → history-redact-7YBL4XSG.js} +5 -4
  253. package/dist/cli-bundle/chunks/{history-redact-ELRL73XN.js → history-redact-IZGNJBU4.js} +5 -4
  254. package/dist/cli-bundle/chunks/{history-repair-J7WKZFAG.js → history-repair-7M4PYQUH.js} +8 -6
  255. package/dist/cli-bundle/chunks/history-repair-GNGETJLI.js +18 -0
  256. package/dist/cli-bundle/chunks/learnings-3YXDRWFT.js +13 -0
  257. package/dist/cli-bundle/chunks/{learnings-X4D6JCCG.js → learnings-ALC6IMNL.js} +7 -7
  258. package/dist/cli-bundle/chunks/notes-7JMLQ447.js +13 -0
  259. package/dist/cli-bundle/chunks/{notes-UQC6VS6N.js → notes-JFCLTC5C.js} +7 -7
  260. package/dist/cli-bundle/chunks/plan-KOIPWVOZ.js +26 -0
  261. package/dist/cli-bundle/chunks/{plan-5GKRBJJO.js → plan-T3XB3WTK.js} +12 -12
  262. package/dist/cli-bundle/chunks/{profile-5PQAPCLF.js → profile-OILJHKUW.js} +12 -11
  263. package/dist/cli-bundle/chunks/{profile-CW4BD3FO.js → profile-RJXA7PGS.js} +12 -11
  264. package/dist/cli-bundle/chunks/{register-list-query-PHIPDFP2.js → register-list-query-CFVG75P3.js} +30 -21
  265. package/dist/cli-bundle/chunks/{register-list-query-PHIPDFP2.js.map → register-list-query-CFVG75P3.js.map} +1 -1
  266. package/dist/cli-bundle/chunks/{register-list-query-HTDQE6VI.js → register-list-query-E7UVY4TN.js} +29 -20
  267. package/dist/cli-bundle/chunks/{register-list-query-HTDQE6VI.js.map → register-list-query-E7UVY4TN.js.map} +2 -2
  268. package/dist/cli-bundle/chunks/{register-mutation-BLEWM5I6.js → register-mutation-4VJTXBZW.js} +86 -32
  269. package/dist/cli-bundle/chunks/register-mutation-4VJTXBZW.js.map +7 -0
  270. package/dist/cli-bundle/chunks/{register-mutation-OTYHR7J6.js → register-mutation-IQ55E25C.js} +78 -33
  271. package/dist/cli-bundle/chunks/register-mutation-IQ55E25C.js.map +1 -0
  272. package/dist/cli-bundle/chunks/{register-operations-AMCUFYEW.js → register-operations-AR7RMX4W.js} +42 -38
  273. package/dist/cli-bundle/chunks/register-operations-AR7RMX4W.js.map +1 -0
  274. package/dist/cli-bundle/chunks/{register-operations-MRLHOZYR.js → register-operations-NOLZGORC.js} +41 -37
  275. package/dist/cli-bundle/chunks/register-operations-NOLZGORC.js.map +7 -0
  276. package/dist/cli-bundle/chunks/{register-setup-ZVKTDL4G.js → register-setup-BB77VUEE.js} +17 -16
  277. package/dist/cli-bundle/chunks/{register-setup-ZVKTDL4G.js.map → register-setup-BB77VUEE.js.map} +1 -1
  278. package/dist/cli-bundle/chunks/{register-setup-N2FOSWAG.js → register-setup-EYZ7VTPZ.js} +15 -14
  279. package/dist/cli-bundle/chunks/{register-setup-N2FOSWAG.js.map → register-setup-EYZ7VTPZ.js.map} +1 -1
  280. package/dist/cli-bundle/chunks/restore-L6IAGOD7.js +15 -0
  281. package/dist/cli-bundle/chunks/{restore-HEQAG6EK.js → restore-ZH65GZFB.js} +7 -6
  282. package/dist/cli-bundle/chunks/{schema-Q5DAWJ2S.js → schema-4ERWM5QJ.js} +7 -6
  283. package/dist/cli-bundle/chunks/{schema-MAXAIHEC.js → schema-55DL3Q52.js} +7 -6
  284. package/dist/cli-bundle/chunks/{update-DWFXXJKP.js → update-FW6FKDOP.js} +15 -15
  285. package/dist/cli-bundle/chunks/update-TJHSPRPT.js +23 -0
  286. package/dist/cli-bundle/chunks/update-many-NNALYQCN.js +35 -0
  287. package/dist/cli-bundle/chunks/update-many-PWXX5WHO.js +39 -0
  288. package/dist/cli-bundle/main.js +62 -59
  289. package/dist/cli-bundle/main.js.map +1 -1
  290. package/dist/cli-bundle/sdk-runtime.js +62 -59
  291. package/dist/cli-bundle/sdk-testing.js +8 -8
  292. package/dist/cli-bundle/sdk.js +327 -57
  293. package/dist/cli-bundle/sdk.js.map +4 -4
  294. package/dist/core/config/nested-settings.d.ts +2 -0
  295. package/dist/core/config/nested-settings.js +18 -2
  296. package/dist/core/config/nested-settings.js.map +1 -1
  297. package/dist/core/diagnostics/remediation.js +38 -2
  298. package/dist/core/diagnostics/remediation.js.map +1 -1
  299. package/dist/core/extensions/extension-types.d.ts +1 -1
  300. package/dist/core/extensions/extension-types.js +2 -2
  301. package/dist/core/extensions/extension-types.js.map +1 -1
  302. package/dist/core/item/id.d.ts +19 -2
  303. package/dist/core/item/id.js +27 -6
  304. package/dist/core/item/id.js.map +1 -1
  305. package/dist/core/item/parse.d.ts +7 -0
  306. package/dist/core/item/parse.js +48 -2
  307. package/dist/core/item/parse.js.map +1 -1
  308. package/dist/core/schema/item-types-file.d.ts +2 -2
  309. package/dist/core/schema/item-types-file.js +2 -2
  310. package/dist/core/schema/item-types-file.js.map +1 -1
  311. package/dist/core/schema/runtime-schema.d.ts +3 -3
  312. package/dist/core/schema/runtime-schema.js +2 -2
  313. package/dist/core/schema/runtime-schema.js.map +1 -1
  314. package/dist/core/schema/type-workflows.d.ts +2 -2
  315. package/dist/core/schema/type-workflows.js +2 -2
  316. package/dist/core/schema/type-workflows.js.map +1 -1
  317. package/dist/core/shared/constants.js +5 -2
  318. package/dist/core/shared/constants.js.map +1 -1
  319. package/dist/core/store/settings-validator.d.ts +4 -0
  320. package/dist/core/store/settings-validator.js +8 -2
  321. package/dist/core/store/settings-validator.js.map +1 -1
  322. package/dist/core/store/settings.js +8 -2
  323. package/dist/core/store/settings.js.map +1 -1
  324. package/dist/sdk/annotations.js +24 -2
  325. package/dist/sdk/annotations.js.map +1 -1
  326. package/dist/sdk/cli-bootstrap.d.ts +1 -1
  327. package/dist/sdk/cli-bootstrap.js +3 -3
  328. package/dist/sdk/cli-bootstrap.js.map +1 -1
  329. package/dist/sdk/cli-contracts/commander-mutation-options.js +22 -2
  330. package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
  331. package/dist/sdk/cli-contracts/enum-contracts.d.ts +1 -1
  332. package/dist/sdk/cli-contracts/enum-contracts.js +3 -2
  333. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  334. package/dist/sdk/cli-contracts/flag-contracts.d.ts +2 -0
  335. package/dist/sdk/cli-contracts/flag-contracts.js +17 -2
  336. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  337. package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +512 -0
  338. package/dist/sdk/cli-contracts/tool-option-contracts.js +21 -11
  339. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  340. package/dist/sdk/cli-contracts/tool-parameter-tables.js +13 -3
  341. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  342. package/dist/sdk/cli-contracts/tool-schema.d.ts +2 -0
  343. package/dist/sdk/cli-contracts/tool-schema.js +14 -10
  344. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  345. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +69 -0
  346. package/dist/sdk/cli-contracts/typed-action-inputs.js +5 -0
  347. package/dist/sdk/cli-contracts/typed-action-inputs.js.map +1 -0
  348. package/dist/sdk/cli-contracts.d.ts +4 -3
  349. package/dist/sdk/cli-contracts.js +5 -5
  350. package/dist/sdk/cli-contracts.js.map +1 -1
  351. package/dist/sdk/extension/describe.d.ts +1 -1
  352. package/dist/sdk/extension/describe.js +2 -2
  353. package/dist/sdk/extension/describe.js.map +1 -1
  354. package/dist/sdk/extension/install-runtime.js +5 -3
  355. package/dist/sdk/extension/install-runtime.js.map +1 -1
  356. package/dist/sdk/extension.d.ts +2 -2
  357. package/dist/sdk/extension.js +2 -2
  358. package/dist/sdk/extension.js.map +1 -1
  359. package/dist/sdk/governance/gc.d.ts +14 -1
  360. package/dist/sdk/governance/gc.js +38 -2
  361. package/dist/sdk/governance/gc.js.map +1 -1
  362. package/dist/sdk/governance/storage-integrity.d.ts +84 -0
  363. package/dist/sdk/governance/storage-integrity.js +240 -0
  364. package/dist/sdk/governance/storage-integrity.js.map +1 -0
  365. package/dist/sdk/governance/validate.d.ts +3 -1
  366. package/dist/sdk/governance/validate.js +56 -2
  367. package/dist/sdk/governance/validate.js.map +1 -1
  368. package/dist/sdk/history-read.d.ts +1 -1
  369. package/dist/sdk/history-read.js +2 -2
  370. package/dist/sdk/history-read.js.map +1 -1
  371. package/dist/sdk/history-repair.d.ts +36 -0
  372. package/dist/sdk/history-repair.js +69 -4
  373. package/dist/sdk/history-repair.js.map +1 -1
  374. package/dist/sdk/index.d.ts +5 -2
  375. package/dist/sdk/index.js +5 -2
  376. package/dist/sdk/index.js.map +1 -1
  377. package/dist/sdk/init.js +3 -3
  378. package/dist/sdk/init.js.map +1 -1
  379. package/dist/sdk/item-transaction.d.ts +131 -0
  380. package/dist/sdk/item-transaction.js +280 -0
  381. package/dist/sdk/item-transaction.js.map +1 -0
  382. package/dist/sdk/merge/driver.d.ts +75 -0
  383. package/dist/sdk/merge/driver.js +166 -0
  384. package/dist/sdk/merge/driver.js.map +1 -0
  385. package/dist/sdk/merge/index.d.ts +11 -0
  386. package/dist/sdk/merge/index.js +15 -0
  387. package/dist/sdk/merge/index.js.map +1 -0
  388. package/dist/sdk/merge/install.d.ts +90 -0
  389. package/dist/sdk/merge/install.js +318 -0
  390. package/dist/sdk/merge/install.js.map +1 -0
  391. package/dist/sdk/merge/three-way.d.ts +126 -0
  392. package/dist/sdk/merge/three-way.js +545 -0
  393. package/dist/sdk/merge/three-way.js.map +1 -0
  394. package/dist/sdk/query/list.d.ts +19 -2
  395. package/dist/sdk/query/list.js +5 -2
  396. package/dist/sdk/query/list.js.map +1 -1
  397. package/dist/sdk/runtime.d.ts +17 -14
  398. package/dist/sdk/runtime.js +5 -5
  399. package/dist/sdk/runtime.js.map +1 -1
  400. package/dist/sdk/schema.d.ts +2 -2
  401. package/dist/sdk/schema.js +29 -2
  402. package/dist/sdk/schema.js.map +1 -1
  403. package/dist/sdk/stats.d.ts +1 -1
  404. package/dist/sdk/stats.js +2 -2
  405. package/dist/sdk/stats.js.map +1 -1
  406. package/dist/sdk/workspace-transaction-gc.d.ts +46 -0
  407. package/dist/sdk/workspace-transaction-gc.js +155 -0
  408. package/dist/sdk/workspace-transaction-gc.js.map +1 -0
  409. package/dist/sdk/workspace.d.ts +28 -4
  410. package/dist/sdk/workspace.js +61 -15
  411. package/dist/sdk/workspace.js.map +1 -1
  412. package/dist/types.d.ts +11 -7
  413. package/dist/types.js +2 -2
  414. package/dist/types.js.map +1 -1
  415. package/docs/AGENT_GUIDE.md +58 -47
  416. package/docs/COMMANDS.md +7 -0
  417. package/docs/CONFIGURATION.md +2 -0
  418. package/docs/MERGE_SAFETY.md +99 -0
  419. package/docs/README.md +1 -0
  420. package/docs/SDK.md +56 -0
  421. package/marketplace.json +2 -2
  422. package/package.json +3 -2
  423. package/packages/pm-beads/package.json +1 -1
  424. package/packages/pm-calendar/package.json +1 -1
  425. package/packages/pm-command-kit/package.json +1 -1
  426. package/packages/pm-governance-audit/package.json +1 -1
  427. package/packages/pm-guide-shell/package.json +1 -1
  428. package/packages/pm-kanban/package.json +1 -1
  429. package/packages/pm-lifecycle-hooks/package.json +1 -1
  430. package/packages/pm-linked-test-adapters/package.json +1 -1
  431. package/packages/pm-search-advanced/package.json +1 -1
  432. package/packages/pm-templates/package.json +1 -1
  433. package/packages/pm-todos/package.json +1 -1
  434. package/packages/pm-vcs/package.json +1 -1
  435. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  436. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  437. package/dist/cli-bundle/chunks/append-XUYF7NON.js +0 -11
  438. package/dist/cli-bundle/chunks/chunk-2XPDCXK5.js.map +0 -1
  439. package/dist/cli-bundle/chunks/chunk-3EZZTFL2.js.map +0 -7
  440. package/dist/cli-bundle/chunks/chunk-3KPNOZOH.js.map +0 -7
  441. package/dist/cli-bundle/chunks/chunk-46Z6FAVP.js.map +0 -1
  442. package/dist/cli-bundle/chunks/chunk-4M6RZJXF.js.map +0 -7
  443. package/dist/cli-bundle/chunks/chunk-6V4T4RD3.js.map +0 -1
  444. package/dist/cli-bundle/chunks/chunk-A3GAQLBH.js.map +0 -7
  445. package/dist/cli-bundle/chunks/chunk-A4FVWFZY.js.map +0 -7
  446. package/dist/cli-bundle/chunks/chunk-A5EQPNV7.js.map +0 -7
  447. package/dist/cli-bundle/chunks/chunk-AR24KW26.js.map +0 -7
  448. package/dist/cli-bundle/chunks/chunk-BBGR4FKQ.js.map +0 -1
  449. package/dist/cli-bundle/chunks/chunk-BDC4TW4B.js.map +0 -1
  450. package/dist/cli-bundle/chunks/chunk-BZKE2O5V.js.map +0 -1
  451. package/dist/cli-bundle/chunks/chunk-CZA2DXCV.js.map +0 -1
  452. package/dist/cli-bundle/chunks/chunk-D35WYXWC.js.map +0 -1
  453. package/dist/cli-bundle/chunks/chunk-DJAGYYCQ.js.map +0 -1
  454. package/dist/cli-bundle/chunks/chunk-EEECAV5M.js.map +0 -7
  455. package/dist/cli-bundle/chunks/chunk-H3YKUVDR.js.map +0 -1
  456. package/dist/cli-bundle/chunks/chunk-IDUTGRDM.js.map +0 -1
  457. package/dist/cli-bundle/chunks/chunk-IGBBTPM5.js.map +0 -1
  458. package/dist/cli-bundle/chunks/chunk-JBW2S2C6.js.map +0 -7
  459. package/dist/cli-bundle/chunks/chunk-JPWUZOMR.js.map +0 -1
  460. package/dist/cli-bundle/chunks/chunk-KAE727L2.js.map +0 -7
  461. package/dist/cli-bundle/chunks/chunk-MI3346YW.js.map +0 -1
  462. package/dist/cli-bundle/chunks/chunk-MQOSMBWV.js.map +0 -7
  463. package/dist/cli-bundle/chunks/chunk-MRXAHR4B.js.map +0 -1
  464. package/dist/cli-bundle/chunks/chunk-N2TEEOXJ.js.map +0 -7
  465. package/dist/cli-bundle/chunks/chunk-ODEIDKGW.js.map +0 -1
  466. package/dist/cli-bundle/chunks/chunk-P24ZU5QV.js.map +0 -7
  467. package/dist/cli-bundle/chunks/chunk-Q3K5XPAQ.js.map +0 -7
  468. package/dist/cli-bundle/chunks/chunk-QFG4MB7P.js.map +0 -1
  469. package/dist/cli-bundle/chunks/chunk-RLLOZAM2.js.map +0 -7
  470. package/dist/cli-bundle/chunks/chunk-RWAIRGBC.js.map +0 -7
  471. package/dist/cli-bundle/chunks/chunk-SBW7EQC4.js.map +0 -1
  472. package/dist/cli-bundle/chunks/chunk-SVAWG7EE.js.map +0 -1
  473. package/dist/cli-bundle/chunks/chunk-UE7LK3RE.js.map +0 -1
  474. package/dist/cli-bundle/chunks/chunk-VA3H7VVC.js.map +0 -1
  475. package/dist/cli-bundle/chunks/chunk-WCBB6VI3.js.map +0 -7
  476. package/dist/cli-bundle/chunks/chunk-Y2VSGFT4.js.map +0 -1
  477. package/dist/cli-bundle/chunks/chunk-YG56M3NE.js.map +0 -1
  478. package/dist/cli-bundle/chunks/chunk-ZF52NVRT.js.map +0 -7
  479. package/dist/cli-bundle/chunks/chunk-ZUCBPXNA.js.map +0 -7
  480. package/dist/cli-bundle/chunks/close-ZZCDDWJT.js +0 -12
  481. package/dist/cli-bundle/chunks/close-many-QCZHFCON.js +0 -23
  482. package/dist/cli-bundle/chunks/comments-FMQNYPSZ.js +0 -13
  483. package/dist/cli-bundle/chunks/copy-GI3RCVZP.js +0 -9
  484. package/dist/cli-bundle/chunks/create-LXMLYJNM.js +0 -29
  485. package/dist/cli-bundle/chunks/delete-5DFAXJNI.js +0 -10
  486. package/dist/cli-bundle/chunks/docs-KCWPLQOV.js +0 -14
  487. package/dist/cli-bundle/chunks/focus-3EJVFI3D.js +0 -10
  488. package/dist/cli-bundle/chunks/history-compact-JHYVDYLW.js +0 -16
  489. package/dist/cli-bundle/chunks/history-repair-REMI7DDI.js +0 -16
  490. package/dist/cli-bundle/chunks/learnings-O6V5WDCV.js +0 -13
  491. package/dist/cli-bundle/chunks/notes-ZSZREWZA.js +0 -13
  492. package/dist/cli-bundle/chunks/plan-EZW2YDDY.js +0 -26
  493. package/dist/cli-bundle/chunks/register-mutation-BLEWM5I6.js.map +0 -7
  494. package/dist/cli-bundle/chunks/register-mutation-OTYHR7J6.js.map +0 -1
  495. package/dist/cli-bundle/chunks/register-operations-AMCUFYEW.js.map +0 -1
  496. package/dist/cli-bundle/chunks/register-operations-MRLHOZYR.js.map +0 -7
  497. package/dist/cli-bundle/chunks/restore-A55MLFAI.js +0 -14
  498. package/dist/cli-bundle/chunks/update-5DTSCWVF.js +0 -23
  499. package/dist/cli-bundle/chunks/update-many-6T4ZLZS7.js +0 -34
  500. package/dist/cli-bundle/chunks/update-many-MYRK6VBJ.js +0 -38
  501. /package/dist/cli-bundle/chunks/{append-MBXHNWSX.js.map → append-E6V54WOQ.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{append-XUYF7NON.js.map → append-NNJ3EFIT.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{chunk-YGEA4CLH.js.map → chunk-3MCTMJXI.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{chunk-N7FCFJ76.js.map → chunk-3P7UJQOX.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{chunk-7B7IHMLH.js.map → chunk-3VY6MIEO.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{chunk-5S6IZXK7.js.map → chunk-4U4Z6AHI.js.map} +0 -0
  507. /package/dist/cli-bundle/chunks/{chunk-UOIFZ66L.js.map → chunk-4XGJLADW.js.map} +0 -0
  508. /package/dist/cli-bundle/chunks/{chunk-SUNZKVAH.js.map → chunk-5IZJWSDB.js.map} +0 -0
  509. /package/dist/cli-bundle/chunks/{chunk-QQ77W23U.js.map → chunk-5NTE36LD.js.map} +0 -0
  510. /package/dist/cli-bundle/chunks/{chunk-KGPLSHJD.js.map → chunk-6C2ZZX5Z.js.map} +0 -0
  511. /package/dist/cli-bundle/chunks/{chunk-Q5NHJ6RO.js.map → chunk-6JUTHVQS.js.map} +0 -0
  512. /package/dist/cli-bundle/chunks/{chunk-NTS2RKHN.js.map → chunk-6VIJ7UA5.js.map} +0 -0
  513. /package/dist/cli-bundle/chunks/{chunk-XVB6BATY.js.map → chunk-72LQ4TKV.js.map} +0 -0
  514. /package/dist/cli-bundle/chunks/{chunk-KZ5AC6B5.js.map → chunk-7WCE6Y64.js.map} +0 -0
  515. /package/dist/cli-bundle/chunks/{chunk-VQOG2ETB.js.map → chunk-AF2CCM5U.js.map} +0 -0
  516. /package/dist/cli-bundle/chunks/{chunk-EAV3P54W.js.map → chunk-DAQ45GCS.js.map} +0 -0
  517. /package/dist/cli-bundle/chunks/{chunk-RX53WHFI.js.map → chunk-EJDGV4GR.js.map} +0 -0
  518. /package/dist/cli-bundle/chunks/{chunk-IXG5CMBR.js.map → chunk-FDHPAVVB.js.map} +0 -0
  519. /package/dist/cli-bundle/chunks/{chunk-V4QHAMI5.js.map → chunk-GROYI4RB.js.map} +0 -0
  520. /package/dist/cli-bundle/chunks/{chunk-77XFQRTD.js.map → chunk-GSJSM5BJ.js.map} +0 -0
  521. /package/dist/cli-bundle/chunks/{chunk-QYGK2XQ3.js.map → chunk-GTLCVJOE.js.map} +0 -0
  522. /package/dist/cli-bundle/chunks/{chunk-VSQE43NO.js.map → chunk-GV2262OF.js.map} +0 -0
  523. /package/dist/cli-bundle/chunks/{chunk-STBCBDKF.js.map → chunk-HCEBZNC3.js.map} +0 -0
  524. /package/dist/cli-bundle/chunks/{chunk-U6RYD446.js.map → chunk-HRW7GF6T.js.map} +0 -0
  525. /package/dist/cli-bundle/chunks/{chunk-XDWXPG2E.js.map → chunk-IAQE32BI.js.map} +0 -0
  526. /package/dist/cli-bundle/chunks/{chunk-66SRNEBK.js.map → chunk-IJNK6WW2.js.map} +0 -0
  527. /package/dist/cli-bundle/chunks/{chunk-AGEBQRBG.js.map → chunk-JAPE62Y5.js.map} +0 -0
  528. /package/dist/cli-bundle/chunks/{chunk-UWAQI3B7.js.map → chunk-JGUKMMRS.js.map} +0 -0
  529. /package/dist/cli-bundle/chunks/{chunk-UU6EP25G.js.map → chunk-JH2ZSLO3.js.map} +0 -0
  530. /package/dist/cli-bundle/chunks/{chunk-GRDK25BN.js.map → chunk-JHJSFOAM.js.map} +0 -0
  531. /package/dist/cli-bundle/chunks/{chunk-FQO5THHM.js.map → chunk-JM6YAXTR.js.map} +0 -0
  532. /package/dist/cli-bundle/chunks/{chunk-E7KBMWEF.js.map → chunk-JSLT7WVE.js.map} +0 -0
  533. /package/dist/cli-bundle/chunks/{chunk-FIUTBFC6.js.map → chunk-K4CI6Y45.js.map} +0 -0
  534. /package/dist/cli-bundle/chunks/{chunk-IEMXESIS.js.map → chunk-KSPWRNVP.js.map} +0 -0
  535. /package/dist/cli-bundle/chunks/{chunk-BFJP4VYC.js.map → chunk-L7BH7IWU.js.map} +0 -0
  536. /package/dist/cli-bundle/chunks/{chunk-2UCG5H6B.js.map → chunk-LPEYZRUR.js.map} +0 -0
  537. /package/dist/cli-bundle/chunks/{chunk-IR3GOO6E.js.map → chunk-NHT3F4WZ.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{chunk-6BNV3G6C.js.map → chunk-NLR32VFS.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{chunk-EI3UIMZM.js.map → chunk-OWXOPDHD.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{chunk-AQUNTB7G.js.map → chunk-PEQGTJ5Q.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{chunk-T6MOTLOJ.js.map → chunk-QJKL5PHS.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{chunk-XKVHL3MB.js.map → chunk-QWRVBJ4D.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{chunk-VFA5EIEN.js.map → chunk-R7QV7ICM.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{chunk-K2L6FZBX.js.map → chunk-RJO3YAFM.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{chunk-SGJB6PXA.js.map → chunk-SF3DT5HJ.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{chunk-UNNCT5QY.js.map → chunk-SZVB53Y3.js.map} +0 -0
  547. /package/dist/cli-bundle/chunks/{chunk-GFZB5CLP.js.map → chunk-T6PPNM7V.js.map} +0 -0
  548. /package/dist/cli-bundle/chunks/{chunk-W6IEJXNC.js.map → chunk-TVYYO5A7.js.map} +0 -0
  549. /package/dist/cli-bundle/chunks/{chunk-DOASIOQR.js.map → chunk-UQLXSG72.js.map} +0 -0
  550. /package/dist/cli-bundle/chunks/{chunk-7CHWLT2J.js.map → chunk-UVN66B3M.js.map} +0 -0
  551. /package/dist/cli-bundle/chunks/{chunk-Q6JPYR7I.js.map → chunk-UX6SSO2I.js.map} +0 -0
  552. /package/dist/cli-bundle/chunks/{chunk-OK7VSX3N.js.map → chunk-UZLJOEAC.js.map} +0 -0
  553. /package/dist/cli-bundle/chunks/{chunk-4PSJVGRE.js.map → chunk-VDO2JMD4.js.map} +0 -0
  554. /package/dist/cli-bundle/chunks/{chunk-IRJ6F23W.js.map → chunk-VQIHNHMJ.js.map} +0 -0
  555. /package/dist/cli-bundle/chunks/{chunk-LT5UWU7H.js.map → chunk-ZOJ3LR7O.js.map} +0 -0
  556. /package/dist/cli-bundle/chunks/{chunk-3HSRP6T2.js.map → chunk-ZOY5K4D3.js.map} +0 -0
  557. /package/dist/cli-bundle/chunks/{chunk-XXWDEQ6O.js.map → chunk-ZV2NTVMJ.js.map} +0 -0
  558. /package/dist/cli-bundle/chunks/{chunk-UW6HCMP2.js.map → chunk-ZYPFOO3L.js.map} +0 -0
  559. /package/dist/cli-bundle/chunks/{close-ZZCDDWJT.js.map → close-O5QVZ6ET.js.map} +0 -0
  560. /package/dist/cli-bundle/chunks/{close-7NWA3GLA.js.map → close-QEMOYZN3.js.map} +0 -0
  561. /package/dist/cli-bundle/chunks/{close-many-QCZHFCON.js.map → close-many-SDA426VT.js.map} +0 -0
  562. /package/dist/cli-bundle/chunks/{close-many-YALQ7AXS.js.map → close-many-UTZANOCQ.js.map} +0 -0
  563. /package/dist/cli-bundle/chunks/{comments-SQIQ5WYR.js.map → comments-LZN6FXXC.js.map} +0 -0
  564. /package/dist/cli-bundle/chunks/{comments-FMQNYPSZ.js.map → comments-VBQ345ND.js.map} +0 -0
  565. /package/dist/cli-bundle/chunks/{copy-YDAMENCP.js.map → copy-DKTSSCK7.js.map} +0 -0
  566. /package/dist/cli-bundle/chunks/{copy-GI3RCVZP.js.map → copy-M7DDI6LS.js.map} +0 -0
  567. /package/dist/cli-bundle/chunks/{create-JSL6CXU3.js.map → create-GG4RBCGC.js.map} +0 -0
  568. /package/dist/cli-bundle/chunks/{create-LXMLYJNM.js.map → create-JBC5KUW6.js.map} +0 -0
  569. /package/dist/cli-bundle/chunks/{delete-IGVOZEU2.js.map → delete-LCS3VPDH.js.map} +0 -0
  570. /package/dist/cli-bundle/chunks/{delete-5DFAXJNI.js.map → delete-MD7YXQLH.js.map} +0 -0
  571. /package/dist/cli-bundle/chunks/{deps-BQAXUQAK.js.map → deps-DELOO4TL.js.map} +0 -0
  572. /package/dist/cli-bundle/chunks/{deps-CBPPSS6J.js.map → deps-FI4O6NQS.js.map} +0 -0
  573. /package/dist/cli-bundle/chunks/{docs-KCWPLQOV.js.map → docs-2UYBP5D6.js.map} +0 -0
  574. /package/dist/cli-bundle/chunks/{docs-NS2AZWCN.js.map → docs-6Z2MP526.js.map} +0 -0
  575. /package/dist/cli-bundle/chunks/{files-XUUBQ76I.js.map → files-HEUGSJZL.js.map} +0 -0
  576. /package/dist/cli-bundle/chunks/{files-PVWEPT5J.js.map → files-HKEAN5MA.js.map} +0 -0
  577. /package/dist/cli-bundle/chunks/{focus-DHBHKK3E.js.map → focus-7SOUT5PZ.js.map} +0 -0
  578. /package/dist/cli-bundle/chunks/{focus-3EJVFI3D.js.map → focus-DRQ6FQH6.js.map} +0 -0
  579. /package/dist/cli-bundle/chunks/{history-compact-JHYVDYLW.js.map → history-compact-65YVN5DB.js.map} +0 -0
  580. /package/dist/cli-bundle/chunks/{history-compact-3TNPYVFG.js.map → history-compact-7NDVP3PT.js.map} +0 -0
  581. /package/dist/cli-bundle/chunks/{history-redact-KKFDICCF.js.map → history-redact-7YBL4XSG.js.map} +0 -0
  582. /package/dist/cli-bundle/chunks/{history-redact-ELRL73XN.js.map → history-redact-IZGNJBU4.js.map} +0 -0
  583. /package/dist/cli-bundle/chunks/{history-repair-J7WKZFAG.js.map → history-repair-7M4PYQUH.js.map} +0 -0
  584. /package/dist/cli-bundle/chunks/{history-repair-REMI7DDI.js.map → history-repair-GNGETJLI.js.map} +0 -0
  585. /package/dist/cli-bundle/chunks/{learnings-O6V5WDCV.js.map → learnings-3YXDRWFT.js.map} +0 -0
  586. /package/dist/cli-bundle/chunks/{learnings-X4D6JCCG.js.map → learnings-ALC6IMNL.js.map} +0 -0
  587. /package/dist/cli-bundle/chunks/{notes-ZSZREWZA.js.map → notes-7JMLQ447.js.map} +0 -0
  588. /package/dist/cli-bundle/chunks/{notes-UQC6VS6N.js.map → notes-JFCLTC5C.js.map} +0 -0
  589. /package/dist/cli-bundle/chunks/{plan-EZW2YDDY.js.map → plan-KOIPWVOZ.js.map} +0 -0
  590. /package/dist/cli-bundle/chunks/{plan-5GKRBJJO.js.map → plan-T3XB3WTK.js.map} +0 -0
  591. /package/dist/cli-bundle/chunks/{profile-5PQAPCLF.js.map → profile-OILJHKUW.js.map} +0 -0
  592. /package/dist/cli-bundle/chunks/{profile-CW4BD3FO.js.map → profile-RJXA7PGS.js.map} +0 -0
  593. /package/dist/cli-bundle/chunks/{restore-A55MLFAI.js.map → restore-L6IAGOD7.js.map} +0 -0
  594. /package/dist/cli-bundle/chunks/{restore-HEQAG6EK.js.map → restore-ZH65GZFB.js.map} +0 -0
  595. /package/dist/cli-bundle/chunks/{schema-Q5DAWJ2S.js.map → schema-4ERWM5QJ.js.map} +0 -0
  596. /package/dist/cli-bundle/chunks/{schema-MAXAIHEC.js.map → schema-55DL3Q52.js.map} +0 -0
  597. /package/dist/cli-bundle/chunks/{update-DWFXXJKP.js.map → update-FW6FKDOP.js.map} +0 -0
  598. /package/dist/cli-bundle/chunks/{update-5DTSCWVF.js.map → update-TJHSPRPT.js.map} +0 -0
  599. /package/dist/cli-bundle/chunks/{update-many-6T4ZLZS7.js.map → update-many-NNALYQCN.js.map} +0 -0
  600. /package/dist/cli-bundle/chunks/{update-many-MYRK6VBJ.js.map → update-many-PWXX5WHO.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e1ef249b-2222-54e0-a21a-0d0820e27950")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="edb69c5e-c206-57cb-96cf-c239f3ba457a")}catch(e){}}();
3
3
  import { EXIT_CODE } from "../core/shared/constants.js";
4
4
  import { PmCliError } from "../core/shared/errors.js";
5
5
  import { renderRowsAsCsv, renderRowsAsTable } from "../core/output/tabular.js";
@@ -308,6 +308,10 @@ async function runHistoryAction(id, options, command) {
308
308
  throw new PmCliError("History projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
309
309
  }
310
310
  const field = typeof options.field === "string" ? options.field : undefined;
311
+ const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
312
+ if (strictExit && !options.verify) {
313
+ throw new PmCliError("--strict-exit requires --verify (it gates on the verification result).", EXIT_CODE.USAGE);
314
+ }
311
315
  const result = await runHistory(id, {
312
316
  limit: typeof options.limit === "string" ? options.limit : undefined,
313
317
  compact: options.full === true ? false : true,
@@ -316,6 +320,12 @@ async function runHistoryAction(id, options, command) {
316
320
  verify: Boolean(options.verify),
317
321
  }, globalOptions);
318
322
  printResult(result, resolveReadCommandOutputFormat("History", options.format, globalOptions));
323
+ // GH-604: without --strict-exit a broken chain still exits 0 (read-only
324
+ // inspection default); with it, verification.ok:false becomes a nonzero exit
325
+ // so CI and merge hooks can gate on `pm history <id> --verify --strict-exit`.
326
+ if (strictExit && result.verification && !result.verification.ok) {
327
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
328
+ }
319
329
  if (globalOptions.profile) {
320
330
  printError(`profile:command=history took_ms=${Date.now() - startedAt}`);
321
331
  }
@@ -586,6 +596,8 @@ export function registerListQueryCommands(program, options) {
586
596
  .option("--diff", "Include per-entry field-level before/after value diffs computed by replaying the history chain")
587
597
  .option("--field <name>", "With --diff, show only entries that changed this field (implies --diff)")
588
598
  .option("--verify", "Verify hash chain and replay integrity for the full history stream")
599
+ .option("--strict-exit", "With --verify, exit nonzero when verification fails (merge-safety gate parity with pm validate)")
600
+ .option("--fail-on-warn", "Alias for --strict-exit")
589
601
  .option("--format <value>", "History output format override: json|toon")
590
602
  .description("Show item history entries.")
591
603
  .action(runHistoryAction);
@@ -630,4 +642,4 @@ export const _testOnlyRegisterListQuery = {
630
642
  parseListFormat,
631
643
  };
632
644
  //# sourceMappingURL=register-list-query.js.map
633
- //# debugId=e1ef249b-2222-54e0-a21a-0d0820e27950
645
+ //# debugId=edb69c5e-c206-57cb-96cf-c239f3ba457a
@@ -1 +1 @@
1
- {"version":3,"file":"register-list-query.js","sources":["cli/register-list-query.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/register-list-query\n *\n * Provides CLI runtime support for Register List Query.\n */\nimport type { Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { renderRowsAsCsv, renderRowsAsTable } from \"../core/output/tabular.js\";\nimport { runActivity } from \"./commands/activity.js\";\nimport { runAggregate } from \"./commands/aggregate.js\";\nimport {\n renderContextMarkdown,\n runContext,\n resolveContextOutputFormat,\n} from \"./commands/context.js\";\nimport { runEval } from \"./commands/eval.js\";\nimport { runGet } from \"./commands/get.js\";\nimport { runGraph } from \"./commands/graph.js\";\nimport { runHistory } from \"./commands/history.js\";\nimport { runList } from \"./commands/list.js\";\nimport {\n renderNextMarkdown,\n runNext,\n resolveNextOutputFormat,\n} from \"./commands/next.js\";\nimport { runSearch } from \"./commands/search.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n addHiddenOption,\n collect,\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeNextOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n/** Documents the register list query commands options payload exchanged by command, SDK, and package integrations. */\nexport interface RegisterListQueryCommandsOptions {\n /** Value that configures or reports command filter for this contract. */\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(\n commandName: string,\n commandFilter?: Set<string>,\n): boolean {\n if (!commandFilter || commandFilter.size === 0) {\n return true;\n }\n if (commandName === \"context\") {\n return commandFilter.has(\"context\") || commandFilter.has(\"ctx\");\n }\n return commandFilter.has(commandName);\n}\n\ntype ReadCommandOutputFormat = \"json\" | \"toon\";\n\ntype ListOutputFormat = \"csv\" | \"table\" | \"json\" | \"toon\";\n\n/** Parses the `pm list --format` value into a supported render mode. csv/table are human export modes; json/toon override the machine output format. Returns undefined when no `--format` was supplied so the global output format applies. */\nfunction parseListFormat(rawFormat: unknown): ListOutputFormat | undefined {\n if (rawFormat === undefined) {\n return undefined;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\n \"List --format must be one of csv|table|json|toon\",\n EXIT_CODE.USAGE,\n );\n }\n const normalized = rawFormat.trim().toLowerCase();\n if (\n normalized === \"csv\" ||\n normalized === \"table\" ||\n normalized === \"json\" ||\n normalized === \"toon\"\n ) {\n return normalized;\n }\n throw new PmCliError(\n \"List --format must be one of csv|table|json|toon\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction resolveReadCommandOutputFormat(\n commandLabel: string,\n rawFormat: unknown,\n globalOptions: ReturnType<typeof getGlobalOptions>,\n): ReturnType<typeof getGlobalOptions> {\n if (rawFormat === undefined) {\n return globalOptions;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\n `${commandLabel} --format must be one of json|toon`,\n EXIT_CODE.USAGE,\n );\n }\n const normalized = rawFormat.trim().toLowerCase() as ReadCommandOutputFormat;\n if (normalized !== \"json\" && normalized !== \"toon\") {\n throw new PmCliError(\n `${commandLabel} --format must be one of json|toon`,\n EXIT_CODE.USAGE,\n );\n }\n if (globalOptions.json === true && normalized === \"toon\") {\n throw new PmCliError(\n `${commandLabel} cannot combine --json with --format toon`,\n EXIT_CODE.USAGE,\n );\n }\n return {\n ...globalOptions,\n json: normalized === \"json\",\n };\n}\n\nfunction applyDefaultBriefListMode(\n listOptions: ReturnType<typeof normalizeListOptions>,\n defaultBrief: boolean | undefined,\n): void {\n if (\n defaultBrief === true &&\n listOptions.includeBody !== true &&\n listOptions.compact !== true &&\n listOptions.brief !== true &&\n listOptions.full !== true &&\n listOptions.fields === undefined\n ) {\n listOptions.brief = true;\n }\n}\n\nfunction registerContentAndGovernanceFilters(command: Command): void {\n command\n .option(\"--has-notes\", \"Show only items that have notes\")\n .option(\"--has-learnings\", \"Show only items that have learnings\")\n .option(\"--has-files\", \"Show only items that have linked files\")\n .option(\"--has-docs\", \"Show only items that have linked docs\")\n .option(\"--has-tests\", \"Show only items that have linked tests\")\n .option(\"--has-comments\", \"Show only items that have comments\")\n .option(\"--has-deps\", \"Show only items that have dependencies\")\n .option(\"--has-body\", \"Show only items that have a non-empty body\")\n .option(\n \"--has-linked-command\",\n \"Show only items whose linked tests carry a runnable command\",\n )\n .option(\"--no-notes\", \"Show only items that have no notes\")\n .option(\"--no-learnings\", \"Show only items that have no learnings\")\n .option(\"--no-files\", \"Show only items that have no linked files\")\n .option(\"--filter-files-missing\", \"Alias for --no-files\")\n .option(\"--no-docs\", \"Show only items that have no linked docs\")\n .option(\"--filter-docs-missing\", \"Alias for --no-docs\")\n .option(\"--no-tests\", \"Show only items that have no linked tests\")\n .option(\"--no-comments\", \"Show only items that have no comments\")\n .option(\"--no-deps\", \"Show only items that have no dependencies\")\n .option(\"--empty-body\", \"Show only items with an empty body\")\n .option(\n \"--no-linked-command\",\n \"Show only items whose linked tests carry no runnable command\",\n )\n .option(\"--filter-reviewer-missing\", \"Show only items missing reviewer\")\n .option(\"--filter-risk-missing\", \"Show only items missing risk\")\n .option(\"--filter-confidence-missing\", \"Show only items missing confidence\")\n .option(\"--filter-sprint-missing\", \"Show only items missing sprint\")\n .option(\"--filter-release-missing\", \"Show only items missing release\");\n}\n\nasync function runRegisteredListCommand(params: {\n name: string;\n status?: ItemStatus;\n excludeTerminal?: boolean;\n defaultBrief?: boolean;\n dependencyBlocked?: boolean;\n options: Record<string, unknown>;\n actionCommand: Command;\n}): Promise<void> {\n const globalOptions = getGlobalOptions(params.actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(params.options);\n applyDefaultBriefListMode(listOptions, params.defaultBrief);\n if (params.excludeTerminal) listOptions.excludeTerminal = true;\n listOptions.dependencyBlocked = params.dependencyBlocked;\n const result = await runList(\n params.dependencyBlocked ? undefined : params.status,\n listOptions,\n globalOptions,\n );\n const streamMode = params.options.stream === true;\n const listFormat = parseListFormat(params.options.format);\n const tabular = listFormat === \"csv\" || listFormat === \"table\";\n const effectiveGlobal =\n listFormat === \"json\" || listFormat === \"toon\"\n ? resolveReadCommandOutputFormat(\n \"List\",\n params.options.format,\n globalOptions,\n )\n : globalOptions;\n if (streamMode && !effectiveGlobal.json) {\n throw new PmCliError(\n \"--stream requires --json output mode.\",\n EXIT_CODE.USAGE,\n );\n }\n if (tabular && streamMode) {\n throw new PmCliError(\n \"--format csv|table cannot be combined with --stream (line-delimited JSON).\",\n EXIT_CODE.USAGE,\n );\n }\n if (tabular) {\n const rows = result.items as Array<Record<string, unknown>>;\n const rendered =\n listFormat === \"csv\" ? renderRowsAsCsv(rows) : renderRowsAsTable(rows);\n if (!effectiveGlobal.quiet && rendered.length > 0) {\n writeStdout(`${rendered}\\n`);\n }\n } else if (streamMode) {\n printListJsonStream(params.name, result, effectiveGlobal);\n } else {\n printResult(result, effectiveGlobal);\n }\n if (globalOptions.profile) {\n printError(\n `profile:command=${params.name} took_ms=${Date.now() - startedAt}`,\n );\n }\n}\n\ninterface ListCommandDescriptor {\n name: string;\n description: string;\n status?: ItemStatus;\n excludeTerminal?: boolean;\n allowStatusFilter?: boolean;\n defaultBrief?: boolean;\n /** Select via the shared edge-aware blocked classification instead of a raw status filter (GH-578). */\n dependencyBlocked?: boolean;\n}\n\nfunction registerListCommand(\n program: Command,\n descriptor: ListCommandDescriptor,\n): void {\n const {\n name,\n description,\n status,\n excludeTerminal,\n allowStatusFilter,\n defaultBrief,\n dependencyBlocked,\n } = descriptor;\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\n \"--status <value>\",\n \"Filter by status (use all for no status restriction)\",\n );\n }\n command\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\"--today\", \"Filter to items updated since local midnight today\")\n .option(\"--recent\", \"Filter to items updated in the last 7 days\")\n .option(\n \"--updated-after <value>\",\n 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past). \"Changed since my last window\" → --updated-after <ISO>',\n )\n .option(\n \"--updated-before <value>\",\n \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-after <value>\",\n \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-before <value>\",\n \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--ids <value>\",\n \"Filter by explicit item IDs (comma-separated or repeatable)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\n \"--filter-ac-missing\",\n \"Show only items missing acceptance_criteria\",\n )\n .option(\n \"--filter-estimates-missing\",\n \"Show only items missing estimated_minutes\",\n )\n .option(\n \"--filter-resolution-missing\",\n \"Show only terminal items missing resolution\",\n )\n .option(\n \"--filter-metadata-missing\",\n \"Show only items missing any tracked metadata (AC, estimate, or resolution)\",\n )\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\n \"--offset <n>\",\n \"Skip the first n matching rows before limit is applied\",\n )\n .option(\n \"--after <cursor>\",\n \"Continue after an opaque next_cursor from a previous list response\",\n )\n .option(\n \"--no-truncate\",\n \"Return every matched row, overriding any --limit (alias: --all)\",\n )\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\n \"--compact\",\n \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\",\n )\n .option(\n \"--brief\",\n \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\",\n )\n .option(\n \"--full\",\n \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)\",\n )\n .option(\n \"--sort <value>\",\n \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\",\n )\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--tree\", \"Render rows in parent/child tree order\")\n .option(\n \"--tree-depth <n>\",\n \"Maximum recursion depth with --tree (0 keeps root rows only)\",\n )\n .option(\n \"--format <value>\",\n \"Output render mode: csv|table (human export) or json|toon (machine output override)\",\n )\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\");\n registerContentAndGovernanceFilters(command);\n command.action(async (options: Record<string, unknown>, actionCommand) => {\n await runRegisteredListCommand({\n name,\n status,\n excludeTerminal,\n defaultBrief,\n dependencyBlocked,\n options,\n actionCommand,\n });\n });\n // Positive alias for --no-truncate (Commander stores the negation as truncate=false).\n addHiddenOption(command, \"--all\", \"Alias for --no-truncate\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--tags <value>\", \"Alias for --tag\");\n addHiddenOption(\n command,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(command, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n // Singular alias so `--filter-estimate-missing` works (matches update-many spelling).\n addHiddenOption(\n command,\n \"--filter-estimate-missing\",\n \"Alias for --filter-estimates-missing\",\n );\n}\n\nasync function runAggregateAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runAggregate(\n normalizeAggregateOptions(options),\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runContextAction(\n options: Record<string, unknown>,\n actionCommand: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const result = await runContext(normalized, globalOptions);\n const outputFormat = resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderContextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, {\n ...globalOptions,\n json: outputFormat === \"json\",\n });\n }\n if (globalOptions.profile) {\n printError(`profile:command=context took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runNextAction(\n options: Record<string, unknown>,\n actionCommand: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const nextOptions = normalizeNextOptions(options);\n const result = await runNext(nextOptions, globalOptions);\n const outputFormat = resolveNextOutputFormat(nextOptions, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderNextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, { ...globalOptions, json: outputFormat === \"json\" });\n }\n if (globalOptions.profile) {\n printError(`profile:command=next took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runSearchAction(\n keywords: string[],\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" &&\n searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Search\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runEvalAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runEval(\n {\n mode: typeof options.mode === \"string\" ? options.mode : undefined,\n k: typeof options.k === \"string\" ? options.k : undefined,\n failUnder:\n typeof options.failUnder === \"string\" ? options.failUnder : undefined,\n queries:\n typeof options.queries === \"string\" ? options.queries : undefined,\n format: typeof options.format === \"string\" ? options.format : undefined,\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Eval\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=eval took_ms=${Date.now() - startedAt}`);\n }\n if (!result.passed) {\n throw new PmCliError(\n `Eval gate failed: aggregate nDCG@${result.k} ${result.aggregate.ndcg} is below --fail-under ${result.fail_under}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n}\n\nasync function runGetAction(\n id: string,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGet(id, globalOptions, {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n tree: options.tree === true,\n treeDepth:\n typeof options.treeDepth === \"string\"\n ? options.treeDepth\n : typeof options.tree_depth === \"string\"\n ? options.tree_depth\n : undefined,\n at: typeof options.at === \"string\" ? options.at : undefined,\n });\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Get\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runHistoryAction(\n id: string,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\n \"History projection options are mutually exclusive. Use either --compact or --full.\",\n EXIT_CODE.USAGE,\n );\n }\n const field = typeof options.field === \"string\" ? options.field : undefined;\n const result = await runHistory(\n id,\n {\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n compact: options.full === true ? false : true,\n diff: Boolean(options.diff) || field !== undefined,\n field,\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"History\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runActivityAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\n \"Activity projection options are mutually exclusive. Use either --compact or --full.\",\n EXIT_CODE.USAGE,\n );\n }\n const normalized = normalizeActivityOptions(options);\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\n \"--stream requires --json output mode.\",\n EXIT_CODE.USAGE,\n );\n }\n if (streamMode) {\n printActivityJsonStream(result, normalized, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runGraphAction(\n subcommand: string,\n id: string | undefined,\n target: string | undefined,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGraph(\n subcommand,\n id,\n target,\n {\n ...(Array.isArray(options.kind) ? { kind: options.kind as string[] } : {}),\n maxDepth: typeof options.maxDepth === \"string\" ? options.maxDepth : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n after: typeof options.after === \"string\" ? options.after : undefined,\n direction:\n typeof options.direction === \"string\" ? options.direction : undefined,\n maxPaths: typeof options.maxPaths === \"string\" ? options.maxPaths : undefined,\n sample: typeof options.sample === \"string\" ? options.sample : undefined,\n ...(Array.isArray(options.exemptIsolate)\n ? { exemptIsolate: options.exemptIsolate as string[] }\n : {}),\n summary: options.summary === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=graph took_ms=${Date.now() - startedAt}`);\n }\n}\n\n/** Implements register list query commands for the public runtime surface of this module. */\nexport function registerListQueryCommands(\n program: Command,\n options?: RegisterListQueryCommandsOptions,\n): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean =>\n shouldRegisterListQueryCommand(commandName, commandFilter);\n const listCommandDescriptors: ListCommandDescriptor[] = [\n {\n name: \"list\",\n description: \"List active items with optional filters.\",\n excludeTerminal: true,\n allowStatusFilter: true,\n defaultBrief: true,\n },\n {\n name: \"list-all\",\n description: \"List all items with optional filters.\",\n excludeTerminal: false,\n allowStatusFilter: true,\n },\n {\n name: \"list-draft\",\n description: \"List draft items with optional filters.\",\n status: \"draft\",\n },\n {\n name: \"list-open\",\n description: \"List open items with optional filters.\",\n status: \"open\",\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-in-progress\",\n description: \"List in-progress items with optional filters.\",\n status: \"in_progress\",\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-blocked\",\n description:\n \"List blocked items (blocked status or open blocked_by dependencies, matching pm next) with optional filters.\",\n dependencyBlocked: true,\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-closed\",\n description: \"List closed items with optional filters.\",\n status: \"closed\",\n },\n {\n name: \"list-canceled\",\n description: \"List canceled items with optional filters.\",\n status: \"canceled\",\n },\n ];\n for (const descriptor of listCommandDescriptors) {\n if (shouldRegister(descriptor.name)) {\n registerListCommand(program, descriptor);\n }\n }\n\n if (shouldRegister(\"aggregate\")) {\n const aggregateCommand = program\n .command(\"aggregate\")\n .description(\"Aggregate grouped item counts for governance queries.\")\n .option(\n \"--group-by <value>\",\n \"Comma-separated group-by fields (supported: parent,type,priority,status,assignee,tags,sprint,release)\",\n )\n .option(\"--count\", \"Return grouped counts (default behavior)\")\n .option(\n \"--completion\",\n \"Add open/in_progress/closed/other counts and completion_pct per group\",\n )\n .option(\"--sum <field>\", \"Sum a numeric field per group\")\n .option(\"--avg <field>\", \"Average a numeric field per group\")\n .option(\n \"--include-unparented\",\n \"Include unparented rows when grouping by parent\",\n )\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\");\n // Hidden pure snake_case underscore-duplicate aliases (kept parse-functional).\n addHiddenOption(\n aggregateCommand,\n \"--include_unparented\",\n \"Alias for --include-unparented\",\n );\n addHiddenOption(\n aggregateCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n aggregateCommand.action(runAggregateAction);\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\n \"Show a token-efficient project context snapshot for next-work decisions.\",\n )\n .option(\n \"--date <value>\",\n \"Anchor date/time for agenda window calculations (ISO/date string or relative)\",\n )\n .option(\n \"--from <value>\",\n \"Agenda lower bound (ISO/date string or relative)\",\n )\n .option(\n \"--to <value>\",\n \"Agenda upper bound (ISO/date string or relative)\",\n )\n .option(\"--past\", \"Include past agenda entries in bounded windows\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\n \"--parent <id>\",\n \"Scope the snapshot to one item's subtree (the item plus all descendants)\",\n )\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\n \"--after <cursor>\",\n \"Continue ranked focus after a next_cursor from a previous context response\",\n )\n .option(\n \"--format <value>\",\n \"Context output format override: markdown|toon|json\",\n )\n .option(\n \"--depth <value>\",\n \"Context depth: brief|standard|deep|full (full = every section, no per-section cap)\",\n )\n .option(\n \"--section <value...>\",\n \"Include specific sections (repeatable; overrides --depth)\",\n )\n .option(\n \"--fields <value>\",\n \"Project focus rows to a comma-separated field subset (e.g. id,title,priority)\",\n )\n .option(\n \"--activity-limit <n>\",\n \"Limit recent activity entries (default: settings or 10)\",\n )\n .option(\n \"--stale-threshold <value>\",\n \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\",\n )\n .option(\n \"--explain-ranking\",\n \"Include the scorer model, per-signal contributions, and ranked candidate ids\",\n );\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(\n contextCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(contextCommand, \"--max-items <n>\", \"Alias for --limit\");\n addHiddenOption(\n contextCommand,\n \"--explain_ranking\",\n \"Alias for --explain-ranking\",\n );\n contextCommand.action(runContextAction);\n }\n\n if (shouldRegister(\"next\")) {\n const nextCommand = program\n .command(\"next\")\n .description(\n \"Recommend the next actionable (unblocked, ready) work item with rationale + blocked companion.\",\n )\n .option(\"--type <value>\", \"Filter candidate items by type\")\n .option(\"--tag <value>\", \"Filter candidate items by tag\")\n .option(\"--priority <value>\", \"Filter candidate items by priority\")\n .option(\"--assignee <value>\", \"Filter candidate items by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--sprint <value>\", \"Filter candidate items by sprint\")\n .option(\"--release <value>\", \"Filter candidate items by release\")\n .option(\n \"--parent <id>\",\n \"Scope to one item's subtree (the item plus all descendants)\",\n )\n .option(\n \"--limit <n>\",\n \"Limit ready rows (default: 5; non-positive falls back to default)\",\n )\n .option(\n \"--blocked-limit <n>\",\n \"Limit blocked rows (default: same as --limit)\",\n )\n .option(\"--ready-only\", \"Omit the blocked companion list\")\n .option(\n \"--include-decisions\",\n \"Include human-gated Decision items in the claimable ready queue\",\n )\n .option(\n \"--format <value>\",\n \"Next output format override: markdown|toon|json\",\n )\n .option(\n \"--explain-ranking\",\n \"Include the scorer model, per-signal contributions, and ranked ready ids\",\n );\n addHiddenOption(\n nextCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(\n nextCommand,\n \"--blocked_limit <n>\",\n \"Alias for --blocked-limit\",\n );\n addHiddenOption(nextCommand, \"--ready_only\", \"Alias for --ready-only\");\n addHiddenOption(\n nextCommand,\n \"--explain_ranking\",\n \"Alias for --explain-ranking\",\n );\n nextCommand.action(runNextAction);\n }\n\n if (shouldRegister(\"search\")) {\n const searchCommand = program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\n \"Search items with keyword, semantic, or hybrid retrieval. Inline field:value tokens \" +\n \"(tag:/status:/type:/priority:) in the query are parsed as filters, e.g. 'auth tag:area:search status:open'.\",\n )\n .option(\n \"--mode <value>\",\n \"Search mode: keyword|semantic|hybrid (default: keyword)\",\n )\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\n \"--match-mode <value>\",\n \"Token match mode: and|or|exact (default: or with all-terms ranking bonus; and = hard-require every token; exact = exact phrase)\",\n )\n .option(\n \"--min-score <value>\",\n \"Per-query minimum score threshold (finite number >= 0); overrides settings search.score_threshold for this query only\",\n )\n .option(\n \"--count\",\n \"Return only the count of matching items (post-filter/threshold, pre-limit); skips hit rows\",\n )\n .option(\n \"--semantic-weight <value>\",\n \"Override hybrid semantic weight for this query (0..1); invalid values fall back to settings\",\n )\n .option(\n \"--include-linked\",\n \"Include linked files, docs, and tests in the searchable corpus\",\n )\n .option(\n \"--title-exact\",\n \"Require exact normalized title match for the full query string\",\n )\n .option(\n \"--phrase-exact\",\n \"Require exact normalized phrase match in searchable text\",\n )\n .option(\n \"--highlight\",\n \"Emit per-field matched-text snippets (wrapped in «…») on each hit; off by default\",\n )\n .option(\n \"--status <value>\",\n \"Filter by status before query (all, open/closed/canceled aliases, or configured status id; CSV)\",\n )\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\n \"--updated-after <value>\",\n 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past)',\n )\n .option(\n \"--updated-before <value>\",\n \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-after <value>\",\n \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-before <value>\",\n \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\n \"--compact\",\n \"Render compact search hits (default; mutually exclusive with --full/--fields)\",\n )\n .option(\n \"--full\",\n \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)\",\n )\n .option(\"--format <value>\", \"Search output format override: json|toon\")\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\n \"--after <cursor>\",\n \"Continue after an opaque next_cursor from a previous search response\",\n );\n registerContentAndGovernanceFilters(searchCommand);\n searchCommand.action(runSearchAction);\n addHiddenOption(searchCommand, \"--tags <value>\", \"Alias for --tag\");\n }\n\n if (shouldRegister(\"eval\")) {\n program\n .command(\"eval\")\n .description(\n \"Evaluate search relevance against a curated golden-query set: reports nDCG@k, MRR@k, \" +\n \"precision@k, and recall@k per query plus the macro average. Use --fail-under as a CI gate.\",\n )\n .option(\n \"--mode <value>\",\n \"Default retrieval mode for queries without their own: keyword|semantic|hybrid (default: keyword)\",\n )\n .option(\"--k <n>\", \"Metric cutoff @k (positive integer; default: 10)\")\n .option(\n \"--fail-under <value>\",\n \"Exit non-zero when aggregate nDCG@k falls below this threshold (0..1); CI gate\",\n )\n .option(\n \"--queries <path>\",\n \"Path to the golden-query JSON file (default: <pmRoot>/search/eval-queries.json)\",\n )\n .option(\"--format <value>\", \"Eval output format override: json|toon\")\n .action(runEvalAction);\n }\n\n if (shouldRegister(\"get\")) {\n const getCommand = program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\n \"--depth <value>\",\n \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\",\n )\n .option(\n \"--full\",\n \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\",\n )\n .option(\"--tree\", \"Include descendants rooted at the requested item\")\n .option(\n \"--tree-depth <n>\",\n \"Maximum subtree depth for --tree descendants\",\n )\n .option(\n \"--at <version-or-timestamp>\",\n \"Reconstruct a verified historical item state without mutating it\",\n )\n .option(\"--format <value>\", \"Get output format override: json|toon\")\n .description(\"Show item details by ID.\")\n .action(runGetAction);\n addHiddenOption(getCommand, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n }\n\n if (shouldRegister(\"history\")) {\n program\n .command(\"history\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--limit <n>\", \"Return only the latest n history entries\")\n .option(\n \"--compact\",\n \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\",\n )\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\n \"--diff\",\n \"Include per-entry field-level before/after value diffs computed by replaying the history chain\",\n )\n .option(\n \"--field <name>\",\n \"With --diff, show only entries that changed this field (implies --diff)\",\n )\n .option(\n \"--verify\",\n \"Verify hash chain and replay integrity for the full history stream\",\n )\n .option(\"--format <value>\", \"History output format override: json|toon\")\n .description(\"Show item history entries.\")\n .action(runHistoryAction);\n }\n\n if (shouldRegister(\"activity\")) {\n program\n .command(\"activity\")\n .option(\"--id <value>\", \"Filter by item ID\")\n .option(\"--op <value>\", \"Filter by history operation\")\n .option(\"--author <value>\", \"Filter by history author\")\n .option(\n \"--from <value>\",\n \"Lower timestamp bound (ISO/date string or relative)\",\n )\n .option(\n \"--to <value>\",\n \"Upper timestamp bound (ISO/date string or relative)\",\n )\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\n \"--compact\",\n \"Condensed output: show only id, op, ts, author, msg per entry\",\n )\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\n \"--stream [mode]\",\n \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\",\n )\n .description(\"Show recent activity across items.\")\n .action(runActivityAction);\n }\n\n if (shouldRegister(\"graph\")) {\n program\n .command(\"graph\")\n .argument(\n \"<subcommand>\",\n \"Graph query (ancestors, descendants, predecessors, successors, paths, impact, analyze, audit, communities, redundancy, dominators, plan)\",\n )\n .argument(\"[id]\", \"Root item id (traversals, paths, impact, and dominators)\")\n .argument(\"[target]\", \"Target item id (paths only)\")\n .option(\n \"--kind <value>\",\n \"Restrict traversal to registered relationship kinds (repeatable or comma-separated)\",\n collect,\n )\n .option(\n \"--max-depth <value>\",\n \"Maximum traversal depth (non-negative integer)\",\n )\n .option(\"--limit <value>\", \"Maximum returned rows per bounded collection\")\n .option(\n \"--after <value>\",\n \"Resume a traversal after this previously returned node id\",\n )\n .option(\n \"--direction <value>\",\n \"Edge orientation for paths/impact (outgoing, incoming, or both)\",\n )\n .option(\"--max-paths <value>\", \"Maximum enumerated paths (paths only)\")\n .option(\n \"--sample <value>\",\n \"Maximum evidence sample entries per audit finding (audit only)\",\n )\n .option(\n \"--exempt-isolate <value>\",\n \"Item ids treated as explicitly valid isolates by the audit (repeatable or comma-separated)\",\n collect,\n )\n .option(\"--summary\", \"Return counts-first envelopes without row collections\")\n .description(\n \"Bounded workspace relationship-graph queries, analytics, and governance audit.\",\n )\n .action(runGraphAction);\n }\n}\n\n/** Public contract for test only register list query, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyRegisterListQuery = {\n resolveReadCommandOutputFormat,\n parseListFormat,\n};\n"],"names":[],"mappings":"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","debugId":"e1ef249b-2222-54e0-a21a-0d0820e27950"}
1
+ {"version":3,"file":"register-list-query.js","sources":["cli/register-list-query.ts"],"sourceRoot":"/","sourcesContent":["/**\n * @module cli/register-list-query\n *\n * Provides CLI runtime support for Register List Query.\n */\nimport type { Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport { renderRowsAsCsv, renderRowsAsTable } from \"../core/output/tabular.js\";\nimport { runActivity } from \"./commands/activity.js\";\nimport { runAggregate } from \"./commands/aggregate.js\";\nimport {\n renderContextMarkdown,\n runContext,\n resolveContextOutputFormat,\n} from \"./commands/context.js\";\nimport { runEval } from \"./commands/eval.js\";\nimport { runGet } from \"./commands/get.js\";\nimport { runGraph } from \"./commands/graph.js\";\nimport { runHistory } from \"./commands/history.js\";\nimport { runList } from \"./commands/list.js\";\nimport {\n renderNextMarkdown,\n runNext,\n resolveNextOutputFormat,\n} from \"./commands/next.js\";\nimport { runSearch } from \"./commands/search.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n addHiddenOption,\n collect,\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeNextOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n/** Documents the register list query commands options payload exchanged by command, SDK, and package integrations. */\nexport interface RegisterListQueryCommandsOptions {\n /** Value that configures or reports command filter for this contract. */\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(\n commandName: string,\n commandFilter?: Set<string>,\n): boolean {\n if (!commandFilter || commandFilter.size === 0) {\n return true;\n }\n if (commandName === \"context\") {\n return commandFilter.has(\"context\") || commandFilter.has(\"ctx\");\n }\n return commandFilter.has(commandName);\n}\n\ntype ReadCommandOutputFormat = \"json\" | \"toon\";\n\ntype ListOutputFormat = \"csv\" | \"table\" | \"json\" | \"toon\";\n\n/** Parses the `pm list --format` value into a supported render mode. csv/table are human export modes; json/toon override the machine output format. Returns undefined when no `--format` was supplied so the global output format applies. */\nfunction parseListFormat(rawFormat: unknown): ListOutputFormat | undefined {\n if (rawFormat === undefined) {\n return undefined;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\n \"List --format must be one of csv|table|json|toon\",\n EXIT_CODE.USAGE,\n );\n }\n const normalized = rawFormat.trim().toLowerCase();\n if (\n normalized === \"csv\" ||\n normalized === \"table\" ||\n normalized === \"json\" ||\n normalized === \"toon\"\n ) {\n return normalized;\n }\n throw new PmCliError(\n \"List --format must be one of csv|table|json|toon\",\n EXIT_CODE.USAGE,\n );\n}\n\nfunction resolveReadCommandOutputFormat(\n commandLabel: string,\n rawFormat: unknown,\n globalOptions: ReturnType<typeof getGlobalOptions>,\n): ReturnType<typeof getGlobalOptions> {\n if (rawFormat === undefined) {\n return globalOptions;\n }\n if (typeof rawFormat !== \"string\") {\n throw new PmCliError(\n `${commandLabel} --format must be one of json|toon`,\n EXIT_CODE.USAGE,\n );\n }\n const normalized = rawFormat.trim().toLowerCase() as ReadCommandOutputFormat;\n if (normalized !== \"json\" && normalized !== \"toon\") {\n throw new PmCliError(\n `${commandLabel} --format must be one of json|toon`,\n EXIT_CODE.USAGE,\n );\n }\n if (globalOptions.json === true && normalized === \"toon\") {\n throw new PmCliError(\n `${commandLabel} cannot combine --json with --format toon`,\n EXIT_CODE.USAGE,\n );\n }\n return {\n ...globalOptions,\n json: normalized === \"json\",\n };\n}\n\nfunction applyDefaultBriefListMode(\n listOptions: ReturnType<typeof normalizeListOptions>,\n defaultBrief: boolean | undefined,\n): void {\n if (\n defaultBrief === true &&\n listOptions.includeBody !== true &&\n listOptions.compact !== true &&\n listOptions.brief !== true &&\n listOptions.full !== true &&\n listOptions.fields === undefined\n ) {\n listOptions.brief = true;\n }\n}\n\nfunction registerContentAndGovernanceFilters(command: Command): void {\n command\n .option(\"--has-notes\", \"Show only items that have notes\")\n .option(\"--has-learnings\", \"Show only items that have learnings\")\n .option(\"--has-files\", \"Show only items that have linked files\")\n .option(\"--has-docs\", \"Show only items that have linked docs\")\n .option(\"--has-tests\", \"Show only items that have linked tests\")\n .option(\"--has-comments\", \"Show only items that have comments\")\n .option(\"--has-deps\", \"Show only items that have dependencies\")\n .option(\"--has-body\", \"Show only items that have a non-empty body\")\n .option(\n \"--has-linked-command\",\n \"Show only items whose linked tests carry a runnable command\",\n )\n .option(\"--no-notes\", \"Show only items that have no notes\")\n .option(\"--no-learnings\", \"Show only items that have no learnings\")\n .option(\"--no-files\", \"Show only items that have no linked files\")\n .option(\"--filter-files-missing\", \"Alias for --no-files\")\n .option(\"--no-docs\", \"Show only items that have no linked docs\")\n .option(\"--filter-docs-missing\", \"Alias for --no-docs\")\n .option(\"--no-tests\", \"Show only items that have no linked tests\")\n .option(\"--no-comments\", \"Show only items that have no comments\")\n .option(\"--no-deps\", \"Show only items that have no dependencies\")\n .option(\"--empty-body\", \"Show only items with an empty body\")\n .option(\n \"--no-linked-command\",\n \"Show only items whose linked tests carry no runnable command\",\n )\n .option(\"--filter-reviewer-missing\", \"Show only items missing reviewer\")\n .option(\"--filter-risk-missing\", \"Show only items missing risk\")\n .option(\"--filter-confidence-missing\", \"Show only items missing confidence\")\n .option(\"--filter-sprint-missing\", \"Show only items missing sprint\")\n .option(\"--filter-release-missing\", \"Show only items missing release\");\n}\n\nasync function runRegisteredListCommand(params: {\n name: string;\n status?: ItemStatus;\n excludeTerminal?: boolean;\n defaultBrief?: boolean;\n dependencyBlocked?: boolean;\n options: Record<string, unknown>;\n actionCommand: Command;\n}): Promise<void> {\n const globalOptions = getGlobalOptions(params.actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(params.options);\n applyDefaultBriefListMode(listOptions, params.defaultBrief);\n if (params.excludeTerminal) listOptions.excludeTerminal = true;\n listOptions.dependencyBlocked = params.dependencyBlocked;\n const result = await runList(\n params.dependencyBlocked ? undefined : params.status,\n listOptions,\n globalOptions,\n );\n const streamMode = params.options.stream === true;\n const listFormat = parseListFormat(params.options.format);\n const tabular = listFormat === \"csv\" || listFormat === \"table\";\n const effectiveGlobal =\n listFormat === \"json\" || listFormat === \"toon\"\n ? resolveReadCommandOutputFormat(\n \"List\",\n params.options.format,\n globalOptions,\n )\n : globalOptions;\n if (streamMode && !effectiveGlobal.json) {\n throw new PmCliError(\n \"--stream requires --json output mode.\",\n EXIT_CODE.USAGE,\n );\n }\n if (tabular && streamMode) {\n throw new PmCliError(\n \"--format csv|table cannot be combined with --stream (line-delimited JSON).\",\n EXIT_CODE.USAGE,\n );\n }\n if (tabular) {\n const rows = result.items as Array<Record<string, unknown>>;\n const rendered =\n listFormat === \"csv\" ? renderRowsAsCsv(rows) : renderRowsAsTable(rows);\n if (!effectiveGlobal.quiet && rendered.length > 0) {\n writeStdout(`${rendered}\\n`);\n }\n } else if (streamMode) {\n printListJsonStream(params.name, result, effectiveGlobal);\n } else {\n printResult(result, effectiveGlobal);\n }\n if (globalOptions.profile) {\n printError(\n `profile:command=${params.name} took_ms=${Date.now() - startedAt}`,\n );\n }\n}\n\ninterface ListCommandDescriptor {\n name: string;\n description: string;\n status?: ItemStatus;\n excludeTerminal?: boolean;\n allowStatusFilter?: boolean;\n defaultBrief?: boolean;\n /** Select via the shared edge-aware blocked classification instead of a raw status filter (GH-578). */\n dependencyBlocked?: boolean;\n}\n\nfunction registerListCommand(\n program: Command,\n descriptor: ListCommandDescriptor,\n): void {\n const {\n name,\n description,\n status,\n excludeTerminal,\n allowStatusFilter,\n defaultBrief,\n dependencyBlocked,\n } = descriptor;\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\n \"--status <value>\",\n \"Filter by status (use all for no status restriction)\",\n );\n }\n command\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\"--today\", \"Filter to items updated since local midnight today\")\n .option(\"--recent\", \"Filter to items updated in the last 7 days\")\n .option(\n \"--updated-after <value>\",\n 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past). \"Changed since my last window\" → --updated-after <ISO>',\n )\n .option(\n \"--updated-before <value>\",\n \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-after <value>\",\n \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-before <value>\",\n \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--ids <value>\",\n \"Filter by explicit item IDs (comma-separated or repeatable)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\n \"--filter-ac-missing\",\n \"Show only items missing acceptance_criteria\",\n )\n .option(\n \"--filter-estimates-missing\",\n \"Show only items missing estimated_minutes\",\n )\n .option(\n \"--filter-resolution-missing\",\n \"Show only terminal items missing resolution\",\n )\n .option(\n \"--filter-metadata-missing\",\n \"Show only items missing any tracked metadata (AC, estimate, or resolution)\",\n )\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\n \"--offset <n>\",\n \"Skip the first n matching rows before limit is applied\",\n )\n .option(\n \"--after <cursor>\",\n \"Continue after an opaque next_cursor from a previous list response\",\n )\n .option(\n \"--no-truncate\",\n \"Return every matched row, overriding any --limit (alias: --all)\",\n )\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\n \"--compact\",\n \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\",\n )\n .option(\n \"--brief\",\n \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\",\n )\n .option(\n \"--full\",\n \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated list fields (mutually exclusive with --compact/--brief/--full; valid: --fields id,title)\",\n )\n .option(\n \"--sort <value>\",\n \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\",\n )\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--tree\", \"Render rows in parent/child tree order\")\n .option(\n \"--tree-depth <n>\",\n \"Maximum recursion depth with --tree (0 keeps root rows only)\",\n )\n .option(\n \"--format <value>\",\n \"Output render mode: csv|table (human export) or json|toon (machine output override)\",\n )\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\");\n registerContentAndGovernanceFilters(command);\n command.action(async (options: Record<string, unknown>, actionCommand) => {\n await runRegisteredListCommand({\n name,\n status,\n excludeTerminal,\n defaultBrief,\n dependencyBlocked,\n options,\n actionCommand,\n });\n });\n // Positive alias for --no-truncate (Commander stores the negation as truncate=false).\n addHiddenOption(command, \"--all\", \"Alias for --no-truncate\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--tags <value>\", \"Alias for --tag\");\n addHiddenOption(\n command,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(command, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n // Singular alias so `--filter-estimate-missing` works (matches update-many spelling).\n addHiddenOption(\n command,\n \"--filter-estimate-missing\",\n \"Alias for --filter-estimates-missing\",\n );\n}\n\nasync function runAggregateAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runAggregate(\n normalizeAggregateOptions(options),\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runContextAction(\n options: Record<string, unknown>,\n actionCommand: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const result = await runContext(normalized, globalOptions);\n const outputFormat = resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderContextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, {\n ...globalOptions,\n json: outputFormat === \"json\",\n });\n }\n if (globalOptions.profile) {\n printError(`profile:command=context took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runNextAction(\n options: Record<string, unknown>,\n actionCommand: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const nextOptions = normalizeNextOptions(options);\n const result = await runNext(nextOptions, globalOptions);\n const outputFormat = resolveNextOutputFormat(nextOptions, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${renderNextMarkdown(result)}\\n`);\n }\n } else {\n printResult(result, { ...globalOptions, json: outputFormat === \"json\" });\n }\n if (globalOptions.profile) {\n printError(`profile:command=next took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runSearchAction(\n keywords: string[],\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" &&\n searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Search\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runEvalAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runEval(\n {\n mode: typeof options.mode === \"string\" ? options.mode : undefined,\n k: typeof options.k === \"string\" ? options.k : undefined,\n failUnder:\n typeof options.failUnder === \"string\" ? options.failUnder : undefined,\n queries:\n typeof options.queries === \"string\" ? options.queries : undefined,\n format: typeof options.format === \"string\" ? options.format : undefined,\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Eval\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=eval took_ms=${Date.now() - startedAt}`);\n }\n if (!result.passed) {\n throw new PmCliError(\n `Eval gate failed: aggregate nDCG@${result.k} ${result.aggregate.ndcg} is below --fail-under ${result.fail_under}`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n}\n\nasync function runGetAction(\n id: string,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGet(id, globalOptions, {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n tree: options.tree === true,\n treeDepth:\n typeof options.treeDepth === \"string\"\n ? options.treeDepth\n : typeof options.tree_depth === \"string\"\n ? options.tree_depth\n : undefined,\n at: typeof options.at === \"string\" ? options.at : undefined,\n });\n printResult(\n result,\n resolveReadCommandOutputFormat(\"Get\", options.format, globalOptions),\n );\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runHistoryAction(\n id: string,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\n \"History projection options are mutually exclusive. Use either --compact or --full.\",\n EXIT_CODE.USAGE,\n );\n }\n const field = typeof options.field === \"string\" ? options.field : undefined;\n const strictExit =\n Boolean(options.strictExit) || Boolean(options.failOnWarn);\n if (strictExit && !options.verify) {\n throw new PmCliError(\n \"--strict-exit requires --verify (it gates on the verification result).\",\n EXIT_CODE.USAGE,\n );\n }\n const result = await runHistory(\n id,\n {\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n compact: options.full === true ? false : true,\n diff: Boolean(options.diff) || field !== undefined,\n field,\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(\n result,\n resolveReadCommandOutputFormat(\"History\", options.format, globalOptions),\n );\n // GH-604: without --strict-exit a broken chain still exits 0 (read-only\n // inspection default); with it, verification.ok:false becomes a nonzero exit\n // so CI and merge hooks can gate on `pm history <id> --verify --strict-exit`.\n if (strictExit && result.verification && !result.verification.ok) {\n process.exitCode = EXIT_CODE.GENERIC_FAILURE;\n }\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runActivityAction(\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\n \"Activity projection options are mutually exclusive. Use either --compact or --full.\",\n EXIT_CODE.USAGE,\n );\n }\n const normalized = normalizeActivityOptions(options);\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\n \"--stream requires --json output mode.\",\n EXIT_CODE.USAGE,\n );\n }\n if (streamMode) {\n printActivityJsonStream(result, normalized, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=activity took_ms=${Date.now() - startedAt}`);\n }\n}\n\nasync function runGraphAction(\n subcommand: string,\n id: string | undefined,\n target: string | undefined,\n options: Record<string, unknown>,\n command: Command,\n): Promise<void> {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const result = await runGraph(\n subcommand,\n id,\n target,\n {\n ...(Array.isArray(options.kind) ? { kind: options.kind as string[] } : {}),\n maxDepth: typeof options.maxDepth === \"string\" ? options.maxDepth : undefined,\n limit: typeof options.limit === \"string\" ? options.limit : undefined,\n after: typeof options.after === \"string\" ? options.after : undefined,\n direction:\n typeof options.direction === \"string\" ? options.direction : undefined,\n maxPaths: typeof options.maxPaths === \"string\" ? options.maxPaths : undefined,\n sample: typeof options.sample === \"string\" ? options.sample : undefined,\n ...(Array.isArray(options.exemptIsolate)\n ? { exemptIsolate: options.exemptIsolate as string[] }\n : {}),\n summary: options.summary === true,\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=graph took_ms=${Date.now() - startedAt}`);\n }\n}\n\n/** Implements register list query commands for the public runtime surface of this module. */\nexport function registerListQueryCommands(\n program: Command,\n options?: RegisterListQueryCommandsOptions,\n): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean =>\n shouldRegisterListQueryCommand(commandName, commandFilter);\n const listCommandDescriptors: ListCommandDescriptor[] = [\n {\n name: \"list\",\n description: \"List active items with optional filters.\",\n excludeTerminal: true,\n allowStatusFilter: true,\n defaultBrief: true,\n },\n {\n name: \"list-all\",\n description: \"List all items with optional filters.\",\n excludeTerminal: false,\n allowStatusFilter: true,\n },\n {\n name: \"list-draft\",\n description: \"List draft items with optional filters.\",\n status: \"draft\",\n },\n {\n name: \"list-open\",\n description: \"List open items with optional filters.\",\n status: \"open\",\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-in-progress\",\n description: \"List in-progress items with optional filters.\",\n status: \"in_progress\",\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-blocked\",\n description:\n \"List blocked items (blocked status or open blocked_by dependencies, matching pm next) with optional filters.\",\n dependencyBlocked: true,\n excludeTerminal: false,\n allowStatusFilter: false,\n defaultBrief: true,\n },\n {\n name: \"list-closed\",\n description: \"List closed items with optional filters.\",\n status: \"closed\",\n },\n {\n name: \"list-canceled\",\n description: \"List canceled items with optional filters.\",\n status: \"canceled\",\n },\n ];\n for (const descriptor of listCommandDescriptors) {\n if (shouldRegister(descriptor.name)) {\n registerListCommand(program, descriptor);\n }\n }\n\n if (shouldRegister(\"aggregate\")) {\n const aggregateCommand = program\n .command(\"aggregate\")\n .description(\"Aggregate grouped item counts for governance queries.\")\n .option(\n \"--group-by <value>\",\n \"Comma-separated group-by fields (supported: parent,type,priority,status,assignee,tags,sprint,release)\",\n )\n .option(\"--count\", \"Return grouped counts (default behavior)\")\n .option(\n \"--completion\",\n \"Add open/in_progress/closed/other counts and completion_pct per group\",\n )\n .option(\"--sum <field>\", \"Sum a numeric field per group\")\n .option(\"--avg <field>\", \"Average a numeric field per group\")\n .option(\n \"--include-unparented\",\n \"Include unparented rows when grouping by parent\",\n )\n .option(\"--status <value>\", \"Filter by item status\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\");\n // Hidden pure snake_case underscore-duplicate aliases (kept parse-functional).\n addHiddenOption(\n aggregateCommand,\n \"--include_unparented\",\n \"Alias for --include-unparented\",\n );\n addHiddenOption(\n aggregateCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n aggregateCommand.action(runAggregateAction);\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\n \"Show a token-efficient project context snapshot for next-work decisions.\",\n )\n .option(\n \"--date <value>\",\n \"Anchor date/time for agenda window calculations (ISO/date string or relative)\",\n )\n .option(\n \"--from <value>\",\n \"Agenda lower bound (ISO/date string or relative)\",\n )\n .option(\n \"--to <value>\",\n \"Agenda upper bound (ISO/date string or relative)\",\n )\n .option(\"--past\", \"Include past agenda entries in bounded windows\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\n \"--parent <id>\",\n \"Scope the snapshot to one item's subtree (the item plus all descendants)\",\n )\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\n \"--after <cursor>\",\n \"Continue ranked focus after a next_cursor from a previous context response\",\n )\n .option(\n \"--format <value>\",\n \"Context output format override: markdown|toon|json\",\n )\n .option(\n \"--depth <value>\",\n \"Context depth: brief|standard|deep|full (full = every section, no per-section cap)\",\n )\n .option(\n \"--section <value...>\",\n \"Include specific sections (repeatable; overrides --depth)\",\n )\n .option(\n \"--fields <value>\",\n \"Project focus rows to a comma-separated field subset (e.g. id,title,priority)\",\n )\n .option(\n \"--activity-limit <n>\",\n \"Limit recent activity entries (default: settings or 10)\",\n )\n .option(\n \"--stale-threshold <value>\",\n \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\",\n )\n .option(\n \"--explain-ranking\",\n \"Include the scorer model, per-signal contributions, and ranked candidate ids\",\n );\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(\n contextCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(contextCommand, \"--max-items <n>\", \"Alias for --limit\");\n addHiddenOption(\n contextCommand,\n \"--explain_ranking\",\n \"Alias for --explain-ranking\",\n );\n contextCommand.action(runContextAction);\n }\n\n if (shouldRegister(\"next\")) {\n const nextCommand = program\n .command(\"next\")\n .description(\n \"Recommend the next actionable (unblocked, ready) work item with rationale + blocked companion.\",\n )\n .option(\"--type <value>\", \"Filter candidate items by type\")\n .option(\"--tag <value>\", \"Filter candidate items by tag\")\n .option(\"--priority <value>\", \"Filter candidate items by priority\")\n .option(\"--assignee <value>\", \"Filter candidate items by assignee\")\n .option(\n \"--assignee-filter <value>\",\n \"Filter assignee presence: assigned|unassigned\",\n )\n .option(\"--sprint <value>\", \"Filter candidate items by sprint\")\n .option(\"--release <value>\", \"Filter candidate items by release\")\n .option(\n \"--parent <id>\",\n \"Scope to one item's subtree (the item plus all descendants)\",\n )\n .option(\n \"--limit <n>\",\n \"Limit ready rows (default: 5; non-positive falls back to default)\",\n )\n .option(\n \"--blocked-limit <n>\",\n \"Limit blocked rows (default: same as --limit)\",\n )\n .option(\"--ready-only\", \"Omit the blocked companion list\")\n .option(\n \"--include-decisions\",\n \"Include human-gated Decision items in the claimable ready queue\",\n )\n .option(\n \"--format <value>\",\n \"Next output format override: markdown|toon|json\",\n )\n .option(\n \"--explain-ranking\",\n \"Include the scorer model, per-signal contributions, and ranked ready ids\",\n );\n addHiddenOption(\n nextCommand,\n \"--assignee_filter <value>\",\n \"Alias for --assignee-filter\",\n );\n addHiddenOption(\n nextCommand,\n \"--blocked_limit <n>\",\n \"Alias for --blocked-limit\",\n );\n addHiddenOption(nextCommand, \"--ready_only\", \"Alias for --ready-only\");\n addHiddenOption(\n nextCommand,\n \"--explain_ranking\",\n \"Alias for --explain-ranking\",\n );\n nextCommand.action(runNextAction);\n }\n\n if (shouldRegister(\"search\")) {\n const searchCommand = program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\n \"Search items with keyword, semantic, or hybrid retrieval. Inline field:value tokens \" +\n \"(tag:/status:/type:/priority:) in the query are parsed as filters, e.g. 'auth tag:area:search status:open'.\",\n )\n .option(\n \"--mode <value>\",\n \"Search mode: keyword|semantic|hybrid (default: keyword)\",\n )\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\n \"--match-mode <value>\",\n \"Token match mode: and|or|exact (default: or with all-terms ranking bonus; and = hard-require every token; exact = exact phrase)\",\n )\n .option(\n \"--min-score <value>\",\n \"Per-query minimum score threshold (finite number >= 0); overrides settings search.score_threshold for this query only\",\n )\n .option(\n \"--count\",\n \"Return only the count of matching items (post-filter/threshold, pre-limit); skips hit rows\",\n )\n .option(\n \"--semantic-weight <value>\",\n \"Override hybrid semantic weight for this query (0..1); invalid values fall back to settings\",\n )\n .option(\n \"--include-linked\",\n \"Include linked files, docs, and tests in the searchable corpus\",\n )\n .option(\n \"--title-exact\",\n \"Require exact normalized title match for the full query string\",\n )\n .option(\n \"--phrase-exact\",\n \"Require exact normalized phrase match in searchable text\",\n )\n .option(\n \"--highlight\",\n \"Emit per-field matched-text snippets (wrapped in «…») on each hit; off by default\",\n )\n .option(\n \"--status <value>\",\n \"Filter by status before query (all, open/closed/canceled aliases, or configured status id; CSV)\",\n )\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\n \"--deadline-before <value>\",\n \"Filter by deadline upper bound (ISO/date string or relative)\",\n )\n .option(\n \"--deadline-after <value>\",\n \"Filter by deadline lower bound (ISO/date string or relative)\",\n )\n .option(\n \"--updated-after <value>\",\n 'Filter by updated_at lower bound: ISO timestamp or signed relative (e.g. \"-2h\"/\"-7d\" for the past)',\n )\n .option(\n \"--updated-before <value>\",\n \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-after <value>\",\n \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\n \"--created-before <value>\",\n \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\",\n )\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--parent <value>\", \"Filter by parent item ID\")\n .option(\n \"--compact\",\n \"Render compact search hits (default; mutually exclusive with --full/--fields)\",\n )\n .option(\n \"--full\",\n \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)\",\n )\n .option(\"--format <value>\", \"Search output format override: json|toon\")\n .option(\"--limit <n>\", \"Limit returned item count\")\n .option(\n \"--after <cursor>\",\n \"Continue after an opaque next_cursor from a previous search response\",\n );\n registerContentAndGovernanceFilters(searchCommand);\n searchCommand.action(runSearchAction);\n addHiddenOption(searchCommand, \"--tags <value>\", \"Alias for --tag\");\n }\n\n if (shouldRegister(\"eval\")) {\n program\n .command(\"eval\")\n .description(\n \"Evaluate search relevance against a curated golden-query set: reports nDCG@k, MRR@k, \" +\n \"precision@k, and recall@k per query plus the macro average. Use --fail-under as a CI gate.\",\n )\n .option(\n \"--mode <value>\",\n \"Default retrieval mode for queries without their own: keyword|semantic|hybrid (default: keyword)\",\n )\n .option(\"--k <n>\", \"Metric cutoff @k (positive integer; default: 10)\")\n .option(\n \"--fail-under <value>\",\n \"Exit non-zero when aggregate nDCG@k falls below this threshold (0..1); CI gate\",\n )\n .option(\n \"--queries <path>\",\n \"Path to the golden-query JSON file (default: <pmRoot>/search/eval-queries.json)\",\n )\n .option(\"--format <value>\", \"Eval output format override: json|toon\")\n .action(runEvalAction);\n }\n\n if (shouldRegister(\"get\")) {\n const getCommand = program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\n \"--depth <value>\",\n \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\",\n )\n .option(\n \"--full\",\n \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\",\n )\n .option(\n \"--fields <value>\",\n \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\",\n )\n .option(\"--tree\", \"Include descendants rooted at the requested item\")\n .option(\n \"--tree-depth <n>\",\n \"Maximum subtree depth for --tree descendants\",\n )\n .option(\n \"--at <version-or-timestamp>\",\n \"Reconstruct a verified historical item state without mutating it\",\n )\n .option(\"--format <value>\", \"Get output format override: json|toon\")\n .description(\"Show item details by ID.\")\n .action(runGetAction);\n addHiddenOption(getCommand, \"--tree_depth <n>\", \"Alias for --tree-depth\");\n }\n\n if (shouldRegister(\"history\")) {\n program\n .command(\"history\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--limit <n>\", \"Return only the latest n history entries\")\n .option(\n \"--compact\",\n \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\",\n )\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\n \"--diff\",\n \"Include per-entry field-level before/after value diffs computed by replaying the history chain\",\n )\n .option(\n \"--field <name>\",\n \"With --diff, show only entries that changed this field (implies --diff)\",\n )\n .option(\n \"--verify\",\n \"Verify hash chain and replay integrity for the full history stream\",\n )\n .option(\n \"--strict-exit\",\n \"With --verify, exit nonzero when verification fails (merge-safety gate parity with pm validate)\",\n )\n .option(\"--fail-on-warn\", \"Alias for --strict-exit\")\n .option(\"--format <value>\", \"History output format override: json|toon\")\n .description(\"Show item history entries.\")\n .action(runHistoryAction);\n }\n\n if (shouldRegister(\"activity\")) {\n program\n .command(\"activity\")\n .option(\"--id <value>\", \"Filter by item ID\")\n .option(\"--op <value>\", \"Filter by history operation\")\n .option(\"--author <value>\", \"Filter by history author\")\n .option(\n \"--from <value>\",\n \"Lower timestamp bound (ISO/date string or relative)\",\n )\n .option(\n \"--to <value>\",\n \"Upper timestamp bound (ISO/date string or relative)\",\n )\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\n \"--compact\",\n \"Condensed output: show only id, op, ts, author, msg per entry\",\n )\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\n \"--stream [mode]\",\n \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\",\n )\n .description(\"Show recent activity across items.\")\n .action(runActivityAction);\n }\n\n if (shouldRegister(\"graph\")) {\n program\n .command(\"graph\")\n .argument(\n \"<subcommand>\",\n \"Graph query (ancestors, descendants, predecessors, successors, paths, impact, analyze, audit, communities, redundancy, dominators, plan)\",\n )\n .argument(\"[id]\", \"Root item id (traversals, paths, impact, and dominators)\")\n .argument(\"[target]\", \"Target item id (paths only)\")\n .option(\n \"--kind <value>\",\n \"Restrict traversal to registered relationship kinds (repeatable or comma-separated)\",\n collect,\n )\n .option(\n \"--max-depth <value>\",\n \"Maximum traversal depth (non-negative integer)\",\n )\n .option(\"--limit <value>\", \"Maximum returned rows per bounded collection\")\n .option(\n \"--after <value>\",\n \"Resume a traversal after this previously returned node id\",\n )\n .option(\n \"--direction <value>\",\n \"Edge orientation for paths/impact (outgoing, incoming, or both)\",\n )\n .option(\"--max-paths <value>\", \"Maximum enumerated paths (paths only)\")\n .option(\n \"--sample <value>\",\n \"Maximum evidence sample entries per audit finding (audit only)\",\n )\n .option(\n \"--exempt-isolate <value>\",\n \"Item ids treated as explicitly valid isolates by the audit (repeatable or comma-separated)\",\n collect,\n )\n .option(\"--summary\", \"Return counts-first envelopes without row collections\")\n .description(\n \"Bounded workspace relationship-graph queries, analytics, and governance audit.\",\n )\n .action(runGraphAction);\n }\n}\n\n/** Public contract for test only register list query, shared by SDK and presentation-layer consumers. */\nexport const _testOnlyRegisterListQuery = {\n resolveReadCommandOutputFormat,\n parseListFormat,\n};\n"],"names":[],"mappings":"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","debugId":"edb69c5e-c206-57cb-96cf-c239f3ba457a"}
@@ -4,7 +4,7 @@
4
4
  * Provides CLI runtime support for Register Mutation.
5
5
  */
6
6
 
7
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="837f2f00-e158-5f8b-ac79-87394a7dd62c")}catch(e){}}();
7
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="fc9d76b6-fd0e-56a0-b84f-e162216e78d1")}catch(e){}}();
8
8
  import { Option } from "commander";
9
9
  import { resolveBodyFileContent } from "../core/io/body-file.js";
10
10
  import { EXIT_CODE } from "../core/shared/constants.js";
@@ -13,6 +13,7 @@ import { PmCliError } from "../core/shared/errors.js";
13
13
  import { isPureSnakeCaseAlias } from "../core/shared/option-alias-visibility.js";
14
14
  import { CREATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, UPDATE_COMMANDER_OPTION_REGISTRATION_CONTRACTS, } from "../sdk/cli-contracts.js";
15
15
  import { BUILTIN_ITEM_TYPE_VALUES } from "../types/index.js";
16
+ import { MERGE_DRIVER_ARTIFACT_VALUES, runMergeDriver, runMergeInstall, } from "./commands/merge.js";
16
17
  // Lowercase set of built-in type names ("epic", "feature", ...) used by the
17
18
  // `pm create` positional guard (pm-edge #1, 2026-05-28): if the single
18
19
  // positional exactly matches a known type AND no --title was given, we throw
@@ -715,6 +716,47 @@ function parseNonNegativeIntFlag(raw, flag) {
715
716
  }
716
717
  return Number.parseInt(raw, 10);
717
718
  }
719
+ async function runMergeAction(subcommand, artifact, base, ours, theirs, options, command) {
720
+ const globalOptions = getGlobalOptions(command);
721
+ const startedAt = Date.now();
722
+ const normalized = subcommand.trim().toLowerCase();
723
+ if (normalized === "install") {
724
+ if (artifact !== undefined) {
725
+ throw new PmCliError("merge install takes no positional arguments.", EXIT_CODE.USAGE);
726
+ }
727
+ const result = await runMergeInstall({ dryRun: options.dryRun === true }, globalOptions);
728
+ printResult(result, globalOptions);
729
+ }
730
+ else if (normalized === "driver") {
731
+ if (artifact === undefined ||
732
+ base === undefined ||
733
+ ours === undefined ||
734
+ theirs === undefined) {
735
+ throw new PmCliError("merge driver requires <artifact> <base> <ours> <theirs> (git supplies %O %A %B). Example: pm merge driver history %O %A %B", EXIT_CODE.USAGE);
736
+ }
737
+ const result = await runMergeDriver({
738
+ artifact,
739
+ basePath: base,
740
+ oursPath: ours,
741
+ theirsPath: theirs,
742
+ outputPath: typeof options.output === "string" ? options.output : undefined,
743
+ itemPath: typeof options.itemPath === "string" ? options.itemPath : undefined,
744
+ prefer: typeof options.prefer === "string" ? options.prefer : undefined,
745
+ }, globalOptions);
746
+ printResult(result, globalOptions);
747
+ if (!result.ok) {
748
+ // Nonzero exit tells git the path is still conflicted; the merged file
749
+ // stays parseable with the preferred side's values.
750
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
751
+ }
752
+ }
753
+ else {
754
+ throw new PmCliError(`Unknown merge subcommand "${subcommand}". Supported subcommands: install, driver.`, EXIT_CODE.USAGE);
755
+ }
756
+ if (globalOptions.profile) {
757
+ printError(`profile:command=merge took_ms=${Date.now() - startedAt}`);
758
+ }
759
+ }
718
760
  async function runHistoryCompactAction(id, options, command) {
719
761
  const globalOptions = getGlobalOptions(command);
720
762
  const startedAt = Date.now();
@@ -1332,6 +1374,8 @@ export function registerMutationCommands(program) {
1332
1374
  .option("--estimate, --estimated-minutes <value>", "Set estimated minutes")
1333
1375
  .option("--acceptance-criteria <value>", "Set acceptance criteria")
1334
1376
  .option("--ac <value>", "Alias for --acceptance-criteria")
1377
+ .option("--add-ac <value>", "Add one semicolon-free acceptance criterion without replacing the existing list (repeatable)", collect)
1378
+ .option("--remove-ac <value>", "Remove one semicolon-free acceptance criterion by exact text match (repeatable)", collect)
1335
1379
  .option("--definition-of-ready <value>", "Set definition of ready")
1336
1380
  .option("--order <value>", "Set planning order/rank integer")
1337
1381
  .option("--rank <value>", "Alias for --order")
@@ -1419,6 +1463,8 @@ export function registerMutationCommands(program) {
1419
1463
  ["--type_option <value>", "Alias for --type-option"],
1420
1464
  ["--add_tags <value>", "Alias for --add-tags"],
1421
1465
  ["--remove_tags <value>", "Alias for --remove-tags"],
1466
+ ["--add_ac <value>", "Alias for --add-ac"],
1467
+ ["--remove_ac <value>", "Alias for --remove-ac"],
1422
1468
  ], true);
1423
1469
  updateManyCommand.action(runUpdateManyAction);
1424
1470
  const closeCommand = program
@@ -1706,6 +1752,19 @@ export function registerMutationCommands(program) {
1706
1752
  .option("--force", "Force ownership/lock override")
1707
1753
  .description("Compact item history streams into a synthetic baseline plus retained tail entries. Pass an item id for one stream, or a bulk selector (--ids/--all-over/--closed/--all-streams) to compact many.")
1708
1754
  .action(runHistoryCompactAction);
1755
+ program
1756
+ .command("merge")
1757
+ .argument("<subcommand>", "Merge subcommand: install, driver")
1758
+ .argument("[artifact]", `driver only: artifact class to merge (${MERGE_DRIVER_ARTIFACT_VALUES.join(", ")})`)
1759
+ .argument("[base]", "driver only: common-ancestor file path (git %O)")
1760
+ .argument("[ours]", "driver only: current-branch file path (git %A)")
1761
+ .argument("[theirs]", "driver only: other-branch file path (git %B)")
1762
+ .option("--dry-run", "install only: preview .gitattributes and git config changes without writing")
1763
+ .option("--output <path>", "driver only: write the merged content to this path instead of the ours path")
1764
+ .option("--item-path <path>", "driver only: original repository-relative path supplied by git as %P")
1765
+ .option("--prefer <side>", "driver only: side that wins unresolvable conflicts (ours|theirs; default ours)")
1766
+ .description("Install or run field-aware Git merge drivers for tracker data.")
1767
+ .action(runMergeAction);
1709
1768
  const schemaCommand = program
1710
1769
  .command("schema")
1711
1770
  .argument("[subcommand]", "Schema subcommand: list, show, show-status, add-type, remove-type, add-status, remove-status, or a custom item type name shorthand")
@@ -1848,4 +1907,4 @@ export function registerMutationCommands(program) {
1848
1907
  .action(runDepsAction);
1849
1908
  }
1850
1909
  //# sourceMappingURL=register-mutation.js.map
1851
- //# debugId=837f2f00-e158-5f8b-ac79-87394a7dd62c
1910
+ //# debugId=fc9d76b6-fd0e-56a0-b84f-e162216e78d1