@unbrained/pm-cli 2026.6.5 → 2026.6.6

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 (413) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/CONTRIBUTING.md +1 -0
  3. package/README.md +12 -4
  4. package/dist/cli/commands/completion.js +21 -7
  5. package/dist/cli/commands/completion.js.map +1 -1
  6. package/dist/cli/commands/contracts.js +5 -3
  7. package/dist/cli/commands/contracts.js.map +1 -1
  8. package/dist/cli/commands/gc.d.ts +8 -1
  9. package/dist/cli/commands/gc.js +26 -3
  10. package/dist/cli/commands/gc.js.map +1 -1
  11. package/dist/cli/commands/health.js +15 -2
  12. package/dist/cli/commands/health.js.map +1 -1
  13. package/dist/cli/commands/history.d.ts +4 -1
  14. package/dist/cli/commands/history.js +12 -24
  15. package/dist/cli/commands/history.js.map +1 -1
  16. package/dist/cli/commands/index.d.ts +1 -0
  17. package/dist/cli/commands/index.js +3 -2
  18. package/dist/cli/commands/index.js.map +1 -1
  19. package/dist/cli/commands/stats.d.ts +8 -1
  20. package/dist/cli/commands/stats.js +18 -17
  21. package/dist/cli/commands/stats.js.map +1 -1
  22. package/dist/cli/commands/telemetry.d.ts +8 -0
  23. package/dist/cli/commands/telemetry.js +253 -0
  24. package/dist/cli/commands/telemetry.js.map +1 -0
  25. package/dist/cli/help-content.js +11 -2
  26. package/dist/cli/help-content.js.map +1 -1
  27. package/dist/cli/register-list-query.js +7 -4
  28. package/dist/cli/register-list-query.js.map +1 -1
  29. package/dist/cli/register-operations.js +29 -6
  30. package/dist/cli/register-operations.js.map +1 -1
  31. package/dist/cli-bundle/chunks/activity-CVXTCHYY.js +16 -0
  32. package/dist/cli-bundle/chunks/{activity-3RWRRNOW.js → activity-JM6DTDND.js} +11 -11
  33. package/dist/cli-bundle/chunks/{aggregate-J35K7WZB.js → aggregate-GI7WSZPH.js} +10 -10
  34. package/dist/cli-bundle/chunks/{aggregate-OOAGKWRG.js → aggregate-VNAHUNNF.js} +10 -10
  35. package/dist/cli-bundle/chunks/{append-5JE3YGXU.js → append-7H5N64R2.js} +8 -8
  36. package/dist/cli-bundle/chunks/{append-PNN6UIBZ.js → append-WMKRXKCE.js} +8 -8
  37. package/dist/cli-bundle/chunks/{chunk-D5X7N6FI.js → chunk-23YFZ3IG.js} +12 -12
  38. package/dist/cli-bundle/chunks/{chunk-FVXM3GKS.js → chunk-2HVRUSQA.js} +3 -3
  39. package/dist/cli-bundle/chunks/{chunk-V3JQ4IPL.js → chunk-2RSPZI5H.js} +102 -22
  40. package/dist/cli-bundle/chunks/chunk-2RSPZI5H.js.map +1 -0
  41. package/dist/cli-bundle/chunks/{chunk-SZQCER6S.js → chunk-2VBQ6ZXS.js} +2 -2
  42. package/dist/cli-bundle/chunks/{chunk-A6PEXMYN.js → chunk-2VVCGBNV.js} +9 -9
  43. package/dist/cli-bundle/chunks/{chunk-UOVLWB47.js → chunk-3BWOVLTH.js} +8 -8
  44. package/dist/cli-bundle/chunks/{chunk-5IRA6IYD.js → chunk-3FI4SEFT.js} +5 -5
  45. package/dist/cli-bundle/chunks/{chunk-3OH4DAEB.js → chunk-3LB74A67.js} +6 -6
  46. package/dist/cli-bundle/chunks/{chunk-GFWHHMVV.js → chunk-3VAM3NNM.js} +3 -3
  47. package/dist/cli-bundle/chunks/{chunk-4QCR4QW3.js → chunk-4LL6TK5B.js} +5 -5
  48. package/dist/cli-bundle/chunks/{chunk-TBQVUNVH.js → chunk-52MAOQ6J.js} +4 -4
  49. package/dist/cli-bundle/chunks/{chunk-5KB4X7YY.js → chunk-5FDATVEZ.js} +4 -4
  50. package/dist/cli-bundle/chunks/{chunk-4LTBNUYT.js → chunk-5SFCOO6B.js} +76 -7
  51. package/dist/cli-bundle/chunks/{chunk-4LTBNUYT.js.map → chunk-5SFCOO6B.js.map} +1 -1
  52. package/dist/cli-bundle/chunks/{chunk-GCAVRLGE.js → chunk-6ER6DXH5.js} +9 -9
  53. package/dist/cli-bundle/chunks/{chunk-26KTVXJW.js → chunk-6P6GGMOG.js} +2 -2
  54. package/dist/cli-bundle/chunks/{chunk-MISYRLEP.js → chunk-77GFDHGF.js} +2 -2
  55. package/dist/cli-bundle/chunks/{chunk-HPH6X4ZZ.js → chunk-AO442XLN.js} +3 -3
  56. package/dist/cli-bundle/chunks/{chunk-ORTLYVA4.js → chunk-AY43SBIN.js} +6 -6
  57. package/dist/cli-bundle/chunks/{chunk-D3WUNETC.js → chunk-BQHUILZS.js} +5 -5
  58. package/dist/cli-bundle/chunks/{chunk-KCMIYKTA.js → chunk-E5FJNAZA.js} +3 -3
  59. package/dist/cli-bundle/chunks/{chunk-OIQIXTNB.js → chunk-ECCMVXGM.js} +3 -3
  60. package/dist/cli-bundle/chunks/{chunk-5PAOPUZX.js → chunk-FRAUKRU2.js} +5 -5
  61. package/dist/cli-bundle/chunks/{chunk-JQI2HE55.js → chunk-GCOQW437.js} +3 -3
  62. package/dist/cli-bundle/chunks/{chunk-CWT53EYT.js → chunk-GGYWB3Y2.js} +6 -6
  63. package/dist/cli-bundle/chunks/{chunk-ATBVS6WW.js → chunk-GU2ZJ2VV.js} +5 -5
  64. package/dist/cli-bundle/chunks/{chunk-ASQM3IF5.js → chunk-GXSUPCBV.js} +5 -4
  65. package/dist/cli-bundle/chunks/{chunk-SSFMJCPF.js → chunk-HZGUAH22.js} +2 -2
  66. package/dist/cli-bundle/chunks/{chunk-GPGAYASV.js → chunk-I2HSTRJF.js} +5 -5
  67. package/dist/cli-bundle/chunks/{chunk-RQAWLSUU.js → chunk-I6BNFU5X.js} +3 -3
  68. package/dist/cli-bundle/chunks/{chunk-OUF3ARDX.js → chunk-IJGCZSIQ.js} +12 -12
  69. package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js +1491 -0
  70. package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js.map +1 -0
  71. package/dist/cli-bundle/chunks/{chunk-XX5LRINW.js → chunk-KAG77BY3.js} +2 -2
  72. package/dist/cli-bundle/chunks/{chunk-BNL6S7QH.js → chunk-KJ33AOCY.js} +3 -3
  73. package/dist/cli-bundle/chunks/{chunk-4PJQSECJ.js → chunk-KJE2FOS4.js} +2 -2
  74. package/dist/cli-bundle/chunks/{chunk-GNHVV4SY.js → chunk-KWU6HG75.js} +37 -14
  75. package/dist/cli-bundle/chunks/chunk-KWU6HG75.js.map +1 -0
  76. package/dist/cli-bundle/chunks/{chunk-KBG47ZOY.js → chunk-LB3RUL2N.js} +3 -3
  77. package/dist/cli-bundle/chunks/{chunk-HZOS2UG5.js → chunk-LCM63IXU.js} +2 -2
  78. package/dist/cli-bundle/chunks/{chunk-VGO2T3TY.js → chunk-ME2YH6FN.js} +7 -7
  79. package/dist/cli-bundle/chunks/{chunk-ZRVSMOMR.js → chunk-MITFDD35.js} +12 -12
  80. package/dist/cli-bundle/chunks/{chunk-Y2AKE2HS.js → chunk-N7ACFE26.js} +3 -3
  81. package/dist/cli-bundle/chunks/{chunk-AXXKLVTW.js → chunk-NUZ5HKR4.js} +2 -2
  82. package/dist/cli-bundle/chunks/{chunk-KK6YPGH3.js → chunk-OVQCEJPG.js} +2 -2
  83. package/dist/cli-bundle/chunks/{chunk-B3N4TKNL.js → chunk-OZ7NSQHL.js} +8 -8
  84. package/dist/cli-bundle/chunks/{chunk-TK633IVD.js → chunk-PDDFYW4X.js} +5 -5
  85. package/dist/cli-bundle/chunks/{chunk-DFIZGAI5.js → chunk-PIU6RSL3.js} +9 -9
  86. package/dist/cli-bundle/chunks/{chunk-O5IBJE6S.js → chunk-PO3GSVFV.js} +2 -2
  87. package/dist/cli-bundle/chunks/{chunk-WIKR7KFL.js → chunk-PRJCELV4.js} +108 -21
  88. package/dist/cli-bundle/chunks/chunk-PRJCELV4.js.map +7 -0
  89. package/dist/cli-bundle/chunks/{chunk-ZQ4F6EC4.js → chunk-PROOHX4K.js} +38 -15
  90. package/dist/cli-bundle/chunks/chunk-PROOHX4K.js.map +7 -0
  91. package/dist/cli-bundle/chunks/{chunk-N5YF3VFN.js → chunk-Q7SPNHLW.js} +8 -8
  92. package/dist/cli-bundle/chunks/{chunk-RANZIID5.js → chunk-QO7EBBOM.js} +2 -2
  93. package/dist/cli-bundle/chunks/{chunk-LDJK7SHN.js → chunk-R6UFP2GE.js} +7 -7
  94. package/dist/cli-bundle/chunks/{chunk-CCUFLH4J.js → chunk-RWPSOIEE.js} +7 -7
  95. package/dist/cli-bundle/chunks/{chunk-UFCG3SWR.js → chunk-RZN6VURO.js} +3 -3
  96. package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js +1501 -0
  97. package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js.map +7 -0
  98. package/dist/cli-bundle/chunks/{chunk-KA24HME7.js → chunk-T3LC5LKB.js} +2 -2
  99. package/dist/cli-bundle/chunks/{chunk-NQP3ECKF.js → chunk-TCD3R2PF.js} +2 -2
  100. package/dist/cli-bundle/chunks/{chunk-EHXPIKKP.js → chunk-TPH5XEVD.js} +3 -3
  101. package/dist/cli-bundle/chunks/{chunk-SRVKTWPR.js → chunk-U5SXYXSY.js} +75 -6
  102. package/dist/cli-bundle/chunks/{chunk-SRVKTWPR.js.map → chunk-U5SXYXSY.js.map} +2 -2
  103. package/dist/cli-bundle/chunks/{chunk-T2ORWB6D.js → chunk-UBOPJT3S.js} +9 -9
  104. package/dist/cli-bundle/chunks/{chunk-S3CV7JGJ.js → chunk-UM2GBHS4.js} +5 -4
  105. package/dist/cli-bundle/chunks/{chunk-G5BACLYH.js → chunk-W7XABV4H.js} +8 -8
  106. package/dist/cli-bundle/chunks/{chunk-K47WAYQV.js → chunk-WKY2IBOQ.js} +3 -3
  107. package/dist/cli-bundle/chunks/{chunk-7K24QB23.js → chunk-WOPXVEZP.js} +5 -5
  108. package/dist/cli-bundle/chunks/{chunk-DFUSXJDE.js → chunk-WSMOSYRD.js} +12 -12
  109. package/dist/cli-bundle/chunks/{chunk-CJDQB2ED.js → chunk-XLTD2HN3.js} +2 -2
  110. package/dist/cli-bundle/chunks/{chunk-TQ3ZK6VD.js → chunk-XSJCLN2R.js} +3 -3
  111. package/dist/cli-bundle/chunks/{chunk-XG7RJYHV.js → chunk-XTGLRY2Y.js} +6 -6
  112. package/dist/cli-bundle/chunks/{chunk-JB4RGL4V.js → chunk-YL2DJGYS.js} +7 -7
  113. package/dist/cli-bundle/chunks/{claim-AZLP7YFO.js → claim-4DBF6RVG.js} +10 -10
  114. package/dist/cli-bundle/chunks/{claim-ZFA7HKU4.js → claim-X2P4IB7J.js} +10 -10
  115. package/dist/cli-bundle/chunks/close-3HDWDA3L.js +13 -0
  116. package/dist/cli-bundle/chunks/{close-65DFYAVS.js → close-PTYFA45H.js} +8 -8
  117. package/dist/cli-bundle/chunks/{close-many-UKZSQGM7.js → close-many-7CGIDPTJ.js} +15 -15
  118. package/dist/cli-bundle/chunks/{close-many-AKPZNSGI.js → close-many-ERFO6LHR.js} +15 -15
  119. package/dist/cli-bundle/chunks/{comments-CJWXQI7X.js → comments-OONGABK5.js} +10 -10
  120. package/dist/cli-bundle/chunks/{comments-AGBNSJJH.js → comments-QKBYCWKD.js} +10 -10
  121. package/dist/cli-bundle/chunks/{config-DDPYIA6J.js → config-6FXCQKIF.js} +8 -8
  122. package/dist/cli-bundle/chunks/{config-5ON3ADRH.js → config-U4RZ4CQB.js} +8 -8
  123. package/dist/cli-bundle/chunks/{context-E6U3DWVM.js → context-FYYJGFWS.js} +13 -13
  124. package/dist/cli-bundle/chunks/{context-ZOJEN5VT.js → context-YMJ3Z2HQ.js} +13 -13
  125. package/dist/cli-bundle/chunks/{contracts-LCSX5R53.js → contracts-QDB6OMLQ.js} +10 -6
  126. package/dist/cli-bundle/chunks/contracts-QDB6OMLQ.js.map +1 -0
  127. package/dist/cli-bundle/chunks/{contracts-CXSFM45B.js → contracts-RFSPGVVJ.js} +9 -5
  128. package/dist/cli-bundle/chunks/{contracts-LCSX5R53.js.map → contracts-RFSPGVVJ.js.map} +7 -1
  129. package/dist/cli-bundle/chunks/{create-WYFKN2U4.js → create-I5L4EYYZ.js} +13 -13
  130. package/dist/cli-bundle/chunks/create-JTZNCTQC.js +27 -0
  131. package/dist/cli-bundle/chunks/{delete-ZXWC56WO.js → delete-7HPGI4GZ.js} +7 -7
  132. package/dist/cli-bundle/chunks/{delete-RONNH4F4.js → delete-VXUPH5RS.js} +7 -7
  133. package/dist/cli-bundle/chunks/{deps-WII3O4HB.js → deps-JSRRWC3Z.js} +7 -7
  134. package/dist/cli-bundle/chunks/{deps-EHXIFOZR.js → deps-SCZIFK2Z.js} +7 -7
  135. package/dist/cli-bundle/chunks/{docs-PDREIMLS.js → docs-GJK6K4VP.js} +9 -9
  136. package/dist/cli-bundle/chunks/{docs-JMVCFNHH.js → docs-WW4N3MBM.js} +9 -9
  137. package/dist/cli-bundle/chunks/{extension-G6UXSM5S.js → extension-J7IBMFTD.js} +4 -4
  138. package/dist/cli-bundle/chunks/{extension-B4ROVWJD.js → extension-VDY2U33M.js} +4 -4
  139. package/dist/cli-bundle/chunks/{files-2PN7UM2D.js → files-ISZJGILQ.js} +9 -9
  140. package/dist/cli-bundle/chunks/{files-MXYS5W4M.js → files-WKOD326U.js} +9 -9
  141. package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js +362 -0
  142. package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js.map +1 -0
  143. package/dist/cli-bundle/chunks/gc-ULPVWMTN.js +372 -0
  144. package/dist/cli-bundle/chunks/gc-ULPVWMTN.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{get-WXMLRG7M.js → get-RV37HT3G.js} +10 -10
  146. package/dist/cli-bundle/chunks/{get-CINFEUIY.js → get-WXU6WI5P.js} +10 -10
  147. package/dist/cli-bundle/chunks/{health-IT5DBPRJ.js → health-6L6EH4WR.js} +26 -13
  148. package/dist/cli-bundle/chunks/health-6L6EH4WR.js.map +7 -0
  149. package/dist/cli-bundle/chunks/{health-5VPOJQ53.js → health-LOI2HHKB.js} +27 -14
  150. package/dist/cli-bundle/chunks/health-LOI2HHKB.js.map +1 -0
  151. package/dist/cli-bundle/chunks/history-2BA3T5AE.js +20 -0
  152. package/dist/cli-bundle/chunks/{history-FLZIP7PM.js → history-PKN67D5O.js} +10 -10
  153. package/dist/cli-bundle/chunks/history-redact-JBZNXHGR.js +19 -0
  154. package/dist/cli-bundle/chunks/{history-redact-SSZBAD76.js → history-redact-V4FOJGS7.js} +11 -11
  155. package/dist/cli-bundle/chunks/{history-repair-KC5ZOJRZ.js → history-repair-HIBCBIKK.js} +11 -11
  156. package/dist/cli-bundle/chunks/{history-repair-X7CO5JJZ.js → history-repair-SDMHR7JT.js} +11 -11
  157. package/dist/cli-bundle/chunks/init-HIVSNX3O.js +16 -0
  158. package/dist/cli-bundle/chunks/{init-6MRFVOLH.js → init-P56QYWJF.js} +8 -8
  159. package/dist/cli-bundle/chunks/{learnings-DCX55BNX.js → learnings-GDFRG5J7.js} +10 -10
  160. package/dist/cli-bundle/chunks/{learnings-A3CLB5CO.js → learnings-MIXSESLK.js} +10 -10
  161. package/dist/cli-bundle/chunks/{list-DBRECOG4.js → list-FGOWQMSM.js} +10 -10
  162. package/dist/cli-bundle/chunks/list-MUSQNMTD.js +20 -0
  163. package/dist/cli-bundle/chunks/{notes-42LIC3UE.js → notes-4XVSH2AZ.js} +10 -10
  164. package/dist/cli-bundle/chunks/{notes-P5O3VMQ3.js → notes-5UK3GEH2.js} +10 -10
  165. package/dist/cli-bundle/chunks/{plan-IGTE3WOJ.js → plan-DUMBV3QB.js} +13 -13
  166. package/dist/cli-bundle/chunks/{plan-HDQXEUKD.js → plan-SLMODHWX.js} +13 -13
  167. package/dist/cli-bundle/chunks/{register-list-query-EMNSIUO4.js → register-list-query-POCFZ5JW.js} +24 -22
  168. package/dist/cli-bundle/chunks/{register-list-query-EMNSIUO4.js.map → register-list-query-POCFZ5JW.js.map} +1 -1
  169. package/dist/cli-bundle/chunks/{register-list-query-AG3XKXWL.js → register-list-query-WST76HSQ.js} +23 -21
  170. package/dist/cli-bundle/chunks/{register-list-query-AG3XKXWL.js.map → register-list-query-WST76HSQ.js.map} +2 -2
  171. package/dist/cli-bundle/chunks/{register-mutation-M3YS6XDO.js → register-mutation-N5GSUZJV.js} +30 -30
  172. package/dist/cli-bundle/chunks/{register-mutation-RSMT6DPK.js → register-mutation-OA675SOU.js} +30 -30
  173. package/dist/cli-bundle/chunks/{register-operations-KYUOOOOD.js → register-operations-GNHBE5I3.js} +47 -34
  174. package/dist/cli-bundle/chunks/register-operations-GNHBE5I3.js.map +1 -0
  175. package/dist/cli-bundle/chunks/{register-operations-Q54JQZUN.js → register-operations-N3PMHXH5.js} +46 -33
  176. package/dist/cli-bundle/chunks/{register-operations-Q54JQZUN.js.map → register-operations-N3PMHXH5.js.map} +2 -2
  177. package/dist/cli-bundle/chunks/{register-setup-DI6P7X75.js → register-setup-JIMPKJKV.js} +15 -15
  178. package/dist/cli-bundle/chunks/{register-setup-YJKIQRKA.js → register-setup-ZHJI2DI3.js} +15 -15
  179. package/dist/cli-bundle/chunks/restore-D4RGNX33.js +17 -0
  180. package/dist/cli-bundle/chunks/{restore-2XVTBLKQ.js → restore-PBL6T5TW.js} +11 -11
  181. package/dist/cli-bundle/chunks/{schema-V6BX65Q2.js → schema-2NOO6NGB.js} +8 -8
  182. package/dist/cli-bundle/chunks/{schema-LVXZWFGY.js → schema-EBI4NLUO.js} +8 -8
  183. package/dist/cli-bundle/chunks/{search-C7NPB7G7.js → search-JPUQTVCY.js} +10 -10
  184. package/dist/cli-bundle/chunks/{search-5A3BMFA7.js → search-OA6JX27A.js} +10 -10
  185. package/dist/cli-bundle/chunks/stats-CV54BAWY.js +202 -0
  186. package/dist/cli-bundle/chunks/stats-CV54BAWY.js.map +1 -0
  187. package/dist/cli-bundle/chunks/stats-XYB6KTFG.js +212 -0
  188. package/dist/cli-bundle/chunks/stats-XYB6KTFG.js.map +7 -0
  189. package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js +251 -0
  190. package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js.map +7 -0
  191. package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js +248 -0
  192. package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js.map +1 -0
  193. package/dist/cli-bundle/chunks/{test-RJ4ZF35X.js → test-MXX3E5JL.js} +13 -13
  194. package/dist/cli-bundle/chunks/{test-OFYONO3C.js → test-WBROAJIE.js} +13 -13
  195. package/dist/cli-bundle/chunks/{test-all-OJE6CIO7.js → test-all-N6NSRDTV.js} +13 -13
  196. package/dist/cli-bundle/chunks/{test-all-EEMKNTGU.js → test-all-NTOZ7C3M.js} +13 -13
  197. package/dist/cli-bundle/chunks/{test-runs-IPOPFOAF.js → test-runs-V6A7LPWZ.js} +5 -5
  198. package/dist/cli-bundle/chunks/{test-runs-L2M7WKH7.js → test-runs-WMVTQU3Y.js} +5 -5
  199. package/dist/cli-bundle/chunks/update-OSV3NAQB.js +25 -0
  200. package/dist/cli-bundle/chunks/update-YRXSUGYQ.js +21 -0
  201. package/dist/cli-bundle/chunks/{update-many-DYWGW57M.js → update-many-EM6OXYGO.js} +22 -22
  202. package/dist/cli-bundle/chunks/{update-many-322CCH2L.js → update-many-KGGEYABR.js} +22 -22
  203. package/dist/cli-bundle/chunks/{upgrade-2U727SAM.js → upgrade-BLI7XBAJ.js} +4 -4
  204. package/dist/cli-bundle/chunks/{upgrade-3W3RVSNM.js → upgrade-LXPOQKFV.js} +4 -4
  205. package/dist/cli-bundle/chunks/{validate-ZFVWPEEN.js → validate-AGOAUOVW.js} +15 -15
  206. package/dist/cli-bundle/chunks/{validate-GZ24NYHO.js → validate-L5J6A7YO.js} +15 -15
  207. package/dist/cli-bundle/main.js +42 -1451
  208. package/dist/cli-bundle/main.js.map +4 -4
  209. package/dist/core/history/history-diff.d.ts +47 -0
  210. package/dist/core/history/history-diff.js +152 -0
  211. package/dist/core/history/history-diff.js.map +1 -0
  212. package/dist/core/history/history-storage-stats.d.ts +31 -0
  213. package/dist/core/history/history-storage-stats.js +101 -0
  214. package/dist/core/history/history-storage-stats.js.map +1 -0
  215. package/dist/core/lock/lock-gc.d.ts +46 -0
  216. package/dist/core/lock/lock-gc.js +194 -0
  217. package/dist/core/lock/lock-gc.js.map +1 -0
  218. package/dist/core/shared/serial-queue.d.ts +12 -0
  219. package/dist/core/shared/serial-queue.js +43 -0
  220. package/dist/core/shared/serial-queue.js.map +1 -0
  221. package/dist/core/store/settings.d.ts +19 -1
  222. package/dist/core/store/settings.js +92 -7
  223. package/dist/core/store/settings.js.map +1 -1
  224. package/dist/core/telemetry/observability.js +3 -3
  225. package/dist/core/telemetry/observability.js.map +1 -1
  226. package/dist/core/telemetry/runtime.js +16 -4
  227. package/dist/core/telemetry/runtime.js.map +1 -1
  228. package/dist/mcp/server.d.ts +1 -0
  229. package/dist/mcp/server.js +155 -37
  230. package/dist/mcp/server.js.map +1 -1
  231. package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
  232. package/dist/sdk/cli-contracts/enum-contracts.js +4 -2
  233. package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
  234. package/dist/sdk/cli-contracts/tool-parameter-tables.js +10 -7
  235. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  236. package/dist/sdk/cli-contracts.d.ts +23 -0
  237. package/dist/sdk/cli-contracts.js +41 -7
  238. package/dist/sdk/cli-contracts.js.map +1 -1
  239. package/docs/AGENT_GUIDE.md +1 -1
  240. package/docs/ARCHITECTURE.md +11 -1
  241. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  242. package/docs/COMMANDS.md +33 -2
  243. package/docs/CONFIGURATION.md +9 -1
  244. package/docs/EXTENSIONS.md +7 -0
  245. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +73 -0
  246. package/docs/ONBOARDING.md +165 -0
  247. package/docs/QUICKSTART.md +1 -1
  248. package/docs/README.md +12 -4
  249. package/docs/RELEASING.md +36 -1
  250. package/docs/TESTING.md +19 -1
  251. package/package.json +5 -2
  252. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  253. package/plugins/pm-claude/README.md +7 -4
  254. package/plugins/pm-claude/agents/pm-coordinator.md +1 -1
  255. package/plugins/pm-claude/commands/pm-init.md +1 -1
  256. package/dist/cli-bundle/chunks/activity-P5BUMWP3.js +0 -16
  257. package/dist/cli-bundle/chunks/chunk-GNHVV4SY.js.map +0 -1
  258. package/dist/cli-bundle/chunks/chunk-V3JQ4IPL.js.map +0 -1
  259. package/dist/cli-bundle/chunks/chunk-WIKR7KFL.js.map +0 -7
  260. package/dist/cli-bundle/chunks/chunk-ZQ4F6EC4.js.map +0 -7
  261. package/dist/cli-bundle/chunks/close-RMHQ3KWH.js +0 -13
  262. package/dist/cli-bundle/chunks/contracts-CXSFM45B.js.map +0 -7
  263. package/dist/cli-bundle/chunks/create-ATONSAZW.js +0 -27
  264. package/dist/cli-bundle/chunks/gc-GT552UJH.js +0 -178
  265. package/dist/cli-bundle/chunks/gc-GT552UJH.js.map +0 -1
  266. package/dist/cli-bundle/chunks/gc-QNBRJG6H.js +0 -181
  267. package/dist/cli-bundle/chunks/gc-QNBRJG6H.js.map +0 -7
  268. package/dist/cli-bundle/chunks/health-5VPOJQ53.js.map +0 -1
  269. package/dist/cli-bundle/chunks/health-IT5DBPRJ.js.map +0 -7
  270. package/dist/cli-bundle/chunks/history-6FC4H6HI.js +0 -20
  271. package/dist/cli-bundle/chunks/history-redact-XKYEZDBL.js +0 -19
  272. package/dist/cli-bundle/chunks/init-KHX3FEEM.js +0 -16
  273. package/dist/cli-bundle/chunks/list-53LZ2AEO.js +0 -20
  274. package/dist/cli-bundle/chunks/register-operations-KYUOOOOD.js.map +0 -1
  275. package/dist/cli-bundle/chunks/restore-JL5QIH7H.js +0 -17
  276. package/dist/cli-bundle/chunks/stats-FNLYVXTB.js +0 -120
  277. package/dist/cli-bundle/chunks/stats-FNLYVXTB.js.map +0 -1
  278. package/dist/cli-bundle/chunks/stats-Y2CBTZSL.js +0 -123
  279. package/dist/cli-bundle/chunks/stats-Y2CBTZSL.js.map +0 -7
  280. package/dist/cli-bundle/chunks/update-6YEHPVXH.js +0 -25
  281. package/dist/cli-bundle/chunks/update-PYLVHMRD.js +0 -21
  282. /package/dist/cli-bundle/chunks/{activity-P5BUMWP3.js.map → activity-CVXTCHYY.js.map} +0 -0
  283. /package/dist/cli-bundle/chunks/{activity-3RWRRNOW.js.map → activity-JM6DTDND.js.map} +0 -0
  284. /package/dist/cli-bundle/chunks/{aggregate-J35K7WZB.js.map → aggregate-GI7WSZPH.js.map} +0 -0
  285. /package/dist/cli-bundle/chunks/{aggregate-OOAGKWRG.js.map → aggregate-VNAHUNNF.js.map} +0 -0
  286. /package/dist/cli-bundle/chunks/{append-5JE3YGXU.js.map → append-7H5N64R2.js.map} +0 -0
  287. /package/dist/cli-bundle/chunks/{append-PNN6UIBZ.js.map → append-WMKRXKCE.js.map} +0 -0
  288. /package/dist/cli-bundle/chunks/{chunk-D5X7N6FI.js.map → chunk-23YFZ3IG.js.map} +0 -0
  289. /package/dist/cli-bundle/chunks/{chunk-FVXM3GKS.js.map → chunk-2HVRUSQA.js.map} +0 -0
  290. /package/dist/cli-bundle/chunks/{chunk-SZQCER6S.js.map → chunk-2VBQ6ZXS.js.map} +0 -0
  291. /package/dist/cli-bundle/chunks/{chunk-A6PEXMYN.js.map → chunk-2VVCGBNV.js.map} +0 -0
  292. /package/dist/cli-bundle/chunks/{chunk-UOVLWB47.js.map → chunk-3BWOVLTH.js.map} +0 -0
  293. /package/dist/cli-bundle/chunks/{chunk-5IRA6IYD.js.map → chunk-3FI4SEFT.js.map} +0 -0
  294. /package/dist/cli-bundle/chunks/{chunk-3OH4DAEB.js.map → chunk-3LB74A67.js.map} +0 -0
  295. /package/dist/cli-bundle/chunks/{chunk-GFWHHMVV.js.map → chunk-3VAM3NNM.js.map} +0 -0
  296. /package/dist/cli-bundle/chunks/{chunk-4QCR4QW3.js.map → chunk-4LL6TK5B.js.map} +0 -0
  297. /package/dist/cli-bundle/chunks/{chunk-TBQVUNVH.js.map → chunk-52MAOQ6J.js.map} +0 -0
  298. /package/dist/cli-bundle/chunks/{chunk-5KB4X7YY.js.map → chunk-5FDATVEZ.js.map} +0 -0
  299. /package/dist/cli-bundle/chunks/{chunk-GCAVRLGE.js.map → chunk-6ER6DXH5.js.map} +0 -0
  300. /package/dist/cli-bundle/chunks/{chunk-26KTVXJW.js.map → chunk-6P6GGMOG.js.map} +0 -0
  301. /package/dist/cli-bundle/chunks/{chunk-MISYRLEP.js.map → chunk-77GFDHGF.js.map} +0 -0
  302. /package/dist/cli-bundle/chunks/{chunk-HPH6X4ZZ.js.map → chunk-AO442XLN.js.map} +0 -0
  303. /package/dist/cli-bundle/chunks/{chunk-ORTLYVA4.js.map → chunk-AY43SBIN.js.map} +0 -0
  304. /package/dist/cli-bundle/chunks/{chunk-D3WUNETC.js.map → chunk-BQHUILZS.js.map} +0 -0
  305. /package/dist/cli-bundle/chunks/{chunk-KCMIYKTA.js.map → chunk-E5FJNAZA.js.map} +0 -0
  306. /package/dist/cli-bundle/chunks/{chunk-OIQIXTNB.js.map → chunk-ECCMVXGM.js.map} +0 -0
  307. /package/dist/cli-bundle/chunks/{chunk-5PAOPUZX.js.map → chunk-FRAUKRU2.js.map} +0 -0
  308. /package/dist/cli-bundle/chunks/{chunk-JQI2HE55.js.map → chunk-GCOQW437.js.map} +0 -0
  309. /package/dist/cli-bundle/chunks/{chunk-CWT53EYT.js.map → chunk-GGYWB3Y2.js.map} +0 -0
  310. /package/dist/cli-bundle/chunks/{chunk-ATBVS6WW.js.map → chunk-GU2ZJ2VV.js.map} +0 -0
  311. /package/dist/cli-bundle/chunks/{chunk-ASQM3IF5.js.map → chunk-GXSUPCBV.js.map} +0 -0
  312. /package/dist/cli-bundle/chunks/{chunk-SSFMJCPF.js.map → chunk-HZGUAH22.js.map} +0 -0
  313. /package/dist/cli-bundle/chunks/{chunk-GPGAYASV.js.map → chunk-I2HSTRJF.js.map} +0 -0
  314. /package/dist/cli-bundle/chunks/{chunk-RQAWLSUU.js.map → chunk-I6BNFU5X.js.map} +0 -0
  315. /package/dist/cli-bundle/chunks/{chunk-OUF3ARDX.js.map → chunk-IJGCZSIQ.js.map} +0 -0
  316. /package/dist/cli-bundle/chunks/{chunk-XX5LRINW.js.map → chunk-KAG77BY3.js.map} +0 -0
  317. /package/dist/cli-bundle/chunks/{chunk-BNL6S7QH.js.map → chunk-KJ33AOCY.js.map} +0 -0
  318. /package/dist/cli-bundle/chunks/{chunk-4PJQSECJ.js.map → chunk-KJE2FOS4.js.map} +0 -0
  319. /package/dist/cli-bundle/chunks/{chunk-KBG47ZOY.js.map → chunk-LB3RUL2N.js.map} +0 -0
  320. /package/dist/cli-bundle/chunks/{chunk-HZOS2UG5.js.map → chunk-LCM63IXU.js.map} +0 -0
  321. /package/dist/cli-bundle/chunks/{chunk-VGO2T3TY.js.map → chunk-ME2YH6FN.js.map} +0 -0
  322. /package/dist/cli-bundle/chunks/{chunk-ZRVSMOMR.js.map → chunk-MITFDD35.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{chunk-Y2AKE2HS.js.map → chunk-N7ACFE26.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{chunk-AXXKLVTW.js.map → chunk-NUZ5HKR4.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{chunk-KK6YPGH3.js.map → chunk-OVQCEJPG.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{chunk-B3N4TKNL.js.map → chunk-OZ7NSQHL.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{chunk-TK633IVD.js.map → chunk-PDDFYW4X.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{chunk-DFIZGAI5.js.map → chunk-PIU6RSL3.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{chunk-O5IBJE6S.js.map → chunk-PO3GSVFV.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{chunk-N5YF3VFN.js.map → chunk-Q7SPNHLW.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{chunk-RANZIID5.js.map → chunk-QO7EBBOM.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{chunk-LDJK7SHN.js.map → chunk-R6UFP2GE.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{chunk-CCUFLH4J.js.map → chunk-RWPSOIEE.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{chunk-UFCG3SWR.js.map → chunk-RZN6VURO.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{chunk-KA24HME7.js.map → chunk-T3LC5LKB.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{chunk-NQP3ECKF.js.map → chunk-TCD3R2PF.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{chunk-EHXPIKKP.js.map → chunk-TPH5XEVD.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{chunk-T2ORWB6D.js.map → chunk-UBOPJT3S.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{chunk-S3CV7JGJ.js.map → chunk-UM2GBHS4.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{chunk-G5BACLYH.js.map → chunk-W7XABV4H.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{chunk-K47WAYQV.js.map → chunk-WKY2IBOQ.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{chunk-7K24QB23.js.map → chunk-WOPXVEZP.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{chunk-DFUSXJDE.js.map → chunk-WSMOSYRD.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{chunk-CJDQB2ED.js.map → chunk-XLTD2HN3.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{chunk-TQ3ZK6VD.js.map → chunk-XSJCLN2R.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{chunk-XG7RJYHV.js.map → chunk-XTGLRY2Y.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{chunk-JB4RGL4V.js.map → chunk-YL2DJGYS.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{claim-AZLP7YFO.js.map → claim-4DBF6RVG.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{claim-ZFA7HKU4.js.map → claim-X2P4IB7J.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{close-RMHQ3KWH.js.map → close-3HDWDA3L.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{close-65DFYAVS.js.map → close-PTYFA45H.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{close-many-UKZSQGM7.js.map → close-many-7CGIDPTJ.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{close-many-AKPZNSGI.js.map → close-many-ERFO6LHR.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{comments-CJWXQI7X.js.map → comments-OONGABK5.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{comments-AGBNSJJH.js.map → comments-QKBYCWKD.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{config-DDPYIA6J.js.map → config-6FXCQKIF.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{config-5ON3ADRH.js.map → config-U4RZ4CQB.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{context-E6U3DWVM.js.map → context-FYYJGFWS.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{context-ZOJEN5VT.js.map → context-YMJ3Z2HQ.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{create-WYFKN2U4.js.map → create-I5L4EYYZ.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{create-ATONSAZW.js.map → create-JTZNCTQC.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{delete-ZXWC56WO.js.map → delete-7HPGI4GZ.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{delete-RONNH4F4.js.map → delete-VXUPH5RS.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{deps-WII3O4HB.js.map → deps-JSRRWC3Z.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{deps-EHXIFOZR.js.map → deps-SCZIFK2Z.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{docs-PDREIMLS.js.map → docs-GJK6K4VP.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{docs-JMVCFNHH.js.map → docs-WW4N3MBM.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{extension-G6UXSM5S.js.map → extension-J7IBMFTD.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{extension-B4ROVWJD.js.map → extension-VDY2U33M.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{files-2PN7UM2D.js.map → files-ISZJGILQ.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{files-MXYS5W4M.js.map → files-WKOD326U.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{get-WXMLRG7M.js.map → get-RV37HT3G.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{get-CINFEUIY.js.map → get-WXU6WI5P.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{history-6FC4H6HI.js.map → history-2BA3T5AE.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{history-FLZIP7PM.js.map → history-PKN67D5O.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{history-redact-XKYEZDBL.js.map → history-redact-JBZNXHGR.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{history-redact-SSZBAD76.js.map → history-redact-V4FOJGS7.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{history-repair-KC5ZOJRZ.js.map → history-repair-HIBCBIKK.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{history-repair-X7CO5JJZ.js.map → history-repair-SDMHR7JT.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{init-KHX3FEEM.js.map → init-HIVSNX3O.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{init-6MRFVOLH.js.map → init-P56QYWJF.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{learnings-DCX55BNX.js.map → learnings-GDFRG5J7.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{learnings-A3CLB5CO.js.map → learnings-MIXSESLK.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{list-DBRECOG4.js.map → list-FGOWQMSM.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{list-53LZ2AEO.js.map → list-MUSQNMTD.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{notes-42LIC3UE.js.map → notes-4XVSH2AZ.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{notes-P5O3VMQ3.js.map → notes-5UK3GEH2.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{plan-IGTE3WOJ.js.map → plan-DUMBV3QB.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{plan-HDQXEUKD.js.map → plan-SLMODHWX.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{register-mutation-M3YS6XDO.js.map → register-mutation-N5GSUZJV.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{register-mutation-RSMT6DPK.js.map → register-mutation-OA675SOU.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{register-setup-DI6P7X75.js.map → register-setup-JIMPKJKV.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{register-setup-YJKIQRKA.js.map → register-setup-ZHJI2DI3.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{restore-JL5QIH7H.js.map → restore-D4RGNX33.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{restore-2XVTBLKQ.js.map → restore-PBL6T5TW.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{schema-V6BX65Q2.js.map → schema-2NOO6NGB.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{schema-LVXZWFGY.js.map → schema-EBI4NLUO.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{search-C7NPB7G7.js.map → search-JPUQTVCY.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{search-5A3BMFA7.js.map → search-OA6JX27A.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{test-RJ4ZF35X.js.map → test-MXX3E5JL.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{test-OFYONO3C.js.map → test-WBROAJIE.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{test-all-OJE6CIO7.js.map → test-all-N6NSRDTV.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{test-all-EEMKNTGU.js.map → test-all-NTOZ7C3M.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{test-runs-IPOPFOAF.js.map → test-runs-V6A7LPWZ.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{test-runs-L2M7WKH7.js.map → test-runs-WMVTQU3Y.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{update-6YEHPVXH.js.map → update-OSV3NAQB.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{update-PYLVHMRD.js.map → update-YRXSUGYQ.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{update-many-DYWGW57M.js.map → update-many-EM6OXYGO.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{update-many-322CCH2L.js.map → update-many-KGGEYABR.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{upgrade-2U727SAM.js.map → upgrade-BLI7XBAJ.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{upgrade-3W3RVSNM.js.map → upgrade-LXPOQKFV.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{validate-ZFVWPEEN.js.map → validate-AGOAUOVW.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{validate-GZ24NYHO.js.map → validate-L5J6A7YO.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../cli/register-list-query.ts"],"sourcesContent":["import { Option, type Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n\n\nexport interface RegisterListQueryCommandsOptions {\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(commandName: string, commandFilter?: Set<string>): 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\nexport function registerListQueryCommands(program: Command, options?: RegisterListQueryCommandsOptions): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean => shouldRegisterListQueryCommand(commandName, commandFilter);\n // Register a flag and hide it from --help text while keeping it functional as\n // a parse-time alias. Used for pure snake_case underscore-duplicate aliases\n // (e.g. --assignee_filter for --assignee-filter) so they no longer bloat\n // --help output. The option still appears in command.options, so JSON help\n // and completion are unchanged.\n function addHiddenOption(command: Command, flags: string, description: string): void {\n command.addOption(new Option(flags, description).hideHelp());\n }\n\n function registerListCommand(\n name: string,\n description: string,\n status?: ItemStatus,\n excludeTerminal?: boolean,\n allowStatusFilter?: boolean,\n defaultBrief?: boolean,\n ): void {\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\"--status <value>\", \"Filter by status\");\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", '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 .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--ids <value>\", \"Filter by explicit item IDs (comma-separated)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(\"--limit <n>\", \"Limit returned item count\")\n .option(\"--offset <n>\", \"Skip the first n matching rows before limit is applied\")\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\"--compact\", \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\")\n .option(\"--brief\", \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\")\n .option(\"--full\", \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\")\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(\"--sort <value>\", \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\")\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\")\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(options);\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 if (excludeTerminal) listOptions.excludeTerminal = true;\n const { runList } = await import(\"./commands/list.js\");\n const result = await runList(status, listOptions, globalOptions);\n const streamMode = options.stream === true;\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printListJsonStream(name, result, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=${name} took_ms=${Date.now() - startedAt}`);\n }\n });\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n }\n\n if (shouldRegister(\"list\")) {\n registerListCommand(\"list\", \"List active items with optional filters.\", undefined, true, true, true);\n }\n if (shouldRegister(\"list-all\")) {\n registerListCommand(\"list-all\", \"List all items with optional filters.\", undefined, false, true);\n }\n if (shouldRegister(\"list-draft\")) {\n registerListCommand(\"list-draft\", \"List draft items with optional filters.\", \"draft\");\n }\n if (shouldRegister(\"list-open\")) {\n registerListCommand(\"list-open\", \"List open items with optional filters.\", \"open\", false, false, true);\n }\n if (shouldRegister(\"list-in-progress\")) {\n registerListCommand(\"list-in-progress\", \"List in-progress items with optional filters.\", \"in_progress\", false, false, true);\n }\n if (shouldRegister(\"list-blocked\")) {\n registerListCommand(\"list-blocked\", \"List blocked items with optional filters.\", \"blocked\");\n }\n if (shouldRegister(\"list-closed\")) {\n registerListCommand(\"list-closed\", \"List closed items with optional filters.\", \"closed\");\n }\n if (shouldRegister(\"list-canceled\")) {\n registerListCommand(\"list-canceled\", \"List canceled items with optional filters.\", \"canceled\");\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(\"--include-unparented\", \"Include unparented rows when grouping by parent\")\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(aggregateCommand, \"--include_unparented\", \"Alias for --include-unparented\");\n addHiddenOption(aggregateCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n aggregateCommand\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runAggregate } = await import(\"./commands/aggregate.js\");\n const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\"Show a token-efficient project context snapshot for next-work decisions.\")\n .option(\"--date <value>\", \"Anchor date/time for agenda window calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\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(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\"--format <value>\", \"Context output format override: markdown|toon|json\")\n .option(\"--depth <value>\", \"Context depth: brief|standard|deep (default: settings or brief)\")\n .option(\"--section <value...>\", \"Include specific sections (repeatable; overrides --depth)\")\n .option(\"--activity-limit <n>\", \"Limit recent activity entries (default: settings or 10)\")\n .option(\"--stale-threshold <value>\", \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(contextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n contextCommand\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const commands = await import(\"./commands/context.js\");\n const result = await commands.runContext(normalized, globalOptions);\n const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.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 }\n\n if (shouldRegister(\"search\")) {\n program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\"Search items with keyword, semantic, or hybrid retrieval.\")\n .option(\"--mode <value>\", \"Search mode: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\"--include-linked\", \"Include linked files, docs, and tests in the searchable corpus\")\n .option(\"--title-exact\", \"Require exact normalized title match for the full query string\")\n .option(\"--phrase-exact\", \"Require exact normalized phrase match in searchable text\")\n .option(\"--status <value>\", \"Filter by status before query (open/closed/canceled aliases or configured status id; CSV)\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--compact\", \"Render compact search hits (default; mutually exclusive with --full/--fields)\")\n .option(\"--full\", \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\")\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(\"--limit <n>\", \"Limit returned item count\")\n .action(async (keywords: string[], options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runSearch } = await import(\"./commands/search.js\");\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" && searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"get\")) {\n program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--depth <value>\", \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\")\n .option(\"--full\", \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\")\n .option(\"--fields <value>\", \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\")\n .description(\"Show item details by ID.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runGet } = await import(\"./commands/get.js\");\n const result = await runGet(\n id,\n globalOptions,\n {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n },\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--compact\", \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\")\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\"--diff\", \"Include per-entry changed field summaries from history patches\")\n .option(\"--verify\", \"Verify hash chain and replay integrity for the full history stream\")\n .description(\"Show item history entries.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"History projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const { runHistory } = await import(\"./commands/history.js\");\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),\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--from <value>\", \"Lower timestamp bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Upper timestamp bound (ISO/date string or relative)\")\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\"--compact\", \"Condensed output: show only id, op, ts, author, msg per entry\")\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\"--stream [mode]\", \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\")\n .description(\"Show recent activity across items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"Activity projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const normalized = normalizeActivityOptions(options);\n const { runActivity } = await import(\"./commands/activity.js\");\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\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 }\n}\n"],"names":["options"],"mappings":"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","debugId":"db7446d8-670d-59d2-aca8-d10806974e24"}
1
+ {"version":3,"sources":["../../../../../../../../cli/register-list-query.ts"],"sourcesContent":["import { Option, type Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n\n\nexport interface RegisterListQueryCommandsOptions {\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(commandName: string, commandFilter?: Set<string>): 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\nexport function registerListQueryCommands(program: Command, options?: RegisterListQueryCommandsOptions): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean => shouldRegisterListQueryCommand(commandName, commandFilter);\n // Register a flag and hide it from --help text while keeping it functional as\n // a parse-time alias. Used for pure snake_case underscore-duplicate aliases\n // (e.g. --assignee_filter for --assignee-filter) so they no longer bloat\n // --help output. The option still appears in command.options, so JSON help\n // and completion are unchanged.\n function addHiddenOption(command: Command, flags: string, description: string): void {\n command.addOption(new Option(flags, description).hideHelp());\n }\n\n function registerListCommand(\n name: string,\n description: string,\n status?: ItemStatus,\n excludeTerminal?: boolean,\n allowStatusFilter?: boolean,\n defaultBrief?: boolean,\n ): void {\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\"--status <value>\", \"Filter by status\");\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", '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 .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--ids <value>\", \"Filter by explicit item IDs (comma-separated)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(\"--limit <n>\", \"Limit returned item count\")\n .option(\"--offset <n>\", \"Skip the first n matching rows before limit is applied\")\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\"--compact\", \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\")\n .option(\"--brief\", \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\")\n .option(\"--full\", \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\")\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(\"--sort <value>\", \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\")\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\")\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(options);\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 if (excludeTerminal) listOptions.excludeTerminal = true;\n const { runList } = await import(\"./commands/list.js\");\n const result = await runList(status, listOptions, globalOptions);\n const streamMode = options.stream === true;\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printListJsonStream(name, result, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=${name} took_ms=${Date.now() - startedAt}`);\n }\n });\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n }\n\n if (shouldRegister(\"list\")) {\n registerListCommand(\"list\", \"List active items with optional filters.\", undefined, true, true, true);\n }\n if (shouldRegister(\"list-all\")) {\n registerListCommand(\"list-all\", \"List all items with optional filters.\", undefined, false, true);\n }\n if (shouldRegister(\"list-draft\")) {\n registerListCommand(\"list-draft\", \"List draft items with optional filters.\", \"draft\");\n }\n if (shouldRegister(\"list-open\")) {\n registerListCommand(\"list-open\", \"List open items with optional filters.\", \"open\", false, false, true);\n }\n if (shouldRegister(\"list-in-progress\")) {\n registerListCommand(\"list-in-progress\", \"List in-progress items with optional filters.\", \"in_progress\", false, false, true);\n }\n if (shouldRegister(\"list-blocked\")) {\n registerListCommand(\"list-blocked\", \"List blocked items with optional filters.\", \"blocked\");\n }\n if (shouldRegister(\"list-closed\")) {\n registerListCommand(\"list-closed\", \"List closed items with optional filters.\", \"closed\");\n }\n if (shouldRegister(\"list-canceled\")) {\n registerListCommand(\"list-canceled\", \"List canceled items with optional filters.\", \"canceled\");\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(\"--include-unparented\", \"Include unparented rows when grouping by parent\")\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(aggregateCommand, \"--include_unparented\", \"Alias for --include-unparented\");\n addHiddenOption(aggregateCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n aggregateCommand\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runAggregate } = await import(\"./commands/aggregate.js\");\n const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\"Show a token-efficient project context snapshot for next-work decisions.\")\n .option(\"--date <value>\", \"Anchor date/time for agenda window calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\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(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\"--format <value>\", \"Context output format override: markdown|toon|json\")\n .option(\"--depth <value>\", \"Context depth: brief|standard|deep (default: settings or brief)\")\n .option(\"--section <value...>\", \"Include specific sections (repeatable; overrides --depth)\")\n .option(\"--activity-limit <n>\", \"Limit recent activity entries (default: settings or 10)\")\n .option(\"--stale-threshold <value>\", \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(contextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n contextCommand\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const commands = await import(\"./commands/context.js\");\n const result = await commands.runContext(normalized, globalOptions);\n const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.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 }\n\n if (shouldRegister(\"search\")) {\n program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\"Search items with keyword, semantic, or hybrid retrieval.\")\n .option(\"--mode <value>\", \"Search mode: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\"--include-linked\", \"Include linked files, docs, and tests in the searchable corpus\")\n .option(\"--title-exact\", \"Require exact normalized title match for the full query string\")\n .option(\"--phrase-exact\", \"Require exact normalized phrase match in searchable text\")\n .option(\"--status <value>\", \"Filter by status before query (open/closed/canceled aliases or configured status id; CSV)\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--compact\", \"Render compact search hits (default; mutually exclusive with --full/--fields)\")\n .option(\"--full\", \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\")\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(\"--limit <n>\", \"Limit returned item count\")\n .action(async (keywords: string[], options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runSearch } = await import(\"./commands/search.js\");\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" && searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"get\")) {\n program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--depth <value>\", \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\")\n .option(\"--full\", \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\")\n .option(\"--fields <value>\", \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\")\n .description(\"Show item details by ID.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runGet } = await import(\"./commands/get.js\");\n const result = await runGet(\n id,\n globalOptions,\n {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n },\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--compact\", \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\")\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\"--diff\", \"Include per-entry field-level before/after value diffs computed by replaying the history chain\")\n .option(\"--field <name>\", \"With --diff, show only entries that changed this field (implies --diff)\")\n .option(\"--verify\", \"Verify hash chain and replay integrity for the full history stream\")\n .description(\"Show item history entries.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"History projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const field = typeof options.field === \"string\" ? options.field : undefined;\n const { runHistory } = await import(\"./commands/history.js\");\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(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--from <value>\", \"Lower timestamp bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Upper timestamp bound (ISO/date string or relative)\")\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\"--compact\", \"Condensed output: show only id, op, ts, author, msg per entry\")\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\"--stream [mode]\", \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\")\n .description(\"Show recent activity across items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"Activity projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const normalized = normalizeActivityOptions(options);\n const { runActivity } = await import(\"./commands/activity.js\");\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\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 }\n}\n"],"names":["options"],"mappings":"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","debugId":"65d45d26-cb24-5dd2-b637-364dfbac4d94"}
@@ -9,30 +9,30 @@ import {
9
9
  printActivityJsonStream,
10
10
  printListJsonStream,
11
11
  resolveActivityStreamMode
12
- } from "./chunk-TK633IVD.js";
13
- import "./chunk-ZQ4F6EC4.js";
14
- import "./chunk-5IRA6IYD.js";
12
+ } from "./chunk-PDDFYW4X.js";
13
+ import "./chunk-PROOHX4K.js";
14
+ import "./chunk-3FI4SEFT.js";
15
15
  import {
16
16
  printError,
17
17
  printResult,
18
18
  writeStdout
19
- } from "./chunk-HZOS2UG5.js";
20
- import "./chunk-XG7RJYHV.js";
21
- import "./chunk-KA24HME7.js";
22
- import "./chunk-HPH6X4ZZ.js";
23
- import "./chunk-4PJQSECJ.js";
24
- import "./chunk-RANZIID5.js";
19
+ } from "./chunk-LCM63IXU.js";
20
+ import "./chunk-XTGLRY2Y.js";
21
+ import "./chunk-T3LC5LKB.js";
22
+ import "./chunk-AO442XLN.js";
23
+ import "./chunk-KJE2FOS4.js";
24
+ import "./chunk-QO7EBBOM.js";
25
25
  import {
26
26
  EXIT_CODE,
27
27
  PmCliError
28
- } from "./chunk-SRVKTWPR.js";
28
+ } from "./chunk-U5SXYXSY.js";
29
29
 
30
30
  // dist/cli/register-list-query.js
31
31
  import { Option } from "commander";
32
32
  !(function() {
33
33
  try {
34
34
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
35
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "adc6007c-e5b0-5d80-a42a-8fdb5e1cf5e6");
35
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "fe2bfac3-19a8-5dc0-b812-ad59c6281ba6");
36
36
  } catch (e2) {
37
37
  }
38
38
  })();
@@ -65,7 +65,7 @@ function registerListQueryCommands(program, options) {
65
65
  }
66
66
  if (excludeTerminal)
67
67
  listOptions.excludeTerminal = true;
68
- const { runList } = await import("./list-53LZ2AEO.js");
68
+ const { runList } = await import("./list-MUSQNMTD.js");
69
69
  const result = await runList(status, listOptions, globalOptions);
70
70
  const streamMode = options2.stream === true;
71
71
  if (streamMode && !globalOptions.json) {
@@ -113,7 +113,7 @@ function registerListQueryCommands(program, options) {
113
113
  aggregateCommand.action(async (options2, command) => {
114
114
  const globalOptions = getGlobalOptions(command);
115
115
  const startedAt = Date.now();
116
- const { runAggregate } = await import("./aggregate-OOAGKWRG.js");
116
+ const { runAggregate } = await import("./aggregate-VNAHUNNF.js");
117
117
  const result = await runAggregate(normalizeAggregateOptions(options2), globalOptions);
118
118
  printResult(result, globalOptions);
119
119
  if (globalOptions.profile) {
@@ -128,7 +128,7 @@ function registerListQueryCommands(program, options) {
128
128
  const globalOptions = getGlobalOptions(actionCommand);
129
129
  const startedAt = Date.now();
130
130
  const normalized = normalizeContextOptions(options2);
131
- const commands = await import("./context-E6U3DWVM.js");
131
+ const commands = await import("./context-FYYJGFWS.js");
132
132
  const result = await commands.runContext(normalized, globalOptions);
133
133
  const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);
134
134
  if (outputFormat === "markdown") {
@@ -151,7 +151,7 @@ function registerListQueryCommands(program, options) {
151
151
  program.command("search").argument("<keywords...>", "Keyword query tokens").description("Search items with keyword, semantic, or hybrid retrieval.").option("--mode <value>", "Search mode: keyword|semantic|hybrid (default: keyword)").option("--semantic", "Shorthand for --mode semantic").option("--hybrid", "Shorthand for --mode hybrid").option("--include-linked", "Include linked files, docs, and tests in the searchable corpus").option("--title-exact", "Require exact normalized title match for the full query string").option("--phrase-exact", "Require exact normalized phrase match in searchable text").option("--status <value>", "Filter by status before query (open/closed/canceled aliases or configured status id; CSV)").option("--type <value>", "Filter by item type").option("--tag <value>", "Filter by tag").option("--priority <value>", "Filter by priority").option("--deadline-before <value>", "Filter by deadline upper bound (ISO/date string or relative)").option("--deadline-after <value>", "Filter by deadline lower bound (ISO/date string or relative)").option("--compact", "Render compact search hits (default; mutually exclusive with --full/--fields)").option("--full", "Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)").option("--fields <value>", "Render custom comma-separated search hit fields (mutually exclusive with --compact/--full; valid: --fields id,title,score; invalid: --full --fields id,title)").option("--limit <n>", "Limit returned item count").action(async (keywords, options2, command) => {
152
152
  const globalOptions = getGlobalOptions(command);
153
153
  const startedAt = Date.now();
154
- const { runSearch } = await import("./search-5A3BMFA7.js");
154
+ const { runSearch } = await import("./search-OA6JX27A.js");
155
155
  const searchOptions = normalizeSearchOptions(options2);
156
156
  const result = await runSearch(normalizeSearchKeywordsInput(keywords), {
157
157
  ...searchOptions,
@@ -167,7 +167,7 @@ function registerListQueryCommands(program, options) {
167
167
  program.command("get").argument("<id>", "Item id").option("--depth <value>", "Detail depth: brief|standard|deep|full (full aliases deep; default: standard)").option("--full", "Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)").option("--fields <value>", "Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)").description("Show item details by ID.").action(async (id, options2, command) => {
168
168
  const globalOptions = getGlobalOptions(command);
169
169
  const startedAt = Date.now();
170
- const { runGet } = await import("./get-CINFEUIY.js");
170
+ const { runGet } = await import("./get-WXU6WI5P.js");
171
171
  const result = await runGet(id, globalOptions, {
172
172
  depth: typeof options2.depth === "string" ? options2.depth : void 0,
173
173
  fields: typeof options2.fields === "string" ? options2.fields : void 0,
@@ -180,17 +180,19 @@ function registerListQueryCommands(program, options) {
180
180
  });
181
181
  }
182
182
  if (shouldRegister("history")) {
183
- program.command("history").argument("<id>", "Item id").option("--limit <n>", "Return only the latest n history entries").option("--compact", "Condensed output: show entry index, timestamp, op, author, patch count, and changed fields").option("--full", "Show full history entries with JSON Patch payloads").option("--diff", "Include per-entry changed field summaries from history patches").option("--verify", "Verify hash chain and replay integrity for the full history stream").description("Show item history entries.").action(async (id, options2, command) => {
183
+ program.command("history").argument("<id>", "Item id").option("--limit <n>", "Return only the latest n history entries").option("--compact", "Condensed output: show entry index, timestamp, op, author, patch count, and changed fields").option("--full", "Show full history entries with JSON Patch payloads").option("--diff", "Include per-entry field-level before/after value diffs computed by replaying the history chain").option("--field <name>", "With --diff, show only entries that changed this field (implies --diff)").option("--verify", "Verify hash chain and replay integrity for the full history stream").description("Show item history entries.").action(async (id, options2, command) => {
184
184
  const globalOptions = getGlobalOptions(command);
185
185
  const startedAt = Date.now();
186
186
  if (options2.compact === true && options2.full === true) {
187
187
  throw new PmCliError("History projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
188
188
  }
189
- const { runHistory } = await import("./history-6FC4H6HI.js");
189
+ const field = typeof options2.field === "string" ? options2.field : void 0;
190
+ const { runHistory } = await import("./history-2BA3T5AE.js");
190
191
  const result = await runHistory(id, {
191
192
  limit: typeof options2.limit === "string" ? options2.limit : void 0,
192
193
  compact: options2.full === true ? false : true,
193
- diff: Boolean(options2.diff),
194
+ diff: Boolean(options2.diff) || field !== void 0,
195
+ field,
194
196
  verify: Boolean(options2.verify)
195
197
  }, globalOptions);
196
198
  printResult(result, globalOptions);
@@ -207,7 +209,7 @@ function registerListQueryCommands(program, options) {
207
209
  throw new PmCliError("Activity projection options are mutually exclusive. Use either --compact or --full.", EXIT_CODE.USAGE);
208
210
  }
209
211
  const normalized = normalizeActivityOptions(options2);
210
- const { runActivity } = await import("./activity-P5BUMWP3.js");
212
+ const { runActivity } = await import("./activity-CVXTCHYY.js");
211
213
  const result = await runActivity(normalized, globalOptions);
212
214
  const streamMode = resolveActivityStreamMode(options2.stream);
213
215
  if (streamMode && !globalOptions.json) {
@@ -227,4 +229,4 @@ function registerListQueryCommands(program, options) {
227
229
  export {
228
230
  registerListQueryCommands
229
231
  };
230
- //# sourceMappingURL=register-list-query-AG3XKXWL.js.map
232
+ //# sourceMappingURL=register-list-query-WST76HSQ.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../../cli/register-list-query.ts"],
4
- "sourcesContent": ["import { Option, type Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n\n\nexport interface RegisterListQueryCommandsOptions {\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(commandName: string, commandFilter?: Set<string>): 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\nexport function registerListQueryCommands(program: Command, options?: RegisterListQueryCommandsOptions): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean => shouldRegisterListQueryCommand(commandName, commandFilter);\n // Register a flag and hide it from --help text while keeping it functional as\n // a parse-time alias. Used for pure snake_case underscore-duplicate aliases\n // (e.g. --assignee_filter for --assignee-filter) so they no longer bloat\n // --help output. The option still appears in command.options, so JSON help\n // and completion are unchanged.\n function addHiddenOption(command: Command, flags: string, description: string): void {\n command.addOption(new Option(flags, description).hideHelp());\n }\n\n function registerListCommand(\n name: string,\n description: string,\n status?: ItemStatus,\n excludeTerminal?: boolean,\n allowStatusFilter?: boolean,\n defaultBrief?: boolean,\n ): void {\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\"--status <value>\", \"Filter by status\");\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", '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 .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--ids <value>\", \"Filter by explicit item IDs (comma-separated)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(\"--limit <n>\", \"Limit returned item count\")\n .option(\"--offset <n>\", \"Skip the first n matching rows before limit is applied\")\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\"--compact\", \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\")\n .option(\"--brief\", \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\")\n .option(\"--full\", \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\")\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(\"--sort <value>\", \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\")\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\")\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(options);\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 if (excludeTerminal) listOptions.excludeTerminal = true;\n const { runList } = await import(\"./commands/list.js\");\n const result = await runList(status, listOptions, globalOptions);\n const streamMode = options.stream === true;\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printListJsonStream(name, result, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=${name} took_ms=${Date.now() - startedAt}`);\n }\n });\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n }\n\n if (shouldRegister(\"list\")) {\n registerListCommand(\"list\", \"List active items with optional filters.\", undefined, true, true, true);\n }\n if (shouldRegister(\"list-all\")) {\n registerListCommand(\"list-all\", \"List all items with optional filters.\", undefined, false, true);\n }\n if (shouldRegister(\"list-draft\")) {\n registerListCommand(\"list-draft\", \"List draft items with optional filters.\", \"draft\");\n }\n if (shouldRegister(\"list-open\")) {\n registerListCommand(\"list-open\", \"List open items with optional filters.\", \"open\", false, false, true);\n }\n if (shouldRegister(\"list-in-progress\")) {\n registerListCommand(\"list-in-progress\", \"List in-progress items with optional filters.\", \"in_progress\", false, false, true);\n }\n if (shouldRegister(\"list-blocked\")) {\n registerListCommand(\"list-blocked\", \"List blocked items with optional filters.\", \"blocked\");\n }\n if (shouldRegister(\"list-closed\")) {\n registerListCommand(\"list-closed\", \"List closed items with optional filters.\", \"closed\");\n }\n if (shouldRegister(\"list-canceled\")) {\n registerListCommand(\"list-canceled\", \"List canceled items with optional filters.\", \"canceled\");\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(\"--include-unparented\", \"Include unparented rows when grouping by parent\")\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(aggregateCommand, \"--include_unparented\", \"Alias for --include-unparented\");\n addHiddenOption(aggregateCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n aggregateCommand\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runAggregate } = await import(\"./commands/aggregate.js\");\n const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\"Show a token-efficient project context snapshot for next-work decisions.\")\n .option(\"--date <value>\", \"Anchor date/time for agenda window calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\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(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\"--format <value>\", \"Context output format override: markdown|toon|json\")\n .option(\"--depth <value>\", \"Context depth: brief|standard|deep (default: settings or brief)\")\n .option(\"--section <value...>\", \"Include specific sections (repeatable; overrides --depth)\")\n .option(\"--activity-limit <n>\", \"Limit recent activity entries (default: settings or 10)\")\n .option(\"--stale-threshold <value>\", \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(contextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n contextCommand\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const commands = await import(\"./commands/context.js\");\n const result = await commands.runContext(normalized, globalOptions);\n const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.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 }\n\n if (shouldRegister(\"search\")) {\n program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\"Search items with keyword, semantic, or hybrid retrieval.\")\n .option(\"--mode <value>\", \"Search mode: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\"--include-linked\", \"Include linked files, docs, and tests in the searchable corpus\")\n .option(\"--title-exact\", \"Require exact normalized title match for the full query string\")\n .option(\"--phrase-exact\", \"Require exact normalized phrase match in searchable text\")\n .option(\"--status <value>\", \"Filter by status before query (open/closed/canceled aliases or configured status id; CSV)\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--compact\", \"Render compact search hits (default; mutually exclusive with --full/--fields)\")\n .option(\"--full\", \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\")\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(\"--limit <n>\", \"Limit returned item count\")\n .action(async (keywords: string[], options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runSearch } = await import(\"./commands/search.js\");\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" && searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"get\")) {\n program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--depth <value>\", \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\")\n .option(\"--full\", \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\")\n .option(\"--fields <value>\", \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\")\n .description(\"Show item details by ID.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runGet } = await import(\"./commands/get.js\");\n const result = await runGet(\n id,\n globalOptions,\n {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n },\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--compact\", \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\")\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\"--diff\", \"Include per-entry changed field summaries from history patches\")\n .option(\"--verify\", \"Verify hash chain and replay integrity for the full history stream\")\n .description(\"Show item history entries.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"History projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const { runHistory } = await import(\"./commands/history.js\");\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),\n verify: Boolean(options.verify),\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--from <value>\", \"Lower timestamp bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Upper timestamp bound (ISO/date string or relative)\")\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\"--compact\", \"Condensed output: show only id, op, ts, author, msg per entry\")\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\"--stream [mode]\", \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\")\n .description(\"Show recent activity across items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"Activity projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const normalized = normalizeActivityOptions(options);\n const { runActivity } = await import(\"./commands/activity.js\");\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\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 }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,cAA4B;;;;;;;;AA0BrC,SAAS,+BAA+B,aAAqB,eAA2B;AACtF,MAAI,CAAC,iBAAiB,cAAc,SAAS,GAAG;AAC9C,WAAO;EACT;AACA,MAAI,gBAAgB,WAAW;AAC7B,WAAO,cAAc,IAAI,SAAS,KAAK,cAAc,IAAI,KAAK;EAChE;AACA,SAAO,cAAc,IAAI,WAAW;AACtC;AAEM,SAAU,0BAA0B,SAAkB,SAA0C;AACpG,QAAM,gBAAgB,SAAS;AAC/B,QAAM,iBAAiB,CAAC,gBAAiC,+BAA+B,aAAa,aAAa;AAMlH,WAAS,gBAAgB,SAAkB,OAAe,aAAmB;AAC3E,YAAQ,UAAU,IAAI,OAAO,OAAO,WAAW,EAAE,SAAQ,CAAE;EAC7D;AAEA,WAAS,oBACP,MACA,aACA,QACA,iBACA,mBACA,cAAsB;AAEtB,UAAM,UAAU,QAAQ,QAAQ,IAAI,EAAE,YAAY,WAAW;AAC7D,QAAI,mBAAmB;AACrB,cAAQ,OAAO,oBAAoB,kBAAkB;IACvD;AACA,YACG,OAAO,kBAAkB,qBAAqB,EAC9C,OAAO,iBAAiB,eAAe,EACvC,OAAO,sBAAsB,oBAAoB,EACjD,OAAO,6BAA6B,8DAA8D,EAClG,OAAO,4BAA4B,8DAA8D,EACjG,OAAO,2BAA2B,iKAA4J,EAC9L,OAAO,4BAA4B,8EAA8E,EACjH,OAAO,2BAA2B,8EAA8E,EAChH,OAAO,4BAA4B,8EAA8E,EACjH,OAAO,iBAAiB,+CAA+C,EACvE,OAAO,sBAAsB,oBAAoB,EACjD,OAAO,6BAA6B,+CAA+C,EACnF,OAAO,oBAAoB,0BAA0B,EACrD,OAAO,oBAAoB,kBAAkB,EAC7C,OAAO,qBAAqB,mBAAmB,EAC/C,OAAO,eAAe,2BAA2B,EACjD,OAAO,gBAAgB,wDAAwD,EAC/E,OAAO,kBAAkB,6CAA6C,EACtE,OAAO,aAAa,yFAAyF,EAC7G,OAAO,WAAW,yHAAyH,EAC3I,OAAO,UAAU,yFAAyF,EAC1G,OACC,oBACA,wHAAwH,EAEzH,OAAO,kBAAkB,8FAA8F,EACvH,OAAO,mBAAmB,wCAAwC,EAClE,OAAO,YAAY,iDAAiD,EACpE,OAAO,OAAOA,UAAkC,kBAAiB;AAChE,YAAM,gBAAgB,iBAAiB,aAAa;AACpD,YAAM,YAAY,KAAK,IAAG;AAC1B,YAAM,cAAc,qBAAqBA,QAAO;AAChD,UACE,iBAAiB,QACjB,YAAY,gBAAgB,QAC5B,YAAY,YAAY,QACxB,YAAY,UAAU,QACtB,YAAY,SAAS,QACrB,YAAY,WAAW,QACvB;AACA,oBAAY,QAAQ;MACtB;AACA,UAAI;AAAiB,oBAAY,kBAAkB;AACnD,YAAM,EAAE,QAAO,IAAK,MAAM,OAAO,oBAAoB;AACrD,YAAM,SAAS,MAAM,QAAQ,QAAQ,aAAa,aAAa;AAC/D,YAAM,aAAaA,SAAQ,WAAW;AACtC,UAAI,cAAc,CAAC,cAAc,MAAM;AACrC,cAAM,IAAI,WAAW,yCAAyC,UAAU,KAAK;MAC/E;AACA,UAAI,YAAY;AACd,4BAAoB,MAAM,QAAQ,aAAa;MACjD,OAAO;AACL,oBAAY,QAAQ,aAAa;MACnC;AACA,UAAI,cAAc,SAAS;AACzB,mBAAW,mBAAmB,IAAI,YAAY,KAAK,IAAG,IAAK,SAAS,EAAE;MACxE;IACF,CAAC;AAEH,oBAAgB,SAAS,6BAA6B,6BAA6B;EACrF;AAEA,MAAI,eAAe,MAAM,GAAG;AAC1B,wBAAoB,QAAQ,4CAA4C,QAAW,MAAM,MAAM,IAAI;EACrG;AACA,MAAI,eAAe,UAAU,GAAG;AAC9B,wBAAoB,YAAY,yCAAyC,QAAW,OAAO,IAAI;EACjG;AACA,MAAI,eAAe,YAAY,GAAG;AAChC,wBAAoB,cAAc,2CAA2C,OAAO;EACtF;AACA,MAAI,eAAe,WAAW,GAAG;AAC/B,wBAAoB,aAAa,0CAA0C,QAAQ,OAAO,OAAO,IAAI;EACvG;AACA,MAAI,eAAe,kBAAkB,GAAG;AACtC,wBAAoB,oBAAoB,iDAAiD,eAAe,OAAO,OAAO,IAAI;EAC5H;AACA,MAAI,eAAe,cAAc,GAAG;AAClC,wBAAoB,gBAAgB,6CAA6C,SAAS;EAC5F;AACA,MAAI,eAAe,aAAa,GAAG;AACjC,wBAAoB,eAAe,4CAA4C,QAAQ;EACzF;AACA,MAAI,eAAe,eAAe,GAAG;AACnC,wBAAoB,iBAAiB,8CAA8C,UAAU;EAC/F;AAEA,MAAI,eAAe,WAAW,GAAG;AAC/B,UAAM,mBAAmB,QACtB,QAAQ,WAAW,EACnB,YAAY,uDAAuD,EACnE,OACC,sBACA,uGAAuG,EAExG,OAAO,WAAW,0CAA0C,EAC5D,OAAO,wBAAwB,iDAAiD,EAChF,OAAO,oBAAoB,uBAAuB,EAClD,OAAO,kBAAkB,qBAAqB,EAC9C,OAAO,iBAAiB,eAAe,EACvC,OAAO,sBAAsB,oBAAoB,EACjD,OAAO,6BAA6B,8DAA8D,EAClG,OAAO,4BAA4B,8DAA8D,EACjG,OAAO,sBAAsB,oBAAoB,EACjD,OAAO,6BAA6B,+CAA+C,EACnF,OAAO,oBAAoB,0BAA0B,EACrD,OAAO,oBAAoB,kBAAkB,EAC7C,OAAO,qBAAqB,mBAAmB;AAElD,oBAAgB,kBAAkB,wBAAwB,gCAAgC;AAC1F,oBAAgB,kBAAkB,6BAA6B,6BAA6B;AAC5F,qBACG,OAAO,OAAOA,UAAkC,YAAW;AAC1D,YAAM,gBAAgB,iBAAiB,OAAO;AAC9C,YAAM,YAAY,KAAK,IAAG;AAC1B,YAAM,EAAE,aAAY,IAAK,MAAM,OAAO,yBAAyB;AAC/D,YAAM,SAAS,MAAM,aAAa,0BAA0BA,QAAO,GAAG,aAAa;AACnF,kBAAY,QAAQ,aAAa;AACjC,UAAI,cAAc,SAAS;AACzB,mBAAW,qCAAqC,KAAK,IAAG,IAAK,SAAS,EAAE;MAC1E;IACF,CAAC;EACL;AAEA,MAAI,eAAe,SAAS,GAAG;AAC7B,UAAM,iBAAiB,QACpB,QAAQ,SAAS,EACjB,MAAM,KAAK,EACX,YAAY,0EAA0E,EACtF,OAAO,kBAAkB,+EAA+E,EACxG,OAAO,kBAAkB,kDAAkD,EAC3E,OAAO,gBAAgB,kDAAkD,EACzE,OAAO,UAAU,gDAAgD,EACjE,OAAO,kBAAkB,qBAAqB,EAC9C,OAAO,iBAAiB,eAAe,EACvC,OAAO,sBAAsB,oBAAoB,EACjD,OAAO,sBAAsB,oBAAoB,EACjD,OAAO,6BAA6B,+CAA+C,EACnF,OAAO,oBAAoB,kBAAkB,EAC7C,OAAO,qBAAqB,mBAAmB,EAC/C,OAAO,eAAe,yCAAyC,EAC/D,OAAO,oBAAoB,oDAAoD,EAC/E,OAAO,mBAAmB,iEAAiE,EAC3F,OAAO,wBAAwB,2DAA2D,EAC1F,OAAO,wBAAwB,yDAAyD,EACxF,OAAO,6BAA6B,iEAAiE;AAExG,oBAAgB,gBAAgB,6BAA6B,6BAA6B;AAC1F,mBACG,OAAO,OAAOA,UAAkC,kBAAiB;AAChE,YAAM,gBAAgB,iBAAiB,aAAa;AACpD,YAAM,YAAY,KAAK,IAAG;AAC1B,YAAM,aAAa,wBAAwBA,QAAO;AAClD,YAAM,WAAW,MAAM,OAAO,uBAAuB;AACrD,YAAM,SAAS,MAAM,SAAS,WAAW,YAAY,aAAa;AAClE,YAAM,eAAe,SAAS,2BAA2B,YAAY,aAAa;AAClF,UAAI,iBAAiB,YAAY;AAC/B,YAAI,CAAC,cAAc,OAAO;AACxB,sBAAY,GAAG,SAAS,sBAAsB,MAAM,CAAC;CAAI;QAC3D;MACF,OAAO;AACL,oBAAY,QAAQ;UAClB,GAAG;UACH,MAAM,iBAAiB;SACxB;MACH;AACA,UAAI,cAAc,SAAS;AACzB,mBAAW,mCAAmC,KAAK,IAAG,IAAK,SAAS,EAAE;MACxE;IACF,CAAC;EACL;AAEA,MAAI,eAAe,QAAQ,GAAG;AAC5B,YACG,QAAQ,QAAQ,EAChB,SAAS,iBAAiB,sBAAsB,EAChD,YAAY,2DAA2D,EACvE,OAAO,kBAAkB,yDAAyD,EAClF,OAAO,cAAc,+BAA+B,EACpD,OAAO,YAAY,6BAA6B,EAChD,OAAO,oBAAoB,gEAAgE,EAC3F,OAAO,iBAAiB,gEAAgE,EACxF,OAAO,kBAAkB,0DAA0D,EACnF,OAAO,oBAAoB,2FAA2F,EACtH,OAAO,kBAAkB,qBAAqB,EAC9C,OAAO,iBAAiB,eAAe,EACvC,OAAO,sBAAsB,oBAAoB,EACjD,OAAO,6BAA6B,8DAA8D,EAClG,OAAO,4BAA4B,8DAA8D,EACjG,OAAO,aAAa,+EAA+E,EACnG,OAAO,UAAU,gGAAgG,EACjH,OACC,oBACA,+JAA+J,EAEhK,OAAO,eAAe,2BAA2B,EACjD,OAAO,OAAO,UAAoBA,UAAkC,YAAW;AAC9E,YAAM,gBAAgB,iBAAiB,OAAO;AAC9C,YAAM,YAAY,KAAK,IAAG;AAC1B,YAAM,EAAE,UAAS,IAAK,MAAM,OAAO,sBAAsB;AACzD,YAAM,gBAAgB,uBAAuBA,QAAO;AACpD,YAAM,SAAS,MAAM,UACnB,6BAA6B,QAAQ,GACrC;QACE,GAAG;QACH,MACE,OAAO,cAAc,SAAS,YAAY,cAAc,KAAK,KAAI,EAAG,SAAS,IACzE,cAAc,OACd;SAER,aAAa;AAEf,kBAAY,QAAQ,aAAa;AACjC,UAAI,cAAc,SAAS;AACzB,mBAAW,kCAAkC,KAAK,IAAG,IAAK,SAAS,EAAE;MACvE;IACF,CAAC;EACL;AAEA,MAAI,eAAe,KAAK,GAAG;AACzB,YACG,QAAQ,KAAK,EACb,SAAS,QAAQ,SAAS,EAC1B,OAAO,mBAAmB,+EAA+E,EACzG,OAAO,UAAU,gGAAgG,EACjH,OAAO,oBAAoB,wGAAwG,EACnI,YAAY,0BAA0B,EACtC,OAAO,OAAO,IAAYA,UAAkC,YAAW;AACtE,YAAM,gBAAgB,iBAAiB,OAAO;AAC9C,YAAM,YAAY,KAAK,IAAG;AAC1B,YAAM,EAAE,OAAM,IAAK,MAAM,OAAO,mBAAmB;AACnD,YAAM,SAAS,MAAM,OACnB,IACA,eACA;QACE,OAAO,OAAOA,SAAQ,UAAU,WAAWA,SAAQ,QAAQ;QAC3D,QAAQ,OAAOA,SAAQ,WAAW,WAAWA,SAAQ,SAAS;QAC9D,MAAM,QAAQA,SAAQ,IAAI;OAC3B;AAEH,kBAAY,QAAQ,aAAa;AACjC,UAAI,cAAc,SAAS;AACzB,mBAAW,+BAA+B,KAAK,IAAG,IAAK,SAAS,EAAE;MACpE;IACF,CAAC;EACL;AAEA,MAAI,eAAe,SAAS,GAAG;AAC7B,YACG,QAAQ,SAAS,EACjB,SAAS,QAAQ,SAAS,EAC1B,OAAO,eAAe,0CAA0C,EAChE,OAAO,aAAa,4FAA4F,EAChH,OAAO,UAAU,oDAAoD,EACrE,OAAO,UAAU,gEAAgE,EACjF,OAAO,YAAY,oEAAoE,EACvF,YAAY,4BAA4B,EACxC,OAAO,OAAO,IAAYA,UAAkC,YAAW;AACtE,YAAM,gBAAgB,iBAAiB,OAAO;AAC9C,YAAM,YAAY,KAAK,IAAG;AAC1B,UAAIA,SAAQ,YAAY,QAAQA,SAAQ,SAAS,MAAM;AACrD,cAAM,IAAI,WAAW,sFAAsF,UAAU,KAAK;MAC5H;AACA,YAAM,EAAE,WAAU,IAAK,MAAM,OAAO,uBAAuB;AAC3D,YAAM,SAAS,MAAM,WACnB,IACA;QACE,OAAO,OAAOA,SAAQ,UAAU,WAAWA,SAAQ,QAAQ;QAC3D,SAASA,SAAQ,SAAS,OAAO,QAAQ;QACzC,MAAM,QAAQA,SAAQ,IAAI;QAC1B,QAAQ,QAAQA,SAAQ,MAAM;SAEhC,aAAa;AAEf,kBAAY,QAAQ,aAAa;AACjC,UAAI,cAAc,SAAS;AACzB,mBAAW,mCAAmC,KAAK,IAAG,IAAK,SAAS,EAAE;MACxE;IACF,CAAC;EACL;AAEA,MAAI,eAAe,UAAU,GAAG;AAC9B,YACG,QAAQ,UAAU,EAClB,OAAO,gBAAgB,mBAAmB,EAC1C,OAAO,gBAAgB,6BAA6B,EACpD,OAAO,oBAAoB,0BAA0B,EACrD,OAAO,kBAAkB,qDAAqD,EAC9E,OAAO,gBAAgB,qDAAqD,EAC5E,OAAO,eAAe,2CAA2C,EACjE,OAAO,aAAa,+DAA+D,EACnF,OAAO,UAAU,qDAAqD,EACtE,OAAO,mBAAmB,mFAAmF,EAC7G,YAAY,oCAAoC,EAChD,OAAO,OAAOA,UAAkC,YAAW;AAC1D,YAAM,gBAAgB,iBAAiB,OAAO;AAC9C,YAAM,YAAY,KAAK,IAAG;AAC1B,UAAIA,SAAQ,YAAY,QAAQA,SAAQ,SAAS,MAAM;AACrD,cAAM,IAAI,WAAW,uFAAuF,UAAU,KAAK;MAC7H;AACA,YAAM,aAAa,yBAAyBA,QAAO;AACnD,YAAM,EAAE,YAAW,IAAK,MAAM,OAAO,wBAAwB;AAC7D,YAAM,SAAS,MAAM,YAAY,YAAY,aAAa;AAC1D,YAAM,aAAa,0BAA0BA,SAAQ,MAAM;AAC3D,UAAI,cAAc,CAAC,cAAc,MAAM;AACrC,cAAM,IAAI,WAAW,yCAAyC,UAAU,KAAK;MAC/E;AACA,UAAI,YAAY;AACd,gCAAwB,QAAQ,YAAY,aAAa;MAC3D,OAAO;AACL,oBAAY,QAAQ,aAAa;MACnC;AACA,UAAI,cAAc,SAAS;AACzB,mBAAW,oCAAoC,KAAK,IAAG,IAAK,SAAS,EAAE;MACzE;IACF,CAAC;EACL;AACF;",
4
+ "sourcesContent": ["import { Option, type Command } from \"commander\";\nimport { EXIT_CODE } from \"../core/shared/constants.js\";\nimport { PmCliError } from \"../core/shared/errors.js\";\nimport type { ItemStatus } from \"../types/index.js\";\nimport {\n getGlobalOptions,\n normalizeAggregateOptions,\n normalizeActivityOptions,\n normalizeContextOptions,\n normalizeListOptions,\n normalizeSearchKeywordsInput,\n normalizeSearchOptions,\n printActivityJsonStream,\n printError,\n printListJsonStream,\n printResult,\n resolveActivityStreamMode,\n writeStdout,\n} from \"./registration-helpers.js\";\n\n\n\nexport interface RegisterListQueryCommandsOptions {\n commandFilter?: Set<string>;\n}\n\nfunction shouldRegisterListQueryCommand(commandName: string, commandFilter?: Set<string>): 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\nexport function registerListQueryCommands(program: Command, options?: RegisterListQueryCommandsOptions): void {\n const commandFilter = options?.commandFilter;\n const shouldRegister = (commandName: string): boolean => shouldRegisterListQueryCommand(commandName, commandFilter);\n // Register a flag and hide it from --help text while keeping it functional as\n // a parse-time alias. Used for pure snake_case underscore-duplicate aliases\n // (e.g. --assignee_filter for --assignee-filter) so they no longer bloat\n // --help output. The option still appears in command.options, so JSON help\n // and completion are unchanged.\n function addHiddenOption(command: Command, flags: string, description: string): void {\n command.addOption(new Option(flags, description).hideHelp());\n }\n\n function registerListCommand(\n name: string,\n description: string,\n status?: ItemStatus,\n excludeTerminal?: boolean,\n allowStatusFilter?: boolean,\n defaultBrief?: boolean,\n ): void {\n const command = program.command(name).description(description);\n if (allowStatusFilter) {\n command.option(\"--status <value>\", \"Filter by status\");\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--updated-after <value>\", '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 .option(\"--updated-before <value>\", \"Filter by updated_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-after <value>\", \"Filter by created_at lower bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--created-before <value>\", \"Filter by created_at upper bound: ISO timestamp or signed relative (-2h/+1d)\")\n .option(\"--ids <value>\", \"Filter by explicit item IDs (comma-separated)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(\"--limit <n>\", \"Limit returned item count\")\n .option(\"--offset <n>\", \"Skip the first n matching rows before limit is applied\")\n .option(\"--include-body\", \"Include item body in each returned list row\")\n .option(\"--compact\", \"Render compact list projection fields (mutually exclusive with --brief/--full/--fields)\")\n .option(\"--brief\", \"Ultra-compact output: id, status, type, title only (agent-optimized, mutually exclusive with --compact/--full/--fields)\")\n .option(\"--full\", \"Render full list projection fields (mutually exclusive with --compact/--brief/--fields)\")\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(\"--sort <value>\", \"Sort field: priority|deadline|updated_at|created_at|title|parent (aliases: updated, created)\")\n .option(\"--order <value>\", \"Sort order: asc|desc (requires --sort)\")\n .option(\"--stream\", \"Emit line-delimited JSON rows (requires --json)\")\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const listOptions = normalizeListOptions(options);\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 if (excludeTerminal) listOptions.excludeTerminal = true;\n const { runList } = await import(\"./commands/list.js\");\n const result = await runList(status, listOptions, globalOptions);\n const streamMode = options.stream === true;\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\n }\n if (streamMode) {\n printListJsonStream(name, result, globalOptions);\n } else {\n printResult(result, globalOptions);\n }\n if (globalOptions.profile) {\n printError(`profile:command=${name} took_ms=${Date.now() - startedAt}`);\n }\n });\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(command, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n }\n\n if (shouldRegister(\"list\")) {\n registerListCommand(\"list\", \"List active items with optional filters.\", undefined, true, true, true);\n }\n if (shouldRegister(\"list-all\")) {\n registerListCommand(\"list-all\", \"List all items with optional filters.\", undefined, false, true);\n }\n if (shouldRegister(\"list-draft\")) {\n registerListCommand(\"list-draft\", \"List draft items with optional filters.\", \"draft\");\n }\n if (shouldRegister(\"list-open\")) {\n registerListCommand(\"list-open\", \"List open items with optional filters.\", \"open\", false, false, true);\n }\n if (shouldRegister(\"list-in-progress\")) {\n registerListCommand(\"list-in-progress\", \"List in-progress items with optional filters.\", \"in_progress\", false, false, true);\n }\n if (shouldRegister(\"list-blocked\")) {\n registerListCommand(\"list-blocked\", \"List blocked items with optional filters.\", \"blocked\");\n }\n if (shouldRegister(\"list-closed\")) {\n registerListCommand(\"list-closed\", \"List closed items with optional filters.\", \"closed\");\n }\n if (shouldRegister(\"list-canceled\")) {\n registerListCommand(\"list-canceled\", \"List canceled items with optional filters.\", \"canceled\");\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(\"--include-unparented\", \"Include unparented rows when grouping by parent\")\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(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--assignee <value>\", \"Filter by assignee\")\n .option(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\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(aggregateCommand, \"--include_unparented\", \"Alias for --include-unparented\");\n addHiddenOption(aggregateCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n aggregateCommand\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runAggregate } = await import(\"./commands/aggregate.js\");\n const result = await runAggregate(normalizeAggregateOptions(options), globalOptions);\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=aggregate took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"context\")) {\n const contextCommand = program\n .command(\"context\")\n .alias(\"ctx\")\n .description(\"Show a token-efficient project context snapshot for next-work decisions.\")\n .option(\"--date <value>\", \"Anchor date/time for agenda window calculations (ISO/date string or relative)\")\n .option(\"--from <value>\", \"Agenda lower bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Agenda upper bound (ISO/date string or relative)\")\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(\"--assignee-filter <value>\", \"Filter assignee presence: assigned|unassigned\")\n .option(\"--sprint <value>\", \"Filter by sprint\")\n .option(\"--release <value>\", \"Filter by release\")\n .option(\"--limit <n>\", \"Limit focus and agenda rows per section\")\n .option(\"--format <value>\", \"Context output format override: markdown|toon|json\")\n .option(\"--depth <value>\", \"Context depth: brief|standard|deep (default: settings or brief)\")\n .option(\"--section <value...>\", \"Include specific sections (repeatable; overrides --depth)\")\n .option(\"--activity-limit <n>\", \"Limit recent activity entries (default: settings or 10)\")\n .option(\"--stale-threshold <value>\", \"Staleness cutoff in days (e.g. 7 or 7d; default: settings or 7)\");\n // Hidden pure snake_case underscore-duplicate alias (kept parse-functional).\n addHiddenOption(contextCommand, \"--assignee_filter <value>\", \"Alias for --assignee-filter\");\n contextCommand\n .action(async (options: Record<string, unknown>, actionCommand) => {\n const globalOptions = getGlobalOptions(actionCommand);\n const startedAt = Date.now();\n const normalized = normalizeContextOptions(options);\n const commands = await import(\"./commands/context.js\");\n const result = await commands.runContext(normalized, globalOptions);\n const outputFormat = commands.resolveContextOutputFormat(normalized, globalOptions);\n if (outputFormat === \"markdown\") {\n if (!globalOptions.quiet) {\n writeStdout(`${commands.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 }\n\n if (shouldRegister(\"search\")) {\n program\n .command(\"search\")\n .argument(\"<keywords...>\", \"Keyword query tokens\")\n .description(\"Search items with keyword, semantic, or hybrid retrieval.\")\n .option(\"--mode <value>\", \"Search mode: keyword|semantic|hybrid (default: keyword)\")\n .option(\"--semantic\", \"Shorthand for --mode semantic\")\n .option(\"--hybrid\", \"Shorthand for --mode hybrid\")\n .option(\"--include-linked\", \"Include linked files, docs, and tests in the searchable corpus\")\n .option(\"--title-exact\", \"Require exact normalized title match for the full query string\")\n .option(\"--phrase-exact\", \"Require exact normalized phrase match in searchable text\")\n .option(\"--status <value>\", \"Filter by status before query (open/closed/canceled aliases or configured status id; CSV)\")\n .option(\"--type <value>\", \"Filter by item type\")\n .option(\"--tag <value>\", \"Filter by tag\")\n .option(\"--priority <value>\", \"Filter by priority\")\n .option(\"--deadline-before <value>\", \"Filter by deadline upper bound (ISO/date string or relative)\")\n .option(\"--deadline-after <value>\", \"Filter by deadline lower bound (ISO/date string or relative)\")\n .option(\"--compact\", \"Render compact search hits (default; mutually exclusive with --full/--fields)\")\n .option(\"--full\", \"Render full search hits with nested item payloads (mutually exclusive with --compact/--fields)\")\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(\"--limit <n>\", \"Limit returned item count\")\n .action(async (keywords: string[], options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runSearch } = await import(\"./commands/search.js\");\n const searchOptions = normalizeSearchOptions(options);\n const result = await runSearch(\n normalizeSearchKeywordsInput(keywords),\n {\n ...searchOptions,\n mode:\n typeof searchOptions.mode === \"string\" && searchOptions.mode.trim().length > 0\n ? searchOptions.mode\n : \"keyword\",\n },\n globalOptions,\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=search took_ms=${Date.now() - startedAt}`);\n }\n });\n }\n\n if (shouldRegister(\"get\")) {\n program\n .command(\"get\")\n .argument(\"<id>\", \"Item id\")\n .option(\"--depth <value>\", \"Detail depth: brief|standard|deep|full (full aliases deep; default: standard)\")\n .option(\"--full\", \"Explicit full item read; equivalent to --depth deep (mutually exclusive with --depth/--fields)\")\n .option(\"--fields <value>\", \"Render custom comma-separated item metadata fields (for example: --fields id,title,status,parent,type)\")\n .description(\"Show item details by ID.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n const { runGet } = await import(\"./commands/get.js\");\n const result = await runGet(\n id,\n globalOptions,\n {\n depth: typeof options.depth === \"string\" ? options.depth : undefined,\n fields: typeof options.fields === \"string\" ? options.fields : undefined,\n full: Boolean(options.full),\n },\n );\n printResult(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=get took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--compact\", \"Condensed output: show entry index, timestamp, op, author, patch count, and changed fields\")\n .option(\"--full\", \"Show full history entries with JSON Patch payloads\")\n .option(\"--diff\", \"Include per-entry field-level before/after value diffs computed by replaying the history chain\")\n .option(\"--field <name>\", \"With --diff, show only entries that changed this field (implies --diff)\")\n .option(\"--verify\", \"Verify hash chain and replay integrity for the full history stream\")\n .description(\"Show item history entries.\")\n .action(async (id: string, options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"History projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const field = typeof options.field === \"string\" ? options.field : undefined;\n const { runHistory } = await import(\"./commands/history.js\");\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(result, globalOptions);\n if (globalOptions.profile) {\n printError(`profile:command=history took_ms=${Date.now() - startedAt}`);\n }\n });\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(\"--from <value>\", \"Lower timestamp bound (ISO/date string or relative)\")\n .option(\"--to <value>\", \"Upper timestamp bound (ISO/date string or relative)\")\n .option(\"--limit <n>\", \"Return only the latest n activity entries\")\n .option(\"--compact\", \"Condensed output: show only id, op, ts, author, msg per entry\")\n .option(\"--full\", \"Show full activity entries with JSON Patch payloads\")\n .option(\"--stream [mode]\", \"Emit line-delimited JSON rows (requires --json). Optional mode: rows|ndjson|jsonl\")\n .description(\"Show recent activity across items.\")\n .action(async (options: Record<string, unknown>, command) => {\n const globalOptions = getGlobalOptions(command);\n const startedAt = Date.now();\n if (options.compact === true && options.full === true) {\n throw new PmCliError(\"Activity projection options are mutually exclusive. Use either --compact or --full.\", EXIT_CODE.USAGE);\n }\n const normalized = normalizeActivityOptions(options);\n const { runActivity } = await import(\"./commands/activity.js\");\n const result = await runActivity(normalized, globalOptions);\n const streamMode = resolveActivityStreamMode(options.stream);\n if (streamMode && !globalOptions.json) {\n throw new PmCliError(\"--stream requires --json output mode.\", EXIT_CODE.USAGE);\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 }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["options"]
7
7
  }