@unbrained/pm-cli 2026.7.2 → 2026.7.4

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 (546) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/CHANGELOG.md +29 -0
  3. package/CONTRIBUTING.md +38 -9
  4. package/README.md +1 -5
  5. package/dist/cli/commander-usage.js +54 -41
  6. package/dist/cli/commander-usage.js.map +1 -1
  7. package/dist/cli/commands/activity.js +79 -57
  8. package/dist/cli/commands/activity.js.map +1 -1
  9. package/dist/cli/commands/calendar.js +3 -3
  10. package/dist/cli/commands/calendar.js.map +1 -1
  11. package/dist/cli/commands/close-many.js +106 -65
  12. package/dist/cli/commands/close-many.js.map +1 -1
  13. package/dist/cli/commands/completion.js +231 -345
  14. package/dist/cli/commands/completion.js.map +1 -1
  15. package/dist/cli/commands/create.d.ts +2 -59
  16. package/dist/cli/commands/create.js +38 -39
  17. package/dist/cli/commands/create.js.map +1 -1
  18. package/dist/cli/commands/extension/doctor.js +56 -67
  19. package/dist/cli/commands/extension/doctor.js.map +1 -1
  20. package/dist/cli/commands/extension/scaffold.js +54 -133
  21. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  22. package/dist/cli/commands/extension/shared.js +21 -15
  23. package/dist/cli/commands/extension/shared.js.map +1 -1
  24. package/dist/cli/commands/files.js +3 -3
  25. package/dist/cli/commands/files.js.map +1 -1
  26. package/dist/cli/commands/health.js +101 -112
  27. package/dist/cli/commands/health.js.map +1 -1
  28. package/dist/cli/commands/history-compact.js +9 -18
  29. package/dist/cli/commands/history-compact.js.map +1 -1
  30. package/dist/cli/commands/history-repair.js +9 -19
  31. package/dist/cli/commands/history-repair.js.map +1 -1
  32. package/dist/cli/commands/init-agent-guidance.js +160 -111
  33. package/dist/cli/commands/init-agent-guidance.js.map +1 -1
  34. package/dist/cli/commands/init.js +3 -3
  35. package/dist/cli/commands/init.js.map +1 -1
  36. package/dist/cli/commands/item-filter-options.d.ts +2 -0
  37. package/dist/cli/commands/item-filter-options.js +2 -2
  38. package/dist/cli/commands/item-filter-options.js.map +1 -1
  39. package/dist/cli/commands/mutation-command-options.d.ts +78 -0
  40. package/dist/cli/commands/mutation-command-options.js +10 -0
  41. package/dist/cli/commands/mutation-command-options.js.map +1 -0
  42. package/dist/cli/commands/next.js +13 -10
  43. package/dist/cli/commands/next.js.map +1 -1
  44. package/dist/cli/commands/profile.js +23 -15
  45. package/dist/cli/commands/profile.js.map +1 -1
  46. package/dist/cli/commands/reindex.js +3 -3
  47. package/dist/cli/commands/reindex.js.map +1 -1
  48. package/dist/cli/commands/shared-unset-fields.d.ts +19 -0
  49. package/dist/cli/commands/shared-unset-fields.js +31 -2
  50. package/dist/cli/commands/shared-unset-fields.js.map +1 -1
  51. package/dist/cli/commands/update.d.ts +2 -59
  52. package/dist/cli/commands/update.js +26 -97
  53. package/dist/cli/commands/update.js.map +1 -1
  54. package/dist/cli/commands/validate.d.ts +2 -0
  55. package/dist/cli/commands/validate.js +16 -4
  56. package/dist/cli/commands/validate.js.map +1 -1
  57. package/dist/cli/error-guidance.js +9 -6
  58. package/dist/cli/error-guidance.js.map +1 -1
  59. package/dist/cli/extension-command-help.js +27 -19
  60. package/dist/cli/extension-command-help.js.map +1 -1
  61. package/dist/cli/help-json-payload.js +57 -49
  62. package/dist/cli/help-json-payload.js.map +1 -1
  63. package/dist/cli/main.js +48 -32
  64. package/dist/cli/main.js.map +1 -1
  65. package/dist/cli/register-list-query.js +215 -213
  66. package/dist/cli/register-list-query.js.map +1 -1
  67. package/dist/cli/register-mutation.js +368 -368
  68. package/dist/cli/register-mutation.js.map +1 -1
  69. package/dist/cli/register-operations.js +303 -299
  70. package/dist/cli/register-operations.js.map +1 -1
  71. package/dist/cli/registration-helpers.d.ts +4 -0
  72. package/dist/cli/registration-helpers.js +51 -56
  73. package/dist/cli/registration-helpers.js.map +1 -1
  74. package/dist/cli-bundle/chunks/activity-IDS5GSYG.js +16 -0
  75. package/dist/cli-bundle/chunks/{activity-CUC4JY3U.js → activity-OENQCYZD.js} +9 -9
  76. package/dist/cli-bundle/chunks/{aggregate-SW5PNGCS.js → aggregate-EC4LWS3U.js} +8 -8
  77. package/dist/cli-bundle/chunks/{aggregate-DKUTRY6R.js → aggregate-RCB3QJJE.js} +8 -8
  78. package/dist/cli-bundle/chunks/{append-H32VOR2Y.js → append-ADBOI3A6.js} +8 -8
  79. package/dist/cli-bundle/chunks/{append-UBM632FK.js → append-XLEKVVWB.js} +8 -8
  80. package/dist/cli-bundle/chunks/{chunk-Q6NXOHS6.js → chunk-2LRMWMZ6.js} +7 -7
  81. package/dist/cli-bundle/chunks/{chunk-2227673O.js → chunk-2ONH3WG6.js} +32 -13
  82. package/dist/cli-bundle/chunks/{chunk-2227673O.js.map → chunk-2ONH3WG6.js.map} +1 -1
  83. package/dist/cli-bundle/chunks/{chunk-MNBPX5JS.js → chunk-2VK677OA.js} +72 -49
  84. package/dist/cli-bundle/chunks/chunk-2VK677OA.js.map +7 -0
  85. package/dist/cli-bundle/chunks/{chunk-KLXF7NCC.js → chunk-3C5T3ZEO.js} +2 -2
  86. package/dist/cli-bundle/chunks/{chunk-JMK5GCK2.js → chunk-3MLQZI3H.js} +2 -2
  87. package/dist/cli-bundle/chunks/{chunk-BTX5MIQF.js → chunk-4EVY7CQN.js} +2 -2
  88. package/dist/cli-bundle/chunks/{chunk-Q6K2OACU.js → chunk-4IW7STMB.js} +7 -7
  89. package/dist/cli-bundle/chunks/{chunk-6YCYF2AI.js → chunk-4KPQQ42D.js} +166 -110
  90. package/dist/cli-bundle/chunks/chunk-4KPQQ42D.js.map +1 -0
  91. package/dist/cli-bundle/chunks/{chunk-BVZZN2LH.js → chunk-4OXNQHKQ.js} +23 -17
  92. package/dist/cli-bundle/chunks/{chunk-BVZZN2LH.js.map → chunk-4OXNQHKQ.js.map} +2 -2
  93. package/dist/cli-bundle/chunks/{chunk-UWKEJMZU.js → chunk-4PJYRA3V.js} +31 -12
  94. package/dist/cli-bundle/chunks/{chunk-UWKEJMZU.js.map → chunk-4PJYRA3V.js.map} +3 -3
  95. package/dist/cli-bundle/chunks/{chunk-EMPGXBUF.js → chunk-4SHME4VR.js} +2 -2
  96. package/dist/cli-bundle/chunks/{chunk-6ITZLD4T.js → chunk-5FYY76HR.js} +28 -99
  97. package/dist/cli-bundle/chunks/chunk-5FYY76HR.js.map +7 -0
  98. package/dist/cli-bundle/chunks/{chunk-OTUJZKGI.js → chunk-6QY2NA2M.js} +24 -18
  99. package/dist/cli-bundle/chunks/{chunk-OTUJZKGI.js.map → chunk-6QY2NA2M.js.map} +1 -1
  100. package/dist/cli-bundle/chunks/{chunk-2KWL5NPW.js → chunk-6YB7HG2J.js} +2 -2
  101. package/dist/cli-bundle/chunks/{chunk-36UGKF4O.js → chunk-724VLYDJ.js} +2 -2
  102. package/dist/cli-bundle/chunks/{chunk-XCHUVHKU.js → chunk-75VMARGO.js} +11 -11
  103. package/dist/cli-bundle/chunks/chunk-75VMARGO.js.map +1 -0
  104. package/dist/cli-bundle/chunks/{chunk-XWGEMNBR.js → chunk-7745CXNI.js} +119 -195
  105. package/dist/cli-bundle/chunks/chunk-7745CXNI.js.map +7 -0
  106. package/dist/cli-bundle/chunks/{chunk-YPKFV2JR.js → chunk-7G5SUU6F.js} +76 -54
  107. package/dist/cli-bundle/chunks/chunk-7G5SUU6F.js.map +1 -0
  108. package/dist/cli-bundle/chunks/{chunk-Y4NRKBFW.js → chunk-7ITQSEBL.js} +3 -3
  109. package/dist/cli-bundle/chunks/{chunk-W47SML5B.js → chunk-A222YWOQ.js} +7 -7
  110. package/dist/cli-bundle/chunks/{chunk-3LCUASYG.js → chunk-A2W3XKAD.js} +2 -2
  111. package/dist/cli-bundle/chunks/{chunk-KN3URLKS.js → chunk-AOP2EMK3.js} +3 -3
  112. package/dist/cli-bundle/chunks/{chunk-RM37OPYK.js → chunk-AZMPKLIA.js} +72 -49
  113. package/dist/cli-bundle/chunks/chunk-AZMPKLIA.js.map +1 -0
  114. package/dist/cli-bundle/chunks/{chunk-7NSPKJUS.js → chunk-BDDYM4LH.js} +262 -252
  115. package/dist/cli-bundle/chunks/chunk-BDDYM4LH.js.map +7 -0
  116. package/dist/cli-bundle/chunks/{chunk-JXAUVO6X.js → chunk-CN4OAA2G.js} +55 -20
  117. package/dist/cli-bundle/chunks/chunk-CN4OAA2G.js.map +7 -0
  118. package/dist/cli-bundle/chunks/{chunk-IEEJQCZ4.js → chunk-CQFZRLXQ.js} +3 -3
  119. package/dist/cli-bundle/chunks/{chunk-4NUOWFBT.js → chunk-CQISNF3Z.js} +7 -7
  120. package/dist/cli-bundle/chunks/{chunk-S62UANU7.js → chunk-D2LDM35X.js} +3 -3
  121. package/dist/cli-bundle/chunks/{chunk-GRRG3MCT.js → chunk-DEIDJQZK.js} +57 -136
  122. package/dist/cli-bundle/chunks/chunk-DEIDJQZK.js.map +7 -0
  123. package/dist/cli-bundle/chunks/{chunk-IG5JYZGU.js → chunk-DJ5S2LDY.js} +7 -7
  124. package/dist/cli-bundle/chunks/{chunk-A6VOGKBA.js → chunk-EB4BBEZD.js} +6 -6
  125. package/dist/cli-bundle/chunks/{chunk-QH3FSKRJ.js → chunk-EH23N5FX.js} +2 -2
  126. package/dist/cli-bundle/chunks/{chunk-HQTPRV4D.js → chunk-FDNJMYZB.js} +6 -6
  127. package/dist/cli-bundle/chunks/{chunk-K2VYLVX4.js → chunk-FMWQRMHS.js} +33 -6
  128. package/dist/cli-bundle/chunks/chunk-FMWQRMHS.js.map +1 -0
  129. package/dist/cli-bundle/chunks/{chunk-N2JSWVWG.js → chunk-HL742IBM.js} +4 -4
  130. package/dist/cli-bundle/chunks/{chunk-3AZUFQK6.js → chunk-J4KNRDI3.js} +59 -70
  131. package/dist/cli-bundle/chunks/{chunk-3AZUFQK6.js.map → chunk-J4KNRDI3.js.map} +1 -1
  132. package/dist/cli-bundle/chunks/{chunk-66Z3X7ZG.js → chunk-JYLFF7GJ.js} +166 -110
  133. package/dist/cli-bundle/chunks/chunk-JYLFF7GJ.js.map +7 -0
  134. package/dist/cli-bundle/chunks/{chunk-GFMSLORL.js → chunk-JZJJEJBR.js} +75 -53
  135. package/dist/cli-bundle/chunks/chunk-JZJJEJBR.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-7TH5NMVB.js → chunk-KKHIQOTN.js} +25 -19
  137. package/dist/cli-bundle/chunks/chunk-KKHIQOTN.js.map +7 -0
  138. package/dist/cli-bundle/chunks/{chunk-5GVTFFTC.js → chunk-LLQLLAKU.js} +118 -194
  139. package/dist/cli-bundle/chunks/chunk-LLQLLAKU.js.map +1 -0
  140. package/dist/cli-bundle/chunks/{chunk-KIYCOJ63.js → chunk-M34MVAOP.js} +58 -137
  141. package/dist/cli-bundle/chunks/chunk-M34MVAOP.js.map +1 -0
  142. package/dist/cli-bundle/chunks/{chunk-CZPVDLD2.js → chunk-M6PR5BC6.js} +7 -7
  143. package/dist/cli-bundle/chunks/{chunk-XEWQKDYZ.js → chunk-MTB4PRA3.js} +10 -10
  144. package/dist/cli-bundle/chunks/chunk-MTB4PRA3.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-MRD4T5LF.js → chunk-MZ4NH46V.js} +2 -2
  146. package/dist/cli-bundle/chunks/{chunk-AIAIXG7I.js → chunk-MZG6I2Q2.js} +39 -5
  147. package/dist/cli-bundle/chunks/chunk-MZG6I2Q2.js.map +7 -0
  148. package/dist/cli-bundle/chunks/{chunk-ZNHEYCDD.js → chunk-N2LOJUBB.js} +2 -2
  149. package/dist/cli-bundle/chunks/{chunk-WJAMWAHZ.js → chunk-NGDK3KEZ.js} +5 -5
  150. package/dist/cli-bundle/chunks/{chunk-SYNKD3ZG.js → chunk-NHDR3UCW.js} +46 -60
  151. package/dist/cli-bundle/chunks/chunk-NHDR3UCW.js.map +7 -0
  152. package/dist/cli-bundle/chunks/{chunk-2CHRYUXL.js → chunk-NHKXOMZ5.js} +2 -2
  153. package/dist/cli-bundle/chunks/{chunk-7MYWF4ZX.js → chunk-OTSP6UEX.js} +7 -7
  154. package/dist/cli-bundle/chunks/{chunk-UGLU6Q2I.js → chunk-PUVPC5DL.js} +4 -4
  155. package/dist/cli-bundle/chunks/{chunk-LTRAF2D7.js → chunk-PV5JS7MP.js} +3 -3
  156. package/dist/cli-bundle/chunks/{chunk-KCO2EAN5.js → chunk-Q2266G4S.js} +3 -3
  157. package/dist/cli-bundle/chunks/{chunk-SYVUU7EK.js → chunk-Q3XVLRCJ.js} +9 -9
  158. package/dist/cli-bundle/chunks/{chunk-AJEBCRIY.js → chunk-QFXFKYNQ.js} +47 -61
  159. package/dist/cli-bundle/chunks/chunk-QFXFKYNQ.js.map +1 -0
  160. package/dist/cli-bundle/chunks/{chunk-6ZMBJRDJ.js → chunk-R7EMP4JG.js} +9 -9
  161. package/dist/cli-bundle/chunks/{chunk-SPM2XLWI.js → chunk-SBNT6SLO.js} +22 -7
  162. package/dist/cli-bundle/chunks/chunk-SBNT6SLO.js.map +7 -0
  163. package/dist/cli-bundle/chunks/{chunk-I66WE2HE.js → chunk-SL2ANJSV.js} +260 -250
  164. package/dist/cli-bundle/chunks/chunk-SL2ANJSV.js.map +1 -0
  165. package/dist/cli-bundle/chunks/{chunk-U2BEEM2X.js → chunk-T5RTYLZJ.js} +3 -3
  166. package/dist/cli-bundle/chunks/{chunk-UTSH5GWX.js → chunk-TGYDJEJH.js} +7 -7
  167. package/dist/cli-bundle/chunks/{chunk-H4GRLYJS.js → chunk-TO4KCIOT.js} +3 -3
  168. package/dist/cli-bundle/chunks/{chunk-EUKTMRN3.js → chunk-TUV7SIWZ.js} +2 -2
  169. package/dist/cli-bundle/chunks/{chunk-N3QCJS4M.js → chunk-UGDONITK.js} +58 -69
  170. package/dist/cli-bundle/chunks/{chunk-N3QCJS4M.js.map → chunk-UGDONITK.js.map} +2 -2
  171. package/dist/cli-bundle/chunks/{chunk-NRZS637N.js → chunk-UYLA5ROU.js} +56 -21
  172. package/dist/cli-bundle/chunks/chunk-UYLA5ROU.js.map +1 -0
  173. package/dist/cli-bundle/chunks/{chunk-55XRYWEG.js → chunk-V655JQ5J.js} +8 -8
  174. package/dist/cli-bundle/chunks/{chunk-3Q2HBMTI.js → chunk-W5X3AHJN.js} +2 -2
  175. package/dist/cli-bundle/chunks/{chunk-XTHQWXVC.js → chunk-WBWRQS32.js} +5 -5
  176. package/dist/cli-bundle/chunks/{chunk-UT73HUPC.js → chunk-WOOB7PV7.js} +3 -3
  177. package/dist/cli-bundle/chunks/{chunk-5PGBHRY3.js → chunk-WSDIALO4.js} +2 -2
  178. package/dist/cli-bundle/chunks/{chunk-LRKMWUUV.js → chunk-WTXDLBSZ.js} +2 -2
  179. package/dist/cli-bundle/chunks/{chunk-FFOQHGNH.js → chunk-XBIYI23P.js} +8 -8
  180. package/dist/cli-bundle/chunks/{chunk-7W4H4K26.js → chunk-XFO2NJY6.js} +29 -100
  181. package/dist/cli-bundle/chunks/chunk-XFO2NJY6.js.map +1 -0
  182. package/dist/cli-bundle/chunks/{chunk-TPOFWBMY.js → chunk-XQCWTSLO.js} +26 -20
  183. package/dist/cli-bundle/chunks/chunk-XQCWTSLO.js.map +1 -0
  184. package/dist/cli-bundle/chunks/{chunk-2ASNV4DH.js → chunk-Y2VSCQ77.js} +4 -4
  185. package/dist/cli-bundle/chunks/{chunk-ZNT7KEWE.js → chunk-YZR7UMZ6.js} +2 -2
  186. package/dist/cli-bundle/chunks/{chunk-YLZZ6T54.js → chunk-YZWXMDNH.js} +23 -8
  187. package/dist/cli-bundle/chunks/chunk-YZWXMDNH.js.map +1 -0
  188. package/dist/cli-bundle/chunks/{chunk-CYBDUHNO.js → chunk-ZIEGTQCY.js} +3 -3
  189. package/dist/cli-bundle/chunks/{chunk-TTHCEV5Q.js → chunk-ZZWMJVW2.js} +4 -4
  190. package/dist/cli-bundle/chunks/{claim-Z7MEQCBT.js → claim-D6L33A5Y.js} +8 -8
  191. package/dist/cli-bundle/chunks/{claim-SENTPZBN.js → claim-YAFUTPVK.js} +8 -8
  192. package/dist/cli-bundle/chunks/close-KLDLHAOP.js +14 -0
  193. package/dist/cli-bundle/chunks/{close-424MX4CU.js → close-TGYXG7TV.js} +7 -7
  194. package/dist/cli-bundle/chunks/{close-many-SWY34BII.js → close-many-4QSWKCRU.js} +119 -76
  195. package/dist/cli-bundle/chunks/close-many-4QSWKCRU.js.map +7 -0
  196. package/dist/cli-bundle/chunks/{close-many-2IV4J2TR.js → close-many-SNA6LNZH.js} +120 -77
  197. package/dist/cli-bundle/chunks/close-many-SNA6LNZH.js.map +1 -0
  198. package/dist/cli-bundle/chunks/{comments-4FGNTSNV.js → comments-QC6ARR5X.js} +9 -9
  199. package/dist/cli-bundle/chunks/{comments-7YS5MY5X.js → comments-ZHVYGUVC.js} +9 -9
  200. package/dist/cli-bundle/chunks/{config-G74GISC4.js → config-O6W2EU2G.js} +7 -7
  201. package/dist/cli-bundle/chunks/{config-BZJKK7FZ.js → config-XQRFJXJP.js} +7 -7
  202. package/dist/cli-bundle/chunks/{context-LHVKJSPJ.js → context-IHE3IXN5.js} +12 -12
  203. package/dist/cli-bundle/chunks/{context-ZQY54JNS.js → context-WSYWBEUL.js} +12 -12
  204. package/dist/cli-bundle/chunks/{contracts-FIZLMP7O.js → contracts-CVBINC7C.js} +3 -3
  205. package/dist/cli-bundle/chunks/{contracts-CP2EZJC7.js → contracts-NLCDIZAT.js} +3 -3
  206. package/dist/cli-bundle/chunks/{copy-TLW7JTQT.js → copy-7MUQC44A.js} +5 -5
  207. package/dist/cli-bundle/chunks/{copy-GYNQQPW2.js → copy-ANWXDJVC.js} +5 -5
  208. package/dist/cli-bundle/chunks/create-AJ6HUR5W.js +28 -0
  209. package/dist/cli-bundle/chunks/{create-VSKYSOCD.js → create-JIA2IFCO.js} +12 -12
  210. package/dist/cli-bundle/chunks/{delete-ANTOTI2I.js → delete-5OLYWQIC.js} +5 -5
  211. package/dist/cli-bundle/chunks/{delete-4W5JYCEG.js → delete-INHKCIRN.js} +5 -5
  212. package/dist/cli-bundle/chunks/{deps-HPPE6MJN.js → deps-CCSWGZW7.js} +5 -5
  213. package/dist/cli-bundle/chunks/{deps-ZQZN54EZ.js → deps-IYEID3QX.js} +5 -5
  214. package/dist/cli-bundle/chunks/{docs-XJNYBJGE.js → docs-3XZK22WF.js} +7 -7
  215. package/dist/cli-bundle/chunks/{docs-RPOVFMP3.js → docs-PKO7OEIM.js} +7 -7
  216. package/dist/cli-bundle/chunks/{eval-RFBI5FGS.js → eval-5XYP6NMY.js} +10 -10
  217. package/dist/cli-bundle/chunks/{eval-DM6JBZTS.js → eval-O4WGQYDI.js} +10 -10
  218. package/dist/cli-bundle/chunks/{extension-TTSEFQTS.js → extension-PVGRRZZG.js} +11 -11
  219. package/dist/cli-bundle/chunks/{extension-B3YY4WY5.js → extension-T7JNTAAA.js} +11 -11
  220. package/dist/cli-bundle/chunks/{files-5D65CHGE.js → files-7IU56S6R.js} +10 -10
  221. package/dist/cli-bundle/chunks/files-7IU56S6R.js.map +1 -0
  222. package/dist/cli-bundle/chunks/{files-GPIG77EN.js → files-W7HH5EOD.js} +9 -9
  223. package/dist/cli-bundle/chunks/{files-GPIG77EN.js.map → files-W7HH5EOD.js.map} +1 -1
  224. package/dist/cli-bundle/chunks/{focus-ZHN7WIGX.js → focus-6FA5KYRY.js} +6 -6
  225. package/dist/cli-bundle/chunks/{focus-C3PEJV2C.js → focus-CQ63JFDG.js} +6 -6
  226. package/dist/cli-bundle/chunks/{gc-D4JQ6OWN.js → gc-3BG67KTO.js} +3 -3
  227. package/dist/cli-bundle/chunks/{gc-VZIXDL32.js → gc-PEZYGNVB.js} +3 -3
  228. package/dist/cli-bundle/chunks/{get-GIBRUUOP.js → get-J6CSJ4SX.js} +10 -10
  229. package/dist/cli-bundle/chunks/{get-IOVAN6RU.js → get-KJTKGNEQ.js} +10 -10
  230. package/dist/cli-bundle/chunks/{health-L2U3AFKV.js → health-32UQICEL.js} +115 -123
  231. package/dist/cli-bundle/chunks/health-32UQICEL.js.map +1 -0
  232. package/dist/cli-bundle/chunks/{health-MM7AWXYF.js → health-ZUZG5ULV.js} +114 -122
  233. package/dist/cli-bundle/chunks/health-ZUZG5ULV.js.map +7 -0
  234. package/dist/cli-bundle/chunks/history-IOH6FKG7.js +18 -0
  235. package/dist/cli-bundle/chunks/{history-IL7XCEX2.js → history-W6QVR6FA.js} +8 -8
  236. package/dist/cli-bundle/chunks/{history-compact-HALOTOU7.js → history-compact-F355EGL4.js} +20 -27
  237. package/dist/cli-bundle/chunks/history-compact-F355EGL4.js.map +1 -0
  238. package/dist/cli-bundle/chunks/{history-compact-MV25P7DM.js → history-compact-JQ6ZGYSJ.js} +19 -26
  239. package/dist/cli-bundle/chunks/history-compact-JQ6ZGYSJ.js.map +7 -0
  240. package/dist/cli-bundle/chunks/{history-redact-VYCWQFK7.js → history-redact-TUWOUYX5.js} +9 -9
  241. package/dist/cli-bundle/chunks/history-redact-VVDOARNO.js +19 -0
  242. package/dist/cli-bundle/chunks/{history-repair-44MODPQF.js → history-repair-MPCAIKYE.js} +20 -28
  243. package/dist/cli-bundle/chunks/history-repair-MPCAIKYE.js.map +1 -0
  244. package/dist/cli-bundle/chunks/{history-repair-CPNAOCNF.js → history-repair-ZKS3LKPV.js} +19 -27
  245. package/dist/cli-bundle/chunks/history-repair-ZKS3LKPV.js.map +7 -0
  246. package/dist/cli-bundle/chunks/init-CZLEEE6Q.js +22 -0
  247. package/dist/cli-bundle/chunks/{init-F27NHENZ.js → init-MAA6UMNQ.js} +12 -12
  248. package/dist/cli-bundle/chunks/{learnings-XSFSUUWK.js → learnings-EYC3OKS2.js} +9 -9
  249. package/dist/cli-bundle/chunks/{learnings-HJVDQIGY.js → learnings-HKJJUVTA.js} +9 -9
  250. package/dist/cli-bundle/chunks/{list-VMPWTURB.js → list-HFD5737R.js} +8 -8
  251. package/dist/cli-bundle/chunks/{list-HPMEKCAA.js → list-KN3TL5Y5.js} +8 -8
  252. package/dist/cli-bundle/chunks/{next-ETXF2ZCN.js → next-DQUMFAHG.js} +25 -22
  253. package/dist/cli-bundle/chunks/{next-ETXF2ZCN.js.map → next-DQUMFAHG.js.map} +2 -2
  254. package/dist/cli-bundle/chunks/{next-QM6YJIIS.js → next-JUEYC5HE.js} +26 -23
  255. package/dist/cli-bundle/chunks/next-JUEYC5HE.js.map +1 -0
  256. package/dist/cli-bundle/chunks/{notes-WDDBPC4D.js → notes-XATYT43P.js} +9 -9
  257. package/dist/cli-bundle/chunks/{notes-GDZIKGR6.js → notes-ZG6RLZXB.js} +9 -9
  258. package/dist/cli-bundle/chunks/{plan-BGDR73Z6.js → plan-5NWQL2DH.js} +12 -12
  259. package/dist/cli-bundle/chunks/{plan-C5IMM335.js → plan-DVVLX7LK.js} +12 -12
  260. package/dist/cli-bundle/chunks/{profile-CCOKZ2IQ.js → profile-54DZ4CLB.js} +27 -19
  261. package/dist/cli-bundle/chunks/profile-54DZ4CLB.js.map +1 -0
  262. package/dist/cli-bundle/chunks/{profile-HUCENIEQ.js → profile-PLIQVEOY.js} +26 -18
  263. package/dist/cli-bundle/chunks/profile-PLIQVEOY.js.map +7 -0
  264. package/dist/cli-bundle/chunks/{register-list-query-ROSNIL52.js → register-list-query-PNRAHNIQ.js} +181 -172
  265. package/dist/cli-bundle/chunks/register-list-query-PNRAHNIQ.js.map +1 -0
  266. package/dist/cli-bundle/chunks/{register-list-query-XN4ZRHSV.js → register-list-query-WRS6ACUW.js} +180 -171
  267. package/dist/cli-bundle/chunks/register-list-query-WRS6ACUW.js.map +7 -0
  268. package/dist/cli-bundle/chunks/{register-mutation-KRLAHEL2.js → register-mutation-ET6E4VLE.js} +367 -361
  269. package/dist/cli-bundle/chunks/register-mutation-ET6E4VLE.js.map +7 -0
  270. package/dist/cli-bundle/chunks/{register-mutation-CFSB2MS3.js → register-mutation-K2MNRWGI.js} +368 -362
  271. package/dist/cli-bundle/chunks/register-mutation-K2MNRWGI.js.map +1 -0
  272. package/dist/cli-bundle/chunks/{register-operations-MBN4KGUM.js → register-operations-6DQRUTIX.js} +310 -305
  273. package/dist/cli-bundle/chunks/register-operations-6DQRUTIX.js.map +1 -0
  274. package/dist/cli-bundle/chunks/{register-operations-4PASGJDB.js → register-operations-73UDWMVB.js} +309 -304
  275. package/dist/cli-bundle/chunks/register-operations-73UDWMVB.js.map +7 -0
  276. package/dist/cli-bundle/chunks/{register-setup-ZCGKHDKL.js → register-setup-FXZJ2CEJ.js} +15 -15
  277. package/dist/cli-bundle/chunks/{register-setup-VIAWYFP5.js → register-setup-LYYCMQFV.js} +15 -15
  278. package/dist/cli-bundle/chunks/restore-L27TMMCF.js +17 -0
  279. package/dist/cli-bundle/chunks/{restore-4CBWUMCX.js → restore-R6YJHQK3.js} +9 -9
  280. package/dist/cli-bundle/chunks/{scheduling-shortcuts-6VFKNKCM.js → scheduling-shortcuts-LE4S7OI7.js} +12 -12
  281. package/dist/cli-bundle/chunks/{scheduling-shortcuts-ERHCVTEM.js → scheduling-shortcuts-OGODPUBL.js} +12 -12
  282. package/dist/cli-bundle/chunks/{schema-UE5KKAUX.js → schema-ICCD3HOP.js} +7 -7
  283. package/dist/cli-bundle/chunks/{schema-TDGK6N3I.js → schema-RHH23PQX.js} +7 -7
  284. package/dist/cli-bundle/chunks/{search-FP7MEU4S.js → search-HDDKOPFE.js} +10 -10
  285. package/dist/cli-bundle/chunks/{search-K4CFLQ5S.js → search-Z2VGP2Q5.js} +10 -10
  286. package/dist/cli-bundle/chunks/{stats-NJJCALEZ.js → stats-DHMRXHOB.js} +6 -6
  287. package/dist/cli-bundle/chunks/{stats-XT6QRKQY.js → stats-ETFP37MB.js} +6 -6
  288. package/dist/cli-bundle/chunks/{telemetry-HVXFZA2U.js → telemetry-NUZNKDCP.js} +4 -4
  289. package/dist/cli-bundle/chunks/{telemetry-5SQ5UDXC.js → telemetry-ZRBM22QD.js} +4 -4
  290. package/dist/cli-bundle/chunks/{test-UFSJ5YIO.js → test-H36PM746.js} +15 -15
  291. package/dist/cli-bundle/chunks/{test-YCDAUBWF.js → test-XNKTIP4Y.js} +15 -15
  292. package/dist/cli-bundle/chunks/{test-all-2BWKY3GQ.js → test-all-APCBSXQI.js} +17 -17
  293. package/dist/cli-bundle/chunks/{test-all-PM7UYN42.js → test-all-KIK3OYBY.js} +17 -17
  294. package/dist/cli-bundle/chunks/{test-runs-H4TGWGRN.js → test-runs-5SLLV3XU.js} +4 -4
  295. package/dist/cli-bundle/chunks/{test-runs-FK5E75AA.js → test-runs-L3WKLO67.js} +4 -4
  296. package/dist/cli-bundle/chunks/update-RQKI3AMW.js +24 -0
  297. package/dist/cli-bundle/chunks/{update-Y5WQVT5O.js → update-ZM7NJWHY.js} +15 -15
  298. package/dist/cli-bundle/chunks/{update-many-JTKKSA7Y.js → update-many-GFCQG6ZQ.js} +28 -28
  299. package/dist/cli-bundle/chunks/{update-many-6YAYYRLE.js → update-many-XGTJ7QIU.js} +28 -28
  300. package/dist/cli-bundle/chunks/{upgrade-DTAHZ236.js → upgrade-KJ3JGELR.js} +11 -11
  301. package/dist/cli-bundle/chunks/{upgrade-JUDU7YL4.js → upgrade-RBRQ7PQU.js} +11 -11
  302. package/dist/cli-bundle/chunks/{validate-732RWS5W.js → validate-EW6TGC7R.js} +31 -21
  303. package/dist/cli-bundle/chunks/validate-EW6TGC7R.js.map +7 -0
  304. package/dist/cli-bundle/chunks/{validate-W7H5TEDC.js → validate-T6PR5WAL.js} +32 -22
  305. package/dist/cli-bundle/chunks/validate-T6PR5WAL.js.map +1 -0
  306. package/dist/cli-bundle/main.js +180 -122
  307. package/dist/cli-bundle/main.js.map +3 -3
  308. package/dist/core/extensions/extension-types.d.ts +1 -2
  309. package/dist/core/extensions/extension-types.js +2 -2
  310. package/dist/core/extensions/extension-types.js.map +1 -1
  311. package/dist/core/history/history-rewrite.d.ts +10 -0
  312. package/dist/core/history/history-rewrite.js +27 -3
  313. package/dist/core/history/history-rewrite.js.map +1 -1
  314. package/dist/core/item/type-registry.d.ts +1 -0
  315. package/dist/core/item/type-registry.js +180 -194
  316. package/dist/core/item/type-registry.js.map +1 -1
  317. package/dist/core/schema/runtime-schema.js +65 -54
  318. package/dist/core/schema/runtime-schema.js.map +1 -1
  319. package/dist/core/schema/status-defs-file.js +26 -3
  320. package/dist/core/schema/status-defs-file.js.map +1 -1
  321. package/dist/core/search/corpus.js +25 -19
  322. package/dist/core/search/corpus.js.map +1 -1
  323. package/dist/core/shared/memo.d.ts +12 -0
  324. package/dist/core/shared/memo.js +25 -0
  325. package/dist/core/shared/memo.js.map +1 -0
  326. package/dist/core/shared/serialization.js +24 -14
  327. package/dist/core/shared/serialization.js.map +1 -1
  328. package/dist/core/shared/time.js +26 -4
  329. package/dist/core/shared/time.js.map +1 -1
  330. package/dist/core/store/front-matter-cache.d.ts +5 -0
  331. package/dist/core/store/front-matter-cache.js +79 -20
  332. package/dist/core/store/front-matter-cache.js.map +1 -1
  333. package/dist/sdk/cli-contracts/flag-contracts.js +73 -99
  334. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  335. package/dist/sdk/cli-contracts/tool-option-contracts.js +4 -2
  336. package/dist/sdk/cli-contracts/tool-option-contracts.js.map +1 -1
  337. package/dist/sdk/cli-contracts/tool-schema.js +55 -94
  338. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  339. package/dist/sdk/compose.js +51 -42
  340. package/dist/sdk/compose.js.map +1 -1
  341. package/dist/sdk/package-import-adapters.d.ts +90 -2
  342. package/dist/sdk/package-import-adapters.js +274 -2
  343. package/dist/sdk/package-import-adapters.js.map +1 -1
  344. package/dist/sdk/runtime.d.ts +1 -1
  345. package/dist/sdk/runtime.js +3 -3
  346. package/dist/sdk/runtime.js.map +1 -1
  347. package/docs/AGENT_GUIDE.md +2 -2
  348. package/docs/ARCHITECTURE.md +2 -2
  349. package/docs/COMMANDS.md +8 -4
  350. package/docs/CONFIGURATION.md +1 -1
  351. package/docs/EXTENSIONS.md +12 -12
  352. package/docs/ONBOARDING.md +4 -2
  353. package/docs/README.md +2 -0
  354. package/docs/examples/starter-extension/README.md +11 -10
  355. package/marketplace.json +3 -3
  356. package/package.json +4 -3
  357. package/packages/pm-beads/extensions/beads/runtime-loader.ts +27 -40
  358. package/packages/pm-beads/extensions/beads/runtime.ts +106 -223
  359. package/packages/pm-calendar/extensions/calendar/runtime.ts +21 -18
  360. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +9 -11
  361. package/packages/pm-todos/extensions/todos/runtime-loader.ts +48 -76
  362. package/packages/pm-todos/extensions/todos/runtime.ts +61 -257
  363. package/plugins/pm-claude/.claude-plugin/plugin.json +2 -2
  364. package/plugins/pm-claude/README.md +6 -3
  365. package/plugins/pm-claude/commands/pm-init.md +1 -1
  366. package/plugins/pm-claude/scripts/pm-mcp-server.mjs +73 -31
  367. package/plugins/pm-codex/scripts/pm-mcp-server.mjs +80 -34
  368. package/scripts/install.ps1 +7 -7
  369. package/dist/cli-bundle/chunks/activity-WEIEMM73.js +0 -16
  370. package/dist/cli-bundle/chunks/chunk-5GVTFFTC.js.map +0 -1
  371. package/dist/cli-bundle/chunks/chunk-66Z3X7ZG.js.map +0 -7
  372. package/dist/cli-bundle/chunks/chunk-6ITZLD4T.js.map +0 -7
  373. package/dist/cli-bundle/chunks/chunk-6YCYF2AI.js.map +0 -1
  374. package/dist/cli-bundle/chunks/chunk-7NSPKJUS.js.map +0 -7
  375. package/dist/cli-bundle/chunks/chunk-7TH5NMVB.js.map +0 -7
  376. package/dist/cli-bundle/chunks/chunk-7W4H4K26.js.map +0 -1
  377. package/dist/cli-bundle/chunks/chunk-AIAIXG7I.js.map +0 -7
  378. package/dist/cli-bundle/chunks/chunk-AJEBCRIY.js.map +0 -1
  379. package/dist/cli-bundle/chunks/chunk-GFMSLORL.js.map +0 -7
  380. package/dist/cli-bundle/chunks/chunk-GRRG3MCT.js.map +0 -7
  381. package/dist/cli-bundle/chunks/chunk-I66WE2HE.js.map +0 -1
  382. package/dist/cli-bundle/chunks/chunk-JXAUVO6X.js.map +0 -7
  383. package/dist/cli-bundle/chunks/chunk-K2VYLVX4.js.map +0 -1
  384. package/dist/cli-bundle/chunks/chunk-KIYCOJ63.js.map +0 -1
  385. package/dist/cli-bundle/chunks/chunk-MNBPX5JS.js.map +0 -7
  386. package/dist/cli-bundle/chunks/chunk-NRZS637N.js.map +0 -1
  387. package/dist/cli-bundle/chunks/chunk-RM37OPYK.js.map +0 -1
  388. package/dist/cli-bundle/chunks/chunk-SPM2XLWI.js.map +0 -7
  389. package/dist/cli-bundle/chunks/chunk-SYNKD3ZG.js.map +0 -7
  390. package/dist/cli-bundle/chunks/chunk-TPOFWBMY.js.map +0 -1
  391. package/dist/cli-bundle/chunks/chunk-XCHUVHKU.js.map +0 -1
  392. package/dist/cli-bundle/chunks/chunk-XEWQKDYZ.js.map +0 -7
  393. package/dist/cli-bundle/chunks/chunk-XWGEMNBR.js.map +0 -7
  394. package/dist/cli-bundle/chunks/chunk-YLZZ6T54.js.map +0 -1
  395. package/dist/cli-bundle/chunks/chunk-YPKFV2JR.js.map +0 -1
  396. package/dist/cli-bundle/chunks/close-YCWQQPDS.js +0 -14
  397. package/dist/cli-bundle/chunks/close-many-2IV4J2TR.js.map +0 -1
  398. package/dist/cli-bundle/chunks/close-many-SWY34BII.js.map +0 -7
  399. package/dist/cli-bundle/chunks/create-XTMAPS7I.js +0 -28
  400. package/dist/cli-bundle/chunks/files-5D65CHGE.js.map +0 -1
  401. package/dist/cli-bundle/chunks/health-L2U3AFKV.js.map +0 -1
  402. package/dist/cli-bundle/chunks/health-MM7AWXYF.js.map +0 -7
  403. package/dist/cli-bundle/chunks/history-DD7L7BNL.js +0 -18
  404. package/dist/cli-bundle/chunks/history-compact-HALOTOU7.js.map +0 -1
  405. package/dist/cli-bundle/chunks/history-compact-MV25P7DM.js.map +0 -7
  406. package/dist/cli-bundle/chunks/history-redact-IX4YEWMY.js +0 -19
  407. package/dist/cli-bundle/chunks/history-repair-44MODPQF.js.map +0 -1
  408. package/dist/cli-bundle/chunks/history-repair-CPNAOCNF.js.map +0 -7
  409. package/dist/cli-bundle/chunks/init-HHVQQP6C.js +0 -22
  410. package/dist/cli-bundle/chunks/next-QM6YJIIS.js.map +0 -1
  411. package/dist/cli-bundle/chunks/profile-CCOKZ2IQ.js.map +0 -1
  412. package/dist/cli-bundle/chunks/profile-HUCENIEQ.js.map +0 -7
  413. package/dist/cli-bundle/chunks/register-list-query-ROSNIL52.js.map +0 -1
  414. package/dist/cli-bundle/chunks/register-list-query-XN4ZRHSV.js.map +0 -7
  415. package/dist/cli-bundle/chunks/register-mutation-CFSB2MS3.js.map +0 -1
  416. package/dist/cli-bundle/chunks/register-mutation-KRLAHEL2.js.map +0 -7
  417. package/dist/cli-bundle/chunks/register-operations-4PASGJDB.js.map +0 -7
  418. package/dist/cli-bundle/chunks/register-operations-MBN4KGUM.js.map +0 -1
  419. package/dist/cli-bundle/chunks/restore-5UEAGG3W.js +0 -17
  420. package/dist/cli-bundle/chunks/update-MTCFES6X.js +0 -24
  421. package/dist/cli-bundle/chunks/validate-732RWS5W.js.map +0 -7
  422. package/dist/cli-bundle/chunks/validate-W7H5TEDC.js.map +0 -1
  423. /package/dist/cli-bundle/chunks/{activity-WEIEMM73.js.map → activity-IDS5GSYG.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{activity-CUC4JY3U.js.map → activity-OENQCYZD.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{aggregate-SW5PNGCS.js.map → aggregate-EC4LWS3U.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{aggregate-DKUTRY6R.js.map → aggregate-RCB3QJJE.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{append-H32VOR2Y.js.map → append-ADBOI3A6.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{append-UBM632FK.js.map → append-XLEKVVWB.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{chunk-Q6NXOHS6.js.map → chunk-2LRMWMZ6.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{chunk-KLXF7NCC.js.map → chunk-3C5T3ZEO.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{chunk-JMK5GCK2.js.map → chunk-3MLQZI3H.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{chunk-BTX5MIQF.js.map → chunk-4EVY7CQN.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{chunk-Q6K2OACU.js.map → chunk-4IW7STMB.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{chunk-EMPGXBUF.js.map → chunk-4SHME4VR.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{chunk-2KWL5NPW.js.map → chunk-6YB7HG2J.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{chunk-36UGKF4O.js.map → chunk-724VLYDJ.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{chunk-Y4NRKBFW.js.map → chunk-7ITQSEBL.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{chunk-W47SML5B.js.map → chunk-A222YWOQ.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{chunk-3LCUASYG.js.map → chunk-A2W3XKAD.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{chunk-KN3URLKS.js.map → chunk-AOP2EMK3.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{chunk-IEEJQCZ4.js.map → chunk-CQFZRLXQ.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{chunk-4NUOWFBT.js.map → chunk-CQISNF3Z.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{chunk-S62UANU7.js.map → chunk-D2LDM35X.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{chunk-IG5JYZGU.js.map → chunk-DJ5S2LDY.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{chunk-A6VOGKBA.js.map → chunk-EB4BBEZD.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{chunk-QH3FSKRJ.js.map → chunk-EH23N5FX.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{chunk-HQTPRV4D.js.map → chunk-FDNJMYZB.js.map} +0 -0
  448. /package/dist/cli-bundle/chunks/{chunk-N2JSWVWG.js.map → chunk-HL742IBM.js.map} +0 -0
  449. /package/dist/cli-bundle/chunks/{chunk-CZPVDLD2.js.map → chunk-M6PR5BC6.js.map} +0 -0
  450. /package/dist/cli-bundle/chunks/{chunk-MRD4T5LF.js.map → chunk-MZ4NH46V.js.map} +0 -0
  451. /package/dist/cli-bundle/chunks/{chunk-ZNHEYCDD.js.map → chunk-N2LOJUBB.js.map} +0 -0
  452. /package/dist/cli-bundle/chunks/{chunk-WJAMWAHZ.js.map → chunk-NGDK3KEZ.js.map} +0 -0
  453. /package/dist/cli-bundle/chunks/{chunk-2CHRYUXL.js.map → chunk-NHKXOMZ5.js.map} +0 -0
  454. /package/dist/cli-bundle/chunks/{chunk-7MYWF4ZX.js.map → chunk-OTSP6UEX.js.map} +0 -0
  455. /package/dist/cli-bundle/chunks/{chunk-UGLU6Q2I.js.map → chunk-PUVPC5DL.js.map} +0 -0
  456. /package/dist/cli-bundle/chunks/{chunk-LTRAF2D7.js.map → chunk-PV5JS7MP.js.map} +0 -0
  457. /package/dist/cli-bundle/chunks/{chunk-KCO2EAN5.js.map → chunk-Q2266G4S.js.map} +0 -0
  458. /package/dist/cli-bundle/chunks/{chunk-SYVUU7EK.js.map → chunk-Q3XVLRCJ.js.map} +0 -0
  459. /package/dist/cli-bundle/chunks/{chunk-6ZMBJRDJ.js.map → chunk-R7EMP4JG.js.map} +0 -0
  460. /package/dist/cli-bundle/chunks/{chunk-U2BEEM2X.js.map → chunk-T5RTYLZJ.js.map} +0 -0
  461. /package/dist/cli-bundle/chunks/{chunk-UTSH5GWX.js.map → chunk-TGYDJEJH.js.map} +0 -0
  462. /package/dist/cli-bundle/chunks/{chunk-H4GRLYJS.js.map → chunk-TO4KCIOT.js.map} +0 -0
  463. /package/dist/cli-bundle/chunks/{chunk-EUKTMRN3.js.map → chunk-TUV7SIWZ.js.map} +0 -0
  464. /package/dist/cli-bundle/chunks/{chunk-55XRYWEG.js.map → chunk-V655JQ5J.js.map} +0 -0
  465. /package/dist/cli-bundle/chunks/{chunk-3Q2HBMTI.js.map → chunk-W5X3AHJN.js.map} +0 -0
  466. /package/dist/cli-bundle/chunks/{chunk-XTHQWXVC.js.map → chunk-WBWRQS32.js.map} +0 -0
  467. /package/dist/cli-bundle/chunks/{chunk-UT73HUPC.js.map → chunk-WOOB7PV7.js.map} +0 -0
  468. /package/dist/cli-bundle/chunks/{chunk-5PGBHRY3.js.map → chunk-WSDIALO4.js.map} +0 -0
  469. /package/dist/cli-bundle/chunks/{chunk-LRKMWUUV.js.map → chunk-WTXDLBSZ.js.map} +0 -0
  470. /package/dist/cli-bundle/chunks/{chunk-FFOQHGNH.js.map → chunk-XBIYI23P.js.map} +0 -0
  471. /package/dist/cli-bundle/chunks/{chunk-2ASNV4DH.js.map → chunk-Y2VSCQ77.js.map} +0 -0
  472. /package/dist/cli-bundle/chunks/{chunk-ZNT7KEWE.js.map → chunk-YZR7UMZ6.js.map} +0 -0
  473. /package/dist/cli-bundle/chunks/{chunk-CYBDUHNO.js.map → chunk-ZIEGTQCY.js.map} +0 -0
  474. /package/dist/cli-bundle/chunks/{chunk-TTHCEV5Q.js.map → chunk-ZZWMJVW2.js.map} +0 -0
  475. /package/dist/cli-bundle/chunks/{claim-Z7MEQCBT.js.map → claim-D6L33A5Y.js.map} +0 -0
  476. /package/dist/cli-bundle/chunks/{claim-SENTPZBN.js.map → claim-YAFUTPVK.js.map} +0 -0
  477. /package/dist/cli-bundle/chunks/{close-YCWQQPDS.js.map → close-KLDLHAOP.js.map} +0 -0
  478. /package/dist/cli-bundle/chunks/{close-424MX4CU.js.map → close-TGYXG7TV.js.map} +0 -0
  479. /package/dist/cli-bundle/chunks/{comments-4FGNTSNV.js.map → comments-QC6ARR5X.js.map} +0 -0
  480. /package/dist/cli-bundle/chunks/{comments-7YS5MY5X.js.map → comments-ZHVYGUVC.js.map} +0 -0
  481. /package/dist/cli-bundle/chunks/{config-G74GISC4.js.map → config-O6W2EU2G.js.map} +0 -0
  482. /package/dist/cli-bundle/chunks/{config-BZJKK7FZ.js.map → config-XQRFJXJP.js.map} +0 -0
  483. /package/dist/cli-bundle/chunks/{context-LHVKJSPJ.js.map → context-IHE3IXN5.js.map} +0 -0
  484. /package/dist/cli-bundle/chunks/{context-ZQY54JNS.js.map → context-WSYWBEUL.js.map} +0 -0
  485. /package/dist/cli-bundle/chunks/{contracts-FIZLMP7O.js.map → contracts-CVBINC7C.js.map} +0 -0
  486. /package/dist/cli-bundle/chunks/{contracts-CP2EZJC7.js.map → contracts-NLCDIZAT.js.map} +0 -0
  487. /package/dist/cli-bundle/chunks/{copy-TLW7JTQT.js.map → copy-7MUQC44A.js.map} +0 -0
  488. /package/dist/cli-bundle/chunks/{copy-GYNQQPW2.js.map → copy-ANWXDJVC.js.map} +0 -0
  489. /package/dist/cli-bundle/chunks/{create-XTMAPS7I.js.map → create-AJ6HUR5W.js.map} +0 -0
  490. /package/dist/cli-bundle/chunks/{create-VSKYSOCD.js.map → create-JIA2IFCO.js.map} +0 -0
  491. /package/dist/cli-bundle/chunks/{delete-ANTOTI2I.js.map → delete-5OLYWQIC.js.map} +0 -0
  492. /package/dist/cli-bundle/chunks/{delete-4W5JYCEG.js.map → delete-INHKCIRN.js.map} +0 -0
  493. /package/dist/cli-bundle/chunks/{deps-HPPE6MJN.js.map → deps-CCSWGZW7.js.map} +0 -0
  494. /package/dist/cli-bundle/chunks/{deps-ZQZN54EZ.js.map → deps-IYEID3QX.js.map} +0 -0
  495. /package/dist/cli-bundle/chunks/{docs-XJNYBJGE.js.map → docs-3XZK22WF.js.map} +0 -0
  496. /package/dist/cli-bundle/chunks/{docs-RPOVFMP3.js.map → docs-PKO7OEIM.js.map} +0 -0
  497. /package/dist/cli-bundle/chunks/{eval-RFBI5FGS.js.map → eval-5XYP6NMY.js.map} +0 -0
  498. /package/dist/cli-bundle/chunks/{eval-DM6JBZTS.js.map → eval-O4WGQYDI.js.map} +0 -0
  499. /package/dist/cli-bundle/chunks/{extension-TTSEFQTS.js.map → extension-PVGRRZZG.js.map} +0 -0
  500. /package/dist/cli-bundle/chunks/{extension-B3YY4WY5.js.map → extension-T7JNTAAA.js.map} +0 -0
  501. /package/dist/cli-bundle/chunks/{focus-ZHN7WIGX.js.map → focus-6FA5KYRY.js.map} +0 -0
  502. /package/dist/cli-bundle/chunks/{focus-C3PEJV2C.js.map → focus-CQ63JFDG.js.map} +0 -0
  503. /package/dist/cli-bundle/chunks/{gc-D4JQ6OWN.js.map → gc-3BG67KTO.js.map} +0 -0
  504. /package/dist/cli-bundle/chunks/{gc-VZIXDL32.js.map → gc-PEZYGNVB.js.map} +0 -0
  505. /package/dist/cli-bundle/chunks/{get-GIBRUUOP.js.map → get-J6CSJ4SX.js.map} +0 -0
  506. /package/dist/cli-bundle/chunks/{get-IOVAN6RU.js.map → get-KJTKGNEQ.js.map} +0 -0
  507. /package/dist/cli-bundle/chunks/{history-DD7L7BNL.js.map → history-IOH6FKG7.js.map} +0 -0
  508. /package/dist/cli-bundle/chunks/{history-IL7XCEX2.js.map → history-W6QVR6FA.js.map} +0 -0
  509. /package/dist/cli-bundle/chunks/{history-redact-VYCWQFK7.js.map → history-redact-TUWOUYX5.js.map} +0 -0
  510. /package/dist/cli-bundle/chunks/{history-redact-IX4YEWMY.js.map → history-redact-VVDOARNO.js.map} +0 -0
  511. /package/dist/cli-bundle/chunks/{init-HHVQQP6C.js.map → init-CZLEEE6Q.js.map} +0 -0
  512. /package/dist/cli-bundle/chunks/{init-F27NHENZ.js.map → init-MAA6UMNQ.js.map} +0 -0
  513. /package/dist/cli-bundle/chunks/{learnings-XSFSUUWK.js.map → learnings-EYC3OKS2.js.map} +0 -0
  514. /package/dist/cli-bundle/chunks/{learnings-HJVDQIGY.js.map → learnings-HKJJUVTA.js.map} +0 -0
  515. /package/dist/cli-bundle/chunks/{list-VMPWTURB.js.map → list-HFD5737R.js.map} +0 -0
  516. /package/dist/cli-bundle/chunks/{list-HPMEKCAA.js.map → list-KN3TL5Y5.js.map} +0 -0
  517. /package/dist/cli-bundle/chunks/{notes-WDDBPC4D.js.map → notes-XATYT43P.js.map} +0 -0
  518. /package/dist/cli-bundle/chunks/{notes-GDZIKGR6.js.map → notes-ZG6RLZXB.js.map} +0 -0
  519. /package/dist/cli-bundle/chunks/{plan-BGDR73Z6.js.map → plan-5NWQL2DH.js.map} +0 -0
  520. /package/dist/cli-bundle/chunks/{plan-C5IMM335.js.map → plan-DVVLX7LK.js.map} +0 -0
  521. /package/dist/cli-bundle/chunks/{register-setup-ZCGKHDKL.js.map → register-setup-FXZJ2CEJ.js.map} +0 -0
  522. /package/dist/cli-bundle/chunks/{register-setup-VIAWYFP5.js.map → register-setup-LYYCMQFV.js.map} +0 -0
  523. /package/dist/cli-bundle/chunks/{restore-5UEAGG3W.js.map → restore-L27TMMCF.js.map} +0 -0
  524. /package/dist/cli-bundle/chunks/{restore-4CBWUMCX.js.map → restore-R6YJHQK3.js.map} +0 -0
  525. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-6VFKNKCM.js.map → scheduling-shortcuts-LE4S7OI7.js.map} +0 -0
  526. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-ERHCVTEM.js.map → scheduling-shortcuts-OGODPUBL.js.map} +0 -0
  527. /package/dist/cli-bundle/chunks/{schema-UE5KKAUX.js.map → schema-ICCD3HOP.js.map} +0 -0
  528. /package/dist/cli-bundle/chunks/{schema-TDGK6N3I.js.map → schema-RHH23PQX.js.map} +0 -0
  529. /package/dist/cli-bundle/chunks/{search-FP7MEU4S.js.map → search-HDDKOPFE.js.map} +0 -0
  530. /package/dist/cli-bundle/chunks/{search-K4CFLQ5S.js.map → search-Z2VGP2Q5.js.map} +0 -0
  531. /package/dist/cli-bundle/chunks/{stats-NJJCALEZ.js.map → stats-DHMRXHOB.js.map} +0 -0
  532. /package/dist/cli-bundle/chunks/{stats-XT6QRKQY.js.map → stats-ETFP37MB.js.map} +0 -0
  533. /package/dist/cli-bundle/chunks/{telemetry-HVXFZA2U.js.map → telemetry-NUZNKDCP.js.map} +0 -0
  534. /package/dist/cli-bundle/chunks/{telemetry-5SQ5UDXC.js.map → telemetry-ZRBM22QD.js.map} +0 -0
  535. /package/dist/cli-bundle/chunks/{test-UFSJ5YIO.js.map → test-H36PM746.js.map} +0 -0
  536. /package/dist/cli-bundle/chunks/{test-YCDAUBWF.js.map → test-XNKTIP4Y.js.map} +0 -0
  537. /package/dist/cli-bundle/chunks/{test-all-2BWKY3GQ.js.map → test-all-APCBSXQI.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{test-all-PM7UYN42.js.map → test-all-KIK3OYBY.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{test-runs-H4TGWGRN.js.map → test-runs-5SLLV3XU.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{test-runs-FK5E75AA.js.map → test-runs-L3WKLO67.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{update-MTCFES6X.js.map → update-RQKI3AMW.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{update-Y5WQVT5O.js.map → update-ZM7NJWHY.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{update-many-JTKKSA7Y.js.map → update-many-GFCQG6ZQ.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{update-many-6YAYYRLE.js.map → update-many-XGTJ7QIU.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{upgrade-DTAHZ236.js.map → upgrade-KJ3JGELR.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{upgrade-JUDU7YL4.js.map → upgrade-RBRQ7PQU.js.map} +0 -0
@@ -3,17 +3,18 @@ import {
3
3
  buildBackgroundTestCommandArgs,
4
4
  collect,
5
5
  getGlobalOptions,
6
- invalidateSearchCachesForMutation
7
- } from "./chunk-SYNKD3ZG.js";
6
+ invalidateSearchCachesForMutation,
7
+ readOptionString
8
+ } from "./chunk-NHDR3UCW.js";
8
9
  import {
9
10
  printError,
10
11
  printResult
11
- } from "./chunk-5PGBHRY3.js";
12
- import "./chunk-7TH5NMVB.js";
13
- import "./chunk-XWGEMNBR.js";
14
- import "./chunk-JXAUVO6X.js";
15
- import "./chunk-IEEJQCZ4.js";
16
- import "./chunk-AIAIXG7I.js";
12
+ } from "./chunk-WSDIALO4.js";
13
+ import "./chunk-KKHIQOTN.js";
14
+ import "./chunk-7745CXNI.js";
15
+ import "./chunk-CN4OAA2G.js";
16
+ import "./chunk-CQFZRLXQ.js";
17
+ import "./chunk-MZG6I2Q2.js";
17
18
  import {
18
19
  EXIT_CODE,
19
20
  PmCliError,
@@ -22,13 +23,13 @@ import {
22
23
  resolvePmRoot,
23
24
  resolveRuntimeStatusRegistry,
24
25
  setActiveCommandResult
25
- } from "./chunk-7NSPKJUS.js";
26
+ } from "./chunk-BDDYM4LH.js";
26
27
 
27
28
  // dist/cli/register-operations.js
28
29
  !(function() {
29
30
  try {
30
31
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
31
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "22a735cb-1525-5f07-b40a-797ca3eb2946");
32
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "962c869e-fec2-5e55-87c2-07feb8bf0782");
32
33
  } catch (e2) {
33
34
  }
34
35
  })();
@@ -77,7 +78,7 @@ function validateBackgroundTestOptions(options, values) {
77
78
  }
78
79
  }
79
80
  async function runBackgroundLinkedTests(id, options, globalOptions, values) {
80
- const { runStartBackgroundRun } = await import("./test-runs-H4TGWGRN.js");
81
+ const { runStartBackgroundRun } = await import("./test-runs-5SLLV3XU.js");
81
82
  const result = await runStartBackgroundRun({
82
83
  kind: "test",
83
84
  commandArgs: buildBackgroundTestCommandArgs(id, { ...options, add: values.addValues, addJson: values.addJsonValues, remove: values.removeValues }),
@@ -116,7 +117,7 @@ function buildRunTestOptions(options, values) {
116
117
  };
117
118
  }
118
119
  async function runForegroundLinkedTests(id, options, globalOptions, values) {
119
- const { runTest } = await import("./test-UFSJ5YIO.js");
120
+ const { runTest } = await import("./test-H36PM746.js");
120
121
  const result = await runTest(id, buildRunTestOptions(options, values), globalOptions);
121
122
  if (values.addValues.length > 0 || values.addJsonValues.length > 0 || values.removeValues.length > 0 || options.run === true) {
122
123
  await invalidateSearchCachesForMutation(globalOptions, result);
@@ -140,308 +141,312 @@ async function runTestCommandAction(id, options, command) {
140
141
  printError(`profile:command=test took_ms=${Date.now() - startedAt}`);
141
142
  }
142
143
  }
143
- function registerOperationCommands(program) {
144
- program.command("test").argument("<id>", "Item id").option("--add <value>", "Add linked test entry (CSV/markdown pairs or - for stdin)", collect).option("--add-json <value>", "Add linked test entry from JSON object/array (or - for stdin)", collect).option("--remove <value>", "Remove linked test entry by command/path (command=<value>, path=<value>, markdown pairs, plain value, or - for stdin)", collect).option("--list", "List linked tests without mutating").option("--run", "Run linked test commands").option("--match <value>", "Run only linked tests whose command/path contains this substring").option("--only-index <n>", "Run only the 1-based linked-test index from --list order").option("--only-last", "Run only the most recently added linked test").option("--background", "Run linked tests in managed background mode").option("--timeout <seconds>", "Default run timeout in seconds").option("--progress", "Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)").option("--env-set <value>", "Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)", collect).option("--env-clear <value>", "Clear environment variable(s) for linked-test runs (NAME, repeatable)", collect).option("--shared-host-safe", "Apply additive shared-host-safe runtime defaults for linked-test runs").option("--pm-context <mode>", "PM linked-test context mode: schema|tracker|auto (default: schema)").option("--override-linked-pm-context", "Force run-level --pm-context to override per-linked-test pm_context_mode metadata").option("--fail-on-context-mismatch", "Fail linked PM commands when context item counts differ").option("--fail-on-skipped", "Treat skipped linked tests as dependency failures").option("--fail-on-empty-test-run", "Treat successful linked-test commands that report zero executed tests as failures").option("--require-assertions-for-pm", "Require assertion metadata for linked PM command tests").option("--check-context", "Preflight linked PM command context diagnostics before executing commands").option("--auto-pm-context", "Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership override").description("Manage tests linked to an item and optionally run them.").action(async (id, options, command) => {
145
- await runTestCommandAction(id, options, command);
146
- });
147
- program.command("test-all").description("Run linked tests across matching items.").option("--status <value>", "Filter items by status before running tests").option("--limit <n>", "Limit matching items before running linked tests").option("--offset <n>", "Skip matching items before running linked tests").option("--background", "Run linked tests in managed background mode").option("--timeout <seconds>", "Default run timeout in seconds").option("--progress", "Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)").option("--env-set <value>", "Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)", collect).option("--env-clear <value>", "Clear environment variable(s) for linked-test runs (NAME, repeatable)", collect).option("--shared-host-safe", "Apply additive shared-host-safe runtime defaults for linked-test runs").option("--pm-context <mode>", "PM linked-test context mode: schema|tracker|auto (default: schema)").option("--override-linked-pm-context", "Force run-level --pm-context to override per-linked-test pm_context_mode metadata").option("--fail-on-context-mismatch", "Fail linked PM commands when context item counts differ").option("--fail-on-skipped", "Treat skipped linked tests as dependency failures").option("--fail-on-empty-test-run", "Treat successful linked-test commands that report zero executed tests as failures").option("--require-assertions-for-pm", "Require assertion metadata for linked PM command tests").option("--check-context", "Preflight linked PM command context diagnostics before executing commands").option("--auto-pm-context", "Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context").action(async (options, command) => {
148
- const globalOptions = getGlobalOptions(command);
149
- const startedAt = Date.now();
150
- const runInBackground = options.background === true;
151
- if (runInBackground) {
152
- const { runStartBackgroundRun } = await import("./test-runs-H4TGWGRN.js");
153
- const result2 = await runStartBackgroundRun({
154
- kind: "test-all",
155
- commandArgs: buildBackgroundTestAllCommandArgs(options),
156
- statusFilter: typeof options.status === "string" ? options.status : void 0,
157
- noExtensions: globalOptions.noExtensions === true
158
- }, globalOptions);
159
- printResult(result2, globalOptions);
160
- if (globalOptions.profile) {
161
- printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
162
- }
163
- return;
164
- }
165
- const { runTestAll } = await import("./test-all-PM7UYN42.js");
166
- const result = await runTestAll({
167
- status: typeof options.status === "string" ? options.status : void 0,
168
- limit: typeof options.limit === "string" ? options.limit : void 0,
169
- offset: typeof options.offset === "string" ? options.offset : void 0,
170
- timeout: typeof options.timeout === "string" ? options.timeout : void 0,
171
- progress: Boolean(options.progress),
172
- envSet: Array.isArray(options.envSet) ? options.envSet : [],
173
- envClear: Array.isArray(options.envClear) ? options.envClear : [],
174
- sharedHostSafe: Boolean(options.sharedHostSafe),
175
- pmContext: typeof options.pmContext === "string" ? options.pmContext : void 0,
176
- overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
177
- failOnContextMismatch: Boolean(options.failOnContextMismatch),
178
- failOnSkipped: Boolean(options.failOnSkipped),
179
- failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
180
- requireAssertionsForPm: Boolean(options.requireAssertionsForPm),
181
- checkContext: Boolean(options.checkContext),
182
- autoPmContext: Boolean(options.autoPmContext)
144
+ function buildLifecycleMutationOptions(options) {
145
+ return {
146
+ author: readOptionString(options, "author"),
147
+ message: readOptionString(options, "message")
148
+ };
149
+ }
150
+ async function runTestAllAction(options, command) {
151
+ const globalOptions = getGlobalOptions(command);
152
+ const startedAt = Date.now();
153
+ const runInBackground = options.background === true;
154
+ if (runInBackground) {
155
+ const { runStartBackgroundRun } = await import("./test-runs-5SLLV3XU.js");
156
+ const result2 = await runStartBackgroundRun({
157
+ kind: "test-all",
158
+ commandArgs: buildBackgroundTestAllCommandArgs(options),
159
+ statusFilter: readOptionString(options, "status"),
160
+ noExtensions: globalOptions.noExtensions === true
183
161
  }, globalOptions);
184
- await invalidateSearchCachesForMutation(globalOptions, { ids: result.results.map((entry) => entry.id) });
185
- printResult(result, globalOptions);
186
- if (result.failed > 0 || result.fail_on_skipped_triggered === true) {
187
- process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
188
- }
162
+ printResult(result2, globalOptions);
189
163
  if (globalOptions.profile) {
190
164
  printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
191
165
  }
166
+ return;
167
+ }
168
+ const { runTestAll } = await import("./test-all-KIK3OYBY.js");
169
+ const result = await runTestAll({
170
+ status: readOptionString(options, "status"),
171
+ limit: readOptionString(options, "limit"),
172
+ offset: readOptionString(options, "offset"),
173
+ timeout: readOptionString(options, "timeout"),
174
+ progress: Boolean(options.progress),
175
+ envSet: Array.isArray(options.envSet) ? options.envSet : [],
176
+ envClear: Array.isArray(options.envClear) ? options.envClear : [],
177
+ sharedHostSafe: Boolean(options.sharedHostSafe),
178
+ pmContext: readOptionString(options, "pmContext"),
179
+ overrideLinkedPmContext: Boolean(options.overrideLinkedPmContext),
180
+ failOnContextMismatch: Boolean(options.failOnContextMismatch),
181
+ failOnSkipped: Boolean(options.failOnSkipped),
182
+ failOnEmptyTestRun: Boolean(options.failOnEmptyTestRun),
183
+ requireAssertionsForPm: Boolean(options.requireAssertionsForPm),
184
+ checkContext: Boolean(options.checkContext),
185
+ autoPmContext: Boolean(options.autoPmContext)
186
+ }, globalOptions);
187
+ await invalidateSearchCachesForMutation(globalOptions, { ids: result.results.map((entry) => entry.id) });
188
+ printResult(result, globalOptions);
189
+ if (result.failed > 0 || result.fail_on_skipped_triggered === true) {
190
+ process.exitCode = EXIT_CODE.DEPENDENCY_FAILED;
191
+ }
192
+ if (globalOptions.profile) {
193
+ printError(`profile:command=test-all took_ms=${Date.now() - startedAt}`);
194
+ }
195
+ }
196
+ async function runTelemetryAction(namespaceOrSubcommand, subcommand, options, command) {
197
+ const globalOptions = getGlobalOptions(command);
198
+ const startedAt = Date.now();
199
+ const { runTelemetry } = await import("./telemetry-ZRBM22QD.js");
200
+ const result = await runTelemetry({
201
+ subcommand: resolveTelemetrySubcommand(namespaceOrSubcommand, subcommand),
202
+ // Commander always parses `--limit <n>` to a string (or leaves it
203
+ // undefined), so a string passthrough covers every CLI-reachable input.
204
+ limit: readOptionString(options, "limit")
205
+ }, globalOptions);
206
+ printResult(result, globalOptions);
207
+ if (globalOptions.profile) {
208
+ printError(`profile:command=telemetry took_ms=${Date.now() - startedAt}`);
209
+ }
210
+ }
211
+ async function runStatsAction(options, command) {
212
+ const globalOptions = getGlobalOptions(command);
213
+ const startedAt = Date.now();
214
+ const { runStats } = await import("./stats-ETFP37MB.js");
215
+ const result = await runStats(globalOptions, {
216
+ storage: options.storage === true,
217
+ metadataCoverage: options.metadataCoverage === true,
218
+ byAssignee: options.byAssignee === true,
219
+ byTag: options.byTag === true,
220
+ byPriority: options.byPriority === true,
221
+ tagPrefix: readOptionString(options, "tagPrefix"),
222
+ fieldUtilization: options.fieldUtilization === true
192
223
  });
193
- program.command("test-runs-worker", { hidden: true }).argument("<runId>", "Background run id").description("Internal background worker command.").action(async (runId, _options, command) => {
194
- const globalOptions = getGlobalOptions(command);
195
- const { runTestRunsWorker } = await import("./test-runs-H4TGWGRN.js");
196
- await runTestRunsWorker(runId, globalOptions);
197
- });
198
- program.command("telemetry").argument("[namespaceOrSubcommand]", "Telemetry subcommand: status, flush, stats, clear (default: status)").argument("[subcommand]", "Compatibility alias target for local-analytics: status, flush, stats, clear").option("--limit <n>", "Maximum command groups returned by telemetry stats").description("Inspect and manage local telemetry queue/runtime state.").action(async (namespaceOrSubcommand, subcommand, options, command) => {
199
- const globalOptions = getGlobalOptions(command);
200
- const startedAt = Date.now();
201
- const { runTelemetry } = await import("./telemetry-5SQ5UDXC.js");
202
- const result = await runTelemetry({
203
- subcommand: resolveTelemetrySubcommand(namespaceOrSubcommand, subcommand),
204
- // Commander always parses `--limit <n>` to a string (or leaves it
205
- // undefined), so a string passthrough covers every CLI-reachable input.
206
- limit: typeof options.limit === "string" ? options.limit : void 0
207
- }, globalOptions);
208
- printResult(result, globalOptions);
209
- if (globalOptions.profile) {
210
- printError(`profile:command=telemetry took_ms=${Date.now() - startedAt}`);
211
- }
212
- });
213
- program.command("stats").description("Show project tracker statistics.").option("--storage", "Include aggregate history-stream storage metrics (total streams/lines/bytes, largest + deepest streams, oldest/newest entries)").option("--metadata-coverage", "Include metadata coverage % (acceptance_criteria, estimated_minutes, resolution, tags, parent) overall and by type").option("--by-assignee", "Include a lifecycle-bucketed item breakdown grouped by assignee").option("--by-tag", "Include a lifecycle-bucketed item breakdown grouped by tag").option("--by-priority", "Include a lifecycle-bucketed item breakdown grouped by priority").option("--tag-prefix <value>", "With --by-tag: only count tags starting with this prefix (e.g. domain:)").option("--field-utilization", "Report content-field utilization rates (notes/learnings/files/docs/tests/comments/deps/body) for governance audits").action(async (options, command) => {
214
- const globalOptions = getGlobalOptions(command);
215
- const startedAt = Date.now();
216
- const { runStats } = await import("./stats-XT6QRKQY.js");
217
- const result = await runStats(globalOptions, {
218
- storage: options.storage === true,
219
- metadataCoverage: options.metadataCoverage === true,
220
- byAssignee: options.byAssignee === true,
221
- byTag: options.byTag === true,
222
- byPriority: options.byPriority === true,
223
- tagPrefix: typeof options.tagPrefix === "string" ? options.tagPrefix : void 0,
224
- fieldUtilization: options.fieldUtilization === true
225
- });
226
- printResult(result, globalOptions);
227
- if (globalOptions.profile) {
228
- printError(`profile:command=stats took_ms=${Date.now() - startedAt}`);
229
- }
230
- });
231
- program.command("health").description("Show project tracker health checks.").option("--strict-directories", "Treat optional item-type directories as required failures").option("--check-only", "Run read-only health diagnostics without refreshing vectors").option("--check-telemetry", "Probe telemetry endpoint health and include network diagnostics").option("--no-refresh", "Disable automatic vector refresh attempts during health checks").option("--refresh-vectors", "Explicitly enable vector refresh attempts during health checks").option("--verbose-stale-items", "Include full stale vectorization ID lists in health output").option("--brief", "Emit compact health details for low-token agent checks").option("--summary", "Emit one-line-style health status with check names and warning count").option("--skip-vectors", "Skip vectorization check for a faster run").option("--skip-integrity", "Skip item/history file integrity check for a faster run").option("--skip-drift", "Skip history drift hash check for a faster run").option("--full", "Run all checks including slow integrity, drift, and vectorization checks").option("--strict-exit", "Return non-zero exit when health is not ok (advisory telemetry warnings are excluded; see warnings[])").option("--fail-on-warn", "Alias for --strict-exit").action(async (options, command) => {
232
- const globalOptions = getGlobalOptions(command);
233
- const startedAt = Date.now();
234
- const { runHealth } = await import("./health-MM7AWXYF.js");
235
- const result = await runHealth(globalOptions, {
236
- strictDirectories: Boolean(options.strictDirectories),
237
- checkOnly: Boolean(options.checkOnly),
238
- checkTelemetry: Boolean(options.checkTelemetry),
239
- noRefresh: Boolean(options.noRefresh),
240
- refreshVectors: Boolean(options.refreshVectors),
241
- verboseStaleItems: Boolean(options.verboseStaleItems),
242
- brief: Boolean(options.brief),
243
- summary: Boolean(options.summary),
244
- skipVectors: Boolean(options.skipVectors),
245
- skipIntegrity: Boolean(options.skipIntegrity),
246
- skipDrift: Boolean(options.skipDrift),
247
- full: Boolean(options.full)
248
- });
249
- printResult(result, globalOptions);
250
- const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
251
- if (strictExit && !result.ok) {
252
- setActiveCommandResult({
253
- ...result,
254
- exit_code: EXIT_CODE.GENERIC_FAILURE,
255
- error_code: "health_findings",
256
- error_category: "validation",
257
- command_resolution: "health_findings",
258
- resolution_stage: "execute"
259
- });
260
- process.exitCode = EXIT_CODE.GENERIC_FAILURE;
261
- }
262
- if (globalOptions.profile) {
263
- printError(`profile:command=health took_ms=${Date.now() - startedAt}`);
264
- }
265
- });
266
- program.command("validate").description("Run standalone metadata, resolution, lifecycle, files, linked-command reference, and history drift validation checks.").option("--check-metadata", "Run metadata completeness checks").option("--metadata-profile <value>", "Select metadata validation profile for --check-metadata (core|strict|custom)").option("--check-resolution", "Run closed-item resolution metadata checks").option("--check-lifecycle", "Run active-item lifecycle governance drift checks").option("--check-stale-blockers", "Include stale blocker-pattern diagnostics in lifecycle checks").option("--dependency-cycle-severity <value>", "Set dependency-cycle warning policy for lifecycle checks (off|warn|error)").option("--parent-cycle-severity <value>", "Set parent-hierarchy cycle warning policy for lifecycle checks (off|warn|error)").option("--check-files", "Run linked-file and orphaned-file checks").option("--check-command-references", "Run linked-command PM-ID reference checks").option("--scan-mode <value>", "Select file candidate scan mode for --check-files (default|tracked-all|tracked-all-strict)").option("--include-pm-internals", "Include PM storage internals in tracked-all candidate scans").option("--verbose-file-lists", "Include full file-path lists for validate --check-files details").option("--verbose-diagnostics", "Include full validate diagnostic ID lists instead of compact summaries").option("--all-affected-ids", "Emit complete missing_* affected-ID lists with no truncation (implied by --json)").option("--strict-exit", "Return non-zero exit when validation warnings are present").option("--fail-on-warn", "Alias for --strict-exit").option("--fix-hints", "Add a machine-executable fix_hints[] of pm commands to each failing check's details").option("--auto-fix", "Apply the safe, deterministic subset of fix-hint remediations (field backfills) automatically").option("--dry-run", "Preview planned --auto-fix/--prune-missing fixes without applying them").option("--fix-scope <scope>", "Grant --auto-fix scopes (metadata, resolution, lifecycle; comma-separated or repeatable). Default: metadata, resolution; lifecycle must be named explicitly", collect).option("--prune-missing", "Remove stale linked-file/doc LINKS whose paths classified as deleted (never touches real files)").option("--check-history-drift", "Run item/history hash drift checks").action(async (options, command) => {
267
- const globalOptions = getGlobalOptions(command);
268
- const startedAt = Date.now();
269
- const { runValidate } = await import("./validate-732RWS5W.js");
270
- const result = await runValidate({
271
- checkMetadata: Boolean(options.checkMetadata),
272
- metadataProfile: typeof options.metadataProfile === "string" ? options.metadataProfile : void 0,
273
- checkResolution: Boolean(options.checkResolution),
274
- checkLifecycle: Boolean(options.checkLifecycle),
275
- checkStaleBlockers: Boolean(options.checkStaleBlockers),
276
- dependencyCycleSeverity: typeof options.dependencyCycleSeverity === "string" ? options.dependencyCycleSeverity : void 0,
277
- parentCycleSeverity: typeof options.parentCycleSeverity === "string" ? options.parentCycleSeverity : void 0,
278
- checkFiles: Boolean(options.checkFiles),
279
- checkCommandReferences: Boolean(options.checkCommandReferences),
280
- scanMode: typeof options.scanMode === "string" ? options.scanMode : void 0,
281
- includePmInternals: Boolean(options.includePmInternals),
282
- verboseFileLists: Boolean(options.verboseFileLists),
283
- verboseDiagnostics: Boolean(options.verboseDiagnostics),
284
- allAffectedIds: Boolean(options.allAffectedIds),
285
- checkHistoryDrift: Boolean(options.checkHistoryDrift),
286
- fixHints: Boolean(options.fixHints),
287
- autoFix: Boolean(options.autoFix),
288
- dryRun: Boolean(options.dryRun),
289
- fixScope: Array.isArray(options.fixScope) ? options.fixScope : void 0,
290
- pruneMissing: Boolean(options.pruneMissing)
291
- }, globalOptions);
292
- printResult(result, globalOptions);
293
- const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
294
- if (strictExit && (result.has_warnings || !result.ok)) {
295
- setActiveCommandResult({
296
- ...result,
297
- exit_code: EXIT_CODE.GENERIC_FAILURE,
298
- error_code: "validation_findings",
299
- error_category: "validation",
300
- command_resolution: "validation_findings",
301
- resolution_stage: "execute"
302
- });
303
- process.exitCode = EXIT_CODE.GENERIC_FAILURE;
304
- }
305
- if (globalOptions.profile) {
306
- printError(`profile:command=validate took_ms=${Date.now() - startedAt}`);
307
- }
308
- });
309
- program.command("gc").option("--dry-run", "Preview cleanup targets without deleting files; without this flag, pm gc deletes matched artifacts").option("--scope <value>", "Limit cleanup to one or more scopes (comma-separated or repeatable): index, embeddings, runtime, locks, checkpoints", collect).description("Delete optional cache artifacts by default (including expired lock debris) and show a summary.").action(async (options, command) => {
310
- const globalOptions = getGlobalOptions(command);
311
- const startedAt = Date.now();
312
- const { runGc } = await import("./gc-D4JQ6OWN.js");
313
- const result = await runGc(globalOptions, {
314
- dryRun: options.dryRun === true,
315
- scope: Array.isArray(options.scope) ? options.scope : []
316
- });
317
- printResult(result, globalOptions);
318
- if (globalOptions.profile) {
319
- printError(`profile:command=gc took_ms=${Date.now() - startedAt}`);
320
- }
321
- });
322
- program.command("contracts").description("Show machine-readable command and schema contracts for agents.").option("--action <value>", "Filter tool schema branches to a specific action").option("--command <value>", "Scope contracts output to one CLI command (narrow-by-default)").option("--schema-only", "Return schema-focused output only").option("--flags-only", "Return command flag contracts only").option("--availability-only", "Return action availability surface only").option("--runtime-only", "Include only actions invocable in the current runtime").option("--active-only", "Alias for --runtime-only").option("--full", "Include full schema and command-flag surfaces (large; default brief output omits heavy sections for unfiltered queries)").action(async (options, command) => {
323
- const globalOptions = getGlobalOptions(command);
324
- const startedAt = Date.now();
325
- const { runContracts } = await import("./contracts-CP2EZJC7.js");
326
- const result = await runContracts({
327
- action: typeof options.action === "string" ? options.action : void 0,
328
- command: typeof options.command === "string" ? options.command : void 0,
329
- schemaOnly: Boolean(options.schemaOnly),
330
- flagsOnly: Boolean(options.flagsOnly),
331
- availabilityOnly: Boolean(options.availabilityOnly),
332
- runtimeOnly: Boolean(options.runtimeOnly) || Boolean(options.activeOnly),
333
- full: Boolean(options.full)
334
- }, globalOptions);
335
- printResult(result, globalOptions);
336
- if (globalOptions.profile) {
337
- printError(`profile:command=contracts took_ms=${Date.now() - startedAt}`);
338
- }
224
+ printResult(result, globalOptions);
225
+ if (globalOptions.profile) {
226
+ printError(`profile:command=stats took_ms=${Date.now() - startedAt}`);
227
+ }
228
+ }
229
+ async function runHealthAction(options, command) {
230
+ const globalOptions = getGlobalOptions(command);
231
+ const startedAt = Date.now();
232
+ const { runHealth } = await import("./health-ZUZG5ULV.js");
233
+ const result = await runHealth(globalOptions, {
234
+ strictDirectories: Boolean(options.strictDirectories),
235
+ checkOnly: Boolean(options.checkOnly),
236
+ checkTelemetry: Boolean(options.checkTelemetry),
237
+ noRefresh: Boolean(options.noRefresh),
238
+ refreshVectors: Boolean(options.refreshVectors),
239
+ verboseStaleItems: Boolean(options.verboseStaleItems),
240
+ brief: Boolean(options.brief),
241
+ summary: Boolean(options.summary),
242
+ skipVectors: Boolean(options.skipVectors),
243
+ skipIntegrity: Boolean(options.skipIntegrity),
244
+ skipDrift: Boolean(options.skipDrift),
245
+ full: Boolean(options.full)
339
246
  });
340
- program.command("claim").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force claim override").option("--if-available", "Skip silently when the item is already claimed by another author (returns skipped=true)").description("Claim an item for active work.").action(async (id, options, command) => {
341
- const globalOptions = getGlobalOptions(command);
342
- const startedAt = Date.now();
343
- const { runClaim } = await import("./claim-SENTPZBN.js");
344
- const result = await runClaim(id, Boolean(options.force), globalOptions, {
345
- author: typeof options.author === "string" ? options.author : void 0,
346
- message: typeof options.message === "string" ? options.message : void 0,
347
- ifAvailable: options.ifAvailable === true
247
+ printResult(result, globalOptions);
248
+ const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
249
+ if (strictExit && !result.ok) {
250
+ setActiveCommandResult({
251
+ ...result,
252
+ exit_code: EXIT_CODE.GENERIC_FAILURE,
253
+ error_code: "health_findings",
254
+ error_category: "validation",
255
+ command_resolution: "health_findings",
256
+ resolution_stage: "execute"
348
257
  });
349
- await invalidateSearchCachesForMutation(globalOptions, result);
350
- printResult(result, globalOptions);
351
- if (globalOptions.profile) {
352
- printError(`profile:command=claim took_ms=${Date.now() - startedAt}`);
353
- }
354
- });
355
- program.command("release").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--allow-audit-release", "Allow non-owner release handoffs without requiring --force").option("--force", "Force release override").description("Release an item's active claim.").action(async (id, options, command) => {
356
- const globalOptions = getGlobalOptions(command);
357
- const startedAt = Date.now();
358
- const { runRelease } = await import("./claim-SENTPZBN.js");
359
- const result = await runRelease(id, Boolean(options.force), globalOptions, {
360
- author: typeof options.author === "string" ? options.author : void 0,
361
- message: typeof options.message === "string" ? options.message : void 0,
362
- allowAuditRelease: options.allowAuditRelease === true
258
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
259
+ }
260
+ if (globalOptions.profile) {
261
+ printError(`profile:command=health took_ms=${Date.now() - startedAt}`);
262
+ }
263
+ }
264
+ async function runValidateAction(options, command) {
265
+ const globalOptions = getGlobalOptions(command);
266
+ const startedAt = Date.now();
267
+ const { runValidate } = await import("./validate-EW6TGC7R.js");
268
+ const result = await runValidate({
269
+ checkMetadata: Boolean(options.checkMetadata),
270
+ metadataProfile: readOptionString(options, "metadataProfile"),
271
+ checkResolution: Boolean(options.checkResolution),
272
+ checkLifecycle: Boolean(options.checkLifecycle),
273
+ checkStaleBlockers: Boolean(options.checkStaleBlockers),
274
+ dependencyCycleSeverity: readOptionString(options, "dependencyCycleSeverity"),
275
+ parentCycleSeverity: readOptionString(options, "parentCycleSeverity"),
276
+ checkFiles: Boolean(options.checkFiles),
277
+ checkCommandReferences: Boolean(options.checkCommandReferences),
278
+ scanMode: readOptionString(options, "scanMode"),
279
+ includePmInternals: Boolean(options.includePmInternals),
280
+ verboseFileLists: Boolean(options.verboseFileLists),
281
+ verboseDiagnostics: Boolean(options.verboseDiagnostics),
282
+ allAffectedIds: Boolean(options.allAffectedIds),
283
+ checkHistoryDrift: Boolean(options.checkHistoryDrift),
284
+ fixHints: Boolean(options.fixHints),
285
+ autoFix: Boolean(options.autoFix),
286
+ dryRun: Boolean(options.dryRun),
287
+ fixScope: Array.isArray(options.fixScope) ? options.fixScope : void 0,
288
+ pruneMissing: Boolean(options.pruneMissing)
289
+ }, globalOptions);
290
+ printResult(result, globalOptions);
291
+ const strictExit = Boolean(options.strictExit) || Boolean(options.failOnWarn);
292
+ if (strictExit && (result.has_warnings || !result.ok)) {
293
+ setActiveCommandResult({
294
+ ...result,
295
+ exit_code: EXIT_CODE.GENERIC_FAILURE,
296
+ error_code: "validation_findings",
297
+ error_category: "validation",
298
+ command_resolution: "validation_findings",
299
+ resolution_stage: "execute"
363
300
  });
364
- await invalidateSearchCachesForMutation(globalOptions, result);
365
- printResult(result, globalOptions);
366
- if (globalOptions.profile) {
367
- printError(`profile:command=release took_ms=${Date.now() - startedAt}`);
368
- }
301
+ process.exitCode = EXIT_CODE.GENERIC_FAILURE;
302
+ }
303
+ if (globalOptions.profile) {
304
+ printError(`profile:command=validate took_ms=${Date.now() - startedAt}`);
305
+ }
306
+ }
307
+ async function runGcAction(options, command) {
308
+ const globalOptions = getGlobalOptions(command);
309
+ const startedAt = Date.now();
310
+ const { runGc } = await import("./gc-3BG67KTO.js");
311
+ const result = await runGc(globalOptions, {
312
+ dryRun: options.dryRun === true,
313
+ scope: Array.isArray(options.scope) ? options.scope : []
369
314
  });
370
- program.command("start-task").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership or terminal override when required").description("Lifecycle alias: claim an item and move it to in_progress.").action(async (id, options, command) => {
371
- const globalOptions = getGlobalOptions(command);
372
- const startedAt = Date.now();
373
- const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
374
- const settings = await readSettings(pmRoot);
375
- const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
376
- const inProgressStatus = resolveStartTaskInProgressStatus(statusRegistry);
377
- const force = Boolean(options.force);
378
- const mutationOptions = {
379
- author: typeof options.author === "string" ? options.author : void 0,
380
- message: typeof options.message === "string" ? options.message : void 0
381
- };
382
- const [{ runClaim }, { runUpdate }] = await Promise.all([
383
- import("./claim-SENTPZBN.js"),
384
- import("./update-MTCFES6X.js")
385
- ]);
386
- const claimResult = await runClaim(id, force, globalOptions, mutationOptions);
387
- await invalidateSearchCachesForMutation(globalOptions, claimResult);
388
- const updateResult = await runUpdate(id, { ...mutationOptions, status: inProgressStatus, force }, globalOptions);
389
- await invalidateSearchCachesForMutation(globalOptions, updateResult);
390
- printResult({ id, action: "start_task", claim: claimResult, update: updateResult }, globalOptions);
391
- if (globalOptions.profile) {
392
- printError(`profile:command=start-task took_ms=${Date.now() - startedAt}`);
393
- }
315
+ printResult(result, globalOptions);
316
+ if (globalOptions.profile) {
317
+ printError(`profile:command=gc took_ms=${Date.now() - startedAt}`);
318
+ }
319
+ }
320
+ async function runContractsAction(options, command) {
321
+ const globalOptions = getGlobalOptions(command);
322
+ const startedAt = Date.now();
323
+ const { runContracts } = await import("./contracts-NLCDIZAT.js");
324
+ const result = await runContracts({
325
+ action: readOptionString(options, "action"),
326
+ command: readOptionString(options, "command"),
327
+ schemaOnly: Boolean(options.schemaOnly),
328
+ flagsOnly: Boolean(options.flagsOnly),
329
+ availabilityOnly: Boolean(options.availabilityOnly),
330
+ runtimeOnly: Boolean(options.runtimeOnly) || Boolean(options.activeOnly),
331
+ full: Boolean(options.full)
332
+ }, globalOptions);
333
+ printResult(result, globalOptions);
334
+ if (globalOptions.profile) {
335
+ printError(`profile:command=contracts took_ms=${Date.now() - startedAt}`);
336
+ }
337
+ }
338
+ async function runClaimAction(id, options, command) {
339
+ const globalOptions = getGlobalOptions(command);
340
+ const startedAt = Date.now();
341
+ const { runClaim } = await import("./claim-YAFUTPVK.js");
342
+ const result = await runClaim(id, Boolean(options.force), globalOptions, {
343
+ ...buildLifecycleMutationOptions(options),
344
+ ifAvailable: options.ifAvailable === true
394
345
  });
395
- program.command("pause-task").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership override when required").description("Lifecycle alias: move an item to open and release its claim.").action(async (id, options, command) => {
396
- const globalOptions = getGlobalOptions(command);
397
- const startedAt = Date.now();
398
- const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
399
- const settings = await readSettings(pmRoot);
400
- const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
401
- const openStatus = statusRegistry.open_status;
402
- const force = Boolean(options.force);
403
- const mutationOptions = {
404
- author: typeof options.author === "string" ? options.author : void 0,
405
- message: typeof options.message === "string" ? options.message : void 0
406
- };
407
- const [{ runUpdate }, { runRelease }] = await Promise.all([
408
- import("./update-MTCFES6X.js"),
409
- import("./claim-SENTPZBN.js")
410
- ]);
411
- const updateResult = await runUpdate(id, { ...mutationOptions, status: openStatus, force }, globalOptions);
412
- await invalidateSearchCachesForMutation(globalOptions, updateResult);
413
- const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
414
- await invalidateSearchCachesForMutation(globalOptions, releaseResult);
415
- printResult({ id, action: "pause_task", update: updateResult, release: releaseResult }, globalOptions);
416
- if (globalOptions.profile) {
417
- printError(`profile:command=pause-task took_ms=${Date.now() - startedAt}`);
418
- }
346
+ await invalidateSearchCachesForMutation(globalOptions, result);
347
+ printResult(result, globalOptions);
348
+ if (globalOptions.profile) {
349
+ printError(`profile:command=claim took_ms=${Date.now() - startedAt}`);
350
+ }
351
+ }
352
+ async function runReleaseAction(id, options, command) {
353
+ const globalOptions = getGlobalOptions(command);
354
+ const startedAt = Date.now();
355
+ const { runRelease } = await import("./claim-YAFUTPVK.js");
356
+ const result = await runRelease(id, Boolean(options.force), globalOptions, {
357
+ ...buildLifecycleMutationOptions(options),
358
+ allowAuditRelease: options.allowAuditRelease === true
419
359
  });
420
- program.command("close-task").argument("<id>", "Item id").argument("[reason]", "Close reason text").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--validate-close <value>", "Close-time validation mode: off|warn|strict").option("--force", "Force ownership or terminal override when required").description("Lifecycle alias: close an item and release assignment metadata.").action(async (id, reason, options, command) => {
360
+ await invalidateSearchCachesForMutation(globalOptions, result);
361
+ printResult(result, globalOptions);
362
+ if (globalOptions.profile) {
363
+ printError(`profile:command=release took_ms=${Date.now() - startedAt}`);
364
+ }
365
+ }
366
+ async function runStartTaskAction(id, options, command) {
367
+ const globalOptions = getGlobalOptions(command);
368
+ const startedAt = Date.now();
369
+ const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
370
+ const settings = await readSettings(pmRoot);
371
+ const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
372
+ const inProgressStatus = resolveStartTaskInProgressStatus(statusRegistry);
373
+ const force = Boolean(options.force);
374
+ const mutationOptions = buildLifecycleMutationOptions(options);
375
+ const [{ runClaim }, { runUpdate }] = await Promise.all([
376
+ import("./claim-YAFUTPVK.js"),
377
+ import("./update-RQKI3AMW.js")
378
+ ]);
379
+ const claimResult = await runClaim(id, force, globalOptions, mutationOptions);
380
+ await invalidateSearchCachesForMutation(globalOptions, claimResult);
381
+ const updateResult = await runUpdate(id, { ...mutationOptions, status: inProgressStatus, force }, globalOptions);
382
+ await invalidateSearchCachesForMutation(globalOptions, updateResult);
383
+ printResult({ id, action: "start_task", claim: claimResult, update: updateResult }, globalOptions);
384
+ if (globalOptions.profile) {
385
+ printError(`profile:command=start-task took_ms=${Date.now() - startedAt}`);
386
+ }
387
+ }
388
+ async function runPauseTaskAction(id, options, command) {
389
+ const globalOptions = getGlobalOptions(command);
390
+ const startedAt = Date.now();
391
+ const pmRoot = resolvePmRoot(process.cwd(), globalOptions.path);
392
+ const settings = await readSettings(pmRoot);
393
+ const statusRegistry = resolveRuntimeStatusRegistry(settings.schema);
394
+ const force = Boolean(options.force);
395
+ const mutationOptions = buildLifecycleMutationOptions(options);
396
+ const [{ runUpdate }, { runRelease }] = await Promise.all([
397
+ import("./update-RQKI3AMW.js"),
398
+ import("./claim-YAFUTPVK.js")
399
+ ]);
400
+ const updateResult = await runUpdate(id, { ...mutationOptions, status: statusRegistry.open_status, force }, globalOptions);
401
+ await invalidateSearchCachesForMutation(globalOptions, updateResult);
402
+ const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
403
+ await invalidateSearchCachesForMutation(globalOptions, releaseResult);
404
+ printResult({ id, action: "pause_task", update: updateResult, release: releaseResult }, globalOptions);
405
+ if (globalOptions.profile) {
406
+ printError(`profile:command=pause-task took_ms=${Date.now() - startedAt}`);
407
+ }
408
+ }
409
+ async function runCloseTaskAction(id, reason, options, command) {
410
+ const globalOptions = getGlobalOptions(command);
411
+ const startedAt = Date.now();
412
+ const force = Boolean(options.force);
413
+ const mutationOptions = buildLifecycleMutationOptions(options);
414
+ const [{ runClose }, { runRelease }] = await Promise.all([
415
+ import("./close-KLDLHAOP.js"),
416
+ import("./claim-YAFUTPVK.js")
417
+ ]);
418
+ const closeResult = await runClose(id, reason, {
419
+ ...mutationOptions,
420
+ validateClose: readOptionString(options, "validateClose"),
421
+ force
422
+ }, globalOptions);
423
+ await invalidateSearchCachesForMutation(globalOptions, closeResult);
424
+ const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
425
+ await invalidateSearchCachesForMutation(globalOptions, releaseResult);
426
+ printResult({ id, action: "close_task", close: closeResult, release: releaseResult }, globalOptions);
427
+ if (globalOptions.profile) {
428
+ printError(`profile:command=close-task took_ms=${Date.now() - startedAt}`);
429
+ }
430
+ }
431
+ function registerOperationCommands(program) {
432
+ program.command("test").argument("<id>", "Item id").option("--add <value>", "Add linked test entry (CSV/markdown pairs or - for stdin)", collect).option("--add-json <value>", "Add linked test entry from JSON object/array (or - for stdin)", collect).option("--remove <value>", "Remove linked test entry by command/path (command=<value>, path=<value>, markdown pairs, plain value, or - for stdin)", collect).option("--list", "List linked tests without mutating").option("--run", "Run linked test commands").option("--match <value>", "Run only linked tests whose command/path contains this substring").option("--only-index <n>", "Run only the 1-based linked-test index from --list order").option("--only-last", "Run only the most recently added linked test").option("--background", "Run linked tests in managed background mode").option("--timeout <seconds>", "Default run timeout in seconds").option("--progress", "Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)").option("--env-set <value>", "Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)", collect).option("--env-clear <value>", "Clear environment variable(s) for linked-test runs (NAME, repeatable)", collect).option("--shared-host-safe", "Apply additive shared-host-safe runtime defaults for linked-test runs").option("--pm-context <mode>", "PM linked-test context mode: schema|tracker|auto (default: schema)").option("--override-linked-pm-context", "Force run-level --pm-context to override per-linked-test pm_context_mode metadata").option("--fail-on-context-mismatch", "Fail linked PM commands when context item counts differ").option("--fail-on-skipped", "Treat skipped linked tests as dependency failures").option("--fail-on-empty-test-run", "Treat successful linked-test commands that report zero executed tests as failures").option("--require-assertions-for-pm", "Require assertion metadata for linked PM command tests").option("--check-context", "Preflight linked PM command context diagnostics before executing commands").option("--auto-pm-context", "Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership override").description("Manage tests linked to an item and optionally run them.").action(runTestCommandAction);
433
+ program.command("test-all").description("Run linked tests across matching items.").option("--status <value>", "Filter items by status before running tests").option("--limit <n>", "Limit matching items before running linked tests").option("--offset <n>", "Skip matching items before running linked tests").option("--background", "Run linked tests in managed background mode").option("--timeout <seconds>", "Default run timeout in seconds").option("--progress", "Emit linked-test progress to stderr (always shown in TTY, opt-in for non-TTY)").option("--env-set <value>", "Set environment variable(s) for linked-test runs (KEY=VALUE, repeatable)", collect).option("--env-clear <value>", "Clear environment variable(s) for linked-test runs (NAME, repeatable)", collect).option("--shared-host-safe", "Apply additive shared-host-safe runtime defaults for linked-test runs").option("--pm-context <mode>", "PM linked-test context mode: schema|tracker|auto (default: schema)").option("--override-linked-pm-context", "Force run-level --pm-context to override per-linked-test pm_context_mode metadata").option("--fail-on-context-mismatch", "Fail linked PM commands when context item counts differ").option("--fail-on-skipped", "Treat skipped linked tests as dependency failures").option("--fail-on-empty-test-run", "Treat successful linked-test commands that report zero executed tests as failures").option("--require-assertions-for-pm", "Require assertion metadata for linked PM command tests").option("--check-context", "Preflight linked PM command context diagnostics before executing commands").option("--auto-pm-context", "Auto-remediate PM tracker-read context mismatches by routing those linked commands through tracker context").action(runTestAllAction);
434
+ program.command("test-runs-worker", { hidden: true }).argument("<runId>", "Background run id").description("Internal background worker command.").action(async (runId, _options, command) => {
421
435
  const globalOptions = getGlobalOptions(command);
422
- const startedAt = Date.now();
423
- const force = Boolean(options.force);
424
- const mutationOptions = {
425
- author: typeof options.author === "string" ? options.author : void 0,
426
- message: typeof options.message === "string" ? options.message : void 0
427
- };
428
- const [{ runClose }, { runRelease }] = await Promise.all([
429
- import("./close-YCWQQPDS.js"),
430
- import("./claim-SENTPZBN.js")
431
- ]);
432
- const closeResult = await runClose(id, reason, {
433
- ...mutationOptions,
434
- validateClose: typeof options.validateClose === "string" ? options.validateClose : void 0,
435
- force
436
- }, globalOptions);
437
- await invalidateSearchCachesForMutation(globalOptions, closeResult);
438
- const releaseResult = await runRelease(id, force, globalOptions, mutationOptions);
439
- await invalidateSearchCachesForMutation(globalOptions, releaseResult);
440
- printResult({ id, action: "close_task", close: closeResult, release: releaseResult }, globalOptions);
441
- if (globalOptions.profile) {
442
- printError(`profile:command=close-task took_ms=${Date.now() - startedAt}`);
443
- }
436
+ const { runTestRunsWorker } = await import("./test-runs-5SLLV3XU.js");
437
+ await runTestRunsWorker(runId, globalOptions);
444
438
  });
439
+ program.command("telemetry").argument("[namespaceOrSubcommand]", "Telemetry subcommand: status, flush, stats, clear (default: status)").argument("[subcommand]", "Compatibility alias target for local-analytics: status, flush, stats, clear").option("--limit <n>", "Maximum command groups returned by telemetry stats").description("Inspect and manage local telemetry queue/runtime state.").action(runTelemetryAction);
440
+ program.command("stats").description("Show project tracker statistics.").option("--storage", "Include aggregate history-stream storage metrics (total streams/lines/bytes, largest + deepest streams, oldest/newest entries)").option("--metadata-coverage", "Include metadata coverage % (acceptance_criteria, estimated_minutes, resolution, tags, parent) overall and by type").option("--by-assignee", "Include a lifecycle-bucketed item breakdown grouped by assignee").option("--by-tag", "Include a lifecycle-bucketed item breakdown grouped by tag").option("--by-priority", "Include a lifecycle-bucketed item breakdown grouped by priority").option("--tag-prefix <value>", "With --by-tag: only count tags starting with this prefix (e.g. domain:)").option("--field-utilization", "Report content-field utilization rates (notes/learnings/files/docs/tests/comments/deps/body) for governance audits").action(runStatsAction);
441
+ program.command("health").description("Show project tracker health checks.").option("--strict-directories", "Treat optional item-type directories as required failures").option("--check-only", "Run read-only health diagnostics without refreshing vectors").option("--check-telemetry", "Probe telemetry endpoint health and include network diagnostics").option("--no-refresh", "Disable automatic vector refresh attempts during health checks").option("--refresh-vectors", "Explicitly enable vector refresh attempts during health checks").option("--verbose-stale-items", "Include full stale vectorization ID lists in health output").option("--brief", "Emit compact health details for low-token agent checks").option("--summary", "Emit one-line-style health status with check names and warning count").option("--skip-vectors", "Skip vectorization check for a faster run").option("--skip-integrity", "Skip item/history file integrity check for a faster run").option("--skip-drift", "Skip history drift hash check for a faster run").option("--full", "Run all checks including slow integrity, drift, and vectorization checks").option("--strict-exit", "Return non-zero exit when health is not ok (advisory telemetry warnings are excluded; see warnings[])").option("--fail-on-warn", "Alias for --strict-exit").action(runHealthAction);
442
+ program.command("validate").description("Run standalone metadata, resolution, lifecycle, files, linked-command reference, and history drift validation checks.").option("--check-metadata", "Run metadata completeness checks").option("--metadata-profile <value>", "Select metadata validation profile for --check-metadata (core|strict|custom)").option("--check-resolution", "Run closed-item resolution metadata checks").option("--check-lifecycle", "Run active-item lifecycle governance drift checks").option("--check-stale-blockers", "Include stale blocker-pattern diagnostics in lifecycle checks").option("--dependency-cycle-severity <value>", "Set dependency-cycle warning policy for lifecycle checks (off|warn|error)").option("--parent-cycle-severity <value>", "Set parent-hierarchy cycle warning policy for lifecycle checks (off|warn|error)").option("--check-files", "Run linked-file and orphaned-file checks").option("--check-command-references", "Run linked-command PM-ID reference checks").option("--scan-mode <value>", "Select file candidate scan mode for --check-files (default|tracked-all|tracked-all-strict)").option("--include-pm-internals", "Include PM storage internals in tracked-all candidate scans").option("--verbose-file-lists", "Include full file-path lists for validate --check-files details").option("--verbose-diagnostics", "Include full validate diagnostic ID lists instead of compact summaries").option("--all-affected-ids", "Emit complete missing_* affected-ID lists with no truncation (implied by --json)").option("--strict-exit", "Return non-zero exit when validation warnings are present").option("--fail-on-warn", "Alias for --strict-exit").option("--fix-hints", "Add a machine-executable fix_hints[] of pm commands to each failing check's details").option("--auto-fix", "Apply the safe, deterministic subset of fix-hint remediations (field backfills) automatically").option("--dry-run", "Preview planned --auto-fix/--prune-missing fixes without applying them").option("--fix-scope <scope>", "Grant --auto-fix scopes (metadata, resolution, lifecycle; comma-separated or repeatable). Default: metadata, resolution; lifecycle must be named explicitly", collect).option("--prune-missing", "Remove stale linked-file/doc LINKS whose paths classified as deleted (never touches real files)").option("--check-history-drift", "Run item/history hash drift checks").action(runValidateAction);
443
+ program.command("gc").option("--dry-run", "Preview cleanup targets without deleting files; without this flag, pm gc deletes matched artifacts").option("--scope <value>", "Limit cleanup to one or more scopes (comma-separated or repeatable): index, embeddings, runtime, locks, checkpoints", collect).description("Delete optional cache artifacts by default (including expired lock debris) and show a summary.").action(runGcAction);
444
+ program.command("contracts").description("Show machine-readable command and schema contracts for agents.").option("--action <value>", "Filter tool schema branches to a specific action").option("--command <value>", "Scope contracts output to one CLI command (narrow-by-default)").option("--schema-only", "Return schema-focused output only").option("--flags-only", "Return command flag contracts only").option("--availability-only", "Return action availability surface only").option("--runtime-only", "Include only actions invocable in the current runtime").option("--active-only", "Alias for --runtime-only").option("--full", "Include full schema and command-flag surfaces (large; default brief output omits heavy sections for unfiltered queries)").action(runContractsAction);
445
+ program.command("claim").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force claim override").option("--if-available", "Skip silently when the item is already claimed by another author (returns skipped=true)").description("Claim an item for active work.").action(runClaimAction);
446
+ program.command("release").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--allow-audit-release", "Allow non-owner release handoffs without requiring --force").option("--force", "Force release override").description("Release an item's active claim.").action(runReleaseAction);
447
+ program.command("start-task").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership or terminal override when required").description("Lifecycle alias: claim an item and move it to in_progress.").action(runStartTaskAction);
448
+ program.command("pause-task").argument("<id>", "Item id").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--force", "Force ownership override when required").description("Lifecycle alias: move an item to open and release its claim.").action(runPauseTaskAction);
449
+ program.command("close-task").argument("<id>", "Item id").argument("[reason]", "Close reason text").option("--author <value>", "Mutation author").option("--message <value>", "History message").option("--validate-close <value>", "Close-time validation mode: off|warn|strict").option("--force", "Force ownership or terminal override when required").description("Lifecycle alias: close an item and release assignment metadata.").action(runCloseTaskAction);
445
450
  registerSchedulingShortcutCommands(program);
446
451
  }
447
452
  function optionalString(value) {
@@ -467,7 +472,7 @@ function registerSchedulingShortcutCommands(program) {
467
472
  program.command(name).argument("<title>", "Item title").option("--start <when>", "Start time (ISO, 'now', or relative like +1h/+2d); defaults to now").option("--duration <span>", "Duration from start (relative like 1h/2d); defaults to 1h when --end is omitted").option("--end <when>", "End time (ISO or relative); overrides --duration").option("--location <value>", "Location").option("--timezone <value>", "IANA timezone (for example America/New_York)").option("--all-day", "Mark as an all-day event").option("--parent <id>", "Parent item id").option("--allow-missing-parent", "Permit a parent id that does not exist yet").option("--tags <list>", "Comma-separated tags").option("--priority <value>", "Priority").option("--body <text>", "Body/markdown content").option("--description <text>", "Short description").option("--author <value>", "Mutation author").option("--message <value>", "History message").description(describe).action(async (title, options, command) => {
468
473
  const globalOptions = getGlobalOptions(command);
469
474
  const startedAt = Date.now();
470
- const { runMeet, runEvent } = await import("./scheduling-shortcuts-ERHCVTEM.js");
475
+ const { runMeet, runEvent } = await import("./scheduling-shortcuts-OGODPUBL.js");
471
476
  const run = name === "meet" ? runMeet : runEvent;
472
477
  const result = await run(title, {
473
478
  ...buildShortcutCommonOptions(options),
@@ -488,7 +493,7 @@ function registerSchedulingShortcutCommands(program) {
488
493
  program.command("remind").argument("<title>", "Item title").option("--at <when>", "Reminder time (ISO, 'now', or relative like +2d); defaults to +1d").option("--text <value>", "Reminder text; defaults to the title").option("--parent <id>", "Parent item id").option("--allow-missing-parent", "Permit a parent id that does not exist yet").option("--tags <list>", "Comma-separated tags").option("--priority <value>", "Priority").option("--body <text>", "Body/markdown content").option("--description <text>", "Short description").option("--author <value>", "Mutation author").option("--message <value>", "History message").description("Shortcut: create a Reminder from a single point in time.").action(async (title, options, command) => {
489
494
  const globalOptions = getGlobalOptions(command);
490
495
  const startedAt = Date.now();
491
- const { runRemind } = await import("./scheduling-shortcuts-ERHCVTEM.js");
496
+ const { runRemind } = await import("./scheduling-shortcuts-OGODPUBL.js");
492
497
  const result = await runRemind(title, {
493
498
  ...buildShortcutCommonOptions(options),
494
499
  at: optionalString(options.at),
@@ -505,4 +510,4 @@ export {
505
510
  registerOperationCommands,
506
511
  resolveStartTaskInProgressStatus
507
512
  };
508
- //# sourceMappingURL=register-operations-4PASGJDB.js.map
513
+ //# sourceMappingURL=register-operations-73UDWMVB.js.map