@unbrained/pm-cli 2026.6.7 → 2026.6.9

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 (494) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/AGENTS.md +1 -1
  3. package/CHANGELOG.md +68 -6
  4. package/CONTRIBUTING.md +1 -1
  5. package/README.md +1 -1
  6. package/dist/cli/bootstrap-args.js +30 -13
  7. package/dist/cli/bootstrap-args.js.map +1 -1
  8. package/dist/cli/commands/close-many.js +9 -3
  9. package/dist/cli/commands/close-many.js.map +1 -1
  10. package/dist/cli/commands/close.js +15 -3
  11. package/dist/cli/commands/close.js.map +1 -1
  12. package/dist/cli/commands/comments-audit.js +4 -3
  13. package/dist/cli/commands/comments-audit.js.map +1 -1
  14. package/dist/cli/commands/completion.js +40 -33
  15. package/dist/cli/commands/completion.js.map +1 -1
  16. package/dist/cli/commands/extension/scaffold.js +6 -14
  17. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  18. package/dist/cli/commands/gc.js +10 -2
  19. package/dist/cli/commands/gc.js.map +1 -1
  20. package/dist/cli/commands/health.js +10 -2
  21. package/dist/cli/commands/health.js.map +1 -1
  22. package/dist/cli/commands/index.d.ts +1 -1
  23. package/dist/cli/commands/index.js +3 -3
  24. package/dist/cli/commands/index.js.map +1 -1
  25. package/dist/cli/commands/init.d.ts +1 -0
  26. package/dist/cli/commands/init.js +48 -2
  27. package/dist/cli/commands/init.js.map +1 -1
  28. package/dist/cli/commands/list.d.ts +11 -2
  29. package/dist/cli/commands/list.js +104 -2
  30. package/dist/cli/commands/list.js.map +1 -1
  31. package/dist/cli/commands/normalize.js +6 -4
  32. package/dist/cli/commands/normalize.js.map +1 -1
  33. package/dist/cli/commands/schema.d.ts +13 -2
  34. package/dist/cli/commands/schema.js +66 -12
  35. package/dist/cli/commands/schema.js.map +1 -1
  36. package/dist/cli/commands/search.d.ts +10 -2
  37. package/dist/cli/commands/search.js +94 -5
  38. package/dist/cli/commands/search.js.map +1 -1
  39. package/dist/cli/commands/upgrade.js +4 -12
  40. package/dist/cli/commands/upgrade.js.map +1 -1
  41. package/dist/cli/extension-command-options.js +40 -17
  42. package/dist/cli/extension-command-options.js.map +1 -1
  43. package/dist/cli/main.js +7 -18
  44. package/dist/cli/main.js.map +1 -1
  45. package/dist/cli/register-list-query.js +5 -3
  46. package/dist/cli/register-list-query.js.map +1 -1
  47. package/dist/cli/register-mutation.js +33 -24
  48. package/dist/cli/register-mutation.js.map +1 -1
  49. package/dist/cli/register-setup.js +4 -2
  50. package/dist/cli/register-setup.js.map +1 -1
  51. package/dist/cli/registration-helpers.js +7 -3
  52. package/dist/cli/registration-helpers.js.map +1 -1
  53. package/dist/cli-bundle/chunks/activity-HF3VJYKH.js +16 -0
  54. package/dist/cli-bundle/chunks/{activity-YVB3QRTE.js → activity-RUJATACW.js} +11 -11
  55. package/dist/cli-bundle/chunks/{aggregate-LH66F75F.js → aggregate-IQ27NFBI.js} +10 -11
  56. package/dist/cli-bundle/chunks/{aggregate-LH66F75F.js.map → aggregate-IQ27NFBI.js.map} +1 -1
  57. package/dist/cli-bundle/chunks/{aggregate-OHSWFQJM.js → aggregate-TT7OCHHT.js} +12 -13
  58. package/dist/cli-bundle/chunks/{aggregate-OHSWFQJM.js.map → aggregate-TT7OCHHT.js.map} +1 -1
  59. package/dist/cli-bundle/chunks/{append-2PPYFAG5.js → append-CWQZBUWV.js} +8 -8
  60. package/dist/cli-bundle/chunks/{append-AUGT5W6J.js → append-E7AJ5RTR.js} +8 -8
  61. package/dist/cli-bundle/chunks/{chunk-UIIQC5YO.js → chunk-23WNCJBA.js} +2 -2
  62. package/dist/cli-bundle/chunks/{chunk-GPXQBR3H.js → chunk-3RHE76G6.js} +12 -12
  63. package/dist/cli-bundle/chunks/{chunk-GUZBNB3G.js → chunk-42IULX44.js} +2 -2
  64. package/dist/cli-bundle/chunks/{chunk-HLC3KTLP.js → chunk-44JP4PYY.js} +2 -2
  65. package/dist/cli-bundle/chunks/{chunk-MWRS7Z4P.js → chunk-4LRVXVJK.js} +15 -13
  66. package/dist/cli-bundle/chunks/chunk-4LRVXVJK.js.map +7 -0
  67. package/dist/cli-bundle/chunks/{chunk-HV5SSZXF.js → chunk-4TJWRPIH.js} +2 -2
  68. package/dist/cli-bundle/chunks/{chunk-UYQ7HXH4.js → chunk-5ATRWEZO.js} +3 -3
  69. package/dist/cli-bundle/chunks/{chunk-X4IZKYHP.js → chunk-5JF76OJF.js} +246 -17
  70. package/dist/cli-bundle/chunks/chunk-5JF76OJF.js.map +1 -0
  71. package/dist/cli-bundle/chunks/{chunk-WYEXLDDY.js → chunk-5MMLINZB.js} +3 -3
  72. package/dist/cli-bundle/chunks/{chunk-2IF7WLB7.js → chunk-6IGTNFE3.js} +2 -2
  73. package/dist/cli-bundle/chunks/{chunk-UT6WFXW2.js → chunk-7CR4GAYN.js} +2 -2
  74. package/dist/cli-bundle/chunks/{chunk-NHR2QXXZ.js → chunk-7YTWXGE3.js} +20 -8
  75. package/dist/cli-bundle/chunks/chunk-7YTWXGE3.js.map +1 -0
  76. package/dist/cli-bundle/chunks/{chunk-SQPKRA54.js → chunk-A5342JVL.js} +12 -12
  77. package/dist/cli-bundle/chunks/{chunk-H7EO3QA3.js → chunk-AM2AXVFS.js} +5 -5
  78. package/dist/cli-bundle/chunks/{chunk-LIN2BPJ7.js → chunk-ANKG2JKL.js} +2 -2
  79. package/dist/cli-bundle/chunks/{chunk-YBZW2QQ7.js → chunk-AVGOVJGV.js} +10 -13
  80. package/dist/cli-bundle/chunks/chunk-AVGOVJGV.js.map +1 -0
  81. package/dist/cli-bundle/chunks/{chunk-4GHZR3BA.js → chunk-BACSNVWE.js} +10 -14
  82. package/dist/cli-bundle/chunks/chunk-BACSNVWE.js.map +1 -0
  83. package/dist/cli-bundle/chunks/{chunk-NQL32HQ5.js → chunk-BIRVSIM2.js} +12 -12
  84. package/dist/cli-bundle/chunks/{chunk-UJUT6AHZ.js → chunk-C72IQIBT.js} +271 -21
  85. package/dist/cli-bundle/chunks/chunk-C72IQIBT.js.map +7 -0
  86. package/dist/cli-bundle/chunks/{chunk-42LOFGJS.js → chunk-CAXUGAAF.js} +108 -9
  87. package/dist/cli-bundle/chunks/chunk-CAXUGAAF.js.map +7 -0
  88. package/dist/cli-bundle/chunks/{chunk-QQL5QSTZ.js → chunk-D5D7VKIC.js} +6 -5
  89. package/dist/cli-bundle/chunks/chunk-D5D7VKIC.js.map +1 -0
  90. package/dist/cli-bundle/chunks/{chunk-C5W2UH56.js → chunk-E7LOIIFP.js} +3 -3
  91. package/dist/cli-bundle/chunks/{chunk-TINUJMWN.js → chunk-EFRHTZO4.js} +109 -10
  92. package/dist/cli-bundle/chunks/chunk-EFRHTZO4.js.map +1 -0
  93. package/dist/cli-bundle/chunks/{chunk-LXO6V66E.js → chunk-ENCVPOID.js} +12 -12
  94. package/dist/cli-bundle/chunks/{chunk-4CHEG6UK.js → chunk-EQ6N6IDR.js} +8 -8
  95. package/dist/cli-bundle/chunks/{chunk-B5RF3IP7.js → chunk-F2REA7VW.js} +4 -6
  96. package/dist/cli-bundle/chunks/{chunk-B5RF3IP7.js.map → chunk-F2REA7VW.js.map} +1 -1
  97. package/dist/cli-bundle/chunks/{chunk-6J4K6JLA.js → chunk-FHUI7AXS.js} +6 -8
  98. package/dist/cli-bundle/chunks/{chunk-6J4K6JLA.js.map → chunk-FHUI7AXS.js.map} +1 -1
  99. package/dist/cli-bundle/chunks/{chunk-6RZXO5M2.js → chunk-FJNJEWU4.js} +8 -8
  100. package/dist/cli-bundle/chunks/{chunk-R3V3YCMH.js → chunk-FKH7K6YP.js} +9 -9
  101. package/dist/cli-bundle/chunks/{chunk-CLD3XNCH.js → chunk-GPOSGWCN.js} +14 -12
  102. package/dist/cli-bundle/chunks/chunk-GPOSGWCN.js.map +1 -0
  103. package/dist/cli-bundle/chunks/{chunk-3EOBJOF4.js → chunk-H37YPWLM.js} +4 -4
  104. package/dist/cli-bundle/chunks/{chunk-XYNT7UFP.js → chunk-I26E6XA7.js} +17 -7
  105. package/dist/cli-bundle/chunks/chunk-I26E6XA7.js.map +1 -0
  106. package/dist/cli-bundle/chunks/{chunk-THDEID2Z.js → chunk-I3UILOUU.js} +2 -2
  107. package/dist/cli-bundle/chunks/{chunk-YPH4ESA2.js → chunk-I4FGL3K2.js} +11 -6
  108. package/dist/cli-bundle/chunks/chunk-I4FGL3K2.js.map +1 -0
  109. package/dist/cli-bundle/chunks/{chunk-HMMMWBK2.js → chunk-JEGFLKSI.js} +2 -2
  110. package/dist/cli-bundle/chunks/{chunk-OKSKJKHX.js → chunk-JN3BT7UY.js} +9 -9
  111. package/dist/cli-bundle/chunks/{chunk-XS3O2TFJ.js → chunk-JVMAOD54.js} +8 -8
  112. package/dist/cli-bundle/chunks/chunk-JVMAOD54.js.map +1 -0
  113. package/dist/cli-bundle/chunks/{chunk-KNGVP5WJ.js → chunk-KDX6VC3P.js} +3 -3
  114. package/dist/cli-bundle/chunks/{chunk-TNPBPNII.js → chunk-KTVXLI54.js} +7 -7
  115. package/dist/cli-bundle/chunks/{chunk-TP4DDY27.js → chunk-LF2VNLEZ.js} +9 -12
  116. package/dist/cli-bundle/chunks/chunk-LF2VNLEZ.js.map +7 -0
  117. package/dist/cli-bundle/chunks/{chunk-X7UHMKPE.js → chunk-LU2HE272.js} +3 -3
  118. package/dist/cli-bundle/chunks/{chunk-WAA7UI6M.js → chunk-LU54Z4QI.js} +10 -14
  119. package/dist/cli-bundle/chunks/chunk-LU54Z4QI.js.map +7 -0
  120. package/dist/cli-bundle/chunks/{chunk-MOYM2C3J.js → chunk-MNXJ6YDO.js} +9 -9
  121. package/dist/cli-bundle/chunks/{chunk-WCQZBDDH.js → chunk-NHRZSYAA.js} +3 -3
  122. package/dist/cli-bundle/chunks/{chunk-3A2CMEM7.js → chunk-NJRZIJ4N.js} +4 -4
  123. package/dist/cli-bundle/chunks/{chunk-2OJHLWBZ.js → chunk-NUGAWYEN.js} +2 -2
  124. package/dist/cli-bundle/chunks/{chunk-LQHBENVW.js → chunk-O4L7Z6LB.js} +3 -3
  125. package/dist/cli-bundle/chunks/{chunk-V6EYFTRL.js → chunk-OPYA2HIU.js} +7 -7
  126. package/dist/cli-bundle/chunks/{chunk-KR6R465K.js → chunk-OT6XAMO5.js} +17 -7
  127. package/dist/cli-bundle/chunks/chunk-OT6XAMO5.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-FY6Z3FYY.js → chunk-P2NVFE4L.js} +3 -3
  129. package/dist/cli-bundle/chunks/{chunk-UEWA73ZZ.js → chunk-PUSOAQCR.js} +5 -5
  130. package/dist/cli-bundle/chunks/{chunk-B2KZGPM2.js → chunk-PW7C262O.js} +2 -2
  131. package/dist/cli-bundle/chunks/{chunk-AVJD6VTA.js → chunk-RE2JQJZJ.js} +3 -3
  132. package/dist/cli-bundle/chunks/{chunk-GNIUOLZ2.js → chunk-RKCJ2JMA.js} +7 -7
  133. package/dist/cli-bundle/chunks/{chunk-5AXMRKN5.js → chunk-RLVI7KDW.js} +8 -8
  134. package/dist/cli-bundle/chunks/{chunk-IMCJBN2Q.js → chunk-RMTI5R76.js} +19 -7
  135. package/dist/cli-bundle/chunks/chunk-RMTI5R76.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-FHHBD7PN.js → chunk-SAUXUI6U.js} +2 -2
  137. package/dist/cli-bundle/chunks/{chunk-O7HSSFCC.js → chunk-SD6H3RLA.js} +10 -5
  138. package/dist/cli-bundle/chunks/{chunk-O7HSSFCC.js.map → chunk-SD6H3RLA.js.map} +2 -2
  139. package/dist/cli-bundle/chunks/{chunk-M2PW7EZU.js → chunk-T7B5VAKD.js} +7 -7
  140. package/dist/cli-bundle/chunks/chunk-T7B5VAKD.js.map +7 -0
  141. package/dist/cli-bundle/chunks/{chunk-YO3THIJF.js → chunk-T7NWFVOA.js} +7 -7
  142. package/dist/cli-bundle/chunks/{chunk-WR5567FH.js → chunk-TLD3UYGY.js} +5 -4
  143. package/dist/cli-bundle/chunks/chunk-TLD3UYGY.js.map +7 -0
  144. package/dist/cli-bundle/chunks/{chunk-HRMHZ4RV.js → chunk-U3Z4OCZC.js} +2 -2
  145. package/dist/cli-bundle/chunks/{chunk-SFFVGNHC.js → chunk-VDVVOLR6.js} +3 -3
  146. package/dist/cli-bundle/chunks/{chunk-2IXCHCLM.js → chunk-WCWIDJII.js} +2 -2
  147. package/dist/cli-bundle/chunks/{chunk-LI65XLJR.js → chunk-WQZCEEQN.js} +8 -8
  148. package/dist/cli-bundle/chunks/{chunk-RVPTZKBC.js → chunk-XEOO6K5J.js} +9 -9
  149. package/dist/cli-bundle/chunks/{chunk-TYJJOTUA.js → chunk-YI6W2DBN.js} +54 -8
  150. package/dist/cli-bundle/chunks/chunk-YI6W2DBN.js.map +1 -0
  151. package/dist/cli-bundle/chunks/{chunk-UAQOQ7IE.js → chunk-YSANBZAE.js} +2 -2
  152. package/dist/cli-bundle/chunks/{chunk-LMTOY5HE.js → chunk-YX5LAKFJ.js} +2 -2
  153. package/dist/cli-bundle/chunks/{chunk-CKLBZHS7.js → chunk-ZPXDD6RQ.js} +53 -7
  154. package/dist/cli-bundle/chunks/chunk-ZPXDD6RQ.js.map +7 -0
  155. package/dist/cli-bundle/chunks/{claim-BJ4QMPJC.js → claim-RV6WYUF7.js} +10 -10
  156. package/dist/cli-bundle/chunks/{claim-KW743OSW.js → claim-UXFGCF3P.js} +10 -10
  157. package/dist/cli-bundle/chunks/close-JTTGW7TS.js +13 -0
  158. package/dist/cli-bundle/chunks/{close-SYHSRZDC.js → close-O4JK2JKD.js} +8 -8
  159. package/dist/cli-bundle/chunks/{close-many-LAC5VR4G.js → close-many-EQO4TPIE.js} +24 -19
  160. package/dist/cli-bundle/chunks/close-many-EQO4TPIE.js.map +1 -0
  161. package/dist/cli-bundle/chunks/{close-many-DBLEYFOY.js → close-many-SRDBV3SI.js} +23 -18
  162. package/dist/cli-bundle/chunks/close-many-SRDBV3SI.js.map +7 -0
  163. package/dist/cli-bundle/chunks/{comments-YT2PQ5DD.js → comments-OMB7YE27.js} +10 -10
  164. package/dist/cli-bundle/chunks/{comments-JEO6HHVM.js → comments-TTZUIB2O.js} +10 -10
  165. package/dist/cli-bundle/chunks/{config-RZRVS3ZV.js → config-5VPR42A6.js} +10 -11
  166. package/dist/cli-bundle/chunks/config-5VPR42A6.js.map +1 -0
  167. package/dist/cli-bundle/chunks/{config-YJSAAADD.js → config-NNLXVGVC.js} +9 -10
  168. package/dist/cli-bundle/chunks/config-NNLXVGVC.js.map +7 -0
  169. package/dist/cli-bundle/chunks/{context-ZUH5IOOI.js → context-4N7GYTVQ.js} +16 -18
  170. package/dist/cli-bundle/chunks/{context-ZUH5IOOI.js.map → context-4N7GYTVQ.js.map} +1 -1
  171. package/dist/cli-bundle/chunks/{context-LGYEEKAW.js → context-4QK6GRXO.js} +14 -16
  172. package/dist/cli-bundle/chunks/{context-LGYEEKAW.js.map → context-4QK6GRXO.js.map} +1 -1
  173. package/dist/cli-bundle/chunks/{contracts-YXJ6NXKH.js → contracts-AOBNEBVT.js} +4 -4
  174. package/dist/cli-bundle/chunks/{contracts-ZIBXROPE.js → contracts-DXCWXOSP.js} +4 -4
  175. package/dist/cli-bundle/chunks/{copy-BZALX5MQ.js → copy-5NM3SVJA.js} +7 -7
  176. package/dist/cli-bundle/chunks/{copy-YPWEIAPD.js → copy-XSYEQTLA.js} +7 -7
  177. package/dist/cli-bundle/chunks/{create-CF7EVRX7.js → create-FCCAATQV.js} +13 -13
  178. package/dist/cli-bundle/chunks/create-JAPLFDGJ.js +27 -0
  179. package/dist/cli-bundle/chunks/{delete-XLZRTRKR.js → delete-5JFP6OG7.js} +7 -7
  180. package/dist/cli-bundle/chunks/{delete-KR4VBWVE.js → delete-PQXJQXQ7.js} +7 -7
  181. package/dist/cli-bundle/chunks/{deps-GZMFMTGS.js → deps-S5322EOQ.js} +7 -7
  182. package/dist/cli-bundle/chunks/{deps-2YTXD3VM.js → deps-XXKBOQUA.js} +7 -7
  183. package/dist/cli-bundle/chunks/{docs-SLROFEQ4.js → docs-C7CCVWAJ.js} +9 -9
  184. package/dist/cli-bundle/chunks/{docs-ZHISRR2D.js → docs-DZRPAW5S.js} +9 -9
  185. package/dist/cli-bundle/chunks/{extension-3C7OOI4F.js → extension-CSHP6FZX.js} +5 -5
  186. package/dist/cli-bundle/chunks/{extension-XYCUXICD.js → extension-XNNVUVAY.js} +5 -5
  187. package/dist/cli-bundle/chunks/{files-J4I5IU4O.js → files-OBWYYPKM.js} +9 -9
  188. package/dist/cli-bundle/chunks/{files-FUWF2FYJ.js → files-UPCNKEIZ.js} +9 -9
  189. package/dist/cli-bundle/chunks/{gc-34NXSNSN.js → gc-FA2ONELT.js} +13 -5
  190. package/dist/cli-bundle/chunks/gc-FA2ONELT.js.map +1 -0
  191. package/dist/cli-bundle/chunks/{gc-SPIIZX3A.js → gc-KXK6KBRN.js} +12 -4
  192. package/dist/cli-bundle/chunks/gc-KXK6KBRN.js.map +7 -0
  193. package/dist/cli-bundle/chunks/{get-VITKYP6S.js → get-FLHYTOBA.js} +11 -11
  194. package/dist/cli-bundle/chunks/{get-SZKNRHMA.js → get-PNTSONGB.js} +11 -11
  195. package/dist/cli-bundle/chunks/{health-7G3EPM57.js → health-CS5RNTJX.js} +21 -14
  196. package/dist/cli-bundle/chunks/health-CS5RNTJX.js.map +1 -0
  197. package/dist/cli-bundle/chunks/{health-4SNTA2TF.js → health-KCRVYIYY.js} +20 -13
  198. package/dist/cli-bundle/chunks/health-KCRVYIYY.js.map +7 -0
  199. package/dist/cli-bundle/chunks/history-6624XISO.js +20 -0
  200. package/dist/cli-bundle/chunks/{history-SDAWYZR3.js → history-COQTPBEU.js} +10 -10
  201. package/dist/cli-bundle/chunks/{history-compact-POTZGG7K.js → history-compact-66PSRYL3.js} +11 -11
  202. package/dist/cli-bundle/chunks/{history-compact-DMW536VH.js → history-compact-PVS2A3FS.js} +11 -11
  203. package/dist/cli-bundle/chunks/{history-redact-EPJ7GENL.js → history-redact-DCXAWGTF.js} +11 -11
  204. package/dist/cli-bundle/chunks/history-redact-ZRQTI7NB.js +19 -0
  205. package/dist/cli-bundle/chunks/{history-repair-YNESJRT6.js → history-repair-SEQDFTGW.js} +11 -11
  206. package/dist/cli-bundle/chunks/{history-repair-IJ7LLBET.js → history-repair-TA3NRIFO.js} +11 -11
  207. package/dist/cli-bundle/chunks/{init-YHVBTEET.js → init-IQJE3EKJ.js} +9 -9
  208. package/dist/cli-bundle/chunks/init-ZVE2HMKK.js +17 -0
  209. package/dist/cli-bundle/chunks/{learnings-T4PF24YN.js → learnings-RJPGH2ME.js} +10 -10
  210. package/dist/cli-bundle/chunks/{learnings-4YBMIVCZ.js → learnings-XC6EMW5E.js} +10 -10
  211. package/dist/cli-bundle/chunks/{list-3KEVBOYW.js → list-NJV6WBT4.js} +10 -11
  212. package/dist/cli-bundle/chunks/list-OO5P472O.js +19 -0
  213. package/dist/cli-bundle/chunks/{notes-GJKALVZM.js → notes-2KWHADK3.js} +10 -10
  214. package/dist/cli-bundle/chunks/{notes-FLUCNJSH.js → notes-FNCDMZW2.js} +10 -10
  215. package/dist/cli-bundle/chunks/{plan-T5MMZLI3.js → plan-CYK2P5PD.js} +13 -13
  216. package/dist/cli-bundle/chunks/{plan-YYMIL3HV.js → plan-MQO5JTSV.js} +13 -13
  217. package/dist/cli-bundle/chunks/{register-list-query-I65EZ3HB.js → register-list-query-6RA24SIZ.js} +23 -21
  218. package/dist/cli-bundle/chunks/register-list-query-6RA24SIZ.js.map +1 -0
  219. package/dist/cli-bundle/chunks/{register-list-query-OECMHO4G.js → register-list-query-IO3RR5K6.js} +22 -20
  220. package/dist/cli-bundle/chunks/register-list-query-IO3RR5K6.js.map +7 -0
  221. package/dist/cli-bundle/chunks/{register-mutation-5GPDEKHR.js → register-mutation-KVFUXCAZ.js} +40 -36
  222. package/dist/cli-bundle/chunks/{register-mutation-5GPDEKHR.js.map → register-mutation-KVFUXCAZ.js.map} +2 -2
  223. package/dist/cli-bundle/chunks/{register-mutation-2FLXORLR.js → register-mutation-VV2SC2KL.js} +41 -37
  224. package/dist/cli-bundle/chunks/{register-mutation-2FLXORLR.js.map → register-mutation-VV2SC2KL.js.map} +1 -1
  225. package/dist/cli-bundle/chunks/{register-operations-BNGAUMGK.js → register-operations-DFNVRSJ5.js} +30 -30
  226. package/dist/cli-bundle/chunks/{register-operations-GQKT35H5.js → register-operations-TAUUTRJ4.js} +30 -30
  227. package/dist/cli-bundle/chunks/{register-setup-DNDCGZ4O.js → register-setup-GAQZZRUA.js} +20 -19
  228. package/dist/cli-bundle/chunks/register-setup-GAQZZRUA.js.map +1 -0
  229. package/dist/cli-bundle/chunks/{register-setup-EJY44FPH.js → register-setup-X2R5CFDV.js} +19 -18
  230. package/dist/cli-bundle/chunks/{register-setup-EJY44FPH.js.map → register-setup-X2R5CFDV.js.map} +2 -2
  231. package/dist/cli-bundle/chunks/{restore-DDJGVZIN.js → restore-E3GZKRRK.js} +11 -11
  232. package/dist/cli-bundle/chunks/restore-F4ALFV4D.js +17 -0
  233. package/dist/cli-bundle/chunks/{schema-HEGYH6CE.js → schema-3CPFLDAY.js} +77 -21
  234. package/dist/cli-bundle/chunks/schema-3CPFLDAY.js.map +1 -0
  235. package/dist/cli-bundle/chunks/{schema-B7NQ6XVP.js → schema-7EHBPNXM.js} +76 -20
  236. package/dist/cli-bundle/chunks/schema-7EHBPNXM.js.map +7 -0
  237. package/dist/cli-bundle/chunks/{search-DVVQ4UO2.js → search-2T3NCCUR.js} +104 -16
  238. package/dist/cli-bundle/chunks/search-2T3NCCUR.js.map +1 -0
  239. package/dist/cli-bundle/chunks/{search-JNEZJV7H.js → search-OBZVYJJ2.js} +103 -15
  240. package/dist/cli-bundle/chunks/search-OBZVYJJ2.js.map +7 -0
  241. package/dist/cli-bundle/chunks/{stats-SYTJRR4Z.js → stats-6LVK4JER.js} +7 -7
  242. package/dist/cli-bundle/chunks/{stats-7JDIJRDH.js → stats-ULGQACF7.js} +7 -7
  243. package/dist/cli-bundle/chunks/{telemetry-4HHWD5Y7.js → telemetry-6G27FLCP.js} +4 -4
  244. package/dist/cli-bundle/chunks/{telemetry-EGWP7ZUX.js → telemetry-HHKRTMZA.js} +4 -4
  245. package/dist/cli-bundle/chunks/{test-IIELLSZX.js → test-2PP4YBV6.js} +14 -14
  246. package/dist/cli-bundle/chunks/test-PPOLRIBA.js +32 -0
  247. package/dist/cli-bundle/chunks/{test-all-7DNCMML7.js → test-all-6Z272JRI.js} +14 -14
  248. package/dist/cli-bundle/chunks/{test-all-IHTUJRRC.js → test-all-NETGVNM6.js} +14 -14
  249. package/dist/cli-bundle/chunks/{test-runs-RNKZ37PS.js → test-runs-CRPQVMMG.js} +5 -5
  250. package/dist/cli-bundle/chunks/{test-runs-5FEMBV3A.js → test-runs-M24WA6TI.js} +5 -5
  251. package/dist/cli-bundle/chunks/update-MCPCPMHV.js +25 -0
  252. package/dist/cli-bundle/chunks/update-O7TBOUVQ.js +21 -0
  253. package/dist/cli-bundle/chunks/{update-many-BSZZZYXY.js → update-many-JSRF5EH5.js} +22 -23
  254. package/dist/cli-bundle/chunks/{update-many-BSZZZYXY.js.map → update-many-JSRF5EH5.js.map} +1 -1
  255. package/dist/cli-bundle/chunks/{update-many-BWKJJEBF.js → update-many-Y3HOL7WA.js} +24 -25
  256. package/dist/cli-bundle/chunks/{update-many-BWKJJEBF.js.map → update-many-Y3HOL7WA.js.map} +1 -1
  257. package/dist/cli-bundle/chunks/{upgrade-YWI5DJFA.js → upgrade-5RTQVKKE.js} +8 -15
  258. package/dist/cli-bundle/chunks/upgrade-5RTQVKKE.js.map +7 -0
  259. package/dist/cli-bundle/chunks/{upgrade-RSE5PC44.js → upgrade-ECB6GH3M.js} +9 -16
  260. package/dist/cli-bundle/chunks/upgrade-ECB6GH3M.js.map +1 -0
  261. package/dist/cli-bundle/chunks/{validate-NK3WKB7C.js → validate-J6Q444SD.js} +16 -16
  262. package/dist/cli-bundle/chunks/{validate-UCEOB7S6.js → validate-MCNMAXVA.js} +16 -16
  263. package/dist/cli-bundle/main.js +77 -81
  264. package/dist/cli-bundle/main.js.map +3 -3
  265. package/dist/core/config/nested-settings.d.ts +0 -2
  266. package/dist/core/config/nested-settings.js +2 -4
  267. package/dist/core/config/nested-settings.js.map +1 -1
  268. package/dist/core/diagnostics/remediation.js +7 -2
  269. package/dist/core/diagnostics/remediation.js.map +1 -1
  270. package/dist/core/extensions/extension-types.d.ts +59 -1
  271. package/dist/core/extensions/extension-types.js +2 -2
  272. package/dist/core/extensions/extension-types.js.map +1 -1
  273. package/dist/core/extensions/flag-value-types.d.ts +29 -0
  274. package/dist/core/extensions/flag-value-types.js +78 -0
  275. package/dist/core/extensions/flag-value-types.js.map +1 -0
  276. package/dist/core/extensions/item-field-types.d.ts +22 -0
  277. package/dist/core/extensions/item-field-types.js +43 -0
  278. package/dist/core/extensions/item-field-types.js.map +1 -0
  279. package/dist/core/extensions/item-fields.js +4 -11
  280. package/dist/core/extensions/item-fields.js.map +1 -1
  281. package/dist/core/extensions/loader.d.ts +14 -1
  282. package/dist/core/extensions/loader.js +141 -10
  283. package/dist/core/extensions/loader.js.map +1 -1
  284. package/dist/core/fs/fs-utils.js +29 -4
  285. package/dist/core/fs/fs-utils.js.map +1 -1
  286. package/dist/core/packages/manifest.d.ts +1 -1
  287. package/dist/core/packages/manifest.js +12 -2
  288. package/dist/core/packages/manifest.js.map +1 -1
  289. package/dist/core/packages/root.d.ts +10 -0
  290. package/dist/core/packages/root.js +24 -2
  291. package/dist/core/packages/root.js.map +1 -1
  292. package/dist/core/schema/runtime-schema.js +3 -6
  293. package/dist/core/schema/runtime-schema.js.map +1 -1
  294. package/dist/core/search/background-refresh.d.ts +0 -8
  295. package/dist/core/search/background-refresh.js +2 -9
  296. package/dist/core/search/background-refresh.js.map +1 -1
  297. package/dist/core/search/vector-stores.js +6 -8
  298. package/dist/core/search/vector-stores.js.map +1 -1
  299. package/dist/core/sentry/instrument.js +4 -17
  300. package/dist/core/sentry/instrument.js.map +1 -1
  301. package/dist/core/store/paths.js +17 -3
  302. package/dist/core/store/paths.js.map +1 -1
  303. package/dist/core/telemetry/runtime.d.ts +1 -0
  304. package/dist/core/telemetry/runtime.js +3 -3
  305. package/dist/core/telemetry/runtime.js.map +1 -1
  306. package/dist/mcp/server.js +131 -42
  307. package/dist/mcp/server.js.map +1 -1
  308. package/dist/sdk/cli-contracts/commander-types.js +4 -4
  309. package/dist/sdk/cli-contracts/commander-types.js.map +1 -1
  310. package/dist/sdk/cli-contracts/tool-parameter-tables.js +3 -3
  311. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  312. package/dist/sdk/cli-contracts.js +10 -8
  313. package/dist/sdk/cli-contracts.js.map +1 -1
  314. package/dist/sdk/index.d.ts +7 -2
  315. package/dist/sdk/index.js +3 -3
  316. package/dist/sdk/index.js.map +1 -1
  317. package/dist/sdk/testing.d.ts +55 -1
  318. package/dist/sdk/testing.js +92 -2
  319. package/dist/sdk/testing.js.map +1 -1
  320. package/docs/AGENT_GUIDE.md +3 -1
  321. package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
  322. package/docs/COMMANDS.md +6 -4
  323. package/docs/CONFIGURATION.md +6 -0
  324. package/docs/EXTENSIONS.md +7 -8
  325. package/docs/RELEASING.md +17 -0
  326. package/docs/SDK.md +98 -0
  327. package/marketplace.json +1 -1
  328. package/package.json +1 -1
  329. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  330. package/plugins/pm-claude/README.md +3 -3
  331. package/plugins/pm-claude/commands/pm-init.md +1 -1
  332. package/dist/cli-bundle/chunks/activity-5UROHJ3D.js +0 -16
  333. package/dist/cli-bundle/chunks/chunk-42LOFGJS.js.map +0 -7
  334. package/dist/cli-bundle/chunks/chunk-4GHZR3BA.js.map +0 -1
  335. package/dist/cli-bundle/chunks/chunk-CKLBZHS7.js.map +0 -7
  336. package/dist/cli-bundle/chunks/chunk-CLD3XNCH.js.map +0 -1
  337. package/dist/cli-bundle/chunks/chunk-EAOG77HM.js +0 -56
  338. package/dist/cli-bundle/chunks/chunk-EAOG77HM.js.map +0 -7
  339. package/dist/cli-bundle/chunks/chunk-IMCJBN2Q.js.map +0 -7
  340. package/dist/cli-bundle/chunks/chunk-KR6R465K.js.map +0 -7
  341. package/dist/cli-bundle/chunks/chunk-M2PW7EZU.js.map +0 -7
  342. package/dist/cli-bundle/chunks/chunk-MWRS7Z4P.js.map +0 -7
  343. package/dist/cli-bundle/chunks/chunk-NHR2QXXZ.js.map +0 -1
  344. package/dist/cli-bundle/chunks/chunk-QQL5QSTZ.js.map +0 -1
  345. package/dist/cli-bundle/chunks/chunk-TINUJMWN.js.map +0 -1
  346. package/dist/cli-bundle/chunks/chunk-TP4DDY27.js.map +0 -7
  347. package/dist/cli-bundle/chunks/chunk-TYJJOTUA.js.map +0 -1
  348. package/dist/cli-bundle/chunks/chunk-UJUT6AHZ.js.map +0 -7
  349. package/dist/cli-bundle/chunks/chunk-WAA7UI6M.js.map +0 -7
  350. package/dist/cli-bundle/chunks/chunk-WR5567FH.js.map +0 -7
  351. package/dist/cli-bundle/chunks/chunk-X4IZKYHP.js.map +0 -1
  352. package/dist/cli-bundle/chunks/chunk-XS3O2TFJ.js.map +0 -1
  353. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js +0 -53
  354. package/dist/cli-bundle/chunks/chunk-XSLQSXAH.js.map +0 -1
  355. package/dist/cli-bundle/chunks/chunk-XYNT7UFP.js.map +0 -1
  356. package/dist/cli-bundle/chunks/chunk-YBZW2QQ7.js.map +0 -1
  357. package/dist/cli-bundle/chunks/chunk-YPH4ESA2.js.map +0 -1
  358. package/dist/cli-bundle/chunks/close-P4ZBKODL.js +0 -13
  359. package/dist/cli-bundle/chunks/close-many-DBLEYFOY.js.map +0 -7
  360. package/dist/cli-bundle/chunks/close-many-LAC5VR4G.js.map +0 -1
  361. package/dist/cli-bundle/chunks/config-RZRVS3ZV.js.map +0 -1
  362. package/dist/cli-bundle/chunks/config-YJSAAADD.js.map +0 -7
  363. package/dist/cli-bundle/chunks/create-4DS2QWQC.js +0 -27
  364. package/dist/cli-bundle/chunks/gc-34NXSNSN.js.map +0 -1
  365. package/dist/cli-bundle/chunks/gc-SPIIZX3A.js.map +0 -7
  366. package/dist/cli-bundle/chunks/health-4SNTA2TF.js.map +0 -7
  367. package/dist/cli-bundle/chunks/health-7G3EPM57.js.map +0 -1
  368. package/dist/cli-bundle/chunks/history-YDUEILKP.js +0 -20
  369. package/dist/cli-bundle/chunks/history-redact-KASLLPE7.js +0 -19
  370. package/dist/cli-bundle/chunks/init-IGSS4GNH.js +0 -17
  371. package/dist/cli-bundle/chunks/list-E44O2K64.js +0 -20
  372. package/dist/cli-bundle/chunks/register-list-query-I65EZ3HB.js.map +0 -1
  373. package/dist/cli-bundle/chunks/register-list-query-OECMHO4G.js.map +0 -7
  374. package/dist/cli-bundle/chunks/register-setup-DNDCGZ4O.js.map +0 -1
  375. package/dist/cli-bundle/chunks/restore-SJSASGZP.js +0 -17
  376. package/dist/cli-bundle/chunks/schema-B7NQ6XVP.js.map +0 -7
  377. package/dist/cli-bundle/chunks/schema-HEGYH6CE.js.map +0 -1
  378. package/dist/cli-bundle/chunks/search-DVVQ4UO2.js.map +0 -1
  379. package/dist/cli-bundle/chunks/search-JNEZJV7H.js.map +0 -7
  380. package/dist/cli-bundle/chunks/test-ML5RLWXE.js +0 -32
  381. package/dist/cli-bundle/chunks/update-6C67X4KS.js +0 -21
  382. package/dist/cli-bundle/chunks/update-VF26YPT3.js +0 -25
  383. package/dist/cli-bundle/chunks/upgrade-RSE5PC44.js.map +0 -1
  384. package/dist/cli-bundle/chunks/upgrade-YWI5DJFA.js.map +0 -7
  385. /package/dist/cli-bundle/chunks/{activity-5UROHJ3D.js.map → activity-HF3VJYKH.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{activity-YVB3QRTE.js.map → activity-RUJATACW.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{append-2PPYFAG5.js.map → append-CWQZBUWV.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{append-AUGT5W6J.js.map → append-E7AJ5RTR.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{chunk-UIIQC5YO.js.map → chunk-23WNCJBA.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{chunk-GPXQBR3H.js.map → chunk-3RHE76G6.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{chunk-GUZBNB3G.js.map → chunk-42IULX44.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{chunk-HLC3KTLP.js.map → chunk-44JP4PYY.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{chunk-HV5SSZXF.js.map → chunk-4TJWRPIH.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{chunk-UYQ7HXH4.js.map → chunk-5ATRWEZO.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{chunk-WYEXLDDY.js.map → chunk-5MMLINZB.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{chunk-2IF7WLB7.js.map → chunk-6IGTNFE3.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{chunk-UT6WFXW2.js.map → chunk-7CR4GAYN.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{chunk-SQPKRA54.js.map → chunk-A5342JVL.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{chunk-H7EO3QA3.js.map → chunk-AM2AXVFS.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{chunk-LIN2BPJ7.js.map → chunk-ANKG2JKL.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{chunk-NQL32HQ5.js.map → chunk-BIRVSIM2.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{chunk-C5W2UH56.js.map → chunk-E7LOIIFP.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{chunk-LXO6V66E.js.map → chunk-ENCVPOID.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{chunk-4CHEG6UK.js.map → chunk-EQ6N6IDR.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{chunk-6RZXO5M2.js.map → chunk-FJNJEWU4.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{chunk-R3V3YCMH.js.map → chunk-FKH7K6YP.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{chunk-3EOBJOF4.js.map → chunk-H37YPWLM.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{chunk-THDEID2Z.js.map → chunk-I3UILOUU.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{chunk-HMMMWBK2.js.map → chunk-JEGFLKSI.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{chunk-OKSKJKHX.js.map → chunk-JN3BT7UY.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{chunk-KNGVP5WJ.js.map → chunk-KDX6VC3P.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{chunk-TNPBPNII.js.map → chunk-KTVXLI54.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{chunk-X7UHMKPE.js.map → chunk-LU2HE272.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{chunk-MOYM2C3J.js.map → chunk-MNXJ6YDO.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{chunk-WCQZBDDH.js.map → chunk-NHRZSYAA.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{chunk-3A2CMEM7.js.map → chunk-NJRZIJ4N.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{chunk-2OJHLWBZ.js.map → chunk-NUGAWYEN.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{chunk-LQHBENVW.js.map → chunk-O4L7Z6LB.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{chunk-V6EYFTRL.js.map → chunk-OPYA2HIU.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{chunk-FY6Z3FYY.js.map → chunk-P2NVFE4L.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{chunk-UEWA73ZZ.js.map → chunk-PUSOAQCR.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{chunk-B2KZGPM2.js.map → chunk-PW7C262O.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{chunk-AVJD6VTA.js.map → chunk-RE2JQJZJ.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{chunk-GNIUOLZ2.js.map → chunk-RKCJ2JMA.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{chunk-5AXMRKN5.js.map → chunk-RLVI7KDW.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{chunk-FHHBD7PN.js.map → chunk-SAUXUI6U.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{chunk-YO3THIJF.js.map → chunk-T7NWFVOA.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{chunk-HRMHZ4RV.js.map → chunk-U3Z4OCZC.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{chunk-SFFVGNHC.js.map → chunk-VDVVOLR6.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{chunk-2IXCHCLM.js.map → chunk-WCWIDJII.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{chunk-LI65XLJR.js.map → chunk-WQZCEEQN.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{chunk-RVPTZKBC.js.map → chunk-XEOO6K5J.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{chunk-UAQOQ7IE.js.map → chunk-YSANBZAE.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{chunk-LMTOY5HE.js.map → chunk-YX5LAKFJ.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{claim-BJ4QMPJC.js.map → claim-RV6WYUF7.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{claim-KW743OSW.js.map → claim-UXFGCF3P.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{close-P4ZBKODL.js.map → close-JTTGW7TS.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{close-SYHSRZDC.js.map → close-O4JK2JKD.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{comments-YT2PQ5DD.js.map → comments-OMB7YE27.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{comments-JEO6HHVM.js.map → comments-TTZUIB2O.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{contracts-YXJ6NXKH.js.map → contracts-AOBNEBVT.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{contracts-ZIBXROPE.js.map → contracts-DXCWXOSP.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{copy-BZALX5MQ.js.map → copy-5NM3SVJA.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{copy-YPWEIAPD.js.map → copy-XSYEQTLA.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{create-CF7EVRX7.js.map → create-FCCAATQV.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{create-4DS2QWQC.js.map → create-JAPLFDGJ.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{delete-XLZRTRKR.js.map → delete-5JFP6OG7.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{delete-KR4VBWVE.js.map → delete-PQXJQXQ7.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{deps-GZMFMTGS.js.map → deps-S5322EOQ.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{deps-2YTXD3VM.js.map → deps-XXKBOQUA.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{docs-SLROFEQ4.js.map → docs-C7CCVWAJ.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{docs-ZHISRR2D.js.map → docs-DZRPAW5S.js.map} +0 -0
  453. /package/dist/cli-bundle/chunks/{extension-3C7OOI4F.js.map → extension-CSHP6FZX.js.map} +0 -0
  454. /package/dist/cli-bundle/chunks/{extension-XYCUXICD.js.map → extension-XNNVUVAY.js.map} +0 -0
  455. /package/dist/cli-bundle/chunks/{files-J4I5IU4O.js.map → files-OBWYYPKM.js.map} +0 -0
  456. /package/dist/cli-bundle/chunks/{files-FUWF2FYJ.js.map → files-UPCNKEIZ.js.map} +0 -0
  457. /package/dist/cli-bundle/chunks/{get-VITKYP6S.js.map → get-FLHYTOBA.js.map} +0 -0
  458. /package/dist/cli-bundle/chunks/{get-SZKNRHMA.js.map → get-PNTSONGB.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{history-YDUEILKP.js.map → history-6624XISO.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{history-SDAWYZR3.js.map → history-COQTPBEU.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{history-compact-POTZGG7K.js.map → history-compact-66PSRYL3.js.map} +0 -0
  462. /package/dist/cli-bundle/chunks/{history-compact-DMW536VH.js.map → history-compact-PVS2A3FS.js.map} +0 -0
  463. /package/dist/cli-bundle/chunks/{history-redact-EPJ7GENL.js.map → history-redact-DCXAWGTF.js.map} +0 -0
  464. /package/dist/cli-bundle/chunks/{history-redact-KASLLPE7.js.map → history-redact-ZRQTI7NB.js.map} +0 -0
  465. /package/dist/cli-bundle/chunks/{history-repair-YNESJRT6.js.map → history-repair-SEQDFTGW.js.map} +0 -0
  466. /package/dist/cli-bundle/chunks/{history-repair-IJ7LLBET.js.map → history-repair-TA3NRIFO.js.map} +0 -0
  467. /package/dist/cli-bundle/chunks/{init-YHVBTEET.js.map → init-IQJE3EKJ.js.map} +0 -0
  468. /package/dist/cli-bundle/chunks/{init-IGSS4GNH.js.map → init-ZVE2HMKK.js.map} +0 -0
  469. /package/dist/cli-bundle/chunks/{learnings-T4PF24YN.js.map → learnings-RJPGH2ME.js.map} +0 -0
  470. /package/dist/cli-bundle/chunks/{learnings-4YBMIVCZ.js.map → learnings-XC6EMW5E.js.map} +0 -0
  471. /package/dist/cli-bundle/chunks/{list-3KEVBOYW.js.map → list-NJV6WBT4.js.map} +0 -0
  472. /package/dist/cli-bundle/chunks/{list-E44O2K64.js.map → list-OO5P472O.js.map} +0 -0
  473. /package/dist/cli-bundle/chunks/{notes-GJKALVZM.js.map → notes-2KWHADK3.js.map} +0 -0
  474. /package/dist/cli-bundle/chunks/{notes-FLUCNJSH.js.map → notes-FNCDMZW2.js.map} +0 -0
  475. /package/dist/cli-bundle/chunks/{plan-T5MMZLI3.js.map → plan-CYK2P5PD.js.map} +0 -0
  476. /package/dist/cli-bundle/chunks/{plan-YYMIL3HV.js.map → plan-MQO5JTSV.js.map} +0 -0
  477. /package/dist/cli-bundle/chunks/{register-operations-BNGAUMGK.js.map → register-operations-DFNVRSJ5.js.map} +0 -0
  478. /package/dist/cli-bundle/chunks/{register-operations-GQKT35H5.js.map → register-operations-TAUUTRJ4.js.map} +0 -0
  479. /package/dist/cli-bundle/chunks/{restore-DDJGVZIN.js.map → restore-E3GZKRRK.js.map} +0 -0
  480. /package/dist/cli-bundle/chunks/{restore-SJSASGZP.js.map → restore-F4ALFV4D.js.map} +0 -0
  481. /package/dist/cli-bundle/chunks/{stats-SYTJRR4Z.js.map → stats-6LVK4JER.js.map} +0 -0
  482. /package/dist/cli-bundle/chunks/{stats-7JDIJRDH.js.map → stats-ULGQACF7.js.map} +0 -0
  483. /package/dist/cli-bundle/chunks/{telemetry-4HHWD5Y7.js.map → telemetry-6G27FLCP.js.map} +0 -0
  484. /package/dist/cli-bundle/chunks/{telemetry-EGWP7ZUX.js.map → telemetry-HHKRTMZA.js.map} +0 -0
  485. /package/dist/cli-bundle/chunks/{test-IIELLSZX.js.map → test-2PP4YBV6.js.map} +0 -0
  486. /package/dist/cli-bundle/chunks/{test-ML5RLWXE.js.map → test-PPOLRIBA.js.map} +0 -0
  487. /package/dist/cli-bundle/chunks/{test-all-7DNCMML7.js.map → test-all-6Z272JRI.js.map} +0 -0
  488. /package/dist/cli-bundle/chunks/{test-all-IHTUJRRC.js.map → test-all-NETGVNM6.js.map} +0 -0
  489. /package/dist/cli-bundle/chunks/{test-runs-RNKZ37PS.js.map → test-runs-CRPQVMMG.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{test-runs-5FEMBV3A.js.map → test-runs-M24WA6TI.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{update-VF26YPT3.js.map → update-MCPCPMHV.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{update-6C67X4KS.js.map → update-O7TBOUVQ.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{validate-NK3WKB7C.js.map → validate-J6Q444SD.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{validate-UCEOB7S6.js.map → validate-MCNMAXVA.js.map} +0 -0
@@ -1,33 +1,33 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="cb8b3d0e-4dd5-525b-85b5-1c1cbacff4b4")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0f130702-6ecd-5314-a716-349e562b8bd7")}catch(e){}}();
3
3
  import {
4
4
  collectRuntimeFilterValues,
5
5
  matchesRuntimeFilters,
6
6
  parseStatusFilterCsv
7
- } from "./chunk-6J4K6JLA.js";
7
+ } from "./chunk-FHUI7AXS.js";
8
8
  import {
9
9
  parseIntegerLimit,
10
10
  parsePriority,
11
11
  parseType
12
- } from "./chunk-FY6Z3FYY.js";
12
+ } from "./chunk-P2NVFE4L.js";
13
13
  import {
14
14
  HEAVY_METADATA_KEYS,
15
15
  listAllFrontMatter,
16
16
  listAllFrontMatterLight,
17
17
  listAllFrontMatterWithBody,
18
18
  toItemRecord
19
- } from "./chunk-YBZW2QQ7.js";
19
+ } from "./chunk-AVGOVJGV.js";
20
20
  import {
21
21
  isTerminalStatus
22
- } from "./chunk-UYQ7HXH4.js";
22
+ } from "./chunk-5ATRWEZO.js";
23
23
  import {
24
24
  resolveItemTypeRegistry
25
- } from "./chunk-GUZBNB3G.js";
25
+ } from "./chunk-42IULX44.js";
26
26
  import {
27
27
  compareTimestampStrings,
28
28
  nowIso,
29
29
  resolveIsoOrRelative
30
- } from "./chunk-B2KZGPM2.js";
30
+ } from "./chunk-PW7C262O.js";
31
31
  import {
32
32
  EXIT_CODE,
33
33
  FRONT_MATTER_KEY_ORDER,
@@ -39,7 +39,7 @@ import {
39
39
  resolvePmRoot,
40
40
  resolveRuntimeFieldRegistry,
41
41
  resolveRuntimeStatusRegistry
42
- } from "./chunk-X4IZKYHP.js";
42
+ } from "./chunk-5JF76OJF.js";
43
43
 
44
44
  // dist/cli/commands/list.js
45
45
  var LIST_SORT_FIELDS = ["priority", "deadline", "updated_at", "created_at", "title", "parent"];
@@ -48,6 +48,87 @@ var DEFAULT_COMPACT_LIST_FIELDS = ["id", "title", "status", "type", "priority",
48
48
  var BRIEF_LIST_FIELDS = ["id", "status", "type", "title"];
49
49
  var TREE_METADATA_FIELDS = ["tree_depth", "tree_parent", "tree_children", "tree_title"];
50
50
  var HEAVY_PROJECTION_FIELDS = new Set(HEAVY_METADATA_KEYS);
51
+ function isNonEmptyRecord(value) {
52
+ return typeof value === "object" && value !== null && !Array.isArray(value) && Object.keys(value).length > 0;
53
+ }
54
+ function buildCompactListFilterSummary(params) {
55
+ const { filtersStatus, options, treeEnabled, treeDepth, sortField, sortOrder, runtimeFieldFilters } = params;
56
+ const filters = {};
57
+ if (filtersStatus !== null) {
58
+ filters.status = filtersStatus;
59
+ }
60
+ if (options.type !== void 0) {
61
+ filters.type = options.type;
62
+ }
63
+ if (options.tag !== void 0) {
64
+ filters.tag = options.tag;
65
+ }
66
+ if (options.priority !== void 0) {
67
+ filters.priority = options.priority;
68
+ }
69
+ if (options.deadlineBefore !== void 0) {
70
+ filters.deadline_before = options.deadlineBefore;
71
+ }
72
+ if (options.deadlineAfter !== void 0) {
73
+ filters.deadline_after = options.deadlineAfter;
74
+ }
75
+ if (options.updatedAfter !== void 0) {
76
+ filters.updated_after = options.updatedAfter;
77
+ }
78
+ if (options.updatedBefore !== void 0) {
79
+ filters.updated_before = options.updatedBefore;
80
+ }
81
+ if (options.createdAfter !== void 0) {
82
+ filters.created_after = options.createdAfter;
83
+ }
84
+ if (options.createdBefore !== void 0) {
85
+ filters.created_before = options.createdBefore;
86
+ }
87
+ if (options.ids !== void 0) {
88
+ filters.ids = options.ids;
89
+ }
90
+ if (options.assignee !== void 0) {
91
+ filters.assignee = options.assignee;
92
+ }
93
+ if (options.assigneeFilter !== void 0) {
94
+ filters.assignee_filter = options.assigneeFilter;
95
+ }
96
+ if (options.parent !== void 0) {
97
+ filters.parent = options.parent;
98
+ }
99
+ if (options.sprint !== void 0) {
100
+ filters.sprint = options.sprint;
101
+ }
102
+ if (options.release !== void 0) {
103
+ filters.release = options.release;
104
+ }
105
+ if (options.limit !== void 0) {
106
+ filters.limit = options.limit;
107
+ }
108
+ if (options.offset !== void 0) {
109
+ filters.offset = options.offset;
110
+ }
111
+ if (options.includeBody === true) {
112
+ filters.include_body = true;
113
+ }
114
+ if (options.fields !== void 0) {
115
+ filters.fields = options.fields;
116
+ }
117
+ if (treeEnabled) {
118
+ filters.tree = true;
119
+ if (treeDepth !== void 0) {
120
+ filters.tree_depth = treeDepth;
121
+ }
122
+ }
123
+ if (sortField !== void 0) {
124
+ filters.sort = sortField;
125
+ filters.order = sortOrder;
126
+ }
127
+ if (isNonEmptyRecord(runtimeFieldFilters)) {
128
+ filters.runtime_filters = runtimeFieldFilters;
129
+ }
130
+ return filters;
131
+ }
51
132
  function compareDefaultSort(left, right, statusRegistry) {
52
133
  const leftTerminal = isTerminalStatus(left.status, statusRegistry);
53
134
  const rightTerminal = isTerminalStatus(right.status, statusRegistry);
@@ -476,6 +557,24 @@ async function runList(status, options, global) {
476
557
  const now = nowIso();
477
558
  const warnings = [...new Set(listWarnings)].sort((left, right) => left.localeCompare(right));
478
559
  const projectionFields = projection.mode === "full" ? null : [...projection.fields];
560
+ const compactSummaryMode = projection.mode === "compact" && options.compact === true;
561
+ if (compactSummaryMode) {
562
+ const compactFilters = buildCompactListFilterSummary({
563
+ filtersStatus,
564
+ options,
565
+ treeEnabled,
566
+ treeDepth,
567
+ sortField,
568
+ sortOrder,
569
+ runtimeFieldFilters
570
+ });
571
+ return {
572
+ items: projected,
573
+ count: projected.length,
574
+ filters: compactFilters,
575
+ ...warnings.length > 0 ? { warnings } : {}
576
+ };
577
+ }
479
578
  return {
480
579
  items: projected,
481
580
  count: projected.length,
@@ -524,6 +623,6 @@ export {
524
623
  LIST_SORT_ORDER_VALUES,
525
624
  runList
526
625
  };
527
- //# sourceMappingURL=chunk-TINUJMWN.js.map
626
+ //# sourceMappingURL=chunk-EFRHTZO4.js.map
528
627
 
529
- //# debugId=cb8b3d0e-4dd5-525b-85b5-1c1cbacff4b4
628
+ //# debugId=0f130702-6ecd-5314-a716-349e562b8bd7
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../cli/commands/list.ts"],"sourcesContent":["import { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { isTerminalStatus } from \"../../core/item/status.js\";\nimport { parseStatusFilterCsv } from \"../../core/item/status-filter.js\";\nimport { resolveItemTypeRegistry, type ItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { parseIntegerLimit, parsePriority, parseType } from \"../shared-parsers.js\";\nimport { collectRuntimeFilterValues, matchesRuntimeFilters } from \"../../core/schema/runtime-field-filters.js\";\nimport {\n resolveRuntimeFieldRegistry,\n resolveRuntimeStatusRegistry,\n type RuntimeStatusRegistry,\n} from \"../../core/schema/runtime-schema.js\";\nimport { EXIT_CODE, FRONT_MATTER_KEY_ORDER } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { compareTimestampStrings, nowIso, resolveIsoOrRelative } from \"../../core/shared/time.js\";\nimport { listAllFrontMatter, listAllFrontMatterLight, listAllFrontMatterWithBody } from \"../../core/store/item-store.js\";\nimport { HEAVY_METADATA_KEYS } from \"../../core/store/front-matter-cache.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { ItemFrontMatter, ItemStatus, ItemType } from \"../../types/index.js\";\n\nexport interface ListOptions {\n status?: string;\n type?: string;\n tag?: string;\n priority?: string;\n deadlineBefore?: string;\n deadlineAfter?: string;\n updatedAfter?: string;\n updatedBefore?: string;\n createdAfter?: string;\n createdBefore?: string;\n ids?: string;\n assignee?: string;\n assigneeFilter?: string;\n parent?: string;\n sprint?: string;\n release?: string;\n limit?: string;\n offset?: string;\n includeBody?: boolean;\n compact?: boolean;\n brief?: boolean;\n full?: boolean;\n fields?: string;\n sort?: string;\n order?: string;\n tree?: boolean;\n treeDepth?: string;\n excludeTerminal?: boolean;\n [key: string]: unknown;\n}\n\nexport type ListedItem = ItemFrontMatter | (ItemFrontMatter & { body: string });\n\ntype ListProjectionMode = \"full\" | \"compact\" | \"fields\";\n\ninterface ListProjectionConfig {\n mode: ListProjectionMode;\n fields: string[];\n}\n\nexport const LIST_SORT_FIELDS = [\"priority\", \"deadline\", \"updated_at\", \"created_at\", \"title\", \"parent\"] as const;\nexport type ListSortField = (typeof LIST_SORT_FIELDS)[number];\n\nexport const LIST_SORT_ORDER_VALUES = [\"asc\", \"desc\"] as const;\nexport type ListSortOrder = (typeof LIST_SORT_ORDER_VALUES)[number];\n\nconst DEFAULT_COMPACT_LIST_FIELDS = [\"id\", \"title\", \"status\", \"type\", \"priority\", \"parent\", \"updated_at\"] as const;\nconst BRIEF_LIST_FIELDS = [\"id\", \"status\", \"type\", \"title\"] as const;\nconst TREE_METADATA_FIELDS = [\"tree_depth\", \"tree_parent\", \"tree_children\", \"tree_title\"] as const;\n\n// A projection that selects any heavy collection field (or `--full`, which returns\n// items verbatim) must load the full metadata; everything else takes the light path.\n// Sourced from the single HEAVY_METADATA_KEYS definition in the cache layer so the\n// light/heavy split can never drift between the cache and the projection routing.\nconst HEAVY_PROJECTION_FIELDS: ReadonlySet<string> = new Set<string>(HEAVY_METADATA_KEYS);\n\ninterface ListResultBase {\n items: ListedItem[];\n count: number;\n warnings?: string[];\n}\n\nexport interface ListCompactResult extends ListResultBase {\n filters: Record<string, unknown>;\n projection?: undefined;\n sorting?: undefined;\n now?: undefined;\n}\n\nexport interface ListVerboseResult extends ListResultBase {\n filters: Record<string, unknown>;\n projection: {\n mode: ListProjectionMode;\n fields: string[] | null;\n };\n sorting: {\n sort: ListSortField | \"default\";\n order: ListSortOrder;\n };\n now: string;\n}\n\nexport type ListResult = ListCompactResult | ListVerboseResult;\n\nfunction isNonEmptyRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value) && Object.keys(value).length > 0;\n}\n\nfunction buildCompactListFilterSummary(params: {\n filtersStatus: string | string[] | null;\n options: ListOptions;\n treeEnabled: boolean;\n treeDepth: number | undefined;\n sortField: ListSortField | undefined;\n sortOrder: ListSortOrder;\n runtimeFieldFilters: Record<string, unknown>;\n}): Record<string, unknown> {\n const {\n filtersStatus,\n options,\n treeEnabled,\n treeDepth,\n sortField,\n sortOrder,\n runtimeFieldFilters,\n } = params;\n const filters: Record<string, unknown> = {};\n if (filtersStatus !== null) {\n filters.status = filtersStatus;\n }\n if (options.type !== undefined) {\n filters.type = options.type;\n }\n if (options.tag !== undefined) {\n filters.tag = options.tag;\n }\n if (options.priority !== undefined) {\n filters.priority = options.priority;\n }\n if (options.deadlineBefore !== undefined) {\n filters.deadline_before = options.deadlineBefore;\n }\n if (options.deadlineAfter !== undefined) {\n filters.deadline_after = options.deadlineAfter;\n }\n if (options.updatedAfter !== undefined) {\n filters.updated_after = options.updatedAfter;\n }\n if (options.updatedBefore !== undefined) {\n filters.updated_before = options.updatedBefore;\n }\n if (options.createdAfter !== undefined) {\n filters.created_after = options.createdAfter;\n }\n if (options.createdBefore !== undefined) {\n filters.created_before = options.createdBefore;\n }\n if (options.ids !== undefined) {\n filters.ids = options.ids;\n }\n if (options.assignee !== undefined) {\n filters.assignee = options.assignee;\n }\n if (options.assigneeFilter !== undefined) {\n filters.assignee_filter = options.assigneeFilter;\n }\n if (options.parent !== undefined) {\n filters.parent = options.parent;\n }\n if (options.sprint !== undefined) {\n filters.sprint = options.sprint;\n }\n if (options.release !== undefined) {\n filters.release = options.release;\n }\n if (options.limit !== undefined) {\n filters.limit = options.limit;\n }\n if (options.offset !== undefined) {\n filters.offset = options.offset;\n }\n if (options.includeBody === true) {\n filters.include_body = true;\n }\n if (options.fields !== undefined) {\n filters.fields = options.fields;\n }\n if (treeEnabled) {\n filters.tree = true;\n if (treeDepth !== undefined) {\n filters.tree_depth = treeDepth;\n }\n }\n if (sortField !== undefined) {\n filters.sort = sortField;\n filters.order = sortOrder;\n }\n if (isNonEmptyRecord(runtimeFieldFilters)) {\n filters.runtime_filters = runtimeFieldFilters;\n }\n return filters;\n}\n\nfunction compareDefaultSort(left: ListedItem, right: ListedItem, statusRegistry: RuntimeStatusRegistry): number {\n const leftTerminal = isTerminalStatus(left.status, statusRegistry);\n const rightTerminal = isTerminalStatus(right.status, statusRegistry);\n if (leftTerminal !== rightTerminal) {\n return leftTerminal ? 1 : -1;\n }\n const byPriority = left.priority - right.priority;\n if (byPriority !== 0) {\n return byPriority;\n }\n const byUpdated = compareTimestampStrings(right.updated_at, left.updated_at);\n if (byUpdated !== 0) {\n return byUpdated;\n }\n return (left.id ?? \"\").localeCompare(right.id ?? \"\");\n}\n\nfunction sortItemsDefault(items: ListedItem[], statusRegistry: RuntimeStatusRegistry): ListedItem[] {\n return [...items].sort((left, right) => compareDefaultSort(left, right, statusRegistry));\n}\n\nfunction parseDeadline(raw: string | undefined, fieldLabel: string): string | undefined {\n if (raw === undefined) return undefined;\n return resolveIsoOrRelative(raw, new Date(), fieldLabel);\n}\n\n// updated/created date-window filters share the deadline ISO+relative resolver\n// so agents doing incremental \"what changed since my last context window\" syncs\n// can pass either an ISO timestamp (the common case — feed back the previous\n// run's `now`) or a SIGNED relative offset where \"-2h\"/\"-7d\" reach into the\n// past and \"+1d\" into the future (units h/d/w/m, m = months — there is no\n// minutes unit, matching the deadline resolver).\nfunction parseTimestampWindow(raw: unknown, fieldLabel: string): string | undefined {\n if (raw == null) return undefined;\n const value = String(raw).trim();\n if (value.length === 0) return undefined;\n return resolveIsoOrRelative(value, new Date(), fieldLabel);\n}\n\nfunction parseIdsFilter(raw: unknown): Set<string> | undefined {\n if (raw == null) return undefined;\n const value = String(raw).trim();\n if (value.length === 0) {\n throw new PmCliError(\"--ids requires at least one non-empty item ID\", EXIT_CODE.USAGE);\n }\n const ids = value\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (ids.length === 0) {\n throw new PmCliError(\"--ids requires at least one non-empty item ID\", EXIT_CODE.USAGE);\n }\n return new Set(ids);\n}\n\nfunction parseOffset(raw: string | undefined): number | undefined {\n if (raw === undefined) return undefined;\n const parsed = Number(raw);\n if (!Number.isInteger(parsed) || parsed < 0) {\n throw new PmCliError(\"Offset filter must be a non-negative integer\", EXIT_CODE.USAGE);\n }\n return parsed;\n}\n\nfunction parseFieldSelectors(raw: string | undefined): string[] | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const selectors = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (selectors.length === 0) {\n throw new PmCliError(\"List --fields requires a comma-separated list of field names\", EXIT_CODE.USAGE);\n }\n return [...new Set(selectors)];\n}\n\nfunction parseProjectionConfig(options: ListOptions): ListProjectionConfig {\n const compactRequested = options.compact === true;\n const briefRequested = options.brief === true;\n const fullRequested = options.full === true;\n const fieldSelectors = parseFieldSelectors(options.fields);\n const enabledModes =\n Number(compactRequested) + Number(briefRequested) + Number(fullRequested) + Number(fieldSelectors !== undefined);\n if (enabledModes > 1) {\n throw new PmCliError(\n \"List projection options are mutually exclusive. Use one of --compact, --brief, --full, or --fields.\",\n EXIT_CODE.USAGE,\n );\n }\n if (fullRequested) {\n return {\n mode: \"full\",\n fields: [],\n };\n }\n if (briefRequested) {\n return {\n mode: \"compact\",\n fields: [...BRIEF_LIST_FIELDS],\n };\n }\n if (compactRequested) {\n return {\n mode: \"compact\",\n fields: [...DEFAULT_COMPACT_LIST_FIELDS],\n };\n }\n if (fieldSelectors) {\n return {\n mode: \"fields\",\n fields: fieldSelectors,\n };\n }\n return {\n mode: \"full\",\n fields: [],\n };\n}\n\nfunction normalizeProjectionField(field: string): string {\n return field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n}\n\nfunction validateListProjectionFields(projection: ListProjectionConfig, runtimeMetadataKeys: Iterable<string>): void {\n if (projection.mode !== \"fields\") {\n return;\n }\n const allowed = new Set([...FRONT_MATTER_KEY_ORDER, \"body\", ...TREE_METADATA_FIELDS, ...runtimeMetadataKeys]);\n const unknown = projection.fields.filter((field) => !allowed.has(normalizeProjectionField(field)));\n if (unknown.length > 0) {\n throw new PmCliError(`Unknown list --fields value(s): ${unknown.join(\", \")}`, EXIT_CODE.USAGE, {\n code: \"unknown_field_projection\",\n examples: [\n \"pm list-open --fields id,title,status,type,updated_at\",\n \"pm list --fields id,title,parent,priority --limit 10\",\n \"pm list-all --fields id,title,body --limit 5\",\n ],\n });\n }\n}\n\n// Convenience aliases so agents/humans who reach for the bare verb form\n// (e.g. `--sort updated`) land on the canonical timestamp fields instead of an error.\n// A Map (not a plain object) avoids prototype-chain lookups for keys like \"__proto__\".\nconst LIST_SORT_FIELD_ALIASES: ReadonlyMap<string, ListSortField> = new Map<string, ListSortField>([\n [\"updated\", \"updated_at\"],\n [\"update\", \"updated_at\"],\n [\"modified\", \"updated_at\"],\n [\"created\", \"created_at\"],\n [\"create\", \"created_at\"],\n]);\n\nfunction parseSortField(raw: string | undefined): ListSortField | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n const aliased = LIST_SORT_FIELD_ALIASES.get(normalized);\n if (aliased) {\n return aliased;\n }\n if (!LIST_SORT_FIELDS.includes(normalized as ListSortField)) {\n throw new PmCliError(\n `Sort field must be one of ${LIST_SORT_FIELDS.join(\"|\")} (aliases: updated->updated_at, created->created_at)`,\n EXIT_CODE.USAGE,\n );\n }\n return normalized as ListSortField;\n}\n\nfunction parseSortOrder(raw: string | undefined): ListSortOrder | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (!LIST_SORT_ORDER_VALUES.includes(normalized as ListSortOrder)) {\n throw new PmCliError(`Sort order must be one of ${LIST_SORT_ORDER_VALUES.join(\"|\")}`, EXIT_CODE.USAGE);\n }\n return normalized as ListSortOrder;\n}\n\nfunction parseTreeDepth(raw: string | undefined): number | undefined {\n return parseIntegerLimit(raw, \"--tree-depth\");\n}\n\nfunction parseAssigneeFilter(raw: string | undefined): \"assigned\" | \"unassigned\" | undefined {\n if (raw === undefined) {\n return undefined;\n }\n const normalized = raw.trim().toLowerCase();\n if (!normalized) {\n throw new PmCliError(\"Assignee filter must be one of assigned|unassigned\", EXIT_CODE.USAGE);\n }\n if (normalized !== \"assigned\" && normalized !== \"unassigned\") {\n throw new PmCliError(`Invalid assignee filter \"${raw}\". Allowed: assigned|unassigned`, EXIT_CODE.USAGE);\n }\n return normalized;\n}\n\n// `pm list` keeps lenient status parsing (an unknown token is passed through\n// verbatim and simply matches nothing) so custom/unknown statuses never error;\n// the shared CSV parser resolves the open/closed/canceled workflow-group aliases.\nfunction resolveStatusFilter(\n status: ItemStatus | undefined,\n statusRegistry: RuntimeStatusRegistry,\n): ItemStatus[] | undefined {\n return parseStatusFilterCsv(status, statusRegistry, { strict: false });\n}\n\nfunction applyFilters(\n items: ListedItem[],\n status: ItemStatus[] | undefined,\n options: ListOptions,\n typeRegistry: ItemTypeRegistry,\n statusRegistry: RuntimeStatusRegistry,\n runtimeFieldFilters: Record<string, unknown>,\n): ListedItem[] {\n const statusSet = status && status.length > 0 ? new Set<ItemStatus>(status) : undefined;\n const typeFilter = parseType(options.type, typeRegistry);\n const tagFilter = options.tag?.trim().toLowerCase();\n const priorityFilter = parsePriority(options.priority);\n const deadlineBefore = parseDeadline(options.deadlineBefore, \"deadline-before\");\n const deadlineAfter = parseDeadline(options.deadlineAfter, \"deadline-after\");\n const updatedAfter = parseTimestampWindow(options.updatedAfter, \"updated-after\");\n const updatedBefore = parseTimestampWindow(options.updatedBefore, \"updated-before\");\n const createdAfter = parseTimestampWindow(options.createdAfter, \"created-after\");\n const createdBefore = parseTimestampWindow(options.createdBefore, \"created-before\");\n const idsFilter = parseIdsFilter(options.ids);\n const assigneeFilter = options.assignee?.trim();\n const assigneeModeFilter = parseAssigneeFilter(options.assigneeFilter);\n const parentFilter = options.parent?.trim();\n const sprintFilter = options.sprint?.trim();\n const releaseFilter = options.release?.trim();\n\n if (assigneeFilter && (assigneeFilter.toLowerCase() === \"none\" || assigneeFilter.toLowerCase() === \"null\")) {\n throw new PmCliError(\n '--assignee no longer accepts \"none\" or \"null\". Use --assignee-filter unassigned.',\n EXIT_CODE.USAGE,\n );\n }\n if (assigneeFilter !== undefined && assigneeModeFilter === \"unassigned\") {\n throw new PmCliError(\"Cannot combine --assignee with --assignee-filter unassigned\", EXIT_CODE.USAGE);\n }\n\n return items.filter((item) => {\n if (idsFilter && !idsFilter.has(item.id)) return false;\n if (statusSet && !statusSet.has(item.status)) return false;\n if (options.excludeTerminal && isTerminalStatus(item.status, statusRegistry)) return false;\n if (typeFilter && item.type !== typeFilter) return false;\n if (tagFilter && !item.tags.includes(tagFilter)) return false;\n if (priorityFilter !== undefined && item.priority !== priorityFilter) return false;\n if (deadlineBefore && (!item.deadline || compareTimestampStrings(item.deadline, deadlineBefore) > 0)) return false;\n if (deadlineAfter && (!item.deadline || compareTimestampStrings(item.deadline, deadlineAfter) < 0)) return false;\n if (updatedAfter && compareTimestampStrings(item.updated_at, updatedAfter) < 0) return false;\n if (updatedBefore && compareTimestampStrings(item.updated_at, updatedBefore) > 0) return false;\n if (createdAfter && compareTimestampStrings(item.created_at, createdAfter) < 0) return false;\n if (createdBefore && compareTimestampStrings(item.created_at, createdBefore) > 0) return false;\n if (assigneeModeFilter === \"assigned\" && !item.assignee) return false;\n if (assigneeModeFilter === \"unassigned\" && item.assignee) return false;\n if (assigneeFilter !== undefined && item.assignee !== assigneeFilter) {\n return false;\n }\n if (parentFilter !== undefined && options.tree !== true && item.parent !== parentFilter) return false;\n if (sprintFilter !== undefined && item.sprint !== sprintFilter) return false;\n if (releaseFilter !== undefined && item.release !== releaseFilter) return false;\n if (!matchesRuntimeFilters(item as Record<string, unknown>, runtimeFieldFilters)) {\n return false;\n }\n return true;\n });\n}\n\nfunction trimNonEmpty(value: string | undefined): string | undefined {\n if (typeof value !== \"string\") {\n return undefined;\n }\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n}\n\nfunction withTreeMetadata(item: ListedItem, depth: number, childCount: number): ListedItem {\n const itemRecord = toItemRecord(item);\n const title = typeof itemRecord.title === \"string\" ? itemRecord.title : \"\";\n const parent = trimNonEmpty(typeof itemRecord.parent === \"string\" ? itemRecord.parent : undefined) ?? null;\n return {\n ...item,\n tree_depth: depth,\n tree_parent: parent,\n tree_children: childCount,\n tree_title: `${\" \".repeat(depth)}${title}`,\n } as ListedItem;\n}\n\nfunction orderItemsAsTree(\n sortedItems: ListedItem[],\n parentRoot: string | undefined,\n maxDepth: number | undefined,\n): ListedItem[] {\n const byId = new Map<string, ListedItem>();\n const childrenByParent = new Map<string, ListedItem[]>();\n for (const item of sortedItems) {\n byId.set(item.id, item);\n const parentId = trimNonEmpty(item.parent);\n if (!parentId) {\n continue;\n }\n const bucket = childrenByParent.get(parentId);\n if (bucket) {\n bucket.push(item);\n } else {\n childrenByParent.set(parentId, [item]);\n }\n }\n\n const roots = parentRoot\n ? [...(childrenByParent.get(parentRoot) ?? [])]\n : sortedItems.filter((item) => {\n const parentId = trimNonEmpty(item.parent);\n return !parentId || !byId.has(parentId);\n });\n const ordered: ListedItem[] = [];\n const visited = new Set<string>();\n const pushNode = (node: ListedItem, depth: number): void => {\n if (visited.has(node.id)) {\n return;\n }\n visited.add(node.id);\n const children = childrenByParent.get(node.id) ?? [];\n ordered.push(withTreeMetadata(node, depth, children.length));\n if (maxDepth !== undefined && depth >= maxDepth) {\n return;\n }\n for (const child of children) {\n pushNode(child, depth + 1);\n }\n };\n for (const root of roots) {\n pushNode(root, 0);\n }\n return ordered;\n}\n\nfunction compareNullableString(left: string | null, right: string | null): number {\n if (left === right) {\n return 0;\n }\n if (left === null) {\n return 1;\n }\n if (right === null) {\n return -1;\n }\n return left.localeCompare(right);\n}\n\nfunction compareNullableTimestamp(left: string | null, right: string | null): number {\n if (left === right) {\n return 0;\n }\n if (left === null) {\n return 1;\n }\n if (right === null) {\n return -1;\n }\n return compareTimestampStrings(left, right);\n}\n\nfunction compareBySortField(left: ListedItem, right: ListedItem, field: ListSortField): number {\n switch (field) {\n case \"priority\":\n return left.priority - right.priority;\n case \"deadline\":\n return compareNullableTimestamp(left.deadline ?? null, right.deadline ?? null);\n case \"updated_at\":\n return compareTimestampStrings(left.updated_at, right.updated_at);\n case \"created_at\":\n return compareTimestampStrings(left.created_at, right.created_at);\n case \"title\":\n return (left.title ?? \"\").localeCompare(right.title ?? \"\");\n case \"parent\":\n return compareNullableString(left.parent ?? null, right.parent ?? null);\n default:\n return 0;\n }\n}\n\nfunction sortItems(\n items: ListedItem[],\n sortField: ListSortField | undefined,\n sortOrder: ListSortOrder,\n statusRegistry: RuntimeStatusRegistry,\n): ListedItem[] {\n if (!sortField) {\n return sortItemsDefault(items, statusRegistry);\n }\n return [...items].sort((left, right) => {\n const byField = compareBySortField(left, right, sortField);\n if (byField !== 0) {\n return sortOrder === \"desc\" ? -byField : byField;\n }\n const fallback = compareDefaultSort(left, right, statusRegistry);\n return sortOrder === \"desc\" ? -fallback : fallback;\n });\n}\n\nfunction readListFieldValue(item: ListedItem, field: string, treeMode = false): unknown {\n const normalized = normalizeProjectionField(field.trim());\n if (normalized.length === 0) {\n return null;\n }\n const itemRecord = toItemRecord(item);\n if (treeMode && normalized === \"title\" && typeof itemRecord.tree_title === \"string\") {\n return itemRecord.tree_title;\n }\n if (Object.prototype.hasOwnProperty.call(itemRecord, normalized)) {\n return itemRecord[normalized] ?? null;\n }\n return null;\n}\n\nfunction projectListItems(items: ListedItem[], projection: ListProjectionConfig, treeMode = false): ListedItem[] {\n if (projection.mode === \"full\") {\n return items;\n }\n return items.map((item) => {\n const projected: Record<string, unknown> = {};\n for (const field of projection.fields) {\n projected[field] = readListFieldValue(item, field, treeMode);\n }\n return projected as unknown as ListedItem;\n });\n}\n\nexport async function runList(status: ItemStatus | undefined, options: ListOptions, global: GlobalOptions): Promise<ListResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const runtimeFieldRegistry = resolveRuntimeFieldRegistry(settings.schema);\n const runtimeFieldFilters = collectRuntimeFilterValues(options as Record<string, unknown>, runtimeFieldRegistry, \"list\");\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const projection = parseProjectionConfig(options);\n validateListProjectionFields(projection, runtimeFieldRegistry.definitions.map((field) => field.metadata_key));\n const listWarnings: string[] = [];\n const projectionNeedsBody = projection.fields.some((field) => normalizeProjectionField(field) === \"body\");\n // The heavy collection fields are only emitted by `--full` (verbatim items) or an\n // explicit `--fields <heavy>` selection. Every other projection (default brief,\n // `--compact`, light `--fields`) reads only light scalar fields, so it takes the\n // light path that skips the large collections cache (the hot-path JSON.parse win).\n const projectionNeedsCollections =\n projection.mode === \"full\" ||\n projection.fields.some((field) => HEAVY_PROJECTION_FIELDS.has(normalizeProjectionField(field)));\n let items: ListedItem[];\n if (options.includeBody || projectionNeedsBody) {\n items = await listAllFrontMatterWithBody(pmRoot, settings.item_format, typeRegistry.type_to_folder, listWarnings, settings.schema);\n } else if (projectionNeedsCollections) {\n items = await listAllFrontMatter(pmRoot, settings.item_format, typeRegistry.type_to_folder, listWarnings, settings.schema);\n } else {\n items = await listAllFrontMatterLight(pmRoot, settings.item_format, typeRegistry.type_to_folder, listWarnings, settings.schema);\n }\n const sortField = parseSortField(options.sort);\n const sortOrder = parseSortOrder(options.order) ?? \"asc\";\n const treeEnabled = options.tree === true;\n if (!treeEnabled && options.treeDepth !== undefined) {\n throw new PmCliError(\"List --tree-depth requires --tree\", EXIT_CODE.USAGE);\n }\n const treeDepth = treeEnabled ? parseTreeDepth(options.treeDepth) : undefined;\n const parentRoot = treeEnabled ? trimNonEmpty(options.parent) : undefined;\n if (!sortField && options.order !== undefined) {\n throw new PmCliError(\"List --order requires --sort\", EXIT_CODE.USAGE);\n }\n const explicitStatus = resolveStatusFilter(options.status as ItemStatus | undefined, statusRegistry);\n const resolvedStatus = explicitStatus ?? resolveStatusFilter(status, statusRegistry);\n const effectiveOptions = explicitStatus ? { ...options, excludeTerminal: false } : options;\n const filtered = applyFilters(items, resolvedStatus, effectiveOptions, typeRegistry, statusRegistry, runtimeFieldFilters);\n const filtersStatus =\n resolvedStatus === undefined\n ? null\n : resolvedStatus.length === 1\n ? resolvedStatus[0]\n : resolvedStatus;\n const sorted = sortItems(filtered, sortField, sortOrder, statusRegistry);\n const ordered = treeEnabled ? orderItemsAsTree(sorted, parentRoot, treeDepth) : sorted;\n const limit = parseIntegerLimit(options.limit);\n const offset = parseOffset(options.offset) ?? 0;\n const limited = limit === undefined ? ordered.slice(offset) : ordered.slice(offset, offset + limit);\n const projected = projectListItems(limited, projection, treeEnabled);\n const now = nowIso();\n const warnings = [...new Set(listWarnings)].sort((left, right) => left.localeCompare(right));\n const projectionFields = projection.mode === \"full\" ? null : [...projection.fields];\n // pm-vhx6: compact-mode list output is primarily consumed by agents. Keep the\n // metadata trailer token-light by returning only active/user-supplied filters\n // and omitting projection/sorting/now boilerplate in this path.\n const compactSummaryMode = projection.mode === \"compact\" && options.compact === true;\n if (compactSummaryMode) {\n const compactFilters = buildCompactListFilterSummary({\n filtersStatus,\n options,\n treeEnabled,\n treeDepth,\n sortField,\n sortOrder,\n runtimeFieldFilters,\n });\n return {\n items: projected,\n count: projected.length,\n filters: compactFilters,\n ...(warnings.length > 0 ? { warnings } : {}),\n };\n }\n return {\n items: projected,\n count: projected.length,\n filters: {\n status: filtersStatus,\n type: options.type ?? null,\n tag: options.tag ?? null,\n priority: options.priority ?? null,\n deadline_before: options.deadlineBefore ?? null,\n deadline_after: options.deadlineAfter ?? null,\n updated_after: options.updatedAfter ?? null,\n updated_before: options.updatedBefore ?? null,\n created_after: options.createdAfter ?? null,\n created_before: options.createdBefore ?? null,\n ids: options.ids ?? null,\n assignee: options.assignee ?? null,\n assignee_filter: options.assigneeFilter ?? null,\n parent: options.parent ?? null,\n sprint: options.sprint ?? null,\n release: options.release ?? null,\n limit: options.limit ?? null,\n offset: options.offset ?? null,\n include_body: options.includeBody ?? null,\n compact: options.compact ?? null,\n fields: options.fields ?? null,\n ...(treeEnabled ? { tree: true, tree_depth: treeDepth ?? null } : {}),\n sort: sortField ?? null,\n order: sortField ? sortOrder : null,\n runtime_filters: runtimeFieldFilters,\n },\n projection: {\n mode: projection.mode,\n fields: projectionFields,\n },\n sorting: {\n sort: sortField ?? \"default\",\n order: sortField ? sortOrder : \"asc\",\n },\n now,\n ...(warnings.length > 0 ? { warnings } : {}),\n };\n}\n"],"names":[],"mappings":"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","debugId":"0f130702-6ecd-5314-a716-349e562b8bd7"}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  runClose
3
- } from "./chunk-IMCJBN2Q.js";
3
+ } from "./chunk-RMTI5R76.js";
4
4
  import {
5
5
  assertNoLegacyNoneToken,
6
6
  assertNoLegacyNoneTokens,
@@ -18,7 +18,7 @@ import {
18
18
  parseTests,
19
19
  parseTypeOptionEntries,
20
20
  resolvePriority
21
- } from "./chunk-NQL32HQ5.js";
21
+ } from "./chunk-BIRVSIM2.js";
22
22
  import {
23
23
  applyTagRemovals,
24
24
  createStdinTokenResolver,
@@ -26,15 +26,15 @@ import {
26
26
  parseCsvKv,
27
27
  parseOptionalNumber,
28
28
  parseTags
29
- } from "./chunk-HV5SSZXF.js";
29
+ } from "./chunk-4TJWRPIH.js";
30
30
  import {
31
31
  normalizeParentReferenceValue,
32
32
  validateMissingParentReference,
33
33
  validateSprintOrReleaseValue
34
- } from "./chunk-2OJHLWBZ.js";
34
+ } from "./chunk-NUGAWYEN.js";
35
35
  import {
36
36
  buildInvalidTypeError
37
- } from "./chunk-HMMMWBK2.js";
37
+ } from "./chunk-JEGFLKSI.js";
38
38
  import {
39
39
  applyRegisteredItemFieldDefaultsAndValidation,
40
40
  buildItemNotFoundError,
@@ -44,14 +44,14 @@ import {
44
44
  parseRegisteredItemFieldAssignments,
45
45
  readLocatedItem,
46
46
  toItemRecord
47
- } from "./chunk-TP4DDY27.js";
47
+ } from "./chunk-LF2VNLEZ.js";
48
48
  import {
49
49
  normalizeItemId
50
- } from "./chunk-2IXCHCLM.js";
50
+ } from "./chunk-WCWIDJII.js";
51
51
  import {
52
52
  collectRuntimeUpdateFieldValues,
53
53
  normalizeStatusInput
54
- } from "./chunk-WCQZBDDH.js";
54
+ } from "./chunk-NHRZSYAA.js";
55
55
  import {
56
56
  canonicalizeCommandOptionKey,
57
57
  commandOptionFlagLabel,
@@ -60,10 +60,10 @@ import {
60
60
  resolveTypeDefinition,
61
61
  resolveTypeName,
62
62
  validateTypeOptions
63
- } from "./chunk-HRMHZ4RV.js";
63
+ } from "./chunk-U3Z4OCZC.js";
64
64
  import {
65
65
  resolveIsoOrRelative
66
- } from "./chunk-FHHBD7PN.js";
66
+ } from "./chunk-SAUXUI6U.js";
67
67
  import {
68
68
  DEPENDENCY_KIND_VALUES,
69
69
  EXIT_CODE,
@@ -78,7 +78,7 @@ import {
78
78
  resolveRuntimeFieldRegistry,
79
79
  resolveRuntimeStatusRegistry,
80
80
  stableValueEquals
81
- } from "./chunk-UJUT6AHZ.js";
81
+ } from "./chunk-C72IQIBT.js";
82
82
 
83
83
  // dist/core/schema/type-workflows.js
84
84
  !(function() {
@@ -1711,4 +1711,4 @@ async function runUpdate(id, options, global2) {
1711
1711
  export {
1712
1712
  runUpdate
1713
1713
  };
1714
- //# sourceMappingURL=chunk-LXO6V66E.js.map
1714
+ //# sourceMappingURL=chunk-ENCVPOID.js.map
@@ -2,26 +2,26 @@ import {
2
2
  cloneEmptyReplayDocument,
3
3
  tryApplyReplayPatch,
4
4
  verifyHistoryChain
5
- } from "./chunk-3EOBJOF4.js";
5
+ } from "./chunk-H37YPWLM.js";
6
6
  import {
7
7
  parseLimit
8
- } from "./chunk-SFFVGNHC.js";
8
+ } from "./chunk-VDVVOLR6.js";
9
9
  import {
10
10
  enforceHistoryStreamPolicyForItem,
11
11
  hashDocument,
12
12
  hashEmptyDocument,
13
13
  locateItem,
14
14
  readLocatedItem
15
- } from "./chunk-TP4DDY27.js";
15
+ } from "./chunk-LF2VNLEZ.js";
16
16
  import {
17
17
  normalizeItemId
18
- } from "./chunk-2IXCHCLM.js";
18
+ } from "./chunk-WCWIDJII.js";
19
19
  import {
20
20
  findFirstMergeConflictMarker
21
- } from "./chunk-WCQZBDDH.js";
21
+ } from "./chunk-NHRZSYAA.js";
22
22
  import {
23
23
  resolveItemTypeRegistry
24
- } from "./chunk-HRMHZ4RV.js";
24
+ } from "./chunk-U3Z4OCZC.js";
25
25
  import {
26
26
  EXIT_CODE,
27
27
  PmCliError,
@@ -33,7 +33,7 @@ import {
33
33
  readSettings,
34
34
  resolvePmRoot,
35
35
  runActiveOnReadHooks
36
- } from "./chunk-UJUT6AHZ.js";
36
+ } from "./chunk-C72IQIBT.js";
37
37
 
38
38
  // dist/core/history/history-diff.js
39
39
  !(function() {
@@ -273,4 +273,4 @@ export {
273
273
  readHistoryEntries,
274
274
  runHistory
275
275
  };
276
- //# sourceMappingURL=chunk-4CHEG6UK.js.map
276
+ //# sourceMappingURL=chunk-EQ6N6IDR.js.map
@@ -1,16 +1,14 @@
1
- import {
2
- levenshteinDistanceWithinLimit
3
- } from "./chunk-EAOG77HM.js";
4
1
  import {
5
2
  coerceRuntimeFieldValue,
6
3
  normalizeStatusInput,
7
4
  readRuntimeFieldOptionValue
8
- } from "./chunk-WCQZBDDH.js";
5
+ } from "./chunk-NHRZSYAA.js";
9
6
  import {
10
7
  EXIT_CODE,
11
8
  PmCliError,
9
+ levenshteinDistanceWithinLimit,
12
10
  stableValueEquals
13
- } from "./chunk-UJUT6AHZ.js";
11
+ } from "./chunk-C72IQIBT.js";
14
12
 
15
13
  // dist/core/item/status-filter.js
16
14
  !(function() {
@@ -137,4 +135,4 @@ export {
137
135
  collectRuntimeFilterValues,
138
136
  matchesRuntimeFilters
139
137
  };
140
- //# sourceMappingURL=chunk-B5RF3IP7.js.map
138
+ //# sourceMappingURL=chunk-F2REA7VW.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../../core/item/status-filter.ts", "../../../../../../../../core/schema/runtime-field-filters.ts"],
4
4
  "sourcesContent": ["import { EXIT_CODE } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\nimport { levenshteinDistanceWithinLimit } from \"../shared/levenshtein.js\";\nimport type { RuntimeStatusRegistry } from \"../schema/runtime-schema.js\";\nimport type { ItemStatus } from \"../../types/index.js\";\nimport { normalizeStatusInput } from \"./status.js\";\n\n// Workflow-group aliases shared by every status-filter consumer so that the\n// agent-friendly `open`/`closed`/`canceled` shorthands resolve to whatever the\n// runtime workflow has configured as its open/close/cancel anchors, rather than\n// hardcoding the built-in status ids. `cancelled` is accepted as a spelling\n// variant of `canceled`.\nconst STATUS_GROUP_ALIASES: Readonly<Record<string, \"open_status\" | \"close_status\" | \"canceled_status\">> = {\n open: \"open_status\",\n closed: \"close_status\",\n canceled: \"canceled_status\",\n cancelled: \"canceled_status\",\n};\n\n/**\n * Resolve a single status-filter token to a concrete runtime status id.\n *\n * Returns `undefined` when the token is not a recognized workflow-group alias\n * (open/closed/canceled) and does not normalize to a known registry status.\n * Callers decide whether an unrecognized token is an error (strict mode) or is\n * passed through verbatim (lenient mode) — see {@link parseStatusFilterCsv}.\n */\nexport function resolveStatusFilterToken(\n token: string,\n registry: RuntimeStatusRegistry,\n): ItemStatus | undefined {\n const trimmed = token.trim().toLowerCase();\n if (trimmed.length === 0) {\n return undefined;\n }\n const group = STATUS_GROUP_ALIASES[trimmed];\n if (group) {\n return registry[group] as ItemStatus;\n }\n return normalizeStatusInput(token, registry);\n}\n\nfunction collectStatusSuggestionCandidates(registry: RuntimeStatusRegistry): string[] {\n const candidates = new Set<string>(Object.keys(STATUS_GROUP_ALIASES));\n for (const definition of registry.definitions) {\n candidates.add(definition.id);\n for (const alias of definition.aliases) {\n candidates.add(alias);\n }\n }\n return [...candidates];\n}\n\nfunction suggestClosestStatus(value: string, registry: RuntimeStatusRegistry): string | undefined {\n // Only ever called for an unresolved, already-non-empty token (parseStatusFilterCsv\n // filters blanks first), so no empty-input guard is needed here.\n const normalized = value.trim().toLowerCase();\n let best: string | undefined;\n let bestDistance = Number.POSITIVE_INFINITY;\n for (const candidate of collectStatusSuggestionCandidates(registry)) {\n const distance = levenshteinDistanceWithinLimit(normalized, candidate.toLowerCase(), 2);\n if (distance !== null && distance < bestDistance) {\n best = candidate;\n bestDistance = distance;\n }\n }\n return best;\n}\n\nexport interface ParseStatusFilterOptions {\n /**\n * When true, an unrecognized token throws a USAGE error with a did-you-mean\n * hint. When false (default), an unrecognized token is passed through\n * verbatim so custom/unknown statuses still compare against item values by\n * their raw string — preserving the long-standing lenient `pm list` behavior.\n */\n strict?: boolean;\n /** Flag label used in error messages (default: \"--status\"). */\n flagLabel?: string;\n}\n\n/**\n * Parse a comma-separated status filter into a de-duplicated list of concrete\n * status ids. Shared by `pm list` (lenient) and `pm search` (strict, with a\n * did-you-mean hint on typos) so both surfaces resolve the open/closed/canceled\n * workflow-group aliases identically.\n */\nexport function parseStatusFilterCsv(\n raw: unknown,\n registry: RuntimeStatusRegistry,\n options?: ParseStatusFilterOptions,\n): ItemStatus[] | undefined {\n if (typeof raw !== \"string\") {\n return undefined;\n }\n const strict = options?.strict === true;\n const flagLabel = options?.flagLabel ?? \"--status\";\n const tokens = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n return undefined;\n }\n const resolved: ItemStatus[] = [];\n for (const token of tokens) {\n const status = resolveStatusFilterToken(token, registry);\n if (status === undefined) {\n if (strict) {\n const suggestion = suggestClosestStatus(token, registry);\n throw new PmCliError(\n `Invalid ${flagLabel} value \"${token}\". Use open|closed|canceled or a configured status id${\n suggestion ? `. Did you mean \"${suggestion}\"?` : \".\"\n }`,\n EXIT_CODE.USAGE,\n );\n }\n resolved.push(token as ItemStatus);\n continue;\n }\n resolved.push(status);\n }\n return [...new Set(resolved)];\n}\n", "import { coerceRuntimeFieldValue, readRuntimeFieldOptionValue } from \"./runtime-field-values.js\";\nimport type { RuntimeFieldCommand, RuntimeFieldRegistry } from \"./runtime-schema.js\";\nimport { stableValueEquals } from \"../shared/serialization.js\";\n\nfunction valuesEqual(left: unknown, right: unknown): boolean {\n return stableValueEquals(left, right);\n}\n\nexport function collectRuntimeFilterValues(\n options: Record<string, unknown>,\n fieldRegistry: RuntimeFieldRegistry,\n command: RuntimeFieldCommand,\n): Record<string, unknown> {\n const filters: Record<string, unknown> = {};\n for (const definition of fieldRegistry.command_to_fields.get(command) ?? []) {\n const rawValue = readRuntimeFieldOptionValue(options, definition);\n if (rawValue === undefined) {\n continue;\n }\n filters[definition.metadata_key] = coerceRuntimeFieldValue(definition, rawValue);\n }\n return filters;\n}\n\nexport function matchesRuntimeFilters(item: Record<string, unknown>, filters: Record<string, unknown>): boolean {\n for (const [fieldKey, expectedValue] of Object.entries(filters)) {\n const actualValue = item[fieldKey];\n if (Array.isArray(expectedValue)) {\n if (Array.isArray(actualValue)) {\n const normalizedActual = actualValue.map((value) => String(value));\n const normalizedExpected = expectedValue.map((value) => String(value));\n if (!normalizedExpected.every((value) => normalizedActual.includes(value))) {\n return false;\n }\n continue;\n }\n if (!valuesEqual(actualValue, expectedValue[expectedValue.length - 1])) {\n return false;\n }\n continue;\n }\n if (!valuesEqual(actualValue, expectedValue)) {\n return false;\n }\n }\n return true;\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,18 +1,16 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="18d2c948-3f43-54ab-a773-8289b2d0d9ec")}catch(e){}}();
3
- import {
4
- levenshteinDistanceWithinLimit
5
- } from "./chunk-XSLQSXAH.js";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="1279c69e-5418-53f8-b995-130d49670b2e")}catch(e){}}();
6
3
  import {
7
4
  coerceRuntimeFieldValue,
8
5
  normalizeStatusInput,
9
6
  readRuntimeFieldOptionValue
10
- } from "./chunk-UYQ7HXH4.js";
7
+ } from "./chunk-5ATRWEZO.js";
11
8
  import {
12
9
  EXIT_CODE,
13
10
  PmCliError,
11
+ levenshteinDistanceWithinLimit,
14
12
  stableValueEquals
15
- } from "./chunk-X4IZKYHP.js";
13
+ } from "./chunk-5JF76OJF.js";
16
14
 
17
15
  // dist/core/item/status-filter.js
18
16
  var STATUS_GROUP_ALIASES = {
@@ -125,6 +123,6 @@ export {
125
123
  collectRuntimeFilterValues,
126
124
  matchesRuntimeFilters
127
125
  };
128
- //# sourceMappingURL=chunk-6J4K6JLA.js.map
126
+ //# sourceMappingURL=chunk-FHUI7AXS.js.map
129
127
 
130
- //# debugId=18d2c948-3f43-54ab-a773-8289b2d0d9ec
128
+ //# debugId=1279c69e-5418-53f8-b995-130d49670b2e
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../core/item/status-filter.ts","../../../../../../../../core/schema/runtime-field-filters.ts"],"sourcesContent":["import { EXIT_CODE } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\nimport { levenshteinDistanceWithinLimit } from \"../shared/levenshtein.js\";\nimport type { RuntimeStatusRegistry } from \"../schema/runtime-schema.js\";\nimport type { ItemStatus } from \"../../types/index.js\";\nimport { normalizeStatusInput } from \"./status.js\";\n\n// Workflow-group aliases shared by every status-filter consumer so that the\n// agent-friendly `open`/`closed`/`canceled` shorthands resolve to whatever the\n// runtime workflow has configured as its open/close/cancel anchors, rather than\n// hardcoding the built-in status ids. `cancelled` is accepted as a spelling\n// variant of `canceled`.\nconst STATUS_GROUP_ALIASES: Readonly<Record<string, \"open_status\" | \"close_status\" | \"canceled_status\">> = {\n open: \"open_status\",\n closed: \"close_status\",\n canceled: \"canceled_status\",\n cancelled: \"canceled_status\",\n};\n\n/**\n * Resolve a single status-filter token to a concrete runtime status id.\n *\n * Returns `undefined` when the token is not a recognized workflow-group alias\n * (open/closed/canceled) and does not normalize to a known registry status.\n * Callers decide whether an unrecognized token is an error (strict mode) or is\n * passed through verbatim (lenient mode) — see {@link parseStatusFilterCsv}.\n */\nexport function resolveStatusFilterToken(\n token: string,\n registry: RuntimeStatusRegistry,\n): ItemStatus | undefined {\n const trimmed = token.trim().toLowerCase();\n if (trimmed.length === 0) {\n return undefined;\n }\n const group = STATUS_GROUP_ALIASES[trimmed];\n if (group) {\n return registry[group] as ItemStatus;\n }\n return normalizeStatusInput(token, registry);\n}\n\nfunction collectStatusSuggestionCandidates(registry: RuntimeStatusRegistry): string[] {\n const candidates = new Set<string>(Object.keys(STATUS_GROUP_ALIASES));\n for (const definition of registry.definitions) {\n candidates.add(definition.id);\n for (const alias of definition.aliases) {\n candidates.add(alias);\n }\n }\n return [...candidates];\n}\n\nfunction suggestClosestStatus(value: string, registry: RuntimeStatusRegistry): string | undefined {\n // Only ever called for an unresolved, already-non-empty token (parseStatusFilterCsv\n // filters blanks first), so no empty-input guard is needed here.\n const normalized = value.trim().toLowerCase();\n let best: string | undefined;\n let bestDistance = Number.POSITIVE_INFINITY;\n for (const candidate of collectStatusSuggestionCandidates(registry)) {\n const distance = levenshteinDistanceWithinLimit(normalized, candidate.toLowerCase(), 2);\n if (distance !== null && distance < bestDistance) {\n best = candidate;\n bestDistance = distance;\n }\n }\n return best;\n}\n\nexport interface ParseStatusFilterOptions {\n /**\n * When true, an unrecognized token throws a USAGE error with a did-you-mean\n * hint. When false (default), an unrecognized token is passed through\n * verbatim so custom/unknown statuses still compare against item values by\n * their raw string — preserving the long-standing lenient `pm list` behavior.\n */\n strict?: boolean;\n /** Flag label used in error messages (default: \"--status\"). */\n flagLabel?: string;\n}\n\n/**\n * Parse a comma-separated status filter into a de-duplicated list of concrete\n * status ids. Shared by `pm list` (lenient) and `pm search` (strict, with a\n * did-you-mean hint on typos) so both surfaces resolve the open/closed/canceled\n * workflow-group aliases identically.\n */\nexport function parseStatusFilterCsv(\n raw: unknown,\n registry: RuntimeStatusRegistry,\n options?: ParseStatusFilterOptions,\n): ItemStatus[] | undefined {\n if (typeof raw !== \"string\") {\n return undefined;\n }\n const strict = options?.strict === true;\n const flagLabel = options?.flagLabel ?? \"--status\";\n const tokens = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n return undefined;\n }\n const resolved: ItemStatus[] = [];\n for (const token of tokens) {\n const status = resolveStatusFilterToken(token, registry);\n if (status === undefined) {\n if (strict) {\n const suggestion = suggestClosestStatus(token, registry);\n throw new PmCliError(\n `Invalid ${flagLabel} value \"${token}\". Use open|closed|canceled or a configured status id${\n suggestion ? `. Did you mean \"${suggestion}\"?` : \".\"\n }`,\n EXIT_CODE.USAGE,\n );\n }\n resolved.push(token as ItemStatus);\n continue;\n }\n resolved.push(status);\n }\n return [...new Set(resolved)];\n}\n","import { coerceRuntimeFieldValue, readRuntimeFieldOptionValue } from \"./runtime-field-values.js\";\nimport type { RuntimeFieldCommand, RuntimeFieldRegistry } from \"./runtime-schema.js\";\nimport { stableValueEquals } from \"../shared/serialization.js\";\n\nfunction valuesEqual(left: unknown, right: unknown): boolean {\n return stableValueEquals(left, right);\n}\n\nexport function collectRuntimeFilterValues(\n options: Record<string, unknown>,\n fieldRegistry: RuntimeFieldRegistry,\n command: RuntimeFieldCommand,\n): Record<string, unknown> {\n const filters: Record<string, unknown> = {};\n for (const definition of fieldRegistry.command_to_fields.get(command) ?? []) {\n const rawValue = readRuntimeFieldOptionValue(options, definition);\n if (rawValue === undefined) {\n continue;\n }\n filters[definition.metadata_key] = coerceRuntimeFieldValue(definition, rawValue);\n }\n return filters;\n}\n\nexport function matchesRuntimeFilters(item: Record<string, unknown>, filters: Record<string, unknown>): boolean {\n for (const [fieldKey, expectedValue] of Object.entries(filters)) {\n const actualValue = item[fieldKey];\n if (Array.isArray(expectedValue)) {\n if (Array.isArray(actualValue)) {\n const normalizedActual = actualValue.map((value) => String(value));\n const normalizedExpected = expectedValue.map((value) => String(value));\n if (!normalizedExpected.every((value) => normalizedActual.includes(value))) {\n return false;\n }\n continue;\n }\n if (!valuesEqual(actualValue, expectedValue[expectedValue.length - 1])) {\n return false;\n }\n continue;\n }\n if (!valuesEqual(actualValue, expectedValue)) {\n return false;\n }\n }\n return true;\n}\n"],"names":[],"mappings":"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","debugId":"18d2c948-3f43-54ab-a773-8289b2d0d9ec"}
1
+ {"version":3,"sources":["../../../../../../../../core/item/status-filter.ts","../../../../../../../../core/schema/runtime-field-filters.ts"],"sourcesContent":["import { EXIT_CODE } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\nimport { levenshteinDistanceWithinLimit } from \"../shared/levenshtein.js\";\nimport type { RuntimeStatusRegistry } from \"../schema/runtime-schema.js\";\nimport type { ItemStatus } from \"../../types/index.js\";\nimport { normalizeStatusInput } from \"./status.js\";\n\n// Workflow-group aliases shared by every status-filter consumer so that the\n// agent-friendly `open`/`closed`/`canceled` shorthands resolve to whatever the\n// runtime workflow has configured as its open/close/cancel anchors, rather than\n// hardcoding the built-in status ids. `cancelled` is accepted as a spelling\n// variant of `canceled`.\nconst STATUS_GROUP_ALIASES: Readonly<Record<string, \"open_status\" | \"close_status\" | \"canceled_status\">> = {\n open: \"open_status\",\n closed: \"close_status\",\n canceled: \"canceled_status\",\n cancelled: \"canceled_status\",\n};\n\n/**\n * Resolve a single status-filter token to a concrete runtime status id.\n *\n * Returns `undefined` when the token is not a recognized workflow-group alias\n * (open/closed/canceled) and does not normalize to a known registry status.\n * Callers decide whether an unrecognized token is an error (strict mode) or is\n * passed through verbatim (lenient mode) — see {@link parseStatusFilterCsv}.\n */\nexport function resolveStatusFilterToken(\n token: string,\n registry: RuntimeStatusRegistry,\n): ItemStatus | undefined {\n const trimmed = token.trim().toLowerCase();\n if (trimmed.length === 0) {\n return undefined;\n }\n const group = STATUS_GROUP_ALIASES[trimmed];\n if (group) {\n return registry[group] as ItemStatus;\n }\n return normalizeStatusInput(token, registry);\n}\n\nfunction collectStatusSuggestionCandidates(registry: RuntimeStatusRegistry): string[] {\n const candidates = new Set<string>(Object.keys(STATUS_GROUP_ALIASES));\n for (const definition of registry.definitions) {\n candidates.add(definition.id);\n for (const alias of definition.aliases) {\n candidates.add(alias);\n }\n }\n return [...candidates];\n}\n\nfunction suggestClosestStatus(value: string, registry: RuntimeStatusRegistry): string | undefined {\n // Only ever called for an unresolved, already-non-empty token (parseStatusFilterCsv\n // filters blanks first), so no empty-input guard is needed here.\n const normalized = value.trim().toLowerCase();\n let best: string | undefined;\n let bestDistance = Number.POSITIVE_INFINITY;\n for (const candidate of collectStatusSuggestionCandidates(registry)) {\n const distance = levenshteinDistanceWithinLimit(normalized, candidate.toLowerCase(), 2);\n if (distance !== null && distance < bestDistance) {\n best = candidate;\n bestDistance = distance;\n }\n }\n return best;\n}\n\nexport interface ParseStatusFilterOptions {\n /**\n * When true, an unrecognized token throws a USAGE error with a did-you-mean\n * hint. When false (default), an unrecognized token is passed through\n * verbatim so custom/unknown statuses still compare against item values by\n * their raw string — preserving the long-standing lenient `pm list` behavior.\n */\n strict?: boolean;\n /** Flag label used in error messages (default: \"--status\"). */\n flagLabel?: string;\n}\n\n/**\n * Parse a comma-separated status filter into a de-duplicated list of concrete\n * status ids. Shared by `pm list` (lenient) and `pm search` (strict, with a\n * did-you-mean hint on typos) so both surfaces resolve the open/closed/canceled\n * workflow-group aliases identically.\n */\nexport function parseStatusFilterCsv(\n raw: unknown,\n registry: RuntimeStatusRegistry,\n options?: ParseStatusFilterOptions,\n): ItemStatus[] | undefined {\n if (typeof raw !== \"string\") {\n return undefined;\n }\n const strict = options?.strict === true;\n const flagLabel = options?.flagLabel ?? \"--status\";\n const tokens = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n return undefined;\n }\n const resolved: ItemStatus[] = [];\n for (const token of tokens) {\n const status = resolveStatusFilterToken(token, registry);\n if (status === undefined) {\n if (strict) {\n const suggestion = suggestClosestStatus(token, registry);\n throw new PmCliError(\n `Invalid ${flagLabel} value \"${token}\". Use open|closed|canceled or a configured status id${\n suggestion ? `. Did you mean \"${suggestion}\"?` : \".\"\n }`,\n EXIT_CODE.USAGE,\n );\n }\n resolved.push(token as ItemStatus);\n continue;\n }\n resolved.push(status);\n }\n return [...new Set(resolved)];\n}\n","import { coerceRuntimeFieldValue, readRuntimeFieldOptionValue } from \"./runtime-field-values.js\";\nimport type { RuntimeFieldCommand, RuntimeFieldRegistry } from \"./runtime-schema.js\";\nimport { stableValueEquals } from \"../shared/serialization.js\";\n\nfunction valuesEqual(left: unknown, right: unknown): boolean {\n return stableValueEquals(left, right);\n}\n\nexport function collectRuntimeFilterValues(\n options: Record<string, unknown>,\n fieldRegistry: RuntimeFieldRegistry,\n command: RuntimeFieldCommand,\n): Record<string, unknown> {\n const filters: Record<string, unknown> = {};\n for (const definition of fieldRegistry.command_to_fields.get(command) ?? []) {\n const rawValue = readRuntimeFieldOptionValue(options, definition);\n if (rawValue === undefined) {\n continue;\n }\n filters[definition.metadata_key] = coerceRuntimeFieldValue(definition, rawValue);\n }\n return filters;\n}\n\nexport function matchesRuntimeFilters(item: Record<string, unknown>, filters: Record<string, unknown>): boolean {\n for (const [fieldKey, expectedValue] of Object.entries(filters)) {\n const actualValue = item[fieldKey];\n if (Array.isArray(expectedValue)) {\n if (Array.isArray(actualValue)) {\n const normalizedActual = actualValue.map((value) => String(value));\n const normalizedExpected = expectedValue.map((value) => String(value));\n if (!normalizedExpected.every((value) => normalizedActual.includes(value))) {\n return false;\n }\n continue;\n }\n if (!valuesEqual(actualValue, expectedValue[expectedValue.length - 1])) {\n return false;\n }\n continue;\n }\n if (!valuesEqual(actualValue, expectedValue)) {\n return false;\n }\n }\n return true;\n}\n"],"names":[],"mappings":"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","debugId":"1279c69e-5418-53f8-b995-130d49670b2e"}
@@ -4,26 +4,26 @@ import {
4
4
  cloneEmptyReplayDocument,
5
5
  tryApplyReplayPatch,
6
6
  verifyHistoryChain
7
- } from "./chunk-3A2CMEM7.js";
7
+ } from "./chunk-NJRZIJ4N.js";
8
8
  import {
9
9
  parseLimit
10
- } from "./chunk-FY6Z3FYY.js";
10
+ } from "./chunk-P2NVFE4L.js";
11
11
  import {
12
12
  enforceHistoryStreamPolicyForItem,
13
13
  hashDocument,
14
14
  hashEmptyDocument,
15
15
  locateItem,
16
16
  readLocatedItem
17
- } from "./chunk-YBZW2QQ7.js";
17
+ } from "./chunk-AVGOVJGV.js";
18
18
  import {
19
19
  normalizeItemId
20
- } from "./chunk-UT6WFXW2.js";
20
+ } from "./chunk-7CR4GAYN.js";
21
21
  import {
22
22
  findFirstMergeConflictMarker
23
- } from "./chunk-UYQ7HXH4.js";
23
+ } from "./chunk-5ATRWEZO.js";
24
24
  import {
25
25
  resolveItemTypeRegistry
26
- } from "./chunk-GUZBNB3G.js";
26
+ } from "./chunk-42IULX44.js";
27
27
  import {
28
28
  EXIT_CODE,
29
29
  PmCliError,
@@ -35,7 +35,7 @@ import {
35
35
  readSettings,
36
36
  resolvePmRoot,
37
37
  runActiveOnReadHooks
38
- } from "./chunk-X4IZKYHP.js";
38
+ } from "./chunk-5JF76OJF.js";
39
39
 
40
40
  // dist/core/history/history-diff.js
41
41
  function decodeJsonPointerSegment(segment) {
@@ -261,6 +261,6 @@ export {
261
261
  readHistoryEntries,
262
262
  runHistory
263
263
  };
264
- //# sourceMappingURL=chunk-6RZXO5M2.js.map
264
+ //# sourceMappingURL=chunk-FJNJEWU4.js.map
265
265
 
266
266
  //# debugId=553e38e9-7271-599b-ac5e-73e58e64f044
@@ -5,13 +5,13 @@ import {
5
5
  } from "./chunk-J27KIHTG.js";
6
6
  import {
7
7
  readHistoryEntries
8
- } from "./chunk-6RZXO5M2.js";
8
+ } from "./chunk-FJNJEWU4.js";
9
9
  import {
10
10
  EMPTY_REPLAY_DOCUMENT,
11
11
  normalizeReplayPatchOps,
12
12
  replayHash,
13
13
  toReplayDocument
14
- } from "./chunk-3A2CMEM7.js";
14
+ } from "./chunk-NJRZIJ4N.js";
15
15
  import {
16
16
  acquireLock,
17
17
  appendHistoryEntry,
@@ -19,21 +19,21 @@ import {
19
19
  enforceHistoryStreamPolicyForItem,
20
20
  locateItem,
21
21
  readLocatedItem
22
- } from "./chunk-YBZW2QQ7.js";
22
+ } from "./chunk-AVGOVJGV.js";
23
23
  import {
24
24
  normalizeItemId,
25
25
  normalizeRawItemId
26
- } from "./chunk-UT6WFXW2.js";
26
+ } from "./chunk-7CR4GAYN.js";
27
27
  import {
28
28
  canonicalDocument,
29
29
  serializeItemDocument
30
- } from "./chunk-UYQ7HXH4.js";
30
+ } from "./chunk-5ATRWEZO.js";
31
31
  import {
32
32
  resolveItemTypeRegistry
33
- } from "./chunk-GUZBNB3G.js";
33
+ } from "./chunk-42IULX44.js";
34
34
  import {
35
35
  nowIso
36
- } from "./chunk-B2KZGPM2.js";
36
+ } from "./chunk-PW7C262O.js";
37
37
  import {
38
38
  EXIT_CODE,
39
39
  PmCliError,
@@ -49,7 +49,7 @@ import {
49
49
  resolvePmRoot,
50
50
  runActiveOnWriteHooks,
51
51
  writeFileAtomic
52
- } from "./chunk-X4IZKYHP.js";
52
+ } from "./chunk-5JF76OJF.js";
53
53
 
54
54
  // dist/cli/commands/restore.js
55
55
  import jsonPatch from "fast-json-patch";
@@ -375,6 +375,6 @@ async function runRestore(id, target, options, global) {
375
375
  export {
376
376
  runRestore
377
377
  };
378
- //# sourceMappingURL=chunk-R3V3YCMH.js.map
378
+ //# sourceMappingURL=chunk-FKH7K6YP.js.map
379
379
 
380
380
  //# debugId=da2f3582-6928-5ecb-a08e-764043714391