@unbrained/pm-cli 2026.7.4 → 2026.7.5

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 (601) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +1 -5
  3. package/dist/cli/commands/calendar.d.ts +3 -2
  4. package/dist/cli/commands/calendar.js +4 -4
  5. package/dist/cli/commands/calendar.js.map +1 -1
  6. package/dist/cli/commands/claim.js +17 -3
  7. package/dist/cli/commands/claim.js.map +1 -1
  8. package/dist/cli/commands/close.js +34 -16
  9. package/dist/cli/commands/close.js.map +1 -1
  10. package/dist/cli/commands/copy.js +3 -3
  11. package/dist/cli/commands/copy.js.map +1 -1
  12. package/dist/cli/commands/create.d.ts +7 -0
  13. package/dist/cli/commands/create.js +156 -110
  14. package/dist/cli/commands/create.js.map +1 -1
  15. package/dist/cli/commands/extension/bundled-catalog.d.ts +6 -0
  16. package/dist/cli/commands/extension/bundled-catalog.js +15 -2
  17. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  18. package/dist/cli/commands/extension/describe.d.ts +6 -3
  19. package/dist/cli/commands/extension/describe.js +21 -9
  20. package/dist/cli/commands/extension/describe.js.map +1 -1
  21. package/dist/cli/commands/extension/doctor.d.ts +0 -4
  22. package/dist/cli/commands/extension/doctor.js +3 -3
  23. package/dist/cli/commands/extension/doctor.js.map +1 -1
  24. package/dist/cli/commands/extension/scaffold.js +7 -2
  25. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  26. package/dist/cli/commands/extension/shared.d.ts +2 -7
  27. package/dist/cli/commands/extension/shared.js +4 -10
  28. package/dist/cli/commands/extension/shared.js.map +1 -1
  29. package/dist/cli/commands/extension.js +33 -8
  30. package/dist/cli/commands/extension.js.map +1 -1
  31. package/dist/cli/commands/profile.js +3 -3
  32. package/dist/cli/commands/profile.js.map +1 -1
  33. package/dist/cli/commands/reindex.js +3 -3
  34. package/dist/cli/commands/reindex.js.map +1 -1
  35. package/dist/cli/commands/restore.js +3 -3
  36. package/dist/cli/commands/restore.js.map +1 -1
  37. package/dist/cli/commands/schema.js +10 -10
  38. package/dist/cli/commands/schema.js.map +1 -1
  39. package/dist/cli/commands/update.js +5 -3
  40. package/dist/cli/commands/update.js.map +1 -1
  41. package/dist/cli/error-guidance.js +107 -7
  42. package/dist/cli/error-guidance.js.map +1 -1
  43. package/dist/cli/main.d.ts +6 -2
  44. package/dist/cli/main.js +33 -12
  45. package/dist/cli/main.js.map +1 -1
  46. package/dist/cli-bundle/chunks/activity-4XQIDNM5.js +18 -0
  47. package/dist/cli-bundle/chunks/{activity-OENQCYZD.js → activity-YKAKZTZ4.js} +11 -9
  48. package/dist/cli-bundle/chunks/{aggregate-EC4LWS3U.js → aggregate-EQX2RGB7.js} +16 -13
  49. package/dist/cli-bundle/chunks/{aggregate-EC4LWS3U.js.map → aggregate-EQX2RGB7.js.map} +1 -1
  50. package/dist/cli-bundle/chunks/{aggregate-RCB3QJJE.js → aggregate-PEGZGJXD.js} +18 -15
  51. package/dist/cli-bundle/chunks/{aggregate-RCB3QJJE.js.map → aggregate-PEGZGJXD.js.map} +1 -1
  52. package/dist/cli-bundle/chunks/{append-XLEKVVWB.js → append-CZGUZ45Q.js} +11 -8
  53. package/dist/cli-bundle/chunks/{append-XLEKVVWB.js.map → append-CZGUZ45Q.js.map} +1 -1
  54. package/dist/cli-bundle/chunks/{append-ADBOI3A6.js → append-NSQBCXZJ.js} +13 -10
  55. package/dist/cli-bundle/chunks/{append-ADBOI3A6.js.map → append-NSQBCXZJ.js.map} +1 -1
  56. package/dist/cli-bundle/chunks/chunk-3JZNEQBA.js +1413 -0
  57. package/dist/cli-bundle/chunks/chunk-3JZNEQBA.js.map +1 -0
  58. package/dist/cli-bundle/chunks/{chunk-2LRMWMZ6.js → chunk-3PL6LEKP.js} +16 -14
  59. package/dist/cli-bundle/chunks/{chunk-2LRMWMZ6.js.map → chunk-3PL6LEKP.js.map} +1 -1
  60. package/dist/cli-bundle/chunks/{chunk-CN4OAA2G.js → chunk-3U3VEWK6.js} +277 -119
  61. package/dist/cli-bundle/chunks/chunk-3U3VEWK6.js.map +7 -0
  62. package/dist/cli-bundle/chunks/{chunk-EB4BBEZD.js → chunk-3Y4OESPP.js} +14 -12
  63. package/dist/cli-bundle/chunks/{chunk-EB4BBEZD.js.map → chunk-3Y4OESPP.js.map} +1 -1
  64. package/dist/cli-bundle/chunks/{chunk-NHDR3UCW.js → chunk-4LRVSBO6.js} +14 -12
  65. package/dist/cli-bundle/chunks/{chunk-NHDR3UCW.js.map → chunk-4LRVSBO6.js.map} +1 -1
  66. package/dist/cli-bundle/chunks/{chunk-6YB7HG2J.js → chunk-4OFLJHX6.js} +7 -5
  67. package/dist/cli-bundle/chunks/{chunk-6YB7HG2J.js.map → chunk-4OFLJHX6.js.map} +1 -1
  68. package/dist/cli-bundle/chunks/{chunk-SBNT6SLO.js → chunk-4QQ6PM7M.js} +45 -557
  69. package/dist/cli-bundle/chunks/chunk-4QQ6PM7M.js.map +7 -0
  70. package/dist/cli-bundle/chunks/{chunk-M34MVAOP.js → chunk-53BTLLAF.js} +16 -200
  71. package/dist/cli-bundle/chunks/chunk-53BTLLAF.js.map +1 -0
  72. package/dist/cli-bundle/chunks/{chunk-UYLA5ROU.js → chunk-57C2RLW5.js} +277 -112
  73. package/dist/cli-bundle/chunks/chunk-57C2RLW5.js.map +1 -0
  74. package/dist/cli-bundle/chunks/{chunk-R7EMP4JG.js → chunk-5B3X4Y22.js} +52 -63
  75. package/dist/cli-bundle/chunks/{chunk-R7EMP4JG.js.map → chunk-5B3X4Y22.js.map} +3 -3
  76. package/dist/cli-bundle/chunks/{chunk-XBIYI23P.js → chunk-5J2XPTAD.js} +10 -8
  77. package/dist/cli-bundle/chunks/{chunk-XBIYI23P.js.map → chunk-5J2XPTAD.js.map} +1 -1
  78. package/dist/cli-bundle/chunks/{chunk-4SHME4VR.js → chunk-5JE6SMYS.js} +2 -2
  79. package/dist/cli-bundle/chunks/{chunk-4KPQQ42D.js → chunk-5JZ7APJU.js} +18 -16
  80. package/dist/cli-bundle/chunks/{chunk-4KPQQ42D.js.map → chunk-5JZ7APJU.js.map} +1 -1
  81. package/dist/cli-bundle/chunks/{chunk-BDDYM4LH.js → chunk-5VVUKE3U.js} +424 -2228
  82. package/dist/cli-bundle/chunks/chunk-5VVUKE3U.js.map +7 -0
  83. package/dist/cli-bundle/chunks/{chunk-QFXFKYNQ.js → chunk-75U6M5ZD.js} +16 -14
  84. package/dist/cli-bundle/chunks/{chunk-QFXFKYNQ.js.map → chunk-75U6M5ZD.js.map} +1 -1
  85. package/dist/cli-bundle/chunks/chunk-7C2O74AE.js +23 -0
  86. package/dist/cli-bundle/chunks/chunk-7C2O74AE.js.map +7 -0
  87. package/dist/cli-bundle/chunks/{chunk-A222YWOQ.js → chunk-7EQNAZX2.js} +14 -12
  88. package/dist/cli-bundle/chunks/{chunk-A222YWOQ.js.map → chunk-7EQNAZX2.js.map} +1 -1
  89. package/dist/cli-bundle/chunks/{chunk-Z4DGFQDH.js → chunk-7LQKVMPA.js} +14 -4
  90. package/dist/cli-bundle/chunks/chunk-7LQKVMPA.js.map +1 -0
  91. package/dist/cli-bundle/chunks/{chunk-EH23N5FX.js → chunk-7MDXZAZS.js} +29 -7
  92. package/dist/cli-bundle/chunks/chunk-7MDXZAZS.js.map +1 -0
  93. package/dist/cli-bundle/chunks/{chunk-XQCWTSLO.js → chunk-7QH7DHUB.js} +74 -8
  94. package/dist/cli-bundle/chunks/chunk-7QH7DHUB.js.map +1 -0
  95. package/dist/cli-bundle/chunks/{chunk-3C5T3ZEO.js → chunk-7WYXBPYQ.js} +7 -5
  96. package/dist/cli-bundle/chunks/{chunk-3C5T3ZEO.js.map → chunk-7WYXBPYQ.js.map} +1 -1
  97. package/dist/cli-bundle/chunks/chunk-AAEQMOC6.js +150 -0
  98. package/dist/cli-bundle/chunks/chunk-AAEQMOC6.js.map +1 -0
  99. package/dist/cli-bundle/chunks/{chunk-CQISNF3Z.js → chunk-ABRA3BHY.js} +18 -16
  100. package/dist/cli-bundle/chunks/{chunk-CQISNF3Z.js.map → chunk-ABRA3BHY.js.map} +2 -2
  101. package/dist/cli-bundle/chunks/chunk-B5KXLBSJ.js +47 -0
  102. package/dist/cli-bundle/chunks/chunk-B5KXLBSJ.js.map +7 -0
  103. package/dist/cli-bundle/chunks/{chunk-Y2VSCQ77.js → chunk-BFVHCAOO.js} +9 -7
  104. package/dist/cli-bundle/chunks/{chunk-Y2VSCQ77.js.map → chunk-BFVHCAOO.js.map} +1 -1
  105. package/dist/cli-bundle/chunks/{chunk-7ITQSEBL.js → chunk-BVEUCSH2.js} +6 -4
  106. package/dist/cli-bundle/chunks/{chunk-7ITQSEBL.js.map → chunk-BVEUCSH2.js.map} +1 -1
  107. package/dist/cli-bundle/chunks/chunk-C3PMDWGX.js +160 -0
  108. package/dist/cli-bundle/chunks/chunk-C3PMDWGX.js.map +7 -0
  109. package/dist/cli-bundle/chunks/{chunk-HL742IBM.js → chunk-D3UCE7RW.js} +7 -5
  110. package/dist/cli-bundle/chunks/{chunk-HL742IBM.js.map → chunk-D3UCE7RW.js.map} +1 -1
  111. package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js +275 -0
  112. package/dist/cli-bundle/chunks/chunk-DC3QJQWI.js.map +7 -0
  113. package/dist/cli-bundle/chunks/chunk-DLQ4ZTCU.js +634 -0
  114. package/dist/cli-bundle/chunks/chunk-DLQ4ZTCU.js.map +7 -0
  115. package/dist/cli-bundle/chunks/{chunk-MZG6I2Q2.js → chunk-DRBV5UC2.js} +8 -23
  116. package/dist/cli-bundle/chunks/chunk-DRBV5UC2.js.map +7 -0
  117. package/dist/cli-bundle/chunks/{chunk-DEIDJQZK.js → chunk-E2FUG6GD.js} +15 -220
  118. package/dist/cli-bundle/chunks/{chunk-DEIDJQZK.js.map → chunk-E2FUG6GD.js.map} +3 -3
  119. package/dist/cli-bundle/chunks/{chunk-3MLQZI3H.js → chunk-EEY54JMF.js} +5 -3
  120. package/dist/cli-bundle/chunks/{chunk-3MLQZI3H.js.map → chunk-EEY54JMF.js.map} +1 -1
  121. package/dist/cli-bundle/chunks/{chunk-CQFZRLXQ.js → chunk-EZFKWSC7.js} +94 -16
  122. package/dist/cli-bundle/chunks/{chunk-CQFZRLXQ.js.map → chunk-EZFKWSC7.js.map} +4 -4
  123. package/dist/cli-bundle/chunks/{chunk-4PJYRA3V.js → chunk-FDBARR33.js} +17 -15
  124. package/dist/cli-bundle/chunks/{chunk-4PJYRA3V.js.map → chunk-FDBARR33.js.map} +2 -2
  125. package/dist/cli-bundle/chunks/{chunk-NGDK3KEZ.js → chunk-FGQKEDE4.js} +36 -12
  126. package/dist/cli-bundle/chunks/chunk-FGQKEDE4.js.map +7 -0
  127. package/dist/cli-bundle/chunks/{chunk-FMWQRMHS.js → chunk-FJRKQREY.js} +10 -18
  128. package/dist/cli-bundle/chunks/chunk-FJRKQREY.js.map +1 -0
  129. package/dist/cli-bundle/chunks/{chunk-6QY2NA2M.js → chunk-FUM6UMY4.js} +10 -11
  130. package/dist/cli-bundle/chunks/{chunk-6QY2NA2M.js.map → chunk-FUM6UMY4.js.map} +1 -1
  131. package/dist/cli-bundle/chunks/{chunk-UGDONITK.js → chunk-GIWXVMZ3.js} +140 -334
  132. package/dist/cli-bundle/chunks/chunk-GIWXVMZ3.js.map +7 -0
  133. package/dist/cli-bundle/chunks/{chunk-OTSP6UEX.js → chunk-HBYZDSK5.js} +19 -17
  134. package/dist/cli-bundle/chunks/{chunk-OTSP6UEX.js.map → chunk-HBYZDSK5.js.map} +1 -1
  135. package/dist/cli-bundle/chunks/{chunk-D2LDM35X.js → chunk-HJE4JTKQ.js} +6 -4
  136. package/dist/cli-bundle/chunks/{chunk-D2LDM35X.js.map → chunk-HJE4JTKQ.js.map} +1 -1
  137. package/dist/cli-bundle/chunks/{chunk-AOP2EMK3.js → chunk-HK72NWAD.js} +89 -18
  138. package/dist/cli-bundle/chunks/chunk-HK72NWAD.js.map +1 -0
  139. package/dist/cli-bundle/chunks/{chunk-2ONH3WG6.js → chunk-IJ6CO3JV.js} +18 -16
  140. package/dist/cli-bundle/chunks/{chunk-2ONH3WG6.js.map → chunk-IJ6CO3JV.js.map} +1 -1
  141. package/dist/cli-bundle/chunks/{chunk-J4KNRDI3.js → chunk-JFCVQXZX.js} +139 -326
  142. package/dist/cli-bundle/chunks/chunk-JFCVQXZX.js.map +1 -0
  143. package/dist/cli-bundle/chunks/{chunk-V655JQ5J.js → chunk-JLA7EVYV.js} +12 -10
  144. package/dist/cli-bundle/chunks/{chunk-V655JQ5J.js.map → chunk-JLA7EVYV.js.map} +1 -1
  145. package/dist/cli-bundle/chunks/chunk-K32L7HZO.js +76 -0
  146. package/dist/cli-bundle/chunks/chunk-K32L7HZO.js.map +1 -0
  147. package/dist/cli-bundle/chunks/{chunk-WBWRQS32.js → chunk-K3AGVXSF.js} +37 -13
  148. package/dist/cli-bundle/chunks/chunk-K3AGVXSF.js.map +1 -0
  149. package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js +79 -0
  150. package/dist/cli-bundle/chunks/chunk-KDZ6K25I.js.map +7 -0
  151. package/dist/cli-bundle/chunks/chunk-KGHH652T.js +44 -0
  152. package/dist/cli-bundle/chunks/chunk-KGHH652T.js.map +1 -0
  153. package/dist/cli-bundle/chunks/chunk-KL22PY6L.js +915 -0
  154. package/dist/cli-bundle/chunks/chunk-KL22PY6L.js.map +1 -0
  155. package/dist/cli-bundle/chunks/{chunk-JZJJEJBR.js → chunk-KLG4ZULO.js} +12 -10
  156. package/dist/cli-bundle/chunks/{chunk-JZJJEJBR.js.map → chunk-KLG4ZULO.js.map} +1 -1
  157. package/dist/cli-bundle/chunks/{chunk-KKHIQOTN.js → chunk-LEKT4K7I.js} +74 -8
  158. package/dist/cli-bundle/chunks/chunk-LEKT4K7I.js.map +7 -0
  159. package/dist/cli-bundle/chunks/{contracts-CVBINC7C.js → chunk-MNZ7DRNC.js} +13 -10
  160. package/dist/cli-bundle/chunks/{contracts-CVBINC7C.js.map → chunk-MNZ7DRNC.js.map} +1 -1
  161. package/dist/cli-bundle/chunks/{chunk-2VK677OA.js → chunk-MTTXDAK4.js} +176 -125
  162. package/dist/cli-bundle/chunks/chunk-MTTXDAK4.js.map +7 -0
  163. package/dist/cli-bundle/chunks/{chunk-Q2266G4S.js → chunk-MZ7VNEVY.js} +8 -6
  164. package/dist/cli-bundle/chunks/{chunk-Q2266G4S.js.map → chunk-MZ7VNEVY.js.map} +1 -1
  165. package/dist/cli-bundle/chunks/{chunk-4EVY7CQN.js → chunk-N6DNM2FA.js} +2 -2
  166. package/dist/cli-bundle/chunks/{test-runs-5SLLV3XU.js → chunk-N7X4WP6L.js} +11 -8
  167. package/dist/cli-bundle/chunks/{test-runs-5SLLV3XU.js.map → chunk-N7X4WP6L.js.map} +1 -1
  168. package/dist/cli-bundle/chunks/{chunk-AZMPKLIA.js → chunk-NBFCNJ7Q.js} +177 -126
  169. package/dist/cli-bundle/chunks/chunk-NBFCNJ7Q.js.map +1 -0
  170. package/dist/cli-bundle/chunks/{chunk-YZR7UMZ6.js → chunk-NER3KUUS.js} +2 -2
  171. package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js +20 -0
  172. package/dist/cli-bundle/chunks/chunk-NNHHXJB2.js.map +1 -0
  173. package/dist/cli-bundle/chunks/chunk-OBA2WH65.js +918 -0
  174. package/dist/cli-bundle/chunks/chunk-OBA2WH65.js.map +7 -0
  175. package/dist/cli-bundle/chunks/{chunk-DJ5S2LDY.js → chunk-OESSOFJ4.js} +14 -12
  176. package/dist/cli-bundle/chunks/{chunk-DJ5S2LDY.js.map → chunk-OESSOFJ4.js.map} +1 -1
  177. package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js +238 -0
  178. package/dist/cli-bundle/chunks/chunk-OK5NXCZB.js.map +1 -0
  179. package/dist/cli-bundle/chunks/{chunk-TUV7SIWZ.js → chunk-OWTIRHX4.js} +28 -6
  180. package/dist/cli-bundle/chunks/chunk-OWTIRHX4.js.map +7 -0
  181. package/dist/cli-bundle/chunks/{chunk-PV5JS7MP.js → chunk-P3VRG72Q.js} +10 -8
  182. package/dist/cli-bundle/chunks/{chunk-PV5JS7MP.js.map → chunk-P3VRG72Q.js.map} +1 -1
  183. package/dist/cli-bundle/chunks/chunk-P5TFTLWW.js +1423 -0
  184. package/dist/cli-bundle/chunks/chunk-P5TFTLWW.js.map +7 -0
  185. package/dist/cli-bundle/chunks/chunk-P5YORJRH.js +1977 -0
  186. package/dist/cli-bundle/chunks/chunk-P5YORJRH.js.map +7 -0
  187. package/dist/cli-bundle/chunks/{chunk-WTXDLBSZ.js → chunk-PDXT6Q55.js} +2 -2
  188. package/dist/cli-bundle/chunks/{chunk-YZWXMDNH.js → chunk-PJ3A56YF.js} +46 -537
  189. package/dist/cli-bundle/chunks/chunk-PJ3A56YF.js.map +1 -0
  190. package/dist/cli-bundle/chunks/{test-runs-L3WKLO67.js → chunk-PPAJG4GB.js} +13 -10
  191. package/dist/cli-bundle/chunks/{test-runs-L3WKLO67.js.map → chunk-PPAJG4GB.js.map} +1 -1
  192. package/dist/cli-bundle/chunks/{chunk-LLQLLAKU.js → chunk-PPE4YUQM.js} +1670 -1573
  193. package/dist/cli-bundle/chunks/chunk-PPE4YUQM.js.map +1 -0
  194. package/dist/cli-bundle/chunks/{chunk-TO4KCIOT.js → chunk-QHZO65XW.js} +8 -6
  195. package/dist/cli-bundle/chunks/{chunk-TO4KCIOT.js.map → chunk-QHZO65XW.js.map} +1 -1
  196. package/dist/cli-bundle/chunks/{chunk-4OXNQHKQ.js → chunk-R3ZBLGTC.js} +9 -10
  197. package/dist/cli-bundle/chunks/{chunk-4OXNQHKQ.js.map → chunk-R3ZBLGTC.js.map} +2 -2
  198. package/dist/cli-bundle/chunks/chunk-RCT3YJOK.js +624 -0
  199. package/dist/cli-bundle/chunks/chunk-RCT3YJOK.js.map +1 -0
  200. package/dist/cli-bundle/chunks/{chunk-724VLYDJ.js → chunk-RX3HQSYG.js} +2 -2
  201. package/dist/cli-bundle/chunks/{chunk-PUVPC5DL.js → chunk-S4APD35C.js} +4 -4
  202. package/dist/cli-bundle/chunks/{chunk-T5RTYLZJ.js → chunk-S5AYOUT5.js} +8 -6
  203. package/dist/cli-bundle/chunks/{chunk-T5RTYLZJ.js.map → chunk-S5AYOUT5.js.map} +1 -1
  204. package/dist/cli-bundle/chunks/{chunk-75VMARGO.js → chunk-STPSZ2XY.js} +19 -744
  205. package/dist/cli-bundle/chunks/chunk-STPSZ2XY.js.map +1 -0
  206. package/dist/cli-bundle/chunks/{chunk-A2W3XKAD.js → chunk-T35XLYZF.js} +2 -2
  207. package/dist/cli-bundle/chunks/{chunk-N2LOJUBB.js → chunk-T3ABIMGW.js} +5 -3
  208. package/dist/cli-bundle/chunks/{chunk-N2LOJUBB.js.map → chunk-T3ABIMGW.js.map} +1 -1
  209. package/dist/cli-bundle/chunks/{chunk-FDNJMYZB.js → chunk-T3F4DF23.js} +16 -14
  210. package/dist/cli-bundle/chunks/{chunk-FDNJMYZB.js.map → chunk-T3F4DF23.js.map} +1 -1
  211. package/dist/cli-bundle/chunks/chunk-T4MX77AK.js +272 -0
  212. package/dist/cli-bundle/chunks/chunk-T4MX77AK.js.map +1 -0
  213. package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js +5354 -0
  214. package/dist/cli-bundle/chunks/chunk-T5Y3QSNF.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{chunk-XFO2NJY6.js → chunk-TSPKZRRW.js} +33 -28
  216. package/dist/cli-bundle/chunks/chunk-TSPKZRRW.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-ZZWMJVW2.js → chunk-TT42JUMF.js} +4 -4
  218. package/dist/cli-bundle/chunks/chunk-UHKX7I75.js +165 -0
  219. package/dist/cli-bundle/chunks/chunk-UHKX7I75.js.map +1 -0
  220. package/dist/cli-bundle/chunks/{chunk-7745CXNI.js → chunk-UI5BJ6DO.js} +1231 -1134
  221. package/dist/cli-bundle/chunks/chunk-UI5BJ6DO.js.map +7 -0
  222. package/dist/cli-bundle/chunks/chunk-US3T3W5J.js +1932 -0
  223. package/dist/cli-bundle/chunks/chunk-US3T3W5J.js.map +1 -0
  224. package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js +175 -0
  225. package/dist/cli-bundle/chunks/chunk-UZRDBL6W.js.map +7 -0
  226. package/dist/cli-bundle/chunks/{chunk-B4O5S7I3.js → chunk-VUHVWI4C.js} +13 -3
  227. package/dist/cli-bundle/chunks/chunk-VUHVWI4C.js.map +7 -0
  228. package/dist/cli-bundle/chunks/{contracts-NLCDIZAT.js → chunk-VZIYHZDX.js} +11 -8
  229. package/dist/cli-bundle/chunks/{contracts-NLCDIZAT.js.map → chunk-VZIYHZDX.js.map} +1 -1
  230. package/dist/cli-bundle/chunks/{chunk-TGYDJEJH.js → chunk-WISPVC2E.js} +9 -7
  231. package/dist/cli-bundle/chunks/{chunk-TGYDJEJH.js.map → chunk-WISPVC2E.js.map} +1 -1
  232. package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js +5434 -0
  233. package/dist/cli-bundle/chunks/chunk-WVSGSZ6J.js.map +7 -0
  234. package/dist/cli-bundle/chunks/{chunk-MTB4PRA3.js → chunk-XQCG2JGW.js} +17 -749
  235. package/dist/cli-bundle/chunks/chunk-XQCG2JGW.js.map +7 -0
  236. package/dist/cli-bundle/chunks/chunk-Y76TWC45.js +550 -0
  237. package/dist/cli-bundle/chunks/chunk-Y76TWC45.js.map +7 -0
  238. package/dist/cli-bundle/chunks/{chunk-SL2ANJSV.js → chunk-YD5FML7K.js} +418 -2173
  239. package/dist/cli-bundle/chunks/chunk-YD5FML7K.js.map +1 -0
  240. package/dist/cli-bundle/chunks/{chunk-NHKXOMZ5.js → chunk-YFIE7YK6.js} +7 -5
  241. package/dist/cli-bundle/chunks/{chunk-NHKXOMZ5.js.map → chunk-YFIE7YK6.js.map} +1 -1
  242. package/dist/cli-bundle/chunks/{chunk-5FYY76HR.js → chunk-YMABYTNG.js} +32 -27
  243. package/dist/cli-bundle/chunks/chunk-YMABYTNG.js.map +7 -0
  244. package/dist/cli-bundle/chunks/{chunk-W5X3AHJN.js → chunk-YOF5VPKM.js} +2 -2
  245. package/dist/cli-bundle/chunks/{chunk-M6PR5BC6.js → chunk-YPPVU5GX.js} +11 -9
  246. package/dist/cli-bundle/chunks/{chunk-M6PR5BC6.js.map → chunk-YPPVU5GX.js.map} +1 -1
  247. package/dist/cli-bundle/chunks/{chunk-ZIEGTQCY.js → chunk-YQMMMONE.js} +6 -4
  248. package/dist/cli-bundle/chunks/{chunk-ZIEGTQCY.js.map → chunk-YQMMMONE.js.map} +1 -1
  249. package/dist/cli-bundle/chunks/{chunk-4IW7STMB.js → chunk-YSAH5FY5.js} +16 -14
  250. package/dist/cli-bundle/chunks/{chunk-4IW7STMB.js.map → chunk-YSAH5FY5.js.map} +1 -1
  251. package/dist/cli-bundle/chunks/{chunk-JYLFF7GJ.js → chunk-YZIR4R3U.js} +16 -14
  252. package/dist/cli-bundle/chunks/{chunk-JYLFF7GJ.js.map → chunk-YZIR4R3U.js.map} +1 -1
  253. package/dist/cli-bundle/chunks/{chunk-7G5SUU6F.js → chunk-Z2CRRZYF.js} +14 -12
  254. package/dist/cli-bundle/chunks/{chunk-7G5SUU6F.js.map → chunk-Z2CRRZYF.js.map} +1 -1
  255. package/dist/cli-bundle/chunks/chunk-ZAHXPXVY.js +533 -0
  256. package/dist/cli-bundle/chunks/chunk-ZAHXPXVY.js.map +1 -0
  257. package/dist/cli-bundle/chunks/{chunk-WOOB7PV7.js → chunk-ZCJAA3JK.js} +8 -6
  258. package/dist/cli-bundle/chunks/{chunk-WOOB7PV7.js.map → chunk-ZCJAA3JK.js.map} +1 -1
  259. package/dist/cli-bundle/chunks/{chunk-WSDIALO4.js → chunk-ZD34OFFQ.js} +5 -3
  260. package/dist/cli-bundle/chunks/{chunk-WSDIALO4.js.map → chunk-ZD34OFFQ.js.map} +1 -1
  261. package/dist/cli-bundle/chunks/{chunk-Q3XVLRCJ.js → chunk-ZJB3UV5U.js} +54 -58
  262. package/dist/cli-bundle/chunks/chunk-ZJB3UV5U.js.map +1 -0
  263. package/dist/cli-bundle/chunks/{chunk-MZ4NH46V.js → chunk-ZMD35NYG.js} +2 -2
  264. package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js +241 -0
  265. package/dist/cli-bundle/chunks/chunk-ZVDL32GJ.js.map +7 -0
  266. package/dist/cli-bundle/chunks/{claim-D6L33A5Y.js → claim-4DROPSIS.js} +30 -13
  267. package/dist/cli-bundle/chunks/claim-4DROPSIS.js.map +1 -0
  268. package/dist/cli-bundle/chunks/{claim-YAFUTPVK.js → claim-VX54TV5U.js} +29 -12
  269. package/dist/cli-bundle/chunks/claim-VX54TV5U.js.map +7 -0
  270. package/dist/cli-bundle/chunks/{close-TGYXG7TV.js → close-3YRR3XY6.js} +9 -7
  271. package/dist/cli-bundle/chunks/close-OB2Y4QP5.js +16 -0
  272. package/dist/cli-bundle/chunks/{close-many-SNA6LNZH.js → close-many-AP4MWU36.js} +21 -18
  273. package/dist/cli-bundle/chunks/{close-many-SNA6LNZH.js.map → close-many-AP4MWU36.js.map} +1 -1
  274. package/dist/cli-bundle/chunks/{close-many-4QSWKCRU.js → close-many-OMZIGZB4.js} +19 -16
  275. package/dist/cli-bundle/chunks/{close-many-4QSWKCRU.js.map → close-many-OMZIGZB4.js.map} +1 -1
  276. package/dist/cli-bundle/chunks/{comments-QC6ARR5X.js → comments-MIW5MZOX.js} +12 -9
  277. package/dist/cli-bundle/chunks/{comments-QC6ARR5X.js.map → comments-MIW5MZOX.js.map} +1 -1
  278. package/dist/cli-bundle/chunks/{comments-ZHVYGUVC.js → comments-SAG5LSKL.js} +14 -11
  279. package/dist/cli-bundle/chunks/{comments-ZHVYGUVC.js.map → comments-SAG5LSKL.js.map} +1 -1
  280. package/dist/cli-bundle/chunks/{config-O6W2EU2G.js → config-DJJKZB5R.js} +20 -17
  281. package/dist/cli-bundle/chunks/{config-O6W2EU2G.js.map → config-DJJKZB5R.js.map} +1 -1
  282. package/dist/cli-bundle/chunks/{config-XQRFJXJP.js → config-V57QD47V.js} +22 -19
  283. package/dist/cli-bundle/chunks/{config-XQRFJXJP.js.map → config-V57QD47V.js.map} +1 -1
  284. package/dist/cli-bundle/chunks/{context-IHE3IXN5.js → context-4OQGIPSO.js} +15 -12
  285. package/dist/cli-bundle/chunks/{context-WSYWBEUL.js → context-WLA6IAWE.js} +15 -12
  286. package/dist/cli-bundle/chunks/contracts-HXJLKCRI.js +12 -0
  287. package/dist/cli-bundle/chunks/contracts-OJEXMKVW.js +16 -0
  288. package/dist/cli-bundle/chunks/{copy-7MUQC44A.js → copy-LEE6P6EM.js} +17 -14
  289. package/dist/cli-bundle/chunks/{copy-7MUQC44A.js.map → copy-LEE6P6EM.js.map} +2 -2
  290. package/dist/cli-bundle/chunks/{copy-ANWXDJVC.js → copy-OTJOWFL6.js} +18 -15
  291. package/dist/cli-bundle/chunks/{copy-ANWXDJVC.js.map → copy-OTJOWFL6.js.map} +1 -1
  292. package/dist/cli-bundle/chunks/create-WKOZKPQR.js +30 -0
  293. package/dist/cli-bundle/chunks/{create-JIA2IFCO.js → create-XWWQFQ6S.js} +14 -12
  294. package/dist/cli-bundle/chunks/{delete-5OLYWQIC.js → delete-62JQTYT4.js} +10 -7
  295. package/dist/cli-bundle/chunks/{delete-5OLYWQIC.js.map → delete-62JQTYT4.js.map} +1 -1
  296. package/dist/cli-bundle/chunks/{delete-INHKCIRN.js → delete-HQKGRNRZ.js} +12 -9
  297. package/dist/cli-bundle/chunks/{delete-INHKCIRN.js.map → delete-HQKGRNRZ.js.map} +1 -1
  298. package/dist/cli-bundle/chunks/{deps-IYEID3QX.js → deps-55FTG6Z5.js} +12 -9
  299. package/dist/cli-bundle/chunks/{deps-IYEID3QX.js.map → deps-55FTG6Z5.js.map} +1 -1
  300. package/dist/cli-bundle/chunks/{deps-CCSWGZW7.js → deps-L2FPIAD3.js} +10 -7
  301. package/dist/cli-bundle/chunks/{deps-CCSWGZW7.js.map → deps-L2FPIAD3.js.map} +1 -1
  302. package/dist/cli-bundle/chunks/{docs-PKO7OEIM.js → docs-6CRCSVKK.js} +11 -9
  303. package/dist/cli-bundle/chunks/{docs-PKO7OEIM.js.map → docs-6CRCSVKK.js.map} +1 -1
  304. package/dist/cli-bundle/chunks/{docs-3XZK22WF.js → docs-S6UTOTO5.js} +9 -7
  305. package/dist/cli-bundle/chunks/{docs-3XZK22WF.js.map → docs-S6UTOTO5.js.map} +1 -1
  306. package/dist/cli-bundle/chunks/{eval-5XYP6NMY.js → eval-N6UHFWVO.js} +15 -11
  307. package/dist/cli-bundle/chunks/{eval-5XYP6NMY.js.map → eval-N6UHFWVO.js.map} +1 -1
  308. package/dist/cli-bundle/chunks/{eval-O4WGQYDI.js → eval-PHOTWYHI.js} +17 -13
  309. package/dist/cli-bundle/chunks/{eval-O4WGQYDI.js.map → eval-PHOTWYHI.js.map} +1 -1
  310. package/dist/cli-bundle/chunks/{extension-T7JNTAAA.js → extension-NBAH62ML.js} +17 -11
  311. package/dist/cli-bundle/chunks/{extension-PVGRRZZG.js → extension-ZF6ZZPOU.js} +17 -11
  312. package/dist/cli-bundle/chunks/{files-W7HH5EOD.js → files-6P57MRKL.js} +12 -9
  313. package/dist/cli-bundle/chunks/{files-W7HH5EOD.js.map → files-6P57MRKL.js.map} +1 -1
  314. package/dist/cli-bundle/chunks/{files-7IU56S6R.js → files-JPU3FNJ7.js} +14 -11
  315. package/dist/cli-bundle/chunks/{files-7IU56S6R.js.map → files-JPU3FNJ7.js.map} +1 -1
  316. package/dist/cli-bundle/chunks/{focus-6FA5KYRY.js → focus-LFZ6IDBR.js} +15 -11
  317. package/dist/cli-bundle/chunks/{focus-6FA5KYRY.js.map → focus-LFZ6IDBR.js.map} +1 -1
  318. package/dist/cli-bundle/chunks/{focus-CQ63JFDG.js → focus-WNMYCVYA.js} +13 -9
  319. package/dist/cli-bundle/chunks/{focus-CQ63JFDG.js.map → focus-WNMYCVYA.js.map} +1 -1
  320. package/dist/cli-bundle/chunks/{gc-3BG67KTO.js → gc-AETFKZ44.js} +10 -7
  321. package/dist/cli-bundle/chunks/{gc-3BG67KTO.js.map → gc-AETFKZ44.js.map} +1 -1
  322. package/dist/cli-bundle/chunks/{gc-PEZYGNVB.js → gc-RLBP4QVN.js} +12 -9
  323. package/dist/cli-bundle/chunks/{gc-PEZYGNVB.js.map → gc-RLBP4QVN.js.map} +1 -1
  324. package/dist/cli-bundle/chunks/{get-J6CSJ4SX.js → get-NH2MPBCI.js} +18 -15
  325. package/dist/cli-bundle/chunks/{get-J6CSJ4SX.js.map → get-NH2MPBCI.js.map} +1 -1
  326. package/dist/cli-bundle/chunks/{get-KJTKGNEQ.js → get-P4ZQXCPZ.js} +16 -13
  327. package/dist/cli-bundle/chunks/{get-KJTKGNEQ.js.map → get-P4ZQXCPZ.js.map} +1 -1
  328. package/dist/cli-bundle/chunks/{health-32UQICEL.js → health-3GVPMQBL.js} +36 -29
  329. package/dist/cli-bundle/chunks/{health-32UQICEL.js.map → health-3GVPMQBL.js.map} +1 -1
  330. package/dist/cli-bundle/chunks/{health-ZUZG5ULV.js → health-DNTM72GJ.js} +34 -27
  331. package/dist/cli-bundle/chunks/{health-ZUZG5ULV.js.map → health-DNTM72GJ.js.map} +1 -1
  332. package/dist/cli-bundle/chunks/history-RYKLC72X.js +20 -0
  333. package/dist/cli-bundle/chunks/{history-W6QVR6FA.js → history-SGPYRAFT.js} +10 -8
  334. package/dist/cli-bundle/chunks/{history-compact-JQ6ZGYSJ.js → history-compact-3F6VELO7.js} +18 -15
  335. package/dist/cli-bundle/chunks/{history-compact-JQ6ZGYSJ.js.map → history-compact-3F6VELO7.js.map} +1 -1
  336. package/dist/cli-bundle/chunks/{history-compact-F355EGL4.js → history-compact-656Y2TN4.js} +20 -17
  337. package/dist/cli-bundle/chunks/{history-compact-F355EGL4.js.map → history-compact-656Y2TN4.js.map} +1 -1
  338. package/dist/cli-bundle/chunks/history-redact-4H3FCKF3.js +21 -0
  339. package/dist/cli-bundle/chunks/{history-redact-TUWOUYX5.js → history-redact-54ICFKXM.js} +11 -9
  340. package/dist/cli-bundle/chunks/{history-repair-ZKS3LKPV.js → history-repair-4N6SDVHK.js} +17 -14
  341. package/dist/cli-bundle/chunks/{history-repair-ZKS3LKPV.js.map → history-repair-4N6SDVHK.js.map} +1 -1
  342. package/dist/cli-bundle/chunks/{history-repair-MPCAIKYE.js → history-repair-EVTO6LIH.js} +19 -16
  343. package/dist/cli-bundle/chunks/{history-repair-MPCAIKYE.js.map → history-repair-EVTO6LIH.js.map} +1 -1
  344. package/dist/cli-bundle/chunks/init-RPIPQUNV.js +32 -0
  345. package/dist/cli-bundle/chunks/init-SKQAESQS.js +28 -0
  346. package/dist/cli-bundle/chunks/{learnings-EYC3OKS2.js → learnings-2HTPZNGZ.js} +10 -8
  347. package/dist/cli-bundle/chunks/{learnings-EYC3OKS2.js.map → learnings-2HTPZNGZ.js.map} +1 -1
  348. package/dist/cli-bundle/chunks/{learnings-HKJJUVTA.js → learnings-YBIHY3D6.js} +12 -10
  349. package/dist/cli-bundle/chunks/{learnings-HKJJUVTA.js.map → learnings-YBIHY3D6.js.map} +1 -1
  350. package/dist/cli-bundle/chunks/{list-KN3TL5Y5.js → list-64LHZ3HM.js} +10 -8
  351. package/dist/cli-bundle/chunks/{list-HFD5737R.js → list-7LXBTEKI.js} +10 -8
  352. package/dist/cli-bundle/chunks/{next-DQUMFAHG.js → next-7ODPAQ4U.js} +22 -18
  353. package/dist/cli-bundle/chunks/{next-DQUMFAHG.js.map → next-7ODPAQ4U.js.map} +1 -1
  354. package/dist/cli-bundle/chunks/{next-JUEYC5HE.js → next-ODJUM4ZM.js} +24 -20
  355. package/dist/cli-bundle/chunks/{next-JUEYC5HE.js.map → next-ODJUM4ZM.js.map} +1 -1
  356. package/dist/cli-bundle/chunks/{notes-ZG6RLZXB.js → notes-72YXN5JX.js} +10 -8
  357. package/dist/cli-bundle/chunks/{notes-ZG6RLZXB.js.map → notes-72YXN5JX.js.map} +1 -1
  358. package/dist/cli-bundle/chunks/{notes-XATYT43P.js → notes-NJ7IQJX4.js} +12 -10
  359. package/dist/cli-bundle/chunks/{notes-XATYT43P.js.map → notes-NJ7IQJX4.js.map} +1 -1
  360. package/dist/cli-bundle/chunks/{plan-DVVLX7LK.js → plan-R4NDQ27E.js} +18 -15
  361. package/dist/cli-bundle/chunks/{plan-DVVLX7LK.js.map → plan-R4NDQ27E.js.map} +1 -1
  362. package/dist/cli-bundle/chunks/{plan-5NWQL2DH.js → plan-XWY5T67S.js} +20 -17
  363. package/dist/cli-bundle/chunks/{plan-5NWQL2DH.js.map → plan-XWY5T67S.js.map} +1 -1
  364. package/dist/cli-bundle/chunks/profile-XQWEQKS3.js +397 -0
  365. package/dist/cli-bundle/chunks/profile-XQWEQKS3.js.map +1 -0
  366. package/dist/cli-bundle/chunks/profile-YRDHLMRO.js +400 -0
  367. package/dist/cli-bundle/chunks/profile-YRDHLMRO.js.map +7 -0
  368. package/dist/cli-bundle/chunks/{register-list-query-WRS6ACUW.js → register-list-query-5H66WFYF.js} +22 -19
  369. package/dist/cli-bundle/chunks/{register-list-query-WRS6ACUW.js.map → register-list-query-5H66WFYF.js.map} +1 -1
  370. package/dist/cli-bundle/chunks/{register-list-query-PNRAHNIQ.js → register-list-query-FB3FNDLZ.js} +24 -21
  371. package/dist/cli-bundle/chunks/{register-list-query-PNRAHNIQ.js.map → register-list-query-FB3FNDLZ.js.map} +1 -1
  372. package/dist/cli-bundle/chunks/{register-mutation-K2MNRWGI.js → register-mutation-UJO23C7R.js} +42 -39
  373. package/dist/cli-bundle/chunks/{register-mutation-K2MNRWGI.js.map → register-mutation-UJO23C7R.js.map} +1 -1
  374. package/dist/cli-bundle/chunks/{register-mutation-ET6E4VLE.js → register-mutation-Z2ETYHKS.js} +40 -37
  375. package/dist/cli-bundle/chunks/{register-mutation-ET6E4VLE.js.map → register-mutation-Z2ETYHKS.js.map} +1 -1
  376. package/dist/cli-bundle/chunks/{register-operations-6DQRUTIX.js → register-operations-A3XAM5J7.js} +39 -36
  377. package/dist/cli-bundle/chunks/{register-operations-6DQRUTIX.js.map → register-operations-A3XAM5J7.js.map} +1 -1
  378. package/dist/cli-bundle/chunks/{register-operations-73UDWMVB.js → register-operations-SG7HBSUP.js} +37 -34
  379. package/dist/cli-bundle/chunks/{register-operations-73UDWMVB.js.map → register-operations-SG7HBSUP.js.map} +1 -1
  380. package/dist/cli-bundle/chunks/{register-setup-LYYCMQFV.js → register-setup-I45OGJUV.js} +25 -19
  381. package/dist/cli-bundle/chunks/{register-setup-LYYCMQFV.js.map → register-setup-I45OGJUV.js.map} +1 -1
  382. package/dist/cli-bundle/chunks/{register-setup-FXZJ2CEJ.js → register-setup-K6U3NVY5.js} +23 -17
  383. package/dist/cli-bundle/chunks/{register-setup-FXZJ2CEJ.js.map → register-setup-K6U3NVY5.js.map} +1 -1
  384. package/dist/cli-bundle/chunks/restore-PXOFL6AM.js +19 -0
  385. package/dist/cli-bundle/chunks/{restore-R6YJHQK3.js → restore-YJ2ET6AT.js} +11 -9
  386. package/dist/cli-bundle/chunks/{scheduling-shortcuts-OGODPUBL.js → scheduling-shortcuts-SSC4MYWQ.js} +14 -12
  387. package/dist/cli-bundle/chunks/{scheduling-shortcuts-OGODPUBL.js.map → scheduling-shortcuts-SSC4MYWQ.js.map} +1 -1
  388. package/dist/cli-bundle/chunks/{scheduling-shortcuts-LE4S7OI7.js → scheduling-shortcuts-ULRG7MNP.js} +16 -14
  389. package/dist/cli-bundle/chunks/{scheduling-shortcuts-LE4S7OI7.js.map → scheduling-shortcuts-ULRG7MNP.js.map} +1 -1
  390. package/dist/cli-bundle/chunks/{schema-ICCD3HOP.js → schema-2PUXCZ25.js} +10 -7
  391. package/dist/cli-bundle/chunks/{schema-RHH23PQX.js → schema-Y6DXXK2F.js} +10 -7
  392. package/dist/cli-bundle/chunks/{search-Z2VGP2Q5.js → search-3S72CTD6.js} +13 -10
  393. package/dist/cli-bundle/chunks/{search-HDDKOPFE.js → search-WNUNBQXO.js} +13 -10
  394. package/dist/cli-bundle/chunks/{stats-ETFP37MB.js → stats-IJYTRQGV.js} +13 -10
  395. package/dist/cli-bundle/chunks/{stats-ETFP37MB.js.map → stats-IJYTRQGV.js.map} +1 -1
  396. package/dist/cli-bundle/chunks/{stats-DHMRXHOB.js → stats-L2D5Y2O5.js} +15 -12
  397. package/dist/cli-bundle/chunks/{stats-DHMRXHOB.js.map → stats-L2D5Y2O5.js.map} +1 -1
  398. package/dist/cli-bundle/chunks/{telemetry-ZRBM22QD.js → telemetry-L2CVOKVN.js} +11 -8
  399. package/dist/cli-bundle/chunks/{telemetry-ZRBM22QD.js.map → telemetry-L2CVOKVN.js.map} +1 -1
  400. package/dist/cli-bundle/chunks/{telemetry-NUZNKDCP.js → telemetry-QBYWQA76.js} +13 -10
  401. package/dist/cli-bundle/chunks/{telemetry-NUZNKDCP.js.map → telemetry-QBYWQA76.js.map} +1 -1
  402. package/dist/cli-bundle/chunks/{test-XNKTIP4Y.js → test-DQ2QFJ7W.js} +21 -15
  403. package/dist/cli-bundle/chunks/test-W7QBLVJS.js +41 -0
  404. package/dist/cli-bundle/chunks/{test-all-APCBSXQI.js → test-all-636NTRTT.js} +26 -19
  405. package/dist/cli-bundle/chunks/{test-all-APCBSXQI.js.map → test-all-636NTRTT.js.map} +1 -1
  406. package/dist/cli-bundle/chunks/{test-all-KIK3OYBY.js → test-all-DWYK3RG6.js} +24 -17
  407. package/dist/cli-bundle/chunks/{test-all-KIK3OYBY.js.map → test-all-DWYK3RG6.js.map} +1 -1
  408. package/dist/cli-bundle/chunks/test-runs-245OINZR.js +28 -0
  409. package/dist/cli-bundle/chunks/test-runs-245OINZR.js.map +1 -0
  410. package/dist/cli-bundle/chunks/test-runs-ZRD4GCTT.js +24 -0
  411. package/dist/cli-bundle/chunks/test-runs-ZRD4GCTT.js.map +7 -0
  412. package/dist/cli-bundle/chunks/update-SFLZPJXX.js +30 -0
  413. package/dist/cli-bundle/chunks/update-SFLZPJXX.js.map +1 -0
  414. package/dist/cli-bundle/chunks/update-SJZ6S77U.js +26 -0
  415. package/dist/cli-bundle/chunks/update-SJZ6S77U.js.map +7 -0
  416. package/dist/cli-bundle/chunks/{update-many-XGTJ7QIU.js → update-many-DC7X3EWM.js} +32 -29
  417. package/dist/cli-bundle/chunks/{update-many-XGTJ7QIU.js.map → update-many-DC7X3EWM.js.map} +1 -1
  418. package/dist/cli-bundle/chunks/{update-many-GFCQG6ZQ.js → update-many-SLLAMHT7.js} +34 -31
  419. package/dist/cli-bundle/chunks/{update-many-GFCQG6ZQ.js.map → update-many-SLLAMHT7.js.map} +1 -1
  420. package/dist/cli-bundle/chunks/{upgrade-KJ3JGELR.js → upgrade-HFFXLZJA.js} +19 -12
  421. package/dist/cli-bundle/chunks/{upgrade-KJ3JGELR.js.map → upgrade-HFFXLZJA.js.map} +1 -1
  422. package/dist/cli-bundle/chunks/{upgrade-RBRQ7PQU.js → upgrade-UYQKM7RF.js} +21 -14
  423. package/dist/cli-bundle/chunks/{upgrade-RBRQ7PQU.js.map → upgrade-UYQKM7RF.js.map} +1 -1
  424. package/dist/cli-bundle/chunks/{validate-EW6TGC7R.js → validate-PA4FDTOV.js} +34 -27
  425. package/dist/cli-bundle/chunks/{validate-EW6TGC7R.js.map → validate-PA4FDTOV.js.map} +2 -2
  426. package/dist/cli-bundle/chunks/{validate-T6PR5WAL.js → validate-Z7L75YEJ.js} +35 -28
  427. package/dist/cli-bundle/chunks/{validate-T6PR5WAL.js.map → validate-Z7L75YEJ.js.map} +1 -1
  428. package/dist/cli-bundle/main.js +173 -57
  429. package/dist/cli-bundle/main.js.map +2 -2
  430. package/dist/cli-bundle/sdk-runtime.js +247 -0
  431. package/dist/cli-bundle/sdk-runtime.js.map +7 -0
  432. package/dist/cli-bundle/sdk-testing.js +101 -0
  433. package/dist/cli-bundle/sdk-testing.js.map +7 -0
  434. package/dist/cli-bundle/sdk.js +787 -0
  435. package/dist/cli-bundle/sdk.js.map +7 -0
  436. package/dist/core/config/nested-settings.d.ts +4 -3
  437. package/dist/core/config/nested-settings.js +17 -6
  438. package/dist/core/config/nested-settings.js.map +1 -1
  439. package/dist/core/extensions/activation-summary.d.ts +6 -0
  440. package/dist/core/extensions/activation-summary.js +10 -4
  441. package/dist/core/extensions/activation-summary.js.map +1 -1
  442. package/dist/core/extensions/capability-usage.d.ts +6 -0
  443. package/dist/core/extensions/capability-usage.js +10 -4
  444. package/dist/core/extensions/capability-usage.js.map +1 -1
  445. package/dist/core/extensions/extension-types.d.ts +5 -0
  446. package/dist/core/extensions/extension-types.js +2 -2
  447. package/dist/core/extensions/extension-types.js.map +1 -1
  448. package/dist/core/extensions/loader.d.ts +3 -0
  449. package/dist/core/extensions/loader.js +11 -19
  450. package/dist/core/extensions/loader.js.map +1 -1
  451. package/dist/core/history/history-rewrite.js +3 -3
  452. package/dist/core/history/history-rewrite.js.map +1 -1
  453. package/dist/core/item/parent-reference-policy.d.ts +9 -1
  454. package/dist/core/item/parent-reference-policy.js +28 -4
  455. package/dist/core/item/parent-reference-policy.js.map +1 -1
  456. package/dist/core/lock/lock.d.ts +28 -1
  457. package/dist/core/lock/lock.js +254 -20
  458. package/dist/core/lock/lock.js.map +1 -1
  459. package/dist/core/search/background-refresh.js +7 -19
  460. package/dist/core/search/background-refresh.js.map +1 -1
  461. package/dist/core/search/http-client.d.ts +0 -1
  462. package/dist/core/search/http-client.js +3 -3
  463. package/dist/core/search/http-client.js.map +1 -1
  464. package/dist/core/shared/constants.js +3 -2
  465. package/dist/core/shared/constants.js.map +1 -1
  466. package/dist/core/shared/errors.d.ts +1 -0
  467. package/dist/core/shared/errors.js +2 -2
  468. package/dist/core/shared/errors.js.map +1 -1
  469. package/dist/core/shared/primitives.d.ts +12 -0
  470. package/dist/core/shared/primitives.js +29 -2
  471. package/dist/core/shared/primitives.js.map +1 -1
  472. package/dist/core/store/item-store.js +3 -3
  473. package/dist/core/store/item-store.js.map +1 -1
  474. package/dist/core/store/settings-validator.d.ts +1 -0
  475. package/dist/core/store/settings-validator.js +6 -3
  476. package/dist/core/store/settings-validator.js.map +1 -1
  477. package/dist/core/store/settings.js +3 -3
  478. package/dist/core/store/settings.js.map +1 -1
  479. package/dist/core/validate/fix-planning.d.ts +0 -2
  480. package/dist/core/validate/fix-planning.js +3 -3
  481. package/dist/core/validate/fix-planning.js.map +1 -1
  482. package/dist/sdk/cli-contracts/commander-mutation-options.js +3 -2
  483. package/dist/sdk/cli-contracts/commander-mutation-options.js.map +1 -1
  484. package/dist/sdk/cli-contracts/flag-contracts.js +3 -2
  485. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  486. package/dist/sdk/errors.d.ts +21 -2
  487. package/dist/sdk/errors.js +8 -2
  488. package/dist/sdk/errors.js.map +1 -1
  489. package/dist/sdk/package-import-adapters.js +3 -3
  490. package/dist/sdk/package-import-adapters.js.map +1 -1
  491. package/dist/sdk/testing.js +41 -19
  492. package/dist/sdk/testing.js.map +1 -1
  493. package/dist/types.d.ts +6 -0
  494. package/dist/types.js +2 -2
  495. package/dist/types.js.map +1 -1
  496. package/docs/ARCHITECTURE.md +27 -0
  497. package/docs/CONFIGURATION.md +3 -0
  498. package/docs/README.md +1 -0
  499. package/docs/SDK_PRIMITIVE_INVENTORY.md +55 -0
  500. package/docs/TESTING.md +5 -1
  501. package/docs/examples/ci/github-actions-pm-extension-gate.yml +5 -5
  502. package/docs/examples/ci/gitlab-ci-pm-extension-gate.yml +1 -1
  503. package/docs/examples/ci/jenkins-pm-extension-gate.Jenkinsfile +1 -1
  504. package/package.json +11 -24
  505. package/packages/pm-beads/extensions/beads/package.json +3 -0
  506. package/packages/pm-beads/extensions/beads/runtime-loader.ts +24 -2
  507. package/packages/pm-calendar/extensions/calendar/package.json +3 -0
  508. package/packages/pm-command-kit/extensions/command-kit/package.json +3 -0
  509. package/packages/pm-governance-audit/extensions/governance-audit/package.json +3 -0
  510. package/packages/pm-guide-shell/extensions/guide-shell/package.json +3 -0
  511. package/packages/pm-kanban/extensions/kanban/package.json +3 -0
  512. package/packages/pm-lifecycle-hooks/extensions/lifecycle-hooks/package.json +3 -0
  513. package/packages/pm-search-advanced/extensions/search-advanced/package.json +3 -0
  514. package/packages/pm-templates/extensions/templates/package.json +3 -0
  515. package/packages/pm-todos/extensions/todos/package.json +3 -0
  516. package/packages/pm-todos/extensions/todos/runtime-loader.ts +21 -3
  517. package/scripts/bundle-cli.mjs +12 -2
  518. package/dist/cli-bundle/chunks/activity-IDS5GSYG.js +0 -16
  519. package/dist/cli-bundle/chunks/chunk-2VK677OA.js.map +0 -7
  520. package/dist/cli-bundle/chunks/chunk-5FYY76HR.js.map +0 -7
  521. package/dist/cli-bundle/chunks/chunk-75VMARGO.js.map +0 -1
  522. package/dist/cli-bundle/chunks/chunk-7745CXNI.js.map +0 -7
  523. package/dist/cli-bundle/chunks/chunk-AOP2EMK3.js.map +0 -1
  524. package/dist/cli-bundle/chunks/chunk-AZMPKLIA.js.map +0 -1
  525. package/dist/cli-bundle/chunks/chunk-B4O5S7I3.js.map +0 -7
  526. package/dist/cli-bundle/chunks/chunk-BDDYM4LH.js.map +0 -7
  527. package/dist/cli-bundle/chunks/chunk-CN4OAA2G.js.map +0 -7
  528. package/dist/cli-bundle/chunks/chunk-EH23N5FX.js.map +0 -1
  529. package/dist/cli-bundle/chunks/chunk-FMWQRMHS.js.map +0 -1
  530. package/dist/cli-bundle/chunks/chunk-J4KNRDI3.js.map +0 -1
  531. package/dist/cli-bundle/chunks/chunk-KKHIQOTN.js.map +0 -7
  532. package/dist/cli-bundle/chunks/chunk-LLQLLAKU.js.map +0 -1
  533. package/dist/cli-bundle/chunks/chunk-M34MVAOP.js.map +0 -1
  534. package/dist/cli-bundle/chunks/chunk-MTB4PRA3.js.map +0 -7
  535. package/dist/cli-bundle/chunks/chunk-MZG6I2Q2.js.map +0 -7
  536. package/dist/cli-bundle/chunks/chunk-NGDK3KEZ.js.map +0 -7
  537. package/dist/cli-bundle/chunks/chunk-Q3XVLRCJ.js.map +0 -1
  538. package/dist/cli-bundle/chunks/chunk-SBNT6SLO.js.map +0 -7
  539. package/dist/cli-bundle/chunks/chunk-SL2ANJSV.js.map +0 -1
  540. package/dist/cli-bundle/chunks/chunk-TUV7SIWZ.js.map +0 -7
  541. package/dist/cli-bundle/chunks/chunk-UGDONITK.js.map +0 -7
  542. package/dist/cli-bundle/chunks/chunk-UYLA5ROU.js.map +0 -1
  543. package/dist/cli-bundle/chunks/chunk-WBWRQS32.js.map +0 -1
  544. package/dist/cli-bundle/chunks/chunk-XFO2NJY6.js.map +0 -1
  545. package/dist/cli-bundle/chunks/chunk-XQCWTSLO.js.map +0 -1
  546. package/dist/cli-bundle/chunks/chunk-YZWXMDNH.js.map +0 -1
  547. package/dist/cli-bundle/chunks/chunk-Z4DGFQDH.js.map +0 -1
  548. package/dist/cli-bundle/chunks/claim-D6L33A5Y.js.map +0 -1
  549. package/dist/cli-bundle/chunks/claim-YAFUTPVK.js.map +0 -7
  550. package/dist/cli-bundle/chunks/close-KLDLHAOP.js +0 -14
  551. package/dist/cli-bundle/chunks/create-AJ6HUR5W.js +0 -28
  552. package/dist/cli-bundle/chunks/history-IOH6FKG7.js +0 -18
  553. package/dist/cli-bundle/chunks/history-redact-VVDOARNO.js +0 -19
  554. package/dist/cli-bundle/chunks/init-CZLEEE6Q.js +0 -22
  555. package/dist/cli-bundle/chunks/init-MAA6UMNQ.js +0 -26
  556. package/dist/cli-bundle/chunks/profile-54DZ4CLB.js +0 -1205
  557. package/dist/cli-bundle/chunks/profile-54DZ4CLB.js.map +0 -1
  558. package/dist/cli-bundle/chunks/profile-PLIQVEOY.js +0 -1243
  559. package/dist/cli-bundle/chunks/profile-PLIQVEOY.js.map +0 -7
  560. package/dist/cli-bundle/chunks/restore-L27TMMCF.js +0 -17
  561. package/dist/cli-bundle/chunks/test-H36PM746.js +0 -35
  562. package/dist/cli-bundle/chunks/update-RQKI3AMW.js +0 -24
  563. package/dist/cli-bundle/chunks/update-ZM7NJWHY.js +0 -28
  564. /package/dist/cli-bundle/chunks/{activity-IDS5GSYG.js.map → activity-4XQIDNM5.js.map} +0 -0
  565. /package/dist/cli-bundle/chunks/{activity-OENQCYZD.js.map → activity-YKAKZTZ4.js.map} +0 -0
  566. /package/dist/cli-bundle/chunks/{chunk-4SHME4VR.js.map → chunk-5JE6SMYS.js.map} +0 -0
  567. /package/dist/cli-bundle/chunks/{chunk-4EVY7CQN.js.map → chunk-N6DNM2FA.js.map} +0 -0
  568. /package/dist/cli-bundle/chunks/{chunk-YZR7UMZ6.js.map → chunk-NER3KUUS.js.map} +0 -0
  569. /package/dist/cli-bundle/chunks/{chunk-WTXDLBSZ.js.map → chunk-PDXT6Q55.js.map} +0 -0
  570. /package/dist/cli-bundle/chunks/{chunk-724VLYDJ.js.map → chunk-RX3HQSYG.js.map} +0 -0
  571. /package/dist/cli-bundle/chunks/{chunk-PUVPC5DL.js.map → chunk-S4APD35C.js.map} +0 -0
  572. /package/dist/cli-bundle/chunks/{chunk-A2W3XKAD.js.map → chunk-T35XLYZF.js.map} +0 -0
  573. /package/dist/cli-bundle/chunks/{chunk-ZZWMJVW2.js.map → chunk-TT42JUMF.js.map} +0 -0
  574. /package/dist/cli-bundle/chunks/{chunk-W5X3AHJN.js.map → chunk-YOF5VPKM.js.map} +0 -0
  575. /package/dist/cli-bundle/chunks/{chunk-MZ4NH46V.js.map → chunk-ZMD35NYG.js.map} +0 -0
  576. /package/dist/cli-bundle/chunks/{close-TGYXG7TV.js.map → close-3YRR3XY6.js.map} +0 -0
  577. /package/dist/cli-bundle/chunks/{close-KLDLHAOP.js.map → close-OB2Y4QP5.js.map} +0 -0
  578. /package/dist/cli-bundle/chunks/{context-IHE3IXN5.js.map → context-4OQGIPSO.js.map} +0 -0
  579. /package/dist/cli-bundle/chunks/{context-WSYWBEUL.js.map → context-WLA6IAWE.js.map} +0 -0
  580. /package/dist/cli-bundle/chunks/{create-AJ6HUR5W.js.map → contracts-HXJLKCRI.js.map} +0 -0
  581. /package/dist/cli-bundle/chunks/{create-JIA2IFCO.js.map → contracts-OJEXMKVW.js.map} +0 -0
  582. /package/dist/cli-bundle/chunks/{extension-T7JNTAAA.js.map → create-WKOZKPQR.js.map} +0 -0
  583. /package/dist/cli-bundle/chunks/{extension-PVGRRZZG.js.map → create-XWWQFQ6S.js.map} +0 -0
  584. /package/dist/cli-bundle/chunks/{history-IOH6FKG7.js.map → extension-NBAH62ML.js.map} +0 -0
  585. /package/dist/cli-bundle/chunks/{history-W6QVR6FA.js.map → extension-ZF6ZZPOU.js.map} +0 -0
  586. /package/dist/cli-bundle/chunks/{history-redact-VVDOARNO.js.map → history-RYKLC72X.js.map} +0 -0
  587. /package/dist/cli-bundle/chunks/{history-redact-TUWOUYX5.js.map → history-SGPYRAFT.js.map} +0 -0
  588. /package/dist/cli-bundle/chunks/{init-CZLEEE6Q.js.map → history-redact-4H3FCKF3.js.map} +0 -0
  589. /package/dist/cli-bundle/chunks/{init-MAA6UMNQ.js.map → history-redact-54ICFKXM.js.map} +0 -0
  590. /package/dist/cli-bundle/chunks/{list-HFD5737R.js.map → init-RPIPQUNV.js.map} +0 -0
  591. /package/dist/cli-bundle/chunks/{list-KN3TL5Y5.js.map → init-SKQAESQS.js.map} +0 -0
  592. /package/dist/cli-bundle/chunks/{restore-L27TMMCF.js.map → list-64LHZ3HM.js.map} +0 -0
  593. /package/dist/cli-bundle/chunks/{restore-R6YJHQK3.js.map → list-7LXBTEKI.js.map} +0 -0
  594. /package/dist/cli-bundle/chunks/{schema-ICCD3HOP.js.map → restore-PXOFL6AM.js.map} +0 -0
  595. /package/dist/cli-bundle/chunks/{schema-RHH23PQX.js.map → restore-YJ2ET6AT.js.map} +0 -0
  596. /package/dist/cli-bundle/chunks/{search-HDDKOPFE.js.map → schema-2PUXCZ25.js.map} +0 -0
  597. /package/dist/cli-bundle/chunks/{search-Z2VGP2Q5.js.map → schema-Y6DXXK2F.js.map} +0 -0
  598. /package/dist/cli-bundle/chunks/{test-XNKTIP4Y.js.map → search-3S72CTD6.js.map} +0 -0
  599. /package/dist/cli-bundle/chunks/{test-H36PM746.js.map → search-WNUNBQXO.js.map} +0 -0
  600. /package/dist/cli-bundle/chunks/{update-ZM7NJWHY.js.map → test-DQ2QFJ7W.js.map} +0 -0
  601. /package/dist/cli-bundle/chunks/{update-RQKI3AMW.js.map → test-W7QBLVJS.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../cli/commands/gc.ts","../../../../../../../../core/checkpoint/checkpoint-gc.ts"],"sourcesContent":["/**\n * @module cli/commands/gc\n *\n * Implements the pm gc command surface and its agent-facing runtime behavior.\n */\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { runCheckpointGc } from \"../../core/checkpoint/checkpoint-gc.js\";\nimport { runActiveOnIndexHooks, runActiveOnReadHooks, runActiveOnWriteHooks } from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { runLockGc } from \"../../core/lock/lock-gc.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\n\nconst GC_SCOPE_VALUES = [\"index\", \"embeddings\", \"runtime\", \"locks\", \"checkpoints\"] as const;\ntype GcScope = (typeof GC_SCOPE_VALUES)[number];\n\ninterface GcTarget {\n scope: GcScope;\n relativePath: string;\n kind: \"file\" | \"directory\";\n}\n\nconst GC_TARGETS: readonly GcTarget[] = [\n {\n scope: \"index\",\n relativePath: \"index/manifest.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/embeddings.jsonl\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/vectorization-status.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/lancedb\",\n kind: \"directory\",\n },\n {\n // Removing embeddings invalidates the whole semantic index, so the queued\n // background-refresh work is also meaningless: a worker draining a stale\n // queue against an empty ledger would rebuild a partial, inconsistent index\n // (only the queued items vectorized). Clear the queue and its gate so the\n // next mutation re-seeds from a clean slate. See core/search/background-refresh.ts.\n scope: \"embeddings\",\n relativePath: \"search/pending-refresh.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/pending-refresh.gate.lock\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/test-runs\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/history-drift-cache.json\",\n kind: \"file\",\n },\n] as const;\n\n/**\n * Documents the gc command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcCommandOptions {\n dryRun?: boolean;\n scope?: string[];\n}\n\n/**\n * Documents the gc locks summary payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcLocksSummary {\n scanned: number;\n removed: number;\n retained: number;\n}\n\n/**\n * Documents the gc checkpoints summary payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcCheckpointsSummary {\n scanned: number;\n removed: number;\n retained: number;\n retention_days: number;\n}\n\n/**\n * Documents the gc result payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcResult {\n ok: boolean;\n dry_run: boolean;\n scope: GcScope[];\n removed: string[];\n retained: string[];\n warnings: string[];\n guidance: string[];\n /** Present only when the locks scope was selected. Summarizes the stale-lock sweep. */\n locks?: GcLocksSummary;\n /** Present only when the checkpoints scope was selected. Summarizes the rollback-checkpoint sweep. */\n checkpoints?: GcCheckpointsSummary;\n generated_at: string;\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === code;\n}\n\nasync function removeCacheFile(\n pmRoot: string,\n target: GcTarget,\n dryRun: boolean,\n): Promise<{ removed: boolean; warnings: string[] }> {\n const relativePath = target.relativePath;\n const absolutePath = path.join(pmRoot, relativePath);\n const warnings = await runActiveOnReadHooks({\n path: absolutePath,\n scope: \"project\",\n });\n try {\n const stats = await fs.stat(absolutePath);\n if (target.kind === \"file\" && !stats.isFile()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_file:${relativePath}`],\n };\n }\n if (target.kind === \"directory\" && !stats.isDirectory()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_directory:${relativePath}`],\n };\n }\n if (dryRun) {\n return {\n removed: true,\n warnings,\n };\n }\n if (target.kind === \"file\") {\n await fs.unlink(absolutePath);\n } else {\n await fs.rm(absolutePath, { recursive: true, force: true });\n }\n const writeWarnings = await runActiveOnWriteHooks({\n path: absolutePath,\n scope: \"project\",\n op: \"gc:remove\",\n });\n return {\n removed: true,\n warnings: [...warnings, ...writeWarnings],\n };\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return {\n removed: false,\n warnings,\n };\n }\n throw error;\n }\n}\n\nfunction parseScopes(raw: string[] | undefined): GcScope[] {\n if (!raw || raw.length === 0) {\n return [...GC_SCOPE_VALUES];\n }\n const tokens = raw\n .flatMap((entry) => entry.split(\",\"))\n .map((entry) => entry.trim().toLowerCase())\n .filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n throw new PmCliError(`--scope requires at least one value (${GC_SCOPE_VALUES.join(\",\")})`, EXIT_CODE.USAGE);\n }\n const resolved = new Set<GcScope>();\n for (const token of tokens) {\n if (!(GC_SCOPE_VALUES as readonly string[]).includes(token)) {\n throw new PmCliError(\n `Invalid --scope value \"${token}\". Expected one or more of: ${GC_SCOPE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n resolved.add(token as GcScope);\n }\n return GC_SCOPE_VALUES.filter((scope) => resolved.has(scope));\n}\n\nfunction buildGcGuidance(params: {\n dryRun: boolean;\n scopes: GcScope[];\n removed: string[];\n}): string[] {\n const guidance: string[] = [];\n if (params.dryRun) {\n guidance.push(\"Dry-run preview only: no cache artifacts were deleted.\");\n }\n const searchScopeSelected = params.scopes.includes(\"index\") || params.scopes.includes(\"embeddings\");\n const searchArtifactsAffected = params.removed.some(\n (entry) =>\n entry === \"index/manifest.json\" ||\n entry === \"search/embeddings.jsonl\" ||\n entry === \"search/vectorization-status.json\" ||\n entry === \"search/lancedb\" ||\n entry === \"search/pending-refresh.json\" ||\n entry === \"search/pending-refresh.gate.lock\",\n );\n if (searchScopeSelected && searchArtifactsAffected) {\n guidance.push(\n 'Search artifacts were removed; the semantic index (including any queued background refresh) is invalidated. Run \"pm install search-advanced --project\" if reindex is unavailable, then \"pm reindex --mode keyword\" (and \"--mode semantic\" when semantic search is enabled) before search-heavy workflows.',\n );\n }\n if (params.removed.includes(\"runtime/history-drift-cache.json\")) {\n guidance.push('History drift cache was removed; the next \"pm health\" run performs a full history-drift re-scan.');\n }\n if (!params.dryRun && params.removed.some((entry) => entry.startsWith(\"checkpoints/\"))) {\n guidance.push(\n 'Aged rollback checkpoints were removed; their \"pm update-many\"/\"pm close-many --rollback\" windows are no longer recoverable.',\n );\n }\n return guidance;\n}\n\n/**\n * Implements run gc for the public runtime surface of this module.\n */\nexport async function runGc(global: GlobalOptions, options: GcCommandOptions = {}): Promise<GcResult> {\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\n const settings = await readSettings(pmRoot);\n const dryRun = options.dryRun === true;\n const scopes = parseScopes(options.scope);\n const selectedTargets = GC_TARGETS.filter((target) => scopes.includes(target.scope));\n\n const removed: string[] = [];\n const retained: string[] = [];\n const warnings: string[] = [];\n\n for (const target of selectedTargets) {\n const result = await removeCacheFile(pmRoot, target, dryRun);\n if (result.removed) {\n removed.push(target.relativePath);\n } else {\n retained.push(target.relativePath);\n }\n warnings.push(...result.warnings);\n }\n\n // The locks scope is not a path-based GC_TARGET: it sweeps the locks/ directory\n // and removes only locks whose own embedded ttl has expired (crashed-process\n // debris), retaining active and unparseable locks. See core/lock/lock-gc.ts.\n let locksSummary: GcLocksSummary | undefined;\n if (scopes.includes(\"locks\")) {\n const lockResult = await runLockGc(pmRoot, {\n dryRun,\n hooks: {\n onRead: (lockPath) => runActiveOnReadHooks({ path: lockPath, scope: \"project\" }),\n onWrite: (lockPath) => runActiveOnWriteHooks({ path: lockPath, scope: \"project\", op: \"gc:lock_remove\" }),\n },\n });\n removed.push(...lockResult.removed);\n retained.push(...lockResult.retained);\n warnings.push(...lockResult.warnings);\n locksSummary = {\n scanned: lockResult.scanned,\n removed: lockResult.removed.length,\n retained: lockResult.retained.length,\n };\n }\n\n // The checkpoints scope is also not a path-based GC_TARGET: it sweeps\n // checkpoints/ and removes only rollback checkpoints older than the configured\n // checkpoints.retention_days, retaining active and unparseable files. See\n // core/checkpoint/checkpoint-gc.ts.\n let checkpointsSummary: GcCheckpointsSummary | undefined;\n if (scopes.includes(\"checkpoints\")) {\n const retentionDays = settings.checkpoints.retention_days;\n const checkpointResult = await runCheckpointGc(pmRoot, {\n dryRun,\n retentionDays,\n hooks: {\n onRead: (checkpointPath) => runActiveOnReadHooks({ path: checkpointPath, scope: \"project\" }),\n onWrite: (checkpointPath) =>\n runActiveOnWriteHooks({ path: checkpointPath, scope: \"project\", op: \"gc:checkpoint_remove\" }),\n },\n });\n removed.push(...checkpointResult.removed);\n retained.push(...checkpointResult.retained);\n warnings.push(...checkpointResult.warnings);\n checkpointsSummary = {\n scanned: checkpointResult.scanned,\n removed: checkpointResult.removed.length,\n retained: checkpointResult.retained.length,\n retention_days: retentionDays,\n };\n }\n\n warnings.push(\n ...(await runActiveOnIndexHooks({\n mode: dryRun ? \"gc:dry-run\" : \"gc\",\n total_items: selectedTargets.length,\n })),\n );\n const guidance = buildGcGuidance({\n dryRun,\n scopes,\n removed,\n });\n\n return {\n ok: warnings.length === 0,\n dry_run: dryRun,\n scope: scopes,\n removed,\n retained,\n warnings,\n ...(locksSummary ? { locks: locksSummary } : {}),\n ...(checkpointsSummary ? { checkpoints: checkpointsSummary } : {}),\n guidance,\n generated_at: nowIso(),\n };\n}\n","/**\n * @module core/checkpoint/checkpoint-gc\n *\n * Age-based garbage collector for bulk-mutation rollback checkpoints written by\n * `update-many`/`close-many` under `checkpoints/<subdir>/<id>.json`.\n *\n * Safety-first policy (mirroring the stale-lock sweep in `lock/lock-gc.ts`): a\n * checkpoint whose JSON cannot be read or whose `created_at` cannot be parsed is\n * RETAINED rather than deleted. We only prune checkpoints whose age can be\n * conclusively determined from their own `created_at` field and that exceed the\n * configured `checkpoints.retention_days` policy.\n *\n * Staleness formula: (now_ms - Date.parse(created_at)) > retention_days * 86_400_000.\n * A zero/negative age (a future `created_at`) is always treated as active.\n */\n\nimport type { Dirent } from \"node:fs\";\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nconst MILLISECONDS_PER_DAY = 86_400_000;\n\n/**\n * Documents the checkpoint gc scan entry payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcEntry {\n /** Relative path like \"checkpoints/update-many/update-many-20260619-abc123.json\". */\n file: string;\n /** Parsed `created_at`, or null when missing/unparseable. */\n created_at: string | null;\n /** floor((now - created_at)/1000), null when unparseable. */\n age_seconds: number | null;\n /** True only when classified as expired (older than the retention window). */\n stale: boolean;\n reason: \"expired\" | \"active\" | \"unparseable\";\n}\n\n/**\n * Documents the checkpoint gc hooks payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcHooks {\n onRead?: (checkpointPath: string) => Promise<string[]> | string[];\n onWrite?: (checkpointPath: string) => Promise<string[]> | string[];\n}\n\n/**\n * Documents the checkpoint gc options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcOptions {\n dryRun: boolean;\n /**\n * Prune checkpoints older than this many days. Negative values are clamped to\n * zero (prune everything aged); a non-finite value (NaN/Infinity) disables\n * pruning entirely so bad input never deletes recoverable checkpoints.\n */\n retentionDays: number;\n /** Epoch ms; defaults to Date.now() — injectable for deterministic tests. */\n now?: number;\n hooks?: CheckpointGcHooks;\n}\n\n/**\n * Documents the checkpoint gc result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcResult {\n /** Number of *.json checkpoint files examined. */\n scanned: number;\n /** Relative paths removed (or would-remove under dryRun), sorted by file name asc. */\n removed: string[];\n /** Relative paths retained (active OR unparseable — never delete what we can't reason about). */\n retained: string[];\n warnings: string[];\n /** One per scanned checkpoint file, sorted by file name asc. */\n entries: CheckpointGcEntry[];\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return (\n typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === code\n );\n}\n\n/** Extract a parseable `created_at` from a checkpoint's raw JSON, or null. */\nfunction readCheckpointCreatedAt(raw: string): string | null {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n return null;\n }\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n return null;\n }\n const createdAt = (parsed as Record<string, unknown>).created_at;\n return typeof createdAt === \"string\" ? createdAt : null;\n}\n\n/**\n * Collect relative `checkpoints/<subdir>/<file>.json` (and top-level `<file>.json`)\n * paths under the checkpoints root. Subdirectory reads are resilient to\n * concurrent races: a subdir that vanishes between the parent `readdir` and its\n * own `readdir` (ENOENT) is skipped quietly, and any other read failure (e.g. a\n * permission error) is surfaced as a `checkpoint_subdir_unreadable:<name>`\n * warning rather than aborting the whole sweep.\n */\nasync function collectCheckpointFiles(checkpointsDir: string, warnings: string[]): Promise<string[]> {\n let dirEntries: Dirent[];\n try {\n dirEntries = await fs.readdir(checkpointsDir, { withFileTypes: true });\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return [];\n }\n throw error;\n }\n const files: string[] = [];\n for (const entry of dirEntries) {\n if (entry.isDirectory()) {\n const subdir = path.join(checkpointsDir, entry.name);\n let nested: string[];\n try {\n nested = await fs.readdir(subdir);\n } catch (error: unknown) {\n if (!isErrno(error, \"ENOENT\")) {\n warnings.push(`checkpoint_subdir_unreadable:${entry.name}`);\n }\n continue;\n }\n for (const file of nested) {\n if (file.endsWith(\".json\")) {\n files.push(`${entry.name}/${file}`);\n }\n }\n } else if (entry.name.endsWith(\".json\")) {\n files.push(entry.name);\n }\n }\n return files.sort();\n}\n\n/**\n * Implements run checkpoint gc for the public runtime surface of this module.\n */\nexport async function runCheckpointGc(pmRoot: string, options: CheckpointGcOptions): Promise<CheckpointGcResult> {\n const { dryRun, hooks } = options;\n const nowMs = options.now ?? Date.now();\n const retentionMs = Math.max(0, options.retentionDays) * MILLISECONDS_PER_DAY;\n const checkpointsDir = path.join(pmRoot, \"checkpoints\");\n // A non-finite retentionMs (NaN/Infinity from a non-finite retentionDays)\n // makes every `ageMs > retentionMs` comparison false, so nothing is pruned —\n // pruning is disabled rather than risking deletion under bad input.\n\n const result: CheckpointGcResult = {\n scanned: 0,\n removed: [],\n retained: [],\n warnings: [],\n entries: [],\n };\n\n const files = await collectCheckpointFiles(checkpointsDir, result.warnings);\n for (const relName of files) {\n const absPath = path.join(checkpointsDir, relName);\n const relPath = `checkpoints/${relName}`;\n result.scanned += 1;\n\n if (hooks?.onRead) {\n result.warnings.push(...(await hooks.onRead(absPath)));\n }\n\n let raw: string;\n try {\n raw = await fs.readFile(absPath, \"utf8\");\n } catch (readError: unknown) {\n if (isErrno(readError, \"ENOENT\")) {\n // Disappeared between readdir and readFile — treat as a ghost; skip quietly.\n result.scanned -= 1;\n continue;\n }\n result.warnings.push(`checkpoint_unreadable:${relName}`);\n result.retained.push(relPath);\n result.entries.push({ file: relPath, created_at: null, age_seconds: null, stale: false, reason: \"unparseable\" });\n continue;\n }\n\n const createdAt = readCheckpointCreatedAt(raw);\n const createdAtMs = createdAt === null ? Number.NaN : Date.parse(createdAt);\n if (!Number.isFinite(createdAtMs)) {\n result.warnings.push(`checkpoint_unparseable:${relName}`);\n result.retained.push(relPath);\n result.entries.push({\n file: relPath,\n created_at: createdAt,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n const ageMs = nowMs - createdAtMs;\n const entry: CheckpointGcEntry = {\n file: relPath,\n created_at: createdAt,\n age_seconds: Math.floor(ageMs / 1000),\n stale: ageMs > retentionMs,\n reason: ageMs > retentionMs ? \"expired\" : \"active\",\n };\n if (!entry.stale) {\n result.retained.push(relPath);\n result.entries.push(entry);\n continue;\n }\n\n if (!dryRun) {\n try {\n await fs.unlink(absPath);\n } catch (unlinkError: unknown) {\n if (!isErrno(unlinkError, \"ENOENT\")) {\n result.warnings.push(`checkpoint_remove_failed:${relName}`);\n result.retained.push(relPath);\n result.entries.push(entry);\n continue;\n }\n // ENOENT on unlink = already gone (race); treat as removed.\n }\n if (hooks?.onWrite) {\n result.warnings.push(...(await hooks.onWrite(absPath)));\n }\n }\n result.removed.push(relPath);\n result.entries.push(entry);\n }\n\n return result;\n}\n"],"names":["fs","path","isErrno","path","fs"],"mappings":"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","debugId":"3c374d47-7032-5587-a46f-de7d42a85e31"}
1
+ {"version":3,"sources":["../../../../../../../../cli/commands/gc.ts","../../../../../../../../core/checkpoint/checkpoint-gc.ts"],"sourcesContent":["/**\n * @module cli/commands/gc\n *\n * Implements the pm gc command surface and its agent-facing runtime behavior.\n */\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { runCheckpointGc } from \"../../core/checkpoint/checkpoint-gc.js\";\nimport { runActiveOnIndexHooks, runActiveOnReadHooks, runActiveOnWriteHooks } from \"../../core/extensions/index.js\";\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { runLockGc } from \"../../core/lock/lock-gc.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\n\nconst GC_SCOPE_VALUES = [\"index\", \"embeddings\", \"runtime\", \"locks\", \"checkpoints\"] as const;\ntype GcScope = (typeof GC_SCOPE_VALUES)[number];\n\ninterface GcTarget {\n scope: GcScope;\n relativePath: string;\n kind: \"file\" | \"directory\";\n}\n\nconst GC_TARGETS: readonly GcTarget[] = [\n {\n scope: \"index\",\n relativePath: \"index/manifest.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/embeddings.jsonl\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/vectorization-status.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/lancedb\",\n kind: \"directory\",\n },\n {\n // Removing embeddings invalidates the whole semantic index, so the queued\n // background-refresh work is also meaningless: a worker draining a stale\n // queue against an empty ledger would rebuild a partial, inconsistent index\n // (only the queued items vectorized). Clear the queue and its gate so the\n // next mutation re-seeds from a clean slate. See core/search/background-refresh.ts.\n scope: \"embeddings\",\n relativePath: \"search/pending-refresh.json\",\n kind: \"file\",\n },\n {\n scope: \"embeddings\",\n relativePath: \"search/pending-refresh.gate.lock\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/test-runs\",\n kind: \"directory\",\n },\n {\n scope: \"runtime\",\n relativePath: \"runtime/history-drift-cache.json\",\n kind: \"file\",\n },\n] as const;\n\n/**\n * Documents the gc command options payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcCommandOptions {\n dryRun?: boolean;\n scope?: string[];\n}\n\n/**\n * Documents the gc locks summary payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcLocksSummary {\n scanned: number;\n removed: number;\n retained: number;\n}\n\n/**\n * Documents the gc checkpoints summary payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcCheckpointsSummary {\n scanned: number;\n removed: number;\n retained: number;\n retention_days: number;\n}\n\n/**\n * Documents the gc result payload exchanged by command, SDK, and package integrations.\n */\nexport interface GcResult {\n ok: boolean;\n dry_run: boolean;\n scope: GcScope[];\n removed: string[];\n retained: string[];\n warnings: string[];\n guidance: string[];\n /** Present only when the locks scope was selected. Summarizes the stale-lock sweep. */\n locks?: GcLocksSummary;\n /** Present only when the checkpoints scope was selected. Summarizes the rollback-checkpoint sweep. */\n checkpoints?: GcCheckpointsSummary;\n generated_at: string;\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === code;\n}\n\nasync function removeCacheFile(\n pmRoot: string,\n target: GcTarget,\n dryRun: boolean,\n): Promise<{ removed: boolean; warnings: string[] }> {\n const relativePath = target.relativePath;\n const absolutePath = path.join(pmRoot, relativePath);\n const warnings = await runActiveOnReadHooks({\n path: absolutePath,\n scope: \"project\",\n });\n try {\n const stats = await fs.stat(absolutePath);\n if (target.kind === \"file\" && !stats.isFile()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_file:${relativePath}`],\n };\n }\n if (target.kind === \"directory\" && !stats.isDirectory()) {\n return {\n removed: false,\n warnings: [...warnings, `not_a_directory:${relativePath}`],\n };\n }\n if (dryRun) {\n return {\n removed: true,\n warnings,\n };\n }\n if (target.kind === \"file\") {\n await fs.unlink(absolutePath);\n } else {\n await fs.rm(absolutePath, { recursive: true, force: true });\n }\n const writeWarnings = await runActiveOnWriteHooks({\n path: absolutePath,\n scope: \"project\",\n op: \"gc:remove\",\n });\n return {\n removed: true,\n warnings: [...warnings, ...writeWarnings],\n };\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return {\n removed: false,\n warnings,\n };\n }\n throw error;\n }\n}\n\nfunction parseScopes(raw: string[] | undefined): GcScope[] {\n if (!raw || raw.length === 0) {\n return [...GC_SCOPE_VALUES];\n }\n const tokens = raw\n .flatMap((entry) => entry.split(\",\"))\n .map((entry) => entry.trim().toLowerCase())\n .filter((entry) => entry.length > 0);\n if (tokens.length === 0) {\n throw new PmCliError(`--scope requires at least one value (${GC_SCOPE_VALUES.join(\",\")})`, EXIT_CODE.USAGE);\n }\n const resolved = new Set<GcScope>();\n for (const token of tokens) {\n if (!(GC_SCOPE_VALUES as readonly string[]).includes(token)) {\n throw new PmCliError(\n `Invalid --scope value \"${token}\". Expected one or more of: ${GC_SCOPE_VALUES.join(\", \")}`,\n EXIT_CODE.USAGE,\n );\n }\n resolved.add(token as GcScope);\n }\n return GC_SCOPE_VALUES.filter((scope) => resolved.has(scope));\n}\n\nfunction buildGcGuidance(params: {\n dryRun: boolean;\n scopes: GcScope[];\n removed: string[];\n}): string[] {\n const guidance: string[] = [];\n if (params.dryRun) {\n guidance.push(\"Dry-run preview only: no cache artifacts were deleted.\");\n }\n const searchScopeSelected = params.scopes.includes(\"index\") || params.scopes.includes(\"embeddings\");\n const searchArtifactsAffected = params.removed.some(\n (entry) =>\n entry === \"index/manifest.json\" ||\n entry === \"search/embeddings.jsonl\" ||\n entry === \"search/vectorization-status.json\" ||\n entry === \"search/lancedb\" ||\n entry === \"search/pending-refresh.json\" ||\n entry === \"search/pending-refresh.gate.lock\",\n );\n if (searchScopeSelected && searchArtifactsAffected) {\n guidance.push(\n 'Search artifacts were removed; the semantic index (including any queued background refresh) is invalidated. Run \"pm install search-advanced --project\" if reindex is unavailable, then \"pm reindex --mode keyword\" (and \"--mode semantic\" when semantic search is enabled) before search-heavy workflows.',\n );\n }\n if (params.removed.includes(\"runtime/history-drift-cache.json\")) {\n guidance.push('History drift cache was removed; the next \"pm health\" run performs a full history-drift re-scan.');\n }\n if (!params.dryRun && params.removed.some((entry) => entry.startsWith(\"checkpoints/\"))) {\n guidance.push(\n 'Aged rollback checkpoints were removed; their \"pm update-many\"/\"pm close-many --rollback\" windows are no longer recoverable.',\n );\n }\n return guidance;\n}\n\n/**\n * Implements run gc for the public runtime surface of this module.\n */\nexport async function runGc(global: GlobalOptions, options: GcCommandOptions = {}): Promise<GcResult> {\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\n const settings = await readSettings(pmRoot);\n const dryRun = options.dryRun === true;\n const scopes = parseScopes(options.scope);\n const selectedTargets = GC_TARGETS.filter((target) => scopes.includes(target.scope));\n\n const removed: string[] = [];\n const retained: string[] = [];\n const warnings: string[] = [];\n\n for (const target of selectedTargets) {\n const result = await removeCacheFile(pmRoot, target, dryRun);\n if (result.removed) {\n removed.push(target.relativePath);\n } else {\n retained.push(target.relativePath);\n }\n warnings.push(...result.warnings);\n }\n\n // The locks scope is not a path-based GC_TARGET: it sweeps the locks/ directory\n // and removes only locks whose own embedded ttl has expired (crashed-process\n // debris), retaining active and unparseable locks. See core/lock/lock-gc.ts.\n let locksSummary: GcLocksSummary | undefined;\n if (scopes.includes(\"locks\")) {\n const lockResult = await runLockGc(pmRoot, {\n dryRun,\n hooks: {\n onRead: (lockPath) => runActiveOnReadHooks({ path: lockPath, scope: \"project\" }),\n onWrite: (lockPath) => runActiveOnWriteHooks({ path: lockPath, scope: \"project\", op: \"gc:lock_remove\" }),\n },\n });\n removed.push(...lockResult.removed);\n retained.push(...lockResult.retained);\n warnings.push(...lockResult.warnings);\n locksSummary = {\n scanned: lockResult.scanned,\n removed: lockResult.removed.length,\n retained: lockResult.retained.length,\n };\n }\n\n // The checkpoints scope is also not a path-based GC_TARGET: it sweeps\n // checkpoints/ and removes only rollback checkpoints older than the configured\n // checkpoints.retention_days, retaining active and unparseable files. See\n // core/checkpoint/checkpoint-gc.ts.\n let checkpointsSummary: GcCheckpointsSummary | undefined;\n if (scopes.includes(\"checkpoints\")) {\n const retentionDays = settings.checkpoints.retention_days;\n const checkpointResult = await runCheckpointGc(pmRoot, {\n dryRun,\n retentionDays,\n hooks: {\n onRead: (checkpointPath) => runActiveOnReadHooks({ path: checkpointPath, scope: \"project\" }),\n onWrite: (checkpointPath) =>\n runActiveOnWriteHooks({ path: checkpointPath, scope: \"project\", op: \"gc:checkpoint_remove\" }),\n },\n });\n removed.push(...checkpointResult.removed);\n retained.push(...checkpointResult.retained);\n warnings.push(...checkpointResult.warnings);\n checkpointsSummary = {\n scanned: checkpointResult.scanned,\n removed: checkpointResult.removed.length,\n retained: checkpointResult.retained.length,\n retention_days: retentionDays,\n };\n }\n\n warnings.push(\n ...(await runActiveOnIndexHooks({\n mode: dryRun ? \"gc:dry-run\" : \"gc\",\n total_items: selectedTargets.length,\n })),\n );\n const guidance = buildGcGuidance({\n dryRun,\n scopes,\n removed,\n });\n\n return {\n ok: warnings.length === 0,\n dry_run: dryRun,\n scope: scopes,\n removed,\n retained,\n warnings,\n ...(locksSummary ? { locks: locksSummary } : {}),\n ...(checkpointsSummary ? { checkpoints: checkpointsSummary } : {}),\n guidance,\n generated_at: nowIso(),\n };\n}\n","/**\n * @module core/checkpoint/checkpoint-gc\n *\n * Age-based garbage collector for bulk-mutation rollback checkpoints written by\n * `update-many`/`close-many` under `checkpoints/<subdir>/<id>.json`.\n *\n * Safety-first policy (mirroring the stale-lock sweep in `lock/lock-gc.ts`): a\n * checkpoint whose JSON cannot be read or whose `created_at` cannot be parsed is\n * RETAINED rather than deleted. We only prune checkpoints whose age can be\n * conclusively determined from their own `created_at` field and that exceed the\n * configured `checkpoints.retention_days` policy.\n *\n * Staleness formula: (now_ms - Date.parse(created_at)) > retention_days * 86_400_000.\n * A zero/negative age (a future `created_at`) is always treated as active.\n */\n\nimport type { Dirent } from \"node:fs\";\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\n\nconst MILLISECONDS_PER_DAY = 86_400_000;\n\n/**\n * Documents the checkpoint gc scan entry payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcEntry {\n /** Relative path like \"checkpoints/update-many/update-many-20260619-abc123.json\". */\n file: string;\n /** Parsed `created_at`, or null when missing/unparseable. */\n created_at: string | null;\n /** floor((now - created_at)/1000), null when unparseable. */\n age_seconds: number | null;\n /** True only when classified as expired (older than the retention window). */\n stale: boolean;\n reason: \"expired\" | \"active\" | \"unparseable\";\n}\n\n/**\n * Documents the checkpoint gc hooks payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcHooks {\n onRead?: (checkpointPath: string) => Promise<string[]> | string[];\n onWrite?: (checkpointPath: string) => Promise<string[]> | string[];\n}\n\n/**\n * Documents the checkpoint gc options payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcOptions {\n dryRun: boolean;\n /**\n * Prune checkpoints older than this many days. Negative values are clamped to\n * zero (prune everything aged); a non-finite value (NaN/Infinity) disables\n * pruning entirely so bad input never deletes recoverable checkpoints.\n */\n retentionDays: number;\n /** Epoch ms; defaults to Date.now() — injectable for deterministic tests. */\n now?: number;\n hooks?: CheckpointGcHooks;\n}\n\n/**\n * Documents the checkpoint gc result payload exchanged by command, SDK, and package integrations.\n */\nexport interface CheckpointGcResult {\n /** Number of *.json checkpoint files examined. */\n scanned: number;\n /** Relative paths removed (or would-remove under dryRun), sorted by file name asc. */\n removed: string[];\n /** Relative paths retained (active OR unparseable — never delete what we can't reason about). */\n retained: string[];\n warnings: string[];\n /** One per scanned checkpoint file, sorted by file name asc. */\n entries: CheckpointGcEntry[];\n}\n\nfunction isErrno(error: unknown, code: string): boolean {\n return (\n typeof error === \"object\" && error !== null && \"code\" in error && (error as { code?: string }).code === code\n );\n}\n\n/** Extract a parseable `created_at` from a checkpoint's raw JSON, or null. */\nfunction readCheckpointCreatedAt(raw: string): string | null {\n let parsed: unknown;\n try {\n parsed = JSON.parse(raw) as unknown;\n } catch {\n return null;\n }\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n return null;\n }\n const createdAt = (parsed as Record<string, unknown>).created_at;\n return typeof createdAt === \"string\" ? createdAt : null;\n}\n\n/**\n * Collect relative `checkpoints/<subdir>/<file>.json` (and top-level `<file>.json`)\n * paths under the checkpoints root. Subdirectory reads are resilient to\n * concurrent races: a subdir that vanishes between the parent `readdir` and its\n * own `readdir` (ENOENT) is skipped quietly, and any other read failure (e.g. a\n * permission error) is surfaced as a `checkpoint_subdir_unreadable:<name>`\n * warning rather than aborting the whole sweep.\n */\nasync function collectCheckpointFiles(checkpointsDir: string, warnings: string[]): Promise<string[]> {\n let dirEntries: Dirent[];\n try {\n dirEntries = await fs.readdir(checkpointsDir, { withFileTypes: true });\n } catch (error: unknown) {\n if (isErrno(error, \"ENOENT\")) {\n return [];\n }\n throw error;\n }\n const files: string[] = [];\n for (const entry of dirEntries) {\n if (entry.isDirectory()) {\n const subdir = path.join(checkpointsDir, entry.name);\n let nested: string[];\n try {\n nested = await fs.readdir(subdir);\n } catch (error: unknown) {\n if (!isErrno(error, \"ENOENT\")) {\n warnings.push(`checkpoint_subdir_unreadable:${entry.name}`);\n }\n continue;\n }\n for (const file of nested) {\n if (file.endsWith(\".json\")) {\n files.push(`${entry.name}/${file}`);\n }\n }\n } else if (entry.name.endsWith(\".json\")) {\n files.push(entry.name);\n }\n }\n return files.sort();\n}\n\n/**\n * Implements run checkpoint gc for the public runtime surface of this module.\n */\nexport async function runCheckpointGc(pmRoot: string, options: CheckpointGcOptions): Promise<CheckpointGcResult> {\n const { dryRun, hooks } = options;\n const nowMs = options.now ?? Date.now();\n const retentionMs = Math.max(0, options.retentionDays) * MILLISECONDS_PER_DAY;\n const checkpointsDir = path.join(pmRoot, \"checkpoints\");\n // A non-finite retentionMs (NaN/Infinity from a non-finite retentionDays)\n // makes every `ageMs > retentionMs` comparison false, so nothing is pruned —\n // pruning is disabled rather than risking deletion under bad input.\n\n const result: CheckpointGcResult = {\n scanned: 0,\n removed: [],\n retained: [],\n warnings: [],\n entries: [],\n };\n\n const files = await collectCheckpointFiles(checkpointsDir, result.warnings);\n for (const relName of files) {\n const absPath = path.join(checkpointsDir, relName);\n const relPath = `checkpoints/${relName}`;\n result.scanned += 1;\n\n if (hooks?.onRead) {\n result.warnings.push(...(await hooks.onRead(absPath)));\n }\n\n let raw: string;\n try {\n raw = await fs.readFile(absPath, \"utf8\");\n } catch (readError: unknown) {\n if (isErrno(readError, \"ENOENT\")) {\n // Disappeared between readdir and readFile — treat as a ghost; skip quietly.\n result.scanned -= 1;\n continue;\n }\n result.warnings.push(`checkpoint_unreadable:${relName}`);\n result.retained.push(relPath);\n result.entries.push({ file: relPath, created_at: null, age_seconds: null, stale: false, reason: \"unparseable\" });\n continue;\n }\n\n const createdAt = readCheckpointCreatedAt(raw);\n const createdAtMs = createdAt === null ? Number.NaN : Date.parse(createdAt);\n if (!Number.isFinite(createdAtMs)) {\n result.warnings.push(`checkpoint_unparseable:${relName}`);\n result.retained.push(relPath);\n result.entries.push({\n file: relPath,\n created_at: createdAt,\n age_seconds: null,\n stale: false,\n reason: \"unparseable\",\n });\n continue;\n }\n\n const ageMs = nowMs - createdAtMs;\n const entry: CheckpointGcEntry = {\n file: relPath,\n created_at: createdAt,\n age_seconds: Math.floor(ageMs / 1000),\n stale: ageMs > retentionMs,\n reason: ageMs > retentionMs ? \"expired\" : \"active\",\n };\n if (!entry.stale) {\n result.retained.push(relPath);\n result.entries.push(entry);\n continue;\n }\n\n if (!dryRun) {\n try {\n await fs.unlink(absPath);\n } catch (unlinkError: unknown) {\n if (!isErrno(unlinkError, \"ENOENT\")) {\n result.warnings.push(`checkpoint_remove_failed:${relName}`);\n result.retained.push(relPath);\n result.entries.push(entry);\n continue;\n }\n // ENOENT on unlink = already gone (race); treat as removed.\n }\n if (hooks?.onWrite) {\n result.warnings.push(...(await hooks.onWrite(absPath)));\n }\n }\n result.removed.push(relPath);\n result.entries.push(entry);\n }\n\n return result;\n}\n"],"names":["fs","path","isErrno","path","fs"],"mappings":"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","debugId":"42245c95-2db8-5974-a821-89c21ed1a28a"}
@@ -1,42 +1,45 @@
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]="6ca42fbb-ef56-50b9-a64a-2e34cbb0ee9a")}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]="9098e493-bd2c-5718-be4f-0f181a9fd126")}catch(e){}}();
3
3
  import {
4
4
  readHistoryEntries
5
- } from "./chunk-FDNJMYZB.js";
6
- import "./chunk-Y2VSCQ77.js";
5
+ } from "./chunk-T3F4DF23.js";
6
+ import "./chunk-BFVHCAOO.js";
7
7
  import {
8
8
  runList
9
- } from "./chunk-4IW7STMB.js";
9
+ } from "./chunk-YSAH5FY5.js";
10
10
  import "./chunk-QB7XMHJW.js";
11
- import "./chunk-4SHME4VR.js";
11
+ import "./chunk-5JE6SMYS.js";
12
12
  import {
13
13
  parseIntegerLimit
14
- } from "./chunk-NHKXOMZ5.js";
14
+ } from "./chunk-YFIE7YK6.js";
15
15
  import {
16
16
  buildItemNotFoundError,
17
17
  listAllFrontMatterLight,
18
18
  locateItem,
19
19
  readLocatedItem,
20
20
  toItemRecord
21
- } from "./chunk-UYLA5ROU.js";
21
+ } from "./chunk-57C2RLW5.js";
22
22
  import {
23
23
  isTerminalStatus
24
- } from "./chunk-AOP2EMK3.js";
25
- import "./chunk-FMWQRMHS.js";
24
+ } from "./chunk-HK72NWAD.js";
25
+ import "./chunk-FJRKQREY.js";
26
26
  import {
27
- EXIT_CODE,
28
- FRONT_MATTER_KEY_ORDER,
29
27
  PmCliError,
30
28
  getActiveExtensionRegistrations,
29
+ readSettings
30
+ } from "./chunk-US3T3W5J.js";
31
+ import "./chunk-NNHHXJB2.js";
32
+ import {
33
+ EXIT_CODE,
34
+ FRONT_MATTER_KEY_ORDER,
31
35
  getHistoryPath,
32
36
  getSettingsPath,
33
37
  pathExists,
34
- readSettings,
35
38
  resolveItemTypeRegistry,
36
39
  resolvePmRoot,
37
40
  resolveRuntimeFieldRegistry,
38
41
  resolveRuntimeStatusRegistry
39
- } from "./chunk-SL2ANJSV.js";
42
+ } from "./chunk-YD5FML7K.js";
40
43
 
41
44
  // dist/cli/commands/get.js
42
45
  var CHILD_ROLLUP_TYPES = /* @__PURE__ */ new Set(["milestone", "epic"]);
@@ -275,6 +278,6 @@ async function runGet(id, global, options = {}) {
275
278
  export {
276
279
  runGet
277
280
  };
278
- //# sourceMappingURL=get-J6CSJ4SX.js.map
281
+ //# sourceMappingURL=get-NH2MPBCI.js.map
279
282
 
280
- //# debugId=6ca42fbb-ef56-50b9-a64a-2e34cbb0ee9a
283
+ //# debugId=9098e493-bd2c-5718-be4f-0f181a9fd126
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../../cli/commands/get.ts"],"sourcesContent":["/**\n * @module cli/commands/get\n *\n * Implements the pm get command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeFieldRegistry, resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { isTerminalStatus } from \"../../core/item/status.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 { buildItemNotFoundError, listAllFrontMatterLight, locateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getHistoryPath, getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { parseIntegerLimit } from \"../shared-parsers.js\";\nimport type { ItemFrontMatter, LinkedDoc, LinkedFile, LinkedTest } from \"../../types/index.js\";\nimport { readHistoryEntries } from \"./history.js\";\nimport { runList } from \"./list.js\";\n\ninterface ClaimHistoryContext {\n ts: string;\n author: string;\n message: string | null;\n}\n\ninterface ClaimHistoryEntry {\n op: string;\n ts: string;\n author: string;\n message?: string;\n}\n\ninterface ClaimStateContext {\n claimed: boolean;\n assignee: string | null;\n last_claim: ClaimHistoryContext | null;\n last_release: ClaimHistoryContext | null;\n}\n\ninterface ChildRollupContext {\n count: number;\n active: number;\n by_status: Record<string, number>;\n}\n\n// GH-155 (pm-gcm3): only container types get the inline child rollup so leaf\n// item reads keep avoiding the corpus scan that the rollup requires.\nconst CHILD_ROLLUP_TYPES = new Set([\"milestone\", \"epic\"]);\n\n/**\n * Documents the get result payload exchanged by command, SDK, and package integrations.\n */\nexport interface GetResult {\n // `body` lives inside `item` (alongside `description`/`acceptance_criteria`)\n // for parity with `pm list --include-body`, so agents reliably find it at\n // `.item.body` in JSON output instead of a top-level sibling.\n item: Partial<ItemFrontMatter> & { body?: string };\n linked?: {\n files: LinkedFile[];\n tests: LinkedTest[];\n docs: LinkedDoc[];\n };\n claim_state?: ClaimStateContext;\n children?: ChildRollupContext;\n tree?: {\n root_id: string;\n root_title: string | null;\n depth_limit: number | null;\n count: number;\n items: Record<string, unknown>[];\n };\n}\n\nconst GET_DEPTH_VALUES = [\"brief\", \"standard\", \"deep\"] as const;\n\ntype GetDepth = (typeof GET_DEPTH_VALUES)[number];\n\n/**\n * Documents the get options payload exchanged by command, SDK, and package integrations.\n */\nexport interface GetOptions {\n depth?: string;\n fields?: string;\n full?: boolean;\n tree?: boolean;\n treeDepth?: string;\n}\n\nfunction toClaimHistoryContext(\n entry: ClaimHistoryEntry,\n): ClaimHistoryContext {\n return {\n ts: entry.ts,\n author: entry.author,\n message: entry.message ?? null,\n };\n}\n\nfunction resolveClaimStateContext(\n assigneeValue: string | undefined,\n history: ClaimHistoryEntry[],\n): ClaimStateContext {\n const assignee = assigneeValue?.trim();\n const normalizedAssignee = assignee && assignee.length > 0 ? assignee : null;\n const lastClaim = [...history].reverse().find((entry) => entry.op === \"claim\");\n const lastRelease = [...history].reverse().find((entry) => entry.op === \"release\");\n return {\n claimed: normalizedAssignee !== null,\n assignee: normalizedAssignee,\n last_claim: lastClaim ? toClaimHistoryContext(lastClaim) : null,\n last_release: lastRelease ? toClaimHistoryContext(lastRelease) : null,\n };\n}\n\nfunction parseGetDepth(raw: string | undefined): GetDepth {\n if (raw === undefined || raw.trim().length === 0) {\n return \"standard\";\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"full\") {\n return \"deep\";\n }\n if (GET_DEPTH_VALUES.includes(normalized as GetDepth)) {\n return normalized as GetDepth;\n }\n throw new PmCliError(\"Get --depth must be one of brief|standard|deep|full\", EXIT_CODE.USAGE);\n}\n\nfunction projectItemForDepth(item: ItemFrontMatter, depth: GetDepth): Partial<ItemFrontMatter> {\n if (depth === \"deep\") {\n return item;\n }\n const {\n comments: _comments,\n notes: _notes,\n learnings: _learnings,\n files: _files,\n tests: _tests,\n docs: _docs,\n reminders: _reminders,\n events: _events,\n ...projected\n } = item;\n return projected;\n}\n\nfunction parseGetFields(raw: string | undefined): string[] | null {\n if (raw === undefined) {\n return null;\n }\n const fields = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (fields.length === 0) {\n throw new PmCliError(\"Get --fields requires a comma-separated list of field names\", EXIT_CODE.USAGE);\n }\n return fields;\n}\n\nfunction normalizeGetField(field: string): string {\n return field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n}\n\nfunction validateGetFields(fields: string[] | null, runtimeMetadataKeys: Iterable<string>): void {\n if (fields === null) {\n return;\n }\n const itemFields = new Set([...FRONT_MATTER_KEY_ORDER, ...runtimeMetadataKeys]);\n const allowedRootFields = new Set([\"body\", \"linked\", \"claim_state\", \"children\"]);\n const allowedLinkedFields = new Set([\"linked.files\", \"linked.tests\", \"linked.docs\"]);\n const allowedClaimStateFields = new Set([\"claim_state.claimed\", \"claim_state.assignee\", \"claim_state.last_claim\", \"claim_state.last_release\"]);\n const unknown = fields.filter((field) => {\n const normalized = normalizeGetField(field);\n return (\n !itemFields.has(normalized) &&\n !allowedRootFields.has(normalized) &&\n !allowedLinkedFields.has(normalized) &&\n !allowedClaimStateFields.has(normalized)\n );\n });\n if (unknown.length > 0) {\n throw new PmCliError(`Unknown get --fields value(s): ${unknown.join(\", \")}`, EXIT_CODE.USAGE, {\n code: \"unknown_field_projection\",\n examples: [\n \"pm get <id> --fields id,title,status,type,updated_at\",\n \"pm get <id> --fields id,title,claim_state\",\n \"pm get <id> --fields id,title,body,linked.files\",\n ],\n });\n }\n}\n\nfunction projectItemForFields(item: ItemFrontMatter, fields: string[]): Partial<ItemFrontMatter> {\n const source = toItemRecord(item);\n const projected: Record<string, unknown> = {};\n for (const field of fields) {\n const normalized = field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n if (normalized === \"body\" || normalized === \"linked\" || normalized.startsWith(\"linked.\")) {\n continue;\n }\n projected[normalized] = source[normalized];\n }\n return projected as Partial<ItemFrontMatter>;\n}\n\nfunction fieldsInclude(fields: string[] | null, name: string): boolean {\n return fields?.some((field) => field === name || field === `item.${name}`) ?? false;\n}\n\nfunction fieldsIncludeRoot(fields: string[], name: string): boolean {\n return fields.some((field) => field === name || field.startsWith(`${name}.`));\n}\n\ninterface ResolvedGetProjection {\n depth: GetDepth;\n treeDepth: number | undefined;\n fields: string[] | null;\n fieldProjection: boolean;\n}\n\ninterface GetItemContext {\n pmRoot: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeToFolder: Record<string, string>;\n locatedId: string;\n metadata: ItemFrontMatter;\n body: string;\n}\n\nfunction resolveGetProjection(options: GetOptions): ResolvedGetProjection {\n if (options.full && (options.fields !== undefined || options.depth !== undefined)) {\n throw new PmCliError(\"Get projection options are mutually exclusive; remove the extra projection flag and retry.\", EXIT_CODE.USAGE);\n }\n if (options.tree !== true && options.treeDepth !== undefined) {\n throw new PmCliError(\"Get --tree-depth requires --tree\", EXIT_CODE.USAGE);\n }\n return {\n depth: options.full ? \"deep\" : parseGetDepth(options.depth),\n treeDepth: options.tree === true ? parseIntegerLimit(options.treeDepth, \"--tree-depth\") : undefined,\n fields: parseGetFields(options.fields),\n fieldProjection: options.fields !== undefined,\n };\n}\n\nasync function loadGetItemContext(id: string, global: GlobalOptions): Promise<GetItemContext> {\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 typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const loaded = await readLocatedItem(located, { schema: settings.schema });\n return {\n pmRoot,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n locatedId: located.id,\n metadata: loaded.document.metadata,\n body: loaded.document.body,\n };\n}\n\nfunction validateGetProjectionFields(fields: string[] | null, settings: Awaited<ReturnType<typeof readSettings>>): void {\n const runtimeMetadataKeys = resolveRuntimeFieldRegistry(settings.schema).definitions.map((field) => field.metadata_key);\n validateGetFields(fields, runtimeMetadataKeys);\n}\n\nfunction shouldIncludeGetField(params: {\n fieldProjection: boolean;\n depth: GetDepth;\n fields: string[] | null;\n field: \"body\" | \"linked\" | \"claim_state\" | \"children\";\n itemType?: string;\n}): boolean {\n const { fieldProjection, depth, fields, field, itemType } = params;\n if (fieldProjection) {\n if (field === \"body\" || field === \"linked\") {\n return fieldsInclude(fields, field);\n }\n return fieldsIncludeRoot(fields as string[], field);\n }\n if (field === \"children\") {\n return depth !== \"brief\" && CHILD_ROLLUP_TYPES.has(itemType as string);\n }\n return depth !== \"brief\";\n}\n\nasync function resolveGetClaimState(context: GetItemContext, includeClaimState: boolean): Promise<ClaimStateContext | undefined> {\n if (!includeClaimState) {\n return undefined;\n }\n const historyPath = getHistoryPath(context.pmRoot, context.locatedId);\n const history = await readHistoryEntries(historyPath, context.locatedId);\n return resolveClaimStateContext(context.metadata.assignee, history);\n}\n\nfunction attachGetLinked(\n result: GetResult,\n context: GetItemContext,\n fields: string[] | null,\n includeLinked: boolean,\n): void {\n const includeLinkedFiles = includeLinked || fieldsInclude(fields, \"linked.files\");\n const includeLinkedTests = includeLinked || fieldsInclude(fields, \"linked.tests\");\n const includeLinkedDocs = includeLinked || fieldsInclude(fields, \"linked.docs\");\n if (!includeLinked && !includeLinkedFiles && !includeLinkedTests && !includeLinkedDocs) {\n return;\n }\n result.linked = {\n files: includeLinkedFiles ? context.metadata.files ?? [] : [],\n tests: includeLinkedTests ? context.metadata.tests ?? [] : [],\n docs: includeLinkedDocs ? context.metadata.docs ?? [] : [],\n };\n}\n\nasync function buildGetChildrenRollup(context: GetItemContext, includeChildren: boolean): Promise<ChildRollupContext | undefined> {\n if (!includeChildren) {\n return undefined;\n }\n const statusRegistry = resolveRuntimeStatusRegistry(context.settings.schema);\n const corpus = await listAllFrontMatterLight(\n context.pmRoot,\n context.settings.item_format,\n context.typeToFolder,\n undefined,\n context.settings.schema,\n );\n const byStatus: Record<string, number> = {};\n let active = 0;\n let count = 0;\n const locatedId = context.locatedId.trim().toLowerCase();\n for (const candidate of corpus) {\n const parentId = typeof candidate.parent === \"string\" ? candidate.parent.trim().toLowerCase() : \"\";\n if (parentId !== locatedId) continue;\n const candidateStatus = candidate.status.trim().toLowerCase();\n count += 1;\n byStatus[candidateStatus] = (byStatus[candidateStatus] ?? 0) + 1;\n if (!isTerminalStatus(candidateStatus, statusRegistry)) {\n active += 1;\n }\n }\n return { count, active, by_status: byStatus };\n}\n\nasync function buildGetTree(\n context: GetItemContext,\n options: GetOptions,\n treeDepth: number | undefined,\n global: GlobalOptions,\n): Promise<GetResult[\"tree\"] | undefined> {\n if (options.tree !== true) {\n return undefined;\n }\n const subtree = await runList(\n undefined,\n {\n parent: context.locatedId,\n tree: true,\n treeDepth: treeDepth === undefined ? undefined : String(treeDepth),\n full: true,\n },\n global,\n );\n return {\n root_id: context.locatedId,\n root_title: context.metadata.title,\n depth_limit: treeDepth ?? null,\n count: subtree.count,\n items: subtree.items.map((entry) => toItemRecord(entry)),\n };\n}\n\n/**\n * Implements run get for the public runtime surface of this module.\n */\nexport async function runGet(id: string, global: GlobalOptions, options: GetOptions = {}): Promise<GetResult> {\n const projection = resolveGetProjection(options);\n const context = await loadGetItemContext(id, global);\n validateGetProjectionFields(projection.fields, context.settings);\n const includeBody = shouldIncludeGetField({ ...projection, field: \"body\" });\n const includeLinked = shouldIncludeGetField({ ...projection, field: \"linked\" });\n const includeClaimState = shouldIncludeGetField({ ...projection, field: \"claim_state\" });\n const itemType = context.metadata.type.trim().toLowerCase();\n const includeChildren = shouldIncludeGetField({ ...projection, field: \"children\", itemType });\n const claimState = await resolveGetClaimState(context, includeClaimState);\n const result: GetResult = {\n item: projection.fieldProjection\n ? projectItemForFields(context.metadata, projection.fields as string[])\n : projectItemForDepth(context.metadata, projection.depth),\n };\n if (includeBody) {\n result.item.body = context.body;\n }\n attachGetLinked(result, context, projection.fields, includeLinked);\n if (claimState) {\n result.claim_state = claimState;\n }\n result.children = await buildGetChildrenRollup(context, includeChildren);\n result.tree = await buildGetTree(context, options, projection.treeDepth, global);\n return result;\n}\n"],"names":[],"mappings":"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","debugId":"6ca42fbb-ef56-50b9-a64a-2e34cbb0ee9a"}
1
+ {"version":3,"sources":["../../../../../../../../cli/commands/get.ts"],"sourcesContent":["/**\n * @module cli/commands/get\n *\n * Implements the pm get command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeFieldRegistry, resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { isTerminalStatus } from \"../../core/item/status.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 { buildItemNotFoundError, listAllFrontMatterLight, locateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getHistoryPath, getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { parseIntegerLimit } from \"../shared-parsers.js\";\nimport type { ItemFrontMatter, LinkedDoc, LinkedFile, LinkedTest } from \"../../types/index.js\";\nimport { readHistoryEntries } from \"./history.js\";\nimport { runList } from \"./list.js\";\n\ninterface ClaimHistoryContext {\n ts: string;\n author: string;\n message: string | null;\n}\n\ninterface ClaimHistoryEntry {\n op: string;\n ts: string;\n author: string;\n message?: string;\n}\n\ninterface ClaimStateContext {\n claimed: boolean;\n assignee: string | null;\n last_claim: ClaimHistoryContext | null;\n last_release: ClaimHistoryContext | null;\n}\n\ninterface ChildRollupContext {\n count: number;\n active: number;\n by_status: Record<string, number>;\n}\n\n// GH-155 (pm-gcm3): only container types get the inline child rollup so leaf\n// item reads keep avoiding the corpus scan that the rollup requires.\nconst CHILD_ROLLUP_TYPES = new Set([\"milestone\", \"epic\"]);\n\n/**\n * Documents the get result payload exchanged by command, SDK, and package integrations.\n */\nexport interface GetResult {\n // `body` lives inside `item` (alongside `description`/`acceptance_criteria`)\n // for parity with `pm list --include-body`, so agents reliably find it at\n // `.item.body` in JSON output instead of a top-level sibling.\n item: Partial<ItemFrontMatter> & { body?: string };\n linked?: {\n files: LinkedFile[];\n tests: LinkedTest[];\n docs: LinkedDoc[];\n };\n claim_state?: ClaimStateContext;\n children?: ChildRollupContext;\n tree?: {\n root_id: string;\n root_title: string | null;\n depth_limit: number | null;\n count: number;\n items: Record<string, unknown>[];\n };\n}\n\nconst GET_DEPTH_VALUES = [\"brief\", \"standard\", \"deep\"] as const;\n\ntype GetDepth = (typeof GET_DEPTH_VALUES)[number];\n\n/**\n * Documents the get options payload exchanged by command, SDK, and package integrations.\n */\nexport interface GetOptions {\n depth?: string;\n fields?: string;\n full?: boolean;\n tree?: boolean;\n treeDepth?: string;\n}\n\nfunction toClaimHistoryContext(\n entry: ClaimHistoryEntry,\n): ClaimHistoryContext {\n return {\n ts: entry.ts,\n author: entry.author,\n message: entry.message ?? null,\n };\n}\n\nfunction resolveClaimStateContext(\n assigneeValue: string | undefined,\n history: ClaimHistoryEntry[],\n): ClaimStateContext {\n const assignee = assigneeValue?.trim();\n const normalizedAssignee = assignee && assignee.length > 0 ? assignee : null;\n const lastClaim = [...history].reverse().find((entry) => entry.op === \"claim\");\n const lastRelease = [...history].reverse().find((entry) => entry.op === \"release\");\n return {\n claimed: normalizedAssignee !== null,\n assignee: normalizedAssignee,\n last_claim: lastClaim ? toClaimHistoryContext(lastClaim) : null,\n last_release: lastRelease ? toClaimHistoryContext(lastRelease) : null,\n };\n}\n\nfunction parseGetDepth(raw: string | undefined): GetDepth {\n if (raw === undefined || raw.trim().length === 0) {\n return \"standard\";\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"full\") {\n return \"deep\";\n }\n if (GET_DEPTH_VALUES.includes(normalized as GetDepth)) {\n return normalized as GetDepth;\n }\n throw new PmCliError(\"Get --depth must be one of brief|standard|deep|full\", EXIT_CODE.USAGE);\n}\n\nfunction projectItemForDepth(item: ItemFrontMatter, depth: GetDepth): Partial<ItemFrontMatter> {\n if (depth === \"deep\") {\n return item;\n }\n const {\n comments: _comments,\n notes: _notes,\n learnings: _learnings,\n files: _files,\n tests: _tests,\n docs: _docs,\n reminders: _reminders,\n events: _events,\n ...projected\n } = item;\n return projected;\n}\n\nfunction parseGetFields(raw: string | undefined): string[] | null {\n if (raw === undefined) {\n return null;\n }\n const fields = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (fields.length === 0) {\n throw new PmCliError(\"Get --fields requires a comma-separated list of field names\", EXIT_CODE.USAGE);\n }\n return fields;\n}\n\nfunction normalizeGetField(field: string): string {\n return field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n}\n\nfunction validateGetFields(fields: string[] | null, runtimeMetadataKeys: Iterable<string>): void {\n if (fields === null) {\n return;\n }\n const itemFields = new Set([...FRONT_MATTER_KEY_ORDER, ...runtimeMetadataKeys]);\n const allowedRootFields = new Set([\"body\", \"linked\", \"claim_state\", \"children\"]);\n const allowedLinkedFields = new Set([\"linked.files\", \"linked.tests\", \"linked.docs\"]);\n const allowedClaimStateFields = new Set([\"claim_state.claimed\", \"claim_state.assignee\", \"claim_state.last_claim\", \"claim_state.last_release\"]);\n const unknown = fields.filter((field) => {\n const normalized = normalizeGetField(field);\n return (\n !itemFields.has(normalized) &&\n !allowedRootFields.has(normalized) &&\n !allowedLinkedFields.has(normalized) &&\n !allowedClaimStateFields.has(normalized)\n );\n });\n if (unknown.length > 0) {\n throw new PmCliError(`Unknown get --fields value(s): ${unknown.join(\", \")}`, EXIT_CODE.USAGE, {\n code: \"unknown_field_projection\",\n examples: [\n \"pm get <id> --fields id,title,status,type,updated_at\",\n \"pm get <id> --fields id,title,claim_state\",\n \"pm get <id> --fields id,title,body,linked.files\",\n ],\n });\n }\n}\n\nfunction projectItemForFields(item: ItemFrontMatter, fields: string[]): Partial<ItemFrontMatter> {\n const source = toItemRecord(item);\n const projected: Record<string, unknown> = {};\n for (const field of fields) {\n const normalized = field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n if (normalized === \"body\" || normalized === \"linked\" || normalized.startsWith(\"linked.\")) {\n continue;\n }\n projected[normalized] = source[normalized];\n }\n return projected as Partial<ItemFrontMatter>;\n}\n\nfunction fieldsInclude(fields: string[] | null, name: string): boolean {\n return fields?.some((field) => field === name || field === `item.${name}`) ?? false;\n}\n\nfunction fieldsIncludeRoot(fields: string[], name: string): boolean {\n return fields.some((field) => field === name || field.startsWith(`${name}.`));\n}\n\ninterface ResolvedGetProjection {\n depth: GetDepth;\n treeDepth: number | undefined;\n fields: string[] | null;\n fieldProjection: boolean;\n}\n\ninterface GetItemContext {\n pmRoot: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeToFolder: Record<string, string>;\n locatedId: string;\n metadata: ItemFrontMatter;\n body: string;\n}\n\nfunction resolveGetProjection(options: GetOptions): ResolvedGetProjection {\n if (options.full && (options.fields !== undefined || options.depth !== undefined)) {\n throw new PmCliError(\"Get projection options are mutually exclusive; remove the extra projection flag and retry.\", EXIT_CODE.USAGE);\n }\n if (options.tree !== true && options.treeDepth !== undefined) {\n throw new PmCliError(\"Get --tree-depth requires --tree\", EXIT_CODE.USAGE);\n }\n return {\n depth: options.full ? \"deep\" : parseGetDepth(options.depth),\n treeDepth: options.tree === true ? parseIntegerLimit(options.treeDepth, \"--tree-depth\") : undefined,\n fields: parseGetFields(options.fields),\n fieldProjection: options.fields !== undefined,\n };\n}\n\nasync function loadGetItemContext(id: string, global: GlobalOptions): Promise<GetItemContext> {\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 typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const loaded = await readLocatedItem(located, { schema: settings.schema });\n return {\n pmRoot,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n locatedId: located.id,\n metadata: loaded.document.metadata,\n body: loaded.document.body,\n };\n}\n\nfunction validateGetProjectionFields(fields: string[] | null, settings: Awaited<ReturnType<typeof readSettings>>): void {\n const runtimeMetadataKeys = resolveRuntimeFieldRegistry(settings.schema).definitions.map((field) => field.metadata_key);\n validateGetFields(fields, runtimeMetadataKeys);\n}\n\nfunction shouldIncludeGetField(params: {\n fieldProjection: boolean;\n depth: GetDepth;\n fields: string[] | null;\n field: \"body\" | \"linked\" | \"claim_state\" | \"children\";\n itemType?: string;\n}): boolean {\n const { fieldProjection, depth, fields, field, itemType } = params;\n if (fieldProjection) {\n if (field === \"body\" || field === \"linked\") {\n return fieldsInclude(fields, field);\n }\n return fieldsIncludeRoot(fields as string[], field);\n }\n if (field === \"children\") {\n return depth !== \"brief\" && CHILD_ROLLUP_TYPES.has(itemType as string);\n }\n return depth !== \"brief\";\n}\n\nasync function resolveGetClaimState(context: GetItemContext, includeClaimState: boolean): Promise<ClaimStateContext | undefined> {\n if (!includeClaimState) {\n return undefined;\n }\n const historyPath = getHistoryPath(context.pmRoot, context.locatedId);\n const history = await readHistoryEntries(historyPath, context.locatedId);\n return resolveClaimStateContext(context.metadata.assignee, history);\n}\n\nfunction attachGetLinked(\n result: GetResult,\n context: GetItemContext,\n fields: string[] | null,\n includeLinked: boolean,\n): void {\n const includeLinkedFiles = includeLinked || fieldsInclude(fields, \"linked.files\");\n const includeLinkedTests = includeLinked || fieldsInclude(fields, \"linked.tests\");\n const includeLinkedDocs = includeLinked || fieldsInclude(fields, \"linked.docs\");\n if (!includeLinked && !includeLinkedFiles && !includeLinkedTests && !includeLinkedDocs) {\n return;\n }\n result.linked = {\n files: includeLinkedFiles ? context.metadata.files ?? [] : [],\n tests: includeLinkedTests ? context.metadata.tests ?? [] : [],\n docs: includeLinkedDocs ? context.metadata.docs ?? [] : [],\n };\n}\n\nasync function buildGetChildrenRollup(context: GetItemContext, includeChildren: boolean): Promise<ChildRollupContext | undefined> {\n if (!includeChildren) {\n return undefined;\n }\n const statusRegistry = resolveRuntimeStatusRegistry(context.settings.schema);\n const corpus = await listAllFrontMatterLight(\n context.pmRoot,\n context.settings.item_format,\n context.typeToFolder,\n undefined,\n context.settings.schema,\n );\n const byStatus: Record<string, number> = {};\n let active = 0;\n let count = 0;\n const locatedId = context.locatedId.trim().toLowerCase();\n for (const candidate of corpus) {\n const parentId = typeof candidate.parent === \"string\" ? candidate.parent.trim().toLowerCase() : \"\";\n if (parentId !== locatedId) continue;\n const candidateStatus = candidate.status.trim().toLowerCase();\n count += 1;\n byStatus[candidateStatus] = (byStatus[candidateStatus] ?? 0) + 1;\n if (!isTerminalStatus(candidateStatus, statusRegistry)) {\n active += 1;\n }\n }\n return { count, active, by_status: byStatus };\n}\n\nasync function buildGetTree(\n context: GetItemContext,\n options: GetOptions,\n treeDepth: number | undefined,\n global: GlobalOptions,\n): Promise<GetResult[\"tree\"] | undefined> {\n if (options.tree !== true) {\n return undefined;\n }\n const subtree = await runList(\n undefined,\n {\n parent: context.locatedId,\n tree: true,\n treeDepth: treeDepth === undefined ? undefined : String(treeDepth),\n full: true,\n },\n global,\n );\n return {\n root_id: context.locatedId,\n root_title: context.metadata.title,\n depth_limit: treeDepth ?? null,\n count: subtree.count,\n items: subtree.items.map((entry) => toItemRecord(entry)),\n };\n}\n\n/**\n * Implements run get for the public runtime surface of this module.\n */\nexport async function runGet(id: string, global: GlobalOptions, options: GetOptions = {}): Promise<GetResult> {\n const projection = resolveGetProjection(options);\n const context = await loadGetItemContext(id, global);\n validateGetProjectionFields(projection.fields, context.settings);\n const includeBody = shouldIncludeGetField({ ...projection, field: \"body\" });\n const includeLinked = shouldIncludeGetField({ ...projection, field: \"linked\" });\n const includeClaimState = shouldIncludeGetField({ ...projection, field: \"claim_state\" });\n const itemType = context.metadata.type.trim().toLowerCase();\n const includeChildren = shouldIncludeGetField({ ...projection, field: \"children\", itemType });\n const claimState = await resolveGetClaimState(context, includeClaimState);\n const result: GetResult = {\n item: projection.fieldProjection\n ? projectItemForFields(context.metadata, projection.fields as string[])\n : projectItemForDepth(context.metadata, projection.depth),\n };\n if (includeBody) {\n result.item.body = context.body;\n }\n attachGetLinked(result, context, projection.fields, includeLinked);\n if (claimState) {\n result.claim_state = claimState;\n }\n result.children = await buildGetChildrenRollup(context, includeChildren);\n result.tree = await buildGetTree(context, options, projection.treeDepth, global);\n return result;\n}\n"],"names":[],"mappings":"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","debugId":"9098e493-bd2c-5718-be4f-0f181a9fd126"}
@@ -1,40 +1,43 @@
1
1
  import {
2
2
  readHistoryEntries
3
- } from "./chunk-EB4BBEZD.js";
4
- import "./chunk-HL742IBM.js";
3
+ } from "./chunk-3Y4OESPP.js";
4
+ import "./chunk-D3UCE7RW.js";
5
5
  import {
6
6
  runList
7
- } from "./chunk-A222YWOQ.js";
7
+ } from "./chunk-7EQNAZX2.js";
8
8
  import "./chunk-R23CSHGI.js";
9
- import "./chunk-724VLYDJ.js";
9
+ import "./chunk-RX3HQSYG.js";
10
10
  import {
11
11
  parseIntegerLimit
12
- } from "./chunk-3MLQZI3H.js";
12
+ } from "./chunk-EEY54JMF.js";
13
13
  import {
14
14
  buildItemNotFoundError,
15
15
  listAllFrontMatterLight,
16
16
  locateItem,
17
17
  readLocatedItem,
18
18
  toItemRecord
19
- } from "./chunk-CN4OAA2G.js";
19
+ } from "./chunk-3U3VEWK6.js";
20
20
  import {
21
21
  isTerminalStatus
22
- } from "./chunk-CQFZRLXQ.js";
23
- import "./chunk-MZG6I2Q2.js";
22
+ } from "./chunk-EZFKWSC7.js";
23
+ import "./chunk-DRBV5UC2.js";
24
24
  import {
25
- EXIT_CODE,
26
- FRONT_MATTER_KEY_ORDER,
27
25
  PmCliError,
28
26
  getActiveExtensionRegistrations,
27
+ readSettings
28
+ } from "./chunk-P5YORJRH.js";
29
+ import "./chunk-7C2O74AE.js";
30
+ import {
31
+ EXIT_CODE,
32
+ FRONT_MATTER_KEY_ORDER,
29
33
  getHistoryPath,
30
34
  getSettingsPath,
31
35
  pathExists,
32
- readSettings,
33
36
  resolveItemTypeRegistry,
34
37
  resolvePmRoot,
35
38
  resolveRuntimeFieldRegistry,
36
39
  resolveRuntimeStatusRegistry
37
- } from "./chunk-BDDYM4LH.js";
40
+ } from "./chunk-5VVUKE3U.js";
38
41
 
39
42
  // dist/cli/commands/get.js
40
43
  !(function() {
@@ -280,4 +283,4 @@ async function runGet(id, global2, options = {}) {
280
283
  export {
281
284
  runGet
282
285
  };
283
- //# sourceMappingURL=get-KJTKGNEQ.js.map
286
+ //# sourceMappingURL=get-P4ZQXCPZ.js.map
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../../../cli/commands/get.ts"],
4
4
  "sourcesContent": ["/**\n * @module cli/commands/get\n *\n * Implements the pm get command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { getActiveExtensionRegistrations } from \"../../core/extensions/index.js\";\nimport { toItemRecord } from \"../../core/item/item-record.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { resolveRuntimeFieldRegistry, resolveRuntimeStatusRegistry } from \"../../core/schema/runtime-schema.js\";\nimport { isTerminalStatus } from \"../../core/item/status.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 { buildItemNotFoundError, listAllFrontMatterLight, locateItem, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getHistoryPath, getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { parseIntegerLimit } from \"../shared-parsers.js\";\nimport type { ItemFrontMatter, LinkedDoc, LinkedFile, LinkedTest } from \"../../types/index.js\";\nimport { readHistoryEntries } from \"./history.js\";\nimport { runList } from \"./list.js\";\n\ninterface ClaimHistoryContext {\n ts: string;\n author: string;\n message: string | null;\n}\n\ninterface ClaimHistoryEntry {\n op: string;\n ts: string;\n author: string;\n message?: string;\n}\n\ninterface ClaimStateContext {\n claimed: boolean;\n assignee: string | null;\n last_claim: ClaimHistoryContext | null;\n last_release: ClaimHistoryContext | null;\n}\n\ninterface ChildRollupContext {\n count: number;\n active: number;\n by_status: Record<string, number>;\n}\n\n// GH-155 (pm-gcm3): only container types get the inline child rollup so leaf\n// item reads keep avoiding the corpus scan that the rollup requires.\nconst CHILD_ROLLUP_TYPES = new Set([\"milestone\", \"epic\"]);\n\n/**\n * Documents the get result payload exchanged by command, SDK, and package integrations.\n */\nexport interface GetResult {\n // `body` lives inside `item` (alongside `description`/`acceptance_criteria`)\n // for parity with `pm list --include-body`, so agents reliably find it at\n // `.item.body` in JSON output instead of a top-level sibling.\n item: Partial<ItemFrontMatter> & { body?: string };\n linked?: {\n files: LinkedFile[];\n tests: LinkedTest[];\n docs: LinkedDoc[];\n };\n claim_state?: ClaimStateContext;\n children?: ChildRollupContext;\n tree?: {\n root_id: string;\n root_title: string | null;\n depth_limit: number | null;\n count: number;\n items: Record<string, unknown>[];\n };\n}\n\nconst GET_DEPTH_VALUES = [\"brief\", \"standard\", \"deep\"] as const;\n\ntype GetDepth = (typeof GET_DEPTH_VALUES)[number];\n\n/**\n * Documents the get options payload exchanged by command, SDK, and package integrations.\n */\nexport interface GetOptions {\n depth?: string;\n fields?: string;\n full?: boolean;\n tree?: boolean;\n treeDepth?: string;\n}\n\nfunction toClaimHistoryContext(\n entry: ClaimHistoryEntry,\n): ClaimHistoryContext {\n return {\n ts: entry.ts,\n author: entry.author,\n message: entry.message ?? null,\n };\n}\n\nfunction resolveClaimStateContext(\n assigneeValue: string | undefined,\n history: ClaimHistoryEntry[],\n): ClaimStateContext {\n const assignee = assigneeValue?.trim();\n const normalizedAssignee = assignee && assignee.length > 0 ? assignee : null;\n const lastClaim = [...history].reverse().find((entry) => entry.op === \"claim\");\n const lastRelease = [...history].reverse().find((entry) => entry.op === \"release\");\n return {\n claimed: normalizedAssignee !== null,\n assignee: normalizedAssignee,\n last_claim: lastClaim ? toClaimHistoryContext(lastClaim) : null,\n last_release: lastRelease ? toClaimHistoryContext(lastRelease) : null,\n };\n}\n\nfunction parseGetDepth(raw: string | undefined): GetDepth {\n if (raw === undefined || raw.trim().length === 0) {\n return \"standard\";\n }\n const normalized = raw.trim().toLowerCase();\n if (normalized === \"full\") {\n return \"deep\";\n }\n if (GET_DEPTH_VALUES.includes(normalized as GetDepth)) {\n return normalized as GetDepth;\n }\n throw new PmCliError(\"Get --depth must be one of brief|standard|deep|full\", EXIT_CODE.USAGE);\n}\n\nfunction projectItemForDepth(item: ItemFrontMatter, depth: GetDepth): Partial<ItemFrontMatter> {\n if (depth === \"deep\") {\n return item;\n }\n const {\n comments: _comments,\n notes: _notes,\n learnings: _learnings,\n files: _files,\n tests: _tests,\n docs: _docs,\n reminders: _reminders,\n events: _events,\n ...projected\n } = item;\n return projected;\n}\n\nfunction parseGetFields(raw: string | undefined): string[] | null {\n if (raw === undefined) {\n return null;\n }\n const fields = raw\n .split(\",\")\n .map((entry) => entry.trim())\n .filter((entry) => entry.length > 0);\n if (fields.length === 0) {\n throw new PmCliError(\"Get --fields requires a comma-separated list of field names\", EXIT_CODE.USAGE);\n }\n return fields;\n}\n\nfunction normalizeGetField(field: string): string {\n return field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n}\n\nfunction validateGetFields(fields: string[] | null, runtimeMetadataKeys: Iterable<string>): void {\n if (fields === null) {\n return;\n }\n const itemFields = new Set([...FRONT_MATTER_KEY_ORDER, ...runtimeMetadataKeys]);\n const allowedRootFields = new Set([\"body\", \"linked\", \"claim_state\", \"children\"]);\n const allowedLinkedFields = new Set([\"linked.files\", \"linked.tests\", \"linked.docs\"]);\n const allowedClaimStateFields = new Set([\"claim_state.claimed\", \"claim_state.assignee\", \"claim_state.last_claim\", \"claim_state.last_release\"]);\n const unknown = fields.filter((field) => {\n const normalized = normalizeGetField(field);\n return (\n !itemFields.has(normalized) &&\n !allowedRootFields.has(normalized) &&\n !allowedLinkedFields.has(normalized) &&\n !allowedClaimStateFields.has(normalized)\n );\n });\n if (unknown.length > 0) {\n throw new PmCliError(`Unknown get --fields value(s): ${unknown.join(\", \")}`, EXIT_CODE.USAGE, {\n code: \"unknown_field_projection\",\n examples: [\n \"pm get <id> --fields id,title,status,type,updated_at\",\n \"pm get <id> --fields id,title,claim_state\",\n \"pm get <id> --fields id,title,body,linked.files\",\n ],\n });\n }\n}\n\nfunction projectItemForFields(item: ItemFrontMatter, fields: string[]): Partial<ItemFrontMatter> {\n const source = toItemRecord(item);\n const projected: Record<string, unknown> = {};\n for (const field of fields) {\n const normalized = field.startsWith(\"item.\") ? field.slice(\"item.\".length) : field;\n if (normalized === \"body\" || normalized === \"linked\" || normalized.startsWith(\"linked.\")) {\n continue;\n }\n projected[normalized] = source[normalized];\n }\n return projected as Partial<ItemFrontMatter>;\n}\n\nfunction fieldsInclude(fields: string[] | null, name: string): boolean {\n return fields?.some((field) => field === name || field === `item.${name}`) ?? false;\n}\n\nfunction fieldsIncludeRoot(fields: string[], name: string): boolean {\n return fields.some((field) => field === name || field.startsWith(`${name}.`));\n}\n\ninterface ResolvedGetProjection {\n depth: GetDepth;\n treeDepth: number | undefined;\n fields: string[] | null;\n fieldProjection: boolean;\n}\n\ninterface GetItemContext {\n pmRoot: string;\n settings: Awaited<ReturnType<typeof readSettings>>;\n typeToFolder: Record<string, string>;\n locatedId: string;\n metadata: ItemFrontMatter;\n body: string;\n}\n\nfunction resolveGetProjection(options: GetOptions): ResolvedGetProjection {\n if (options.full && (options.fields !== undefined || options.depth !== undefined)) {\n throw new PmCliError(\"Get projection options are mutually exclusive; remove the extra projection flag and retry.\", EXIT_CODE.USAGE);\n }\n if (options.tree !== true && options.treeDepth !== undefined) {\n throw new PmCliError(\"Get --tree-depth requires --tree\", EXIT_CODE.USAGE);\n }\n return {\n depth: options.full ? \"deep\" : parseGetDepth(options.depth),\n treeDepth: options.tree === true ? parseIntegerLimit(options.treeDepth, \"--tree-depth\") : undefined,\n fields: parseGetFields(options.fields),\n fieldProjection: options.fields !== undefined,\n };\n}\n\nasync function loadGetItemContext(id: string, global: GlobalOptions): Promise<GetItemContext> {\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 typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const located = await locateItem(pmRoot, id, settings.id_prefix, settings.item_format, typeRegistry.type_to_folder);\n if (!located) {\n throw await buildItemNotFoundError(pmRoot, id, settings.id_prefix, typeRegistry.type_to_folder);\n }\n const loaded = await readLocatedItem(located, { schema: settings.schema });\n return {\n pmRoot,\n settings,\n typeToFolder: typeRegistry.type_to_folder,\n locatedId: located.id,\n metadata: loaded.document.metadata,\n body: loaded.document.body,\n };\n}\n\nfunction validateGetProjectionFields(fields: string[] | null, settings: Awaited<ReturnType<typeof readSettings>>): void {\n const runtimeMetadataKeys = resolveRuntimeFieldRegistry(settings.schema).definitions.map((field) => field.metadata_key);\n validateGetFields(fields, runtimeMetadataKeys);\n}\n\nfunction shouldIncludeGetField(params: {\n fieldProjection: boolean;\n depth: GetDepth;\n fields: string[] | null;\n field: \"body\" | \"linked\" | \"claim_state\" | \"children\";\n itemType?: string;\n}): boolean {\n const { fieldProjection, depth, fields, field, itemType } = params;\n if (fieldProjection) {\n if (field === \"body\" || field === \"linked\") {\n return fieldsInclude(fields, field);\n }\n return fieldsIncludeRoot(fields as string[], field);\n }\n if (field === \"children\") {\n return depth !== \"brief\" && CHILD_ROLLUP_TYPES.has(itemType as string);\n }\n return depth !== \"brief\";\n}\n\nasync function resolveGetClaimState(context: GetItemContext, includeClaimState: boolean): Promise<ClaimStateContext | undefined> {\n if (!includeClaimState) {\n return undefined;\n }\n const historyPath = getHistoryPath(context.pmRoot, context.locatedId);\n const history = await readHistoryEntries(historyPath, context.locatedId);\n return resolveClaimStateContext(context.metadata.assignee, history);\n}\n\nfunction attachGetLinked(\n result: GetResult,\n context: GetItemContext,\n fields: string[] | null,\n includeLinked: boolean,\n): void {\n const includeLinkedFiles = includeLinked || fieldsInclude(fields, \"linked.files\");\n const includeLinkedTests = includeLinked || fieldsInclude(fields, \"linked.tests\");\n const includeLinkedDocs = includeLinked || fieldsInclude(fields, \"linked.docs\");\n if (!includeLinked && !includeLinkedFiles && !includeLinkedTests && !includeLinkedDocs) {\n return;\n }\n result.linked = {\n files: includeLinkedFiles ? context.metadata.files ?? [] : [],\n tests: includeLinkedTests ? context.metadata.tests ?? [] : [],\n docs: includeLinkedDocs ? context.metadata.docs ?? [] : [],\n };\n}\n\nasync function buildGetChildrenRollup(context: GetItemContext, includeChildren: boolean): Promise<ChildRollupContext | undefined> {\n if (!includeChildren) {\n return undefined;\n }\n const statusRegistry = resolveRuntimeStatusRegistry(context.settings.schema);\n const corpus = await listAllFrontMatterLight(\n context.pmRoot,\n context.settings.item_format,\n context.typeToFolder,\n undefined,\n context.settings.schema,\n );\n const byStatus: Record<string, number> = {};\n let active = 0;\n let count = 0;\n const locatedId = context.locatedId.trim().toLowerCase();\n for (const candidate of corpus) {\n const parentId = typeof candidate.parent === \"string\" ? candidate.parent.trim().toLowerCase() : \"\";\n if (parentId !== locatedId) continue;\n const candidateStatus = candidate.status.trim().toLowerCase();\n count += 1;\n byStatus[candidateStatus] = (byStatus[candidateStatus] ?? 0) + 1;\n if (!isTerminalStatus(candidateStatus, statusRegistry)) {\n active += 1;\n }\n }\n return { count, active, by_status: byStatus };\n}\n\nasync function buildGetTree(\n context: GetItemContext,\n options: GetOptions,\n treeDepth: number | undefined,\n global: GlobalOptions,\n): Promise<GetResult[\"tree\"] | undefined> {\n if (options.tree !== true) {\n return undefined;\n }\n const subtree = await runList(\n undefined,\n {\n parent: context.locatedId,\n tree: true,\n treeDepth: treeDepth === undefined ? undefined : String(treeDepth),\n full: true,\n },\n global,\n );\n return {\n root_id: context.locatedId,\n root_title: context.metadata.title,\n depth_limit: treeDepth ?? null,\n count: subtree.count,\n items: subtree.items.map((entry) => toItemRecord(entry)),\n };\n}\n\n/**\n * Implements run get for the public runtime surface of this module.\n */\nexport async function runGet(id: string, global: GlobalOptions, options: GetOptions = {}): Promise<GetResult> {\n const projection = resolveGetProjection(options);\n const context = await loadGetItemContext(id, global);\n validateGetProjectionFields(projection.fields, context.settings);\n const includeBody = shouldIncludeGetField({ ...projection, field: \"body\" });\n const includeLinked = shouldIncludeGetField({ ...projection, field: \"linked\" });\n const includeClaimState = shouldIncludeGetField({ ...projection, field: \"claim_state\" });\n const itemType = context.metadata.type.trim().toLowerCase();\n const includeChildren = shouldIncludeGetField({ ...projection, field: \"children\", itemType });\n const claimState = await resolveGetClaimState(context, includeClaimState);\n const result: GetResult = {\n item: projection.fieldProjection\n ? projectItemForFields(context.metadata, projection.fields as string[])\n : projectItemForDepth(context.metadata, projection.depth),\n };\n if (includeBody) {\n result.item.body = context.body;\n }\n attachGetLinked(result, context, projection.fields, includeLinked);\n if (claimState) {\n result.claim_state = claimState;\n }\n result.children = await buildGetChildrenRollup(context, includeChildren);\n result.tree = await buildGetTree(context, options, projection.treeDepth, global);\n return result;\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["global"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4e0ed066-de64-5211-9b4a-be33f25e4d08")}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]="62634d0f-673a-5003-a921-d9c65bc0a872")}catch(e){}}();
3
3
  import {
4
4
  buildRemediationMap
5
5
  } from "./chunk-R2EMWY7Q.js";
@@ -8,25 +8,16 @@ import {
8
8
  } from "./chunk-37E72CNS.js";
9
9
  import {
10
10
  scanHistoryDrift
11
- } from "./chunk-ZZWMJVW2.js";
12
- import {
13
- collectStaleVectorizationIds
14
- } from "./chunk-ROGZTCCB.js";
15
- import "./chunk-Y2VSCQ77.js";
11
+ } from "./chunk-TT42JUMF.js";
12
+ import "./chunk-BFVHCAOO.js";
16
13
  import {
17
14
  PM_TELEMETRY_SOURCE_CONTEXT_VALUES,
18
15
  TELEMETRY_MAX_QUEUE_ENTRY_ATTEMPTS,
19
16
  TELEMETRY_SCHEMA_VERSION
20
- } from "./chunk-PV5JS7MP.js";
17
+ } from "./chunk-P3VRG72Q.js";
21
18
  import {
22
- buildCapabilityContractMetadata,
23
- buildRegistrationCollisionRemediation,
24
- collectUnknownCapabilityGuidance,
25
- readManagedExtensionState
26
- } from "./chunk-J4KNRDI3.js";
27
- import "./chunk-P4SESZGT.js";
28
- import "./chunk-YZWXMDNH.js";
29
- import "./chunk-YZR7UMZ6.js";
19
+ collectStaleVectorizationIds
20
+ } from "./chunk-ROGZTCCB.js";
30
21
  import {
31
22
  buildVectorizationEmbeddingIdentity,
32
23
  hasVectorizationEmbeddingIdentityChanged,
@@ -36,46 +27,62 @@ import {
36
27
  resolveProviderConfigSource,
37
28
  resolveSettingsWithSemanticRuntimeDefaults,
38
29
  resolveVectorStores
39
- } from "./chunk-XQCWTSLO.js";
40
- import "./chunk-M34MVAOP.js";
41
- import "./chunk-6QY2NA2M.js";
42
- import "./chunk-LLQLLAKU.js";
30
+ } from "./chunk-7QH7DHUB.js";
31
+ import {
32
+ buildCapabilityContractMetadata,
33
+ buildRegistrationCollisionRemediation,
34
+ collectUnknownCapabilityGuidance,
35
+ readManagedExtensionState
36
+ } from "./chunk-JFCVQXZX.js";
37
+ import "./chunk-K32L7HZO.js";
38
+ import "./chunk-OK5NXCZB.js";
39
+ import "./chunk-53BTLLAF.js";
40
+ import "./chunk-P4SESZGT.js";
41
+ import "./chunk-FUM6UMY4.js";
42
+ import "./chunk-PPE4YUQM.js";
43
+ import "./chunk-AAEQMOC6.js";
44
+ import "./chunk-PJ3A56YF.js";
43
45
  import {
44
46
  collectRegisteredItemFieldNames,
45
47
  enforceHistoryStreamPolicyForItems,
46
48
  listAllFrontMatter,
47
49
  listAllFrontMatterWithBody
48
- } from "./chunk-UYLA5ROU.js";
50
+ } from "./chunk-57C2RLW5.js";
51
+ import "./chunk-ZAHXPXVY.js";
49
52
  import {
50
53
  effectiveItemFormatVersion,
51
54
  findFirstMergeConflictMarker,
52
55
  parseItemDocument,
53
56
  scanItemFormatVersions
54
- } from "./chunk-AOP2EMK3.js";
57
+ } from "./chunk-HK72NWAD.js";
55
58
  import {
56
59
  nowIso
57
- } from "./chunk-FMWQRMHS.js";
60
+ } from "./chunk-FJRKQREY.js";
61
+ import {
62
+ PmCliError,
63
+ getActiveExtensionRegistrations,
64
+ readSettingsWithMetadata,
65
+ runActiveOnReadHooks
66
+ } from "./chunk-US3T3W5J.js";
67
+ import "./chunk-NER3KUUS.js";
68
+ import "./chunk-NNHHXJB2.js";
58
69
  import {
59
70
  EXIT_CODE,
60
71
  ITEM_FILE_EXTENSIONS,
61
72
  KNOWN_EXTENSION_CAPABILITIES,
62
73
  PM_CORE_REQUIRED_SUBDIRS,
63
74
  PM_OPTIONAL_TYPE_SUBDIRS,
64
- PmCliError,
65
75
  activateExtensions,
66
- getActiveExtensionRegistrations,
67
76
  getItemFormatFromPath,
68
77
  getSettingsPath,
69
78
  loadExtensions,
70
79
  pathExists,
71
80
  readFileIfExists,
72
- readSettingsWithMetadata,
73
81
  resolveGlobalPmRoot,
74
82
  resolveItemTypeRegistry,
75
83
  resolvePmRoot,
76
- runActiveOnReadHooks,
77
84
  toNonEmptyStringOrUndefined
78
- } from "./chunk-SL2ANJSV.js";
85
+ } from "./chunk-YD5FML7K.js";
79
86
 
80
87
  // dist/cli/commands/health.js
81
88
  import fs from "node:fs/promises";
@@ -1600,6 +1607,6 @@ export {
1600
1607
  _testOnlyHealthCommand,
1601
1608
  runHealth
1602
1609
  };
1603
- //# sourceMappingURL=health-32UQICEL.js.map
1610
+ //# sourceMappingURL=health-3GVPMQBL.js.map
1604
1611
 
1605
- //# debugId=4e0ed066-de64-5211-9b4a-be33f25e4d08
1612
+ //# debugId=62634d0f-673a-5003-a921-d9c65bc0a872