@unbrained/pm-cli 2026.7.1 → 2026.7.3

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 (625) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CHANGELOG.md +25 -0
  3. package/CONTRIBUTING.md +2 -2
  4. package/README.md +1 -1
  5. package/dist/cli/commander-usage.d.ts +2 -0
  6. package/dist/cli/commander-usage.js +110 -86
  7. package/dist/cli/commander-usage.js.map +1 -1
  8. package/dist/cli/commands/activity.js +79 -57
  9. package/dist/cli/commands/activity.js.map +1 -1
  10. package/dist/cli/commands/aggregate.js +102 -79
  11. package/dist/cli/commands/aggregate.js.map +1 -1
  12. package/dist/cli/commands/calendar.js +278 -243
  13. package/dist/cli/commands/calendar.js.map +1 -1
  14. package/dist/cli/commands/close-many.js +176 -114
  15. package/dist/cli/commands/close-many.js.map +1 -1
  16. package/dist/cli/commands/close.js +157 -129
  17. package/dist/cli/commands/close.js.map +1 -1
  18. package/dist/cli/commands/comments-audit.js +50 -42
  19. package/dist/cli/commands/comments-audit.js.map +1 -1
  20. package/dist/cli/commands/config.d.ts +2 -0
  21. package/dist/cli/commands/config.js +443 -879
  22. package/dist/cli/commands/config.js.map +1 -1
  23. package/dist/cli/commands/context.js +365 -287
  24. package/dist/cli/commands/context.js.map +1 -1
  25. package/dist/cli/commands/contracts.js +352 -238
  26. package/dist/cli/commands/contracts.js.map +1 -1
  27. package/dist/cli/commands/create.js +32 -17
  28. package/dist/cli/commands/create.js.map +1 -1
  29. package/dist/cli/commands/dedupe-audit.js +46 -39
  30. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  31. package/dist/cli/commands/dedupe-merge.js +88 -69
  32. package/dist/cli/commands/dedupe-merge.js.map +1 -1
  33. package/dist/cli/commands/extension/doctor.js +56 -67
  34. package/dist/cli/commands/extension/doctor.js.map +1 -1
  35. package/dist/cli/commands/extension/shared.js +21 -15
  36. package/dist/cli/commands/extension/shared.js.map +1 -1
  37. package/dist/cli/commands/get.js +114 -81
  38. package/dist/cli/commands/get.js.map +1 -1
  39. package/dist/cli/commands/health.d.ts +17 -0
  40. package/dist/cli/commands/health.js +545 -417
  41. package/dist/cli/commands/health.js.map +1 -1
  42. package/dist/cli/commands/history-compact.js +209 -140
  43. package/dist/cli/commands/history-compact.js.map +1 -1
  44. package/dist/cli/commands/history-redact.js +162 -119
  45. package/dist/cli/commands/history-redact.js.map +1 -1
  46. package/dist/cli/commands/history-repair.js +120 -85
  47. package/dist/cli/commands/history-repair.js.map +1 -1
  48. package/dist/cli/commands/init-agent-guidance.js +32 -19
  49. package/dist/cli/commands/init-agent-guidance.js.map +1 -1
  50. package/dist/cli/commands/init.d.ts +8 -2
  51. package/dist/cli/commands/init.js +263 -162
  52. package/dist/cli/commands/init.js.map +1 -1
  53. package/dist/cli/commands/list.js +152 -102
  54. package/dist/cli/commands/list.js.map +1 -1
  55. package/dist/cli/commands/next.js +60 -40
  56. package/dist/cli/commands/next.js.map +1 -1
  57. package/dist/cli/commands/plan.js +373 -298
  58. package/dist/cli/commands/plan.js.map +1 -1
  59. package/dist/cli/commands/profile.js +23 -15
  60. package/dist/cli/commands/profile.js.map +1 -1
  61. package/dist/cli/commands/recurrence-parsers.js +43 -25
  62. package/dist/cli/commands/recurrence-parsers.js.map +1 -1
  63. package/dist/cli/commands/reindex.d.ts +21 -5
  64. package/dist/cli/commands/reindex.js +345 -205
  65. package/dist/cli/commands/reindex.js.map +1 -1
  66. package/dist/cli/commands/restore.d.ts +8 -7
  67. package/dist/cli/commands/restore.js +105 -69
  68. package/dist/cli/commands/restore.js.map +1 -1
  69. package/dist/cli/commands/schema.js +33 -30
  70. package/dist/cli/commands/schema.js.map +1 -1
  71. package/dist/cli/commands/search.d.ts +10 -2
  72. package/dist/cli/commands/search.js +503 -470
  73. package/dist/cli/commands/search.js.map +1 -1
  74. package/dist/cli/commands/telemetry.js +98 -87
  75. package/dist/cli/commands/telemetry.js.map +1 -1
  76. package/dist/cli/commands/test-all.js +237 -168
  77. package/dist/cli/commands/test-all.js.map +1 -1
  78. package/dist/cli/commands/test.d.ts +6 -5
  79. package/dist/cli/commands/test.js +424 -344
  80. package/dist/cli/commands/test.js.map +1 -1
  81. package/dist/cli/commands/update-many.js +57 -42
  82. package/dist/cli/commands/update-many.js.map +1 -1
  83. package/dist/cli/commands/update.d.ts +1 -1
  84. package/dist/cli/commands/update.js +738 -671
  85. package/dist/cli/commands/update.js.map +1 -1
  86. package/dist/cli/commands/validate.d.ts +20 -1
  87. package/dist/cli/commands/validate.js +478 -343
  88. package/dist/cli/commands/validate.js.map +1 -1
  89. package/dist/cli/error-guidance.js +406 -361
  90. package/dist/cli/error-guidance.js.map +1 -1
  91. package/dist/cli/extension-command-help.js +27 -19
  92. package/dist/cli/extension-command-help.js.map +1 -1
  93. package/dist/cli/help-json-payload.js +57 -49
  94. package/dist/cli/help-json-payload.js.map +1 -1
  95. package/dist/cli/main.d.ts +47 -0
  96. package/dist/cli/main.js +474 -371
  97. package/dist/cli/main.js.map +1 -1
  98. package/dist/cli/migration-gates.js +22 -45
  99. package/dist/cli/migration-gates.js.map +1 -1
  100. package/dist/cli/register-list-query.js +299 -310
  101. package/dist/cli/register-list-query.js.map +1 -1
  102. package/dist/cli/register-mutation.js +763 -779
  103. package/dist/cli/register-mutation.js.map +1 -1
  104. package/dist/cli/register-operations.js +386 -362
  105. package/dist/cli/register-operations.js.map +1 -1
  106. package/dist/cli/register-setup.js +120 -101
  107. package/dist/cli/register-setup.js.map +1 -1
  108. package/dist/cli/registration-helpers.d.ts +4 -0
  109. package/dist/cli/registration-helpers.js +45 -56
  110. package/dist/cli/registration-helpers.js.map +1 -1
  111. package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js → activity-5YWLSPGE.js} +9 -9
  112. package/dist/cli-bundle/chunks/activity-BIML7K2D.js +16 -0
  113. package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js → aggregate-2V2M3JZU.js} +107 -83
  114. package/dist/cli-bundle/chunks/{aggregate-SDF7DUOD.js.map → aggregate-2V2M3JZU.js.map} +2 -2
  115. package/dist/cli-bundle/chunks/{aggregate-JTEF4BP7.js → aggregate-EK7DXML7.js} +108 -84
  116. package/dist/cli-bundle/chunks/aggregate-EK7DXML7.js.map +1 -0
  117. package/dist/cli-bundle/chunks/{append-LOVPGVPT.js → append-EZESUVJT.js} +8 -8
  118. package/dist/cli-bundle/chunks/{append-QCFJSDFL.js → append-JFG4WQMG.js} +8 -8
  119. package/dist/cli-bundle/chunks/{chunk-TP5Q5ZD3.js → chunk-32IUNTG4.js} +158 -119
  120. package/dist/cli-bundle/chunks/chunk-32IUNTG4.js.map +1 -0
  121. package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js → chunk-3W2HJKJX.js} +3 -3
  122. package/dist/cli-bundle/chunks/{chunk-VARHOHYV.js → chunk-4EXFFP7T.js} +86 -52
  123. package/dist/cli-bundle/chunks/chunk-4EXFFP7T.js.map +7 -0
  124. package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js → chunk-4PFVUUYV.js} +2 -2
  125. package/dist/cli-bundle/chunks/{chunk-JSU5P7VS.js → chunk-4WB6S4YX.js} +308 -184
  126. package/dist/cli-bundle/chunks/chunk-4WB6S4YX.js.map +1 -0
  127. package/dist/cli-bundle/chunks/{chunk-HXTQJXWT.js → chunk-572FKBRL.js} +61 -102
  128. package/dist/cli-bundle/chunks/chunk-572FKBRL.js.map +1 -0
  129. package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js → chunk-5E7N4T2Z.js} +2 -2
  130. package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js → chunk-5IZUBZBR.js} +3 -3
  131. package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js → chunk-5JIWFWOZ.js} +2 -2
  132. package/dist/cli-bundle/chunks/{chunk-FFMQB7WR.js → chunk-67LARBDL.js} +493 -404
  133. package/dist/cli-bundle/chunks/chunk-67LARBDL.js.map +1 -0
  134. package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js → chunk-6CDCWKSX.js} +4 -4
  135. package/dist/cli-bundle/chunks/{chunk-3K2M5OYU.js → chunk-6KRFL33E.js} +308 -184
  136. package/dist/cli-bundle/chunks/chunk-6KRFL33E.js.map +7 -0
  137. package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js → chunk-6NYJGMTY.js} +2 -2
  138. package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js → chunk-7CLLC75T.js} +4 -4
  139. package/dist/cli-bundle/chunks/{chunk-2466X6E4.js → chunk-7LYO6S5A.js} +8 -8
  140. package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js → chunk-A3OQ7TFW.js} +8 -8
  141. package/dist/cli-bundle/chunks/{chunk-5CGRF3L5.js → chunk-AIKU3IIL.js} +153 -90
  142. package/dist/cli-bundle/chunks/chunk-AIKU3IIL.js.map +1 -0
  143. package/dist/cli-bundle/chunks/{chunk-WYDHYJPO.js → chunk-AJHYQCBJ.js} +39 -5
  144. package/dist/cli-bundle/chunks/chunk-AJHYQCBJ.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js → chunk-B4O5S7I3.js} +79 -57
  146. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js.map → chunk-B4O5S7I3.js.map} +2 -2
  147. package/dist/cli-bundle/chunks/{chunk-OTUHB4HS.js → chunk-BE2SR6QL.js} +92 -77
  148. package/dist/cli-bundle/chunks/chunk-BE2SR6QL.js.map +1 -0
  149. package/dist/cli-bundle/chunks/{chunk-JLM7BHI7.js → chunk-BI4R7HI2.js} +75 -53
  150. package/dist/cli-bundle/chunks/chunk-BI4R7HI2.js.map +7 -0
  151. package/dist/cli-bundle/chunks/{chunk-AXIDKKAT.js → chunk-CXR3CMBQ.js} +33 -6
  152. package/dist/cli-bundle/chunks/chunk-CXR3CMBQ.js.map +1 -0
  153. package/dist/cli-bundle/chunks/{chunk-ZETXE4SE.js → chunk-ECU6MMTQ.js} +713 -613
  154. package/dist/cli-bundle/chunks/chunk-ECU6MMTQ.js.map +1 -0
  155. package/dist/cli-bundle/chunks/{chunk-2D4HATP2.js → chunk-EJ2OCBHF.js} +54 -30
  156. package/dist/cli-bundle/chunks/chunk-EJ2OCBHF.js.map +1 -0
  157. package/dist/cli-bundle/chunks/{chunk-BDTISOSD.js → chunk-EQURFOMH.js} +41 -26
  158. package/dist/cli-bundle/chunks/chunk-EQURFOMH.js.map +7 -0
  159. package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js → chunk-ER4ME5U2.js} +3 -3
  160. package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js → chunk-ERG65A2L.js} +2 -2
  161. package/dist/cli-bundle/chunks/{chunk-IZBR4NRW.js → chunk-F6WNBITZ.js} +157 -113
  162. package/dist/cli-bundle/chunks/chunk-F6WNBITZ.js.map +7 -0
  163. package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js → chunk-FH2H3CBD.js} +3 -3
  164. package/dist/cli-bundle/chunks/{chunk-JPECA746.js → chunk-FUFFPIYA.js} +2 -2
  165. package/dist/cli-bundle/chunks/{chunk-CF7RL6FR.js → chunk-FZJM2TXF.js} +110 -73
  166. package/dist/cli-bundle/chunks/chunk-FZJM2TXF.js.map +1 -0
  167. package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js → chunk-GUYNUXQT.js} +3 -3
  168. package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js → chunk-GVJE5T7Q.js} +2 -2
  169. package/dist/cli-bundle/chunks/{chunk-3J6JRJ3I.js → chunk-HB4FAT3O.js} +42 -60
  170. package/dist/cli-bundle/chunks/chunk-HB4FAT3O.js.map +7 -0
  171. package/dist/cli-bundle/chunks/{chunk-55SNVXRQ.js → chunk-HQAF23Q2.js} +626 -484
  172. package/dist/cli-bundle/chunks/chunk-HQAF23Q2.js.map +7 -0
  173. package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js → chunk-JBZ2NTKX.js} +2 -2
  174. package/dist/cli-bundle/chunks/{chunk-RMMQ74TG.js → chunk-JPATY4SE.js} +54 -30
  175. package/dist/cli-bundle/chunks/chunk-JPATY4SE.js.map +7 -0
  176. package/dist/cli-bundle/chunks/{chunk-IPYBJWTE.js → chunk-K5DT2YKM.js} +109 -72
  177. package/dist/cli-bundle/chunks/chunk-K5DT2YKM.js.map +7 -0
  178. package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js → chunk-KEZOIPCR.js} +3 -3
  179. package/dist/cli-bundle/chunks/{chunk-RVUALSJF.js → chunk-KHVGM5CS.js} +466 -365
  180. package/dist/cli-bundle/chunks/chunk-KHVGM5CS.js.map +7 -0
  181. package/dist/cli-bundle/chunks/{chunk-YITK2PJ6.js → chunk-KS6ATO47.js} +288 -175
  182. package/dist/cli-bundle/chunks/chunk-KS6ATO47.js.map +7 -0
  183. package/dist/cli-bundle/chunks/{chunk-7R4QEMZZ.js → chunk-L4SLHV6G.js} +463 -362
  184. package/dist/cli-bundle/chunks/chunk-L4SLHV6G.js.map +1 -0
  185. package/dist/cli-bundle/chunks/{chunk-RLDHZHQS.js → chunk-LBE5QFMZ.js} +158 -114
  186. package/dist/cli-bundle/chunks/chunk-LBE5QFMZ.js.map +1 -0
  187. package/dist/cli-bundle/chunks/{chunk-22WKIL3H.js → chunk-LCWQP6NM.js} +76 -54
  188. package/dist/cli-bundle/chunks/chunk-LCWQP6NM.js.map +1 -0
  189. package/dist/cli-bundle/chunks/{chunk-KNPEF7QG.js → chunk-LOWVNZBZ.js} +91 -76
  190. package/dist/cli-bundle/chunks/chunk-LOWVNZBZ.js.map +7 -0
  191. package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js → chunk-MDHWWBNZ.js} +3 -3
  192. package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js → chunk-MEZZZBYX.js} +2 -2
  193. package/dist/cli-bundle/chunks/{chunk-V3NOKJF2.js → chunk-MHRS5FUX.js} +288 -175
  194. package/dist/cli-bundle/chunks/chunk-MHRS5FUX.js.map +1 -0
  195. package/dist/cli-bundle/chunks/{chunk-3XZCOZ5J.js → chunk-NOIEVOK5.js} +391 -313
  196. package/dist/cli-bundle/chunks/chunk-NOIEVOK5.js.map +1 -0
  197. package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js → chunk-NZ7QIUP5.js} +4 -4
  198. package/dist/cli-bundle/chunks/{chunk-UYUYDGIB.js → chunk-OGLGI22K.js} +115 -67
  199. package/dist/cli-bundle/chunks/{chunk-UYUYDGIB.js.map → chunk-OGLGI22K.js.map} +1 -1
  200. package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js → chunk-P5L7Z2O6.js} +2 -2
  201. package/dist/cli-bundle/chunks/{chunk-BZCEN4JA.js → chunk-PULUSQAV.js} +492 -403
  202. package/dist/cli-bundle/chunks/chunk-PULUSQAV.js.map +7 -0
  203. package/dist/cli-bundle/chunks/{chunk-3VGN2UWE.js → chunk-QCDTQCMW.js} +22 -30
  204. package/dist/cli-bundle/chunks/chunk-QCDTQCMW.js.map +1 -0
  205. package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js → chunk-QNNQAAZ5.js} +24 -18
  206. package/dist/cli-bundle/chunks/{chunk-4A3BJ675.js.map → chunk-QNNQAAZ5.js.map} +1 -1
  207. package/dist/cli-bundle/chunks/{chunk-MDPEOIGN.js → chunk-RAHINBVP.js} +60 -101
  208. package/dist/cli-bundle/chunks/chunk-RAHINBVP.js.map +7 -0
  209. package/dist/cli-bundle/chunks/{chunk-CWFNTKQJ.js → chunk-RJH5VQHW.js} +43 -61
  210. package/dist/cli-bundle/chunks/chunk-RJH5VQHW.js.map +1 -0
  211. package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js → chunk-SU2E4AWU.js} +6 -6
  212. package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js → chunk-SU3TB4NS.js} +2 -2
  213. package/dist/cli-bundle/chunks/{chunk-JWXRETDF.js → chunk-SYE6WMV6.js} +626 -484
  214. package/dist/cli-bundle/chunks/chunk-SYE6WMV6.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{chunk-NWMZWYYB.js → chunk-T3P7PMZP.js} +42 -27
  216. package/dist/cli-bundle/chunks/chunk-T3P7PMZP.js.map +1 -0
  217. package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js → chunk-T4XBKJ3F.js} +4 -4
  218. package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js → chunk-T6AXEBOP.js} +23 -17
  219. package/dist/cli-bundle/chunks/{chunk-RH5ZBYFD.js.map → chunk-T6AXEBOP.js.map} +2 -2
  220. package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js → chunk-TQ6AX5SQ.js} +58 -69
  221. package/dist/cli-bundle/chunks/{chunk-5QFDBI4F.js.map → chunk-TQ6AX5SQ.js.map} +2 -2
  222. package/dist/cli-bundle/chunks/{chunk-4XOIEKSD.js → chunk-U3S2B7TA.js} +86 -52
  223. package/dist/cli-bundle/chunks/chunk-U3S2B7TA.js.map +1 -0
  224. package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js → chunk-U5TR4N7J.js} +7 -7
  225. package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js → chunk-UMNQZS4H.js} +3 -3
  226. package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js → chunk-WJA3PXW7.js} +7 -7
  227. package/dist/cli-bundle/chunks/{chunk-RGEMWD6Q.js → chunk-WRYERRZX.js} +157 -118
  228. package/dist/cli-bundle/chunks/chunk-WRYERRZX.js.map +7 -0
  229. package/dist/cli-bundle/chunks/{chunk-NUHHPVVS.js → chunk-WYOIIFSE.js} +712 -612
  230. package/dist/cli-bundle/chunks/chunk-WYOIIFSE.js.map +7 -0
  231. package/dist/cli-bundle/chunks/{chunk-4DSGXSBL.js → chunk-XRYSCRZR.js} +116 -68
  232. package/dist/cli-bundle/chunks/{chunk-4DSGXSBL.js.map → chunk-XRYSCRZR.js.map} +3 -3
  233. package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js → chunk-YF746GTH.js} +59 -70
  234. package/dist/cli-bundle/chunks/{chunk-NU2UEROZ.js.map → chunk-YF746GTH.js.map} +1 -1
  235. package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js → chunk-YPWUSH72.js} +390 -312
  236. package/dist/cli-bundle/chunks/{chunk-JMP4E6D7.js.map → chunk-YPWUSH72.js.map} +2 -2
  237. package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js → chunk-YSDFIY7N.js} +3 -3
  238. package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js → chunk-YSGTMDWC.js} +2 -2
  239. package/dist/cli-bundle/chunks/{chunk-NFDPYAIP.js → chunk-YVKZ3ANP.js} +21 -29
  240. package/dist/cli-bundle/chunks/chunk-YVKZ3ANP.js.map +7 -0
  241. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js → chunk-Z4DGFQDH.js} +80 -58
  242. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js.map → chunk-Z4DGFQDH.js.map} +1 -1
  243. package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js → chunk-Z5F6XZXE.js} +6 -6
  244. package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js → chunk-Z7RPDF2Y.js} +3 -3
  245. package/dist/cli-bundle/chunks/{chunk-3S2KT7NG.js → chunk-ZFTKYWIF.js} +152 -89
  246. package/dist/cli-bundle/chunks/chunk-ZFTKYWIF.js.map +7 -0
  247. package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js → claim-2BGBGSVI.js} +8 -8
  248. package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js → claim-5GU7OE67.js} +8 -8
  249. package/dist/cli-bundle/chunks/close-6YODBUIV.js +14 -0
  250. package/dist/cli-bundle/chunks/{close-TQYAAFJP.js → close-AFVKPR57.js} +7 -7
  251. package/dist/cli-bundle/chunks/{close-many-BG5QQIDQ.js → close-many-7KLOSYLP.js} +186 -122
  252. package/dist/cli-bundle/chunks/close-many-7KLOSYLP.js.map +7 -0
  253. package/dist/cli-bundle/chunks/{close-many-LDRVEQY2.js → close-many-JKUJMHLG.js} +187 -123
  254. package/dist/cli-bundle/chunks/close-many-JKUJMHLG.js.map +1 -0
  255. package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js → comments-DNWHEBOS.js} +9 -9
  256. package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js → comments-RW23R3VE.js} +9 -9
  257. package/dist/cli-bundle/chunks/config-AUM5WBYA.js +1072 -0
  258. package/dist/cli-bundle/chunks/config-AUM5WBYA.js.map +7 -0
  259. package/dist/cli-bundle/chunks/config-OZWSA2NP.js +1062 -0
  260. package/dist/cli-bundle/chunks/config-OZWSA2NP.js.map +1 -0
  261. package/dist/cli-bundle/chunks/{context-B6275WPX.js → context-OYXRGY7S.js} +12 -12
  262. package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js → context-PKCEHQY3.js} +12 -12
  263. package/dist/cli-bundle/chunks/{contracts-HN7ABKLP.js → contracts-L6ODXNUM.js} +320 -199
  264. package/dist/cli-bundle/chunks/contracts-L6ODXNUM.js.map +7 -0
  265. package/dist/cli-bundle/chunks/{contracts-W4FZVVD6.js → contracts-X74F2GSM.js} +321 -200
  266. package/dist/cli-bundle/chunks/contracts-X74F2GSM.js.map +1 -0
  267. package/dist/cli-bundle/chunks/{copy-DEM4DATS.js → copy-6XOR3HKN.js} +5 -5
  268. package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js → copy-I4NCLBR4.js} +5 -5
  269. package/dist/cli-bundle/chunks/{create-RLRJMRTM.js → create-PM45M6PE.js} +12 -12
  270. package/dist/cli-bundle/chunks/create-Z7YCH3BE.js +28 -0
  271. package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js → delete-7YXHYG67.js} +5 -5
  272. package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js → delete-LPISP43T.js} +5 -5
  273. package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js → deps-N2T26FME.js} +5 -5
  274. package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js → deps-WATKQDE3.js} +5 -5
  275. package/dist/cli-bundle/chunks/{docs-GYZNVS26.js → docs-6LQ3GLM7.js} +7 -7
  276. package/dist/cli-bundle/chunks/{docs-26S44RXU.js → docs-Z3X6JZLT.js} +7 -7
  277. package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js → eval-6DCLG52D.js} +10 -10
  278. package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js → eval-Y3ZCUTHK.js} +10 -10
  279. package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js → extension-BNINIMT7.js} +11 -11
  280. package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js → extension-QWE4YYK5.js} +11 -11
  281. package/dist/cli-bundle/chunks/{files-NQHEXUZD.js → files-6SGKHS6O.js} +7 -7
  282. package/dist/cli-bundle/chunks/{files-MBNICQFM.js → files-FUYPSOFJ.js} +7 -7
  283. package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js → focus-2Q3K76G2.js} +6 -6
  284. package/dist/cli-bundle/chunks/{focus-XZW5423D.js → focus-ATLBWXXD.js} +6 -6
  285. package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js → gc-RUYEMNRF.js} +3 -3
  286. package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js → gc-TDWSDR66.js} +3 -3
  287. package/dist/cli-bundle/chunks/{get-A7MAOHCU.js → get-2WGLX74N.js} +120 -80
  288. package/dist/cli-bundle/chunks/get-2WGLX74N.js.map +7 -0
  289. package/dist/cli-bundle/chunks/{get-DSDEKJ3L.js → get-LY6M2JIM.js} +121 -81
  290. package/dist/cli-bundle/chunks/get-LY6M2JIM.js.map +1 -0
  291. package/dist/cli-bundle/chunks/{health-3IPFLKXB.js → health-4RKHYS3T.js} +535 -371
  292. package/dist/cli-bundle/chunks/health-4RKHYS3T.js.map +1 -0
  293. package/dist/cli-bundle/chunks/{health-GZXGBZ36.js → health-TMFVNYRA.js} +534 -370
  294. package/dist/cli-bundle/chunks/health-TMFVNYRA.js.map +7 -0
  295. package/dist/cli-bundle/chunks/history-CGNQJXFE.js +18 -0
  296. package/dist/cli-bundle/chunks/{history-NERDJNUB.js → history-SGRRS72R.js} +8 -8
  297. package/dist/cli-bundle/chunks/{history-compact-2WRZ2WK4.js → history-compact-LOED43R3.js} +213 -134
  298. package/dist/cli-bundle/chunks/history-compact-LOED43R3.js.map +7 -0
  299. package/dist/cli-bundle/chunks/{history-compact-HR7BB4LR.js → history-compact-V5DNAQHH.js} +214 -135
  300. package/dist/cli-bundle/chunks/history-compact-V5DNAQHH.js.map +1 -0
  301. package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js → history-redact-IRL7WJ3E.js} +9 -9
  302. package/dist/cli-bundle/chunks/history-redact-N3JK7VBW.js +19 -0
  303. package/dist/cli-bundle/chunks/{history-repair-XA3LC4GA.js → history-repair-4WVBVHFR.js} +124 -84
  304. package/dist/cli-bundle/chunks/history-repair-4WVBVHFR.js.map +1 -0
  305. package/dist/cli-bundle/chunks/{history-repair-LCMOS45X.js → history-repair-PGYQJMGD.js} +123 -83
  306. package/dist/cli-bundle/chunks/history-repair-PGYQJMGD.js.map +7 -0
  307. package/dist/cli-bundle/chunks/{init-64XDLQJB.js → init-4GESW7RM.js} +12 -12
  308. package/dist/cli-bundle/chunks/init-XIDPABA4.js +22 -0
  309. package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js → learnings-4BHWFFUV.js} +9 -9
  310. package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js → learnings-4FJY7WIW.js} +9 -9
  311. package/dist/cli-bundle/chunks/{list-G5Y65VF6.js → list-472TIOVK.js} +8 -8
  312. package/dist/cli-bundle/chunks/{list-DNBJVO3E.js → list-D7BF5CL2.js} +8 -8
  313. package/dist/cli-bundle/chunks/{next-FYTQF6HG.js → next-D5STGWI2.js} +71 -46
  314. package/dist/cli-bundle/chunks/next-D5STGWI2.js.map +1 -0
  315. package/dist/cli-bundle/chunks/{next-BCERKDUR.js → next-SFQZVX2B.js} +70 -45
  316. package/dist/cli-bundle/chunks/next-SFQZVX2B.js.map +7 -0
  317. package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js → notes-6KNOSLIT.js} +9 -9
  318. package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js → notes-W4UEICGF.js} +9 -9
  319. package/dist/cli-bundle/chunks/{plan-RKZHQVXR.js → plan-JO6V7BXO.js} +373 -279
  320. package/dist/cli-bundle/chunks/plan-JO6V7BXO.js.map +1 -0
  321. package/dist/cli-bundle/chunks/{plan-4WXEQCTN.js → plan-MJQW5XK3.js} +372 -278
  322. package/dist/cli-bundle/chunks/plan-MJQW5XK3.js.map +7 -0
  323. package/dist/cli-bundle/chunks/{profile-4OMM32CD.js → profile-3TOTMUR4.js} +27 -19
  324. package/dist/cli-bundle/chunks/profile-3TOTMUR4.js.map +7 -0
  325. package/dist/cli-bundle/chunks/{profile-QLER5ENE.js → profile-WIQY2KCV.js} +28 -20
  326. package/dist/cli-bundle/chunks/profile-WIQY2KCV.js.map +1 -0
  327. package/dist/cli-bundle/chunks/register-list-query-ELBHCCFI.js +416 -0
  328. package/dist/cli-bundle/chunks/register-list-query-ELBHCCFI.js.map +7 -0
  329. package/dist/cli-bundle/chunks/register-list-query-GAPQ6DM3.js +406 -0
  330. package/dist/cli-bundle/chunks/register-list-query-GAPQ6DM3.js.map +1 -0
  331. package/dist/cli-bundle/chunks/{register-mutation-KK7PHYYU.js → register-mutation-ROFE2YPC.js} +729 -702
  332. package/dist/cli-bundle/chunks/register-mutation-ROFE2YPC.js.map +7 -0
  333. package/dist/cli-bundle/chunks/{register-mutation-ENNDUAZG.js → register-mutation-SJWMVIJ2.js} +730 -703
  334. package/dist/cli-bundle/chunks/register-mutation-SJWMVIJ2.js.map +1 -0
  335. package/dist/cli-bundle/chunks/{register-operations-HZ6XERQG.js → register-operations-IADFVH53.js} +389 -365
  336. package/dist/cli-bundle/chunks/register-operations-IADFVH53.js.map +7 -0
  337. package/dist/cli-bundle/chunks/register-operations-MEKU3AKC.js +510 -0
  338. package/dist/cli-bundle/chunks/register-operations-MEKU3AKC.js.map +1 -0
  339. package/dist/cli-bundle/chunks/{register-setup-ZKJ53RS7.js → register-setup-3QJY43CY.js} +128 -103
  340. package/dist/cli-bundle/chunks/register-setup-3QJY43CY.js.map +7 -0
  341. package/dist/cli-bundle/chunks/{register-setup-P67EMBDJ.js → register-setup-AJWUSSQX.js} +129 -104
  342. package/dist/cli-bundle/chunks/register-setup-AJWUSSQX.js.map +1 -0
  343. package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js → restore-44IHMMZZ.js} +9 -9
  344. package/dist/cli-bundle/chunks/restore-EXHU34EU.js +17 -0
  345. package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js → scheduling-shortcuts-OLHNLAZY.js} +12 -12
  346. package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js → scheduling-shortcuts-TSBK4AY5.js} +12 -12
  347. package/dist/cli-bundle/chunks/{schema-73HR2OJW.js → schema-IB2NZZWD.js} +7 -7
  348. package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js → schema-VBCELP5G.js} +7 -7
  349. package/dist/cli-bundle/chunks/{search-AXPXKZER.js → search-7UBETML4.js} +10 -10
  350. package/dist/cli-bundle/chunks/{search-KILGT37L.js → search-R227JOL6.js} +10 -10
  351. package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js → stats-FAG7COEH.js} +6 -6
  352. package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js → stats-MCK7PLYS.js} +6 -6
  353. package/dist/cli-bundle/chunks/{telemetry-GAHHQTOS.js → telemetry-DRPDZMAO.js} +84 -70
  354. package/dist/cli-bundle/chunks/telemetry-DRPDZMAO.js.map +7 -0
  355. package/dist/cli-bundle/chunks/{telemetry-BZUF6H7G.js → telemetry-GVVUQSJQ.js} +85 -71
  356. package/dist/cli-bundle/chunks/telemetry-GVVUQSJQ.js.map +1 -0
  357. package/dist/cli-bundle/chunks/{test-PWDIZ255.js → test-QY44WAMR.js} +15 -15
  358. package/dist/cli-bundle/chunks/{test-ACD52Z3S.js → test-SY76DZTO.js} +15 -15
  359. package/dist/cli-bundle/chunks/test-all-QD6QAEG7.js +430 -0
  360. package/dist/cli-bundle/chunks/test-all-QD6QAEG7.js.map +7 -0
  361. package/dist/cli-bundle/chunks/test-all-USPJHXFR.js +427 -0
  362. package/dist/cli-bundle/chunks/test-all-USPJHXFR.js.map +1 -0
  363. package/dist/cli-bundle/chunks/{test-runs-UXIXPDKU.js → test-runs-MG5VIGSK.js} +185 -147
  364. package/dist/cli-bundle/chunks/test-runs-MG5VIGSK.js.map +1 -0
  365. package/dist/cli-bundle/chunks/{test-runs-PLRAZEFW.js → test-runs-QIR5MJPL.js} +184 -146
  366. package/dist/cli-bundle/chunks/test-runs-QIR5MJPL.js.map +7 -0
  367. package/dist/cli-bundle/chunks/update-A7EICML6.js +24 -0
  368. package/dist/cli-bundle/chunks/{update-KFX2SIAC.js → update-IKJZWLQC.js} +15 -15
  369. package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js → update-many-BEMTDA2X.js} +84 -69
  370. package/dist/cli-bundle/chunks/{update-many-RNSBX2TA.js.map → update-many-BEMTDA2X.js.map} +1 -1
  371. package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js → update-many-RATAARHU.js} +83 -68
  372. package/dist/cli-bundle/chunks/{update-many-Z5GJS5LC.js.map → update-many-RATAARHU.js.map} +2 -2
  373. package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js → upgrade-NWMR3VQL.js} +11 -11
  374. package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js → upgrade-VU46BLJZ.js} +11 -11
  375. package/dist/cli-bundle/chunks/{validate-X5W76YJL.js → validate-GAJ6FUSI.js} +451 -321
  376. package/dist/cli-bundle/chunks/validate-GAJ6FUSI.js.map +1 -0
  377. package/dist/cli-bundle/chunks/{validate-MTUVL5VC.js → validate-NRY6MFXN.js} +450 -320
  378. package/dist/cli-bundle/chunks/validate-NRY6MFXN.js.map +7 -0
  379. package/dist/cli-bundle/main.js +1107 -916
  380. package/dist/cli-bundle/main.js.map +3 -3
  381. package/dist/core/config/nested-settings.js +89 -67
  382. package/dist/core/config/nested-settings.js.map +1 -1
  383. package/dist/core/governance/metadata-coverage.js +20 -28
  384. package/dist/core/governance/metadata-coverage.js.map +1 -1
  385. package/dist/core/history/drift-scan.js +93 -81
  386. package/dist/core/history/drift-scan.js.map +1 -1
  387. package/dist/core/item/item-type-definition.js +14 -14
  388. package/dist/core/item/item-type-definition.js.map +1 -1
  389. package/dist/core/item/type-registry.js +114 -99
  390. package/dist/core/item/type-registry.js.map +1 -1
  391. package/dist/core/output/mutation-projection.js +42 -26
  392. package/dist/core/output/mutation-projection.js.map +1 -1
  393. package/dist/core/schema/runtime-schema.js +97 -80
  394. package/dist/core/schema/runtime-schema.js.map +1 -1
  395. package/dist/core/schema/status-defs-file.js +26 -3
  396. package/dist/core/schema/status-defs-file.js.map +1 -1
  397. package/dist/core/search/corpus.js +25 -19
  398. package/dist/core/search/corpus.js.map +1 -1
  399. package/dist/core/search/semantic-defaults.js +64 -37
  400. package/dist/core/search/semantic-defaults.js.map +1 -1
  401. package/dist/core/search/vector-stores.js +32 -17
  402. package/dist/core/search/vector-stores.js.map +1 -1
  403. package/dist/core/sentry/helpers.js +31 -28
  404. package/dist/core/sentry/helpers.js.map +1 -1
  405. package/dist/core/sentry/instrument.js +54 -43
  406. package/dist/core/sentry/instrument.js.map +1 -1
  407. package/dist/core/shared/memo.d.ts +12 -0
  408. package/dist/core/shared/memo.js +25 -0
  409. package/dist/core/shared/memo.js.map +1 -0
  410. package/dist/core/shared/serialization.js +24 -14
  411. package/dist/core/shared/serialization.js.map +1 -1
  412. package/dist/core/shared/time.js +26 -4
  413. package/dist/core/shared/time.js.map +1 -1
  414. package/dist/core/store/front-matter-cache.d.ts +5 -0
  415. package/dist/core/store/front-matter-cache.js +316 -171
  416. package/dist/core/store/front-matter-cache.js.map +1 -1
  417. package/dist/core/store/item-store.js +33 -26
  418. package/dist/core/store/item-store.js.map +1 -1
  419. package/dist/core/store/settings.js +247 -203
  420. package/dist/core/store/settings.js.map +1 -1
  421. package/dist/core/test/background-runs.js +189 -160
  422. package/dist/core/test/background-runs.js.map +1 -1
  423. package/dist/sdk/cli-contracts/flag-contracts.js +71 -99
  424. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  425. package/dist/sdk/compose.js +51 -42
  426. package/dist/sdk/compose.js.map +1 -1
  427. package/docs/AGENT_GUIDE.md +2 -2
  428. package/docs/ARCHITECTURE.md +2 -2
  429. package/docs/COMMANDS.md +8 -4
  430. package/docs/CONFIGURATION.md +1 -1
  431. package/docs/EXTENSIONS.md +12 -12
  432. package/docs/ONBOARDING.md +4 -2
  433. package/docs/README.md +2 -0
  434. package/docs/examples/starter-extension/README.md +11 -10
  435. package/marketplace.json +3 -3
  436. package/package.json +2 -2
  437. package/packages/pm-beads/extensions/beads/runtime.ts +240 -167
  438. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +65 -58
  439. package/packages/pm-todos/extensions/todos/runtime.ts +65 -42
  440. package/plugins/pm-claude/.claude-plugin/plugin.json +2 -2
  441. package/plugins/pm-claude/README.md +6 -3
  442. package/plugins/pm-claude/commands/pm-init.md +1 -1
  443. package/dist/cli-bundle/chunks/activity-AW6XVFH6.js +0 -16
  444. package/dist/cli-bundle/chunks/aggregate-JTEF4BP7.js.map +0 -1
  445. package/dist/cli-bundle/chunks/chunk-22WKIL3H.js.map +0 -1
  446. package/dist/cli-bundle/chunks/chunk-2D4HATP2.js.map +0 -1
  447. package/dist/cli-bundle/chunks/chunk-3J6JRJ3I.js.map +0 -7
  448. package/dist/cli-bundle/chunks/chunk-3K2M5OYU.js.map +0 -7
  449. package/dist/cli-bundle/chunks/chunk-3S2KT7NG.js.map +0 -7
  450. package/dist/cli-bundle/chunks/chunk-3VGN2UWE.js.map +0 -1
  451. package/dist/cli-bundle/chunks/chunk-3XZCOZ5J.js.map +0 -1
  452. package/dist/cli-bundle/chunks/chunk-4XOIEKSD.js.map +0 -1
  453. package/dist/cli-bundle/chunks/chunk-55SNVXRQ.js.map +0 -7
  454. package/dist/cli-bundle/chunks/chunk-5CGRF3L5.js.map +0 -1
  455. package/dist/cli-bundle/chunks/chunk-7R4QEMZZ.js.map +0 -1
  456. package/dist/cli-bundle/chunks/chunk-AXIDKKAT.js.map +0 -1
  457. package/dist/cli-bundle/chunks/chunk-BDTISOSD.js.map +0 -7
  458. package/dist/cli-bundle/chunks/chunk-BZCEN4JA.js.map +0 -7
  459. package/dist/cli-bundle/chunks/chunk-CF7RL6FR.js.map +0 -1
  460. package/dist/cli-bundle/chunks/chunk-CWFNTKQJ.js.map +0 -1
  461. package/dist/cli-bundle/chunks/chunk-FFMQB7WR.js.map +0 -1
  462. package/dist/cli-bundle/chunks/chunk-HXTQJXWT.js.map +0 -1
  463. package/dist/cli-bundle/chunks/chunk-IPYBJWTE.js.map +0 -7
  464. package/dist/cli-bundle/chunks/chunk-IZBR4NRW.js.map +0 -7
  465. package/dist/cli-bundle/chunks/chunk-JLM7BHI7.js.map +0 -7
  466. package/dist/cli-bundle/chunks/chunk-JSU5P7VS.js.map +0 -1
  467. package/dist/cli-bundle/chunks/chunk-JWXRETDF.js.map +0 -1
  468. package/dist/cli-bundle/chunks/chunk-KNPEF7QG.js.map +0 -7
  469. package/dist/cli-bundle/chunks/chunk-MDPEOIGN.js.map +0 -7
  470. package/dist/cli-bundle/chunks/chunk-NFDPYAIP.js.map +0 -7
  471. package/dist/cli-bundle/chunks/chunk-NUHHPVVS.js.map +0 -7
  472. package/dist/cli-bundle/chunks/chunk-NWMZWYYB.js.map +0 -1
  473. package/dist/cli-bundle/chunks/chunk-OTUHB4HS.js.map +0 -1
  474. package/dist/cli-bundle/chunks/chunk-RGEMWD6Q.js.map +0 -7
  475. package/dist/cli-bundle/chunks/chunk-RLDHZHQS.js.map +0 -1
  476. package/dist/cli-bundle/chunks/chunk-RMMQ74TG.js.map +0 -7
  477. package/dist/cli-bundle/chunks/chunk-RVUALSJF.js.map +0 -7
  478. package/dist/cli-bundle/chunks/chunk-TP5Q5ZD3.js.map +0 -1
  479. package/dist/cli-bundle/chunks/chunk-V3NOKJF2.js.map +0 -1
  480. package/dist/cli-bundle/chunks/chunk-VARHOHYV.js.map +0 -7
  481. package/dist/cli-bundle/chunks/chunk-WYDHYJPO.js.map +0 -7
  482. package/dist/cli-bundle/chunks/chunk-YITK2PJ6.js.map +0 -7
  483. package/dist/cli-bundle/chunks/chunk-ZETXE4SE.js.map +0 -1
  484. package/dist/cli-bundle/chunks/close-E6ZZGCJY.js +0 -14
  485. package/dist/cli-bundle/chunks/close-many-BG5QQIDQ.js.map +0 -7
  486. package/dist/cli-bundle/chunks/close-many-LDRVEQY2.js.map +0 -1
  487. package/dist/cli-bundle/chunks/config-DMSU64QO.js +0 -1541
  488. package/dist/cli-bundle/chunks/config-DMSU64QO.js.map +0 -7
  489. package/dist/cli-bundle/chunks/config-QH2DICD6.js +0 -1531
  490. package/dist/cli-bundle/chunks/config-QH2DICD6.js.map +0 -1
  491. package/dist/cli-bundle/chunks/contracts-HN7ABKLP.js.map +0 -7
  492. package/dist/cli-bundle/chunks/contracts-W4FZVVD6.js.map +0 -1
  493. package/dist/cli-bundle/chunks/create-OH3BDGBB.js +0 -28
  494. package/dist/cli-bundle/chunks/get-A7MAOHCU.js.map +0 -7
  495. package/dist/cli-bundle/chunks/get-DSDEKJ3L.js.map +0 -1
  496. package/dist/cli-bundle/chunks/health-3IPFLKXB.js.map +0 -1
  497. package/dist/cli-bundle/chunks/health-GZXGBZ36.js.map +0 -7
  498. package/dist/cli-bundle/chunks/history-WSZHY3PN.js +0 -18
  499. package/dist/cli-bundle/chunks/history-compact-2WRZ2WK4.js.map +0 -7
  500. package/dist/cli-bundle/chunks/history-compact-HR7BB4LR.js.map +0 -1
  501. package/dist/cli-bundle/chunks/history-redact-MP6CH7U5.js +0 -19
  502. package/dist/cli-bundle/chunks/history-repair-LCMOS45X.js.map +0 -7
  503. package/dist/cli-bundle/chunks/history-repair-XA3LC4GA.js.map +0 -1
  504. package/dist/cli-bundle/chunks/init-PAX32BJA.js +0 -22
  505. package/dist/cli-bundle/chunks/next-BCERKDUR.js.map +0 -7
  506. package/dist/cli-bundle/chunks/next-FYTQF6HG.js.map +0 -1
  507. package/dist/cli-bundle/chunks/plan-4WXEQCTN.js.map +0 -7
  508. package/dist/cli-bundle/chunks/plan-RKZHQVXR.js.map +0 -1
  509. package/dist/cli-bundle/chunks/profile-4OMM32CD.js.map +0 -7
  510. package/dist/cli-bundle/chunks/profile-QLER5ENE.js.map +0 -1
  511. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js +0 -400
  512. package/dist/cli-bundle/chunks/register-list-query-7LV46VAU.js.map +0 -1
  513. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js +0 -410
  514. package/dist/cli-bundle/chunks/register-list-query-SNG5PGA4.js.map +0 -7
  515. package/dist/cli-bundle/chunks/register-mutation-ENNDUAZG.js.map +0 -1
  516. package/dist/cli-bundle/chunks/register-mutation-KK7PHYYU.js.map +0 -7
  517. package/dist/cli-bundle/chunks/register-operations-C6OWLDSH.js +0 -486
  518. package/dist/cli-bundle/chunks/register-operations-C6OWLDSH.js.map +0 -1
  519. package/dist/cli-bundle/chunks/register-operations-HZ6XERQG.js.map +0 -7
  520. package/dist/cli-bundle/chunks/register-setup-P67EMBDJ.js.map +0 -1
  521. package/dist/cli-bundle/chunks/register-setup-ZKJ53RS7.js.map +0 -7
  522. package/dist/cli-bundle/chunks/restore-YALDGTQR.js +0 -17
  523. package/dist/cli-bundle/chunks/telemetry-BZUF6H7G.js.map +0 -1
  524. package/dist/cli-bundle/chunks/telemetry-GAHHQTOS.js.map +0 -7
  525. package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js +0 -358
  526. package/dist/cli-bundle/chunks/test-all-L2MDDUCA.js.map +0 -1
  527. package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js +0 -361
  528. package/dist/cli-bundle/chunks/test-all-RBZ6DLU2.js.map +0 -7
  529. package/dist/cli-bundle/chunks/test-runs-PLRAZEFW.js.map +0 -7
  530. package/dist/cli-bundle/chunks/test-runs-UXIXPDKU.js.map +0 -1
  531. package/dist/cli-bundle/chunks/update-AMRSOIWP.js +0 -24
  532. package/dist/cli-bundle/chunks/validate-MTUVL5VC.js.map +0 -7
  533. package/dist/cli-bundle/chunks/validate-X5W76YJL.js.map +0 -1
  534. /package/dist/cli-bundle/chunks/{activity-DBLQVIP6.js.map → activity-5YWLSPGE.js.map} +0 -0
  535. /package/dist/cli-bundle/chunks/{activity-AW6XVFH6.js.map → activity-BIML7K2D.js.map} +0 -0
  536. /package/dist/cli-bundle/chunks/{append-LOVPGVPT.js.map → append-EZESUVJT.js.map} +0 -0
  537. /package/dist/cli-bundle/chunks/{append-QCFJSDFL.js.map → append-JFG4WQMG.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{chunk-BHO33VBQ.js.map → chunk-3W2HJKJX.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{chunk-4DUVCVLZ.js.map → chunk-4PFVUUYV.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{chunk-IJYK2T43.js.map → chunk-5E7N4T2Z.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{chunk-NKZAN7BD.js.map → chunk-5IZUBZBR.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{chunk-NOLPZMSV.js.map → chunk-5JIWFWOZ.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{chunk-6AQZPVHQ.js.map → chunk-6CDCWKSX.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{chunk-LB6TP6MC.js.map → chunk-6NYJGMTY.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{chunk-SLMUGTK3.js.map → chunk-7CLLC75T.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{chunk-2466X6E4.js.map → chunk-7LYO6S5A.js.map} +0 -0
  547. /package/dist/cli-bundle/chunks/{chunk-W4ULYO7Z.js.map → chunk-A3OQ7TFW.js.map} +0 -0
  548. /package/dist/cli-bundle/chunks/{chunk-GJ326ZKX.js.map → chunk-ER4ME5U2.js.map} +0 -0
  549. /package/dist/cli-bundle/chunks/{chunk-HZZEHPRG.js.map → chunk-ERG65A2L.js.map} +0 -0
  550. /package/dist/cli-bundle/chunks/{chunk-L5OEFZQG.js.map → chunk-FH2H3CBD.js.map} +0 -0
  551. /package/dist/cli-bundle/chunks/{chunk-JPECA746.js.map → chunk-FUFFPIYA.js.map} +0 -0
  552. /package/dist/cli-bundle/chunks/{chunk-27BXPBAY.js.map → chunk-GUYNUXQT.js.map} +0 -0
  553. /package/dist/cli-bundle/chunks/{chunk-MAUKX7JC.js.map → chunk-GVJE5T7Q.js.map} +0 -0
  554. /package/dist/cli-bundle/chunks/{chunk-ZRP4VG5U.js.map → chunk-JBZ2NTKX.js.map} +0 -0
  555. /package/dist/cli-bundle/chunks/{chunk-EJUDVUYZ.js.map → chunk-KEZOIPCR.js.map} +0 -0
  556. /package/dist/cli-bundle/chunks/{chunk-HYTGA6GI.js.map → chunk-MDHWWBNZ.js.map} +0 -0
  557. /package/dist/cli-bundle/chunks/{chunk-N74UMG5H.js.map → chunk-MEZZZBYX.js.map} +0 -0
  558. /package/dist/cli-bundle/chunks/{chunk-SDR5J34Q.js.map → chunk-NZ7QIUP5.js.map} +0 -0
  559. /package/dist/cli-bundle/chunks/{chunk-DDPTYJIM.js.map → chunk-P5L7Z2O6.js.map} +0 -0
  560. /package/dist/cli-bundle/chunks/{chunk-OGXLACHC.js.map → chunk-SU2E4AWU.js.map} +0 -0
  561. /package/dist/cli-bundle/chunks/{chunk-HPPFYYOV.js.map → chunk-SU3TB4NS.js.map} +0 -0
  562. /package/dist/cli-bundle/chunks/{chunk-G7I7DEZA.js.map → chunk-T4XBKJ3F.js.map} +0 -0
  563. /package/dist/cli-bundle/chunks/{chunk-VICZWYGZ.js.map → chunk-U5TR4N7J.js.map} +0 -0
  564. /package/dist/cli-bundle/chunks/{chunk-EVMTBV6V.js.map → chunk-UMNQZS4H.js.map} +0 -0
  565. /package/dist/cli-bundle/chunks/{chunk-A7FPBAQS.js.map → chunk-WJA3PXW7.js.map} +0 -0
  566. /package/dist/cli-bundle/chunks/{chunk-QCWF6IYD.js.map → chunk-YSDFIY7N.js.map} +0 -0
  567. /package/dist/cli-bundle/chunks/{chunk-UZIWVBE6.js.map → chunk-YSGTMDWC.js.map} +0 -0
  568. /package/dist/cli-bundle/chunks/{chunk-64HNBBFQ.js.map → chunk-Z5F6XZXE.js.map} +0 -0
  569. /package/dist/cli-bundle/chunks/{chunk-AVEE5EHK.js.map → chunk-Z7RPDF2Y.js.map} +0 -0
  570. /package/dist/cli-bundle/chunks/{claim-T3GCKV7C.js.map → claim-2BGBGSVI.js.map} +0 -0
  571. /package/dist/cli-bundle/chunks/{claim-EMQLYPRW.js.map → claim-5GU7OE67.js.map} +0 -0
  572. /package/dist/cli-bundle/chunks/{close-E6ZZGCJY.js.map → close-6YODBUIV.js.map} +0 -0
  573. /package/dist/cli-bundle/chunks/{close-TQYAAFJP.js.map → close-AFVKPR57.js.map} +0 -0
  574. /package/dist/cli-bundle/chunks/{comments-YUXJRZPQ.js.map → comments-DNWHEBOS.js.map} +0 -0
  575. /package/dist/cli-bundle/chunks/{comments-QCKR2YY2.js.map → comments-RW23R3VE.js.map} +0 -0
  576. /package/dist/cli-bundle/chunks/{context-B6275WPX.js.map → context-OYXRGY7S.js.map} +0 -0
  577. /package/dist/cli-bundle/chunks/{context-OCZ3FJ4Z.js.map → context-PKCEHQY3.js.map} +0 -0
  578. /package/dist/cli-bundle/chunks/{copy-DEM4DATS.js.map → copy-6XOR3HKN.js.map} +0 -0
  579. /package/dist/cli-bundle/chunks/{copy-BTJOSKKT.js.map → copy-I4NCLBR4.js.map} +0 -0
  580. /package/dist/cli-bundle/chunks/{create-RLRJMRTM.js.map → create-PM45M6PE.js.map} +0 -0
  581. /package/dist/cli-bundle/chunks/{create-OH3BDGBB.js.map → create-Z7YCH3BE.js.map} +0 -0
  582. /package/dist/cli-bundle/chunks/{delete-BHK7VB2Z.js.map → delete-7YXHYG67.js.map} +0 -0
  583. /package/dist/cli-bundle/chunks/{delete-LSVHAB4Y.js.map → delete-LPISP43T.js.map} +0 -0
  584. /package/dist/cli-bundle/chunks/{deps-XHYXWEPT.js.map → deps-N2T26FME.js.map} +0 -0
  585. /package/dist/cli-bundle/chunks/{deps-4UDFJRUA.js.map → deps-WATKQDE3.js.map} +0 -0
  586. /package/dist/cli-bundle/chunks/{docs-GYZNVS26.js.map → docs-6LQ3GLM7.js.map} +0 -0
  587. /package/dist/cli-bundle/chunks/{docs-26S44RXU.js.map → docs-Z3X6JZLT.js.map} +0 -0
  588. /package/dist/cli-bundle/chunks/{eval-UYF3ZPVO.js.map → eval-6DCLG52D.js.map} +0 -0
  589. /package/dist/cli-bundle/chunks/{eval-PGRVIJQU.js.map → eval-Y3ZCUTHK.js.map} +0 -0
  590. /package/dist/cli-bundle/chunks/{extension-CPSLJQVE.js.map → extension-BNINIMT7.js.map} +0 -0
  591. /package/dist/cli-bundle/chunks/{extension-CXJ6RELI.js.map → extension-QWE4YYK5.js.map} +0 -0
  592. /package/dist/cli-bundle/chunks/{files-NQHEXUZD.js.map → files-6SGKHS6O.js.map} +0 -0
  593. /package/dist/cli-bundle/chunks/{files-MBNICQFM.js.map → files-FUYPSOFJ.js.map} +0 -0
  594. /package/dist/cli-bundle/chunks/{focus-DWYIG7GU.js.map → focus-2Q3K76G2.js.map} +0 -0
  595. /package/dist/cli-bundle/chunks/{focus-XZW5423D.js.map → focus-ATLBWXXD.js.map} +0 -0
  596. /package/dist/cli-bundle/chunks/{gc-LPVMKJQJ.js.map → gc-RUYEMNRF.js.map} +0 -0
  597. /package/dist/cli-bundle/chunks/{gc-7GQYOS2G.js.map → gc-TDWSDR66.js.map} +0 -0
  598. /package/dist/cli-bundle/chunks/{history-WSZHY3PN.js.map → history-CGNQJXFE.js.map} +0 -0
  599. /package/dist/cli-bundle/chunks/{history-NERDJNUB.js.map → history-SGRRS72R.js.map} +0 -0
  600. /package/dist/cli-bundle/chunks/{history-redact-O3NBCNWC.js.map → history-redact-IRL7WJ3E.js.map} +0 -0
  601. /package/dist/cli-bundle/chunks/{history-redact-MP6CH7U5.js.map → history-redact-N3JK7VBW.js.map} +0 -0
  602. /package/dist/cli-bundle/chunks/{init-64XDLQJB.js.map → init-4GESW7RM.js.map} +0 -0
  603. /package/dist/cli-bundle/chunks/{init-PAX32BJA.js.map → init-XIDPABA4.js.map} +0 -0
  604. /package/dist/cli-bundle/chunks/{learnings-LPKCSJX7.js.map → learnings-4BHWFFUV.js.map} +0 -0
  605. /package/dist/cli-bundle/chunks/{learnings-JR6MA5TI.js.map → learnings-4FJY7WIW.js.map} +0 -0
  606. /package/dist/cli-bundle/chunks/{list-G5Y65VF6.js.map → list-472TIOVK.js.map} +0 -0
  607. /package/dist/cli-bundle/chunks/{list-DNBJVO3E.js.map → list-D7BF5CL2.js.map} +0 -0
  608. /package/dist/cli-bundle/chunks/{notes-2BMU3VVQ.js.map → notes-6KNOSLIT.js.map} +0 -0
  609. /package/dist/cli-bundle/chunks/{notes-6KTGO2OJ.js.map → notes-W4UEICGF.js.map} +0 -0
  610. /package/dist/cli-bundle/chunks/{restore-4MHZFJ2E.js.map → restore-44IHMMZZ.js.map} +0 -0
  611. /package/dist/cli-bundle/chunks/{restore-YALDGTQR.js.map → restore-EXHU34EU.js.map} +0 -0
  612. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-LB6DOLRL.js.map → scheduling-shortcuts-OLHNLAZY.js.map} +0 -0
  613. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-UTOYKLXQ.js.map → scheduling-shortcuts-TSBK4AY5.js.map} +0 -0
  614. /package/dist/cli-bundle/chunks/{schema-73HR2OJW.js.map → schema-IB2NZZWD.js.map} +0 -0
  615. /package/dist/cli-bundle/chunks/{schema-U6LJKSIR.js.map → schema-VBCELP5G.js.map} +0 -0
  616. /package/dist/cli-bundle/chunks/{search-AXPXKZER.js.map → search-7UBETML4.js.map} +0 -0
  617. /package/dist/cli-bundle/chunks/{search-KILGT37L.js.map → search-R227JOL6.js.map} +0 -0
  618. /package/dist/cli-bundle/chunks/{stats-W5KNVJWQ.js.map → stats-FAG7COEH.js.map} +0 -0
  619. /package/dist/cli-bundle/chunks/{stats-PSYVVTNZ.js.map → stats-MCK7PLYS.js.map} +0 -0
  620. /package/dist/cli-bundle/chunks/{test-PWDIZ255.js.map → test-QY44WAMR.js.map} +0 -0
  621. /package/dist/cli-bundle/chunks/{test-ACD52Z3S.js.map → test-SY76DZTO.js.map} +0 -0
  622. /package/dist/cli-bundle/chunks/{update-AMRSOIWP.js.map → update-A7EICML6.js.map} +0 -0
  623. /package/dist/cli-bundle/chunks/{update-KFX2SIAC.js.map → update-IKJZWLQC.js.map} +0 -0
  624. /package/dist/cli-bundle/chunks/{upgrade-BRL6KCOJ.js.map → upgrade-NWMR3VQL.js.map} +0 -0
  625. /package/dist/cli-bundle/chunks/{upgrade-HAK6JG2O.js.map → upgrade-VU46BLJZ.js.map} +0 -0
@@ -1,12 +1,12 @@
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]="2590e181-883c-5eca-b5d1-1b6c892dfb8a")}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]="962c869e-fec2-5e55-87c2-07feb8bf0782")}catch(e){}}();
3
3
  import { normalizeStatusInputWithRegistry, resolveRuntimeStatusRegistry, } from "../core/schema/runtime-schema.js";
4
4
  import { setActiveCommandResult } from "../core/extensions/index.js";
5
5
  import { EXIT_CODE } from "../core/shared/constants.js";
6
6
  import { PmCliError } from "../core/shared/errors.js";
7
7
  import { resolvePmRoot } from "../core/store/paths.js";
8
8
  import { readSettings } from "../core/store/settings.js";
9
- import { buildBackgroundTestAllCommandArgs, buildBackgroundTestCommandArgs, collect, getGlobalOptions, invalidateSearchCachesForMutation, printError, printResult, } from "./registration-helpers.js";
9
+ import { buildBackgroundTestAllCommandArgs, buildBackgroundTestCommandArgs, collect, getGlobalOptions, invalidateSearchCachesForMutation, printError, printResult, readOptionString, } from "./registration-helpers.js";
10
10
  /**
11
11
  * Resolve the status the `start-task` lifecycle alias should move an item to.
12
12
  * Resolves `in_progress` strictly through the workspace registry so a custom
@@ -39,6 +39,376 @@ function resolveTelemetrySubcommand(namespaceOrSubcommand, subcommand) {
39
39
  }
40
40
  return normalizedNamespace;
41
41
  }
42
+ function collectTestMutationValues(options) {
43
+ return {
44
+ addValues: Array.isArray(options.add) ? options.add : [],
45
+ addJsonValues: Array.isArray(options.addJson) ? options.addJson : [],
46
+ removeValues: Array.isArray(options.remove) ? options.remove : [],
47
+ };
48
+ }
49
+ function validateBackgroundTestOptions(options, values) {
50
+ if (options.background !== true) {
51
+ return;
52
+ }
53
+ if (options.run !== true) {
54
+ throw new PmCliError("--background requires --run", EXIT_CODE.USAGE);
55
+ }
56
+ if (values.addValues.length > 0 || values.addJsonValues.length > 0 || values.removeValues.length > 0) {
57
+ throw new PmCliError("--background does not support --add/--add-json/--remove; update linked tests first, then run in background", EXIT_CODE.USAGE);
58
+ }
59
+ }
60
+ async function runBackgroundLinkedTests(id, options, globalOptions, values) {
61
+ const { runStartBackgroundRun } = await import("./commands/test-runs.js");
62
+ const result = await runStartBackgroundRun({
63
+ kind: "test",
64
+ commandArgs: buildBackgroundTestCommandArgs(id, { ...options, add: values.addValues, addJson: values.addJsonValues, remove: values.removeValues }),
65
+ targetId: id,
66
+ author: typeof options.author === "string" ? options.author : undefined,
67
+ noExtensions: globalOptions.noExtensions === true,
68
+ }, globalOptions);
69
+ printResult(result, globalOptions);
70
+ }
71
+ function buildRunTestOptions(options, values) {
72
+ return {
73
+ add: values.addValues,
74
+ addJson: values.addJsonValues,
75
+ remove: values.removeValues,
76
+ list: Boolean(options.list),
77
+ run: Boolean(options.run),
78
+ match: typeof options.match === "string" ? options.match : undefined,
79
+ onlyIndex: typeof options.onlyIndex === "string" || typeof options.onlyIndex === "number" ? options.onlyIndex : undefined,
80
+ onlyLast: Boolean(options.onlyLast),
81
+ timeout: typeof options.timeout === "string" ? options.timeout : undefined,
82
+ progress: Boolean(options.progress),
83
+ envSet: Array.isArray(options.envSet) ? options.envSet : [],
84
+ envClear: Array.isArray(options.envClear) ? options.envClear : [],
85
+ sharedHostSafe: Boolean(options.sharedHostSafe),
86
+ pmContext: typeof options.pmContext === "string" ? options.pmContext : undefined,
87
+ overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
88
+ failOnContextMismatch: Boolean(options.failOnContextMismatch),
89
+ failOnSkipped: Boolean(options.failOnSkipped),
90
+ failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
91
+ requireAssertionsForPm: Boolean(options.requireAssertionsForPm),
92
+ checkContext: Boolean(options.checkContext),
93
+ autoPmContext: Boolean(options.autoPmContext),
94
+ author: typeof options.author === "string" ? options.author : undefined,
95
+ message: typeof options.message === "string" ? options.message : undefined,
96
+ force: Boolean(options.force),
97
+ };
98
+ }
99
+ async function runForegroundLinkedTests(id, options, globalOptions, values) {
100
+ const { runTest } = await import("./commands/test.js");
101
+ const result = await runTest(id, buildRunTestOptions(options, values), globalOptions);
102
+ if (values.addValues.length > 0 || values.addJsonValues.length > 0 || values.removeValues.length > 0 || options.run === true) {
103
+ await invalidateSearchCachesForMutation(globalOptions, result);
104
+ }
105
+ printResult(result, globalOptions);
106
+ if (result.run_results.some((entry) => entry.status === "failed") || result.fail_on_skipped_triggered === true) {
107
+ process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
108
+ }
109
+ }
110
+ async function runTestCommandAction(id, options, command) {
111
+ const globalOptions = getGlobalOptions(command);
112
+ const startedAt = Date.now();
113
+ const values = collectTestMutationValues(options);
114
+ validateBackgroundTestOptions(options, values);
115
+ if (options.background === true) {
116
+ await runBackgroundLinkedTests(id, options, globalOptions, values);
117
+ }
118
+ else {
119
+ await runForegroundLinkedTests(id, options, globalOptions, values);
120
+ }
121
+ if (globalOptions.profile) {
122
+ printError(`profile:command=test took_ms=${Date.now() - startedAt}`);
123
+ }
124
+ }
125
+ function buildLifecycleMutationOptions(options) {
126
+ return {
127
+ author: readOptionString(options, "author"),
128
+ message: readOptionString(options, "message"),
129
+ };
130
+ }
131
+ async function runTestAllAction(options, command) {
132
+ const globalOptions = getGlobalOptions(command);
133
+ const startedAt = Date.now();
134
+ const runInBackground = options.background === true;
135
+ if (runInBackground) {
136
+ const { runStartBackgroundRun } = await import("./commands/test-runs.js");
137
+ const result = await runStartBackgroundRun({
138
+ kind: "test-all",
139
+ commandArgs: buildBackgroundTestAllCommandArgs(options),
140
+ statusFilter: readOptionString(options, "status"),
141
+ noExtensions: globalOptions.noExtensions === true,
142
+ }, globalOptions);
143
+ printResult(result, globalOptions);
144
+ if (globalOptions.profile) {
145
+ printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
146
+ }
147
+ return;
148
+ }
149
+ const { runTestAll } = await import("./commands/test-all.js");
150
+ const result = await runTestAll({
151
+ status: readOptionString(options, "status"),
152
+ limit: readOptionString(options, "limit"),
153
+ offset: readOptionString(options, "offset"),
154
+ timeout: readOptionString(options, "timeout"),
155
+ progress: Boolean(options.progress),
156
+ envSet: Array.isArray(options.envSet) ? options.envSet : [],
157
+ envClear: Array.isArray(options.envClear) ? options.envClear : [],
158
+ sharedHostSafe: Boolean(options.sharedHostSafe),
159
+ pmContext: readOptionString(options, "pmContext"),
160
+ overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
161
+ failOnContextMismatch: Boolean(options.failOnContextMismatch),
162
+ failOnSkipped: Boolean(options.failOnSkipped),
163
+ failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
164
+ requireAssertionsForPm: Boolean(options.requireAssertionsForPm),
165
+ checkContext: Boolean(options.checkContext),
166
+ autoPmContext: Boolean(options.autoPmContext),
167
+ }, globalOptions);
168
+ await invalidateSearchCachesForMutation(globalOptions, { ids: result.results.map((entry) => entry.id) });
169
+ printResult(result, globalOptions);
170
+ if (result.failed > 0 || result.fail_on_skipped_triggered === true) {
171
+ process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
172
+ }
173
+ if (globalOptions.profile) {
174
+ printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
175
+ }
176
+ }
177
+ async function runTelemetryAction(namespaceOrSubcommand, subcommand, options, command) {
178
+ const globalOptions = getGlobalOptions(command);
179
+ const startedAt = Date.now();
180
+ const { runTelemetry } = await import("./commands/telemetry.js");
181
+ const result = await runTelemetry({
182
+ subcommand: resolveTelemetrySubcommand(namespaceOrSubcommand, subcommand),
183
+ // Commander always parses `--limit <n>` to a string (or leaves it
184
+ // undefined), so a string passthrough covers every CLI-reachable input.
185
+ limit: readOptionString(options, "limit"),
186
+ }, globalOptions);
187
+ printResult(result, globalOptions);
188
+ if (globalOptions.profile) {
189
+ printError(`profile:command=telemetry took_ms=${Date.now() - startedAt}`);
190
+ }
191
+ }
192
+ async function runStatsAction(options, command) {
193
+ const globalOptions = getGlobalOptions(command);
194
+ const startedAt = Date.now();
195
+ const { runStats } = await import("./commands/stats.js");
196
+ const result = await runStats(globalOptions, {
197
+ storage: options.storage === true,
198
+ metadataCoverage: options.metadataCoverage === true,
199
+ byAssignee: options.byAssignee === true,
200
+ byTag: options.byTag === true,
201
+ byPriority: options.byPriority === true,
202
+ tagPrefix: readOptionString(options, "tagPrefix"),
203
+ fieldUtilization: options.fieldUtilization === true,
204
+ });
205
+ printResult(result, globalOptions);
206
+ if (globalOptions.profile) {
207
+ printError(`profile:command=stats took_ms=${Date.now() - startedAt}`);
208
+ }
209
+ }
210
+ async function runHealthAction(options, command) {
211
+ const globalOptions = getGlobalOptions(command);
212
+ const startedAt = Date.now();
213
+ const { runHealth } = await import("./commands/health.js");
214
+ const result = await runHealth(globalOptions, {
215
+ strictDirectories: Boolean(options.strictDirectories),
216
+ checkOnly: Boolean(options.checkOnly),
217
+ checkTelemetry: Boolean(options.checkTelemetry),
218
+ noRefresh: Boolean(options.noRefresh),
219
+ refreshVectors: Boolean(options.refreshVectors),
220
+ verboseStaleItems: Boolean(options.verboseStaleItems),
221
+ brief: Boolean(options.brief),
222
+ summary: Boolean(options.summary),
223
+ skipVectors: Boolean(options.skipVectors),
224
+ skipIntegrity: Boolean(options.skipIntegrity),
225
+ skipDrift: Boolean(options.skipDrift),
226
+ full: Boolean(options.full),
227
+ });
228
+ printResult(result, globalOptions);
229
+ const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
230
+ if (strictExit && !result.ok) {
231
+ setActiveCommandResult({
232
+ ...result,
233
+ exit_code: EXIT_CODE.GENERIC_FAILURE,
234
+ error_code: "health_findings",
235
+ error_category: "validation",
236
+ command_resolution: "health_findings",
237
+ resolution_stage: "execute",
238
+ });
239
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
240
+ }
241
+ if (globalOptions.profile) {
242
+ printError(`profile:command=health took_ms=${Date.now() - startedAt}`);
243
+ }
244
+ }
245
+ async function runValidateAction(options, command) {
246
+ const globalOptions = getGlobalOptions(command);
247
+ const startedAt = Date.now();
248
+ const { runValidate } = await import("./commands/validate.js");
249
+ const result = await runValidate({
250
+ checkMetadata: Boolean(options.checkMetadata),
251
+ metadataProfile: readOptionString(options, "metadataProfile"),
252
+ checkResolution: Boolean(options.checkResolution),
253
+ checkLifecycle: Boolean(options.checkLifecycle),
254
+ checkStaleBlockers: Boolean(options.checkStaleBlockers),
255
+ dependencyCycleSeverity: readOptionString(options, "dependencyCycleSeverity"),
256
+ parentCycleSeverity: readOptionString(options, "parentCycleSeverity"),
257
+ checkFiles: Boolean(options.checkFiles),
258
+ checkCommandReferences: Boolean(options.checkCommandReferences),
259
+ scanMode: readOptionString(options, "scanMode"),
260
+ includePmInternals: Boolean(options.includePmInternals),
261
+ verboseFileLists: Boolean(options.verboseFileLists),
262
+ verboseDiagnostics: Boolean(options.verboseDiagnostics),
263
+ allAffectedIds: Boolean(options.allAffectedIds),
264
+ checkHistoryDrift: Boolean(options.checkHistoryDrift),
265
+ fixHints: Boolean(options.fixHints),
266
+ autoFix: Boolean(options.autoFix),
267
+ dryRun: Boolean(options.dryRun),
268
+ fixScope: Array.isArray(options.fixScope) ? options.fixScope : undefined,
269
+ pruneMissing: Boolean(options.pruneMissing),
270
+ }, globalOptions);
271
+ printResult(result, globalOptions);
272
+ const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
273
+ if (strictExit && (result.has_warnings || !result.ok)) {
274
+ setActiveCommandResult({
275
+ ...result,
276
+ exit_code: EXIT_CODE.GENERIC_FAILURE,
277
+ error_code: "validation_findings",
278
+ error_category: "validation",
279
+ command_resolution: "validation_findings",
280
+ resolution_stage: "execute",
281
+ });
282
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
283
+ }
284
+ if (globalOptions.profile) {
285
+ printError(`profile:command=validate took_ms=${Date.now() - startedAt}`);
286
+ }
287
+ }
288
+ async function runGcAction(options, command) {
289
+ const globalOptions = getGlobalOptions(command);
290
+ const startedAt = Date.now();
291
+ const { runGc } = await import("./commands/gc.js");
292
+ const result = await runGc(globalOptions, {
293
+ dryRun: options.dryRun === true,
294
+ scope: Array.isArray(options.scope) ? options.scope : [],
295
+ });
296
+ printResult(result, globalOptions);
297
+ if (globalOptions.profile) {
298
+ printError(`profile:command=gc took_ms=${Date.now() - startedAt}`);
299
+ }
300
+ }
301
+ async function runContractsAction(options, command) {
302
+ const globalOptions = getGlobalOptions(command);
303
+ const startedAt = Date.now();
304
+ const { runContracts } = await import("./commands/contracts.js");
305
+ const result = await runContracts({
306
+ action: readOptionString(options, "action"),
307
+ command: readOptionString(options, "command"),
308
+ schemaOnly: Boolean(options.schemaOnly),
309
+ flagsOnly: Boolean(options.flagsOnly),
310
+ availabilityOnly: Boolean(options.availabilityOnly),
311
+ runtimeOnly: Boolean(options.runtimeOnly) || Boolean(options.activeOnly),
312
+ full: Boolean(options.full),
313
+ }, globalOptions);
314
+ printResult(result, globalOptions);
315
+ if (globalOptions.profile) {
316
+ printError(`profile:command=contracts took_ms=${Date.now() - startedAt}`);
317
+ }
318
+ }
319
+ async function runClaimAction(id, options, command) {
320
+ const globalOptions = getGlobalOptions(command);
321
+ const startedAt = Date.now();
322
+ const { runClaim } = await import("./commands/claim.js");
323
+ const result = await runClaim(id, Boolean(options.force), globalOptions, {
324
+ ...buildLifecycleMutationOptions(options),
325
+ ifAvailable: options.ifAvailable === true,
326
+ });
327
+ await invalidateSearchCachesForMutation(globalOptions, result);
328
+ printResult(result, globalOptions);
329
+ if (globalOptions.profile) {
330
+ printError(`profile:command=claim took_ms=${Date.now() - startedAt}`);
331
+ }
332
+ }
333
+ async function runReleaseAction(id, options, command) {
334
+ const globalOptions = getGlobalOptions(command);
335
+ const startedAt = Date.now();
336
+ const { runRelease } = await import("./commands/claim.js");
337
+ const result = await runRelease(id, Boolean(options.force), globalOptions, {
338
+ ...buildLifecycleMutationOptions(options),
339
+ allowAuditRelease: options.allowAuditRelease === true,
340
+ });
341
+ await invalidateSearchCachesForMutation(globalOptions, result);
342
+ printResult(result, globalOptions);
343
+ if (globalOptions.profile) {
344
+ printError(`profile:command=release took_ms=${Date.now() - startedAt}`);
345
+ }
346
+ }
347
+ async function runStartTaskAction(id, options, command) {
348
+ const globalOptions = getGlobalOptions(command);
349
+ const startedAt = Date.now();
350
+ const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
351
+ const settings = await readSettings(pmRoot);
352
+ const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
353
+ const inProgressStatus = resolveStartTaskInProgressStatus(statusRegistry);
354
+ const force = Boolean(options.force);
355
+ const mutationOptions = buildLifecycleMutationOptions(options);
356
+ const [{ runClaim }, { runUpdate }] = await Promise.all([
357
+ import("./commands/claim.js"),
358
+ import("./commands/update.js"),
359
+ ]);
360
+ const claimResult = await runClaim(id, force, globalOptions, mutationOptions);
361
+ await invalidateSearchCachesForMutation(globalOptions, claimResult);
362
+ const updateResult = await runUpdate(id, { ...mutationOptions, status: inProgressStatus, force }, globalOptions);
363
+ await invalidateSearchCachesForMutation(globalOptions, updateResult);
364
+ printResult({ id, action: "start_task", claim: claimResult, update: updateResult }, globalOptions);
365
+ if (globalOptions.profile) {
366
+ printError(`profile:command=start-task took_ms=${Date.now() - startedAt}`);
367
+ }
368
+ }
369
+ async function runPauseTaskAction(id, options, command) {
370
+ const globalOptions = getGlobalOptions(command);
371
+ const startedAt = Date.now();
372
+ const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
373
+ const settings = await readSettings(pmRoot);
374
+ const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
375
+ const force = Boolean(options.force);
376
+ const mutationOptions = buildLifecycleMutationOptions(options);
377
+ const [{ runUpdate }, { runRelease }] = await Promise.all([
378
+ import("./commands/update.js"),
379
+ import("./commands/claim.js"),
380
+ ]);
381
+ const updateResult = await runUpdate(id, { ...mutationOptions, status: statusRegistry.open_status, force }, globalOptions);
382
+ await invalidateSearchCachesForMutation(globalOptions, updateResult);
383
+ const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
384
+ await invalidateSearchCachesForMutation(globalOptions, releaseResult);
385
+ printResult({ id, action: "pause_task", update: updateResult, release: releaseResult }, globalOptions);
386
+ if (globalOptions.profile) {
387
+ printError(`profile:command=pause-task took_ms=${Date.now() - startedAt}`);
388
+ }
389
+ }
390
+ async function runCloseTaskAction(id, reason, options, command) {
391
+ const globalOptions = getGlobalOptions(command);
392
+ const startedAt = Date.now();
393
+ const force = Boolean(options.force);
394
+ const mutationOptions = buildLifecycleMutationOptions(options);
395
+ const [{ runClose }, { runRelease }] = await Promise.all([
396
+ import("./commands/close.js"),
397
+ import("./commands/claim.js"),
398
+ ]);
399
+ const closeResult = await runClose(id, reason, {
400
+ ...mutationOptions,
401
+ validateClose: readOptionString(options, "validateClose"),
402
+ force,
403
+ }, globalOptions);
404
+ await invalidateSearchCachesForMutation(globalOptions, closeResult);
405
+ const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
406
+ await invalidateSearchCachesForMutation(globalOptions, releaseResult);
407
+ printResult({ id, action: "close_task", close: closeResult, release: releaseResult }, globalOptions);
408
+ if (globalOptions.profile) {
409
+ printError(`profile:command=close-task took_ms=${Date.now() - startedAt}`);
410
+ }
411
+ }
42
412
  /**
43
413
  * Implements register operation commands for the public runtime surface of this module.
44
414
  */
@@ -72,72 +442,7 @@ export function registerOperationCommands(program) {
72
442
  .option("--message <value>", "History message")
73
443
  .option("--force", "Force ownership override")
74
444
  .description("Manage tests linked to an item and optionally run them.")
75
- .action(async (id, options, command) => {
76
- const globalOptions = getGlobalOptions(command);
77
- const startedAt = Date.now();
78
- const addValues = Array.isArray(options.add) ? options.add : [];
79
- const addJsonValues = Array.isArray(options.addJson) ? options.addJson : [];
80
- const removeValues = Array.isArray(options.remove) ? options.remove : [];
81
- const runInBackground = options.background === true;
82
- if (runInBackground && options.run !== true) {
83
- throw new PmCliError("--background requires --run", EXIT_CODE.USAGE);
84
- }
85
- if (runInBackground && (addValues.length > 0 || addJsonValues.length > 0 || removeValues.length > 0)) {
86
- throw new PmCliError("--background does not support --add/--add-json/--remove; update linked tests first, then run in background", EXIT_CODE.USAGE);
87
- }
88
- if (runInBackground) {
89
- const { runStartBackgroundRun } = await import("./commands/test-runs.js");
90
- const result = await runStartBackgroundRun({
91
- kind: "test",
92
- commandArgs: buildBackgroundTestCommandArgs(id, { ...options, add: addValues, addJson: addJsonValues, remove: removeValues }),
93
- targetId: id,
94
- author: typeof options.author === "string" ? options.author : undefined,
95
- noExtensions: globalOptions.noExtensions === true,
96
- }, globalOptions);
97
- printResult(result, globalOptions);
98
- if (globalOptions.profile) {
99
- printError(`profile:command=test took_ms=${Date.now() - startedAt}`);
100
- }
101
- return;
102
- }
103
- const { runTest } = await import("./commands/test.js");
104
- const result = await runTest(id, {
105
- add: addValues,
106
- addJson: addJsonValues,
107
- remove: removeValues,
108
- list: Boolean(options.list),
109
- run: Boolean(options.run),
110
- match: typeof options.match === "string" ? options.match : undefined,
111
- onlyIndex: typeof options.onlyIndex === "string" || typeof options.onlyIndex === "number" ? options.onlyIndex : undefined,
112
- onlyLast: Boolean(options.onlyLast),
113
- timeout: typeof options.timeout === "string" ? options.timeout : undefined,
114
- progress: Boolean(options.progress),
115
- envSet: Array.isArray(options.envSet) ? options.envSet : [],
116
- envClear: Array.isArray(options.envClear) ? options.envClear : [],
117
- sharedHostSafe: Boolean(options.sharedHostSafe),
118
- pmContext: typeof options.pmContext === "string" ? options.pmContext : undefined,
119
- overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
120
- failOnContextMismatch: Boolean(options.failOnContextMismatch),
121
- failOnSkipped: Boolean(options.failOnSkipped),
122
- failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
123
- requireAssertionsForPm: Boolean(options.requireAssertionsForPm),
124
- checkContext: Boolean(options.checkContext),
125
- autoPmContext: Boolean(options.autoPmContext),
126
- author: typeof options.author === "string" ? options.author : undefined,
127
- message: typeof options.message === "string" ? options.message : undefined,
128
- force: Boolean(options.force),
129
- }, globalOptions);
130
- if (addValues.length > 0 || addJsonValues.length > 0 || removeValues.length > 0 || options.run === true) {
131
- await invalidateSearchCachesForMutation(globalOptions, result);
132
- }
133
- printResult(result, globalOptions);
134
- if (result.run_results.some((entry) => entry.status === "failed") || result.fail_on_skipped_triggered === true) {
135
- process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
136
- }
137
- if (globalOptions.profile) {
138
- printError(`profile:command=test took_ms=${Date.now() - startedAt}`);
139
- }
140
- });
445
+ .action(runTestCommandAction);
141
446
  program
142
447
  .command("test-all")
143
448
  .description("Run linked tests across matching items.")
@@ -158,52 +463,7 @@ export function registerOperationCommands(program) {
158
463
  .option("--require-assertions-for-pm", "Require assertion metadata for linked PM command tests")
159
464
  .option("--check-context", "Preflight linked PM command context diagnostics before executing commands")
160
465
  .option("--auto-pm-context", "Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context")
161
- .action(async (options, command) => {
162
- const globalOptions = getGlobalOptions(command);
163
- const startedAt = Date.now();
164
- const runInBackground = options.background === true;
165
- if (runInBackground) {
166
- const { runStartBackgroundRun } = await import("./commands/test-runs.js");
167
- const result = await runStartBackgroundRun({
168
- kind: "test-all",
169
- commandArgs: buildBackgroundTestAllCommandArgs(options),
170
- statusFilter: typeof options.status === "string" ? options.status : undefined,
171
- noExtensions: globalOptions.noExtensions === true,
172
- }, globalOptions);
173
- printResult(result, globalOptions);
174
- if (globalOptions.profile) {
175
- printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
176
- }
177
- return;
178
- }
179
- const { runTestAll } = await import("./commands/test-all.js");
180
- const result = await runTestAll({
181
- status: typeof options.status === "string" ? options.status : undefined,
182
- limit: typeof options.limit === "string" ? options.limit : undefined,
183
- offset: typeof options.offset === "string" ? options.offset : undefined,
184
- timeout: typeof options.timeout === "string" ? options.timeout : undefined,
185
- progress: Boolean(options.progress),
186
- envSet: Array.isArray(options.envSet) ? options.envSet : [],
187
- envClear: Array.isArray(options.envClear) ? options.envClear : [],
188
- sharedHostSafe: Boolean(options.sharedHostSafe),
189
- pmContext: typeof options.pmContext === "string" ? options.pmContext : undefined,
190
- overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
191
- failOnContextMismatch: Boolean(options.failOnContextMismatch),
192
- failOnSkipped: Boolean(options.failOnSkipped),
193
- failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
194
- requireAssertionsForPm: Boolean(options.requireAssertionsForPm),
195
- checkContext: Boolean(options.checkContext),
196
- autoPmContext: Boolean(options.autoPmContext),
197
- }, globalOptions);
198
- await invalidateSearchCachesForMutation(globalOptions, { ids: result.results.map((entry) => entry.id) });
199
- printResult(result, globalOptions);
200
- if (result.failed > 0 || result.fail_on_skipped_triggered === true) {
201
- process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
202
- }
203
- if (globalOptions.profile) {
204
- printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
205
- }
206
- });
466
+ .action(runTestAllAction);
207
467
  program
208
468
  .command("test-runs-worker", { hidden: true })
209
469
  .argument("<runId>", "Background run id")
@@ -219,21 +479,7 @@ export function registerOperationCommands(program) {
219
479
  .argument("[subcommand]", "Compatibility alias target for local-analytics: status, flush, stats, clear")
220
480
  .option("--limit <n>", "Maximum command groups returned by telemetry stats")
221
481
  .description("Inspect and manage local telemetry queue/runtime state.")
222
- .action(async (namespaceOrSubcommand, subcommand, options, command) => {
223
- const globalOptions = getGlobalOptions(command);
224
- const startedAt = Date.now();
225
- const { runTelemetry } = await import("./commands/telemetry.js");
226
- const result = await runTelemetry({
227
- subcommand: resolveTelemetrySubcommand(namespaceOrSubcommand, subcommand),
228
- // Commander always parses `--limit <n>` to a string (or leaves it
229
- // undefined), so a string passthrough covers every CLI-reachable input.
230
- limit: typeof options.limit === "string" ? options.limit : undefined,
231
- }, globalOptions);
232
- printResult(result, globalOptions);
233
- if (globalOptions.profile) {
234
- printError(`profile:command=telemetry took_ms=${Date.now() - startedAt}`);
235
- }
236
- });
482
+ .action(runTelemetryAction);
237
483
  program
238
484
  .command("stats")
239
485
  .description("Show project tracker statistics.")
@@ -244,24 +490,7 @@ export function registerOperationCommands(program) {
244
490
  .option("--by-priority", "Include a lifecycle-bucketed item breakdown grouped by priority")
245
491
  .option("--tag-prefix <value>", "With --by-tag: only count tags starting with this prefix (e.g. domain:)")
246
492
  .option("--field-utilization", "Report content-field utilization rates (notes/learnings/files/docs/tests/comments/deps/body) for governance audits")
247
- .action(async (options, command) => {
248
- const globalOptions = getGlobalOptions(command);
249
- const startedAt = Date.now();
250
- const { runStats } = await import("./commands/stats.js");
251
- const result = await runStats(globalOptions, {
252
- storage: options.storage === true,
253
- metadataCoverage: options.metadataCoverage === true,
254
- byAssignee: options.byAssignee === true,
255
- byTag: options.byTag === true,
256
- byPriority: options.byPriority === true,
257
- tagPrefix: typeof options.tagPrefix === "string" ? options.tagPrefix : undefined,
258
- fieldUtilization: options.fieldUtilization === true,
259
- });
260
- printResult(result, globalOptions);
261
- if (globalOptions.profile) {
262
- printError(`profile:command=stats took_ms=${Date.now() - startedAt}`);
263
- }
264
- });
493
+ .action(runStatsAction);
265
494
  program
266
495
  .command("health")
267
496
  .description("Show project tracker health checks.")
@@ -279,41 +508,7 @@ export function registerOperationCommands(program) {
279
508
  .option("--full", "Run all checks including slow integrity, drift, and vectorization checks")
280
509
  .option("--strict-exit", "Return non-zero exit when health is not ok (advisory telemetry warnings are excluded; see warnings[])")
281
510
  .option("--fail-on-warn", "Alias for --strict-exit")
282
- .action(async (options, command) => {
283
- const globalOptions = getGlobalOptions(command);
284
- const startedAt = Date.now();
285
- const { runHealth } = await import("./commands/health.js");
286
- const result = await runHealth(globalOptions, {
287
- strictDirectories: Boolean(options.strictDirectories),
288
- checkOnly: Boolean(options.checkOnly),
289
- checkTelemetry: Boolean(options.checkTelemetry),
290
- noRefresh: Boolean(options.noRefresh),
291
- refreshVectors: Boolean(options.refreshVectors),
292
- verboseStaleItems: Boolean(options.verboseStaleItems),
293
- brief: Boolean(options.brief),
294
- summary: Boolean(options.summary),
295
- skipVectors: Boolean(options.skipVectors),
296
- skipIntegrity: Boolean(options.skipIntegrity),
297
- skipDrift: Boolean(options.skipDrift),
298
- full: Boolean(options.full),
299
- });
300
- printResult(result, globalOptions);
301
- const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
302
- if (strictExit && !result.ok) {
303
- setActiveCommandResult({
304
- ...result,
305
- exit_code: EXIT_CODE.GENERIC_FAILURE,
306
- error_code: "health_findings",
307
- error_category: "validation",
308
- command_resolution: "health_findings",
309
- resolution_stage: "execute",
310
- });
311
- process.exitCode = EXIT_CODE.GENERIC_FAILURE;
312
- }
313
- if (globalOptions.profile) {
314
- printError(`profile:command=health took_ms=${Date.now() - startedAt}`);
315
- }
316
- });
511
+ .action(runHealthAction);
317
512
  program
318
513
  .command("validate")
319
514
  .description("Run standalone metadata, resolution, lifecycle, files, linked-command reference, and history drift validation checks.")
@@ -339,67 +534,13 @@ export function registerOperationCommands(program) {
339
534
  .option("--fix-scope <scope>", "Grant --auto-fix scopes (metadata, resolution, lifecycle; comma-separated or repeatable). Default: metadata, resolution; lifecycle must be named explicitly", collect)
340
535
  .option("--prune-missing", "Remove stale linked-file/doc LINKS whose paths classified as deleted (never touches real files)")
341
536
  .option("--check-history-drift", "Run item/history hash drift checks")
342
- .action(async (options, command) => {
343
- const globalOptions = getGlobalOptions(command);
344
- const startedAt = Date.now();
345
- const { runValidate } = await import("./commands/validate.js");
346
- const result = await runValidate({
347
- checkMetadata: Boolean(options.checkMetadata),
348
- metadataProfile: typeof options.metadataProfile === "string" ? options.metadataProfile : undefined,
349
- checkResolution: Boolean(options.checkResolution),
350
- checkLifecycle: Boolean(options.checkLifecycle),
351
- checkStaleBlockers: Boolean(options.checkStaleBlockers),
352
- dependencyCycleSeverity: typeof options.dependencyCycleSeverity === "string" ? options.dependencyCycleSeverity : undefined,
353
- parentCycleSeverity: typeof options.parentCycleSeverity === "string" ? options.parentCycleSeverity : undefined,
354
- checkFiles: Boolean(options.checkFiles),
355
- checkCommandReferences: Boolean(options.checkCommandReferences),
356
- scanMode: typeof options.scanMode === "string" ? options.scanMode : undefined,
357
- includePmInternals: Boolean(options.includePmInternals),
358
- verboseFileLists: Boolean(options.verboseFileLists),
359
- verboseDiagnostics: Boolean(options.verboseDiagnostics),
360
- allAffectedIds: Boolean(options.allAffectedIds),
361
- checkHistoryDrift: Boolean(options.checkHistoryDrift),
362
- fixHints: Boolean(options.fixHints),
363
- autoFix: Boolean(options.autoFix),
364
- dryRun: Boolean(options.dryRun),
365
- fixScope: Array.isArray(options.fixScope) ? options.fixScope : undefined,
366
- pruneMissing: Boolean(options.pruneMissing),
367
- }, globalOptions);
368
- printResult(result, globalOptions);
369
- const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
370
- if (strictExit && (result.has_warnings || !result.ok)) {
371
- setActiveCommandResult({
372
- ...result,
373
- exit_code: EXIT_CODE.GENERIC_FAILURE,
374
- error_code: "validation_findings",
375
- error_category: "validation",
376
- command_resolution: "validation_findings",
377
- resolution_stage: "execute",
378
- });
379
- process.exitCode = EXIT_CODE.GENERIC_FAILURE;
380
- }
381
- if (globalOptions.profile) {
382
- printError(`profile:command=validate took_ms=${Date.now() - startedAt}`);
383
- }
384
- });
537
+ .action(runValidateAction);
385
538
  program
386
539
  .command("gc")
387
540
  .option("--dry-run", "Preview cleanup targets without deleting files; without this flag, pm gc deletes matched artifacts")
388
541
  .option("--scope <value>", "Limit cleanup to one or more scopes (comma-separated or repeatable): index, embeddings, runtime, locks, checkpoints", collect)
389
542
  .description("Delete optional cache artifacts by default (including expired lock debris) and show a summary.")
390
- .action(async (options, command) => {
391
- const globalOptions = getGlobalOptions(command);
392
- const startedAt = Date.now();
393
- const { runGc } = await import("./commands/gc.js");
394
- const result = await runGc(globalOptions, {
395
- dryRun: options.dryRun === true,
396
- scope: Array.isArray(options.scope) ? options.scope : [],
397
- });
398
- printResult(result, globalOptions);
399
- if (globalOptions.profile) {
400
- printError(`profile:command=gc took_ms=${Date.now() - startedAt}`);
401
- }
402
- });
543
+ .action(runGcAction);
403
544
  program
404
545
  .command("contracts")
405
546
  .description("Show machine-readable command and schema contracts for agents.")
@@ -411,24 +552,7 @@ export function registerOperationCommands(program) {
411
552
  .option("--runtime-only", "Include only actions invocable in the current runtime")
412
553
  .option("--active-only", "Alias for --runtime-only")
413
554
  .option("--full", "Include full schema and command-flag surfaces (large; default brief output omits heavy sections for unfiltered queries)")
414
- .action(async (options, command) => {
415
- const globalOptions = getGlobalOptions(command);
416
- const startedAt = Date.now();
417
- const { runContracts } = await import("./commands/contracts.js");
418
- const result = await runContracts({
419
- action: typeof options.action === "string" ? options.action : undefined,
420
- command: typeof options.command === "string" ? options.command : undefined,
421
- schemaOnly: Boolean(options.schemaOnly),
422
- flagsOnly: Boolean(options.flagsOnly),
423
- availabilityOnly: Boolean(options.availabilityOnly),
424
- runtimeOnly: Boolean(options.runtimeOnly) || Boolean(options.activeOnly),
425
- full: Boolean(options.full),
426
- }, globalOptions);
427
- printResult(result, globalOptions);
428
- if (globalOptions.profile) {
429
- printError(`profile:command=contracts took_ms=${Date.now() - startedAt}`);
430
- }
431
- });
555
+ .action(runContractsAction);
432
556
  program
433
557
  .command("claim")
434
558
  .argument("<id>", "Item id")
@@ -437,21 +561,7 @@ export function registerOperationCommands(program) {
437
561
  .option("--force", "Force claim override")
438
562
  .option("--if-available", "Skip silently when the item is already claimed by another author (returns skipped=true)")
439
563
  .description("Claim an item for active work.")
440
- .action(async (id, options, command) => {
441
- const globalOptions = getGlobalOptions(command);
442
- const startedAt = Date.now();
443
- const { runClaim } = await import("./commands/claim.js");
444
- const result = await runClaim(id, Boolean(options.force), globalOptions, {
445
- author: typeof options.author === "string" ? options.author : undefined,
446
- message: typeof options.message === "string" ? options.message : undefined,
447
- ifAvailable: options.ifAvailable === true,
448
- });
449
- await invalidateSearchCachesForMutation(globalOptions, result);
450
- printResult(result, globalOptions);
451
- if (globalOptions.profile) {
452
- printError(`profile:command=claim took_ms=${Date.now() - startedAt}`);
453
- }
454
- });
564
+ .action(runClaimAction);
455
565
  program
456
566
  .command("release")
457
567
  .argument("<id>", "Item id")
@@ -460,21 +570,7 @@ export function registerOperationCommands(program) {
460
570
  .option("--allow-audit-release", "Allow non-owner release handoffs without requiring --force")
461
571
  .option("--force", "Force release override")
462
572
  .description("Release an item's active claim.")
463
- .action(async (id, options, command) => {
464
- const globalOptions = getGlobalOptions(command);
465
- const startedAt = Date.now();
466
- const { runRelease } = await import("./commands/claim.js");
467
- const result = await runRelease(id, Boolean(options.force), globalOptions, {
468
- author: typeof options.author === "string" ? options.author : undefined,
469
- message: typeof options.message === "string" ? options.message : undefined,
470
- allowAuditRelease: options.allowAuditRelease === true,
471
- });
472
- await invalidateSearchCachesForMutation(globalOptions, result);
473
- printResult(result, globalOptions);
474
- if (globalOptions.profile) {
475
- printError(`profile:command=release took_ms=${Date.now() - startedAt}`);
476
- }
477
- });
573
+ .action(runReleaseAction);
478
574
  program
479
575
  .command("start-task")
480
576
  .argument("<id>", "Item id")
@@ -482,31 +578,7 @@ export function registerOperationCommands(program) {
482
578
  .option("--message <value>", "History message")
483
579
  .option("--force", "Force ownership or terminal override when required")
484
580
  .description("Lifecycle alias: claim an item and move it to in_progress.")
485
- .action(async (id, options, command) => {
486
- const globalOptions = getGlobalOptions(command);
487
- const startedAt = Date.now();
488
- const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
489
- const settings = await readSettings(pmRoot);
490
- const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
491
- const inProgressStatus = resolveStartTaskInProgressStatus(statusRegistry);
492
- const force = Boolean(options.force);
493
- const mutationOptions = {
494
- author: typeof options.author === "string" ? options.author : undefined,
495
- message: typeof options.message === "string" ? options.message : undefined,
496
- };
497
- const [{ runClaim }, { runUpdate }] = await Promise.all([
498
- import("./commands/claim.js"),
499
- import("./commands/update.js"),
500
- ]);
501
- const claimResult = await runClaim(id, force, globalOptions, mutationOptions);
502
- await invalidateSearchCachesForMutation(globalOptions, claimResult);
503
- const updateResult = await runUpdate(id, { ...mutationOptions, status: inProgressStatus, force }, globalOptions);
504
- await invalidateSearchCachesForMutation(globalOptions, updateResult);
505
- printResult({ id, action: "start_task", claim: claimResult, update: updateResult }, globalOptions);
506
- if (globalOptions.profile) {
507
- printError(`profile:command=start-task took_ms=${Date.now() - startedAt}`);
508
- }
509
- });
581
+ .action(runStartTaskAction);
510
582
  program
511
583
  .command("pause-task")
512
584
  .argument("<id>", "Item id")
@@ -514,31 +586,7 @@ export function registerOperationCommands(program) {
514
586
  .option("--message <value>", "History message")
515
587
  .option("--force", "Force ownership override when required")
516
588
  .description("Lifecycle alias: move an item to open and release its claim.")
517
- .action(async (id, options, command) => {
518
- const globalOptions = getGlobalOptions(command);
519
- const startedAt = Date.now();
520
- const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
521
- const settings = await readSettings(pmRoot);
522
- const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
523
- const openStatus = statusRegistry.open_status;
524
- const force = Boolean(options.force);
525
- const mutationOptions = {
526
- author: typeof options.author === "string" ? options.author : undefined,
527
- message: typeof options.message === "string" ? options.message : undefined,
528
- };
529
- const [{ runUpdate }, { runRelease }] = await Promise.all([
530
- import("./commands/update.js"),
531
- import("./commands/claim.js"),
532
- ]);
533
- const updateResult = await runUpdate(id, { ...mutationOptions, status: openStatus, force }, globalOptions);
534
- await invalidateSearchCachesForMutation(globalOptions, updateResult);
535
- const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
536
- await invalidateSearchCachesForMutation(globalOptions, releaseResult);
537
- printResult({ id, action: "pause_task", update: updateResult, release: releaseResult }, globalOptions);
538
- if (globalOptions.profile) {
539
- printError(`profile:command=pause-task took_ms=${Date.now() - startedAt}`);
540
- }
541
- });
589
+ .action(runPauseTaskAction);
542
590
  program
543
591
  .command("close-task")
544
592
  .argument("<id>", "Item id")
@@ -548,31 +596,7 @@ export function registerOperationCommands(program) {
548
596
  .option("--validate-close <value>", "Close-time validation mode: off|warn|strict")
549
597
  .option("--force", "Force ownership or terminal override when required")
550
598
  .description("Lifecycle alias: close an item and release assignment metadata.")
551
- .action(async (id, reason, options, command) => {
552
- const globalOptions = getGlobalOptions(command);
553
- const startedAt = Date.now();
554
- const force = Boolean(options.force);
555
- const mutationOptions = {
556
- author: typeof options.author === "string" ? options.author : undefined,
557
- message: typeof options.message === "string" ? options.message : undefined,
558
- };
559
- const [{ runClose }, { runRelease }] = await Promise.all([
560
- import("./commands/close.js"),
561
- import("./commands/claim.js"),
562
- ]);
563
- const closeResult = await runClose(id, reason, {
564
- ...mutationOptions,
565
- validateClose: typeof options.validateClose === "string" ? options.validateClose : undefined,
566
- force,
567
- }, globalOptions);
568
- await invalidateSearchCachesForMutation(globalOptions, closeResult);
569
- const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
570
- await invalidateSearchCachesForMutation(globalOptions, releaseResult);
571
- printResult({ id, action: "close_task", close: closeResult, release: releaseResult }, globalOptions);
572
- if (globalOptions.profile) {
573
- printError(`profile:command=close-task took_ms=${Date.now() - startedAt}`);
574
- }
575
- });
599
+ .action(runCloseTaskAction);
576
600
  registerSchedulingShortcutCommands(program);
577
601
  }
578
602
  /**
@@ -676,4 +700,4 @@ function registerSchedulingShortcutCommands(program) {
676
700
  });
677
701
  }
678
702
  //# sourceMappingURL=register-operations.js.map
679
- //# debugId=2590e181-883c-5eca-b5d1-1b6c892dfb8a
703
+ //# debugId=962c869e-fec2-5e55-87c2-07feb8bf0782