@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
@@ -0,0 +1,241 @@
1
+ import {
2
+ PmCliError
3
+ } from "./chunk-P5YORJRH.js";
4
+ import {
5
+ EXIT_CODE,
6
+ isPathWithinDirectory,
7
+ pathExists
8
+ } from "./chunk-5VVUKE3U.js";
9
+
10
+ // dist/core/packages/manifest.js
11
+ import fs from "node:fs/promises";
12
+ import path from "node:path";
13
+ !(function() {
14
+ try {
15
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
16
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7abddddb-c56b-5fe9-9516-908b8fbc75db");
17
+ } catch (e2) {
18
+ }
19
+ })();
20
+ var PM_PACKAGE_RESOURCE_KINDS = [
21
+ "extensions",
22
+ "docs",
23
+ "examples",
24
+ "assets",
25
+ "prompts"
26
+ ];
27
+ var PM_PACKAGE_CONVENTIONAL_RESOURCE_ROOTS = Object.freeze({
28
+ extensions: Object.freeze([
29
+ ".agents/pm/extensions",
30
+ "extensions",
31
+ ".custom/pm-extensions",
32
+ ".custom/pm-extension"
33
+ ]),
34
+ docs: Object.freeze([
35
+ "docs",
36
+ "documentation"
37
+ ]),
38
+ examples: Object.freeze([
39
+ "examples",
40
+ "docs/examples"
41
+ ]),
42
+ assets: Object.freeze([
43
+ "assets",
44
+ ".agents/pm/assets"
45
+ ]),
46
+ prompts: Object.freeze([
47
+ "prompts",
48
+ ".agents/pm/prompts"
49
+ ])
50
+ });
51
+ function isKnownPackageResourceKind(value) {
52
+ return PM_PACKAGE_RESOURCE_KINDS.includes(value);
53
+ }
54
+ function normalizePackageResourceEntries(kind, raw) {
55
+ if (raw === void 0 || raw === null) {
56
+ return [];
57
+ }
58
+ const entries = Array.isArray(raw) ? raw : [raw];
59
+ const normalized = [];
60
+ for (const entry of entries) {
61
+ if (typeof entry !== "string" || entry.trim().length === 0) {
62
+ throw new PmCliError(`Package manifest field pm.${kind} must contain string paths.`, EXIT_CODE.USAGE);
63
+ }
64
+ normalized.push(entry.trim());
65
+ }
66
+ return [...new Set(normalized)].sort((left, right) => left.localeCompare(right));
67
+ }
68
+ function normalizePackageResourceMap(raw) {
69
+ if (raw === void 0 || raw === null) {
70
+ return {};
71
+ }
72
+ if (typeof raw !== "object" || Array.isArray(raw)) {
73
+ throw new PmCliError("Package manifest field pm must be an object.", EXIT_CODE.USAGE);
74
+ }
75
+ const resources = {};
76
+ const candidate = raw;
77
+ for (const [key, value] of Object.entries(candidate)) {
78
+ if (!isKnownPackageResourceKind(key)) {
79
+ continue;
80
+ }
81
+ const entries = normalizePackageResourceEntries(key, value);
82
+ if (entries.length > 0) {
83
+ resources[key] = entries;
84
+ }
85
+ }
86
+ return resources;
87
+ }
88
+ function readStringField(source, key) {
89
+ const value = source[key];
90
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
91
+ }
92
+ function normalizeStringArray(raw) {
93
+ if (!Array.isArray(raw)) {
94
+ return void 0;
95
+ }
96
+ const values = raw.map((value) => typeof value === "string" ? value.trim() : "").filter((value) => value.length > 0);
97
+ return values.length > 0 ? [...new Set(values)].sort((left, right) => left.localeCompare(right)) : void 0;
98
+ }
99
+ function readUrlLikeField(raw) {
100
+ if (typeof raw === "string" && raw.trim().length > 0) {
101
+ return raw.trim();
102
+ }
103
+ if (typeof raw === "object" && raw !== null && !Array.isArray(raw)) {
104
+ const value = raw.url;
105
+ return typeof value === "string" && value.trim().length > 0 ? value.trim() : void 0;
106
+ }
107
+ return void 0;
108
+ }
109
+ function normalizeCatalogLinks(raw) {
110
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
111
+ return void 0;
112
+ }
113
+ const source = raw;
114
+ const links = {
115
+ docs: readStringField(source, "docs"),
116
+ npm: readStringField(source, "npm"),
117
+ repository: readStringField(source, "repository"),
118
+ report: readStringField(source, "report")
119
+ };
120
+ return Object.values(links).some((value) => typeof value === "string") ? links : void 0;
121
+ }
122
+ function normalizeCatalogMedia(raw) {
123
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
124
+ return void 0;
125
+ }
126
+ const source = raw;
127
+ const media = {
128
+ image: readStringField(source, "image"),
129
+ video: readStringField(source, "video")
130
+ };
131
+ return Object.values(media).some((value) => typeof value === "string") ? media : void 0;
132
+ }
133
+ function normalizePackageCatalogMetadata(raw) {
134
+ if (typeof raw !== "object" || raw === null || Array.isArray(raw)) {
135
+ return void 0;
136
+ }
137
+ const source = raw;
138
+ const catalog = {
139
+ display_name: readStringField(source, "display_name") ?? readStringField(source, "displayName"),
140
+ category: readStringField(source, "category"),
141
+ summary: readStringField(source, "summary"),
142
+ links: normalizeCatalogLinks(source.links),
143
+ media: normalizeCatalogMedia(source.media),
144
+ tags: normalizeStringArray(source.tags)
145
+ };
146
+ return Object.values(catalog).some((value) => value !== void 0) ? catalog : void 0;
147
+ }
148
+ async function readPmPackageManifest(packageRoot) {
149
+ const packageJsonPath = path.join(packageRoot, "package.json");
150
+ if (!await pathExists(packageJsonPath)) {
151
+ return {
152
+ source: "convention",
153
+ resources: {}
154
+ };
155
+ }
156
+ let parsed;
157
+ try {
158
+ parsed = JSON.parse(await fs.readFile(packageJsonPath, "utf8"));
159
+ } catch (error) {
160
+ throw new PmCliError(`Failed to parse package manifest at "${packageJsonPath}": ${String(error)}`, EXIT_CODE.USAGE);
161
+ }
162
+ if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
163
+ throw new PmCliError(`Package manifest at "${packageJsonPath}" must be a JSON object.`, EXIT_CODE.USAGE);
164
+ }
165
+ const packageJson = parsed;
166
+ const pmManifest = packageJson.pm;
167
+ const hasPmManifest = pmManifest !== void 0 && pmManifest !== null;
168
+ const pmManifestRecord = typeof pmManifest === "object" && pmManifest !== null && !Array.isArray(pmManifest) ? pmManifest : {};
169
+ return {
170
+ source: hasPmManifest ? "pm" : "convention",
171
+ package_json_path: packageJsonPath,
172
+ package_name: typeof packageJson.name === "string" ? packageJson.name : void 0,
173
+ package_version: typeof packageJson.version === "string" ? packageJson.version : void 0,
174
+ package_private: packageJson.private === true,
175
+ package_description: typeof packageJson.description === "string" ? packageJson.description : void 0,
176
+ package_keywords: normalizeStringArray(packageJson.keywords),
177
+ package_homepage: typeof packageJson.homepage === "string" ? packageJson.homepage : void 0,
178
+ package_repository_url: readUrlLikeField(packageJson.repository),
179
+ package_bugs_url: readUrlLikeField(packageJson.bugs),
180
+ aliases: normalizeStringArray(pmManifestRecord.aliases),
181
+ resources: normalizePackageResourceMap(pmManifest),
182
+ catalog: normalizePackageCatalogMetadata(pmManifestRecord.catalog)
183
+ };
184
+ }
185
+ async function listExtensionManifestDirectories(parentDirectory) {
186
+ if (!await pathExists(parentDirectory)) {
187
+ return [];
188
+ }
189
+ const entries = await fs.readdir(parentDirectory, { withFileTypes: true });
190
+ const candidates = [];
191
+ for (const entry of entries) {
192
+ if (!entry.isDirectory()) {
193
+ continue;
194
+ }
195
+ const directory = path.join(parentDirectory, entry.name);
196
+ if (await pathExists(path.join(directory, "manifest.json"))) {
197
+ candidates.push(directory);
198
+ }
199
+ }
200
+ return candidates.sort((left, right) => left.localeCompare(right));
201
+ }
202
+ async function collectPackageExtensionDirectories(packageRoot) {
203
+ if (await pathExists(path.join(packageRoot, "manifest.json"))) {
204
+ return [packageRoot];
205
+ }
206
+ const manifest = await readPmPackageManifest(packageRoot);
207
+ const manifestEntries = manifest.resources.extensions ?? [];
208
+ const discovered = /* @__PURE__ */ new Set();
209
+ for (const entry of manifestEntries) {
210
+ if (entry.includes("*") || entry.startsWith("!")) {
211
+ throw new PmCliError(`Package extension entry "${entry}" uses a glob/exclusion pattern. pm package installs currently require concrete extension paths or directories.`, EXIT_CODE.USAGE);
212
+ }
213
+ const absolute = path.resolve(packageRoot, entry);
214
+ if (!isPathWithinDirectory(packageRoot, absolute)) {
215
+ throw new PmCliError(`Package extension entry "${entry}" resolves outside package root.`, EXIT_CODE.USAGE);
216
+ }
217
+ if (await pathExists(path.join(absolute, "manifest.json"))) {
218
+ discovered.add(absolute);
219
+ continue;
220
+ }
221
+ for (const child of await listExtensionManifestDirectories(absolute)) {
222
+ discovered.add(child);
223
+ }
224
+ }
225
+ if (manifestEntries.length === 0) {
226
+ for (const root of PM_PACKAGE_CONVENTIONAL_RESOURCE_ROOTS.extensions) {
227
+ for (const child of await listExtensionManifestDirectories(path.join(packageRoot, root))) {
228
+ discovered.add(child);
229
+ }
230
+ }
231
+ }
232
+ return [...discovered].sort((left, right) => left.localeCompare(right));
233
+ }
234
+
235
+ export {
236
+ PM_PACKAGE_RESOURCE_KINDS,
237
+ PM_PACKAGE_CONVENTIONAL_RESOURCE_ROOTS,
238
+ readPmPackageManifest,
239
+ collectPackageExtensionDirectories
240
+ };
241
+ //# sourceMappingURL=chunk-ZVDL32GJ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../core/packages/manifest.ts"],
4
+ "sourcesContent": ["/**\n * @module core/packages/manifest\n *\n * Discovers and validates pm package manifests for Manifest.\n */\nimport fs from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { pathExists } from \"../fs/fs-utils.js\";\nimport { isPathWithinDirectory } from \"../fs/path-utils.js\";\nimport { EXIT_CODE } from \"../shared/constants.js\";\nimport { PmCliError } from \"../shared/errors.js\";\n\nexport const PM_PACKAGE_RESOURCE_KINDS = [\n \"extensions\",\n \"docs\",\n \"examples\",\n \"assets\",\n \"prompts\",\n] as const;\n\n/**\n * Restricts pm package resource kind values accepted by command, SDK, and storage contracts.\n */\nexport type PmPackageResourceKind = (typeof PM_PACKAGE_RESOURCE_KINDS)[number];\n\n/**\n * Restricts pm package resource map values accepted by command, SDK, and storage contracts.\n */\nexport type PmPackageResourceMap = Partial<Record<PmPackageResourceKind, string[]>>;\n\n/**\n * Documents the pm package catalog link map payload exchanged by command, SDK, and package integrations.\n */\nexport interface PmPackageCatalogLinkMap {\n docs?: string;\n npm?: string;\n repository?: string;\n report?: string;\n}\n\n/**\n * Documents the pm package catalog media map payload exchanged by command, SDK, and package integrations.\n */\nexport interface PmPackageCatalogMediaMap {\n image?: string;\n video?: string;\n}\n\n/**\n * Documents the pm package catalog metadata payload exchanged by command, SDK, and package integrations.\n */\nexport interface PmPackageCatalogMetadata {\n display_name?: string;\n category?: string;\n summary?: string;\n links?: PmPackageCatalogLinkMap;\n media?: PmPackageCatalogMediaMap;\n tags?: string[];\n}\n\n/**\n * Documents the pm package manifest payload exchanged by command, SDK, and package integrations.\n */\nexport interface PmPackageManifest {\n source: \"pm\" | \"convention\";\n package_json_path?: string;\n package_name?: string;\n package_version?: string;\n package_private?: boolean;\n package_description?: string;\n package_keywords?: string[];\n package_homepage?: string;\n package_repository_url?: string;\n package_bugs_url?: string;\n aliases?: string[];\n resources: PmPackageResourceMap;\n catalog?: PmPackageCatalogMetadata;\n}\n\nexport const PM_PACKAGE_CONVENTIONAL_RESOURCE_ROOTS: Readonly<Record<PmPackageResourceKind, readonly string[]>> =\n Object.freeze({\n extensions: Object.freeze([\n \".agents/pm/extensions\",\n \"extensions\",\n \".custom/pm-extensions\",\n \".custom/pm-extension\",\n ]),\n docs: Object.freeze([\n \"docs\",\n \"documentation\",\n ]),\n examples: Object.freeze([\n \"examples\",\n \"docs/examples\",\n ]),\n assets: Object.freeze([\n \"assets\",\n \".agents/pm/assets\",\n ]),\n prompts: Object.freeze([\n \"prompts\",\n \".agents/pm/prompts\",\n ]),\n });\n\nfunction isKnownPackageResourceKind(value: string): value is PmPackageResourceKind {\n return (PM_PACKAGE_RESOURCE_KINDS as readonly string[]).includes(value);\n}\n\nfunction normalizePackageResourceEntries(kind: PmPackageResourceKind, raw: unknown): string[] {\n if (raw === undefined || raw === null) {\n return [];\n }\n const entries = Array.isArray(raw) ? raw : [raw];\n const normalized: string[] = [];\n for (const entry of entries) {\n if (typeof entry !== \"string\" || entry.trim().length === 0) {\n throw new PmCliError(`Package manifest field pm.${kind} must contain string paths.`, EXIT_CODE.USAGE);\n }\n normalized.push(entry.trim());\n }\n return [...new Set(normalized)].sort((left, right) => left.localeCompare(right));\n}\n\nfunction normalizePackageResourceMap(raw: unknown): PmPackageResourceMap {\n if (raw === undefined || raw === null) {\n return {};\n }\n if (typeof raw !== \"object\" || Array.isArray(raw)) {\n throw new PmCliError(\"Package manifest field pm must be an object.\", EXIT_CODE.USAGE);\n }\n const resources: PmPackageResourceMap = {};\n const candidate = raw as Record<string, unknown>;\n for (const [key, value] of Object.entries(candidate)) {\n if (!isKnownPackageResourceKind(key)) {\n continue;\n }\n const entries = normalizePackageResourceEntries(key, value);\n if (entries.length > 0) {\n resources[key] = entries;\n }\n }\n return resources;\n}\n\nfunction readStringField(source: Record<string, unknown>, key: string): string | undefined {\n const value = source[key];\n return typeof value === \"string\" && value.trim().length > 0 ? value.trim() : undefined;\n}\n\nfunction normalizeStringArray(raw: unknown): string[] | undefined {\n if (!Array.isArray(raw)) {\n return undefined;\n }\n const values = raw\n .map((value) => typeof value === \"string\" ? value.trim() : \"\")\n .filter((value) => value.length > 0);\n return values.length > 0 ? [...new Set(values)].sort((left, right) => left.localeCompare(right)) : undefined;\n}\n\nfunction readUrlLikeField(raw: unknown): string | undefined {\n if (typeof raw === \"string\" && raw.trim().length > 0) {\n return raw.trim();\n }\n if (typeof raw === \"object\" && raw !== null && !Array.isArray(raw)) {\n const value = (raw as Record<string, unknown>).url;\n return typeof value === \"string\" && value.trim().length > 0 ? value.trim() : undefined;\n }\n return undefined;\n}\n\nfunction normalizeCatalogLinks(raw: unknown): PmPackageCatalogLinkMap | undefined {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return undefined;\n }\n const source = raw as Record<string, unknown>;\n const links: PmPackageCatalogLinkMap = {\n docs: readStringField(source, \"docs\"),\n npm: readStringField(source, \"npm\"),\n repository: readStringField(source, \"repository\"),\n report: readStringField(source, \"report\"),\n };\n return Object.values(links).some((value) => typeof value === \"string\") ? links : undefined;\n}\n\nfunction normalizeCatalogMedia(raw: unknown): PmPackageCatalogMediaMap | undefined {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return undefined;\n }\n const source = raw as Record<string, unknown>;\n const media: PmPackageCatalogMediaMap = {\n image: readStringField(source, \"image\"),\n video: readStringField(source, \"video\"),\n };\n return Object.values(media).some((value) => typeof value === \"string\") ? media : undefined;\n}\n\nfunction normalizePackageCatalogMetadata(raw: unknown): PmPackageCatalogMetadata | undefined {\n if (typeof raw !== \"object\" || raw === null || Array.isArray(raw)) {\n return undefined;\n }\n const source = raw as Record<string, unknown>;\n const catalog: PmPackageCatalogMetadata = {\n display_name: readStringField(source, \"display_name\") ?? readStringField(source, \"displayName\"),\n category: readStringField(source, \"category\"),\n summary: readStringField(source, \"summary\"),\n links: normalizeCatalogLinks(source.links),\n media: normalizeCatalogMedia(source.media),\n tags: normalizeStringArray(source.tags),\n };\n return Object.values(catalog).some((value) => value !== undefined) ? catalog : undefined;\n}\n\n/**\n * Implements read pm package manifest for the public runtime surface of this module.\n */\nexport async function readPmPackageManifest(packageRoot: string): Promise<PmPackageManifest> {\n const packageJsonPath = path.join(packageRoot, \"package.json\");\n if (!(await pathExists(packageJsonPath))) {\n return {\n source: \"convention\",\n resources: {},\n };\n }\n\n let parsed: unknown;\n try {\n parsed = JSON.parse(await fs.readFile(packageJsonPath, \"utf8\")) as unknown;\n } catch (error: unknown) {\n throw new PmCliError(\n `Failed to parse package manifest at \"${packageJsonPath}\": ${String(error)}`,\n EXIT_CODE.USAGE,\n );\n }\n if (typeof parsed !== \"object\" || parsed === null || Array.isArray(parsed)) {\n throw new PmCliError(`Package manifest at \"${packageJsonPath}\" must be a JSON object.`, EXIT_CODE.USAGE);\n }\n\n const packageJson = parsed as Record<string, unknown>;\n const pmManifest = packageJson.pm;\n const hasPmManifest = pmManifest !== undefined && pmManifest !== null;\n const pmManifestRecord = typeof pmManifest === \"object\" && pmManifest !== null && !Array.isArray(pmManifest)\n ? pmManifest as Record<string, unknown>\n : {};\n return {\n source: hasPmManifest ? \"pm\" : \"convention\",\n package_json_path: packageJsonPath,\n package_name: typeof packageJson.name === \"string\" ? packageJson.name : undefined,\n package_version: typeof packageJson.version === \"string\" ? packageJson.version : undefined,\n package_private: packageJson.private === true,\n package_description: typeof packageJson.description === \"string\" ? packageJson.description : undefined,\n package_keywords: normalizeStringArray(packageJson.keywords),\n package_homepage: typeof packageJson.homepage === \"string\" ? packageJson.homepage : undefined,\n package_repository_url: readUrlLikeField(packageJson.repository),\n package_bugs_url: readUrlLikeField(packageJson.bugs),\n aliases: normalizeStringArray(pmManifestRecord.aliases),\n resources: normalizePackageResourceMap(pmManifest),\n catalog: normalizePackageCatalogMetadata(pmManifestRecord.catalog),\n };\n}\n\nasync function listExtensionManifestDirectories(parentDirectory: string): Promise<string[]> {\n if (!(await pathExists(parentDirectory))) {\n return [];\n }\n const entries = await fs.readdir(parentDirectory, { withFileTypes: true });\n const candidates: string[] = [];\n for (const entry of entries) {\n if (!entry.isDirectory()) {\n continue;\n }\n const directory = path.join(parentDirectory, entry.name);\n if (await pathExists(path.join(directory, \"manifest.json\"))) {\n candidates.push(directory);\n }\n }\n return candidates.sort((left, right) => left.localeCompare(right));\n}\n\n/**\n * Implements collect package extension directories for the public runtime surface of this module.\n */\nexport async function collectPackageExtensionDirectories(packageRoot: string): Promise<string[]> {\n if (await pathExists(path.join(packageRoot, \"manifest.json\"))) {\n return [packageRoot];\n }\n\n const manifest = await readPmPackageManifest(packageRoot);\n const manifestEntries = manifest.resources.extensions ?? [];\n const discovered = new Set<string>();\n\n for (const entry of manifestEntries) {\n if (entry.includes(\"*\") || entry.startsWith(\"!\")) {\n throw new PmCliError(\n `Package extension entry \"${entry}\" uses a glob/exclusion pattern. pm package installs currently require concrete extension paths or directories.`,\n EXIT_CODE.USAGE,\n );\n }\n const absolute = path.resolve(packageRoot, entry);\n if (!isPathWithinDirectory(packageRoot, absolute)) {\n throw new PmCliError(`Package extension entry \"${entry}\" resolves outside package root.`, EXIT_CODE.USAGE);\n }\n if (await pathExists(path.join(absolute, \"manifest.json\"))) {\n discovered.add(absolute);\n continue;\n }\n for (const child of await listExtensionManifestDirectories(absolute)) {\n discovered.add(child);\n }\n }\n\n if (manifestEntries.length === 0) {\n for (const root of PM_PACKAGE_CONVENTIONAL_RESOURCE_ROOTS.extensions) {\n for (const child of await listExtensionManifestDirectories(path.join(packageRoot, root))) {\n discovered.add(child);\n }\n }\n }\n\n return [...discovered].sort((left, right) => left.localeCompare(right));\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,29 +1,32 @@
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]="230791bf-0057-5639-aad3-2bb852119f5e")}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]="17de491f-f579-5c44-8876-71e6393cb1da")}catch(e){}}();
3
3
  import {
4
4
  wrapOwnershipConflict
5
- } from "./chunk-V655JQ5J.js";
5
+ } from "./chunk-JLA7EVYV.js";
6
6
  import {
7
7
  resolveAuthor
8
8
  } from "./chunk-T5RRNDA7.js";
9
- import "./chunk-3C5T3ZEO.js";
10
- import "./chunk-NHKXOMZ5.js";
9
+ import "./chunk-7WYXBPYQ.js";
10
+ import "./chunk-YFIE7YK6.js";
11
11
  import {
12
12
  mutateItem,
13
13
  toItemRecord
14
- } from "./chunk-UYLA5ROU.js";
15
- import "./chunk-AOP2EMK3.js";
16
- import "./chunk-FMWQRMHS.js";
14
+ } from "./chunk-57C2RLW5.js";
15
+ import "./chunk-HK72NWAD.js";
16
+ import "./chunk-FJRKQREY.js";
17
17
  import {
18
- EXIT_CODE,
19
18
  PmCliError,
19
+ readSettings
20
+ } from "./chunk-US3T3W5J.js";
21
+ import "./chunk-NNHHXJB2.js";
22
+ import {
23
+ EXIT_CODE,
20
24
  getSettingsPath,
21
25
  pathExists,
22
- readSettings,
23
26
  resolvePmRoot,
24
27
  resolveRuntimeStatusRegistry,
25
28
  statusIsTerminal
26
- } from "./chunk-SL2ANJSV.js";
29
+ } from "./chunk-YD5FML7K.js";
27
30
 
28
31
  // dist/cli/commands/claim.js
29
32
  async function runClaim(id, force, global, options = {}) {
@@ -45,8 +48,11 @@ async function runClaim(id, force, global, options = {}) {
45
48
  author,
46
49
  message: options.message,
47
50
  force,
51
+ skipNoop: true,
48
52
  mutate(document) {
49
- previousAssignee = document.metadata.assignee ?? null;
53
+ const currentAssignee = document.metadata.assignee;
54
+ const currentAssigneeText = typeof currentAssignee === "string" ? currentAssignee : "";
55
+ previousAssignee = currentAssigneeText.trim().length > 0 ? currentAssigneeText : null;
50
56
  if (statusIsTerminal(document.metadata.status, statusRegistry) && !force) {
51
57
  throw new PmCliError(`Cannot claim terminal item ${document.metadata.id} without --force`, EXIT_CODE.CONFLICT);
52
58
  }
@@ -56,6 +62,17 @@ async function runClaim(id, force, global, options = {}) {
56
62
  mutationWarnings.push(`claim_skipped_held_by:${previousAssignee}`);
57
63
  return { changedFields: [] };
58
64
  }
65
+ if (heldByOther && !force) {
66
+ throw new PmCliError(`Item ${document.metadata.id} is already claimed by ${previousAssignee}. Use --force to take over, or --if-available to skip without failing.`, EXIT_CODE.CONFLICT, {
67
+ code: "already_claimed_by",
68
+ why: "Claim is an atomic test-and-set so parallel agents never proceed believing they own the same item.",
69
+ nextSteps: [
70
+ "Run pm next to pick a different unclaimed item.",
71
+ "Re-run with --if-available to treat a held item as a no-op skip.",
72
+ "Re-run with --force only when taking over the item is coordinated."
73
+ ]
74
+ });
75
+ }
59
76
  if (heldByOther) {
60
77
  mutationWarnings.push(`claim_takeover:${previousAssignee}->${author}`);
61
78
  }
@@ -122,6 +139,6 @@ export {
122
139
  runClaim,
123
140
  runRelease
124
141
  };
125
- //# sourceMappingURL=claim-D6L33A5Y.js.map
142
+ //# sourceMappingURL=claim-4DROPSIS.js.map
126
143
 
127
- //# debugId=230791bf-0057-5639-aad3-2bb852119f5e
144
+ //# debugId=17de491f-f579-5c44-8876-71e6393cb1da
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../cli/commands/claim.ts"],"sourcesContent":["/**\n * @module cli/commands/claim\n *\n * Implements the pm claim command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { resolveRuntimeStatusRegistry, statusIsTerminal } from \"../../core/schema/runtime-schema.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 { toItemRecord } from \"../../core/item/item-record.js\";\nimport { mutateItem } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport { wrapOwnershipConflict } from \"./annotation-command.js\";\n\n/**\n * Documents the claim result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ClaimResult {\n item: Record<string, unknown>;\n claimed_by: string;\n previous_assignee: string | null;\n forced: boolean;\n skipped?: boolean;\n warnings?: string[];\n}\n\n/**\n * Documents the release result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ReleaseResult {\n item: Record<string, unknown>;\n released_by: string;\n previous_assignee: string | null;\n audit_release: boolean;\n forced: boolean;\n}\n\n/**\n * Documents the claim mutation options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ClaimMutationOptions {\n author?: string;\n message?: string;\n ifAvailable?: boolean;\n}\n\n/**\n * Documents the release mutation options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ReleaseMutationOptions extends ClaimMutationOptions {\n allowAuditRelease?: boolean;\n}\n\n/**\n * Implements run claim for the public runtime surface of this module.\n */\nexport async function runClaim(\n id: string,\n force: boolean,\n global: GlobalOptions,\n options: ClaimMutationOptions = {},\n): Promise<ClaimResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const author = resolveAuthor(options.author, settings.author_default);\n let previousAssignee: string | null = null;\n let skipped = false;\n const mutationWarnings: string[] = [];\n\n const result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"claim\",\n author,\n message: options.message,\n force,\n skipNoop: true,\n mutate(document) {\n const currentAssignee = document.metadata.assignee;\n const currentAssigneeText = typeof currentAssignee === \"string\" ? currentAssignee : \"\";\n previousAssignee = currentAssigneeText.trim().length > 0 ? currentAssigneeText : null;\n if (statusIsTerminal(document.metadata.status, statusRegistry) && !force) {\n throw new PmCliError(`Cannot claim terminal item ${document.metadata.id} without --force`, EXIT_CODE.CONFLICT);\n }\n const heldByOther = previousAssignee !== null && previousAssignee !== author;\n if (heldByOther && options.ifAvailable === true) {\n skipped = true;\n mutationWarnings.push(`claim_skipped_held_by:${previousAssignee}`);\n return { changedFields: [] };\n }\n if (heldByOther && !force) {\n throw new PmCliError(\n `Item ${document.metadata.id} is already claimed by ${previousAssignee}. Use --force to take over, or --if-available to skip without failing.`,\n EXIT_CODE.CONFLICT,\n {\n code: \"already_claimed_by\",\n why: \"Claim is an atomic test-and-set so parallel agents never proceed believing they own the same item.\",\n nextSteps: [\n \"Run pm next to pick a different unclaimed item.\",\n \"Re-run with --if-available to treat a held item as a no-op skip.\",\n \"Re-run with --force only when taking over the item is coordinated.\",\n ],\n },\n );\n }\n if (heldByOther) {\n mutationWarnings.push(`claim_takeover:${previousAssignee}->${author}`);\n }\n document.metadata.assignee = author;\n return { changedFields: [\"assignee\"], warnings: mutationWarnings };\n },\n });\n\n return {\n item: toItemRecord(result.item),\n claimed_by: skipped && previousAssignee !== null ? previousAssignee : author,\n previous_assignee: previousAssignee,\n forced: force,\n ...(skipped ? { skipped: true } : {}),\n ...(mutationWarnings.length > 0 ? { warnings: mutationWarnings } : {}),\n };\n}\n\n/**\n * Implements run release for the public runtime surface of this module.\n */\nexport async function runRelease(\n id: string,\n force: boolean,\n global: GlobalOptions,\n options: ReleaseMutationOptions = {},\n): Promise<ReleaseResult> {\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 author = resolveAuthor(options.author, settings.author_default);\n let previousAssignee: string | null = null;\n\n let result: Awaited<ReturnType<typeof mutateItem>>;\n try {\n result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"release\",\n author,\n message: options.message,\n force,\n bypassAssigneeConflict: Boolean(options.allowAuditRelease),\n mutate(document) {\n previousAssignee = document.metadata.assignee ?? null;\n if (!previousAssignee) {\n return { changedFields: [] };\n }\n delete document.metadata.assignee;\n return { changedFields: [\"assignee\"] };\n },\n });\n } catch (error: unknown) {\n wrapOwnershipConflict(error, {\n required: \"For audited non-owner handoffs, prefer --allow-audit-release before considering --force.\",\n examples: ['pm release pm-a1b2 --author \"reviewer\" --allow-audit-release'],\n nextSteps: [\n \"Use --allow-audit-release for append-only release handoffs that only clear assignee metadata.\",\n \"Use --force only when an explicit override is approved for broader ownership conflicts.\",\n ],\n });\n }\n\n return {\n item: toItemRecord(result.item),\n released_by: author,\n previous_assignee: previousAssignee,\n audit_release: options.allowAuditRelease === true,\n forced: force,\n };\n}\n"],"names":[],"mappings":"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","debugId":"17de491f-f579-5c44-8876-71e6393cb1da"}
@@ -1,33 +1,36 @@
1
1
  import {
2
2
  wrapOwnershipConflict
3
- } from "./chunk-XBIYI23P.js";
3
+ } from "./chunk-5J2XPTAD.js";
4
4
  import {
5
5
  resolveAuthor
6
6
  } from "./chunk-WW4E2DC3.js";
7
- import "./chunk-N2LOJUBB.js";
8
- import "./chunk-3MLQZI3H.js";
7
+ import "./chunk-T3ABIMGW.js";
8
+ import "./chunk-EEY54JMF.js";
9
9
  import {
10
10
  mutateItem,
11
11
  toItemRecord
12
- } from "./chunk-CN4OAA2G.js";
13
- import "./chunk-CQFZRLXQ.js";
14
- import "./chunk-MZG6I2Q2.js";
12
+ } from "./chunk-3U3VEWK6.js";
13
+ import "./chunk-EZFKWSC7.js";
14
+ import "./chunk-DRBV5UC2.js";
15
15
  import {
16
- EXIT_CODE,
17
16
  PmCliError,
17
+ readSettings
18
+ } from "./chunk-P5YORJRH.js";
19
+ import "./chunk-7C2O74AE.js";
20
+ import {
21
+ EXIT_CODE,
18
22
  getSettingsPath,
19
23
  pathExists,
20
- readSettings,
21
24
  resolvePmRoot,
22
25
  resolveRuntimeStatusRegistry,
23
26
  statusIsTerminal
24
- } from "./chunk-BDDYM4LH.js";
27
+ } from "./chunk-5VVUKE3U.js";
25
28
 
26
29
  // dist/cli/commands/claim.js
27
30
  !(function() {
28
31
  try {
29
32
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
30
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "57172a1c-6f59-512b-a3cd-907ed169e861");
33
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "a652eb69-9925-57a5-9c26-602cfb588a03");
31
34
  } catch (e2) {
32
35
  }
33
36
  })();
@@ -50,8 +53,11 @@ async function runClaim(id, force, global2, options = {}) {
50
53
  author,
51
54
  message: options.message,
52
55
  force,
56
+ skipNoop: true,
53
57
  mutate(document) {
54
- previousAssignee = document.metadata.assignee ?? null;
58
+ const currentAssignee = document.metadata.assignee;
59
+ const currentAssigneeText = typeof currentAssignee === "string" ? currentAssignee : "";
60
+ previousAssignee = currentAssigneeText.trim().length > 0 ? currentAssigneeText : null;
55
61
  if (statusIsTerminal(document.metadata.status, statusRegistry) && !force) {
56
62
  throw new PmCliError(`Cannot claim terminal item ${document.metadata.id} without --force`, EXIT_CODE.CONFLICT);
57
63
  }
@@ -61,6 +67,17 @@ async function runClaim(id, force, global2, options = {}) {
61
67
  mutationWarnings.push(`claim_skipped_held_by:${previousAssignee}`);
62
68
  return { changedFields: [] };
63
69
  }
70
+ if (heldByOther && !force) {
71
+ throw new PmCliError(`Item ${document.metadata.id} is already claimed by ${previousAssignee}. Use --force to take over, or --if-available to skip without failing.`, EXIT_CODE.CONFLICT, {
72
+ code: "already_claimed_by",
73
+ why: "Claim is an atomic test-and-set so parallel agents never proceed believing they own the same item.",
74
+ nextSteps: [
75
+ "Run pm next to pick a different unclaimed item.",
76
+ "Re-run with --if-available to treat a held item as a no-op skip.",
77
+ "Re-run with --force only when taking over the item is coordinated."
78
+ ]
79
+ });
80
+ }
64
81
  if (heldByOther) {
65
82
  mutationWarnings.push(`claim_takeover:${previousAssignee}->${author}`);
66
83
  }
@@ -127,4 +144,4 @@ export {
127
144
  runClaim,
128
145
  runRelease
129
146
  };
130
- //# sourceMappingURL=claim-YAFUTPVK.js.map
147
+ //# sourceMappingURL=claim-VX54TV5U.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../cli/commands/claim.ts"],
4
+ "sourcesContent": ["/**\n * @module cli/commands/claim\n *\n * Implements the pm claim command surface and its agent-facing runtime behavior.\n */\nimport { pathExists } from \"../../core/fs/fs-utils.js\";\nimport { resolveRuntimeStatusRegistry, statusIsTerminal } from \"../../core/schema/runtime-schema.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 { toItemRecord } from \"../../core/item/item-record.js\";\nimport { mutateItem } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport { resolveAuthor } from \"../../core/shared/author.js\";\nimport { wrapOwnershipConflict } from \"./annotation-command.js\";\n\n/**\n * Documents the claim result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ClaimResult {\n item: Record<string, unknown>;\n claimed_by: string;\n previous_assignee: string | null;\n forced: boolean;\n skipped?: boolean;\n warnings?: string[];\n}\n\n/**\n * Documents the release result payload exchanged by command, SDK, and package integrations.\n */\nexport interface ReleaseResult {\n item: Record<string, unknown>;\n released_by: string;\n previous_assignee: string | null;\n audit_release: boolean;\n forced: boolean;\n}\n\n/**\n * Documents the claim mutation options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ClaimMutationOptions {\n author?: string;\n message?: string;\n ifAvailable?: boolean;\n}\n\n/**\n * Documents the release mutation options payload exchanged by command, SDK, and package integrations.\n */\nexport interface ReleaseMutationOptions extends ClaimMutationOptions {\n allowAuditRelease?: boolean;\n}\n\n/**\n * Implements run claim for the public runtime surface of this module.\n */\nexport async function runClaim(\n id: string,\n force: boolean,\n global: GlobalOptions,\n options: ClaimMutationOptions = {},\n): Promise<ClaimResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n const settings = await readSettings(pmRoot);\n const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);\n const author = resolveAuthor(options.author, settings.author_default);\n let previousAssignee: string | null = null;\n let skipped = false;\n const mutationWarnings: string[] = [];\n\n const result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"claim\",\n author,\n message: options.message,\n force,\n skipNoop: true,\n mutate(document) {\n const currentAssignee = document.metadata.assignee;\n const currentAssigneeText = typeof currentAssignee === \"string\" ? currentAssignee : \"\";\n previousAssignee = currentAssigneeText.trim().length > 0 ? currentAssigneeText : null;\n if (statusIsTerminal(document.metadata.status, statusRegistry) && !force) {\n throw new PmCliError(`Cannot claim terminal item ${document.metadata.id} without --force`, EXIT_CODE.CONFLICT);\n }\n const heldByOther = previousAssignee !== null && previousAssignee !== author;\n if (heldByOther && options.ifAvailable === true) {\n skipped = true;\n mutationWarnings.push(`claim_skipped_held_by:${previousAssignee}`);\n return { changedFields: [] };\n }\n if (heldByOther && !force) {\n throw new PmCliError(\n `Item ${document.metadata.id} is already claimed by ${previousAssignee}. Use --force to take over, or --if-available to skip without failing.`,\n EXIT_CODE.CONFLICT,\n {\n code: \"already_claimed_by\",\n why: \"Claim is an atomic test-and-set so parallel agents never proceed believing they own the same item.\",\n nextSteps: [\n \"Run pm next to pick a different unclaimed item.\",\n \"Re-run with --if-available to treat a held item as a no-op skip.\",\n \"Re-run with --force only when taking over the item is coordinated.\",\n ],\n },\n );\n }\n if (heldByOther) {\n mutationWarnings.push(`claim_takeover:${previousAssignee}->${author}`);\n }\n document.metadata.assignee = author;\n return { changedFields: [\"assignee\"], warnings: mutationWarnings };\n },\n });\n\n return {\n item: toItemRecord(result.item),\n claimed_by: skipped && previousAssignee !== null ? previousAssignee : author,\n previous_assignee: previousAssignee,\n forced: force,\n ...(skipped ? { skipped: true } : {}),\n ...(mutationWarnings.length > 0 ? { warnings: mutationWarnings } : {}),\n };\n}\n\n/**\n * Implements run release for the public runtime surface of this module.\n */\nexport async function runRelease(\n id: string,\n force: boolean,\n global: GlobalOptions,\n options: ReleaseMutationOptions = {},\n): Promise<ReleaseResult> {\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 author = resolveAuthor(options.author, settings.author_default);\n let previousAssignee: string | null = null;\n\n let result: Awaited<ReturnType<typeof mutateItem>>;\n try {\n result = await mutateItem({\n pmRoot,\n settings,\n id,\n op: \"release\",\n author,\n message: options.message,\n force,\n bypassAssigneeConflict: Boolean(options.allowAuditRelease),\n mutate(document) {\n previousAssignee = document.metadata.assignee ?? null;\n if (!previousAssignee) {\n return { changedFields: [] };\n }\n delete document.metadata.assignee;\n return { changedFields: [\"assignee\"] };\n },\n });\n } catch (error: unknown) {\n wrapOwnershipConflict(error, {\n required: \"For audited non-owner handoffs, prefer --allow-audit-release before considering --force.\",\n examples: ['pm release pm-a1b2 --author \"reviewer\" --allow-audit-release'],\n nextSteps: [\n \"Use --allow-audit-release for append-only release handoffs that only clear assignee metadata.\",\n \"Use --force only when an explicit override is approved for broader ownership conflicts.\",\n ],\n });\n }\n\n return {\n item: toItemRecord(result.item),\n released_by: author,\n previous_assignee: previousAssignee,\n audit_release: options.allowAuditRelease === true,\n forced: force,\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["global"]
7
+ }
@@ -3,16 +3,18 @@
3
3
  import {
4
4
  _testOnlyCloseCommand,
5
5
  runClose
6
- } from "./chunk-WBWRQS32.js";
7
- import "./chunk-4EVY7CQN.js";
8
- import "./chunk-UYLA5ROU.js";
9
- import "./chunk-AOP2EMK3.js";
10
- import "./chunk-FMWQRMHS.js";
11
- import "./chunk-SL2ANJSV.js";
6
+ } from "./chunk-K3AGVXSF.js";
7
+ import "./chunk-N6DNM2FA.js";
8
+ import "./chunk-57C2RLW5.js";
9
+ import "./chunk-HK72NWAD.js";
10
+ import "./chunk-FJRKQREY.js";
11
+ import "./chunk-US3T3W5J.js";
12
+ import "./chunk-NNHHXJB2.js";
13
+ import "./chunk-YD5FML7K.js";
12
14
  export {
13
15
  _testOnlyCloseCommand,
14
16
  runClose
15
17
  };
16
- //# sourceMappingURL=close-TGYXG7TV.js.map
18
+ //# sourceMappingURL=close-3YRR3XY6.js.map
17
19
 
18
20
  //# debugId=45eac7fa-f181-5cca-93b7-cfb58909dbb3
@@ -0,0 +1,16 @@
1
+ import {
2
+ _testOnlyCloseCommand,
3
+ runClose
4
+ } from "./chunk-FGQKEDE4.js";
5
+ import "./chunk-YOF5VPKM.js";
6
+ import "./chunk-3U3VEWK6.js";
7
+ import "./chunk-EZFKWSC7.js";
8
+ import "./chunk-DRBV5UC2.js";
9
+ import "./chunk-P5YORJRH.js";
10
+ import "./chunk-7C2O74AE.js";
11
+ import "./chunk-5VVUKE3U.js";
12
+ export {
13
+ _testOnlyCloseCommand,
14
+ runClose
15
+ };
16
+ //# sourceMappingURL=close-OB2Y4QP5.js.map
@@ -1,53 +1,56 @@
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]="2a91a002-c3ac-5ecc-8196-c2070529b3e8")}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]="36947f0b-c1fc-5c0e-8d0e-bd968315cecc")}catch(e){}}();
3
3
  import {
4
4
  createCheckpointId,
5
5
  loadMutationCheckpoint,
6
6
  restoreCheckpointItems,
7
7
  writeMutationCheckpoint
8
- } from "./chunk-T5RTYLZJ.js";
8
+ } from "./chunk-S5AYOUT5.js";
9
9
  import {
10
10
  runRestore
11
- } from "./chunk-OTSP6UEX.js";
11
+ } from "./chunk-HBYZDSK5.js";
12
12
  import {
13
13
  resolveAuthor
14
14
  } from "./chunk-T5RRNDA7.js";
15
+ import "./chunk-T3F4DF23.js";
16
+ import "./chunk-BFVHCAOO.js";
15
17
  import {
16
18
  runClose
17
- } from "./chunk-WBWRQS32.js";
19
+ } from "./chunk-K3AGVXSF.js";
18
20
  import {
19
21
  hasListFilters
20
22
  } from "./chunk-VY3VQ22F.js";
21
- import "./chunk-4EVY7CQN.js";
22
- import "./chunk-FDNJMYZB.js";
23
- import "./chunk-Y2VSCQ77.js";
23
+ import "./chunk-N6DNM2FA.js";
24
24
  import {
25
25
  runList
26
- } from "./chunk-4IW7STMB.js";
26
+ } from "./chunk-YSAH5FY5.js";
27
27
  import "./chunk-QB7XMHJW.js";
28
- import "./chunk-4SHME4VR.js";
29
- import "./chunk-NHKXOMZ5.js";
28
+ import "./chunk-5JE6SMYS.js";
29
+ import "./chunk-YFIE7YK6.js";
30
30
  import {
31
31
  listAllFrontMatterLight
32
- } from "./chunk-UYLA5ROU.js";
32
+ } from "./chunk-57C2RLW5.js";
33
33
  import {
34
34
  isTerminalStatus
35
- } from "./chunk-AOP2EMK3.js";
35
+ } from "./chunk-HK72NWAD.js";
36
36
  import {
37
37
  nowIso
38
- } from "./chunk-FMWQRMHS.js";
38
+ } from "./chunk-FJRKQREY.js";
39
39
  import {
40
- EXIT_CODE,
41
40
  PmCliError,
42
41
  getActiveExtensionRegistrations,
42
+ readSettings
43
+ } from "./chunk-US3T3W5J.js";
44
+ import "./chunk-NNHHXJB2.js";
45
+ import {
46
+ EXIT_CODE,
43
47
  getSettingsPath,
44
48
  pathExists,
45
- readSettings,
46
49
  resolveItemTypeRegistry,
47
50
  resolvePmRoot,
48
51
  resolveRuntimeStatusRegistry,
49
52
  toErrorMessage
50
- } from "./chunk-SL2ANJSV.js";
53
+ } from "./chunk-YD5FML7K.js";
51
54
 
52
55
  // dist/cli/commands/close-many.js
53
56
  var CLOSE_MANY_CHECKPOINT_SCHEMA_VERSION = 1;
@@ -389,6 +392,6 @@ export {
389
392
  _testOnly,
390
393
  runCloseMany
391
394
  };
392
- //# sourceMappingURL=close-many-SNA6LNZH.js.map
395
+ //# sourceMappingURL=close-many-AP4MWU36.js.map
393
396
 
394
- //# debugId=2a91a002-c3ac-5ecc-8196-c2070529b3e8
397
+ //# debugId=36947f0b-c1fc-5c0e-8d0e-bd968315cecc