@unbrained/pm-cli 2026.6.11 → 2026.6.13

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 (447) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/README.md +1 -1
  3. package/dist/cli/commands/completion.js +20 -8
  4. package/dist/cli/commands/completion.js.map +1 -1
  5. package/dist/cli/commands/create.js +13 -3
  6. package/dist/cli/commands/create.js.map +1 -1
  7. package/dist/cli/commands/docs.d.ts +2 -0
  8. package/dist/cli/commands/docs.js +2 -2
  9. package/dist/cli/commands/docs.js.map +1 -1
  10. package/dist/cli/commands/files.d.ts +2 -0
  11. package/dist/cli/commands/files.js +2 -2
  12. package/dist/cli/commands/files.js.map +1 -1
  13. package/dist/cli/commands/health.d.ts +1 -1
  14. package/dist/cli/commands/health.js +77 -2
  15. package/dist/cli/commands/health.js.map +1 -1
  16. package/dist/cli/commands/history-repair.d.ts +36 -0
  17. package/dist/cli/commands/history-repair.js +68 -3
  18. package/dist/cli/commands/history-repair.js.map +1 -1
  19. package/dist/cli/commands/index.d.ts +1 -1
  20. package/dist/cli/commands/index.js +3 -3
  21. package/dist/cli/commands/index.js.map +1 -1
  22. package/dist/cli/commands/linked-artifacts.d.ts +18 -0
  23. package/dist/cli/commands/linked-artifacts.js +26 -3
  24. package/dist/cli/commands/linked-artifacts.js.map +1 -1
  25. package/dist/cli/commands/plan.d.ts +6 -0
  26. package/dist/cli/commands/plan.js +93 -32
  27. package/dist/cli/commands/plan.js.map +1 -1
  28. package/dist/cli/commands/validate.d.ts +20 -0
  29. package/dist/cli/commands/validate.js +292 -28
  30. package/dist/cli/commands/validate.js.map +1 -1
  31. package/dist/cli/error-guidance.js +29 -2
  32. package/dist/cli/error-guidance.js.map +1 -1
  33. package/dist/cli/help-content.js +7 -3
  34. package/dist/cli/help-content.js.map +1 -1
  35. package/dist/cli/main.js +13 -3
  36. package/dist/cli/main.js.map +1 -1
  37. package/dist/cli/register-mutation.js +47 -16
  38. package/dist/cli/register-mutation.js.map +1 -1
  39. package/dist/cli/register-operations.js +10 -2
  40. package/dist/cli/register-operations.js.map +1 -1
  41. package/dist/cli/register-setup.js +16 -16
  42. package/dist/cli/register-setup.js.map +1 -1
  43. package/dist/cli-bundle/chunks/{activity-XADJOG6G.js → activity-PPO7QWJF.js} +11 -11
  44. package/dist/cli-bundle/chunks/activity-XIOTGZMU.js +16 -0
  45. package/dist/cli-bundle/chunks/{aggregate-6OTS3AOO.js → aggregate-IRHJWEKG.js} +10 -10
  46. package/dist/cli-bundle/chunks/{aggregate-OD36DJU5.js → aggregate-XEBW22UQ.js} +10 -10
  47. package/dist/cli-bundle/chunks/{append-JYWO4P7W.js → append-N2AWXKZC.js} +8 -8
  48. package/dist/cli-bundle/chunks/{append-KG55G7S3.js → append-NL67JNJU.js} +8 -8
  49. package/dist/cli-bundle/chunks/{chunk-IH4MBKK7.js → chunk-2ANTZBYF.js} +5 -5
  50. package/dist/cli-bundle/chunks/{chunk-F75JSIOZ.js → chunk-2J2AH4V5.js} +6 -6
  51. package/dist/cli-bundle/chunks/{chunk-CCX4RSYZ.js → chunk-32XSW44C.js} +2 -2
  52. package/dist/cli-bundle/chunks/{chunk-DY6C42S6.js → chunk-36BCSMKP.js} +9 -9
  53. package/dist/cli-bundle/chunks/{chunk-XUC4C4PT.js → chunk-3CQPVBK3.js} +3 -3
  54. package/dist/cli-bundle/chunks/{chunk-SXKNJPQ7.js → chunk-3FMQMHAG.js} +3 -3
  55. package/dist/cli-bundle/chunks/{chunk-I7NYDZDV.js → chunk-3VULHQNS.js} +2 -2
  56. package/dist/cli-bundle/chunks/{chunk-HHHJ2GI3.js → chunk-4FHLNNW7.js} +8 -8
  57. package/dist/cli-bundle/chunks/{chunk-RXAP6JL5.js → chunk-4JHJ7YG2.js} +9 -9
  58. package/dist/cli-bundle/chunks/{chunk-P5BJOMBB.js → chunk-4TPFXE2R.js} +9 -9
  59. package/dist/cli-bundle/chunks/{chunk-XJDGS74Y.js → chunk-4ZKKZMLH.js} +8 -8
  60. package/dist/cli-bundle/chunks/{chunk-XJDGS74Y.js.map → chunk-4ZKKZMLH.js.map} +1 -1
  61. package/dist/cli-bundle/chunks/{chunk-3SLOMKCJ.js → chunk-5HSAHRYA.js} +12 -12
  62. package/dist/cli-bundle/chunks/{chunk-ZLMIWZUG.js → chunk-5LMF75Q7.js} +2 -2
  63. package/dist/cli-bundle/chunks/{chunk-TK5VZFHY.js → chunk-6TBR5AZ2.js} +7 -7
  64. package/dist/cli-bundle/chunks/{chunk-ATEES5SX.js → chunk-6ZFTM65G.js} +2 -2
  65. package/dist/cli-bundle/chunks/{chunk-P2PSODAQ.js → chunk-7CRFV6JR.js} +111 -10
  66. package/dist/cli-bundle/chunks/chunk-7CRFV6JR.js.map +7 -0
  67. package/dist/cli-bundle/chunks/{chunk-VFUZV5EB.js → chunk-7SM7VA5I.js} +5 -5
  68. package/dist/cli-bundle/chunks/{chunk-GKIZW7SM.js → chunk-AAUYXSFF.js} +3 -3
  69. package/dist/cli-bundle/chunks/{chunk-FXRU333M.js → chunk-AGG32LKL.js} +111 -10
  70. package/dist/cli-bundle/chunks/chunk-AGG32LKL.js.map +1 -0
  71. package/dist/cli-bundle/chunks/{chunk-OASDW5UI.js → chunk-AUDDXKNX.js} +7 -7
  72. package/dist/cli-bundle/chunks/{chunk-ZMW77VWV.js → chunk-BVL5KGVA.js} +9 -9
  73. package/dist/cli-bundle/chunks/{chunk-4JCSYR6F.js → chunk-C24PWDFG.js} +3 -3
  74. package/dist/cli-bundle/chunks/{chunk-4HFU4UO2.js → chunk-CEGUH2E5.js} +3 -3
  75. package/dist/cli-bundle/chunks/{chunk-Y3YKK7CY.js → chunk-DWG4FHPY.js} +2 -2
  76. package/dist/cli-bundle/chunks/chunk-EKS6O2IR.js +217 -0
  77. package/dist/cli-bundle/chunks/chunk-EKS6O2IR.js.map +1 -0
  78. package/dist/cli-bundle/chunks/{chunk-YW6Q3RYZ.js → chunk-GFBEXDCQ.js} +7 -7
  79. package/dist/cli-bundle/chunks/{chunk-XMBI6TNW.js → chunk-GOO4UXBI.js} +4 -4
  80. package/dist/cli-bundle/chunks/{chunk-IGVJRZ6H.js → chunk-GRZGHGRG.js} +8 -8
  81. package/dist/cli-bundle/chunks/{chunk-E5DUIJA4.js → chunk-HLEGAQXT.js} +20 -7
  82. package/dist/cli-bundle/chunks/chunk-HLEGAQXT.js.map +7 -0
  83. package/dist/cli-bundle/chunks/chunk-HWHONML5.js +190 -0
  84. package/dist/cli-bundle/chunks/chunk-HWHONML5.js.map +7 -0
  85. package/dist/cli-bundle/chunks/{chunk-TNAP7EJX.js → chunk-HZOX5BYD.js} +2 -2
  86. package/dist/cli-bundle/chunks/{chunk-VSRZRLG3.js → chunk-IIOIBAQW.js} +3 -3
  87. package/dist/cli-bundle/chunks/{chunk-IUKD4W6Z.js → chunk-IXVSSHGV.js} +2 -2
  88. package/dist/cli-bundle/chunks/{chunk-WUNFKP7M.js → chunk-IZHCCG4S.js} +2 -2
  89. package/dist/cli-bundle/chunks/{chunk-VAOUX6TK.js → chunk-JCTZV7TO.js} +2 -2
  90. package/dist/cli-bundle/chunks/{chunk-ZYNJNPYD.js → chunk-JE5IZXDS.js} +4 -4
  91. package/dist/cli-bundle/chunks/{chunk-QNJSITCX.js → chunk-JW7D6437.js} +7 -7
  92. package/dist/cli-bundle/chunks/{chunk-B65UUCGQ.js → chunk-JWXTOYBI.js} +5 -5
  93. package/dist/cli-bundle/chunks/{chunk-7RIT3OCD.js → chunk-KHGTYCJ6.js} +12 -12
  94. package/dist/cli-bundle/chunks/{chunk-HI7STVF2.js → chunk-L6YQONLM.js} +11 -27
  95. package/dist/cli-bundle/chunks/chunk-L6YQONLM.js.map +1 -0
  96. package/dist/cli-bundle/chunks/{chunk-FY4SPXSC.js → chunk-LFW5NQUP.js} +59 -86
  97. package/dist/cli-bundle/chunks/chunk-LFW5NQUP.js.map +7 -0
  98. package/dist/cli-bundle/chunks/{chunk-VPEAS7PS.js → chunk-LGOXXQUW.js} +2 -2
  99. package/dist/cli-bundle/chunks/{chunk-I2IJY2NL.js → chunk-LOAR5TKX.js} +2 -2
  100. package/dist/cli-bundle/chunks/{chunk-S26FESD4.js → chunk-LSSTKL3Y.js} +3 -3
  101. package/dist/cli-bundle/chunks/{chunk-CW6E4NAT.js → chunk-LYNQ3NGI.js} +8 -8
  102. package/dist/cli-bundle/chunks/{chunk-4YFAGDRH.js → chunk-M3SI2REU.js} +8 -8
  103. package/dist/cli-bundle/chunks/{chunk-73ZPG2I3.js → chunk-MACCNKSZ.js} +3 -3
  104. package/dist/cli-bundle/chunks/{chunk-IKOH24GZ.js → chunk-MGAQ6KZG.js} +20 -15
  105. package/dist/cli-bundle/chunks/{chunk-IKOH24GZ.js.map → chunk-MGAQ6KZG.js.map} +2 -2
  106. package/dist/cli-bundle/chunks/chunk-NAWVUHXH.js +220 -0
  107. package/dist/cli-bundle/chunks/chunk-NAWVUHXH.js.map +7 -0
  108. package/dist/cli-bundle/chunks/{chunk-P5U5EOMA.js → chunk-NN6RKGFW.js} +3 -3
  109. package/dist/cli-bundle/chunks/{chunk-GWZSYR6X.js → chunk-O3YCJOVX.js} +2 -2
  110. package/dist/cli-bundle/chunks/{chunk-7UGSRQCL.js → chunk-PEH7SZD2.js} +7 -7
  111. package/dist/cli-bundle/chunks/{chunk-7UGSRQCL.js.map → chunk-PEH7SZD2.js.map} +2 -2
  112. package/dist/cli-bundle/chunks/{chunk-UOO6BYIA.js → chunk-PNYAAB4S.js} +21 -188
  113. package/dist/cli-bundle/chunks/chunk-PNYAAB4S.js.map +1 -0
  114. package/dist/cli-bundle/chunks/{chunk-UUWGCWBU.js → chunk-QQG4HEX7.js} +3 -3
  115. package/dist/cli-bundle/chunks/{chunk-XTKJSVWH.js → chunk-QU3OPNVV.js} +2 -2
  116. package/dist/cli-bundle/chunks/{chunk-LCSCXBGT.js → chunk-R4VWYWRN.js} +19 -193
  117. package/dist/cli-bundle/chunks/chunk-R4VWYWRN.js.map +7 -0
  118. package/dist/cli-bundle/chunks/{chunk-PSD7F7DX.js → chunk-RFR2YQGO.js} +21 -8
  119. package/dist/cli-bundle/chunks/chunk-RFR2YQGO.js.map +1 -0
  120. package/dist/cli-bundle/chunks/{chunk-EWFY7SLA.js → chunk-RHYBR6G7.js} +8 -8
  121. package/dist/cli-bundle/chunks/{chunk-A6LXQFO7.js → chunk-S2CDTRJ6.js} +52 -79
  122. package/dist/cli-bundle/chunks/chunk-S2CDTRJ6.js.map +1 -0
  123. package/dist/cli-bundle/chunks/{chunk-J3GD64J2.js → chunk-SGMGMCIF.js} +21 -16
  124. package/dist/cli-bundle/chunks/{chunk-J3GD64J2.js.map → chunk-SGMGMCIF.js.map} +1 -1
  125. package/dist/cli-bundle/chunks/{chunk-S2ZLDYGS.js → chunk-SOHXUA2Q.js} +4 -4
  126. package/dist/cli-bundle/chunks/{chunk-KWAXVAXX.js → chunk-SQDKAEKG.js} +4 -4
  127. package/dist/cli-bundle/chunks/{chunk-7IYFN5R7.js → chunk-TOX7YQ7X.js} +3 -3
  128. package/dist/cli-bundle/chunks/{chunk-FDH2X65L.js → chunk-TSXWFN3L.js} +2 -2
  129. package/dist/cli-bundle/chunks/{chunk-OLKBSY4N.js → chunk-UCVJP4JL.js} +2 -2
  130. package/dist/cli-bundle/chunks/{chunk-AVGHVVF7.js → chunk-V4KP3TCN.js} +3 -3
  131. package/dist/cli-bundle/chunks/{chunk-QKW5D45B.js → chunk-VNC2HBL4.js} +5 -5
  132. package/dist/cli-bundle/chunks/{chunk-QJMGRZO2.js → chunk-VYZNX4C5.js} +3 -3
  133. package/dist/cli-bundle/chunks/{chunk-5SCT2JCT.js → chunk-W6KNFAMZ.js} +2 -2
  134. package/dist/cli-bundle/chunks/{chunk-I53JBTJW.js → chunk-WLH7X4RN.js} +6 -6
  135. package/dist/cli-bundle/chunks/{chunk-ESANVZF4.js → chunk-XOYHMHFF.js} +3 -3
  136. package/dist/cli-bundle/chunks/{chunk-HGLC63AU.js → chunk-XWDZVCBJ.js} +8 -8
  137. package/dist/cli-bundle/chunks/{chunk-3KLPFWZ4.js → chunk-XXLMJDUB.js} +10 -26
  138. package/dist/cli-bundle/chunks/chunk-XXLMJDUB.js.map +7 -0
  139. package/dist/cli-bundle/chunks/chunk-Z647PYLD.js +187 -0
  140. package/dist/cli-bundle/chunks/chunk-Z647PYLD.js.map +1 -0
  141. package/dist/cli-bundle/chunks/{claim-MJ7DZFC3.js → claim-HE6KEGJW.js} +10 -10
  142. package/dist/cli-bundle/chunks/{claim-2RDYMCTP.js → claim-QJOQBH7J.js} +10 -10
  143. package/dist/cli-bundle/chunks/{close-XLEKIQSW.js → close-SPUFW5QR.js} +8 -8
  144. package/dist/cli-bundle/chunks/close-WOG5WTMZ.js +13 -0
  145. package/dist/cli-bundle/chunks/{close-many-AOD4HSAZ.js → close-many-GKAJX54X.js} +15 -15
  146. package/dist/cli-bundle/chunks/{close-many-XKAQY5CQ.js → close-many-GL6NRUU5.js} +15 -15
  147. package/dist/cli-bundle/chunks/{comments-RN5TG4ZN.js → comments-5FPT6L7N.js} +10 -10
  148. package/dist/cli-bundle/chunks/{comments-B4RWWDJT.js → comments-TOLOYWNI.js} +10 -10
  149. package/dist/cli-bundle/chunks/{config-3JXJ3XZ7.js → config-4MN45TIH.js} +8 -8
  150. package/dist/cli-bundle/chunks/{config-FZ4UDC4B.js → config-7N6D7YJE.js} +8 -8
  151. package/dist/cli-bundle/chunks/{context-QBPO3BFM.js → context-AQSLE7DZ.js} +13 -13
  152. package/dist/cli-bundle/chunks/{context-L36PIN35.js → context-U3PUJMVN.js} +13 -13
  153. package/dist/cli-bundle/chunks/{contracts-MIXBWJIB.js → contracts-H7KCQXLY.js} +4 -4
  154. package/dist/cli-bundle/chunks/{contracts-3NKWYKKU.js → contracts-ITSJXO3O.js} +4 -4
  155. package/dist/cli-bundle/chunks/{copy-ALU5WMHA.js → copy-C4W522JM.js} +7 -7
  156. package/dist/cli-bundle/chunks/{copy-FWIVTLBO.js → copy-EB3MUCSW.js} +7 -7
  157. package/dist/cli-bundle/chunks/{create-IFA26O2I.js → create-4EQNELMY.js} +13 -13
  158. package/dist/cli-bundle/chunks/create-NW3K7LVG.js +27 -0
  159. package/dist/cli-bundle/chunks/{delete-IYTIYAJS.js → delete-X5QLXIQX.js} +7 -7
  160. package/dist/cli-bundle/chunks/{delete-Y2SGJBGY.js → delete-ZLGUYIXU.js} +7 -7
  161. package/dist/cli-bundle/chunks/{deps-CZ4PTVXU.js → deps-GPB3LGWN.js} +7 -7
  162. package/dist/cli-bundle/chunks/{deps-6TSPOSGU.js → deps-HV2C2L46.js} +7 -7
  163. package/dist/cli-bundle/chunks/{docs-5WMBVQT2.js → docs-RJQPLROO.js} +11 -11
  164. package/dist/cli-bundle/chunks/docs-RJQPLROO.js.map +1 -0
  165. package/dist/cli-bundle/chunks/{docs-MB53UJAJ.js → docs-SRTLCQOL.js} +10 -10
  166. package/dist/cli-bundle/chunks/docs-SRTLCQOL.js.map +7 -0
  167. package/dist/cli-bundle/chunks/{extension-Q34OEWO5.js → extension-MM3TVWOO.js} +5 -5
  168. package/dist/cli-bundle/chunks/{extension-WH2FOIOZ.js → extension-WKPVPNCC.js} +5 -5
  169. package/dist/cli-bundle/chunks/{files-GVMNVLCB.js → files-LIFDKNCN.js} +10 -10
  170. package/dist/cli-bundle/chunks/files-LIFDKNCN.js.map +7 -0
  171. package/dist/cli-bundle/chunks/{files-DLB5LJEP.js → files-OIFN3DQX.js} +11 -11
  172. package/dist/cli-bundle/chunks/files-OIFN3DQX.js.map +1 -0
  173. package/dist/cli-bundle/chunks/{gc-4Z3IKHAZ.js → gc-DL6AVOX5.js} +12 -181
  174. package/dist/cli-bundle/chunks/gc-DL6AVOX5.js.map +7 -0
  175. package/dist/cli-bundle/chunks/{gc-2WEPW6D6.js → gc-NRFHLVFT.js} +14 -176
  176. package/dist/cli-bundle/chunks/gc-NRFHLVFT.js.map +1 -0
  177. package/dist/cli-bundle/chunks/{get-QARTE6BL.js → get-K7UULTQF.js} +11 -11
  178. package/dist/cli-bundle/chunks/{get-PCHS7RA6.js → get-SAB7CRBG.js} +11 -11
  179. package/dist/cli-bundle/chunks/{health-4ZYB3IYQ.js → health-NUVZYIEV.js} +83 -16
  180. package/dist/cli-bundle/chunks/health-NUVZYIEV.js.map +1 -0
  181. package/dist/cli-bundle/chunks/{health-YO5LRWN4.js → health-VJWH3ZFK.js} +82 -15
  182. package/dist/cli-bundle/chunks/health-VJWH3ZFK.js.map +7 -0
  183. package/dist/cli-bundle/chunks/{history-7WUAEWHW.js → history-GYFD2DJW.js} +10 -10
  184. package/dist/cli-bundle/chunks/history-IUVN4NTN.js +20 -0
  185. package/dist/cli-bundle/chunks/{history-compact-3EJ3L2O7.js → history-compact-SLL6ESXH.js} +11 -11
  186. package/dist/cli-bundle/chunks/{history-compact-LW27IPFK.js → history-compact-WQZQ6KXM.js} +11 -11
  187. package/dist/cli-bundle/chunks/history-redact-75KIIJUJ.js +19 -0
  188. package/dist/cli-bundle/chunks/{history-redact-G72A4EJ4.js → history-redact-SDTDR6WM.js} +11 -11
  189. package/dist/cli-bundle/chunks/{history-repair-RUGKD3YR.js → history-repair-BJCGM6Q3.js} +72 -14
  190. package/dist/cli-bundle/chunks/history-repair-BJCGM6Q3.js.map +1 -0
  191. package/dist/cli-bundle/chunks/{history-repair-KVPFJKOS.js → history-repair-UCYS55ZX.js} +71 -13
  192. package/dist/cli-bundle/chunks/history-repair-UCYS55ZX.js.map +7 -0
  193. package/dist/cli-bundle/chunks/init-JJFYRUKG.js +17 -0
  194. package/dist/cli-bundle/chunks/{init-S5WEGUJY.js → init-MXV57LKL.js} +9 -9
  195. package/dist/cli-bundle/chunks/{learnings-HQXSSKZ5.js → learnings-L6KTZGOT.js} +10 -10
  196. package/dist/cli-bundle/chunks/{learnings-XK3P4ZDR.js → learnings-QKJOKEAO.js} +10 -10
  197. package/dist/cli-bundle/chunks/{list-6CL3XFT6.js → list-GGVPXEV6.js} +10 -10
  198. package/dist/cli-bundle/chunks/list-VOQDQHA4.js +19 -0
  199. package/dist/cli-bundle/chunks/{notes-5T6P7C5V.js → notes-3NLK7WTZ.js} +10 -10
  200. package/dist/cli-bundle/chunks/{notes-U5FZCSBT.js → notes-HMCB7TK6.js} +10 -10
  201. package/dist/cli-bundle/chunks/{plan-VNUG3WZZ.js → plan-DWBYI5C6.js} +63 -23
  202. package/dist/cli-bundle/chunks/plan-DWBYI5C6.js.map +1 -0
  203. package/dist/cli-bundle/chunks/{plan-FQLMJRLZ.js → plan-NANUWH4T.js} +62 -22
  204. package/dist/cli-bundle/chunks/plan-NANUWH4T.js.map +7 -0
  205. package/dist/cli-bundle/chunks/{register-list-query-VHDXWEPP.js → register-list-query-PWQ5F2VI.js} +18 -18
  206. package/dist/cli-bundle/chunks/{register-list-query-NPE3ECJQ.js → register-list-query-SMMMLSWW.js} +18 -18
  207. package/dist/cli-bundle/chunks/{register-mutation-EAYNLGOS.js → register-mutation-QKFPTIZG.js} +64 -47
  208. package/dist/cli-bundle/chunks/{register-mutation-EAYNLGOS.js.map → register-mutation-QKFPTIZG.js.map} +2 -2
  209. package/dist/cli-bundle/chunks/{register-mutation-DG53FCBV.js → register-mutation-ZYJQ4DVP.js} +65 -48
  210. package/dist/cli-bundle/chunks/{register-mutation-DG53FCBV.js.map → register-mutation-ZYJQ4DVP.js.map} +1 -1
  211. package/dist/cli-bundle/chunks/{register-operations-FWFE64JG.js → register-operations-2FMZ6WEF.js} +37 -33
  212. package/dist/cli-bundle/chunks/{register-operations-FWFE64JG.js.map → register-operations-2FMZ6WEF.js.map} +2 -2
  213. package/dist/cli-bundle/chunks/{register-operations-AM6KTWB6.js → register-operations-BAFQURZG.js} +38 -34
  214. package/dist/cli-bundle/chunks/register-operations-BAFQURZG.js.map +1 -0
  215. package/dist/cli-bundle/chunks/{register-setup-G4QYI3RX.js → register-setup-DQEIKBIP.js} +30 -30
  216. package/dist/cli-bundle/chunks/register-setup-DQEIKBIP.js.map +7 -0
  217. package/dist/cli-bundle/chunks/{register-setup-IKX5524L.js → register-setup-QN2XV7UL.js} +31 -31
  218. package/dist/cli-bundle/chunks/register-setup-QN2XV7UL.js.map +1 -0
  219. package/dist/cli-bundle/chunks/restore-DRBNXJJH.js +17 -0
  220. package/dist/cli-bundle/chunks/{restore-M6AFHMV4.js → restore-FJQWXMPY.js} +11 -11
  221. package/dist/cli-bundle/chunks/{schema-AINZ2IMM.js → schema-RNVJ55V2.js} +8 -8
  222. package/dist/cli-bundle/chunks/{schema-76HDZJCC.js → schema-ZZ7ZDM2X.js} +8 -8
  223. package/dist/cli-bundle/chunks/{search-JMLFQEPJ.js → search-BJ457C2A.js} +10 -10
  224. package/dist/cli-bundle/chunks/{search-NL3TSCYB.js → search-FQDZXX7P.js} +10 -10
  225. package/dist/cli-bundle/chunks/{stats-UBD56TGK.js → stats-CUG3ZHOI.js} +7 -7
  226. package/dist/cli-bundle/chunks/{stats-BKXCBIGT.js → stats-DUQWCVOS.js} +7 -7
  227. package/dist/cli-bundle/chunks/{telemetry-ZJXK3H7X.js → telemetry-33MRGX4Z.js} +4 -4
  228. package/dist/cli-bundle/chunks/{telemetry-N454RHG5.js → telemetry-RK2VX75A.js} +4 -4
  229. package/dist/cli-bundle/chunks/test-SDMYEQHH.js +32 -0
  230. package/dist/cli-bundle/chunks/{test-BQAKIXAT.js → test-Y3CTFMEC.js} +14 -14
  231. package/dist/cli-bundle/chunks/{test-all-7LV3I6S5.js → test-all-ANYQ33O2.js} +14 -14
  232. package/dist/cli-bundle/chunks/{test-all-TDYCCBA4.js → test-all-ARSMX33Q.js} +14 -14
  233. package/dist/cli-bundle/chunks/{test-runs-E64M6XS3.js → test-runs-5URSD34O.js} +5 -5
  234. package/dist/cli-bundle/chunks/{test-runs-LXZLULCI.js → test-runs-XNACGSNQ.js} +5 -5
  235. package/dist/cli-bundle/chunks/update-PD46VOXI.js +21 -0
  236. package/dist/cli-bundle/chunks/update-U235A7WP.js +25 -0
  237. package/dist/cli-bundle/chunks/{update-many-V4LA3C4H.js → update-many-6B7PJ33I.js} +22 -22
  238. package/dist/cli-bundle/chunks/{update-many-TUGU5YXQ.js → update-many-724JCVDE.js} +22 -22
  239. package/dist/cli-bundle/chunks/{upgrade-37F7JKES.js → upgrade-ALBEZAI7.js} +5 -5
  240. package/dist/cli-bundle/chunks/{upgrade-L32JA4TZ.js → upgrade-QHRGDBSA.js} +5 -5
  241. package/dist/cli-bundle/chunks/{validate-EQTT6WVX.js → validate-IQRYFXIV.js} +462 -50
  242. package/dist/cli-bundle/chunks/validate-IQRYFXIV.js.map +1 -0
  243. package/dist/cli-bundle/chunks/{validate-XN4I4DPL.js → validate-UY6DRCG5.js} +482 -49
  244. package/dist/cli-bundle/chunks/validate-UY6DRCG5.js.map +7 -0
  245. package/dist/cli-bundle/main.js +72 -24
  246. package/dist/cli-bundle/main.js.map +3 -3
  247. package/dist/core/diagnostics/remediation.js +19 -6
  248. package/dist/core/diagnostics/remediation.js.map +1 -1
  249. package/dist/core/extensions/extension-capability-aliases.js +7 -33
  250. package/dist/core/extensions/extension-capability-aliases.js.map +1 -1
  251. package/dist/core/lock/lock-gc.d.ts +31 -0
  252. package/dist/core/lock/lock-gc.js +120 -62
  253. package/dist/core/lock/lock-gc.js.map +1 -1
  254. package/dist/core/search/background-refresh.js +3 -3
  255. package/dist/core/search/background-refresh.js.map +1 -1
  256. package/dist/core/shared/errors.d.ts +3 -0
  257. package/dist/core/shared/errors.js +2 -2
  258. package/dist/core/shared/errors.js.map +1 -1
  259. package/dist/core/store/item-store.js +6 -22
  260. package/dist/core/store/item-store.js.map +1 -1
  261. package/dist/core/telemetry/consent.js +18 -3
  262. package/dist/core/telemetry/consent.js.map +1 -1
  263. package/dist/core/validate/fix-planning.d.ts +130 -0
  264. package/dist/core/validate/fix-planning.js +202 -0
  265. package/dist/core/validate/fix-planning.js.map +1 -0
  266. package/dist/core/validate/missing-by-type.d.ts +21 -0
  267. package/dist/core/validate/missing-by-type.js +39 -0
  268. package/dist/core/validate/missing-by-type.js.map +1 -0
  269. package/dist/core/validate/stale-file-classification.d.ts +41 -0
  270. package/dist/core/validate/stale-file-classification.js +73 -0
  271. package/dist/core/validate/stale-file-classification.js.map +1 -0
  272. package/dist/mcp/server.d.ts +1 -0
  273. package/dist/mcp/server.js +62 -9
  274. package/dist/mcp/server.js.map +1 -1
  275. package/dist/sdk/cli-contracts/tool-parameter-tables.js +38 -2
  276. package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
  277. package/dist/sdk/cli-contracts.d.ts +6 -1
  278. package/dist/sdk/cli-contracts.js +74 -7
  279. package/dist/sdk/cli-contracts.js.map +1 -1
  280. package/docs/AGENT_GUIDE.md +6 -1
  281. package/docs/COMMANDS.md +23 -1
  282. package/package.json +1 -1
  283. package/plugins/pm-claude/README.md +4 -12
  284. package/dist/cli-bundle/chunks/activity-XZIUPGZH.js +0 -16
  285. package/dist/cli-bundle/chunks/chunk-3KLPFWZ4.js.map +0 -7
  286. package/dist/cli-bundle/chunks/chunk-A6LXQFO7.js.map +0 -1
  287. package/dist/cli-bundle/chunks/chunk-E5DUIJA4.js.map +0 -7
  288. package/dist/cli-bundle/chunks/chunk-FXRU333M.js.map +0 -1
  289. package/dist/cli-bundle/chunks/chunk-FY4SPXSC.js.map +0 -7
  290. package/dist/cli-bundle/chunks/chunk-HI7STVF2.js.map +0 -1
  291. package/dist/cli-bundle/chunks/chunk-LCSCXBGT.js.map +0 -7
  292. package/dist/cli-bundle/chunks/chunk-P2PSODAQ.js.map +0 -7
  293. package/dist/cli-bundle/chunks/chunk-PSD7F7DX.js.map +0 -1
  294. package/dist/cli-bundle/chunks/chunk-UOO6BYIA.js.map +0 -1
  295. package/dist/cli-bundle/chunks/close-4FMAPEMY.js +0 -13
  296. package/dist/cli-bundle/chunks/create-JVXYHYH4.js +0 -27
  297. package/dist/cli-bundle/chunks/docs-5WMBVQT2.js.map +0 -1
  298. package/dist/cli-bundle/chunks/docs-MB53UJAJ.js.map +0 -7
  299. package/dist/cli-bundle/chunks/files-DLB5LJEP.js.map +0 -1
  300. package/dist/cli-bundle/chunks/files-GVMNVLCB.js.map +0 -7
  301. package/dist/cli-bundle/chunks/gc-2WEPW6D6.js.map +0 -1
  302. package/dist/cli-bundle/chunks/gc-4Z3IKHAZ.js.map +0 -7
  303. package/dist/cli-bundle/chunks/health-4ZYB3IYQ.js.map +0 -1
  304. package/dist/cli-bundle/chunks/health-YO5LRWN4.js.map +0 -7
  305. package/dist/cli-bundle/chunks/history-L2FQFRTU.js +0 -20
  306. package/dist/cli-bundle/chunks/history-redact-QWQCX5DZ.js +0 -19
  307. package/dist/cli-bundle/chunks/history-repair-KVPFJKOS.js.map +0 -7
  308. package/dist/cli-bundle/chunks/history-repair-RUGKD3YR.js.map +0 -1
  309. package/dist/cli-bundle/chunks/init-4BKRHGWW.js +0 -17
  310. package/dist/cli-bundle/chunks/list-BYNN4ZEO.js +0 -19
  311. package/dist/cli-bundle/chunks/plan-FQLMJRLZ.js.map +0 -7
  312. package/dist/cli-bundle/chunks/plan-VNUG3WZZ.js.map +0 -1
  313. package/dist/cli-bundle/chunks/register-operations-AM6KTWB6.js.map +0 -1
  314. package/dist/cli-bundle/chunks/register-setup-G4QYI3RX.js.map +0 -7
  315. package/dist/cli-bundle/chunks/register-setup-IKX5524L.js.map +0 -1
  316. package/dist/cli-bundle/chunks/restore-CHIOQAQL.js +0 -17
  317. package/dist/cli-bundle/chunks/test-O74JFUH5.js +0 -32
  318. package/dist/cli-bundle/chunks/update-2EVXOC7V.js +0 -21
  319. package/dist/cli-bundle/chunks/update-5A2B6QYB.js +0 -25
  320. package/dist/cli-bundle/chunks/validate-EQTT6WVX.js.map +0 -1
  321. package/dist/cli-bundle/chunks/validate-XN4I4DPL.js.map +0 -7
  322. /package/dist/cli-bundle/chunks/{activity-XADJOG6G.js.map → activity-PPO7QWJF.js.map} +0 -0
  323. /package/dist/cli-bundle/chunks/{activity-XZIUPGZH.js.map → activity-XIOTGZMU.js.map} +0 -0
  324. /package/dist/cli-bundle/chunks/{aggregate-6OTS3AOO.js.map → aggregate-IRHJWEKG.js.map} +0 -0
  325. /package/dist/cli-bundle/chunks/{aggregate-OD36DJU5.js.map → aggregate-XEBW22UQ.js.map} +0 -0
  326. /package/dist/cli-bundle/chunks/{append-JYWO4P7W.js.map → append-N2AWXKZC.js.map} +0 -0
  327. /package/dist/cli-bundle/chunks/{append-KG55G7S3.js.map → append-NL67JNJU.js.map} +0 -0
  328. /package/dist/cli-bundle/chunks/{chunk-IH4MBKK7.js.map → chunk-2ANTZBYF.js.map} +0 -0
  329. /package/dist/cli-bundle/chunks/{chunk-F75JSIOZ.js.map → chunk-2J2AH4V5.js.map} +0 -0
  330. /package/dist/cli-bundle/chunks/{chunk-CCX4RSYZ.js.map → chunk-32XSW44C.js.map} +0 -0
  331. /package/dist/cli-bundle/chunks/{chunk-DY6C42S6.js.map → chunk-36BCSMKP.js.map} +0 -0
  332. /package/dist/cli-bundle/chunks/{chunk-XUC4C4PT.js.map → chunk-3CQPVBK3.js.map} +0 -0
  333. /package/dist/cli-bundle/chunks/{chunk-SXKNJPQ7.js.map → chunk-3FMQMHAG.js.map} +0 -0
  334. /package/dist/cli-bundle/chunks/{chunk-I7NYDZDV.js.map → chunk-3VULHQNS.js.map} +0 -0
  335. /package/dist/cli-bundle/chunks/{chunk-HHHJ2GI3.js.map → chunk-4FHLNNW7.js.map} +0 -0
  336. /package/dist/cli-bundle/chunks/{chunk-RXAP6JL5.js.map → chunk-4JHJ7YG2.js.map} +0 -0
  337. /package/dist/cli-bundle/chunks/{chunk-P5BJOMBB.js.map → chunk-4TPFXE2R.js.map} +0 -0
  338. /package/dist/cli-bundle/chunks/{chunk-3SLOMKCJ.js.map → chunk-5HSAHRYA.js.map} +0 -0
  339. /package/dist/cli-bundle/chunks/{chunk-ZLMIWZUG.js.map → chunk-5LMF75Q7.js.map} +0 -0
  340. /package/dist/cli-bundle/chunks/{chunk-TK5VZFHY.js.map → chunk-6TBR5AZ2.js.map} +0 -0
  341. /package/dist/cli-bundle/chunks/{chunk-ATEES5SX.js.map → chunk-6ZFTM65G.js.map} +0 -0
  342. /package/dist/cli-bundle/chunks/{chunk-VFUZV5EB.js.map → chunk-7SM7VA5I.js.map} +0 -0
  343. /package/dist/cli-bundle/chunks/{chunk-GKIZW7SM.js.map → chunk-AAUYXSFF.js.map} +0 -0
  344. /package/dist/cli-bundle/chunks/{chunk-OASDW5UI.js.map → chunk-AUDDXKNX.js.map} +0 -0
  345. /package/dist/cli-bundle/chunks/{chunk-ZMW77VWV.js.map → chunk-BVL5KGVA.js.map} +0 -0
  346. /package/dist/cli-bundle/chunks/{chunk-4JCSYR6F.js.map → chunk-C24PWDFG.js.map} +0 -0
  347. /package/dist/cli-bundle/chunks/{chunk-4HFU4UO2.js.map → chunk-CEGUH2E5.js.map} +0 -0
  348. /package/dist/cli-bundle/chunks/{chunk-Y3YKK7CY.js.map → chunk-DWG4FHPY.js.map} +0 -0
  349. /package/dist/cli-bundle/chunks/{chunk-YW6Q3RYZ.js.map → chunk-GFBEXDCQ.js.map} +0 -0
  350. /package/dist/cli-bundle/chunks/{chunk-XMBI6TNW.js.map → chunk-GOO4UXBI.js.map} +0 -0
  351. /package/dist/cli-bundle/chunks/{chunk-IGVJRZ6H.js.map → chunk-GRZGHGRG.js.map} +0 -0
  352. /package/dist/cli-bundle/chunks/{chunk-TNAP7EJX.js.map → chunk-HZOX5BYD.js.map} +0 -0
  353. /package/dist/cli-bundle/chunks/{chunk-VSRZRLG3.js.map → chunk-IIOIBAQW.js.map} +0 -0
  354. /package/dist/cli-bundle/chunks/{chunk-IUKD4W6Z.js.map → chunk-IXVSSHGV.js.map} +0 -0
  355. /package/dist/cli-bundle/chunks/{chunk-WUNFKP7M.js.map → chunk-IZHCCG4S.js.map} +0 -0
  356. /package/dist/cli-bundle/chunks/{chunk-VAOUX6TK.js.map → chunk-JCTZV7TO.js.map} +0 -0
  357. /package/dist/cli-bundle/chunks/{chunk-ZYNJNPYD.js.map → chunk-JE5IZXDS.js.map} +0 -0
  358. /package/dist/cli-bundle/chunks/{chunk-QNJSITCX.js.map → chunk-JW7D6437.js.map} +0 -0
  359. /package/dist/cli-bundle/chunks/{chunk-B65UUCGQ.js.map → chunk-JWXTOYBI.js.map} +0 -0
  360. /package/dist/cli-bundle/chunks/{chunk-7RIT3OCD.js.map → chunk-KHGTYCJ6.js.map} +0 -0
  361. /package/dist/cli-bundle/chunks/{chunk-VPEAS7PS.js.map → chunk-LGOXXQUW.js.map} +0 -0
  362. /package/dist/cli-bundle/chunks/{chunk-I2IJY2NL.js.map → chunk-LOAR5TKX.js.map} +0 -0
  363. /package/dist/cli-bundle/chunks/{chunk-S26FESD4.js.map → chunk-LSSTKL3Y.js.map} +0 -0
  364. /package/dist/cli-bundle/chunks/{chunk-CW6E4NAT.js.map → chunk-LYNQ3NGI.js.map} +0 -0
  365. /package/dist/cli-bundle/chunks/{chunk-4YFAGDRH.js.map → chunk-M3SI2REU.js.map} +0 -0
  366. /package/dist/cli-bundle/chunks/{chunk-73ZPG2I3.js.map → chunk-MACCNKSZ.js.map} +0 -0
  367. /package/dist/cli-bundle/chunks/{chunk-P5U5EOMA.js.map → chunk-NN6RKGFW.js.map} +0 -0
  368. /package/dist/cli-bundle/chunks/{chunk-GWZSYR6X.js.map → chunk-O3YCJOVX.js.map} +0 -0
  369. /package/dist/cli-bundle/chunks/{chunk-UUWGCWBU.js.map → chunk-QQG4HEX7.js.map} +0 -0
  370. /package/dist/cli-bundle/chunks/{chunk-XTKJSVWH.js.map → chunk-QU3OPNVV.js.map} +0 -0
  371. /package/dist/cli-bundle/chunks/{chunk-EWFY7SLA.js.map → chunk-RHYBR6G7.js.map} +0 -0
  372. /package/dist/cli-bundle/chunks/{chunk-S2ZLDYGS.js.map → chunk-SOHXUA2Q.js.map} +0 -0
  373. /package/dist/cli-bundle/chunks/{chunk-KWAXVAXX.js.map → chunk-SQDKAEKG.js.map} +0 -0
  374. /package/dist/cli-bundle/chunks/{chunk-7IYFN5R7.js.map → chunk-TOX7YQ7X.js.map} +0 -0
  375. /package/dist/cli-bundle/chunks/{chunk-FDH2X65L.js.map → chunk-TSXWFN3L.js.map} +0 -0
  376. /package/dist/cli-bundle/chunks/{chunk-OLKBSY4N.js.map → chunk-UCVJP4JL.js.map} +0 -0
  377. /package/dist/cli-bundle/chunks/{chunk-AVGHVVF7.js.map → chunk-V4KP3TCN.js.map} +0 -0
  378. /package/dist/cli-bundle/chunks/{chunk-QKW5D45B.js.map → chunk-VNC2HBL4.js.map} +0 -0
  379. /package/dist/cli-bundle/chunks/{chunk-QJMGRZO2.js.map → chunk-VYZNX4C5.js.map} +0 -0
  380. /package/dist/cli-bundle/chunks/{chunk-5SCT2JCT.js.map → chunk-W6KNFAMZ.js.map} +0 -0
  381. /package/dist/cli-bundle/chunks/{chunk-I53JBTJW.js.map → chunk-WLH7X4RN.js.map} +0 -0
  382. /package/dist/cli-bundle/chunks/{chunk-ESANVZF4.js.map → chunk-XOYHMHFF.js.map} +0 -0
  383. /package/dist/cli-bundle/chunks/{chunk-HGLC63AU.js.map → chunk-XWDZVCBJ.js.map} +0 -0
  384. /package/dist/cli-bundle/chunks/{claim-MJ7DZFC3.js.map → claim-HE6KEGJW.js.map} +0 -0
  385. /package/dist/cli-bundle/chunks/{claim-2RDYMCTP.js.map → claim-QJOQBH7J.js.map} +0 -0
  386. /package/dist/cli-bundle/chunks/{close-XLEKIQSW.js.map → close-SPUFW5QR.js.map} +0 -0
  387. /package/dist/cli-bundle/chunks/{close-4FMAPEMY.js.map → close-WOG5WTMZ.js.map} +0 -0
  388. /package/dist/cli-bundle/chunks/{close-many-AOD4HSAZ.js.map → close-many-GKAJX54X.js.map} +0 -0
  389. /package/dist/cli-bundle/chunks/{close-many-XKAQY5CQ.js.map → close-many-GL6NRUU5.js.map} +0 -0
  390. /package/dist/cli-bundle/chunks/{comments-RN5TG4ZN.js.map → comments-5FPT6L7N.js.map} +0 -0
  391. /package/dist/cli-bundle/chunks/{comments-B4RWWDJT.js.map → comments-TOLOYWNI.js.map} +0 -0
  392. /package/dist/cli-bundle/chunks/{config-3JXJ3XZ7.js.map → config-4MN45TIH.js.map} +0 -0
  393. /package/dist/cli-bundle/chunks/{config-FZ4UDC4B.js.map → config-7N6D7YJE.js.map} +0 -0
  394. /package/dist/cli-bundle/chunks/{context-QBPO3BFM.js.map → context-AQSLE7DZ.js.map} +0 -0
  395. /package/dist/cli-bundle/chunks/{context-L36PIN35.js.map → context-U3PUJMVN.js.map} +0 -0
  396. /package/dist/cli-bundle/chunks/{contracts-MIXBWJIB.js.map → contracts-H7KCQXLY.js.map} +0 -0
  397. /package/dist/cli-bundle/chunks/{contracts-3NKWYKKU.js.map → contracts-ITSJXO3O.js.map} +0 -0
  398. /package/dist/cli-bundle/chunks/{copy-ALU5WMHA.js.map → copy-C4W522JM.js.map} +0 -0
  399. /package/dist/cli-bundle/chunks/{copy-FWIVTLBO.js.map → copy-EB3MUCSW.js.map} +0 -0
  400. /package/dist/cli-bundle/chunks/{create-IFA26O2I.js.map → create-4EQNELMY.js.map} +0 -0
  401. /package/dist/cli-bundle/chunks/{create-JVXYHYH4.js.map → create-NW3K7LVG.js.map} +0 -0
  402. /package/dist/cli-bundle/chunks/{delete-IYTIYAJS.js.map → delete-X5QLXIQX.js.map} +0 -0
  403. /package/dist/cli-bundle/chunks/{delete-Y2SGJBGY.js.map → delete-ZLGUYIXU.js.map} +0 -0
  404. /package/dist/cli-bundle/chunks/{deps-CZ4PTVXU.js.map → deps-GPB3LGWN.js.map} +0 -0
  405. /package/dist/cli-bundle/chunks/{deps-6TSPOSGU.js.map → deps-HV2C2L46.js.map} +0 -0
  406. /package/dist/cli-bundle/chunks/{extension-Q34OEWO5.js.map → extension-MM3TVWOO.js.map} +0 -0
  407. /package/dist/cli-bundle/chunks/{extension-WH2FOIOZ.js.map → extension-WKPVPNCC.js.map} +0 -0
  408. /package/dist/cli-bundle/chunks/{get-QARTE6BL.js.map → get-K7UULTQF.js.map} +0 -0
  409. /package/dist/cli-bundle/chunks/{get-PCHS7RA6.js.map → get-SAB7CRBG.js.map} +0 -0
  410. /package/dist/cli-bundle/chunks/{history-7WUAEWHW.js.map → history-GYFD2DJW.js.map} +0 -0
  411. /package/dist/cli-bundle/chunks/{history-L2FQFRTU.js.map → history-IUVN4NTN.js.map} +0 -0
  412. /package/dist/cli-bundle/chunks/{history-compact-3EJ3L2O7.js.map → history-compact-SLL6ESXH.js.map} +0 -0
  413. /package/dist/cli-bundle/chunks/{history-compact-LW27IPFK.js.map → history-compact-WQZQ6KXM.js.map} +0 -0
  414. /package/dist/cli-bundle/chunks/{history-redact-QWQCX5DZ.js.map → history-redact-75KIIJUJ.js.map} +0 -0
  415. /package/dist/cli-bundle/chunks/{history-redact-G72A4EJ4.js.map → history-redact-SDTDR6WM.js.map} +0 -0
  416. /package/dist/cli-bundle/chunks/{init-4BKRHGWW.js.map → init-JJFYRUKG.js.map} +0 -0
  417. /package/dist/cli-bundle/chunks/{init-S5WEGUJY.js.map → init-MXV57LKL.js.map} +0 -0
  418. /package/dist/cli-bundle/chunks/{learnings-HQXSSKZ5.js.map → learnings-L6KTZGOT.js.map} +0 -0
  419. /package/dist/cli-bundle/chunks/{learnings-XK3P4ZDR.js.map → learnings-QKJOKEAO.js.map} +0 -0
  420. /package/dist/cli-bundle/chunks/{list-6CL3XFT6.js.map → list-GGVPXEV6.js.map} +0 -0
  421. /package/dist/cli-bundle/chunks/{list-BYNN4ZEO.js.map → list-VOQDQHA4.js.map} +0 -0
  422. /package/dist/cli-bundle/chunks/{notes-5T6P7C5V.js.map → notes-3NLK7WTZ.js.map} +0 -0
  423. /package/dist/cli-bundle/chunks/{notes-U5FZCSBT.js.map → notes-HMCB7TK6.js.map} +0 -0
  424. /package/dist/cli-bundle/chunks/{register-list-query-VHDXWEPP.js.map → register-list-query-PWQ5F2VI.js.map} +0 -0
  425. /package/dist/cli-bundle/chunks/{register-list-query-NPE3ECJQ.js.map → register-list-query-SMMMLSWW.js.map} +0 -0
  426. /package/dist/cli-bundle/chunks/{restore-CHIOQAQL.js.map → restore-DRBNXJJH.js.map} +0 -0
  427. /package/dist/cli-bundle/chunks/{restore-M6AFHMV4.js.map → restore-FJQWXMPY.js.map} +0 -0
  428. /package/dist/cli-bundle/chunks/{schema-AINZ2IMM.js.map → schema-RNVJ55V2.js.map} +0 -0
  429. /package/dist/cli-bundle/chunks/{schema-76HDZJCC.js.map → schema-ZZ7ZDM2X.js.map} +0 -0
  430. /package/dist/cli-bundle/chunks/{search-JMLFQEPJ.js.map → search-BJ457C2A.js.map} +0 -0
  431. /package/dist/cli-bundle/chunks/{search-NL3TSCYB.js.map → search-FQDZXX7P.js.map} +0 -0
  432. /package/dist/cli-bundle/chunks/{stats-UBD56TGK.js.map → stats-CUG3ZHOI.js.map} +0 -0
  433. /package/dist/cli-bundle/chunks/{stats-BKXCBIGT.js.map → stats-DUQWCVOS.js.map} +0 -0
  434. /package/dist/cli-bundle/chunks/{telemetry-ZJXK3H7X.js.map → telemetry-33MRGX4Z.js.map} +0 -0
  435. /package/dist/cli-bundle/chunks/{telemetry-N454RHG5.js.map → telemetry-RK2VX75A.js.map} +0 -0
  436. /package/dist/cli-bundle/chunks/{test-O74JFUH5.js.map → test-SDMYEQHH.js.map} +0 -0
  437. /package/dist/cli-bundle/chunks/{test-BQAKIXAT.js.map → test-Y3CTFMEC.js.map} +0 -0
  438. /package/dist/cli-bundle/chunks/{test-all-7LV3I6S5.js.map → test-all-ANYQ33O2.js.map} +0 -0
  439. /package/dist/cli-bundle/chunks/{test-all-TDYCCBA4.js.map → test-all-ARSMX33Q.js.map} +0 -0
  440. /package/dist/cli-bundle/chunks/{test-runs-E64M6XS3.js.map → test-runs-5URSD34O.js.map} +0 -0
  441. /package/dist/cli-bundle/chunks/{test-runs-LXZLULCI.js.map → test-runs-XNACGSNQ.js.map} +0 -0
  442. /package/dist/cli-bundle/chunks/{update-2EVXOC7V.js.map → update-PD46VOXI.js.map} +0 -0
  443. /package/dist/cli-bundle/chunks/{update-5A2B6QYB.js.map → update-U235A7WP.js.map} +0 -0
  444. /package/dist/cli-bundle/chunks/{update-many-V4LA3C4H.js.map → update-many-6B7PJ33I.js.map} +0 -0
  445. /package/dist/cli-bundle/chunks/{update-many-TUGU5YXQ.js.map → update-many-724JCVDE.js.map} +0 -0
  446. /package/dist/cli-bundle/chunks/{upgrade-37F7JKES.js.map → upgrade-ALBEZAI7.js.map} +0 -0
  447. /package/dist/cli-bundle/chunks/{upgrade-L32JA4TZ.js.map → upgrade-QHRGDBSA.js.map} +0 -0
@@ -1,32 +1,36 @@
1
+ import {
2
+ scanHistoryDrift
3
+ } from "./chunk-HWHONML5.js";
1
4
  import {
2
5
  checkHistoryRewriteOwnership,
3
6
  resolveHistorySubject,
4
7
  verifyHistoryRewriteNoDrift
5
- } from "./chunk-RXAP6JL5.js";
8
+ } from "./chunk-4JHJ7YG2.js";
6
9
  import "./chunk-O7IWB35H.js";
7
10
  import {
8
11
  readHistoryEntries
9
- } from "./chunk-IGVJRZ6H.js";
12
+ } from "./chunk-GRZGHGRG.js";
10
13
  import {
11
14
  historyEntriesToRaw,
12
15
  reanchorHistoryEntries,
13
16
  replayHash,
14
17
  toReplayDocument,
15
18
  verifyHistoryChain
16
- } from "./chunk-XMBI6TNW.js";
17
- import "./chunk-QJMGRZO2.js";
19
+ } from "./chunk-GOO4UXBI.js";
20
+ import "./chunk-VYZNX4C5.js";
18
21
  import {
19
22
  acquireLock,
23
+ listAllFrontMatterWithBody,
20
24
  readLocatedItem
21
- } from "./chunk-3KLPFWZ4.js";
22
- import "./chunk-VPEAS7PS.js";
23
- import "./chunk-73ZPG2I3.js";
25
+ } from "./chunk-XXLMJDUB.js";
26
+ import "./chunk-LGOXXQUW.js";
27
+ import "./chunk-MACCNKSZ.js";
24
28
  import {
25
29
  resolveItemTypeRegistry
26
- } from "./chunk-5SCT2JCT.js";
30
+ } from "./chunk-W6KNFAMZ.js";
27
31
  import {
28
32
  nowIso
29
- } from "./chunk-IUKD4W6Z.js";
33
+ } from "./chunk-IXVSSHGV.js";
30
34
  import {
31
35
  EXIT_CODE,
32
36
  PmCliError,
@@ -38,7 +42,7 @@ import {
38
42
  resolvePmRoot,
39
43
  runActiveOnWriteHooks,
40
44
  writeFileAtomic
41
- } from "./chunk-FY4SPXSC.js";
45
+ } from "./chunk-LFW5NQUP.js";
42
46
 
43
47
  // dist/cli/commands/history-repair.js
44
48
  import fs from "node:fs/promises";
@@ -46,7 +50,7 @@ import jsonPatch from "fast-json-patch";
46
50
  !(function() {
47
51
  try {
48
52
  var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
49
- n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "01f463d2-97ef-5ddb-8346-156e456e097b");
53
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "abda868a-80b8-578b-9478-e2138d640b98");
50
54
  } catch (e2) {
51
55
  }
52
56
  })();
@@ -190,7 +194,61 @@ async function runHistoryRepair(id, options, global2) {
190
194
  generated_at: nowIso()
191
195
  };
192
196
  }
197
+ function assertHistoryRepairTarget(id, all) {
198
+ if (all && id !== void 0) {
199
+ throw new PmCliError("history-repair: <id> and --all are mutually exclusive; pass an item id to repair one stream or --all to repair every drifted stream.", EXIT_CODE.USAGE);
200
+ }
201
+ if (!all && id === void 0) {
202
+ throw new PmCliError("history-repair: provide an item <id> or pass --all to repair every drifted stream.", EXIT_CODE.USAGE);
203
+ }
204
+ }
205
+ async function runHistoryRepairAll(options, global2) {
206
+ const pmRoot = resolvePmRoot(process.cwd(), global2.path);
207
+ if (!await pathExists(getSettingsPath(pmRoot))) {
208
+ throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);
209
+ }
210
+ const settings = await readSettings(pmRoot);
211
+ const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());
212
+ const itemReadWarnings = [];
213
+ const items = await listAllFrontMatterWithBody(pmRoot, settings.item_format, typeRegistry.type_to_folder, itemReadWarnings, settings.schema);
214
+ const drift = await scanHistoryDrift(pmRoot, items);
215
+ const streams = [];
216
+ const totals = { repaired: 0, skipped_clean: 0, failed: 0 };
217
+ for (const driftedId of drift.driftedItems) {
218
+ try {
219
+ const result = await runHistoryRepair(driftedId, options, global2);
220
+ const outcome = result.changed ? "repaired" : "skipped_clean";
221
+ totals[outcome] += 1;
222
+ streams.push({
223
+ id: driftedId,
224
+ outcome,
225
+ entries_rehashed: result.history.entries_rehashed,
226
+ entries_patch_repaired: result.history.entries_patch_repaired,
227
+ reconciled_with_item: result.history.reconciled_with_item
228
+ });
229
+ } catch (error) {
230
+ totals.failed += 1;
231
+ streams.push({
232
+ id: driftedId,
233
+ outcome: "failed",
234
+ error: error instanceof Error ? error.message : String(error)
235
+ });
236
+ }
237
+ }
238
+ return {
239
+ all: true,
240
+ dry_run: Boolean(options.dryRun),
241
+ scanned_streams: items.length,
242
+ drifted_streams: drift.driftedItems.length,
243
+ streams,
244
+ totals,
245
+ warnings: [...new Set(itemReadWarnings)].sort((left, right) => left.localeCompare(right)),
246
+ generated_at: nowIso()
247
+ };
248
+ }
193
249
  export {
194
- runHistoryRepair
250
+ assertHistoryRepairTarget,
251
+ runHistoryRepair,
252
+ runHistoryRepairAll
195
253
  };
196
- //# sourceMappingURL=history-repair-KVPFJKOS.js.map
254
+ //# sourceMappingURL=history-repair-UCYS55ZX.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../cli/commands/history-repair.ts"],
4
+ "sourcesContent": ["import fs from \"node:fs/promises\";\nimport jsonPatch from \"fast-json-patch\";\nimport { pathExists, readFileIfExists, writeFileAtomic } from \"../../core/fs/fs-utils.js\";\nimport {\n checkHistoryRewriteOwnership,\n verifyHistoryRewriteNoDrift,\n} from \"../../core/history/history-rewrite.js\";\nimport {\n historyEntriesToRaw,\n reanchorHistoryEntries,\n replayHash,\n toReplayDocument,\n verifyHistoryChain,\n type ReplayDocument,\n} from \"../../core/history/replay.js\";\nimport { scanHistoryDrift } from \"../../core/history/drift-scan.js\";\nimport { resolveItemTypeRegistry } from \"../../core/item/type-registry.js\";\nimport { acquireLock } from \"../../core/lock/lock.js\";\nimport { EXIT_CODE } from \"../../core/shared/constants.js\";\nimport type { GlobalOptions } from \"../../core/shared/command-types.js\";\nimport { PmCliError } from \"../../core/shared/errors.js\";\nimport { nowIso } from \"../../core/shared/time.js\";\nimport { getActiveExtensionRegistrations, runActiveOnWriteHooks } from \"../../core/extensions/index.js\";\nimport { listAllFrontMatterWithBody, readLocatedItem } from \"../../core/store/item-store.js\";\nimport { getSettingsPath, resolvePmRoot } from \"../../core/store/paths.js\";\nimport { readSettings } from \"../../core/store/settings.js\";\nimport type { HistoryEntry, HistoryPatchOp, ItemMetadata } from \"../../types/index.js\";\nimport { readHistoryEntries } from \"./history.js\";\nimport { resolveHistorySubject } from \"./history-redact.js\";\n\nexport interface HistoryRepairCommandOptions {\n dryRun?: boolean;\n author?: string;\n message?: string;\n force?: boolean;\n}\n\nexport interface HistoryRepairResult {\n id: string;\n dry_run: boolean;\n changed: boolean;\n history: {\n path: string;\n entries_scanned: number;\n chain_drift_before: boolean;\n entries_rehashed: number;\n entries_patch_repaired: number;\n converted_replace_to_add: number;\n skipped_ops: number;\n reconciled_with_item: boolean;\n audit_entry_added: boolean;\n verify_ok: boolean;\n verify_errors: string[];\n };\n item: {\n exists: boolean;\n path: string | null;\n matched_chain_before: boolean | null;\n };\n warnings: string[];\n generated_at: string;\n}\n\nfunction toAuthor(candidate: string | undefined, defaultAuthor: string): string {\n const resolved = candidate ?? process.env.PM_AUTHOR ?? defaultAuthor;\n const trimmed = resolved.trim();\n return trimmed.length > 0 ? trimmed : \"unknown\";\n}\n\nexport async function runHistoryRepair(\n id: string,\n options: HistoryRepairCommandOptions,\n global: GlobalOptions,\n): Promise<HistoryRepairResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const subject = await resolveHistorySubject(pmRoot, id, settings, typeRegistry.type_to_folder);\n\n if (!(await pathExists(subject.historyPath))) {\n throw new PmCliError(`No history stream exists for ${subject.id}.`, EXIT_CODE.NOT_FOUND);\n }\n const historyRawBeforeLock = await readFileIfExists(subject.historyPath);\n const historyEntries = await readHistoryEntries(subject.historyPath, subject.id);\n if (historyEntries.length === 0) {\n throw new PmCliError(`No history entries exist for ${subject.id}; nothing to repair.`, EXIT_CODE.USAGE);\n }\n\n const chainBefore = verifyHistoryChain(historyEntries);\n const reanchor = reanchorHistoryEntries(historyEntries);\n\n // Reconcile the replayed chain with the current on-disk item document so the\n // latest after_hash matches what pm validate/health compute for the item.\n let currentItemReplay: ReplayDocument | null = null;\n const currentItemPath: string | null = subject.located?.itemPath ?? null;\n let matchedChainBefore: boolean | null = null;\n const loadedItem = subject.located\n ? await readLocatedItem(subject.located, { schema: settings.schema })\n : null;\n const currentItemRawBeforeLock = loadedItem?.raw ?? null;\n if (loadedItem) {\n // Use the shared canonical replay form so reconciliation hashing matches the\n // semantics pm validate/health use for the on-disk item (avoids hash divergence).\n currentItemReplay = toReplayDocument(loadedItem.document);\n const lastOriginalAfterHash = historyEntries[historyEntries.length - 1]?.after_hash;\n matchedChainBefore = replayHash(currentItemReplay) === lastOriginalAfterHash;\n }\n\n const finalReplay = reanchor.finalDocument;\n const reconcileNeeded =\n currentItemReplay !== null && replayHash(finalReplay) !== replayHash(currentItemReplay);\n\n const changed = reanchor.entriesRehashed > 0 || reanchor.entriesPatchRepaired > 0 || reconcileNeeded;\n const author = toAuthor(options.author, settings.author_default);\n const dryRun = Boolean(options.dryRun);\n\n const repairMessage =\n typeof options.message === \"string\" && options.message.trim().length > 0\n ? options.message\n : `history-repair re-anchored ${reanchor.entriesRehashed} entr${\n reanchor.entriesRehashed === 1 ? \"y\" : \"ies\"\n }${reanchor.entriesPatchRepaired > 0 ? `, repaired ${reanchor.entriesPatchRepaired} patch(es)` : \"\"}${\n reconcileNeeded ? \", reconciled chain with on-disk item\" : \"\"\n }.`;\n\n const rewrittenEntries: HistoryEntry[] = [...reanchor.entries];\n let auditEntryAdded = false;\n if (changed) {\n if (reconcileNeeded && currentItemReplay) {\n rewrittenEntries.push({\n ts: nowIso(),\n author,\n op: \"history_repair\",\n patch: jsonPatch.compare(finalReplay, currentItemReplay) as HistoryPatchOp[],\n before_hash: replayHash(finalReplay),\n after_hash: replayHash(currentItemReplay),\n message: repairMessage,\n });\n } else {\n rewrittenEntries.push({\n ts: nowIso(),\n author,\n op: \"history_repair\",\n patch: [],\n before_hash: replayHash(finalReplay),\n after_hash: replayHash(finalReplay),\n message: repairMessage,\n });\n }\n auditEntryAdded = true;\n }\n\n const historyVerify = verifyHistoryChain(rewrittenEntries);\n if (!historyVerify.ok) {\n throw new PmCliError(\n `history-repair produced an invalid rewritten chain (${historyVerify.errors.join(\", \")}).`,\n EXIT_CODE.GENERIC_FAILURE,\n );\n }\n\n const warnings: string[] = [];\n if (!changed) {\n warnings.push(\"history_repair_no_changes\");\n }\n if (reanchor.skippedOps > 0) {\n warnings.push(`history_repair_skipped_unresolvable_ops:${reanchor.skippedOps}`);\n }\n\n if (changed && !dryRun) {\n warnings.push(\n ...checkHistoryRewriteOwnership({\n itemDocument: loadedItem?.document ?? null,\n subjectId: subject.id,\n author,\n force: options.force,\n settings,\n }),\n );\n\n const releaseLock = await acquireLock(\n pmRoot,\n subject.id,\n settings.locks.ttl_seconds,\n author,\n Boolean(options.force),\n settings.governance.force_required_for_stale_lock,\n );\n try {\n const { historyRawUnderLock } = await verifyHistoryRewriteNoDrift({\n pmRoot,\n subject,\n settings,\n typeRegistry,\n historyRawBeforeLock,\n currentItemRawBeforeLock,\n operation: \"history-repair\",\n });\n try {\n await writeFileAtomic(subject.historyPath, historyEntriesToRaw(rewrittenEntries));\n } catch (error) {\n if (historyRawUnderLock === null) {\n await fs.rm(subject.historyPath, { force: true });\n } else {\n await writeFileAtomic(subject.historyPath, historyRawUnderLock);\n }\n throw error;\n }\n warnings.push(\n ...(await runActiveOnWriteHooks({\n path: subject.historyPath,\n scope: \"project\",\n op: \"history_repair:history\",\n })),\n );\n } finally {\n await releaseLock();\n }\n }\n\n return {\n id: subject.id,\n dry_run: dryRun,\n changed,\n history: {\n path: subject.historyPath,\n entries_scanned: historyEntries.length,\n chain_drift_before: !chainBefore.ok,\n entries_rehashed: reanchor.entriesRehashed,\n entries_patch_repaired: reanchor.entriesPatchRepaired,\n converted_replace_to_add: reanchor.convertedReplaceToAdd,\n skipped_ops: reanchor.skippedOps,\n reconciled_with_item: reconcileNeeded,\n audit_entry_added: auditEntryAdded,\n verify_ok: historyVerify.ok,\n verify_errors: historyVerify.errors,\n },\n item: {\n exists: currentItemPath !== null,\n path: currentItemPath,\n matched_chain_before: matchedChainBefore,\n },\n warnings: [...new Set(warnings)].sort((left, right) => left.localeCompare(right)),\n generated_at: nowIso(),\n };\n}\n\nexport interface HistoryRepairAllStreamResult {\n id: string;\n outcome: \"repaired\" | \"skipped_clean\" | \"failed\";\n entries_rehashed?: number;\n entries_patch_repaired?: number;\n reconciled_with_item?: boolean;\n error?: string;\n}\n\nexport interface HistoryRepairAllResult {\n all: true;\n dry_run: boolean;\n scanned_streams: number;\n drifted_streams: number;\n /** One compact row per drifted stream (clean streams are summarized by the counts only). */\n streams: HistoryRepairAllStreamResult[];\n totals: { repaired: number; skipped_clean: number; failed: number };\n warnings: string[];\n generated_at: string;\n}\n\n/**\n * Enforce the `pm history-repair` target contract shared by the CLI and MCP\n * surfaces: exactly one of an item `<id>` or `--all` must be provided.\n */\nexport function assertHistoryRepairTarget(id: string | undefined, all: boolean): void {\n if (all && id !== undefined) {\n throw new PmCliError(\n \"history-repair: <id> and --all are mutually exclusive; pass an item id to repair one stream or --all to repair every drifted stream.\",\n EXIT_CODE.USAGE,\n );\n }\n if (!all && id === undefined) {\n throw new PmCliError(\n \"history-repair: provide an item <id> or pass --all to repair every drifted stream.\",\n EXIT_CODE.USAGE,\n );\n }\n}\n\n/**\n * Bulk drift repair: scan every item's history stream with the same drift scan\n * `pm health` uses, then run the audited single-stream repair (ownership check,\n * lock, no-drift verification, audit marker) for each drifted stream. One\n * failing stream never aborts the rest; failures are collected per row and the\n * caller decides the exit code from `totals.failed`.\n */\nexport async function runHistoryRepairAll(\n options: HistoryRepairCommandOptions,\n global: GlobalOptions,\n): Promise<HistoryRepairAllResult> {\n const pmRoot = resolvePmRoot(process.cwd(), global.path);\n if (!(await pathExists(getSettingsPath(pmRoot)))) {\n throw new PmCliError(`Tracker is not initialized at ${pmRoot}. Run pm init first.`, EXIT_CODE.NOT_FOUND);\n }\n\n const settings = await readSettings(pmRoot);\n const typeRegistry = resolveItemTypeRegistry(settings, getActiveExtensionRegistrations());\n const itemReadWarnings: string[] = [];\n const items = await listAllFrontMatterWithBody(\n pmRoot,\n settings.item_format,\n typeRegistry.type_to_folder,\n itemReadWarnings,\n settings.schema,\n );\n const drift = await scanHistoryDrift(pmRoot, items as Array<ItemMetadata & { body: string }>);\n\n const streams: HistoryRepairAllStreamResult[] = [];\n const totals = { repaired: 0, skipped_clean: 0, failed: 0 };\n for (const driftedId of drift.driftedItems) {\n try {\n const result = await runHistoryRepair(driftedId, options, global);\n const outcome = result.changed ? \"repaired\" : \"skipped_clean\";\n totals[outcome] += 1;\n streams.push({\n id: driftedId,\n outcome,\n entries_rehashed: result.history.entries_rehashed,\n entries_patch_repaired: result.history.entries_patch_repaired,\n reconciled_with_item: result.history.reconciled_with_item,\n });\n } catch (error) {\n totals.failed += 1;\n streams.push({\n id: driftedId,\n outcome: \"failed\",\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n\n return {\n all: true,\n dry_run: Boolean(options.dryRun),\n scanned_streams: items.length,\n drifted_streams: drift.driftedItems.length,\n streams,\n totals,\n warnings: [...new Set(itemReadWarnings)].sort((left, right) => left.localeCompare(right)),\n generated_at: nowIso(),\n };\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["global"]
7
+ }
@@ -0,0 +1,17 @@
1
+ import {
2
+ runInit,
3
+ summarizeInitResult
4
+ } from "./chunk-WLH7X4RN.js";
5
+ import "./chunk-UCVJP4JL.js";
6
+ import "./chunk-SQDKAEKG.js";
7
+ import "./chunk-5LMF75Q7.js";
8
+ import "./chunk-3HUE7XOF.js";
9
+ import "./chunk-LGOXXQUW.js";
10
+ import "./chunk-W6KNFAMZ.js";
11
+ import "./chunk-IXVSSHGV.js";
12
+ import "./chunk-LFW5NQUP.js";
13
+ export {
14
+ runInit,
15
+ summarizeInitResult
16
+ };
17
+ //# sourceMappingURL=init-JJFYRUKG.js.map
@@ -3,19 +3,19 @@
3
3
  import {
4
4
  runInit,
5
5
  summarizeInitResult
6
- } from "./chunk-F75JSIOZ.js";
7
- import "./chunk-FDH2X65L.js";
8
- import "./chunk-S2ZLDYGS.js";
9
- import "./chunk-VAOUX6TK.js";
6
+ } from "./chunk-2J2AH4V5.js";
7
+ import "./chunk-TSXWFN3L.js";
8
+ import "./chunk-SOHXUA2Q.js";
9
+ import "./chunk-JCTZV7TO.js";
10
10
  import "./chunk-LXYVKYMQ.js";
11
- import "./chunk-ATEES5SX.js";
12
- import "./chunk-CCX4RSYZ.js";
13
- import "./chunk-WUNFKP7M.js";
14
- import "./chunk-A6LXQFO7.js";
11
+ import "./chunk-6ZFTM65G.js";
12
+ import "./chunk-32XSW44C.js";
13
+ import "./chunk-IZHCCG4S.js";
14
+ import "./chunk-S2CDTRJ6.js";
15
15
  export {
16
16
  runInit,
17
17
  summarizeInitResult
18
18
  };
19
- //# sourceMappingURL=init-S5WEGUJY.js.map
19
+ //# sourceMappingURL=init-MXV57LKL.js.map
20
20
 
21
21
  //# debugId=45eac7fa-f181-5cca-93b7-cfb58909dbb3
@@ -3,18 +3,18 @@
3
3
  import {
4
4
  parseAnnotationTextInput,
5
5
  runAnnotationCommand
6
- } from "./chunk-OASDW5UI.js";
6
+ } from "./chunk-AUDDXKNX.js";
7
7
  import "./chunk-J27KIHTG.js";
8
8
  import {
9
9
  createStdinTokenResolver
10
- } from "./chunk-I7NYDZDV.js";
11
- import "./chunk-P5U5EOMA.js";
12
- import "./chunk-HI7STVF2.js";
13
- import "./chunk-ATEES5SX.js";
14
- import "./chunk-UUWGCWBU.js";
15
- import "./chunk-CCX4RSYZ.js";
16
- import "./chunk-WUNFKP7M.js";
17
- import "./chunk-A6LXQFO7.js";
10
+ } from "./chunk-3VULHQNS.js";
11
+ import "./chunk-NN6RKGFW.js";
12
+ import "./chunk-L6YQONLM.js";
13
+ import "./chunk-6ZFTM65G.js";
14
+ import "./chunk-QQG4HEX7.js";
15
+ import "./chunk-32XSW44C.js";
16
+ import "./chunk-IZHCCG4S.js";
17
+ import "./chunk-S2CDTRJ6.js";
18
18
 
19
19
  // dist/cli/commands/learnings.js
20
20
  async function runLearnings(id, options, global) {
@@ -39,6 +39,6 @@ async function runLearnings(id, options, global) {
39
39
  export {
40
40
  runLearnings
41
41
  };
42
- //# sourceMappingURL=learnings-HQXSSKZ5.js.map
42
+ //# sourceMappingURL=learnings-L6KTZGOT.js.map
43
43
 
44
44
  //# debugId=ba6067a5-4bff-5ab2-ae61-451511221c4d
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  parseAnnotationTextInput,
3
3
  runAnnotationCommand
4
- } from "./chunk-TK5VZFHY.js";
4
+ } from "./chunk-6TBR5AZ2.js";
5
5
  import "./chunk-O7IWB35H.js";
6
6
  import {
7
7
  createStdinTokenResolver
8
- } from "./chunk-TNAP7EJX.js";
9
- import "./chunk-QJMGRZO2.js";
10
- import "./chunk-3KLPFWZ4.js";
11
- import "./chunk-VPEAS7PS.js";
12
- import "./chunk-73ZPG2I3.js";
13
- import "./chunk-5SCT2JCT.js";
14
- import "./chunk-IUKD4W6Z.js";
15
- import "./chunk-FY4SPXSC.js";
8
+ } from "./chunk-HZOX5BYD.js";
9
+ import "./chunk-VYZNX4C5.js";
10
+ import "./chunk-XXLMJDUB.js";
11
+ import "./chunk-LGOXXQUW.js";
12
+ import "./chunk-MACCNKSZ.js";
13
+ import "./chunk-W6KNFAMZ.js";
14
+ import "./chunk-IXVSSHGV.js";
15
+ import "./chunk-LFW5NQUP.js";
16
16
 
17
17
  // dist/cli/commands/learnings.js
18
18
  !(function() {
@@ -44,4 +44,4 @@ async function runLearnings(id, options, global2) {
44
44
  export {
45
45
  runLearnings
46
46
  };
47
- //# sourceMappingURL=learnings-XK3P4ZDR.js.map
47
+ //# sourceMappingURL=learnings-QKJOKEAO.js.map
@@ -4,20 +4,20 @@ import {
4
4
  LIST_SORT_FIELDS,
5
5
  LIST_SORT_ORDER_VALUES,
6
6
  runList
7
- } from "./chunk-CW6E4NAT.js";
8
- import "./chunk-AVGHVVF7.js";
9
- import "./chunk-P5U5EOMA.js";
10
- import "./chunk-HI7STVF2.js";
11
- import "./chunk-ATEES5SX.js";
12
- import "./chunk-UUWGCWBU.js";
13
- import "./chunk-CCX4RSYZ.js";
14
- import "./chunk-WUNFKP7M.js";
15
- import "./chunk-A6LXQFO7.js";
7
+ } from "./chunk-LYNQ3NGI.js";
8
+ import "./chunk-V4KP3TCN.js";
9
+ import "./chunk-NN6RKGFW.js";
10
+ import "./chunk-L6YQONLM.js";
11
+ import "./chunk-6ZFTM65G.js";
12
+ import "./chunk-QQG4HEX7.js";
13
+ import "./chunk-32XSW44C.js";
14
+ import "./chunk-IZHCCG4S.js";
15
+ import "./chunk-S2CDTRJ6.js";
16
16
  export {
17
17
  LIST_SORT_FIELDS,
18
18
  LIST_SORT_ORDER_VALUES,
19
19
  runList
20
20
  };
21
- //# sourceMappingURL=list-6CL3XFT6.js.map
21
+ //# sourceMappingURL=list-GGVPXEV6.js.map
22
22
 
23
23
  //# debugId=45eac7fa-f181-5cca-93b7-cfb58909dbb3
@@ -0,0 +1,19 @@
1
+ import {
2
+ LIST_SORT_FIELDS,
3
+ LIST_SORT_ORDER_VALUES,
4
+ runList
5
+ } from "./chunk-M3SI2REU.js";
6
+ import "./chunk-C24PWDFG.js";
7
+ import "./chunk-VYZNX4C5.js";
8
+ import "./chunk-XXLMJDUB.js";
9
+ import "./chunk-LGOXXQUW.js";
10
+ import "./chunk-MACCNKSZ.js";
11
+ import "./chunk-W6KNFAMZ.js";
12
+ import "./chunk-IXVSSHGV.js";
13
+ import "./chunk-LFW5NQUP.js";
14
+ export {
15
+ LIST_SORT_FIELDS,
16
+ LIST_SORT_ORDER_VALUES,
17
+ runList
18
+ };
19
+ //# sourceMappingURL=list-VOQDQHA4.js.map
@@ -3,18 +3,18 @@
3
3
  import {
4
4
  parseAnnotationTextInput,
5
5
  runAnnotationCommand
6
- } from "./chunk-OASDW5UI.js";
6
+ } from "./chunk-AUDDXKNX.js";
7
7
  import "./chunk-J27KIHTG.js";
8
8
  import {
9
9
  createStdinTokenResolver
10
- } from "./chunk-I7NYDZDV.js";
11
- import "./chunk-P5U5EOMA.js";
12
- import "./chunk-HI7STVF2.js";
13
- import "./chunk-ATEES5SX.js";
14
- import "./chunk-UUWGCWBU.js";
15
- import "./chunk-CCX4RSYZ.js";
16
- import "./chunk-WUNFKP7M.js";
17
- import "./chunk-A6LXQFO7.js";
10
+ } from "./chunk-3VULHQNS.js";
11
+ import "./chunk-NN6RKGFW.js";
12
+ import "./chunk-L6YQONLM.js";
13
+ import "./chunk-6ZFTM65G.js";
14
+ import "./chunk-QQG4HEX7.js";
15
+ import "./chunk-32XSW44C.js";
16
+ import "./chunk-IZHCCG4S.js";
17
+ import "./chunk-S2CDTRJ6.js";
18
18
 
19
19
  // dist/cli/commands/notes.js
20
20
  async function runNotes(id, options, global) {
@@ -39,6 +39,6 @@ async function runNotes(id, options, global) {
39
39
  export {
40
40
  runNotes
41
41
  };
42
- //# sourceMappingURL=notes-5T6P7C5V.js.map
42
+ //# sourceMappingURL=notes-3NLK7WTZ.js.map
43
43
 
44
44
  //# debugId=110ed0ca-0531-5471-a668-b58dfbd092cd
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  parseAnnotationTextInput,
3
3
  runAnnotationCommand
4
- } from "./chunk-TK5VZFHY.js";
4
+ } from "./chunk-6TBR5AZ2.js";
5
5
  import "./chunk-O7IWB35H.js";
6
6
  import {
7
7
  createStdinTokenResolver
8
- } from "./chunk-TNAP7EJX.js";
9
- import "./chunk-QJMGRZO2.js";
10
- import "./chunk-3KLPFWZ4.js";
11
- import "./chunk-VPEAS7PS.js";
12
- import "./chunk-73ZPG2I3.js";
13
- import "./chunk-5SCT2JCT.js";
14
- import "./chunk-IUKD4W6Z.js";
15
- import "./chunk-FY4SPXSC.js";
8
+ } from "./chunk-HZOX5BYD.js";
9
+ import "./chunk-VYZNX4C5.js";
10
+ import "./chunk-XXLMJDUB.js";
11
+ import "./chunk-LGOXXQUW.js";
12
+ import "./chunk-MACCNKSZ.js";
13
+ import "./chunk-W6KNFAMZ.js";
14
+ import "./chunk-IXVSSHGV.js";
15
+ import "./chunk-LFW5NQUP.js";
16
16
 
17
17
  // dist/cli/commands/notes.js
18
18
  !(function() {
@@ -44,4 +44,4 @@ async function runNotes(id, options, global2) {
44
44
  export {
45
45
  runNotes
46
46
  };
47
- //# sourceMappingURL=notes-U5FZCSBT.js.map
47
+ //# sourceMappingURL=notes-HMCB7TK6.js.map
@@ -1,13 +1,13 @@
1
1
 
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ded50a19-e249-51bd-b1da-8244e75cdfbe")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="0e234648-f6c8-569f-a685-5d296eba2da1")}catch(e){}}();
3
3
  import {
4
4
  runCreate
5
- } from "./chunk-J3GD64J2.js";
6
- import "./chunk-4HFU4UO2.js";
7
- import "./chunk-I7NYDZDV.js";
8
- import "./chunk-Y3YKK7CY.js";
9
- import "./chunk-FDH2X65L.js";
10
- import "./chunk-I2IJY2NL.js";
5
+ } from "./chunk-SGMGMCIF.js";
6
+ import "./chunk-CEGUH2E5.js";
7
+ import "./chunk-3VULHQNS.js";
8
+ import "./chunk-DWG4FHPY.js";
9
+ import "./chunk-TSXWFN3L.js";
10
+ import "./chunk-LOAR5TKX.js";
11
11
  import {
12
12
  splitCommaList
13
13
  } from "./chunk-LXYVKYMQ.js";
@@ -15,16 +15,16 @@ import {
15
15
  locateItem,
16
16
  mutateItem,
17
17
  readLocatedItem
18
- } from "./chunk-HI7STVF2.js";
19
- import "./chunk-ATEES5SX.js";
20
- import "./chunk-UUWGCWBU.js";
18
+ } from "./chunk-L6YQONLM.js";
19
+ import "./chunk-6ZFTM65G.js";
20
+ import "./chunk-QQG4HEX7.js";
21
21
  import {
22
22
  resolveItemTypeRegistry,
23
23
  resolveTypeName
24
- } from "./chunk-CCX4RSYZ.js";
24
+ } from "./chunk-32XSW44C.js";
25
25
  import {
26
26
  nowIso
27
- } from "./chunk-WUNFKP7M.js";
27
+ } from "./chunk-IZHCCG4S.js";
28
28
  import {
29
29
  EXIT_CODE,
30
30
  PLAN_HARNESS_VALUES,
@@ -37,7 +37,7 @@ import {
37
37
  pathExists,
38
38
  readSettings,
39
39
  resolvePmRoot
40
- } from "./chunk-A6LXQFO7.js";
40
+ } from "./chunk-S2CDTRJ6.js";
41
41
 
42
42
  // dist/cli/commands/plan.js
43
43
  var PLAN_SUBCOMMANDS = [
@@ -66,6 +66,10 @@ function resolveAuthor(candidate, fallback) {
66
66
  const trimmed = resolved.trim();
67
67
  return trimmed.length > 0 ? trimmed : "unknown";
68
68
  }
69
+ function toOrderedStepTitles(value) {
70
+ const values = Array.isArray(value) ? value : value === void 0 || value === null ? [] : [value];
71
+ return values.filter((entry) => entry !== void 0 && entry !== null).map((entry) => (typeof entry === "string" ? entry : String(entry)).trim()).filter((entry) => entry.length > 0);
72
+ }
69
73
  function toArray(value) {
70
74
  if (Array.isArray(value))
71
75
  return value.flatMap((entry) => splitCommaList(entry, { unique: false }));
@@ -492,17 +496,31 @@ async function planCreate(options, global, ctx) {
492
496
  command: initialValidationCommand || void 0,
493
497
  expected: initialValidationExpected || void 0
494
498
  } : void 0;
495
- if (options.stepTitle?.trim()) {
499
+ const stepTitleFlag = options.stepTitle?.trim();
500
+ const repeatedStepTitles = toOrderedStepTitles(options.step);
501
+ const stepTitles = stepTitleFlag ? [stepTitleFlag, ...repeatedStepTitles] : repeatedStepTitles;
502
+ const hasPerStepDetailOptions = Boolean(options.stepBody?.trim()) || Boolean(options.stepOwner?.trim()) || Boolean(options.stepStatus?.trim()) || Boolean(options.stepEvidence?.trim()) || Boolean(options.stepBlockedReason?.trim()) || Boolean(options.stepReplacement?.trim()) || toArray(options.dependsOn).length > 0 || toArray(options.link).length > 0 || toSpecArray(options.file).length > 0 || toSpecArray(options.test).length > 0 || toSpecArray(options.doc).length > 0;
503
+ if (stepTitles.length > 1 && hasPerStepDetailOptions) {
504
+ throw new PmCliError("pm plan create per-step options apply to a single initial step; with multiple --step values create the plan first, then refine steps individually", EXIT_CODE.USAGE, {
505
+ code: "ambiguous_option_combination",
506
+ examples: [
507
+ 'pm plan create --title "Execution plan" --step "Read the code" --step "Write the fix"',
508
+ 'pm plan update-step <plan-id> plan-step-001 --step-body "Inspect retry path"'
509
+ ]
510
+ });
511
+ }
512
+ let initialSteps = [];
513
+ if (stepTitles.length === 1) {
496
514
  const status = asStepStatus(options.stepStatus, "pending");
497
515
  const linkedItems = buildLinkInputs(options, "depends_on");
498
516
  const files = toSpecArray(options.file).map(parseStepFile);
499
517
  const tests = toSpecArray(options.test).map(parseStepTest);
500
518
  const docs = toSpecArray(options.doc).map(parseStepDoc);
501
519
  const now = nowIso();
502
- initialStep = {
520
+ initialSteps = [{
503
521
  id: "plan-step-001",
504
522
  order: 1,
505
- title: options.stepTitle.trim(),
523
+ title: stepTitles[0],
506
524
  body: options.stepBody?.trim() || void 0,
507
525
  status,
508
526
  owner: options.stepOwner?.trim() || void 0,
@@ -515,17 +533,30 @@ async function planCreate(options, global, ctx) {
515
533
  created_at: now,
516
534
  updated_at: now,
517
535
  completed_at: status === "completed" ? now : void 0
518
- };
536
+ }];
537
+ } else if (stepTitles.length > 1) {
538
+ const now = nowIso();
539
+ initialSteps = stepTitles.map((stepTitle, index) => ({
540
+ id: `${STEP_ID_PREFIX}${String(index + 1).padStart(3, "0")}`,
541
+ order: index + 1,
542
+ title: stepTitle,
543
+ status: "pending",
544
+ created_at: now,
545
+ updated_at: now
546
+ }));
547
+ }
548
+ if (initialSteps.length > 0) {
549
+ initialStep = initialSteps[0];
519
550
  const stepped = await mutateItem({
520
551
  pmRoot: ctx.pmRoot,
521
552
  settings: ctx.settings,
522
553
  id: createResult.item.id,
523
554
  op: "plan_create_initial_step",
524
555
  author: resolveAuthor(options.author, ctx.settings.author_default),
525
- message: `plan create initial step "${initialStep.title}"`,
556
+ message: initialSteps.length === 1 ? `plan create initial step "${initialSteps[0].title}"` : `plan create ${initialSteps.length} initial steps`,
526
557
  mutate(doc) {
527
558
  ensurePlanItem(doc.metadata);
528
- doc.metadata.plan_steps = [initialStep];
559
+ doc.metadata.plan_steps = initialSteps;
529
560
  if (initialValidation) {
530
561
  doc.metadata.plan_validation = [...doc.metadata.plan_validation ?? [], initialValidation];
531
562
  }
@@ -548,8 +579,8 @@ async function planCreate(options, global, ctx) {
548
579
  }
549
580
  });
550
581
  finalMetadata = validated.item;
551
- } else if (options.stepBody?.trim() || options.stepOwner?.trim() || options.stepStatus?.trim() || options.stepEvidence?.trim() || options.stepBlockedReason?.trim() || options.stepReplacement?.trim() || toArray(options.dependsOn).length > 0 || toArray(options.link).length > 0 || toSpecArray(options.file).length > 0 || toSpecArray(options.test).length > 0 || toSpecArray(options.doc).length > 0) {
552
- throw new PmCliError("pm plan create step options require --step-title", EXIT_CODE.USAGE, {
582
+ } else if (hasPerStepDetailOptions) {
583
+ throw new PmCliError("pm plan create step options require --step-title (or a single --step)", EXIT_CODE.USAGE, {
553
584
  code: "missing_required_option",
554
585
  examples: ['pm plan create --title "Execution plan" --step-title "Read the code"']
555
586
  });
@@ -1094,6 +1125,15 @@ async function planMaterialize(id, options, ctx) {
1094
1125
  }
1095
1126
  async function runPlan(input) {
1096
1127
  const ctx = await loadContext(input.global);
1128
+ if (input.subcommand !== "create") {
1129
+ const stepValues = toOrderedStepTitles(input.options.step);
1130
+ if (stepValues.length > 1) {
1131
+ throw new PmCliError(`pm plan ${input.subcommand} accepts a single --step/--step-title value (repeated --step seeds ordered steps only on pm plan create)`, EXIT_CODE.USAGE);
1132
+ }
1133
+ if (stepValues.length === 1 && !input.options.stepTitle?.trim()) {
1134
+ input = { ...input, options: { ...input.options, stepTitle: stepValues[0] } };
1135
+ }
1136
+ }
1097
1137
  switch (input.subcommand) {
1098
1138
  case "create":
1099
1139
  return planCreate(input.options, input.global, ctx);
@@ -1166,6 +1206,6 @@ export {
1166
1206
  PLAN_SUBCOMMANDS,
1167
1207
  runPlan
1168
1208
  };
1169
- //# sourceMappingURL=plan-VNUG3WZZ.js.map
1209
+ //# sourceMappingURL=plan-DWBYI5C6.js.map
1170
1210
 
1171
- //# debugId=ded50a19-e249-51bd-b1da-8244e75cdfbe
1211
+ //# debugId=0e234648-f6c8-569f-a685-5d296eba2da1