@unbrained/pm-cli 2026.6.30 → 2026.7.2

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 (628) hide show
  1. package/AGENTS.md +2 -0
  2. package/CHANGELOG.md +26 -0
  3. package/dist/cli/bootstrap-args.js +89 -79
  4. package/dist/cli/bootstrap-args.js.map +1 -1
  5. package/dist/cli/commander-usage.d.ts +2 -0
  6. package/dist/cli/commander-usage.js +58 -47
  7. package/dist/cli/commander-usage.js.map +1 -1
  8. package/dist/cli/commands/aggregate.js +102 -79
  9. package/dist/cli/commands/aggregate.js.map +1 -1
  10. package/dist/cli/commands/calendar.js +339 -303
  11. package/dist/cli/commands/calendar.js.map +1 -1
  12. package/dist/cli/commands/close-many.js +89 -68
  13. package/dist/cli/commands/close-many.js.map +1 -1
  14. package/dist/cli/commands/close.js +157 -129
  15. package/dist/cli/commands/close.js.map +1 -1
  16. package/dist/cli/commands/comments-audit.js +50 -42
  17. package/dist/cli/commands/comments-audit.js.map +1 -1
  18. package/dist/cli/commands/config.d.ts +2 -0
  19. package/dist/cli/commands/config.js +443 -879
  20. package/dist/cli/commands/config.js.map +1 -1
  21. package/dist/cli/commands/context.js +365 -287
  22. package/dist/cli/commands/context.js.map +1 -1
  23. package/dist/cli/commands/contracts.js +352 -238
  24. package/dist/cli/commands/contracts.js.map +1 -1
  25. package/dist/cli/commands/create.js +483 -434
  26. package/dist/cli/commands/create.js.map +1 -1
  27. package/dist/cli/commands/dedupe-audit.js +46 -39
  28. package/dist/cli/commands/dedupe-audit.js.map +1 -1
  29. package/dist/cli/commands/dedupe-merge.js +88 -69
  30. package/dist/cli/commands/dedupe-merge.js.map +1 -1
  31. package/dist/cli/commands/extension/bundled-catalog.js +59 -46
  32. package/dist/cli/commands/extension/bundled-catalog.js.map +1 -1
  33. package/dist/cli/commands/extension/doctor.js +129 -78
  34. package/dist/cli/commands/extension/doctor.js.map +1 -1
  35. package/dist/cli/commands/extension/managed-state.js +101 -57
  36. package/dist/cli/commands/extension/managed-state.js.map +1 -1
  37. package/dist/cli/commands/extension/scaffold.d.ts +7 -0
  38. package/dist/cli/commands/extension/scaffold.js +214 -186
  39. package/dist/cli/commands/extension/scaffold.js.map +1 -1
  40. package/dist/cli/commands/extension.d.ts +6 -1
  41. package/dist/cli/commands/extension.js +1034 -902
  42. package/dist/cli/commands/extension.js.map +1 -1
  43. package/dist/cli/commands/get.js +114 -81
  44. package/dist/cli/commands/get.js.map +1 -1
  45. package/dist/cli/commands/health.d.ts +17 -0
  46. package/dist/cli/commands/health.js +446 -307
  47. package/dist/cli/commands/health.js.map +1 -1
  48. package/dist/cli/commands/history-compact.js +209 -140
  49. package/dist/cli/commands/history-compact.js.map +1 -1
  50. package/dist/cli/commands/history-redact.js +162 -119
  51. package/dist/cli/commands/history-redact.js.map +1 -1
  52. package/dist/cli/commands/history-repair.js +120 -85
  53. package/dist/cli/commands/history-repair.js.map +1 -1
  54. package/dist/cli/commands/init.d.ts +8 -2
  55. package/dist/cli/commands/init.js +263 -162
  56. package/dist/cli/commands/init.js.map +1 -1
  57. package/dist/cli/commands/list-filter-shared.js +55 -48
  58. package/dist/cli/commands/list-filter-shared.js.map +1 -1
  59. package/dist/cli/commands/list.js +152 -102
  60. package/dist/cli/commands/list.js.map +1 -1
  61. package/dist/cli/commands/next.js +49 -32
  62. package/dist/cli/commands/next.js.map +1 -1
  63. package/dist/cli/commands/plan.js +373 -298
  64. package/dist/cli/commands/plan.js.map +1 -1
  65. package/dist/cli/commands/recurrence-parsers.js +43 -25
  66. package/dist/cli/commands/recurrence-parsers.js.map +1 -1
  67. package/dist/cli/commands/reindex.d.ts +21 -5
  68. package/dist/cli/commands/reindex.js +345 -205
  69. package/dist/cli/commands/reindex.js.map +1 -1
  70. package/dist/cli/commands/restore.d.ts +8 -7
  71. package/dist/cli/commands/restore.js +105 -69
  72. package/dist/cli/commands/restore.js.map +1 -1
  73. package/dist/cli/commands/schema.js +33 -30
  74. package/dist/cli/commands/schema.js.map +1 -1
  75. package/dist/cli/commands/search.d.ts +10 -2
  76. package/dist/cli/commands/search.js +595 -536
  77. package/dist/cli/commands/search.js.map +1 -1
  78. package/dist/cli/commands/telemetry.js +98 -87
  79. package/dist/cli/commands/telemetry.js.map +1 -1
  80. package/dist/cli/commands/test-all.js +237 -168
  81. package/dist/cli/commands/test-all.js.map +1 -1
  82. package/dist/cli/commands/test.d.ts +6 -5
  83. package/dist/cli/commands/test.js +530 -464
  84. package/dist/cli/commands/test.js.map +1 -1
  85. package/dist/cli/commands/update-many.js +57 -42
  86. package/dist/cli/commands/update-many.js.map +1 -1
  87. package/dist/cli/commands/update.d.ts +1 -1
  88. package/dist/cli/commands/update.js +764 -747
  89. package/dist/cli/commands/update.js.map +1 -1
  90. package/dist/cli/commands/validate.d.ts +18 -1
  91. package/dist/cli/commands/validate.js +466 -343
  92. package/dist/cli/commands/validate.js.map +1 -1
  93. package/dist/cli/error-guidance.js +399 -357
  94. package/dist/cli/error-guidance.js.map +1 -1
  95. package/dist/cli/extension-command-options.js +48 -21
  96. package/dist/cli/extension-command-options.js.map +1 -1
  97. package/dist/cli/main.d.ts +47 -0
  98. package/dist/cli/main.js +428 -341
  99. package/dist/cli/main.js.map +1 -1
  100. package/dist/cli/migration-gates.js +22 -45
  101. package/dist/cli/migration-gates.js.map +1 -1
  102. package/dist/cli/register-list-query.js +94 -105
  103. package/dist/cli/register-list-query.js.map +1 -1
  104. package/dist/cli/register-mutation.js +400 -416
  105. package/dist/cli/register-mutation.js.map +1 -1
  106. package/dist/cli/register-operations.js +86 -66
  107. package/dist/cli/register-operations.js.map +1 -1
  108. package/dist/cli/register-setup.js +120 -101
  109. package/dist/cli/register-setup.js.map +1 -1
  110. package/dist/cli/registration-helpers.js +117 -122
  111. package/dist/cli/registration-helpers.js.map +1 -1
  112. package/dist/cli-bundle/chunks/{activity-MVSEND6D.js → activity-CUC4JY3U.js} +9 -9
  113. package/dist/cli-bundle/chunks/activity-WEIEMM73.js +16 -0
  114. package/dist/cli-bundle/chunks/{aggregate-MOC4TR2G.js → aggregate-DKUTRY6R.js} +109 -85
  115. package/dist/cli-bundle/chunks/aggregate-DKUTRY6R.js.map +1 -0
  116. package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js → aggregate-SW5PNGCS.js} +108 -84
  117. package/dist/cli-bundle/chunks/{aggregate-XJHLZQ5X.js.map → aggregate-SW5PNGCS.js.map} +2 -2
  118. package/dist/cli-bundle/chunks/{append-KDHT4GHI.js → append-H32VOR2Y.js} +6 -6
  119. package/dist/cli-bundle/chunks/{append-LEDBAM3K.js → append-UBM632FK.js} +6 -6
  120. package/dist/cli-bundle/chunks/{chunk-Z55WX4IQ.js → chunk-2227673O.js} +158 -114
  121. package/dist/cli-bundle/chunks/chunk-2227673O.js.map +1 -0
  122. package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js → chunk-2ASNV4DH.js} +4 -4
  123. package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js → chunk-2CHRYUXL.js} +2 -2
  124. package/dist/cli-bundle/chunks/{chunk-QE5UFCCO.js → chunk-2KWL5NPW.js} +42 -27
  125. package/dist/cli-bundle/chunks/chunk-2KWL5NPW.js.map +1 -0
  126. package/dist/cli-bundle/chunks/{chunk-ZEATCVAC.js → chunk-36UGKF4O.js} +21 -29
  127. package/dist/cli-bundle/chunks/chunk-36UGKF4O.js.map +7 -0
  128. package/dist/cli-bundle/chunks/{chunk-JZG5ADVE.js → chunk-3AZUFQK6.js} +1103 -963
  129. package/dist/cli-bundle/chunks/chunk-3AZUFQK6.js.map +1 -0
  130. package/dist/cli-bundle/chunks/{chunk-DRPF274X.js → chunk-3LCUASYG.js} +2 -2
  131. package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js → chunk-3Q2HBMTI.js} +2 -2
  132. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js +87 -0
  133. package/dist/cli-bundle/chunks/chunk-4BU75MF4.js.map +7 -0
  134. package/dist/cli-bundle/chunks/{chunk-GF7EAR22.js → chunk-4NUOWFBT.js} +109 -72
  135. package/dist/cli-bundle/chunks/chunk-4NUOWFBT.js.map +7 -0
  136. package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js → chunk-55XRYWEG.js} +6 -6
  137. package/dist/cli-bundle/chunks/{chunk-5IRVSKPS.js → chunk-5GVTFFTC.js} +150 -224
  138. package/dist/cli-bundle/chunks/chunk-5GVTFFTC.js.map +1 -0
  139. package/dist/cli-bundle/chunks/{chunk-CHRNYKNI.js → chunk-5PGBHRY3.js} +41 -26
  140. package/dist/cli-bundle/chunks/chunk-5PGBHRY3.js.map +7 -0
  141. package/dist/cli-bundle/chunks/{chunk-53ARXF2O.js → chunk-66Z3X7ZG.js} +261 -161
  142. package/dist/cli-bundle/chunks/chunk-66Z3X7ZG.js.map +7 -0
  143. package/dist/cli-bundle/chunks/{chunk-A3UNLXNJ.js → chunk-6ITZLD4T.js} +738 -688
  144. package/dist/cli-bundle/chunks/chunk-6ITZLD4T.js.map +7 -0
  145. package/dist/cli-bundle/chunks/{chunk-JTRKME24.js → chunk-6YCYF2AI.js} +262 -162
  146. package/dist/cli-bundle/chunks/chunk-6YCYF2AI.js.map +1 -0
  147. package/dist/cli-bundle/chunks/{chunk-RM6MHL6A.js → chunk-6ZMBJRDJ.js} +580 -467
  148. package/dist/cli-bundle/chunks/chunk-6ZMBJRDJ.js.map +7 -0
  149. package/dist/cli-bundle/chunks/{chunk-RPRW26NG.js → chunk-7MYWF4ZX.js} +110 -73
  150. package/dist/cli-bundle/chunks/chunk-7MYWF4ZX.js.map +1 -0
  151. package/dist/cli-bundle/chunks/{chunk-SNUK7H5J.js → chunk-7NSPKJUS.js} +716 -606
  152. package/dist/cli-bundle/chunks/chunk-7NSPKJUS.js.map +7 -0
  153. package/dist/cli-bundle/chunks/{chunk-KYDYQMNW.js → chunk-7TH5NMVB.js} +95 -53
  154. package/dist/cli-bundle/chunks/chunk-7TH5NMVB.js.map +7 -0
  155. package/dist/cli-bundle/chunks/{chunk-VD3LKZFX.js → chunk-7W4H4K26.js} +739 -689
  156. package/dist/cli-bundle/chunks/chunk-7W4H4K26.js.map +1 -0
  157. package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js → chunk-A6VOGKBA.js} +6 -6
  158. package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js → chunk-AIAIXG7I.js} +2 -2
  159. package/dist/cli-bundle/chunks/{chunk-NIBP3I7A.js → chunk-AJEBCRIY.js} +128 -126
  160. package/dist/cli-bundle/chunks/chunk-AJEBCRIY.js.map +1 -0
  161. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js → chunk-B4O5S7I3.js} +79 -57
  162. package/dist/cli-bundle/chunks/{chunk-VZDBVEZR.js.map → chunk-B4O5S7I3.js.map} +2 -2
  163. package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js → chunk-BTX5MIQF.js} +2 -2
  164. package/dist/cli-bundle/chunks/chunk-BVZZN2LH.js +809 -0
  165. package/dist/cli-bundle/chunks/chunk-BVZZN2LH.js.map +7 -0
  166. package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js → chunk-CYBDUHNO.js} +3 -3
  167. package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js → chunk-CZPVDLD2.js} +4 -4
  168. package/dist/cli-bundle/chunks/{chunk-FDEVKXC4.js → chunk-EMPGXBUF.js} +22 -30
  169. package/dist/cli-bundle/chunks/chunk-EMPGXBUF.js.map +1 -0
  170. package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js → chunk-EUKTMRN3.js} +2 -2
  171. package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js → chunk-FFOQHGNH.js} +6 -6
  172. package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js → chunk-GFMSLORL.js} +6 -6
  173. package/dist/cli-bundle/chunks/{chunk-IZQOJR2B.js → chunk-GRRG3MCT.js} +198 -189
  174. package/dist/cli-bundle/chunks/chunk-GRRG3MCT.js.map +7 -0
  175. package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js → chunk-H4GRLYJS.js} +3 -3
  176. package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js → chunk-HQTPRV4D.js} +6 -6
  177. package/dist/cli-bundle/chunks/{chunk-CY5IJMUM.js → chunk-I66WE2HE.js} +712 -602
  178. package/dist/cli-bundle/chunks/chunk-I66WE2HE.js.map +1 -0
  179. package/dist/cli-bundle/chunks/{chunk-ZFIEEDTJ.js → chunk-IEEJQCZ4.js} +509 -363
  180. package/dist/cli-bundle/chunks/chunk-IEEJQCZ4.js.map +7 -0
  181. package/dist/cli-bundle/chunks/{chunk-DU66JUGT.js → chunk-IG5JYZGU.js} +488 -420
  182. package/dist/cli-bundle/chunks/chunk-IG5JYZGU.js.map +7 -0
  183. package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js → chunk-JMK5GCK2.js} +2 -2
  184. package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js → chunk-JXAUVO6X.js} +258 -169
  185. package/dist/cli-bundle/chunks/{chunk-LBH7UYKY.js.map → chunk-JXAUVO6X.js.map} +2 -2
  186. package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js → chunk-K2VYLVX4.js} +2 -2
  187. package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js → chunk-KCO2EAN5.js} +3 -3
  188. package/dist/cli-bundle/chunks/{chunk-T7ZMQI4J.js → chunk-KIYCOJ63.js} +198 -189
  189. package/dist/cli-bundle/chunks/chunk-KIYCOJ63.js.map +1 -0
  190. package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js → chunk-KLXF7NCC.js} +2 -2
  191. package/dist/cli-bundle/chunks/{chunk-V3KLX7U7.js → chunk-KN3URLKS.js} +510 -364
  192. package/dist/cli-bundle/chunks/chunk-KN3URLKS.js.map +1 -0
  193. package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js → chunk-LRKMWUUV.js} +2 -2
  194. package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js → chunk-LTRAF2D7.js} +3 -3
  195. package/dist/cli-bundle/chunks/{chunk-5T6WPLRO.js → chunk-MNBPX5JS.js} +394 -354
  196. package/dist/cli-bundle/chunks/chunk-MNBPX5JS.js.map +7 -0
  197. package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js → chunk-MRD4T5LF.js} +2 -2
  198. package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js → chunk-N2JSWVWG.js} +4 -4
  199. package/dist/cli-bundle/chunks/{chunk-7WDETKGP.js → chunk-N3QCJS4M.js} +1105 -965
  200. package/dist/cli-bundle/chunks/chunk-N3QCJS4M.js.map +7 -0
  201. package/dist/cli-bundle/chunks/{chunk-KGQ3W65B.js → chunk-NRZS637N.js} +258 -169
  202. package/dist/cli-bundle/chunks/chunk-NRZS637N.js.map +1 -0
  203. package/dist/cli-bundle/chunks/chunk-OTUJZKGI.js +799 -0
  204. package/dist/cli-bundle/chunks/chunk-OTUJZKGI.js.map +1 -0
  205. package/dist/cli-bundle/chunks/{chunk-ZIE6WXJ2.js → chunk-Q6K2OACU.js} +153 -90
  206. package/dist/cli-bundle/chunks/chunk-Q6K2OACU.js.map +1 -0
  207. package/dist/cli-bundle/chunks/{chunk-K46GQ265.js → chunk-Q6NXOHS6.js} +489 -421
  208. package/dist/cli-bundle/chunks/chunk-Q6NXOHS6.js.map +1 -0
  209. package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js → chunk-QH3FSKRJ.js} +2 -2
  210. package/dist/cli-bundle/chunks/{chunk-UB3V5WUI.js → chunk-RM37OPYK.js} +394 -354
  211. package/dist/cli-bundle/chunks/chunk-RM37OPYK.js.map +1 -0
  212. package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js → chunk-S62UANU7.js} +3 -3
  213. package/dist/cli-bundle/chunks/{chunk-NO6Y6FB2.js → chunk-SPM2XLWI.js} +37 -28
  214. package/dist/cli-bundle/chunks/chunk-SPM2XLWI.js.map +7 -0
  215. package/dist/cli-bundle/chunks/{chunk-DORJSBGJ.js → chunk-SYNKD3ZG.js} +127 -125
  216. package/dist/cli-bundle/chunks/chunk-SYNKD3ZG.js.map +7 -0
  217. package/dist/cli-bundle/chunks/{chunk-6YRAMXRS.js → chunk-SYVUU7EK.js} +581 -468
  218. package/dist/cli-bundle/chunks/chunk-SYVUU7EK.js.map +1 -0
  219. package/dist/cli-bundle/chunks/{chunk-D5LYZVGB.js → chunk-TPOFWBMY.js} +95 -53
  220. package/dist/cli-bundle/chunks/chunk-TPOFWBMY.js.map +1 -0
  221. package/dist/cli-bundle/chunks/{chunk-IHXXUIXS.js → chunk-TTHCEV5Q.js} +92 -77
  222. package/dist/cli-bundle/chunks/chunk-TTHCEV5Q.js.map +1 -0
  223. package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js → chunk-U2BEEM2X.js} +3 -3
  224. package/dist/cli-bundle/chunks/{chunk-Z5BM2FKQ.js → chunk-UGLU6Q2I.js} +91 -76
  225. package/dist/cli-bundle/chunks/chunk-UGLU6Q2I.js.map +7 -0
  226. package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js → chunk-UT73HUPC.js} +3 -3
  227. package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js → chunk-UTSH5GWX.js} +4 -4
  228. package/dist/cli-bundle/chunks/{chunk-AWN4PPH5.js → chunk-UWKEJMZU.js} +157 -113
  229. package/dist/cli-bundle/chunks/chunk-UWKEJMZU.js.map +7 -0
  230. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js +84 -0
  231. package/dist/cli-bundle/chunks/chunk-VY3VQ22F.js.map +1 -0
  232. package/dist/cli-bundle/chunks/{chunk-KTMMTOIP.js → chunk-W47SML5B.js} +152 -89
  233. package/dist/cli-bundle/chunks/chunk-W47SML5B.js.map +7 -0
  234. package/dist/cli-bundle/chunks/{chunk-UFKNF23C.js → chunk-WJAMWAHZ.js} +157 -118
  235. package/dist/cli-bundle/chunks/chunk-WJAMWAHZ.js.map +7 -0
  236. package/dist/cli-bundle/chunks/{chunk-HIBK6H4S.js → chunk-XCHUVHKU.js} +685 -544
  237. package/dist/cli-bundle/chunks/chunk-XCHUVHKU.js.map +1 -0
  238. package/dist/cli-bundle/chunks/{chunk-DJDXAU74.js → chunk-XEWQKDYZ.js} +685 -544
  239. package/dist/cli-bundle/chunks/chunk-XEWQKDYZ.js.map +7 -0
  240. package/dist/cli-bundle/chunks/{chunk-BOWQWXLI.js → chunk-XTHQWXVC.js} +158 -119
  241. package/dist/cli-bundle/chunks/chunk-XTHQWXVC.js.map +1 -0
  242. package/dist/cli-bundle/chunks/{chunk-6T5ZIWBS.js → chunk-XWGEMNBR.js} +150 -224
  243. package/dist/cli-bundle/chunks/chunk-XWGEMNBR.js.map +7 -0
  244. package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js → chunk-Y4NRKBFW.js} +3 -3
  245. package/dist/cli-bundle/chunks/{chunk-WTRUDJ3R.js → chunk-YLZZ6T54.js} +38 -29
  246. package/dist/cli-bundle/chunks/chunk-YLZZ6T54.js.map +1 -0
  247. package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js → chunk-YPKFV2JR.js} +6 -6
  248. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js → chunk-Z4DGFQDH.js} +80 -58
  249. package/dist/cli-bundle/chunks/{chunk-OKQ22KTH.js.map → chunk-Z4DGFQDH.js.map} +1 -1
  250. package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js → chunk-ZNHEYCDD.js} +2 -2
  251. package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js → chunk-ZNT7KEWE.js} +2 -2
  252. package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js → claim-SENTPZBN.js} +8 -8
  253. package/dist/cli-bundle/chunks/{claim-6NINZYB3.js → claim-Z7MEQCBT.js} +8 -8
  254. package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js → close-424MX4CU.js} +7 -7
  255. package/dist/cli-bundle/chunks/close-YCWQQPDS.js +14 -0
  256. package/dist/cli-bundle/chunks/{close-many-CXJBOWWY.js → close-many-2IV4J2TR.js} +103 -82
  257. package/dist/cli-bundle/chunks/close-many-2IV4J2TR.js.map +1 -0
  258. package/dist/cli-bundle/chunks/{close-many-BFMP6HHK.js → close-many-SWY34BII.js} +102 -81
  259. package/dist/cli-bundle/chunks/close-many-SWY34BII.js.map +7 -0
  260. package/dist/cli-bundle/chunks/{comments-ETHABIY6.js → comments-4FGNTSNV.js} +8 -8
  261. package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js → comments-7YS5MY5X.js} +8 -8
  262. package/dist/cli-bundle/chunks/config-BZJKK7FZ.js +1062 -0
  263. package/dist/cli-bundle/chunks/config-BZJKK7FZ.js.map +1 -0
  264. package/dist/cli-bundle/chunks/config-G74GISC4.js +1072 -0
  265. package/dist/cli-bundle/chunks/config-G74GISC4.js.map +7 -0
  266. package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js → context-LHVKJSPJ.js} +12 -12
  267. package/dist/cli-bundle/chunks/{context-XDI4DKKT.js → context-ZQY54JNS.js} +12 -12
  268. package/dist/cli-bundle/chunks/{contracts-SMOAN5NF.js → contracts-CP2EZJC7.js} +320 -199
  269. package/dist/cli-bundle/chunks/contracts-CP2EZJC7.js.map +7 -0
  270. package/dist/cli-bundle/chunks/{contracts-KP4QAGVW.js → contracts-FIZLMP7O.js} +321 -200
  271. package/dist/cli-bundle/chunks/contracts-FIZLMP7O.js.map +1 -0
  272. package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js → copy-GYNQQPW2.js} +5 -5
  273. package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js → copy-TLW7JTQT.js} +5 -5
  274. package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js → create-VSKYSOCD.js} +12 -12
  275. package/dist/cli-bundle/chunks/create-XTMAPS7I.js +28 -0
  276. package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js → delete-4W5JYCEG.js} +5 -5
  277. package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js → delete-ANTOTI2I.js} +5 -5
  278. package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js → deps-HPPE6MJN.js} +5 -5
  279. package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js → deps-ZQZN54EZ.js} +5 -5
  280. package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js → docs-RPOVFMP3.js} +7 -7
  281. package/dist/cli-bundle/chunks/{docs-2TIFR62T.js → docs-XJNYBJGE.js} +7 -7
  282. package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js → eval-DM6JBZTS.js} +10 -10
  283. package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js → eval-RFBI5FGS.js} +10 -10
  284. package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js → extension-B3YY4WY5.js} +11 -10
  285. package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js → extension-TTSEFQTS.js} +11 -10
  286. package/dist/cli-bundle/chunks/{files-DF3HO6XK.js → files-5D65CHGE.js} +7 -7
  287. package/dist/cli-bundle/chunks/{files-T5ODMETM.js → files-GPIG77EN.js} +7 -7
  288. package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js → focus-C3PEJV2C.js} +6 -6
  289. package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js → focus-ZHN7WIGX.js} +6 -6
  290. package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js → gc-D4JQ6OWN.js} +3 -3
  291. package/dist/cli-bundle/chunks/{gc-FULIVYR4.js → gc-VZIXDL32.js} +3 -3
  292. package/dist/cli-bundle/chunks/{get-VYPIICPC.js → get-GIBRUUOP.js} +121 -81
  293. package/dist/cli-bundle/chunks/get-GIBRUUOP.js.map +1 -0
  294. package/dist/cli-bundle/chunks/{get-AWK324RS.js → get-IOVAN6RU.js} +120 -80
  295. package/dist/cli-bundle/chunks/get-IOVAN6RU.js.map +7 -0
  296. package/dist/cli-bundle/chunks/{health-Q66C43GN.js → health-L2U3AFKV.js} +437 -264
  297. package/dist/cli-bundle/chunks/health-L2U3AFKV.js.map +1 -0
  298. package/dist/cli-bundle/chunks/{health-FBCVZGSX.js → health-MM7AWXYF.js} +436 -263
  299. package/dist/cli-bundle/chunks/health-MM7AWXYF.js.map +7 -0
  300. package/dist/cli-bundle/chunks/history-DD7L7BNL.js +18 -0
  301. package/dist/cli-bundle/chunks/{history-X4OSES6K.js → history-IL7XCEX2.js} +8 -8
  302. package/dist/cli-bundle/chunks/{history-compact-2GHT32UX.js → history-compact-HALOTOU7.js} +214 -135
  303. package/dist/cli-bundle/chunks/history-compact-HALOTOU7.js.map +1 -0
  304. package/dist/cli-bundle/chunks/{history-compact-WLCQEKXS.js → history-compact-MV25P7DM.js} +213 -134
  305. package/dist/cli-bundle/chunks/history-compact-MV25P7DM.js.map +7 -0
  306. package/dist/cli-bundle/chunks/history-redact-IX4YEWMY.js +19 -0
  307. package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js → history-redact-VYCWQFK7.js} +9 -9
  308. package/dist/cli-bundle/chunks/{history-repair-FY75IC26.js → history-repair-44MODPQF.js} +124 -84
  309. package/dist/cli-bundle/chunks/history-repair-44MODPQF.js.map +1 -0
  310. package/dist/cli-bundle/chunks/{history-repair-GABSDSVD.js → history-repair-CPNAOCNF.js} +123 -83
  311. package/dist/cli-bundle/chunks/history-repair-CPNAOCNF.js.map +7 -0
  312. package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js → init-F27NHENZ.js} +12 -11
  313. package/dist/cli-bundle/chunks/init-HHVQQP6C.js +22 -0
  314. package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js → learnings-HJVDQIGY.js} +8 -8
  315. package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js → learnings-XSFSUUWK.js} +8 -8
  316. package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js → list-HPMEKCAA.js} +8 -8
  317. package/dist/cli-bundle/chunks/{list-ROT7JF62.js → list-VMPWTURB.js} +8 -8
  318. package/dist/cli-bundle/chunks/{next-66BJB4N2.js → next-ETXF2ZCN.js} +59 -37
  319. package/dist/cli-bundle/chunks/next-ETXF2ZCN.js.map +7 -0
  320. package/dist/cli-bundle/chunks/{next-N5MWJTBY.js → next-QM6YJIIS.js} +60 -38
  321. package/dist/cli-bundle/chunks/next-QM6YJIIS.js.map +1 -0
  322. package/dist/cli-bundle/chunks/{notes-FW6YFLND.js → notes-GDZIKGR6.js} +8 -8
  323. package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js → notes-WDDBPC4D.js} +8 -8
  324. package/dist/cli-bundle/chunks/{plan-ZHKZ7JVF.js → plan-BGDR73Z6.js} +373 -279
  325. package/dist/cli-bundle/chunks/plan-BGDR73Z6.js.map +1 -0
  326. package/dist/cli-bundle/chunks/{plan-DQ7G4EDC.js → plan-C5IMM335.js} +372 -278
  327. package/dist/cli-bundle/chunks/plan-C5IMM335.js.map +7 -0
  328. package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js → profile-CCOKZ2IQ.js} +9 -9
  329. package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js → profile-HUCENIEQ.js} +9 -9
  330. package/dist/cli-bundle/chunks/{register-list-query-Y2VRHPCL.js → register-list-query-ROSNIL52.js} +80 -83
  331. package/dist/cli-bundle/chunks/register-list-query-ROSNIL52.js.map +1 -0
  332. package/dist/cli-bundle/chunks/{register-list-query-KY6Z6WV7.js → register-list-query-XN4ZRHSV.js} +79 -82
  333. package/dist/cli-bundle/chunks/register-list-query-XN4ZRHSV.js.map +7 -0
  334. package/dist/cli-bundle/chunks/{register-mutation-PCARIGZS.js → register-mutation-CFSB2MS3.js} +406 -385
  335. package/dist/cli-bundle/chunks/register-mutation-CFSB2MS3.js.map +1 -0
  336. package/dist/cli-bundle/chunks/{register-mutation-N6AYSKPM.js → register-mutation-KRLAHEL2.js} +405 -384
  337. package/dist/cli-bundle/chunks/register-mutation-KRLAHEL2.js.map +7 -0
  338. package/dist/cli-bundle/chunks/{register-operations-L6CYTOIH.js → register-operations-4PASGJDB.js} +112 -93
  339. package/dist/cli-bundle/chunks/register-operations-4PASGJDB.js.map +7 -0
  340. package/dist/cli-bundle/chunks/{register-operations-YAT6FUUB.js → register-operations-MBN4KGUM.js} +113 -94
  341. package/dist/cli-bundle/chunks/register-operations-MBN4KGUM.js.map +1 -0
  342. package/dist/cli-bundle/chunks/{register-setup-N7UGXYJC.js → register-setup-VIAWYFP5.js} +129 -104
  343. package/dist/cli-bundle/chunks/register-setup-VIAWYFP5.js.map +1 -0
  344. package/dist/cli-bundle/chunks/{register-setup-MPANILQF.js → register-setup-ZCGKHDKL.js} +128 -103
  345. package/dist/cli-bundle/chunks/register-setup-ZCGKHDKL.js.map +7 -0
  346. package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js → restore-4CBWUMCX.js} +9 -9
  347. package/dist/cli-bundle/chunks/restore-5UEAGG3W.js +17 -0
  348. package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js → scheduling-shortcuts-6VFKNKCM.js} +12 -12
  349. package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js → scheduling-shortcuts-ERHCVTEM.js} +12 -12
  350. package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js → schema-TDGK6N3I.js} +7 -7
  351. package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js → schema-UE5KKAUX.js} +7 -7
  352. package/dist/cli-bundle/chunks/{search-KP6H7COV.js → search-FP7MEU4S.js} +10 -10
  353. package/dist/cli-bundle/chunks/{search-CX5UMV4H.js → search-K4CFLQ5S.js} +10 -10
  354. package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js → stats-NJJCALEZ.js} +6 -6
  355. package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js → stats-XT6QRKQY.js} +6 -6
  356. package/dist/cli-bundle/chunks/{telemetry-DIFPXCAT.js → telemetry-5SQ5UDXC.js} +84 -70
  357. package/dist/cli-bundle/chunks/telemetry-5SQ5UDXC.js.map +7 -0
  358. package/dist/cli-bundle/chunks/{telemetry-WTYFUPRL.js → telemetry-HVXFZA2U.js} +85 -71
  359. package/dist/cli-bundle/chunks/telemetry-HVXFZA2U.js.map +1 -0
  360. package/dist/cli-bundle/chunks/{test-QNDXZQCW.js → test-UFSJ5YIO.js} +15 -14
  361. package/dist/cli-bundle/chunks/{test-HU2BS7EY.js → test-YCDAUBWF.js} +15 -14
  362. package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js +427 -0
  363. package/dist/cli-bundle/chunks/test-all-2BWKY3GQ.js.map +1 -0
  364. package/dist/cli-bundle/chunks/test-all-PM7UYN42.js +430 -0
  365. package/dist/cli-bundle/chunks/test-all-PM7UYN42.js.map +7 -0
  366. package/dist/cli-bundle/chunks/{test-runs-CA6K32RD.js → test-runs-FK5E75AA.js} +185 -147
  367. package/dist/cli-bundle/chunks/test-runs-FK5E75AA.js.map +1 -0
  368. package/dist/cli-bundle/chunks/{test-runs-LANLLPVO.js → test-runs-H4TGWGRN.js} +184 -146
  369. package/dist/cli-bundle/chunks/test-runs-H4TGWGRN.js.map +7 -0
  370. package/dist/cli-bundle/chunks/update-MTCFES6X.js +24 -0
  371. package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js → update-Y5WQVT5O.js} +15 -15
  372. package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js → update-many-6YAYYRLE.js} +83 -68
  373. package/dist/cli-bundle/chunks/{update-many-LU3SCNK5.js.map → update-many-6YAYYRLE.js.map} +2 -2
  374. package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js → update-many-JTKKSA7Y.js} +84 -69
  375. package/dist/cli-bundle/chunks/{update-many-VW5DGF3S.js.map → update-many-JTKKSA7Y.js.map} +1 -1
  376. package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js → upgrade-DTAHZ236.js} +11 -10
  377. package/dist/cli-bundle/chunks/{upgrade-ICXY244R.js.map → upgrade-DTAHZ236.js.map} +1 -1
  378. package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js → upgrade-JUDU7YL4.js} +13 -12
  379. package/dist/cli-bundle/chunks/{upgrade-77FRUAXN.js.map → upgrade-JUDU7YL4.js.map} +1 -1
  380. package/dist/cli-bundle/chunks/{validate-2G566PKQ.js → validate-732RWS5W.js} +440 -319
  381. package/dist/cli-bundle/chunks/validate-732RWS5W.js.map +7 -0
  382. package/dist/cli-bundle/chunks/{validate-BDPVXHHH.js → validate-W7H5TEDC.js} +441 -320
  383. package/dist/cli-bundle/chunks/validate-W7H5TEDC.js.map +1 -0
  384. package/dist/cli-bundle/main.js +986 -1500
  385. package/dist/cli-bundle/main.js.map +4 -4
  386. package/dist/core/config/nested-settings.js +89 -67
  387. package/dist/core/config/nested-settings.js.map +1 -1
  388. package/dist/core/extensions/activation-summary-markdown.js +23 -12
  389. package/dist/core/extensions/activation-summary-markdown.js.map +1 -1
  390. package/dist/core/extensions/extension-policy.d.ts +18 -3
  391. package/dist/core/extensions/extension-policy.js +116 -106
  392. package/dist/core/extensions/extension-policy.js.map +1 -1
  393. package/dist/core/extensions/loader.js +310 -232
  394. package/dist/core/extensions/loader.js.map +1 -1
  395. package/dist/core/governance/metadata-coverage.js +20 -28
  396. package/dist/core/governance/metadata-coverage.js.map +1 -1
  397. package/dist/core/history/drift-scan.js +93 -81
  398. package/dist/core/history/drift-scan.js.map +1 -1
  399. package/dist/core/item/item-format.js +523 -410
  400. package/dist/core/item/item-format.js.map +1 -1
  401. package/dist/core/item/item-type-definition.js +14 -14
  402. package/dist/core/item/item-type-definition.js.map +1 -1
  403. package/dist/core/item/type-registry.js +87 -82
  404. package/dist/core/item/type-registry.js.map +1 -1
  405. package/dist/core/output/mutation-projection.js +42 -26
  406. package/dist/core/output/mutation-projection.js.map +1 -1
  407. package/dist/core/schema/runtime-schema.js +34 -28
  408. package/dist/core/schema/runtime-schema.js.map +1 -1
  409. package/dist/core/search/semantic-defaults.js +64 -37
  410. package/dist/core/search/semantic-defaults.js.map +1 -1
  411. package/dist/core/search/vector-stores.js +32 -17
  412. package/dist/core/search/vector-stores.js.map +1 -1
  413. package/dist/core/sentry/helpers.js +31 -28
  414. package/dist/core/sentry/helpers.js.map +1 -1
  415. package/dist/core/sentry/instrument.js +54 -43
  416. package/dist/core/sentry/instrument.js.map +1 -1
  417. package/dist/core/store/front-matter-cache.js +239 -153
  418. package/dist/core/store/front-matter-cache.js.map +1 -1
  419. package/dist/core/store/item-store.js +33 -26
  420. package/dist/core/store/item-store.js.map +1 -1
  421. package/dist/core/store/settings.js +247 -203
  422. package/dist/core/store/settings.js.map +1 -1
  423. package/dist/core/test/background-runs.js +189 -160
  424. package/dist/core/test/background-runs.js.map +1 -1
  425. package/dist/mcp/server.js +387 -367
  426. package/dist/mcp/server.js.map +1 -1
  427. package/dist/sdk/cli-contracts/flag-contracts.js +111 -180
  428. package/dist/sdk/cli-contracts/flag-contracts.js.map +1 -1
  429. package/dist/sdk/cli-contracts/tool-schema.js +76 -45
  430. package/dist/sdk/cli-contracts/tool-schema.js.map +1 -1
  431. package/dist/sdk/compose.d.ts +4 -1
  432. package/dist/sdk/compose.js +181 -115
  433. package/dist/sdk/compose.js.map +1 -1
  434. package/docs/RELEASING.md +2 -3
  435. package/package.json +2 -2
  436. package/packages/pm-beads/extensions/beads/runtime.ts +240 -167
  437. package/packages/pm-guide-shell/extensions/guide-shell/runtime.ts +65 -58
  438. package/packages/pm-todos/extensions/todos/runtime.ts +65 -42
  439. package/dist/cli-bundle/chunks/activity-EJBMXUBH.js +0 -16
  440. package/dist/cli-bundle/chunks/aggregate-MOC4TR2G.js.map +0 -1
  441. package/dist/cli-bundle/chunks/chunk-53ARXF2O.js.map +0 -7
  442. package/dist/cli-bundle/chunks/chunk-5IRVSKPS.js.map +0 -1
  443. package/dist/cli-bundle/chunks/chunk-5T6WPLRO.js.map +0 -7
  444. package/dist/cli-bundle/chunks/chunk-6T5ZIWBS.js.map +0 -7
  445. package/dist/cli-bundle/chunks/chunk-6YRAMXRS.js.map +0 -1
  446. package/dist/cli-bundle/chunks/chunk-7WDETKGP.js.map +0 -7
  447. package/dist/cli-bundle/chunks/chunk-A3UNLXNJ.js.map +0 -7
  448. package/dist/cli-bundle/chunks/chunk-AWN4PPH5.js.map +0 -7
  449. package/dist/cli-bundle/chunks/chunk-BOWQWXLI.js.map +0 -1
  450. package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js +0 -115
  451. package/dist/cli-bundle/chunks/chunk-C2KCIZKZ.js.map +0 -1
  452. package/dist/cli-bundle/chunks/chunk-CHRNYKNI.js.map +0 -7
  453. package/dist/cli-bundle/chunks/chunk-CY5IJMUM.js.map +0 -1
  454. package/dist/cli-bundle/chunks/chunk-D5LYZVGB.js.map +0 -1
  455. package/dist/cli-bundle/chunks/chunk-DJDXAU74.js.map +0 -7
  456. package/dist/cli-bundle/chunks/chunk-DORJSBGJ.js.map +0 -7
  457. package/dist/cli-bundle/chunks/chunk-DU66JUGT.js.map +0 -7
  458. package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js +0 -118
  459. package/dist/cli-bundle/chunks/chunk-F6VH3LFC.js.map +0 -7
  460. package/dist/cli-bundle/chunks/chunk-FDEVKXC4.js.map +0 -1
  461. package/dist/cli-bundle/chunks/chunk-GF7EAR22.js.map +0 -7
  462. package/dist/cli-bundle/chunks/chunk-HIBK6H4S.js.map +0 -1
  463. package/dist/cli-bundle/chunks/chunk-IHXXUIXS.js.map +0 -1
  464. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js +0 -35
  465. package/dist/cli-bundle/chunks/chunk-ISEKN64V.js.map +0 -7
  466. package/dist/cli-bundle/chunks/chunk-IZQOJR2B.js.map +0 -7
  467. package/dist/cli-bundle/chunks/chunk-JTRKME24.js.map +0 -1
  468. package/dist/cli-bundle/chunks/chunk-JZG5ADVE.js.map +0 -1
  469. package/dist/cli-bundle/chunks/chunk-K46GQ265.js.map +0 -1
  470. package/dist/cli-bundle/chunks/chunk-KGQ3W65B.js.map +0 -1
  471. package/dist/cli-bundle/chunks/chunk-KTMMTOIP.js.map +0 -7
  472. package/dist/cli-bundle/chunks/chunk-KYDYQMNW.js.map +0 -7
  473. package/dist/cli-bundle/chunks/chunk-NIBP3I7A.js.map +0 -1
  474. package/dist/cli-bundle/chunks/chunk-NO6Y6FB2.js.map +0 -7
  475. package/dist/cli-bundle/chunks/chunk-QE5UFCCO.js.map +0 -1
  476. package/dist/cli-bundle/chunks/chunk-RM6MHL6A.js.map +0 -7
  477. package/dist/cli-bundle/chunks/chunk-RPRW26NG.js.map +0 -1
  478. package/dist/cli-bundle/chunks/chunk-SNUK7H5J.js.map +0 -7
  479. package/dist/cli-bundle/chunks/chunk-T7ZMQI4J.js.map +0 -1
  480. package/dist/cli-bundle/chunks/chunk-UB3V5WUI.js.map +0 -1
  481. package/dist/cli-bundle/chunks/chunk-UFKNF23C.js.map +0 -7
  482. package/dist/cli-bundle/chunks/chunk-V3KLX7U7.js.map +0 -1
  483. package/dist/cli-bundle/chunks/chunk-VD3LKZFX.js.map +0 -1
  484. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js +0 -32
  485. package/dist/cli-bundle/chunks/chunk-W2VMLL5S.js.map +0 -1
  486. package/dist/cli-bundle/chunks/chunk-WTRUDJ3R.js.map +0 -1
  487. package/dist/cli-bundle/chunks/chunk-Z55WX4IQ.js.map +0 -1
  488. package/dist/cli-bundle/chunks/chunk-Z5BM2FKQ.js.map +0 -7
  489. package/dist/cli-bundle/chunks/chunk-ZEATCVAC.js.map +0 -7
  490. package/dist/cli-bundle/chunks/chunk-ZFIEEDTJ.js.map +0 -7
  491. package/dist/cli-bundle/chunks/chunk-ZIE6WXJ2.js.map +0 -1
  492. package/dist/cli-bundle/chunks/close-37KEHLYM.js +0 -14
  493. package/dist/cli-bundle/chunks/close-many-BFMP6HHK.js.map +0 -7
  494. package/dist/cli-bundle/chunks/close-many-CXJBOWWY.js.map +0 -1
  495. package/dist/cli-bundle/chunks/config-FIXJZEQK.js +0 -1541
  496. package/dist/cli-bundle/chunks/config-FIXJZEQK.js.map +0 -7
  497. package/dist/cli-bundle/chunks/config-X3ZVCUUG.js +0 -1531
  498. package/dist/cli-bundle/chunks/config-X3ZVCUUG.js.map +0 -1
  499. package/dist/cli-bundle/chunks/contracts-KP4QAGVW.js.map +0 -1
  500. package/dist/cli-bundle/chunks/contracts-SMOAN5NF.js.map +0 -7
  501. package/dist/cli-bundle/chunks/create-DFMNBKBS.js +0 -28
  502. package/dist/cli-bundle/chunks/get-AWK324RS.js.map +0 -7
  503. package/dist/cli-bundle/chunks/get-VYPIICPC.js.map +0 -1
  504. package/dist/cli-bundle/chunks/health-FBCVZGSX.js.map +0 -7
  505. package/dist/cli-bundle/chunks/health-Q66C43GN.js.map +0 -1
  506. package/dist/cli-bundle/chunks/history-5XUSLAJA.js +0 -18
  507. package/dist/cli-bundle/chunks/history-compact-2GHT32UX.js.map +0 -1
  508. package/dist/cli-bundle/chunks/history-compact-WLCQEKXS.js.map +0 -7
  509. package/dist/cli-bundle/chunks/history-redact-BVHWDXPR.js +0 -19
  510. package/dist/cli-bundle/chunks/history-repair-FY75IC26.js.map +0 -1
  511. package/dist/cli-bundle/chunks/history-repair-GABSDSVD.js.map +0 -7
  512. package/dist/cli-bundle/chunks/init-TRYJELH4.js +0 -21
  513. package/dist/cli-bundle/chunks/next-66BJB4N2.js.map +0 -7
  514. package/dist/cli-bundle/chunks/next-N5MWJTBY.js.map +0 -1
  515. package/dist/cli-bundle/chunks/plan-DQ7G4EDC.js.map +0 -7
  516. package/dist/cli-bundle/chunks/plan-ZHKZ7JVF.js.map +0 -1
  517. package/dist/cli-bundle/chunks/register-list-query-KY6Z6WV7.js.map +0 -7
  518. package/dist/cli-bundle/chunks/register-list-query-Y2VRHPCL.js.map +0 -1
  519. package/dist/cli-bundle/chunks/register-mutation-N6AYSKPM.js.map +0 -7
  520. package/dist/cli-bundle/chunks/register-mutation-PCARIGZS.js.map +0 -1
  521. package/dist/cli-bundle/chunks/register-operations-L6CYTOIH.js.map +0 -7
  522. package/dist/cli-bundle/chunks/register-operations-YAT6FUUB.js.map +0 -1
  523. package/dist/cli-bundle/chunks/register-setup-MPANILQF.js.map +0 -7
  524. package/dist/cli-bundle/chunks/register-setup-N7UGXYJC.js.map +0 -1
  525. package/dist/cli-bundle/chunks/restore-IRAKSWIW.js +0 -17
  526. package/dist/cli-bundle/chunks/telemetry-DIFPXCAT.js.map +0 -7
  527. package/dist/cli-bundle/chunks/telemetry-WTYFUPRL.js.map +0 -1
  528. package/dist/cli-bundle/chunks/test-all-PZTBLLQ6.js +0 -360
  529. package/dist/cli-bundle/chunks/test-all-PZTBLLQ6.js.map +0 -7
  530. package/dist/cli-bundle/chunks/test-all-XLPI4USF.js +0 -357
  531. package/dist/cli-bundle/chunks/test-all-XLPI4USF.js.map +0 -1
  532. package/dist/cli-bundle/chunks/test-runs-CA6K32RD.js.map +0 -1
  533. package/dist/cli-bundle/chunks/test-runs-LANLLPVO.js.map +0 -7
  534. package/dist/cli-bundle/chunks/update-UXDLTEOZ.js +0 -24
  535. package/dist/cli-bundle/chunks/validate-2G566PKQ.js.map +0 -7
  536. package/dist/cli-bundle/chunks/validate-BDPVXHHH.js.map +0 -1
  537. /package/dist/cli-bundle/chunks/{activity-MVSEND6D.js.map → activity-CUC4JY3U.js.map} +0 -0
  538. /package/dist/cli-bundle/chunks/{activity-EJBMXUBH.js.map → activity-WEIEMM73.js.map} +0 -0
  539. /package/dist/cli-bundle/chunks/{append-KDHT4GHI.js.map → append-H32VOR2Y.js.map} +0 -0
  540. /package/dist/cli-bundle/chunks/{append-LEDBAM3K.js.map → append-UBM632FK.js.map} +0 -0
  541. /package/dist/cli-bundle/chunks/{chunk-SJZTPVFT.js.map → chunk-2ASNV4DH.js.map} +0 -0
  542. /package/dist/cli-bundle/chunks/{chunk-JVQ7UOYC.js.map → chunk-2CHRYUXL.js.map} +0 -0
  543. /package/dist/cli-bundle/chunks/{chunk-DRPF274X.js.map → chunk-3LCUASYG.js.map} +0 -0
  544. /package/dist/cli-bundle/chunks/{chunk-JJ4SG243.js.map → chunk-3Q2HBMTI.js.map} +0 -0
  545. /package/dist/cli-bundle/chunks/{chunk-TQ6E76BE.js.map → chunk-55XRYWEG.js.map} +0 -0
  546. /package/dist/cli-bundle/chunks/{chunk-IBU2LLWM.js.map → chunk-A6VOGKBA.js.map} +0 -0
  547. /package/dist/cli-bundle/chunks/{chunk-MLHX6DN5.js.map → chunk-AIAIXG7I.js.map} +0 -0
  548. /package/dist/cli-bundle/chunks/{chunk-5ABGFWR4.js.map → chunk-BTX5MIQF.js.map} +0 -0
  549. /package/dist/cli-bundle/chunks/{chunk-3JWQCLR5.js.map → chunk-CYBDUHNO.js.map} +0 -0
  550. /package/dist/cli-bundle/chunks/{chunk-WFJZDUM7.js.map → chunk-CZPVDLD2.js.map} +0 -0
  551. /package/dist/cli-bundle/chunks/{chunk-HUYYMTGW.js.map → chunk-EUKTMRN3.js.map} +0 -0
  552. /package/dist/cli-bundle/chunks/{chunk-EVWYAG46.js.map → chunk-FFOQHGNH.js.map} +0 -0
  553. /package/dist/cli-bundle/chunks/{chunk-IF4ERU6A.js.map → chunk-GFMSLORL.js.map} +0 -0
  554. /package/dist/cli-bundle/chunks/{chunk-IDYCAK35.js.map → chunk-H4GRLYJS.js.map} +0 -0
  555. /package/dist/cli-bundle/chunks/{chunk-VMY7MZEM.js.map → chunk-HQTPRV4D.js.map} +0 -0
  556. /package/dist/cli-bundle/chunks/{chunk-7L6TXOOC.js.map → chunk-JMK5GCK2.js.map} +0 -0
  557. /package/dist/cli-bundle/chunks/{chunk-KRASIL6M.js.map → chunk-K2VYLVX4.js.map} +0 -0
  558. /package/dist/cli-bundle/chunks/{chunk-4YIMPANT.js.map → chunk-KCO2EAN5.js.map} +0 -0
  559. /package/dist/cli-bundle/chunks/{chunk-D6USKAMA.js.map → chunk-KLXF7NCC.js.map} +0 -0
  560. /package/dist/cli-bundle/chunks/{chunk-OB3RJV5F.js.map → chunk-LRKMWUUV.js.map} +0 -0
  561. /package/dist/cli-bundle/chunks/{chunk-74PUWBGN.js.map → chunk-LTRAF2D7.js.map} +0 -0
  562. /package/dist/cli-bundle/chunks/{chunk-4TXTVZL3.js.map → chunk-MRD4T5LF.js.map} +0 -0
  563. /package/dist/cli-bundle/chunks/{chunk-E2Q2ULMR.js.map → chunk-N2JSWVWG.js.map} +0 -0
  564. /package/dist/cli-bundle/chunks/{chunk-7RIJGN4R.js.map → chunk-QH3FSKRJ.js.map} +0 -0
  565. /package/dist/cli-bundle/chunks/{chunk-OUQ5JEFM.js.map → chunk-S62UANU7.js.map} +0 -0
  566. /package/dist/cli-bundle/chunks/{chunk-DLDCPF5X.js.map → chunk-U2BEEM2X.js.map} +0 -0
  567. /package/dist/cli-bundle/chunks/{chunk-73PTKMAE.js.map → chunk-UT73HUPC.js.map} +0 -0
  568. /package/dist/cli-bundle/chunks/{chunk-F7G53BOA.js.map → chunk-UTSH5GWX.js.map} +0 -0
  569. /package/dist/cli-bundle/chunks/{chunk-JIP67N2K.js.map → chunk-Y4NRKBFW.js.map} +0 -0
  570. /package/dist/cli-bundle/chunks/{chunk-FBZ5XAAF.js.map → chunk-YPKFV2JR.js.map} +0 -0
  571. /package/dist/cli-bundle/chunks/{chunk-BN3CWK6G.js.map → chunk-ZNHEYCDD.js.map} +0 -0
  572. /package/dist/cli-bundle/chunks/{chunk-YEDFE4DC.js.map → chunk-ZNT7KEWE.js.map} +0 -0
  573. /package/dist/cli-bundle/chunks/{claim-HMCLSLUE.js.map → claim-SENTPZBN.js.map} +0 -0
  574. /package/dist/cli-bundle/chunks/{claim-6NINZYB3.js.map → claim-Z7MEQCBT.js.map} +0 -0
  575. /package/dist/cli-bundle/chunks/{close-OP3LK7Z2.js.map → close-424MX4CU.js.map} +0 -0
  576. /package/dist/cli-bundle/chunks/{close-37KEHLYM.js.map → close-YCWQQPDS.js.map} +0 -0
  577. /package/dist/cli-bundle/chunks/{comments-ETHABIY6.js.map → comments-4FGNTSNV.js.map} +0 -0
  578. /package/dist/cli-bundle/chunks/{comments-MU2WMBUY.js.map → comments-7YS5MY5X.js.map} +0 -0
  579. /package/dist/cli-bundle/chunks/{context-7ZEZV3BV.js.map → context-LHVKJSPJ.js.map} +0 -0
  580. /package/dist/cli-bundle/chunks/{context-XDI4DKKT.js.map → context-ZQY54JNS.js.map} +0 -0
  581. /package/dist/cli-bundle/chunks/{copy-JJ3KOQW2.js.map → copy-GYNQQPW2.js.map} +0 -0
  582. /package/dist/cli-bundle/chunks/{copy-CWM6SBY6.js.map → copy-TLW7JTQT.js.map} +0 -0
  583. /package/dist/cli-bundle/chunks/{create-J5Q2ELZT.js.map → create-VSKYSOCD.js.map} +0 -0
  584. /package/dist/cli-bundle/chunks/{create-DFMNBKBS.js.map → create-XTMAPS7I.js.map} +0 -0
  585. /package/dist/cli-bundle/chunks/{delete-2GZLQEUQ.js.map → delete-4W5JYCEG.js.map} +0 -0
  586. /package/dist/cli-bundle/chunks/{delete-OOQS4KVD.js.map → delete-ANTOTI2I.js.map} +0 -0
  587. /package/dist/cli-bundle/chunks/{deps-IF4IGL4R.js.map → deps-HPPE6MJN.js.map} +0 -0
  588. /package/dist/cli-bundle/chunks/{deps-ZVGGCRR6.js.map → deps-ZQZN54EZ.js.map} +0 -0
  589. /package/dist/cli-bundle/chunks/{docs-NFTBCQQC.js.map → docs-RPOVFMP3.js.map} +0 -0
  590. /package/dist/cli-bundle/chunks/{docs-2TIFR62T.js.map → docs-XJNYBJGE.js.map} +0 -0
  591. /package/dist/cli-bundle/chunks/{eval-2F6EH4XN.js.map → eval-DM6JBZTS.js.map} +0 -0
  592. /package/dist/cli-bundle/chunks/{eval-PFKXQR3B.js.map → eval-RFBI5FGS.js.map} +0 -0
  593. /package/dist/cli-bundle/chunks/{extension-GMVOIP4O.js.map → extension-B3YY4WY5.js.map} +0 -0
  594. /package/dist/cli-bundle/chunks/{extension-3LRYX7SW.js.map → extension-TTSEFQTS.js.map} +0 -0
  595. /package/dist/cli-bundle/chunks/{files-DF3HO6XK.js.map → files-5D65CHGE.js.map} +0 -0
  596. /package/dist/cli-bundle/chunks/{files-T5ODMETM.js.map → files-GPIG77EN.js.map} +0 -0
  597. /package/dist/cli-bundle/chunks/{focus-MY5ARIEK.js.map → focus-C3PEJV2C.js.map} +0 -0
  598. /package/dist/cli-bundle/chunks/{focus-DLXKK4AH.js.map → focus-ZHN7WIGX.js.map} +0 -0
  599. /package/dist/cli-bundle/chunks/{gc-MDGRR2SU.js.map → gc-D4JQ6OWN.js.map} +0 -0
  600. /package/dist/cli-bundle/chunks/{gc-FULIVYR4.js.map → gc-VZIXDL32.js.map} +0 -0
  601. /package/dist/cli-bundle/chunks/{history-5XUSLAJA.js.map → history-DD7L7BNL.js.map} +0 -0
  602. /package/dist/cli-bundle/chunks/{history-X4OSES6K.js.map → history-IL7XCEX2.js.map} +0 -0
  603. /package/dist/cli-bundle/chunks/{history-redact-BVHWDXPR.js.map → history-redact-IX4YEWMY.js.map} +0 -0
  604. /package/dist/cli-bundle/chunks/{history-redact-45YW65BK.js.map → history-redact-VYCWQFK7.js.map} +0 -0
  605. /package/dist/cli-bundle/chunks/{init-KO7CGIRQ.js.map → init-F27NHENZ.js.map} +0 -0
  606. /package/dist/cli-bundle/chunks/{init-TRYJELH4.js.map → init-HHVQQP6C.js.map} +0 -0
  607. /package/dist/cli-bundle/chunks/{learnings-LHZT5BHW.js.map → learnings-HJVDQIGY.js.map} +0 -0
  608. /package/dist/cli-bundle/chunks/{learnings-3F7YLI45.js.map → learnings-XSFSUUWK.js.map} +0 -0
  609. /package/dist/cli-bundle/chunks/{list-Y6AU5BJS.js.map → list-HPMEKCAA.js.map} +0 -0
  610. /package/dist/cli-bundle/chunks/{list-ROT7JF62.js.map → list-VMPWTURB.js.map} +0 -0
  611. /package/dist/cli-bundle/chunks/{notes-FW6YFLND.js.map → notes-GDZIKGR6.js.map} +0 -0
  612. /package/dist/cli-bundle/chunks/{notes-EVJZ3VAB.js.map → notes-WDDBPC4D.js.map} +0 -0
  613. /package/dist/cli-bundle/chunks/{profile-CHAW6SEA.js.map → profile-CCOKZ2IQ.js.map} +0 -0
  614. /package/dist/cli-bundle/chunks/{profile-UPZGCDOG.js.map → profile-HUCENIEQ.js.map} +0 -0
  615. /package/dist/cli-bundle/chunks/{restore-DKMCLPI5.js.map → restore-4CBWUMCX.js.map} +0 -0
  616. /package/dist/cli-bundle/chunks/{restore-IRAKSWIW.js.map → restore-5UEAGG3W.js.map} +0 -0
  617. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-3F4QUEDH.js.map → scheduling-shortcuts-6VFKNKCM.js.map} +0 -0
  618. /package/dist/cli-bundle/chunks/{scheduling-shortcuts-BNZLQK36.js.map → scheduling-shortcuts-ERHCVTEM.js.map} +0 -0
  619. /package/dist/cli-bundle/chunks/{schema-OLT6LVKH.js.map → schema-TDGK6N3I.js.map} +0 -0
  620. /package/dist/cli-bundle/chunks/{schema-XJXKJQF5.js.map → schema-UE5KKAUX.js.map} +0 -0
  621. /package/dist/cli-bundle/chunks/{search-KP6H7COV.js.map → search-FP7MEU4S.js.map} +0 -0
  622. /package/dist/cli-bundle/chunks/{search-CX5UMV4H.js.map → search-K4CFLQ5S.js.map} +0 -0
  623. /package/dist/cli-bundle/chunks/{stats-QZUG6MX5.js.map → stats-NJJCALEZ.js.map} +0 -0
  624. /package/dist/cli-bundle/chunks/{stats-7XW4OEMK.js.map → stats-XT6QRKQY.js.map} +0 -0
  625. /package/dist/cli-bundle/chunks/{test-QNDXZQCW.js.map → test-UFSJ5YIO.js.map} +0 -0
  626. /package/dist/cli-bundle/chunks/{test-HU2BS7EY.js.map → test-YCDAUBWF.js.map} +0 -0
  627. /package/dist/cli-bundle/chunks/{update-UXDLTEOZ.js.map → update-MTCFES6X.js.map} +0 -0
  628. /package/dist/cli-bundle/chunks/{update-DJKWLBWJ.js.map → update-Y5WQVT5O.js.map} +0 -0
@@ -5,7 +5,7 @@
5
5
  * Runs the MCP server adapter that exposes pm actions and contracts to external agents.
6
6
  */
7
7
 
8
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4921fdeb-d146-5458-bf25-02e9e7c091c0")}catch(e){}}();
8
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="28140feb-d035-55d6-bd6a-d90ed2c41f26")}catch(e){}}();
9
9
  import { realpathSync } from "node:fs";
10
10
  import readline from "node:readline";
11
11
  import { fileURLToPath } from "node:url";
@@ -588,378 +588,398 @@ async function runAction(args) {
588
588
  const resolutionCwd = explicitCwd ?? process.cwd();
589
589
  return withActiveExtensions(global, explicitCwd, resolutionCwd, (activeExtensions) => dispatchAction(action, args, global, activeExtensions));
590
590
  }
591
- async function dispatchAction(action, args, global, activeExtensions) {
592
- const options = optionsWithAuthor(args, action);
593
- const id = readString(args, "id");
594
- const force = args.force === true;
595
- switch (action) {
596
- case "init":
597
- return runInit(readString(args, "prefix"), global, options);
598
- case "context":
599
- return runContext(options, global);
600
- case "next":
601
- return runNext(options, global);
602
- case "list": {
603
- const listOptions = { ...options };
604
- if (listOptions.compact === undefined &&
605
- listOptions.brief === undefined &&
606
- listOptions.fields === undefined &&
607
- listOptions.includeBody === undefined) {
608
- listOptions.compact = true;
609
- }
610
- // pm-rmjy: echo the applied filters + resolved projection mode so agents
611
- // get structured confirmation of what the server actually ran.
612
- return withQuerySummary((await runList(readString(args, "status"), listOptions, global)), listOptions);
613
- }
614
- case "get":
615
- return runGet(id ?? readRequiredString(options, "id"), global, options);
616
- case "search": {
617
- const searchOptions = { ...options };
618
- if (searchOptions.compact === undefined &&
619
- searchOptions.full === undefined &&
620
- searchOptions.fields === undefined) {
621
- searchOptions.compact = true;
622
- }
623
- // pm-rmjy: echo the applied filters + resolved projection mode (see list).
624
- return withQuerySummary((await runSearch(readRequiredString(args, "query"), searchOptions, global)), searchOptions);
625
- }
626
- case "create": {
627
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
628
- return projectMutationResult(await runCreate(runnerOptions, global), { changedFields, idOnly });
629
- }
630
- case "copy": {
631
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
632
- const copyOptions = {
633
- ...runnerOptions,
634
- ...(runnerOptions.title === undefined && typeof args.title === "string" ? { title: args.title } : {}),
635
- ...(runnerOptions.message === undefined && typeof args.message === "string" ? { message: args.message } : {}),
636
- };
637
- return projectMutationResult(await runCopy(id ?? readRequiredString(copyOptions, "id"), copyOptions, global), { changedFields, idOnly });
638
- }
639
- case "focus": {
640
- const clear = options.clear === true || args.clear === true;
641
- return runFocus(id, { clear }, global);
642
- }
643
- case "update": {
644
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
645
- return projectMutationResult(await runUpdate(id ?? readRequiredString(runnerOptions, "id"), runnerOptions, global), { changedFields, idOnly });
646
- }
647
- case "claim":
648
- return runClaim(id ?? readRequiredString(options, "id"), force, global, options);
649
- case "release":
650
- return runRelease(id ?? readRequiredString(options, "id"), force, global, options);
651
- case "close": {
652
- const { changedFields, idOnly, runnerOptions } = withMutationCompaction(args, options);
653
- const closeReason = readString(args, "reason") ??
654
- readString(args, "text") ??
655
- readString(runnerOptions, "reason") ??
656
- readString(runnerOptions, "text");
657
- return projectMutationResult(await runClose(id ?? readRequiredString(runnerOptions, "id"), closeReason, runnerOptions, global), { changedFields, idOnly });
658
- }
659
- case "comments": {
660
- const commentOptions = { ...options };
661
- const isListing = commentOptions.add === undefined &&
662
- commentOptions.stdin === undefined &&
663
- commentOptions.file === undefined &&
664
- commentOptions.edit === undefined &&
665
- commentOptions.delete === undefined;
666
- if (isListing) {
667
- commentOptions.includeMeta = true;
668
- if (commentOptions.limit === undefined && commentOptions.full !== true) {
669
- commentOptions.limit = "20";
670
- }
671
- }
672
- delete commentOptions.full;
673
- return runComments(id ?? readRequiredString(options, "id"), commentOptions, global);
674
- }
675
- case "notes":
676
- return runNotes(id ?? readRequiredString(options, "id"), options, global);
677
- case "learnings":
678
- return runLearnings(id ?? readRequiredString(options, "id"), options, global);
679
- case "files": {
680
- const fileId = id ?? readRequiredString(options, "id");
681
- if (options.discover === true) {
682
- return runFilesDiscover(fileId, withFilesDiscoveryOptions(options), global);
683
- }
684
- return runFiles(fileId, withAddNoteOption(options), global);
685
- }
686
- case "docs":
687
- return runDocs(id ?? readRequiredString(options, "id"), withAddNoteOption(options), global);
688
- case "test":
689
- return runTest(id ?? readRequiredString(options, "id"), options, global);
690
- case "test-all":
691
- return runTestAll(options, global);
692
- case "telemetry":
693
- return runTelemetry({
694
- subcommand: readString(args, "subcommand") ?? readString(options, "subcommand"),
695
- limit: typeof args.limit === "number" && Number.isFinite(args.limit)
696
- ? args.limit
697
- : typeof options.limit === "number" && Number.isFinite(options.limit)
698
- ? options.limit
699
- : readString(args, "limit") ?? readString(options, "limit"),
700
- }, global);
701
- case "validate":
702
- return runValidate(options, global);
703
- case "health": {
704
- // Default to the compact `summary` projection for agents (ok + per-check
705
- // status + warning samples; ~22x smaller than the full payload). Callers
706
- // opt into detail with brief/summary/full or the deep remediation payload
707
- // via full=true. Mirrors the compact-by-default list/search behavior (F2).
708
- const healthOptions = { ...options };
709
- if (healthOptions.brief === undefined &&
710
- healthOptions.summary === undefined &&
711
- healthOptions.full === undefined) {
712
- healthOptions.summary = true;
713
- }
714
- return runHealth(global, healthOptions);
715
- }
716
- case "contracts":
717
- return runContracts(options, global);
718
- case "config": {
719
- // pm-v68d: the narrow pm_config tool declares configAction top-level;
720
- // options.configAction/options.action remain accepted for pm_run parity.
721
- const configAction = readString(args, "configAction") ?? readString(options, "configAction") ?? readString(options, "action");
722
- if (configAction === undefined) {
723
- throw new PmCliError("Missing required argument: configAction", 64);
724
- }
725
- return runConfig(readString(args, "scope") ?? readString(options, "scope") ?? "project", configAction, readString(args, "key") ?? readString(options, "key"), options, global, readString(args, "value") ?? readString(options, "value"));
726
- }
727
- case "activity": {
728
- const activityOptions = { ...options };
729
- if (activityOptions.compact === undefined) {
730
- activityOptions.compact = activityOptions.full === true ? false : true;
731
- }
732
- delete activityOptions.full;
733
- return runActivity(activityOptions, global);
734
- }
735
- case "aggregate":
736
- return runAggregate(options, global);
737
- case "extension":
738
- return runExtension(readString(args, "target") ?? readString(options, "target"), options, global);
739
- case "extension-reload":
740
- return runExtension(undefined, { ...options, reload: true }, global);
741
- case "package":
742
- return runExtension(readString(args, "target") ?? readString(options, "target"), options, global);
743
- case "package-install":
744
- case "install":
745
- return runExtension(readString(args, "target") ?? readString(options, "target"), { ...options, install: true }, global);
746
- case "package-catalog":
747
- return runExtension(undefined, { ...options, catalog: true, vocabulary: "package" }, global);
748
- case "upgrade":
749
- return runUpgrade(readString(args, "target") ?? readString(options, "target"), options, global);
750
- case "delete":
751
- return runDelete(id ?? readRequiredString(options, "id"), options, global);
752
- case "deps":
753
- return runDeps(id ?? readRequiredString(options, "id"), options, global);
754
- case "files-discover":
755
- return runFilesDiscover(id ?? readRequiredString(options, "id"), options, global);
756
- case "history":
757
- return runHistory(id ?? readRequiredString(options, "id"), options, global);
758
- case "history-redact":
759
- return runHistoryRedact(id ?? readRequiredString(options, "id"), options, global);
760
- case "history-repair": {
761
- const repairAll = options.all === true;
762
- const repairId = id ?? readString(options, "id");
763
- assertHistoryRepairTarget(repairId, repairAll);
764
- return repairAll ? runHistoryRepairAll(options, global) : runHistoryRepair(repairId, options, global);
591
+ function getOwnHandler(handlers, key) {
592
+ return Object.prototype.hasOwnProperty.call(handlers, key) ? handlers[key] : undefined;
593
+ }
594
+ function readMcpTarget(ctx) {
595
+ return readString(ctx.args, "target") ?? readString(ctx.options, "target");
596
+ }
597
+ function requireMcpItemId(ctx, source = ctx.options) {
598
+ return ctx.id ?? readRequiredString(source, "id");
599
+ }
600
+ async function runMcpListAction(ctx) {
601
+ const listOptions = { ...ctx.options };
602
+ if (listOptions.compact === undefined &&
603
+ listOptions.brief === undefined &&
604
+ listOptions.fields === undefined &&
605
+ listOptions.includeBody === undefined) {
606
+ listOptions.compact = true;
607
+ }
608
+ // pm-rmjy: echo applied filters + projection mode so agents get structured confirmation.
609
+ return withQuerySummary((await runList(readString(ctx.args, "status"), listOptions, ctx.global)), listOptions);
610
+ }
611
+ async function runMcpSearchAction(ctx) {
612
+ const searchOptions = { ...ctx.options };
613
+ if (searchOptions.compact === undefined && searchOptions.full === undefined && searchOptions.fields === undefined) {
614
+ searchOptions.compact = true;
615
+ }
616
+ return withQuerySummary((await runSearch(readRequiredString(ctx.args, "query"), searchOptions, ctx.global)), searchOptions);
617
+ }
618
+ async function runMcpCreateAction(ctx) {
619
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
620
+ return projectMutationResult(await runCreate(runnerOptions, ctx.global), { changedFields, idOnly });
621
+ }
622
+ async function runMcpCopyAction(ctx) {
623
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
624
+ const copyOptions = {
625
+ ...runnerOptions,
626
+ ...(runnerOptions.title === undefined && typeof ctx.args.title === "string" ? { title: ctx.args.title } : {}),
627
+ ...(runnerOptions.message === undefined && typeof ctx.args.message === "string" ? { message: ctx.args.message } : {}),
628
+ };
629
+ return projectMutationResult(await runCopy(requireMcpItemId(ctx, copyOptions), copyOptions, ctx.global), {
630
+ changedFields,
631
+ idOnly,
632
+ });
633
+ }
634
+ async function runMcpUpdateAction(ctx) {
635
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
636
+ return projectMutationResult(await runUpdate(requireMcpItemId(ctx, runnerOptions), runnerOptions, ctx.global), {
637
+ changedFields,
638
+ idOnly,
639
+ });
640
+ }
641
+ async function runMcpCloseAction(ctx) {
642
+ const { changedFields, idOnly, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
643
+ const closeReason = readString(ctx.args, "reason") ??
644
+ readString(ctx.args, "text") ??
645
+ readString(runnerOptions, "reason") ??
646
+ readString(runnerOptions, "text");
647
+ return projectMutationResult(await runClose(requireMcpItemId(ctx, runnerOptions), closeReason, runnerOptions, ctx.global), { changedFields, idOnly });
648
+ }
649
+ function runMcpCommentsAction(ctx) {
650
+ const commentOptions = { ...ctx.options };
651
+ const isListing = commentOptions.add === undefined &&
652
+ commentOptions.stdin === undefined &&
653
+ commentOptions.file === undefined &&
654
+ commentOptions.edit === undefined &&
655
+ commentOptions.delete === undefined;
656
+ if (isListing) {
657
+ commentOptions.includeMeta = true;
658
+ if (commentOptions.limit === undefined && commentOptions.full !== true) {
659
+ commentOptions.limit = "20";
765
660
  }
766
- case "history-compact":
767
- return runHistoryCompact(id ?? readRequiredString(options, "id"), options, global);
768
- case "plan": {
769
- const subcommand = readRequiredString(options, "subcommand");
770
- const planRecord = options;
771
- const reorderToken = planRecord.reorderTo ?? args.reorderTo;
772
- const reorderTo = typeof reorderToken === "number" && Number.isFinite(reorderToken)
773
- ? reorderToken
774
- : typeof reorderToken === "string" && reorderToken.trim().length > 0
775
- ? Number.parseInt(reorderToken, 10)
776
- : undefined;
777
- const stepRef = typeof planRecord.stepRef === "string"
778
- ? planRecord.stepRef
779
- : typeof args.stepRef === "string"
780
- ? args.stepRef
781
- : undefined;
782
- return runPlan({
783
- subcommand: subcommand,
784
- id: typeof id === "string" ? id : typeof planRecord.id === "string" ? planRecord.id : undefined,
785
- stepRef,
786
- reorderTo,
787
- options: options,
788
- global,
789
- });
661
+ }
662
+ delete commentOptions.full;
663
+ return runComments(requireMcpItemId(ctx), commentOptions, ctx.global);
664
+ }
665
+ function runMcpFilesAction(ctx) {
666
+ const fileId = requireMcpItemId(ctx);
667
+ return ctx.options.discover === true
668
+ ? runFilesDiscover(fileId, withFilesDiscoveryOptions(ctx.options), ctx.global)
669
+ : runFiles(fileId, withAddNoteOption(ctx.options), ctx.global);
670
+ }
671
+ function runMcpTelemetryAction(ctx) {
672
+ return runTelemetry({
673
+ subcommand: readString(ctx.args, "subcommand") ?? readString(ctx.options, "subcommand"),
674
+ limit: resolveMcpTelemetryLimit(ctx.args, ctx.options),
675
+ }, ctx.global);
676
+ }
677
+ function resolveMcpTelemetryLimit(args, options) {
678
+ if (typeof args.limit === "number" && Number.isFinite(args.limit)) {
679
+ return args.limit;
680
+ }
681
+ if (typeof options.limit === "number" && Number.isFinite(options.limit)) {
682
+ return options.limit;
683
+ }
684
+ return readString(args, "limit") ?? readString(options, "limit");
685
+ }
686
+ function runMcpHealthAction(ctx) {
687
+ const healthOptions = { ...ctx.options };
688
+ if (healthOptions.brief === undefined && healthOptions.summary === undefined && healthOptions.full === undefined) {
689
+ healthOptions.summary = true;
690
+ }
691
+ return runHealth(ctx.global, healthOptions);
692
+ }
693
+ function runMcpConfigAction(ctx) {
694
+ const configAction = readString(ctx.args, "configAction") ?? readString(ctx.options, "configAction") ?? readString(ctx.options, "action");
695
+ if (configAction === undefined) {
696
+ throw new PmCliError("Missing required argument: configAction", 64);
697
+ }
698
+ return runConfig(readString(ctx.args, "scope") ?? readString(ctx.options, "scope") ?? "project", configAction, readString(ctx.args, "key") ?? readString(ctx.options, "key"), ctx.options, ctx.global, readString(ctx.args, "value") ?? readString(ctx.options, "value"));
699
+ }
700
+ function runMcpActivityAction(ctx) {
701
+ const activityOptions = { ...ctx.options };
702
+ if (activityOptions.compact === undefined) {
703
+ activityOptions.compact = activityOptions.full === true ? false : true;
704
+ }
705
+ delete activityOptions.full;
706
+ return runActivity(activityOptions, ctx.global);
707
+ }
708
+ function runMcpHistoryRepairAction(ctx) {
709
+ const repairAll = ctx.options.all === true;
710
+ const repairId = ctx.id ?? readString(ctx.options, "id");
711
+ assertHistoryRepairTarget(repairId, repairAll);
712
+ return repairAll ? runHistoryRepairAll(ctx.options, ctx.global) : runHistoryRepair(repairId, ctx.options, ctx.global);
713
+ }
714
+ function parseMcpInteger(value, label) {
715
+ if (typeof value === "number") {
716
+ if (!Number.isInteger(value)) {
717
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
790
718
  }
791
- case "schema": {
792
- // subcommand/name are top-level fields in the published action contract,
793
- // so accept them from args first and fall back to options for parity.
794
- const subcommand = readString(args, "subcommand") ?? readRequiredString(options, "subcommand");
795
- const normalizedSubcommand = subcommand.trim().toLowerCase();
796
- const schemaName = readString(args, "name") ?? readString(options, "name");
797
- const schemaAuthor = readString(args, "author") ?? readString(options, "author");
798
- const schemaForce = args.force === true || options.force === true;
799
- if (normalizedSubcommand === "list") {
800
- return runSchemaList(global);
801
- }
802
- if (normalizedSubcommand === "show") {
803
- return runSchemaShow(schemaName, global);
804
- }
805
- if (normalizedSubcommand === "show-status") {
806
- return runSchemaShowStatus(schemaName, global);
807
- }
808
- if (normalizedSubcommand === "list-fields") {
809
- return runSchemaListFields(global);
810
- }
811
- if (normalizedSubcommand === "show-field") {
812
- return runSchemaShowField(schemaName, global);
813
- }
814
- if (normalizedSubcommand === "remove-type") {
815
- return runSchemaRemoveType(schemaName, { author: schemaAuthor, force: schemaForce }, global);
816
- }
817
- if (normalizedSubcommand === "remove-field") {
818
- return runSchemaRemoveField(schemaName, { author: schemaAuthor, force: schemaForce }, global);
819
- }
820
- if (normalizedSubcommand === "apply-preset") {
821
- const presetSource = readString(args, "typePreset") ?? readString(options, "typePreset");
822
- return runSchemaApplyPreset(presetSource, { author: schemaAuthor, force: schemaForce }, global);
823
- }
824
- const aliasSource = args.alias ?? options.alias;
825
- const aliases = aliasSource === undefined ? undefined : readStringArray(aliasSource);
826
- if (normalizedSubcommand === "add-field") {
827
- const commandsSource = args.commands ?? options.commands;
828
- const commands = commandsSource === undefined ? undefined : readStringArray(commandsSource);
829
- const requiredTypesSource = args.requiredTypes ?? options.requiredTypes;
830
- const requiredTypes = requiredTypesSource === undefined ? undefined : readStringArray(requiredTypesSource);
831
- return runSchemaAddField(schemaName, {
832
- type: readString(args, "fieldType") ?? readString(options, "fieldType"),
833
- commands,
834
- description: readString(args, "description") ?? readString(options, "description"),
835
- cliFlag: readString(args, "cliFlag") ?? readString(options, "cliFlag"),
836
- alias: aliases,
837
- required: args.required === true || options.required === true,
838
- requiredOnCreate: args.requiredOnCreate === true || options.requiredOnCreate === true,
839
- // allow_unset defaults true; only an explicit false disables it.
840
- allowUnset: !(args.allowUnset === false || options.allowUnset === false),
841
- requiredTypes,
842
- author: schemaAuthor,
843
- force: schemaForce,
844
- }, global);
845
- }
846
- if (normalizedSubcommand === "add-status") {
847
- const roleSource = args.role ?? options.role;
848
- const roles = roleSource === undefined ? undefined : readStringArray(roleSource);
849
- const orderSource = args.order ?? options.order;
850
- let order;
851
- if (typeof orderSource === "number") {
852
- if (!Number.isInteger(orderSource)) {
853
- throw new PmCliError("schema add-status order must be a finite integer.", 64);
854
- }
855
- order = orderSource;
856
- }
857
- else if (typeof orderSource === "string" && orderSource.trim().length > 0) {
858
- const parsed = Number(orderSource);
859
- if (!Number.isInteger(parsed)) {
860
- throw new PmCliError("schema add-status order must be a finite integer.", 64);
861
- }
862
- order = parsed;
863
- }
864
- return runSchemaAddStatus(schemaName, {
865
- role: roles,
866
- alias: aliases,
867
- description: readString(args, "description") ?? readString(options, "description"),
868
- order,
869
- author: schemaAuthor,
870
- force: schemaForce,
871
- }, global);
872
- }
873
- if (normalizedSubcommand === "remove-status") {
874
- return runSchemaRemoveStatus(schemaName, { author: schemaAuthor, force: schemaForce }, global);
875
- }
876
- if (normalizedSubcommand !== "add-type") {
877
- throw new PmCliError(`Unknown pm schema subcommand "${subcommand}". Allowed: add-type, remove-type, add-status, remove-status, add-field, remove-field, list-fields, show-field, apply-preset, list, show, show-status`, 64);
878
- }
879
- if (args.infer === true || options.infer === true) {
880
- const minCountSource = args.minCount ?? options.minCount;
881
- const minCount = typeof minCountSource === "number"
882
- ? minCountSource
883
- : typeof minCountSource === "string" && minCountSource.trim().length > 0
884
- ? Number(minCountSource)
885
- : undefined;
886
- return runSchemaInferTypes({
887
- minCount,
888
- apply: args.apply === true || options.apply === true,
889
- author: schemaAuthor,
890
- force: schemaForce,
891
- }, global);
892
- }
893
- return runSchemaAddType(schemaName, {
894
- description: readString(args, "description") ?? readString(options, "description"),
895
- defaultStatus: readString(args, "defaultStatus") ??
896
- readString(args, "default_status") ??
897
- readString(options, "defaultStatus") ??
898
- readString(options, "default_status"),
899
- folder: readString(args, "folder") ?? readString(options, "folder"),
900
- alias: aliases,
901
- author: schemaAuthor,
902
- force: schemaForce,
903
- }, global);
719
+ return value;
720
+ }
721
+ if (typeof value === "string" && value.trim().length > 0) {
722
+ const parsed = Number(value);
723
+ if (!Number.isInteger(parsed)) {
724
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
904
725
  }
905
- case "profile": {
906
- // subcommand/name are top-level fields in the published action contract,
907
- // so accept them from args first and fall back to options for parity.
908
- const subcommand = readString(args, "subcommand") ?? readRequiredString(options, "subcommand");
909
- const normalizedSubcommand = subcommand.trim().toLowerCase();
910
- const profileName = readString(args, "name") ?? readString(options, "name");
911
- if (normalizedSubcommand === "list") {
912
- return runProfileList();
913
- }
914
- if (normalizedSubcommand === "show") {
915
- return runProfileShow(profileName);
916
- }
917
- if (normalizedSubcommand === "lint") {
918
- return runProfileLint(profileName);
919
- }
920
- if (normalizedSubcommand === "apply") {
921
- return runProfileApply(profileName, {
922
- dryRun: args.dryRun === true || options.dryRun === true,
923
- author: readString(args, "author") ?? readString(options, "author"),
924
- force: args.force === true || options.force === true,
925
- }, global);
926
- }
927
- throw new PmCliError(`Unknown pm profile subcommand "${subcommand}". Allowed: list, show, apply, lint`, 64);
726
+ return parsed;
727
+ }
728
+ return undefined;
729
+ }
730
+ function parseMcpIntegerPrefix(value, label) {
731
+ if (typeof value === "number") {
732
+ const parsed = Number.parseInt(String(value), 10);
733
+ if (!Number.isInteger(parsed)) {
734
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
928
735
  }
929
- case "stats":
930
- return runStats(global, {
931
- storage: options.storage === true,
932
- metadataCoverage: options.metadataCoverage === true,
933
- fieldUtilization: options.fieldUtilization === true,
934
- byAssignee: options.byAssignee === true,
935
- byTag: options.byTag === true,
936
- byPriority: options.byPriority === true,
937
- tagPrefix: typeof options.tagPrefix === "string" ? options.tagPrefix : undefined,
938
- });
939
- case "append": {
940
- const { changedFields, runnerOptions } = withMutationCompaction(args, options);
941
- return projectMutationResult(await runAppend(id ?? readRequiredString(runnerOptions, "id"), runnerOptions, global), { changedFields });
736
+ return parsed;
737
+ }
738
+ if (typeof value === "string" && value.trim().length > 0) {
739
+ const trimmed = value.trim();
740
+ if (!/^[+-]?\d+(?:st|nd|rd|th)?$/i.test(trimmed)) {
741
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
942
742
  }
943
- case "update-many": {
944
- const { changedFields, runnerOptions } = withMutationCompaction(args, options);
945
- return projectMutationResult(await runUpdateMany(updateManyOptionsFromFlat(runnerOptions), global), { changedFields });
743
+ const parsed = Number.parseInt(trimmed, 10);
744
+ if (!Number.isInteger(parsed)) {
745
+ throw new PmCliError(`${label} must be a finite integer.`, 64);
946
746
  }
947
- case "close-many": {
948
- const { changedFields, runnerOptions } = withMutationCompaction(args, options);
949
- const topLevelReason = readString(args, "reason");
950
- const closeManyRunnerOptions = topLevelReason !== undefined && runnerOptions.reason === undefined
951
- ? { ...runnerOptions, reason: topLevelReason }
952
- : { ...runnerOptions };
953
- if (force && closeManyRunnerOptions.force === undefined) {
954
- closeManyRunnerOptions.force = true;
955
- }
956
- return projectMutationResult(await runCloseMany(closeManyOptionsFromFlat(closeManyRunnerOptions), global), { changedFields });
747
+ return parsed;
748
+ }
749
+ return undefined;
750
+ }
751
+ function runMcpPlanAction(ctx) {
752
+ const subcommand = readRequiredString(ctx.options, "subcommand");
753
+ const planRecord = ctx.options;
754
+ return runPlan({
755
+ subcommand: subcommand,
756
+ id: typeof ctx.id === "string" ? ctx.id : typeof planRecord.id === "string" ? planRecord.id : undefined,
757
+ stepRef: readMcpPlanStepRef(ctx),
758
+ reorderTo: parseMcpIntegerPrefix(planRecord.reorderTo ?? ctx.args.reorderTo, "plan reorderTo"),
759
+ options: ctx.options,
760
+ global: ctx.global,
761
+ });
762
+ }
763
+ function readMcpPlanStepRef(ctx) {
764
+ return typeof ctx.options.stepRef === "string"
765
+ ? ctx.options.stepRef
766
+ : typeof ctx.args.stepRef === "string"
767
+ ? ctx.args.stepRef
768
+ : undefined;
769
+ }
770
+ function createMcpSchemaContext(ctx) {
771
+ const subcommand = readString(ctx.args, "subcommand") ?? readRequiredString(ctx.options, "subcommand");
772
+ const aliasSource = ctx.args.alias ?? ctx.options.alias;
773
+ return {
774
+ ctx,
775
+ subcommand: subcommand.trim().toLowerCase(),
776
+ name: readString(ctx.args, "name") ?? readString(ctx.options, "name"),
777
+ author: readString(ctx.args, "author") ?? readString(ctx.options, "author"),
778
+ force: ctx.args.force === true || ctx.options.force === true,
779
+ aliases: aliasSource === undefined ? undefined : readStringArray(aliasSource),
780
+ };
781
+ }
782
+ function runMcpSchemaReadOrRemoveAction(schema) {
783
+ const { ctx, subcommand, name, author, force } = schema;
784
+ const simpleHandlers = {
785
+ list: () => runSchemaList(ctx.global),
786
+ show: () => runSchemaShow(name, ctx.global),
787
+ "show-status": () => runSchemaShowStatus(name, ctx.global),
788
+ "list-fields": () => runSchemaListFields(ctx.global),
789
+ "show-field": () => runSchemaShowField(name, ctx.global),
790
+ "remove-type": () => runSchemaRemoveType(name, { author, force }, ctx.global),
791
+ "remove-field": () => runSchemaRemoveField(name, { author, force }, ctx.global),
792
+ "remove-status": () => runSchemaRemoveStatus(name, { author, force }, ctx.global),
793
+ "apply-preset": () => runSchemaApplyPreset(readString(ctx.args, "typePreset") ?? readString(ctx.options, "typePreset"), { author, force }, ctx.global),
794
+ };
795
+ const handler = getOwnHandler(simpleHandlers, subcommand);
796
+ return handler ? handler() : null;
797
+ }
798
+ function runMcpSchemaAddFieldAction(schema) {
799
+ const { ctx, name, author, force, aliases } = schema;
800
+ const commandsSource = ctx.args.commands ?? ctx.options.commands;
801
+ const requiredTypesSource = ctx.args.requiredTypes ?? ctx.options.requiredTypes;
802
+ return runSchemaAddField(name, {
803
+ type: readString(ctx.args, "fieldType") ?? readString(ctx.options, "fieldType"),
804
+ commands: commandsSource === undefined ? undefined : readStringArray(commandsSource),
805
+ description: readString(ctx.args, "description") ?? readString(ctx.options, "description"),
806
+ cliFlag: readString(ctx.args, "cliFlag") ?? readString(ctx.options, "cliFlag"),
807
+ alias: aliases,
808
+ required: ctx.args.required === true || ctx.options.required === true,
809
+ requiredOnCreate: ctx.args.requiredOnCreate === true || ctx.options.requiredOnCreate === true,
810
+ allowUnset: !(ctx.args.allowUnset === false || ctx.options.allowUnset === false),
811
+ requiredTypes: requiredTypesSource === undefined ? undefined : readStringArray(requiredTypesSource),
812
+ author,
813
+ force,
814
+ }, ctx.global);
815
+ }
816
+ function runMcpSchemaAddStatusAction(schema) {
817
+ const { ctx, name, author, force, aliases } = schema;
818
+ const roleSource = ctx.args.role ?? ctx.options.role;
819
+ return runSchemaAddStatus(name, {
820
+ role: roleSource === undefined ? undefined : readStringArray(roleSource),
821
+ alias: aliases,
822
+ description: readString(ctx.args, "description") ?? readString(ctx.options, "description"),
823
+ order: parseMcpInteger(ctx.args.order ?? ctx.options.order, "schema add-status order"),
824
+ author,
825
+ force,
826
+ }, ctx.global);
827
+ }
828
+ function runMcpSchemaAddTypeAction(schema) {
829
+ const { ctx, name, author, force, aliases } = schema;
830
+ return runSchemaAddType(name, {
831
+ description: readString(ctx.args, "description") ?? readString(ctx.options, "description"),
832
+ defaultStatus: readString(ctx.args, "defaultStatus") ??
833
+ readString(ctx.args, "default_status") ??
834
+ readString(ctx.options, "defaultStatus") ??
835
+ readString(ctx.options, "default_status"),
836
+ folder: readString(ctx.args, "folder") ?? readString(ctx.options, "folder"),
837
+ alias: aliases,
838
+ author,
839
+ force,
840
+ }, ctx.global);
841
+ }
842
+ function runMcpSchemaAction(ctx) {
843
+ const schema = createMcpSchemaContext(ctx);
844
+ const simpleResult = runMcpSchemaReadOrRemoveAction(schema);
845
+ if (simpleResult !== null) {
846
+ return simpleResult;
847
+ }
848
+ if (schema.subcommand === "add-field") {
849
+ return runMcpSchemaAddFieldAction(schema);
850
+ }
851
+ if (schema.subcommand === "add-status") {
852
+ return runMcpSchemaAddStatusAction(schema);
853
+ }
854
+ if (schema.subcommand === "add-type") {
855
+ if (ctx.args.infer === true || ctx.options.infer === true) {
856
+ return runSchemaInferTypes({
857
+ minCount: parseMcpInteger(ctx.args.minCount ?? ctx.options.minCount, "schema infer minCount"),
858
+ apply: ctx.args.apply === true || ctx.options.apply === true,
859
+ author: schema.author,
860
+ force: schema.force,
861
+ }, ctx.global);
957
862
  }
958
- case "gc":
959
- return runGc(global, options);
960
- default:
961
- return dispatchActiveExtensionAction(action, args, options, global, activeExtensions);
863
+ return runMcpSchemaAddTypeAction(schema);
864
+ }
865
+ throw new PmCliError(`Unknown pm schema subcommand "${schema.subcommand}". Allowed: add-type, remove-type, add-status, remove-status, add-field, remove-field, list-fields, show-field, apply-preset, list, show, show-status`, 64);
866
+ }
867
+ function runMcpProfileAction(ctx) {
868
+ const subcommand = readString(ctx.args, "subcommand") ?? readRequiredString(ctx.options, "subcommand");
869
+ const normalizedSubcommand = subcommand.trim().toLowerCase();
870
+ const profileName = readString(ctx.args, "name") ?? readString(ctx.options, "name");
871
+ const handlers = {
872
+ list: () => runProfileList(),
873
+ show: () => runProfileShow(profileName),
874
+ lint: () => runProfileLint(profileName),
875
+ apply: () => runProfileApply(profileName, {
876
+ dryRun: ctx.args.dryRun === true || ctx.options.dryRun === true,
877
+ author: readString(ctx.args, "author") ?? readString(ctx.options, "author"),
878
+ force: ctx.args.force === true || ctx.options.force === true,
879
+ }, ctx.global),
880
+ };
881
+ const handler = getOwnHandler(handlers, normalizedSubcommand);
882
+ if (!handler) {
883
+ throw new PmCliError(`Unknown pm profile subcommand "${subcommand}". Allowed: list, show, apply, lint`, 64);
962
884
  }
885
+ return handler();
886
+ }
887
+ function runMcpStatsAction(ctx) {
888
+ return runStats(ctx.global, {
889
+ storage: ctx.options.storage === true,
890
+ metadataCoverage: ctx.options.metadataCoverage === true,
891
+ fieldUtilization: ctx.options.fieldUtilization === true,
892
+ byAssignee: ctx.options.byAssignee === true,
893
+ byTag: ctx.options.byTag === true,
894
+ byPriority: ctx.options.byPriority === true,
895
+ tagPrefix: typeof ctx.options.tagPrefix === "string" ? ctx.options.tagPrefix : undefined,
896
+ });
897
+ }
898
+ async function runMcpAppendAction(ctx) {
899
+ const { changedFields, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
900
+ return projectMutationResult(await runAppend(requireMcpItemId(ctx, runnerOptions), runnerOptions, ctx.global), {
901
+ changedFields,
902
+ });
903
+ }
904
+ async function runMcpUpdateManyAction(ctx) {
905
+ const { changedFields, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
906
+ return projectMutationResult(await runUpdateMany(updateManyOptionsFromFlat(runnerOptions), ctx.global), { changedFields });
907
+ }
908
+ async function runMcpCloseManyAction(ctx) {
909
+ const { changedFields, runnerOptions } = withMutationCompaction(ctx.args, ctx.options);
910
+ const topLevelReason = readString(ctx.args, "reason");
911
+ const closeManyRunnerOptions = topLevelReason !== undefined && runnerOptions.reason === undefined
912
+ ? { ...runnerOptions, reason: topLevelReason }
913
+ : { ...runnerOptions };
914
+ if (ctx.force && closeManyRunnerOptions.force === undefined) {
915
+ closeManyRunnerOptions.force = true;
916
+ }
917
+ return projectMutationResult(await runCloseMany(closeManyOptionsFromFlat(closeManyRunnerOptions), ctx.global), { changedFields });
918
+ }
919
+ const MCP_ACTION_HANDLERS = {
920
+ init: (ctx) => runInit(readString(ctx.args, "prefix"), ctx.global, ctx.options),
921
+ context: (ctx) => runContext(ctx.options, ctx.global),
922
+ next: (ctx) => runNext(ctx.options, ctx.global),
923
+ list: runMcpListAction,
924
+ get: (ctx) => runGet(requireMcpItemId(ctx), ctx.global, ctx.options),
925
+ search: runMcpSearchAction,
926
+ create: runMcpCreateAction,
927
+ copy: runMcpCopyAction,
928
+ focus: (ctx) => runFocus(ctx.id, { clear: ctx.options.clear === true || ctx.args.clear === true }, ctx.global),
929
+ update: runMcpUpdateAction,
930
+ claim: (ctx) => runClaim(requireMcpItemId(ctx), ctx.force, ctx.global, ctx.options),
931
+ release: (ctx) => runRelease(requireMcpItemId(ctx), ctx.force, ctx.global, ctx.options),
932
+ close: runMcpCloseAction,
933
+ comments: runMcpCommentsAction,
934
+ notes: (ctx) => runNotes(requireMcpItemId(ctx), ctx.options, ctx.global),
935
+ learnings: (ctx) => runLearnings(requireMcpItemId(ctx), ctx.options, ctx.global),
936
+ files: runMcpFilesAction,
937
+ docs: (ctx) => runDocs(requireMcpItemId(ctx), withAddNoteOption(ctx.options), ctx.global),
938
+ test: (ctx) => runTest(requireMcpItemId(ctx), ctx.options, ctx.global),
939
+ "test-all": (ctx) => runTestAll(ctx.options, ctx.global),
940
+ telemetry: runMcpTelemetryAction,
941
+ validate: (ctx) => runValidate(ctx.options, ctx.global),
942
+ health: runMcpHealthAction,
943
+ contracts: (ctx) => runContracts(ctx.options, ctx.global),
944
+ config: runMcpConfigAction,
945
+ activity: runMcpActivityAction,
946
+ aggregate: (ctx) => runAggregate(ctx.options, ctx.global),
947
+ extension: (ctx) => runExtension(readMcpTarget(ctx), ctx.options, ctx.global),
948
+ "extension-reload": (ctx) => runExtension(undefined, { ...ctx.options, reload: true }, ctx.global),
949
+ package: (ctx) => runExtension(readMcpTarget(ctx), ctx.options, ctx.global),
950
+ "package-install": (ctx) => runExtension(readMcpTarget(ctx), { ...ctx.options, install: true }, ctx.global),
951
+ install: (ctx) => runExtension(readMcpTarget(ctx), { ...ctx.options, install: true }, ctx.global),
952
+ "package-catalog": (ctx) => runExtension(undefined, { ...ctx.options, catalog: true, vocabulary: "package" }, ctx.global),
953
+ upgrade: (ctx) => runUpgrade(readMcpTarget(ctx), ctx.options, ctx.global),
954
+ delete: (ctx) => runDelete(requireMcpItemId(ctx), ctx.options, ctx.global),
955
+ deps: (ctx) => runDeps(requireMcpItemId(ctx), ctx.options, ctx.global),
956
+ "files-discover": (ctx) => runFilesDiscover(requireMcpItemId(ctx), ctx.options, ctx.global),
957
+ history: (ctx) => runHistory(requireMcpItemId(ctx), ctx.options, ctx.global),
958
+ "history-redact": (ctx) => runHistoryRedact(requireMcpItemId(ctx), ctx.options, ctx.global),
959
+ "history-repair": runMcpHistoryRepairAction,
960
+ "history-compact": (ctx) => runHistoryCompact(requireMcpItemId(ctx), ctx.options, ctx.global),
961
+ plan: runMcpPlanAction,
962
+ schema: runMcpSchemaAction,
963
+ profile: runMcpProfileAction,
964
+ stats: runMcpStatsAction,
965
+ append: runMcpAppendAction,
966
+ "update-many": runMcpUpdateManyAction,
967
+ "close-many": runMcpCloseManyAction,
968
+ gc: (ctx) => runGc(ctx.global, ctx.options),
969
+ };
970
+ async function dispatchAction(action, args, global, activeExtensions) {
971
+ const options = optionsWithAuthor(args, action);
972
+ const ctx = {
973
+ action,
974
+ args,
975
+ options,
976
+ id: readString(args, "id"),
977
+ force: args.force === true,
978
+ global,
979
+ activeExtensions,
980
+ };
981
+ const handler = getOwnHandler(MCP_ACTION_HANDLERS, action);
982
+ return handler ? handler(ctx) : dispatchActiveExtensionAction(action, args, options, global, activeExtensions);
963
983
  }
964
984
  const HANDLERS = {
965
985
  pm_run: (args) => runAction(args),
@@ -1053,7 +1073,7 @@ export async function handleRequest(request) {
1053
1073
  if (request.method === "tools/call") {
1054
1074
  const params = asRecordClone(request.params);
1055
1075
  const name = readRequiredString(params, "name");
1056
- const handler = HANDLERS[name];
1076
+ const handler = getOwnHandler(HANDLERS, name);
1057
1077
  if (!handler) {
1058
1078
  throw new PmCliError(`Unknown pm MCP tool: ${name}`, 64);
1059
1079
  }
@@ -1193,4 +1213,4 @@ if (isInvokedAsMcpMainModule(process.argv[1], import.meta.url)) {
1193
1213
  }
1194
1214
  /* c8 ignore stop */
1195
1215
  //# sourceMappingURL=server.js.map
1196
- //# debugId=4921fdeb-d146-5458-bf25-02e9e7c091c0
1216
+ //# debugId=28140feb-d035-55d6-bd6a-d90ed2c41f26